[Nexus 5 Android Development] Cl3Kener:
Theme Engine Added

September 13, 2014

Well I've finally decided to waste several hours adding the theme engine (check the changelog to see why it takes so long) to allow more ROM customization in hopes that will encourage more users to flash and enjoy the fast and simple android experience we have going on here with OptiPurity. (I actually wanted to try a few themes too tbh)

As far as features I currently really don't use anything other the features in this ROM so I don't plan on adding any more. There are plenty of ROMs with lots of features out there and the purpose of this ROM is to keep things simple and that's what I'll do. If you want to add more features to this (or any ROM of your choice) feel free to read this guide I wrote a while ago. http://xdaforums.com/showthread.php?t=2355078 Chapter 1 which is about setting up an android environment on Ubuntu is out of date. I recommend you follow a guide on XDA for setting up an android environment on Ubuntu 14.04 (There should be plenty to choose from). Chapters 2 and onward will still teach you all of the basics you need to know to use github and cherry-pick changes for yourself.

Today's OptiPurity Theme Engine build has complete Turkish Translations thanks to @IWRH He went through and translated them himself. If you want to see other language support feel free to follow his lead and translate them. It's not hard to do.

I don't recommend dirty flashing. It took me two times dirty flashing and a full cleaning with SD Maid to finally get things running correctly after updating to theme engine build. If you do choose to go that route make sure to make a backup and don't complain here about installation errors (mainly 400 and 401 are the two errors you might get when installing themes from play store after dirty flash)

For anyone worried about RAM or Battery and are afraid of the Theme Manager don't worry! Not only are theme engine effects minimal but I will be updating my white and dark builds again in the future for anyone not wanting to see the Theme Manager in their settings menu. I didn't today because there wasn't much added upstream in official purity builds so I thought I'd wait a few more days before updating. (Plus maybe I'd convince a few of you to try the new theme engine)

Enjoy the new builds!

Cl3Kener

Links

http://d-h.st/users/cl3kener/HAMMERHEAD/PURITY/

http://uber.oceighty.co/HAMMERHEAD/PURITY/

*Note Make sure to choose Theme Engine build

Changelog

[B]Manifest[/B]

224ca80 Update Readme
b7b8efd Wrong Remote
06d097f Update branches
e42e6fd Track Media Provider from PA
44394c2 Track My Frameworks Native
3488304 Track from Purity Plus
b354fc9 Track Theme Providers

[B]
Build[/B]

4fcb8cf gettop: fix symlink detection
affdad4 Apply correct, optimized mfpu compiler flag for ARMv7-A Cortex CPUs
9b2db5e Don't set CCACHE_BASEDIR if its already set
07dc6ac build: Set ccache base to build top
3bf159d Runtime resource overlay, iteration 2
88df7b8 Add appt

[B]Frameworks Base[/B]

dc3a31d Change value to make less ambiguous
d7d62eb Fix Turkish Derp
c1a77e7 Turkish - Add Remaining
2469c96 core: Add Turkish
ec64d80 SystemUI: Add Turkish Translations
fc8f575 Revert "Allow translucent navigation bar in landscape mode."
63f4276 Solve a possible NPE in the Documents provider
d9cd9e8 Fix broken arc drawing in Camera app.
f451e53 Add CAP_BLOCK_SUSPEND Linux capability to system server
f8b29a5 Themes: Add Missing STYLE_URI
d365572 Allow granting permissions based on signature in <allow-permission/>
99a5d2c Themes: Load correct common resources
f73dd70 Themes: Update provider with components that were applied
27d7425 Themes: Only kill launchers if overlays or icons changed
2e53ffa Themes: Fix native crash in libandroidfw
52bc963 Themes: Remove listener if exception is thrown
73a9691 Themes: Track NotFoundException on app launch failure
f2ee7d1 Themes: Fix setting wallpaper from a legacy theme
df935ad Themes: Avoid NPE when setting text in TickerView
7735c83 Move idmap to frameworks/base [2/2]
c366c1e Themes: Load missing style attributes from original style
ed19e18 Themes: Fix blurry composed icons
772e47a Themes: Make sure composed icon info is meaningful
b231b6d Themes: Fix icon filters clamping to wrong values
8ace77a Themes: Add ability to apply color filters to composed icons
78b295a Make sure ThemeConfig is non-null when loading resources
f62df4a Fix ressource leak in getFileCrC
e521279 Themes: setUserRequired(false) when updating audibles
45f57a3 Themes: Allow clearing the wallpaper and ls wallpaper
eab6e32 Themes: Pass resource IDs instead of bitmaps [1/2]
86a7a6c Themes: Build icon cache when applying icons
8646148 Add navbar background preview to ThemesContract
067f054 Allow translucent navigation bar in landscape mode.
12f7db3 SystemUI: Separate system bar BGs for themes
d4629ad SystemUI: Restore bounds when loading new gradient
40cf3ad Themes: Allow theming navbar bg color
6bb6f08 Support theming navbar separately from SystemUI
d8bb4de frameworks: allow Keyguard package to be defined in overlay
960767c CM11 Themes: Update lights out resources and extra nav buttons
4a1401f Missing part while new theme engine merges
f40ef8e Add column for tracking when a theme was installed
86dba2f Fix: wallpaper changes when changing lockscreen WP
c808e11 Include default wallpaper in LockscreenWallpaperPickerActivity
1106c30 Move 3rd party wallpaper pickers to the front
e2c25b1 Framework: Make the dialog divider color themeable
bfb1ee0 WallpaperCropper: fix lockscreen wallpaper "Set wallpaper" string
6c8c987 Load original drawable if cached icon throws NotFoundException
4d13893 Themes: Whitelist animations
a0f088d IconPackHelper: Don't respect an icons original size if too large.
9a86dde Themes: Make notification list bg themeable
575674a Themes: Add helper methods for creating complete component maps
9f824bb InputWrapper: opt out early if session == null
ec77687 Mark constructor as accessible in LayoutInflater.
8ed3f6b frameworks/base: Fix the random UI corruption
f4af35d Themes: Add STYLE_THUMBNAIL to PreviewColumns
2098218 Add SET_WALLPAPER permission to SystemUI
37409ae Catch all exceptions when retrieving ComposedIconInfo
d23a0c2 Themes: Find wp asset when APK has dir entries
c39ceb3 Themes: Support applying components from multiple themes [1/3]
f53c8e2 IconPackHelper: Respect the original size of bitmap icons
37486df Fix ResourceNotFoundException when updating applied theme
98381c6 WallpaperCropper: load wallpapers in the background
9dfe1cf Themes: Add URI for querying previews of applied components.
8f8d1c6 Themes: Add method to "apply all" a theme
602302a Fix themes not sticking on reboot if using Xposed framework. Credit goes to @rovo89 for the fix
afe4716 Fix build
ad592cf Themes: Style, boot animation, and wallpaper previews
a7aa177 Themes: Add icon previews to ThemesContract
7b9344f Use systemui's applied theme for notifications.
daefc49 Allow specifying a theme when creating a Context
9c0aae8 Add getThemedResourcesForApplicationAsUser()
4f1f3fe Modify config to support app specific themes [1/4]
deee9a2 Use ArrayListExtra for broadcasting theme changes [1/2]
6f8f62d Themes: Update LoadedApk resources.
588c7fd PhoneStatusBar: Readd headsup view when theme change occurs.
24c57a8 Themes: add ability to theme quick settings battery tiles
619c81d Themes: Use default_wallpaper for HOLO lockscreen wp
d7a2ada Themes: Use first asset entry for lockscreen wallpaper
b04aff8 Theme IME switcher alert dialog
68d1736 Themes: Use INSTALL_LOCATION_INTERNAL_ONLY for legacy icon packs
c031e52 Fix Reboot menu not getting themed
363e752 Fix SystemUI FC on applying a theme
3696db2 Themes: Theme immersive mode cling.
2a2d66a Fix PackageManagerService WTF in systemReady()
d8fc458 WallpaperCropper: include wallpapers from themes!
870650d Add previews to the themes contract.
8ab04b8 Add status bar and navigation bar to ThemesContract
5177e31 Remove DEFAULT_THEME_APPLIED_ON_FIRST_BOOT
0eb49fc Install themes and icon packs for secondary users.
af25565 Don't create idmap if app doesn't have resources.arsc
fa6cb7a Fix icon support for secondary users.
55ba445 PackageManagerService: Prevent sending a SIGKILL while the device shutting down
d15f584 tests: Hide new private APIs
ac03565 Themes: Set bounds on iconUpon
0d66195 Don't log an error if we cannot open icon hash
7310269 Themes: Get resources with an explicit theme attached.
5c61f01 Build fix due to theme engine commits
8ee1565 Themes: Add categories to theme change intent.
263c348 Themes: PhoneWindowManager UI context on demand
133dcf6 Themes: Don't kill launchers that handle the theme change
5f66e52 Themes: Don't set icons for iconpack that is applied.
1f9b097 CM11 Themes: Add support for composed icons [1/2]
081bc81 Theme special volumeup+down volume panel
28f5985 sync status bar transparency state on theme change
7465d5a Themes: Avoid compiling icon packs every boot
949b0b8 Themes: Check CRC of APK MANIFEST.MF at install
b9cd223 synchronize updateStringCache on mAccessLock
23e7192 Don't cleanup overlay mapping for non-theme apps
e2f0c39 Themes: uninstallThemeForAllApps shouldn't check if map is empty if it's null
867e521 Themes: Update last postFinish call
c64723e WallpaperCropper: do not display null bitmaps
d6d9a4e Themes: Delete icon resources during uninstall
109ce3d Themes: remove unused code
dd471f2 Make theme change broadcast a protected broadcast.
c5e5884 Themes: Handle apps using "original-package" tag
b864ee3 Themes: Add '|' delimited list of components to broadcast
2a13822 Cleanup app->{theme1,theme2...} mapping on uninstall
d567eed idmap: reduce CREATING STRING CACHE verbosity
68624d4 Revert "idmap: Don't log spam "CREATING STRING CACHE""
e6acc98 No need to hide flags in configChange
3a587d1 WallpaperCropper requires these permission.
9b1d038 Fix wallpapers not applying in full screen
e9406a9 Themes: Add read/write permissions [1/2]
709067f SystemUI: Make wifi combo margin themable
789bc3f CM11 Themes: Use package name from AndroidManifest
5c44119 CM11 Themes: Use sendBroadcastAsUser in ThemeService
8aed3de add a getter for the x and y offsets of the wallpaper window
b7cdaf9 CM11 Themes: load wp from apk if uri is null
0dbc541 Themes: Map themed icon to app after upgrade
96a47cb Avoid calling idmap w/ trailing whitespace [1/2]
bb34399 Themes: Fix bad idmaps for system themes
83efa64 CM11 Themes: Clear wallpaper mixnmatch entry on external change
2cf906d Notify callbacks on "any" wallpaper change
f6153a9 persist the changed position values in updateWallpaperOffsetLocked, even with a null mWallpaperTarget
b644715 CM11 Themes: Fix applyDefaultTheme implementation
0ee2c62 Avoid app install failures from malformed themes
872f7d8 CM11 Themes: Expose applyDefaultTheme to public service
d520d71 Themes: Fix -110 install error [2/2]
8532cce Cleanup themes that fail to install
32abca7 CM11 Themes: Get proper package name in attachThemeAssets
9b9ba15 CM11 Themes: Reduce "unable to load asset" log spam
b031d1e CM11 Themes: Allow defining a custom default theme [1/3]
3a7394a Send broadcast when package is 'about' to be removed
adb20e3 Themes: Support launcher based icon packs [1/2]
0395ef2 CM11 Themes: Fix how common resources are found
b757a0c CM11 Themes: Handle legacy themes in createIdmapsForPackageLI
94dd901 CM11 Themes: Properly handle themeing apps on install
6868ac5 CM11 Themes: Don't set sys.refresh_theme on icon update
563c248 WallpaperPicker: Destroy cropview to avoid leaks
92737ba CM11 Themes: remove handleThemeConfigChanges
39bd459 base: Add theme support to Ringtone
57fc822 wallpaperpicker
a927119 Add wallpaper pickers to seperate package [1/2]
517f2c4 rename the custom lockscreen state action
eb24b29 Set themes to install internal only
20ed348 CM11 Themes: Properly handle SystemUI theme package name.
76a5fd6 CM11 Themes: Include alarms in mixnmatch.
a88a557 CM11 Themes: Common overlay for sharing resources. [1/2]
bbbfe5a CM11 Themes: Ensure customTheme is not null.
b9f58cb Return system theme when SecurityException is caught.
d785c91 frameworks: move keyguard wallpaper to system (1/2)
9e3870d idmap: Don't log spam "CREATING STRING CACHE"
fe43b03 WallpaperCropper: Fix crash when set .gif as wallpaper
0589410 hide new AssetManager methods for themes
acb1942 Allow icons in shared restables to be themed
a5e7b1e CM11 Themes: Use theme name for audible name.
243217a CM11 Themes: Allow forcing idmap (re)creation.
d1d54ab CM11 Themes: Remove type matching restriction
e0c1881 CM11 Themes: Put overlays in their own group.
8b89c8a Fix segfault removing theme assets
73c0361 Lockscreen wallpaper for themes
b1820e1 wallpaper: add missing @hides
d788daa Wallpaper Overscroll and Transparent NavBar
b7ab983 Cleanup theme assets when done with them
9998e7c CM11 Themes: Use 32bit hash to decide if idmap should be created
1411d5f CM11 Themes: Take into account ALL res/xml dirs
807e588 SysUI: Don't recreate controllers.
3b5fae8 fix build
bd9249a New Theme Engine [1/6]
b2e3073 Runtime resource overlay, iteration 2, test cases
f3be8bb Runtime resource overlay, iteration 2
f89a94b New command line tool 'idmap'
e953acf Remove T-mobile items not used by new theme engine
a1dd1c3 Frameworks: Update DocumentsUI for theme chooser combatibility
3b81405 SystemUI: Allow theming battery via theme chooser
3a7f0c4 Theme-Chooser
6185c54 GlobalActions.java: fix soft reboot

[B]Frameworks Native[/B]

cf0ee08 Fix some char16_t vs. uint16_t bits
2905d5c frameworks/native: Fix build with ISO C++11 compilers
b00211f surfaceflinger: Don't crash on missing functions in hwcomposers
7c87694 surfaceflinger: Work around aliasing violations
54489fa frameworks/native: Fix build with ISO C++11 compilers
cde40c4 binder: Fix ABI incompatibility between older and newer compilers
5138633 frameworks/native: Fix build in ISO C++ 11 mode
b7d6a08 Move idmap to frameworks/base [1/2]
577f2bc Avoid calling idmap w/ trailing whitespace [2/2]
1a640c1 Themes: Fix -110 install error [1/2]
5d7382c CM11 Themes: Common overlay for sharing resources. [2/2]
5cfe81b CM11 Themes: Pipe stderr from aapt to logcat.
c93afbc CM11 Themes: Store hash codes for target and overlay in idmap
9a7d9c7 New Theme Engine [2/6] CM11 Themes
e8ec72b Runtime resource overlay, iteration 2
b4cf54f New command line tool 'idmap'

[B]Settings Menu [/B]

fd4cba4 Fix Turkish
f7cf5f2 Turkish fix volume rocker description
48d571e Fix some Turkish Derps on my part
9c6b430 Add Turkish Translations
3dd84a5 Fix up Settings
8e4fdd3 Theme-Chooser

[B]
Vendor[/B]

b536b60 Theme engine branch
9a2ad7c Add Themes to Vendor