Loading src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java +4 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.applications; import android.annotation.NonNull; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.util.Log; Loading @@ -27,6 +28,8 @@ import com.android.settings.utils.AsyncLoader; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource.AppStorageStats; import java.io.IOException; /** * Fetches the storage stats using the StorageStatsManager for a given package and user tuple. */ Loading @@ -49,7 +52,7 @@ public class FetchPackageStorageAsyncLoader extends AsyncLoader<AppStorageStats> AppStorageStats result = null; try { result = mSource.getStatsForPackage(mInfo.volumeUuid, mInfo.packageName, mUser); } catch (IllegalStateException e) { } catch (NameNotFoundException | IOException e) { Log.w(TAG, "Package may have been removed during query, failing gracefully", e); } return result; Loading src/com/android/settings/applications/MusicViewHolderController.java +11 −1 Original line number Diff line number Diff line Loading @@ -23,15 +23,20 @@ import android.os.UserHandle; import android.provider.DocumentsContract; import android.support.annotation.WorkerThread; import android.text.format.Formatter; import android.util.Log; import com.android.settings.R; import com.android.settings.Utils; import com.android.settingslib.applications.StorageStatsSource; import java.io.IOException; /** * MusicViewHolderController controls an Audio/Music file view in the ManageApplications view. */ public class MusicViewHolderController implements FileViewHolderController { private static final String TAG = "MusicViewHolderController"; private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents"; private Context mContext; Loading @@ -51,7 +56,12 @@ public class MusicViewHolderController implements FileViewHolderController { @Override @WorkerThread public void queryStats() { try { mMusicSize = mSource.getExternalStorageStats(mVolumeUuid, mUser).audioBytes; } catch (IOException e) { mMusicSize = 0; Log.w(TAG, e); } } @Override Loading src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java +8 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.UserInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.util.Log; import android.util.SparseArray; Loading @@ -32,6 +33,7 @@ import com.android.settings.applications.UserManagerWrapper; import com.android.settings.utils.AsyncLoader; import com.android.settingslib.applications.StorageStatsSource; import java.io.IOException; import java.util.List; /** Loading Loading @@ -83,7 +85,7 @@ public class StorageAsyncLoader StorageStatsSource.AppStorageStats stats; try { stats = mStatsManager.getStatsForPackage(mUuid, app.packageName, myUser); } catch (IllegalStateException e) { } catch (NameNotFoundException | IOException e) { // This may happen if the package was removed during our calculation. Log.w("App unexpectedly not found", e); continue; Loading Loading @@ -122,7 +124,11 @@ public class StorageAsyncLoader } Log.d(TAG, "Loading external stats"); try { result.externalStats = mStatsManager.getExternalStorageStats(mUuid, UserHandle.of(userId)); } catch (IOException e) { Log.w(TAG, e); } Log.d(TAG, "Obtaining result completed"); return result; } Loading tests/robotests/src/com/android/settings/applications/FetchPackageStorageAsyncLoaderTest.java +5 −3 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import java.io.IOException; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class FetchPackageStorageAsyncLoaderTest { Loading @@ -56,7 +58,7 @@ public class FetchPackageStorageAsyncLoaderTest { } @Test public void worksForValidPackageNameAndUid() { public void worksForValidPackageNameAndUid() throws Exception { AppStorageStats stats = mock(AppStorageStats.class); when(stats.getCodeBytes()).thenReturn(1L); when(stats.getDataBytes()).thenReturn(2L); Loading @@ -72,9 +74,9 @@ public class FetchPackageStorageAsyncLoaderTest { } @Test public void installerExceptionHandledCleanly() { public void installerExceptionHandledCleanly() throws Exception { when(mSource.getStatsForPackage(anyString(), anyString(), any(UserHandle.class))). thenThrow(new IllegalStateException("intentional failure")); thenThrow(new IOException("intentional failure")); ApplicationInfo info = new ApplicationInfo(); info.packageName = PACKAGE_NAME; FetchPackageStorageAsyncLoader task = new FetchPackageStorageAsyncLoader( Loading tests/robotests/src/com/android/settings/applications/MusicViewHolderControllerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ public class MusicViewHolderControllerTest { } @Test public void storageShouldRepresentStorageStatsQuery() { public void storageShouldRepresentStorageStatsQuery() throws Exception { when(mSource.getExternalStorageStats(any(String.class), any(UserHandle.class))).thenReturn( new StorageStatsSource.ExternalStorageStats(1, 1, 0, 0)); Loading Loading
src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java +4 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.applications; import android.annotation.NonNull; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.util.Log; Loading @@ -27,6 +28,8 @@ import com.android.settings.utils.AsyncLoader; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource.AppStorageStats; import java.io.IOException; /** * Fetches the storage stats using the StorageStatsManager for a given package and user tuple. */ Loading @@ -49,7 +52,7 @@ public class FetchPackageStorageAsyncLoader extends AsyncLoader<AppStorageStats> AppStorageStats result = null; try { result = mSource.getStatsForPackage(mInfo.volumeUuid, mInfo.packageName, mUser); } catch (IllegalStateException e) { } catch (NameNotFoundException | IOException e) { Log.w(TAG, "Package may have been removed during query, failing gracefully", e); } return result; Loading
src/com/android/settings/applications/MusicViewHolderController.java +11 −1 Original line number Diff line number Diff line Loading @@ -23,15 +23,20 @@ import android.os.UserHandle; import android.provider.DocumentsContract; import android.support.annotation.WorkerThread; import android.text.format.Formatter; import android.util.Log; import com.android.settings.R; import com.android.settings.Utils; import com.android.settingslib.applications.StorageStatsSource; import java.io.IOException; /** * MusicViewHolderController controls an Audio/Music file view in the ManageApplications view. */ public class MusicViewHolderController implements FileViewHolderController { private static final String TAG = "MusicViewHolderController"; private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents"; private Context mContext; Loading @@ -51,7 +56,12 @@ public class MusicViewHolderController implements FileViewHolderController { @Override @WorkerThread public void queryStats() { try { mMusicSize = mSource.getExternalStorageStats(mVolumeUuid, mUser).audioBytes; } catch (IOException e) { mMusicSize = 0; Log.w(TAG, e); } } @Override Loading
src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java +8 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.UserInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.util.Log; import android.util.SparseArray; Loading @@ -32,6 +33,7 @@ import com.android.settings.applications.UserManagerWrapper; import com.android.settings.utils.AsyncLoader; import com.android.settingslib.applications.StorageStatsSource; import java.io.IOException; import java.util.List; /** Loading Loading @@ -83,7 +85,7 @@ public class StorageAsyncLoader StorageStatsSource.AppStorageStats stats; try { stats = mStatsManager.getStatsForPackage(mUuid, app.packageName, myUser); } catch (IllegalStateException e) { } catch (NameNotFoundException | IOException e) { // This may happen if the package was removed during our calculation. Log.w("App unexpectedly not found", e); continue; Loading Loading @@ -122,7 +124,11 @@ public class StorageAsyncLoader } Log.d(TAG, "Loading external stats"); try { result.externalStats = mStatsManager.getExternalStorageStats(mUuid, UserHandle.of(userId)); } catch (IOException e) { Log.w(TAG, e); } Log.d(TAG, "Obtaining result completed"); return result; } Loading
tests/robotests/src/com/android/settings/applications/FetchPackageStorageAsyncLoaderTest.java +5 −3 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import java.io.IOException; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class FetchPackageStorageAsyncLoaderTest { Loading @@ -56,7 +58,7 @@ public class FetchPackageStorageAsyncLoaderTest { } @Test public void worksForValidPackageNameAndUid() { public void worksForValidPackageNameAndUid() throws Exception { AppStorageStats stats = mock(AppStorageStats.class); when(stats.getCodeBytes()).thenReturn(1L); when(stats.getDataBytes()).thenReturn(2L); Loading @@ -72,9 +74,9 @@ public class FetchPackageStorageAsyncLoaderTest { } @Test public void installerExceptionHandledCleanly() { public void installerExceptionHandledCleanly() throws Exception { when(mSource.getStatsForPackage(anyString(), anyString(), any(UserHandle.class))). thenThrow(new IllegalStateException("intentional failure")); thenThrow(new IOException("intentional failure")); ApplicationInfo info = new ApplicationInfo(); info.packageName = PACKAGE_NAME; FetchPackageStorageAsyncLoader task = new FetchPackageStorageAsyncLoader( Loading
tests/robotests/src/com/android/settings/applications/MusicViewHolderControllerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ public class MusicViewHolderControllerTest { } @Test public void storageShouldRepresentStorageStatsQuery() { public void storageShouldRepresentStorageStatsQuery() throws Exception { when(mSource.getExternalStorageStats(any(String.class), any(UserHandle.class))).thenReturn( new StorageStatsSource.ExternalStorageStats(1, 1, 0, 0)); Loading