Fix crash after uninstalling app

am: 637d419157

Change-Id: I48bf6ceb772fb5ebd1f6ebf8cff12ea664f963c5
This commit is contained in:
Raff Tsai
2019-07-24 05:20:42 -07:00
committed by android-build-merger
2 changed files with 18 additions and 3 deletions

View File

@@ -31,6 +31,7 @@ import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.AppStorageSettings; import com.android.settings.applications.AppStorageSettings;
import com.android.settings.applications.FetchPackageStorageAsyncLoader; import com.android.settings.applications.FetchPackageStorageAsyncLoader;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -48,9 +49,12 @@ public class AppStoragePreferenceController extends AppInfoPreferenceControllerB
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
final boolean isExternal = final ApplicationsState.AppEntry entry = mParent.getAppEntry();
(mParent.getAppEntry().info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; if (entry != null && entry.info != null) {
preference.setSummary(getStorageSummary(mLastResult, isExternal)); final boolean isExternal =
(entry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
preference.setSummary(getStorageSummary(mLastResult, isExternal));
}
} }
@Override @Override

View File

@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -99,6 +100,16 @@ public class AppStoragePreferenceControllerTest {
verify(preference).setSummary(any()); verify(preference).setSummary(any());
} }
@Test
public void updateState_entryIsNull_shouldNotUpdatePreferenceSummary() {
when(mFragment.getAppEntry()).thenReturn(null);
Preference preference = mock(Preference.class);
mController.updateState(preference);
verify(preference, never()).setSummary(any());
}
@Test @Test
public void getStorageSummary_shouldWorkForExternal() { public void getStorageSummary_shouldWorkForExternal() {
final StorageStatsSource.AppStorageStats stats = final StorageStatsSource.AppStorageStats stats =