diff --git a/app/src/apkFlavor/AndroidManifest.xml b/app/src/apkFlavor/AndroidManifest.xml index fe4d1f8..9bd5452 100644 --- a/app/src/apkFlavor/AndroidManifest.xml +++ b/app/src/apkFlavor/AndroidManifest.xml @@ -79,6 +79,7 @@ + + android:label="@string/app_name" + android:foregroundServiceType="specialUse" /> diff --git a/app/src/fdroidFlavor/AndroidManifest.xml b/app/src/fdroidFlavor/AndroidManifest.xml index 5f55dea..37611c0 100644 --- a/app/src/fdroidFlavor/AndroidManifest.xml +++ b/app/src/fdroidFlavor/AndroidManifest.xml @@ -77,6 +77,7 @@ + + android:label="@string/app_name" + android:foregroundServiceType="specialUse" /> diff --git a/app/src/googlePlayFlavor/AndroidManifest.xml b/app/src/googlePlayFlavor/AndroidManifest.xml index 72b89c5..168d116 100644 --- a/app/src/googlePlayFlavor/AndroidManifest.xml +++ b/app/src/googlePlayFlavor/AndroidManifest.xml @@ -74,6 +74,7 @@ + + android:label="@string/app_name" + android:foregroundServiceType="specialUse"> + + = 34 && !ActivityPermissions.havePermission(Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE, context)) + { + Toast.makeText(context, context.getResources().getString(R.string.permissionForegroundServiceTypeSpecialUseRequired), Toast.LENGTH_LONG).show(); + activityMainScreenInstance.toggleService.setChecked(false); + return; + } + if (!AutomationService.isMyServiceRunning(context)) { myServiceIntent = new Intent(context, AutomationService.class); diff --git a/app/src/main/java/com/jens/automation2/ActivityPermissions.java b/app/src/main/java/com/jens/automation2/ActivityPermissions.java index daa6a73..8f33ff7 100644 --- a/app/src/main/java/com/jens/automation2/ActivityPermissions.java +++ b/app/src/main/java/com/jens/automation2/ActivityPermissions.java @@ -424,6 +424,11 @@ public class ActivityPermissions extends Activity } } + if(Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 34 && !havePermission(Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE, workingContext)) + { + addToArrayListUnique(Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE, requiredPermissions); + } + if(!havePermission(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, workingContext)) addToArrayListUnique(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, requiredPermissions); diff --git a/app/src/main/java/com/jens/automation2/AutomationService.java b/app/src/main/java/com/jens/automation2/AutomationService.java index 5429ff4..93df10f 100644 --- a/app/src/main/java/com/jens/automation2/AutomationService.java +++ b/app/src/main/java/com/jens/automation2/AutomationService.java @@ -12,6 +12,7 @@ import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; +import android.content.pm.ServiceInfo; import android.media.AudioManager; import android.os.Binder; import android.os.Build; @@ -660,7 +661,10 @@ public class AutomationService extends Service implements OnInitListener myNotification.flags |= Notification.FLAG_NO_CLEAR; // notificationManager.notify(notificationId, myNotification); - instance.startForeground(notificationId, myNotification); + if(Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 34) + instance.startForeground(notificationId, myNotification, ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE); + else + instance.startForeground(notificationId, myNotification); } } diff --git a/app/src/main/java/com/jens/automation2/Profile.java b/app/src/main/java/com/jens/automation2/Profile.java index d567cbd..c17e6ef 100644 --- a/app/src/main/java/com/jens/automation2/Profile.java +++ b/app/src/main/java/com/jens/automation2/Profile.java @@ -543,7 +543,7 @@ public class Profile implements Comparable { AudioManager am = (AudioManager) Miscellaneous.getAnyContext().getSystemService(Context.AUDIO_SERVICE); - if(changeSoundMode) + if(changeSoundMode) Actions.setSound(context, soundMode); if(changeDndMode) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f48519..e096dd9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -959,4 +959,5 @@ Because someone at Google seems to have been smoking something the screen brightness setting has been behaving very weird for some Android versions. This behavior has nothing to do with what you\'d think it does according to their own documentation. I\'ve tried to adapt to this as best as I could, but do not expect very precise settings. That means the resulting setting may deviate a bit from what you configure here. Disable Enable + Permission FOREGROUND_SERVICE_TYPE_SPECIAL_USE is required to start. \ No newline at end of file