some fixings
This commit is contained in:
parent
3e841f9df9
commit
48f39281bd
Binary file not shown.
Binary file not shown.
@ -3,7 +3,12 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"/>
|
||||||
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
||||||
|
<uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".CatFlipScreenApplication"
|
android:name=".CatFlipScreenApplication"
|
||||||
@ -28,11 +33,14 @@
|
|||||||
<service
|
<service
|
||||||
android:name=".FlipScreenService"
|
android:name=".FlipScreenService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="true" />
|
android:foregroundServiceType="systemExempted"
|
||||||
|
android:stopWithTask="false"
|
||||||
|
android:exported="false" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="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" />
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.mezimmah.catflipscreen
|
package net.mezimmah.catflipscreen
|
||||||
|
|
||||||
|
import android.app.AlarmManager
|
||||||
import android.app.Notification
|
import android.app.Notification
|
||||||
import android.app.NotificationChannel
|
import android.app.NotificationChannel
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
@ -9,8 +10,8 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.media.MediaRouter
|
import android.media.MediaRouter
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
|
import android.os.SystemClock
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.core.app.NotificationCompat
|
|
||||||
|
|
||||||
|
|
||||||
class FlipScreenService : Service() {
|
class FlipScreenService : Service() {
|
||||||
@ -20,34 +21,21 @@ class FlipScreenService : Service() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
showNotification(intent)
|
showNotification()
|
||||||
showPresentationScreen()
|
showPresentationScreen()
|
||||||
|
|
||||||
return super.onStartCommand(intent, flags, startId)
|
return super.onStartCommand(intent, flags, startId)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showNotification(intent: Intent?) {
|
override fun onTaskRemoved(rootIntent: Intent?) {
|
||||||
val input: String? = intent?.getStringExtra("inputExtra")
|
val restartServiceIntent = Intent(applicationContext, FlipScreenService::class.java).also {
|
||||||
val notificationIntent = Intent(this, MainActivity::class.java)
|
it.setPackage(packageName)
|
||||||
val pendingIntent = PendingIntent.getActivity(
|
};
|
||||||
this,
|
val restartServicePendingIntent: PendingIntent = PendingIntent.getService(this, 1, restartServiceIntent,
|
||||||
0, notificationIntent, PendingIntent.FLAG_IMMUTABLE
|
PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE);
|
||||||
)
|
applicationContext.getSystemService(Context.ALARM_SERVICE);
|
||||||
val notification: Notification = NotificationCompat.Builder(this, CatFlipScreenApplication.CHANNEL_ID)
|
val alarmService: AlarmManager = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager;
|
||||||
.setContentTitle("Auto Start Service")
|
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent);
|
||||||
.setContentText(input)
|
|
||||||
.setSmallIcon(android.R.drawable.ic_dialog_info)
|
|
||||||
.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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showPresentationScreen() {
|
private fun showPresentationScreen() {
|
||||||
@ -69,4 +57,32 @@ 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)
|
||||||
|
}
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ import android.util.Log
|
|||||||
class MyReceiver : BroadcastReceiver() {
|
class MyReceiver : BroadcastReceiver() {
|
||||||
|
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
context.startForegroundService(Intent(context, FlipScreenService::class.java))
|
context.startService(Intent(context, FlipScreenService::class.java))
|
||||||
Log.i("Autostart", "started")
|
Log.i("Autostart", "started")
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user