Loading opentasks/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <application android:name=".TasksApplication" Loading opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java +31 −0 Original line number Diff line number Diff line Loading @@ -18,15 +18,22 @@ package org.dmfs.tasks.utils; import android.Manifest; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import org.dmfs.android.retentionmagic.RetentionMagic; import org.dmfs.tasks.utils.permission.BasicAppPermissions; import org.dmfs.tasks.utils.permission.Permission; import org.dmfs.tasks.utils.permission.dialog.PermissionRequestDialogFragment; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Base class for all Activities in the app. Loading @@ -35,6 +42,8 @@ import org.dmfs.tasks.utils.permission.dialog.PermissionRequestDialogFragment; */ public abstract class BaseActivity extends AppCompatActivity { private static final int REQUEST_PERMISSIONS = 2001; private SharedPreferences mPrefs; private Permission mGetAccountsPermission; Loading Loading @@ -67,6 +76,7 @@ public abstract class BaseActivity extends AppCompatActivity { super.onResume(); requestMissingGetAccountsPermission(); requestMissingPermissions(); } Loading Loading @@ -95,4 +105,25 @@ public abstract class BaseActivity extends AppCompatActivity } } private void requestMissingPermissions() { List<String> permissions = new ArrayList<>(); List<String> allPermissions = Arrays.asList(Manifest.permission.READ_CONTACTS, Manifest.permission.POST_NOTIFICATIONS, "foundation.e.permission.READ_TASKS", "foundation.e.permission.WRITE_TASKS"); for (String permission : allPermissions) { if (permission.equals(Manifest.permission.POST_NOTIFICATIONS) && Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { continue; } if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { permissions.add(permission); } } if (!permissions.isEmpty()) { ActivityCompat.requestPermissions(this, permissions.toArray(new String[0]), REQUEST_PERMISSIONS); } } } Loading
opentasks/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <application android:name=".TasksApplication" Loading
opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java +31 −0 Original line number Diff line number Diff line Loading @@ -18,15 +18,22 @@ package org.dmfs.tasks.utils; import android.Manifest; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import org.dmfs.android.retentionmagic.RetentionMagic; import org.dmfs.tasks.utils.permission.BasicAppPermissions; import org.dmfs.tasks.utils.permission.Permission; import org.dmfs.tasks.utils.permission.dialog.PermissionRequestDialogFragment; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Base class for all Activities in the app. Loading @@ -35,6 +42,8 @@ import org.dmfs.tasks.utils.permission.dialog.PermissionRequestDialogFragment; */ public abstract class BaseActivity extends AppCompatActivity { private static final int REQUEST_PERMISSIONS = 2001; private SharedPreferences mPrefs; private Permission mGetAccountsPermission; Loading Loading @@ -67,6 +76,7 @@ public abstract class BaseActivity extends AppCompatActivity { super.onResume(); requestMissingGetAccountsPermission(); requestMissingPermissions(); } Loading Loading @@ -95,4 +105,25 @@ public abstract class BaseActivity extends AppCompatActivity } } private void requestMissingPermissions() { List<String> permissions = new ArrayList<>(); List<String> allPermissions = Arrays.asList(Manifest.permission.READ_CONTACTS, Manifest.permission.POST_NOTIFICATIONS, "foundation.e.permission.READ_TASKS", "foundation.e.permission.WRITE_TASKS"); for (String permission : allPermissions) { if (permission.equals(Manifest.permission.POST_NOTIFICATIONS) && Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { continue; } if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { permissions.add(permission); } } if (!permissions.isEmpty()) { ActivityCompat.requestPermissions(this, permissions.toArray(new String[0]), REQUEST_PERMISSIONS); } } }