From 219dc9b6f5fc64ea8492181b6d92322cc0d861fc Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 26 Jan 2026 10:41:15 +0530 Subject: [PATCH 1/2] Ask app permission only once --- .../org/dmfs/tasks/utils/BaseActivity.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java b/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java index 5550275e..c73dac45 100644 --- a/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java +++ b/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java @@ -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 permissions = new ArrayList<>(); - List allPermissions = Arrays.asList(Manifest.permission.READ_CONTACTS, - Manifest.permission.POST_NOTIFICATIONS, "foundation.e.permission.READ_TASKS", - "foundation.e.permission.WRITE_TASKS"); + List 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); } } -- GitLab From 219a87a9a36264364fc897998b2db1d0a212937d Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 26 Jan 2026 10:45:35 +0530 Subject: [PATCH 2/2] Remove unused contacts permission --- opentasks/src/main/AndroidManifest.xml | 1 - .../src/main/java/org/dmfs/tasks/utils/BaseActivity.java | 5 +++-- opentasks/src/main/play/listings/en-GB/full-description.txt | 3 --- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/opentasks/src/main/AndroidManifest.xml b/opentasks/src/main/AndroidManifest.xml index b865ac79..bb083972 100644 --- a/opentasks/src/main/AndroidManifest.xml +++ b/opentasks/src/main/AndroidManifest.xml @@ -10,7 +10,6 @@ - diff --git a/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java b/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java index c73dac45..f7a2e1fb 100644 --- a/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java +++ b/opentasks/src/main/java/org/dmfs/tasks/utils/BaseActivity.java @@ -22,6 +22,7 @@ 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; @@ -108,8 +109,8 @@ public abstract class BaseActivity extends AppCompatActivity { } List permissions = new ArrayList<>(); - List allPermissions = new ArrayList<>(Arrays.asList(Manifest.permission.READ_CONTACTS, - "foundation.e.permission.READ_TASKS", "foundation.e.permission.WRITE_TASKS")); + List allPermissions = new ArrayList<>( + Arrays.asList("foundation.e.permission.READ_TASKS", "foundation.e.permission.WRITE_TASKS")); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { allPermissions.add(Manifest.permission.POST_NOTIFICATIONS); diff --git a/opentasks/src/main/play/listings/en-GB/full-description.txt b/opentasks/src/main/play/listings/en-GB/full-description.txt index 54a0d57b..e53a4058 100644 --- a/opentasks/src/main/play/listings/en-GB/full-description.txt +++ b/opentasks/src/main/play/listings/en-GB/full-description.txt @@ -20,6 +20,3 @@ To report bugs, please use this bug tracker: https://github.com/dmfs/tasks/issue * many more Please don't rate missing features, but only features the app already has. The app is still under development and lots of fancy stuff is still to come. - -Permissions -At present the app doesn't use the "read contacts" permission. This permission has been added in advance for future releases. It's planned to support adding attendees to tasks and to provide auto-completion for the contacts. -- GitLab