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

Commit 1a8c2dd8 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

Merge "Add NPE check for refreshUi" into oc-dev

parents 0a6d6188 0b83954f
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -98,6 +98,8 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
    @VisibleForTesting
    Button mUninstallButton;
    @VisibleForTesting
    String mPackageName;
    @VisibleForTesting
    boolean mDisableAfterUninstall = false;

    private final int mRequestUninstall;
@@ -113,7 +115,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
    private MetricsFeatureProvider mMetricsFeatureProvider;

    private LayoutPreference mButtonsPref;
    private String mPackageName;
    private int mUserId;
    private boolean mUpdatedSysApp = false;
    private boolean mListeningToPackageRemove = false;
@@ -134,7 +135,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
        mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();

        mState = state;
        mSession = mState.newSession(this);
        mDpm = dpm;
        mUserManager = userManager;
        mPm = packageManager;
@@ -145,10 +145,10 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
        mRequestUninstall = requestUninstall;
        mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin;

        lifecycle.addObserver(this);

        if (packageName != null) {
            mAppEntry = mState.getEntry(packageName, mUserId);
            mSession = mState.newSession(this);
            lifecycle.addObserver(this);
        } else {
            mFinishing = true;
        }
@@ -620,7 +620,11 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
        return false;
    }

    private boolean refreshUi() {
    @VisibleForTesting
    boolean refreshUi() {
        if (mPackageName == null) {
            return false;
        }
        retrieveAppEntry();
        if (mAppEntry == null || mPackageInfo == null) {
            return false;
+8 −0
Original line number Diff line number Diff line
@@ -344,6 +344,14 @@ public class AppButtonsPreferenceControllerTest {
        assertThat(controllable).isTrue();
    }

    @Test
    public void testRefreshUi_packageNull_shouldNotCrash() {
        mController.mPackageName = null;

        // Should not crash in this method
        assertThat(mController.refreshUi()).isFalse();
    }

    /**
     * The test fragment which implements
     * {@link ButtonActionDialogFragment.AppButtonsDialogListener}