diff options
Diffstat (limited to 'src/org/cyanogenmod/themes/provider/PreviewGenerationService.java')
-rw-r--r-- | src/org/cyanogenmod/themes/provider/PreviewGenerationService.java | 33 |
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); |