Merge "Fix NPE crash in UsageAccessDetails" am: cd959f28a0
am: 296c46404c
am: c13415391b
am: 913d1667ce
Change-Id: Ib859bec6cd9ca1422856d091fc7a0b9894397b04
This commit is contained in:
@@ -217,7 +217,9 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
||||
|
||||
@Override
|
||||
public void onPackageListChanged() {
|
||||
refreshUi();
|
||||
if (!refreshUi()) {
|
||||
setIntentAndFinish(true, true);
|
||||
}
|
||||
}
|
||||
|
||||
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
|
||||
|
@@ -137,6 +137,9 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
|
||||
@Override
|
||||
protected boolean refreshUi() {
|
||||
if (mPackageInfo == null) {
|
||||
return false;
|
||||
}
|
||||
mUsageState = mUsageBridge.getUsageInfo(mPackageName,
|
||||
mPackageInfo.applicationInfo.uid);
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.RemoteException;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
@@ -65,4 +66,11 @@ public class UsageAccessDetailsTest {
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(nullable(Context.class),
|
||||
eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_USAGE_VIEW_DENY), eq("app"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshUi_nullPackageInfo_shouldNotCrash() throws RemoteException {
|
||||
mFragment.mPackageInfo = null;
|
||||
mFragment.refreshUi();
|
||||
// should not crash
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user