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

Commit 7f043e58 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Merge branch '4006-main-fix_crash' into 'master'

Fixes the Tasks app repeatedly asking for permissions

See merge request !39
parents 04536004 219a87a9
Loading
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@
    <uses-permission
        android:name="android.permission.GET_ACCOUNTS"
        android:maxSdkVersion="25" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
+14 −8
Original line number Diff line number Diff line
@@ -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;
@@ -49,6 +50,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 +104,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("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);
        }
    }
+0 −3
Original line number Diff line number Diff line
@@ -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.

<b>Permissions</b>
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.