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

Commit 5a16ef86 authored by Walter Jang's avatar Walter Jang
Browse files

Check for telephony before asking of SMS permission on QuickContact

Bug 30252285

Change-Id: I2814bd77e93b7e34e7d24dd5d8cd7fe0cf845838
parent 2b0d2982
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -958,21 +958,25 @@ public class QuickContactActivity extends ContactsActivity
        // 2. App doesn't have permission, user denied it previously.
        // 3. App has permission.
        // Permission explanation card is displayed only for case 1.
        final boolean hasTelephonyFeature =
                getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);

        final boolean hasCalendarPermission = PermissionsUtil.hasPermission(
                this, Manifest.permission.READ_CALENDAR);
        final boolean hasSMSPermission = PermissionsUtil.hasPermission(
                this, Manifest.permission.READ_SMS);
        final boolean hasSMSPermission = hasTelephonyFeature
                && PermissionsUtil.hasPermission(this, Manifest.permission.READ_SMS);

        final boolean wasCalendarPermissionDenied =
                ActivityCompat.shouldShowRequestPermissionRationale(
                        this, Manifest.permission.READ_CALENDAR);
        final boolean wasSMSPermissionDenied =
                ActivityCompat.shouldShowRequestPermissionRationale(
                hasTelephonyFeature && ActivityCompat.shouldShowRequestPermissionRationale(
                        this, Manifest.permission.READ_SMS);

        final boolean shouldDisplayCalendarMessage =
                !hasCalendarPermission && !wasCalendarPermissionDenied;
        final boolean shouldDisplaySMSMessage = !hasSMSPermission && !wasSMSPermissionDenied;
        final boolean shouldDisplaySMSMessage =
                hasTelephonyFeature && !hasSMSPermission && !wasSMSPermissionDenied;
        mShouldShowPermissionExplanation = shouldDisplayCalendarMessage || shouldDisplaySMSMessage;

        if (shouldDisplayCalendarMessage && shouldDisplaySMSMessage) {