summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/org/cyanogenmod/themes/provider/ThemesProvider.java1
-rw-r--r--src/org/cyanogenmod/themes/provider/util/PreviewUtils.java21
2 files changed, 22 insertions, 0 deletions
diff --git a/src/org/cyanogenmod/themes/provider/ThemesProvider.java b/src/org/cyanogenmod/themes/provider/ThemesProvider.java
index f263881..61828fb 100644
--- a/src/org/cyanogenmod/themes/provider/ThemesProvider.java
+++ b/src/org/cyanogenmod/themes/provider/ThemesProvider.java
@@ -232,6 +232,7 @@ public class ThemesProvider extends ContentProvider {
*/
mHandler.post(new Runnable() {
public void run() {
+ PreviewUtils.ensureCorrectPreviewPermissions(getContext());
new VerifyInstalledThemesThread().start();
}
});
diff --git a/src/org/cyanogenmod/themes/provider/util/PreviewUtils.java b/src/org/cyanogenmod/themes/provider/util/PreviewUtils.java
index de86092..cda7683 100644
--- a/src/org/cyanogenmod/themes/provider/util/PreviewUtils.java
+++ b/src/org/cyanogenmod/themes/provider/util/PreviewUtils.java
@@ -15,6 +15,7 @@
*/
package org.cyanogenmod.themes.provider.util;
+import android.content.Context;
import android.graphics.Bitmap;
import android.os.FileUtils;
import android.util.Log;
@@ -46,6 +47,26 @@ public class PreviewUtils {
return baseDir + File.separator + PREVIEWS_DIR;
}
+ public static void ensureCorrectPreviewPermissions(Context context) {
+ File previewsDir = new File(getPreviewsDir(context.getFilesDir().getAbsolutePath()));
+ if (previewsDir.exists()) {
+ ensureCorrectPreviewPermissions(previewsDir);
+ }
+ }
+
+ private static void ensureCorrectPreviewPermissions(File file) {
+ int mode = 0;
+ if (file.isDirectory()) {
+ for (File f : file.listFiles()) {
+ ensureCorrectPreviewPermissions(f);
+ }
+ mode = FileUtils.S_IRWXU | FileUtils.S_IRWXG | FileUtils.S_IROTH | FileUtils.S_IXOTH;
+ } else {
+ mode = FileUtils.S_IRWXU | FileUtils.S_IRWXG | FileUtils.S_IROTH;
+ }
+ FileUtils.setPermissions(file, mode, -1, -1);
+ }
+
private static String saveCompressedImage(byte[] image, String baseDir, String pkgName,
String fileName) {
if (image == null) return null;