fix bug with battery stat not updating
This commit is contained in:
parent
0183efa97a
commit
180c2b8cf6
5
.idea/gradle.xml
generated
5
.idea/gradle.xml
generated
@ -4,16 +4,15 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="testRunner" value="GRADLE" />
|
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="jbr-17" />
|
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
<option value="$PROJECT_DIR$/app" />
|
<option value="$PROJECT_DIR$/app" />
|
||||||
</set>
|
</set>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="resolveExternalAnnotations" value="false" />
|
||||||
</GradleProjectSettings>
|
</GradleProjectSettings>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -43,6 +43,9 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
|
||||||
|
android:showOnLockScreen="true"
|
||||||
android:theme="@style/Theme.AppCompat">
|
android:theme="@style/Theme.AppCompat">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
@ -6,25 +6,82 @@ import android.app.NotificationChannel
|
|||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.IntentFilter
|
||||||
|
import android.media.AudioManager
|
||||||
import android.media.MediaRouter
|
import android.media.MediaRouter
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.os.SystemClock
|
import android.os.SystemClock
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.core.app.NotificationCompat
|
||||||
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
|
|
||||||
|
|
||||||
class FlipScreenService : Service() {
|
class FlipScreenService : Service() {
|
||||||
|
|
||||||
override fun onBind(intent: Intent): IBinder? {
|
override fun onBind(intent: Intent): IBinder? {
|
||||||
TODO("Return the communication channel to the service.")
|
TODO("Return the communication channel to the service.")
|
||||||
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCreate() {
|
||||||
|
super.onCreate()
|
||||||
|
|
||||||
|
registerReceivers()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun registerReceivers() {
|
||||||
|
val broadCastReceiver = object : BroadcastReceiver() {
|
||||||
|
override fun onReceive(contxt: Context, intent: Intent) {
|
||||||
|
when (intent.action) {
|
||||||
|
Intent.ACTION_POWER_CONNECTED,
|
||||||
|
Intent.ACTION_POWER_DISCONNECTED,
|
||||||
|
Intent.ACTION_BATTERY_CHANGED -> {
|
||||||
|
LocalBroadcastManager.getInstance(contxt)
|
||||||
|
.sendBroadcast(Intent(CatFlipScreenApplication.BROADCAST_BATTERY_CHANGED))
|
||||||
|
}
|
||||||
|
AudioManager.RINGER_MODE_CHANGED_ACTION -> {
|
||||||
|
LocalBroadcastManager.getInstance(contxt)
|
||||||
|
.sendBroadcast(Intent(CatFlipScreenApplication.BROADCAST_AUDIO_MODE_CHANGED))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_POWER_CONNECTED))
|
||||||
|
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_POWER_DISCONNECTED))
|
||||||
|
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
||||||
|
|
||||||
|
this.registerReceiver(broadCastReceiver, IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
showNotification()
|
|
||||||
showPresentationScreen()
|
showPresentationScreen()
|
||||||
|
|
||||||
return super.onStartCommand(intent, flags, startId)
|
val input = intent!!.getStringExtra("inputExtra")
|
||||||
|
val notificationIntent = Intent(this, MainActivity::class.java)
|
||||||
|
val pendingIntent = PendingIntent.getActivity(
|
||||||
|
this,
|
||||||
|
0, notificationIntent, PendingIntent.FLAG_IMMUTABLE
|
||||||
|
)
|
||||||
|
val notification: Notification = NotificationCompat.Builder(this, CatFlipScreenApplication.CHANNEL_ID)
|
||||||
|
.setContentTitle("Auto Start Service")
|
||||||
|
.setContentText(input)
|
||||||
|
.setSmallIcon(android.R.drawable.ic_dialog_alert)
|
||||||
|
.setContentIntent(pendingIntent)
|
||||||
|
.build()
|
||||||
|
val mNotificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
val channel = NotificationChannel(
|
||||||
|
CatFlipScreenApplication.CHANNEL_ID,
|
||||||
|
CatFlipScreenApplication.CHANNEL_NAME,
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
)
|
||||||
|
mNotificationManager.createNotificationChannel(channel)
|
||||||
|
NotificationCompat.Builder(this, CatFlipScreenApplication.CHANNEL_ID)
|
||||||
|
startForeground(1, notification)
|
||||||
|
return START_NOT_STICKY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTaskRemoved(rootIntent: Intent?) {
|
override fun onTaskRemoved(rootIntent: Intent?) {
|
||||||
@ -57,33 +114,4 @@ class FlipScreenService : Service() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showNotification() {
|
|
||||||
|
|
||||||
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
val channel = NotificationChannel(
|
|
||||||
CatFlipScreenApplication.CHANNEL_ID,
|
|
||||||
CatFlipScreenApplication.CHANNEL_NAME,
|
|
||||||
NotificationManager.IMPORTANCE_HIGH
|
|
||||||
)
|
|
||||||
channel.description = "Cat Flip Screen Service"
|
|
||||||
channel.enableLights(true)
|
|
||||||
channel.enableVibration(true)
|
|
||||||
notificationManager.createNotificationChannel(channel)
|
|
||||||
|
|
||||||
val pendingIntent: PendingIntent = Intent(this, MainActivity::class.java).let { notificationIntent ->
|
|
||||||
PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE)
|
|
||||||
}
|
|
||||||
val builder: Notification.Builder = Notification.Builder(
|
|
||||||
this,
|
|
||||||
CatFlipScreenApplication.CHANNEL_ID
|
|
||||||
)
|
|
||||||
val notification = builder
|
|
||||||
.setContentTitle("Cat Flip Screen")
|
|
||||||
.setContentText("For making the external display work.")
|
|
||||||
.setContentIntent(pendingIntent)
|
|
||||||
.setSmallIcon(R.mipmap.ic_launcher)
|
|
||||||
.build()
|
|
||||||
startForeground(1, notification)
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,14 +1,9 @@
|
|||||||
package net.mezimmah.catflipscreen
|
package net.mezimmah.catflipscreen
|
||||||
|
|
||||||
import android.content.BroadcastReceiver
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.media.AudioManager
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
|
|
||||||
|
|
||||||
@ -24,32 +19,8 @@ class MainActivity : AppCompatActivity() {
|
|||||||
.commit()
|
.commit()
|
||||||
}
|
}
|
||||||
startForegroundService(Intent(this, FlipScreenService::class.java))
|
startForegroundService(Intent(this, FlipScreenService::class.java))
|
||||||
registerReceivers()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun registerReceivers() {
|
|
||||||
val broadCastReceiver = object : BroadcastReceiver() {
|
|
||||||
override fun onReceive(contxt: Context, intent: Intent) {
|
|
||||||
when (intent.action) {
|
|
||||||
Intent.ACTION_POWER_CONNECTED,
|
|
||||||
Intent.ACTION_POWER_DISCONNECTED,
|
|
||||||
Intent.ACTION_BATTERY_CHANGED -> {
|
|
||||||
LocalBroadcastManager.getInstance(contxt)
|
|
||||||
.sendBroadcast(Intent(CatFlipScreenApplication.BROADCAST_BATTERY_CHANGED))
|
|
||||||
}
|
|
||||||
AudioManager.RINGER_MODE_CHANGED_ACTION -> {
|
|
||||||
LocalBroadcastManager.getInstance(contxt)
|
|
||||||
.sendBroadcast(Intent(CatFlipScreenApplication.BROADCAST_AUDIO_MODE_CHANGED))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_POWER_CONNECTED))
|
|
||||||
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_POWER_DISCONNECTED))
|
|
||||||
this.registerReceiver(broadCastReceiver, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
|
||||||
|
|
||||||
this.registerReceiver(broadCastReceiver, IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION))
|
|
||||||
}
|
|
||||||
|
|
||||||
class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener {
|
class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
@ -58,8 +29,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?,
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?,
|
||||||
key: String?) {
|
key: String?) {
|
||||||
// if (key == "enable_display") {
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -18,21 +18,10 @@
|
|||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory app:title="@string/time_header">
|
<Preference
|
||||||
|
app:selectable="false"
|
||||||
|
app:enabled="true"
|
||||||
|
app:title="Cat Flip Screen"
|
||||||
|
app:summary="This app makes the external screen to show the clock, batter, sound profile and connectivity status." />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
|
||||||
app:key="show_time"
|
|
||||||
app:defaultValue="true"
|
|
||||||
app:enabled="false"
|
|
||||||
app:title="@string/show_time_title" />
|
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
|
||||||
app:dependency="show_time"
|
|
||||||
app:key="attachment"
|
|
||||||
app:isPreferenceVisible="false"
|
|
||||||
app:summaryOff="@string/attachment_summary_off"
|
|
||||||
app:summaryOn="@string/attachment_summary_on"
|
|
||||||
app:title="@string/show_time_title" />
|
|
||||||
|
|
||||||
</PreferenceCategory>
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
x
Reference in New Issue
Block a user