Merge "Fix NPE crash in UsageAccessDetails" am: cd959f28a0 am: 296c46404c

am: c13415391b

Change-Id: I8e5050b2b4c5884b93ef56155f50d1fffcc13579
This commit is contained in:
Doris Ling
2017-09-21 19:29:53 +00:00
committed by android-build-merger
3 changed files with 14 additions and 1 deletions

View File

@@ -218,7 +218,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,

View File

@@ -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);

View File

@@ -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
}
}