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">
|
||||
|
||||
<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.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
|
||||
<application
|
||||
android:name=".CatFlipScreenApplication"
|
||||
@ -28,11 +33,14 @@
|
||||
<service
|
||||
android:name=".FlipScreenService"
|
||||
android:enabled="true"
|
||||
android:exported="true" />
|
||||
android:foregroundServiceType="systemExempted"
|
||||
android:stopWithTask="false"
|
||||
android:exported="false" />
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
|
||||
android:theme="@style/Theme.AppCompat">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.mezimmah.catflipscreen
|
||||
|
||||
import android.app.AlarmManager
|
||||
import android.app.Notification
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
@ -9,8 +10,8 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.media.MediaRouter
|
||||
import android.os.IBinder
|
||||
import android.os.SystemClock
|
||||
import android.util.Log
|
||||
import androidx.core.app.NotificationCompat
|
||||
|
||||
|
||||
class FlipScreenService : Service() {
|
||||
@ -20,34 +21,21 @@ class FlipScreenService : Service() {
|
||||
}
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
showNotification(intent)
|
||||
showNotification()
|
||||
showPresentationScreen()
|
||||
|
||||
return super.onStartCommand(intent, flags, startId)
|
||||
}
|
||||
|
||||
private fun showNotification(intent: Intent?) {
|
||||
val input: String? = 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_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)
|
||||
override fun onTaskRemoved(rootIntent: Intent?) {
|
||||
val restartServiceIntent = Intent(applicationContext, FlipScreenService::class.java).also {
|
||||
it.setPackage(packageName)
|
||||
};
|
||||
val restartServicePendingIntent: PendingIntent = PendingIntent.getService(this, 1, restartServiceIntent,
|
||||
PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE);
|
||||
applicationContext.getSystemService(Context.ALARM_SERVICE);
|
||||
val alarmService: AlarmManager = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager;
|
||||
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent);
|
||||
}
|
||||
|
||||
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() {
|
||||
|
||||
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")
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user