Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 219dc9b6 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Ask app permission only once

parent 04536004
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@ public abstract class BaseActivity extends AppCompatActivity {

    private Permission mGetAccountsPermission;

    private boolean mRuntimePermissionRequestActive = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -101,23 +103,26 @@ public abstract class BaseActivity extends AppCompatActivity {
    }

    private void requestMissingPermissions() {
        if (mRuntimePermissionRequestActive) {
            return;
        }

        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");
        List<String> allPermissions = new ArrayList<>(Arrays.asList(Manifest.permission.READ_CONTACTS,
                "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 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            allPermissions.add(Manifest.permission.POST_NOTIFICATIONS);
        }

        for (String permission : allPermissions) {
            if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
                permissions.add(permission);
            }
        }

        if (!permissions.isEmpty()) {
            mRuntimePermissionRequestActive = true;
            ActivityCompat.requestPermissions(this, permissions.toArray(new String[0]), REQUEST_PERMISSIONS);
        }
    }