summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml15
-rw-r--r--src/org/lineageos/updater/ExportUpdateService.java4
-rw-r--r--src/org/lineageos/updater/controller/UpdaterService.java7
3 files changed, 21 insertions, 5 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index cc485f7..80fd2bc 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.REBOOT" />
@@ -43,8 +44,18 @@
</intent-filter>
</activity>
- <service android:name=".controller.UpdaterService" />
- <service android:name=".ExportUpdateService" />
+ <service
+ android:name=".controller.UpdaterService"
+ android:foregroundServiceType="specialUse">
+ <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+ android:value="updater"/>
+ </service>
+ <service
+ android:name=".ExportUpdateService"
+ android:foregroundServiceType="specialUse">
+ <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
+ android:value="updater"/>
+ </service>
<receiver android:name=".UpdaterReceiver" android:exported="false">
<intent-filter>
diff --git a/src/org/lineageos/updater/ExportUpdateService.java b/src/org/lineageos/updater/ExportUpdateService.java
index 1c72ad2..4403d7f 100644
--- a/src/org/lineageos/updater/ExportUpdateService.java
+++ b/src/org/lineageos/updater/ExportUpdateService.java
@@ -20,6 +20,7 @@ import android.app.NotificationManager;
import android.app.Service;
import android.content.ContentResolver;
import android.content.Intent;
+import android.content.pm.ServiceInfo;
import android.net.Uri;
import android.os.IBinder;
import android.os.SystemClock;
@@ -156,7 +157,8 @@ public class ExportUpdateService extends Service {
}
};
- startForeground(NOTIFICATION_ID, notificationBuilder.build());
+ startForeground(NOTIFICATION_ID, notificationBuilder.build(),
+ ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build());
Runnable runnableComplete = () -> {
diff --git a/src/org/lineageos/updater/controller/UpdaterService.java b/src/org/lineageos/updater/controller/UpdaterService.java
index c279679..e1e0c99 100644
--- a/src/org/lineageos/updater/controller/UpdaterService.java
+++ b/src/org/lineageos/updater/controller/UpdaterService.java
@@ -24,6 +24,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
+import android.content.pm.ServiceInfo;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
@@ -275,7 +276,8 @@ public class UpdaterService extends Service {
mNotificationBuilder.setTicker(text);
mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false);
- startForeground(NOTIFICATION_ID, mNotificationBuilder.build());
+ startForeground(NOTIFICATION_ID, mNotificationBuilder.build(),
+ ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build());
break;
}
@@ -390,7 +392,8 @@ public class UpdaterService extends Service {
mNotificationBuilder.setTicker(text);
mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false);
- startForeground(NOTIFICATION_ID, mNotificationBuilder.build());
+ startForeground(NOTIFICATION_ID, mNotificationBuilder.build(),
+ ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build());
break;
}