Loading core/java/android/os/Environment.java +18 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,24 @@ public class Environment { return new File(getDataPreloadsDirectory(), "media"); } /** * Returns location of preloaded cache directory for package name * @see #getDataPreloadsDirectory() * {@hide} */ public static File getDataPreloadsFileCacheDirectory(String packageName) { return new File(getDataPreloadsFileCacheDirectory(), packageName); } /** * Returns location of preloaded cache directory. * @see #getDataPreloadsDirectory() * {@hide} */ public static File getDataPreloadsFileCacheDirectory() { return new File(getDataPreloadsDirectory(), "file_cache"); } /** * Return the primary shared/external storage directory. This directory may * not currently be accessible if it has been mounted by the user on their Loading services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java +29 −7 Original line number Diff line number Diff line Loading @@ -254,13 +254,10 @@ public class RetailDemoModeService extends SystemService { mInjector.systemPropertiesSet(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "0"); // Run on the bg thread to not block the fg thread BackgroundThread.getHandler().post(new Runnable() { @Override public void run() { BackgroundThread.getHandler().post(() -> { if (!deletePreloadsFolderContents()) { Slog.w(TAG, "Failed to delete preloads folder contents"); } } }); stopDemoMode(); Loading Loading @@ -443,8 +440,29 @@ public class RetailDemoModeService extends SystemService { private boolean deletePreloadsFolderContents() { final File dir = mInjector.getDataPreloadsDirectory(); final File[] files = FileUtils.listFilesOrEmpty(dir); final File fileCacheDirectory = mInjector.getDataPreloadsFileCacheDirectory(); Slog.i(TAG, "Deleting contents of " + dir); return FileUtils.deleteContents(dir); boolean success = true; for (File file : files) { if (file.isFile()) { if (!file.delete()) { success = false; Slog.w(TAG, "Cannot delete file " + file); } } else { // Do not remove file_cache dir if (!file.equals(fileCacheDirectory)) { if (!FileUtils.deleteContentsAndDir(file)) { success = false; Slog.w(TAG, "Cannot delete dir and its content " + file); } } else { Slog.i(TAG, "Skipping directory with file cache " + file); } } } return success; } private void registerBroadcastReceiver() { Loading Loading @@ -818,6 +836,10 @@ public class RetailDemoModeService extends SystemService { return Environment.getDataPreloadsDirectory(); } File getDataPreloadsFileCacheDirectory() { return Environment.getDataPreloadsFileCacheDirectory(); } void publishLocalService(RetailDemoModeService service, RetailDemoModeServiceInternal localService) { service.publishLocalService(RetailDemoModeServiceInternal.class, localService); Loading services/tests/servicestests/src/com/android/server/retaildemo/RetailDemoModeServiceTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,11 @@ public class RetailDemoModeServiceTest { return mTestPreloadsDir; } @Override File getDataPreloadsFileCacheDirectory() { return new File(mTestPreloadsDir, "file_cache"); } @Override void publishLocalService(RetailDemoModeService service, RetailDemoModeServiceInternal localService) { Loading Loading
core/java/android/os/Environment.java +18 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,24 @@ public class Environment { return new File(getDataPreloadsDirectory(), "media"); } /** * Returns location of preloaded cache directory for package name * @see #getDataPreloadsDirectory() * {@hide} */ public static File getDataPreloadsFileCacheDirectory(String packageName) { return new File(getDataPreloadsFileCacheDirectory(), packageName); } /** * Returns location of preloaded cache directory. * @see #getDataPreloadsDirectory() * {@hide} */ public static File getDataPreloadsFileCacheDirectory() { return new File(getDataPreloadsDirectory(), "file_cache"); } /** * Return the primary shared/external storage directory. This directory may * not currently be accessible if it has been mounted by the user on their Loading
services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java +29 −7 Original line number Diff line number Diff line Loading @@ -254,13 +254,10 @@ public class RetailDemoModeService extends SystemService { mInjector.systemPropertiesSet(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "0"); // Run on the bg thread to not block the fg thread BackgroundThread.getHandler().post(new Runnable() { @Override public void run() { BackgroundThread.getHandler().post(() -> { if (!deletePreloadsFolderContents()) { Slog.w(TAG, "Failed to delete preloads folder contents"); } } }); stopDemoMode(); Loading Loading @@ -443,8 +440,29 @@ public class RetailDemoModeService extends SystemService { private boolean deletePreloadsFolderContents() { final File dir = mInjector.getDataPreloadsDirectory(); final File[] files = FileUtils.listFilesOrEmpty(dir); final File fileCacheDirectory = mInjector.getDataPreloadsFileCacheDirectory(); Slog.i(TAG, "Deleting contents of " + dir); return FileUtils.deleteContents(dir); boolean success = true; for (File file : files) { if (file.isFile()) { if (!file.delete()) { success = false; Slog.w(TAG, "Cannot delete file " + file); } } else { // Do not remove file_cache dir if (!file.equals(fileCacheDirectory)) { if (!FileUtils.deleteContentsAndDir(file)) { success = false; Slog.w(TAG, "Cannot delete dir and its content " + file); } } else { Slog.i(TAG, "Skipping directory with file cache " + file); } } } return success; } private void registerBroadcastReceiver() { Loading Loading @@ -818,6 +836,10 @@ public class RetailDemoModeService extends SystemService { return Environment.getDataPreloadsDirectory(); } File getDataPreloadsFileCacheDirectory() { return Environment.getDataPreloadsFileCacheDirectory(); } void publishLocalService(RetailDemoModeService service, RetailDemoModeServiceInternal localService) { service.publishLocalService(RetailDemoModeServiceInternal.class, localService); Loading
services/tests/servicestests/src/com/android/server/retaildemo/RetailDemoModeServiceTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,11 @@ public class RetailDemoModeServiceTest { return mTestPreloadsDir; } @Override File getDataPreloadsFileCacheDirectory() { return new File(mTestPreloadsDir, "file_cache"); } @Override void publishLocalService(RetailDemoModeService service, RetailDemoModeServiceInternal localService) { Loading