summaryrefslogtreecommitdiffstats
path: root/src/org/cyanogenmod/themes/provider/PreviewGenerationService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/cyanogenmod/themes/provider/PreviewGenerationService.java')
-rw-r--r--src/org/cyanogenmod/themes/provider/PreviewGenerationService.java33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/org/cyanogenmod/themes/provider/PreviewGenerationService.java b/src/org/cyanogenmod/themes/provider/PreviewGenerationService.java
index 3414144..fd33308 100644
--- a/src/org/cyanogenmod/themes/provider/PreviewGenerationService.java
+++ b/src/org/cyanogenmod/themes/provider/PreviewGenerationService.java
@@ -33,6 +33,8 @@ import android.util.Log;
import org.cyanogenmod.themes.provider.util.BootAnimationPreviewGenerator;
import org.cyanogenmod.themes.provider.util.IconPreviewGenerator;
import org.cyanogenmod.themes.provider.util.IconPreviewGenerator.IconItems;
+import org.cyanogenmod.themes.provider.util.LiveLockScreenPreviewGenerator;
+import org.cyanogenmod.themes.provider.util.LiveLockScreenPreviewGenerator.LiveLockScreenItems;
import org.cyanogenmod.themes.provider.util.PreviewUtils;
import org.cyanogenmod.themes.provider.util.StylePreviewGenerator;
import org.cyanogenmod.themes.provider.util.StylePreviewGenerator.StyleItems;
@@ -74,6 +76,7 @@ public class PreviewGenerationService extends IntentService {
boolean hasWallpaper = false;
boolean hasStyles = false;
boolean hasBootanimation = false;
+ boolean hasLiveLockScreen = false;
boolean isSystemTheme = ThemeConfig.SYSTEM_DEFAULT.equals(pkgName);
Cursor c = queryTheme(this, pkgName);
if (c != null) {
@@ -88,6 +91,8 @@ public class PreviewGenerationService extends IntentService {
hasStyles = c.getInt(c.getColumnIndex(ThemesColumns.MODIFIES_OVERLAYS)) == 1;
hasBootanimation =
c.getInt(c.getColumnIndex(ThemesColumns.MODIFIES_BOOT_ANIM)) == 1;
+ hasLiveLockScreen =
+ c.getInt(c.getColumnIndex(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN)) == 1;
}
c.close();
}
@@ -152,14 +157,25 @@ public class PreviewGenerationService extends IntentService {
Log.e(TAG, "Unable to create boot animation preview for " + pkgName, e);
}
}
+
+ LiveLockScreenItems liveLockScreenItems = null;
+ if (hasLiveLockScreen) {
+ try {
+ liveLockScreenItems = new LiveLockScreenPreviewGenerator(this)
+ .generateLiveLockScreenPreview(pkgName);
+ } catch (Exception e) {
+ Log.e(TAG, "Unable to create live lock screen preview for " + pkgName, e);
+ }
+ }
insertPreviewItemsIntoDb(pkgName, items, iconItems, wallpaperItems, styleItems,
- bootAnim);
+ liveLockScreenItems, bootAnim);
}
}
}
private void insertPreviewItemsIntoDb(String pkgName, SystemUiItems items, IconItems icons,
- WallpaperItems wallpaperItems, StyleItems styleItems, Bitmap bootAnim) {
+ WallpaperItems wallpaperItems, StyleItems styleItems,
+ LiveLockScreenItems liveLockScreenItems, Bitmap bootAnim) {
String[] projection = {ThemesColumns._ID};
String selection = ThemesColumns.PKG_NAME + "=?";
String[] selectionArgs = { pkgName };
@@ -318,6 +334,19 @@ public class PreviewGenerationService extends IntentService {
values = createPreviewEntryString(id, PreviewColumns.STYLE_PREVIEW, path);
themeValues.add(values);
}
+ if (liveLockScreenItems != null) {
+ path = PreviewUtils.compressAndSaveJpg(liveLockScreenItems.thumbnail, filesDir,
+ pkgName, PreviewColumns.LIVE_LOCK_SCREEN_THUMBNAIL);
+ values = createPreviewEntryString(id, PreviewColumns.LIVE_LOCK_SCREEN_THUMBNAIL,
+ path);
+ themeValues.add(values);
+
+ path = PreviewUtils.compressAndSaveJpg(liveLockScreenItems.preview, filesDir,
+ pkgName, PreviewColumns.LIVE_LOCK_SCREEN_PREVIEW);
+ values = createPreviewEntryString(id, PreviewColumns.LIVE_LOCK_SCREEN_PREVIEW,
+ path);
+ themeValues.add(values);
+ }
if (bootAnim != null) {
path = PreviewUtils.compressAndSavePng(bootAnim, filesDir, pkgName,
PreviewColumns.BOOTANIMATION_THUMBNAIL);