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

Commit 0e7083bc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refactor PowerWhitelistBackend"

parents ba028863 aaabf2b4
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -75,20 +75,32 @@ public class PowerWhitelistBackend {
            return true;
        }

        if (isDefaultActiveApp(pkg)) {
            return true;
        }

        return false;
    }

    /**
     * Check if it is default active app in multiple area(i.e. SMS, Dialer, Device admin..)
     */
    public boolean isDefaultActiveApp(String pkg) {
        // Additionally, check if pkg is default dialer/sms. They are considered essential apps and
        // should be automatically whitelisted (otherwise user may be able to set restriction on
        // them, leading to bad device behavior.)
        if (!mAppContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
            return false;
        }

        final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_TELEPHONY);
        final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext,
                true /* updateIfNeeded */);
        if (defaultSms != null && TextUtils.equals(pkg, defaultSms.getPackageName())) {
        if (hasTelephony && defaultSms != null && TextUtils.equals(pkg,
                defaultSms.getPackageName())) {
            return true;
        }

        final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication(mAppContext);
        if (TextUtils.equals(pkg, defaultDialer)) {
        if (hasTelephony && TextUtils.equals(pkg, defaultDialer)) {
            return true;
        }

+3 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ public class PowerWhitelistBackendTest {
        ShadowSmsApplication.setDefaultSmsApplication(new ComponentName(testSms, "receiver"));

        assertThat(mPowerWhitelistBackend.isWhitelisted(testSms)).isTrue();
        assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testSms)).isTrue();
    }

    @Test
@@ -126,6 +127,7 @@ public class PowerWhitelistBackendTest {
        ShadowDefaultDialerManager.setDefaultDialerApplication(testDialer);

        assertThat(mPowerWhitelistBackend.isWhitelisted(testDialer)).isTrue();
        assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testDialer)).isTrue();
    }

    @Test
@@ -133,6 +135,7 @@ public class PowerWhitelistBackendTest {
        doReturn(true).when(mDevicePolicyManager).packageHasActiveAdmins(PACKAGE_ONE);

        assertThat(mPowerWhitelistBackend.isWhitelisted(PACKAGE_ONE)).isTrue();
        assertThat(mPowerWhitelistBackend.isDefaultActiveApp(PACKAGE_ONE)).isTrue();
    }

    @Test