http://android-developers.blogspot.com/2010/01/android-21-sdk.html
http://android.git.kernel.org/?p=pl...;hpb=990e91425c63a6fc068e31e44cd1bb30594267a0
Damn, I have to leave to work in 30 min, otherwise a port would be coming soon.
Wow, they're starting to dump code into AOSP.
I'll see if I can build something later tonight.
jubeh said:
Wow, they're starting to dump code into AOSP.
I'll see if I can build something later tonight.
Click to expand...
Click to collapse
I'll be waiting
Now if only it was the actual Nexus, and not Android at 2.1
there's nothing yet on vendor/htc, so building it will be a task. Hopefully they'll toss something there after that so we can just run make and have enough to boot. I can work out the bugs afterwards.
Oh i hope new contacts provider is on the way
no change on the contacts provider yet, plus all the commits are empty, darn, I wanted a look at the Launcher2 code before leaving for work
Sounds like the new gallery might be included?
New link added.
yeah, there's a new gallery package, I love it, it separates the gallery from the camera app (something I had done with the original eclair dump, I stripped out all the camera/camcorder code).
There's a gallery, gallery 3d, desktop clock, launcher2, improvider, management provider, eas service, lock and wipe, and a wallpapers package, plus other misc hardware and building stuff
Alright, leaving for work. I hope they don't dump anything else until tomorrow when I can start working on it . Cheers.
Drooling over here. Bring it on!
are the drivers in there for the camera
Live Wallpaper is in ..
API changes summary
The following is a summary of some notable changes to the framework APIs.
Live Wallpapers
The following additions provide APIs for you to develop animated wallpapers:
New android.service.wallpaper package.
New WallpaperInfo class.
Updated WallpaperManager.
no, drivers(camera/video/etc) are proprietary to the vendor (HTC) and most likely will never make it into the open source project. We need either HTC to release the drivers or reverse engineer them as NCommander is currently working on.
bakgwailo said:
no, drivers(camera/video/etc) are proprietary to the vendor (HTC) and most likely will never make it into the open source project. We need either HTC to release the drivers or reverse engineer them as NCommander is currently working on.
Click to expand...
Click to collapse
good to know someone is working on them
borjus86 said:
Live Wallpaper is in ..
API changes summary
The following is a summary of some notable changes to the framework APIs.
Live Wallpapers
The following additions provide APIs for you to develop animated wallpapers:
New android.service.wallpaper package.
New WallpaperInfo class.
Updated WallpaperManager.
Click to expand...
Click to collapse
Ohhhhh yeeees. Thats what I wanted to see. Animated wallpapers would be soooo awesome. Ramhack kernels may cause problems with it. But this is great.
But can the G1/Mt3G really handle the power of live-wallpapers?
How much ram would that take up by itself without including things like ram-hack?
Ace42 said:
But can the G1/Mt3G really handle the power of live-wallpapers?
How much ram would that take up by itself without including things like ram-hack?
Click to expand...
Click to collapse
Maybe yes, not as Nexus resolution (480x800)
Ace42 said:
But can the G1/Mt3G really handle the power of live-wallpapers?
How much ram would that take up by itself without including things like ram-hack?
Click to expand...
Click to collapse
hardly any
PLEASE READ:
This AOSP is not limited to source changes from CM, Vanir, CNA, EOS, Carbon, AOKP etc. you get the best of all of them.* All features included have been reworked to eliminate performance sinks and memory leaks and subtly improved as i see fit also. Finally, this rom is compiled using GLOBAL -O3 -fstrict-aliasing.* I don't just turn it off where there's violations like every other "linaro" ROM source i've seen listed.* This is the real deal.* Latest linaro toolchain snapshot and proper use of the current 4.8 GCC features so it actually means something to say it's compiled with GCC 4.8.
Disclaimer: Because I'm using building using commits from every major repo in existence it may take a while to integrate some of the major features to my standards. I may release a stock AOKP feature as a beta until I have the chance to improve it but I'm not interested in band-aid fixing things or duck taping **** together just to get more crap under the features list and change log. Also, If you have questions or interest in building or joining vanirAOSP please message me on gtalk: [email protected] and feel free to add me on google+
here is a link to the parent thread where you can view previous change logs and perhaps find an answer to a question
general features:
vanirAOSP base: all features included, always the latest
customized-for-speed launcher2
optimized memory usage
current bug fixes and improvements from all major repos
additional features not present in vanir
attention to the details
minor UI theming/cleanup
custom embedded beats 5.1 drivers
multimedia enhancements
A-GPS enhancements
inverted theme included
ad removal
custom written init.d and cron setup
improved performance settings
browser tweaks
fast torch
customizable nav bar, quicksetting tiles, yatta yatta
full Linaro optimizations (now rebasing directly from their gerrit)
optimized networking
quiet hours, LED settings
statusbar mods
better multi-tab browsing
major bloat removal
-->* PIE, APPBAR, HALO, custom UI changer, etc
full array of lockscreen tweaks
improved AOSP keyboard
email and exchange available in add-on packs
soooooo much more
Issues:
notes:
recommend trying the 0.25x transition speeds located in development options. this (& vanir-based roms) is the only ROM that has them.
screenshot is in custom apps --> apps & actions. i did this so it could be a desktop shortcut also
Instructions:
download rom & a gapps package compatible with AOSP roms
manually wipe (factory reset please)
flash ROM
flash Gapps
PROFIT
Downloads:
Those of you interested in developing we are currently accepting new members.* PM me for details.
Please thank Jay R Themer for the hosting!
ROM server
Productivity pack v3 (wipe cache/dalvik.* fix permissions if necessary)
*** ^^^* Email/exchange, thinkfree document software, video editor
4) Droidth3ory's old wallpaper collection for nostalgia purposes only (credit masteraven, droidth3ory, whoever else)
Credit: Team Vanir, CM, AOKP, Linaro, EOS, all contributors to gerrit and github, anyone who puts out ROMs since seeing them evolve got me interested in developing. Everybody that's helped me learn how to do this. And especially those that donate and support developers.
If you enjoy my work please consider a donation to help me keep doing this. Donation link. It helps me pay for bandwidth & caffeine
XDA:DevDB Information
PRIME/ATOM-422, a ROM for the Nexus 7
Contributors
PrimeDirective
Based On: VanirAOSP, AOSP, CM, LINARO, AOKP, PA, et al
Version Information
Status: Stable
Created 2013-07-02
Last Updated 2013-07-02
BitSyko is a group project mainly consisting of 3 Apps. Layers, Showcase and RomMate with a view to simplify things that are complicated and give an average user more control over his/her rooted lollipop and Marshmallow device.
Let's get the to the main app and straight to the point.
What is Layers?
What is Layers?
Layers is a extension of runtime resource overlay.
RRO is a framework created by sony for use as a way for them to create xperia themes but also for internal quick prototyping.
Why is root needed?
We use root to do this to provide a way for the android community can use regardless if they are on aosp or touchwiz or any other skin to provide versatility.
RRO was created for OEM use by making changes for them to create theme ecosystem that they could control, by using a location intended for pre-themed by OEMS, we are able to tap into the use of this system.
Why were changes needed on lollipop?
Our ability to theme resources were quite limited in lollipop since a lot of android linked back to the frameworks which we could not overlay with RRO so we had to make changes in AOSP source to provide a way to theme more.
Thankfully Google saw this inability also and has made changes in M so there will need to be less that needs to be modified for theming and better support natively.
By the nature of how RRO works, most resources are actually protected from malicious changes by RRO
Why does the community say Layers or RRO or RRO/Layers?
When we started the project, we didn't have a name for this system and we just called it how we were using it and it stuck.
RRO is the basic overlaying of resources
Layers is what can't be done with just RRO without resource changes
So what is a Layer?
A layer is what we call our themes. A Layers theme is a collection of overlays
Where are layers stored to be loaded?
Since RRO was developed for OEM use, we use a location of system/vendor/overlay to place our theme apks.
The package manager sees these apk at boots and verifies them and then uses a tool called idmap to link it into the system resource table
Is layers a theme engine
No, there is no engine in place with Layers, it uses native android code to work while theme engine was just naming by T-Mobile to market their theming system back on gingerbread phones.
Cyanogenmod has stuck with that naming and are way closer to it then what Layers is
So how does it work?
What a overlay does is that it looks for a string in the the resources and replaces it during loading into the system.
For a way better and more in depth explanation see sony's blog post about how rro works
http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/
Why is a reboot needed?
Since RRO hooks into the resource look up framework of android, the system only looks at these resources upon intial start of a process, service or app so a restart of it is needed which is why a reboot of something that changes the framework or system ui needs to be retarted to remove or load a new resource.
Is RRO insecure
When sony says this in their blog, it is greatly exaggerated.
Just like how Layers had to make changes in the source just to move the resources to locations that can be overlaid with RRO, the actual limits of overlaying a running system come into play. Not that many files can actually be overlaid because they make calls back to other resources that are not present in a overlay.
Trying to overlay these files will end up in a bootloop upon booting because it will not be able to link the resource.
Rumours of this insecurity have been greatly exaggerated by others yet never showed any actual proof of this happening in the actual OS or apps out there.
In Sony's case, their example app was coded in exactly a way to show off how it could work but not how it does in existing apps out there in practice
So reading sony's blog says that it is more then theming?
It absolutely is just for more then theming and the usage of just for theming means that it has been left untapped for other uses.
Theming is just the large market demand in the android community so that is what the primary focus has been.
I was planning to use it for different purpose before it was realized for it's use for theming.
There were also limits everywhere that I tried to change with RRO that would require lot of changes in the source code to do much beyond theming.
Why can't cmte and Layers co-exist?
While they both use RRO as the base of how they theme, CM takes the code of RRO and repurposes it for the cmte for system apps creating a conflict of use.
Cmte works towards providing a whole complete package with everything running through the asset manager.
Layers sticks as close to the stock RRO and only changes what needs to be changed to provide a function yet still be used in stock android or other skins with minimal modifications to just resources
How long as RRO existed?
RRO has been in android* and open source since the gingerbread days.
It was a fancy symlinking system back in those days and evolved over the next few years to what we use today for better performance.
The ability of being able to overlay* apps outside of the framework and multiple apps has existed since 2012 in unmerged commits on the aosp gerrit.
So why did nobody think of using this before for theming?
Cm realized it and rebased to it (did not realize this before because of giant squashed commits) but beyond sony and recently a few other oems, nobody even noticed it before or saw potential in it.
Why is there no boot animations, ringtones, wallpapers, fonts with rro like cmte?
These are going to be in a separate app called RomMate that is in current development because they do not use RRO as their method of use.
Why is there no icon packs for layers?
This is in current development
What is the future for layers?
We are currently at the beginning of overhauling our system to provide maximum capapbility with all oem roms for marshmallow.
We are also working on providing a new way to provide large modularity in themes to provide a plethora of options for the user while making it easier on the themer/designer.
Why are you writing this now?
Tired of a outdated post with inaccurate info by me because I did not dive deep enough into cmte's code being posted everywhere when someone asks what layers is plus so people can link to it.
How do i get started with Layers?
First you need to be sure if your ROM supports Layers, It does? Okay.
1) You can join the BitSyko Development Community.
3) Download the https://play.google.com/store/apps/details?id=com.lovejoy777.rroandlayersmanager Layers app on to your device.
4) Open the Layers app so it can initialize and create the required folders.
5) Check out and find a layer you want on the community or use the Showcase app to find new themes
Fixing bootloops caused by a incompatible/bad layer from TWRP.
Step 1: Go to Advanced.
Step 2: Go to file manager.
Step 3: Go to /system/vendor/overlay/ and remove the bad overlay apk.
GitHub :- https://github.com/BitSyko
XDA:DevDB Information
BitSyko, App for all devices (see above for details)
Contributors
sykopompos, bitstra, CallMeAldy, @bgill55
Version Information
Status: Beta
Beta Release Date: 2015-01-24
Created 2015-01-25
Last Updated 2015-08-22
#WhiteUiMustDie
Reserved
Developers
Basically there are two types of supports, you'll have to include in your ROMS on lollipop to have full layers support working without any issues.
RRO basic and layers type 2.1 for lollipop and type 3 for marshmallow
RRO basic is what you can do with stock while layers is the extension of that
Rom commits from a aosp base.
https://github.com/The-Ancile-Project/platform_manifest/blob/frank-mutant-test-1/README.md
Commit not added to that list yet
https://github.com/MinimalOS/androi...mmit/8681610df588647bdfa464b316895d33f78c3f9e
Huge thanks to Sony and Google for RRO
http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/
Reserved
reserved
reserved 2
Reserved
reserved
Reserved 2
1st one... Thanks for opening an xda thread!!!
Reserved
Damn another thread to religiously follow.... Shaking my fist
Excellent! Subscribed.
I'm curious...and slightly drunk. Cheers to you guys!
Yes! Really looking forward to seeing where this goes! Layers for everyone!
Nice work team! Have been waiting for this thread to open
Sent from my Nexu5
Not a qualified plastic surgeon but I'm trying to give the OP a makeover. Lmao
Thank you guys for bringing Layers (RRO) to the table, subscribed to the thread. Great explanation of what Layers is too!
This is awesome! Can't wait for the template to come out so we can theme the whole rom with one app XD
Sent from my Nexus 5 using Tapatalk
Nice. It's officially here. lol Guess it's time for me to finally join this G+ thing.:good:
Still trying to figure out how to make overlays, I won't give up. Maybe I'll succeed in a couple of years :silly:
If someone will push some tut out :angel:
PLEASE - No generic "This is awesome" or "Thank you!" posts. In fact, unless you're a themer or ROM developer with technical questions about this project, please refrain from cluttering the thread for the time being. This is NOT ready for users yet and needs a lot of work before it will be.
So, it has come up multiple times that users want some way to theme their devices. The problem is that until recently, the only option for that was CyanogenMod's theme engine. Unfortunately, integrating this is problematic for many ROMs - while it's fine for cherry-pickers who don't care about understanding what they're throwing into their project, it's a big issue for someone who does not want to put 13,000 lines of code into their project in a single patch. (CMTE is 13,000 lines of changes in frameworks/base, which is the very core of Android.) Also, it has been known to have resource usage and performance issues.
Over the past year, Sony has worked on getting a runtime resource overlay (RRO) implementation merged into Android. Most of the implementation was in Android 5.0, and a few bugfixes were in AOSP master until Android 5.1 was released.
A few months ago, a few developers figured out how to use RRO for theming. This system was called Layers, and initially appeared to have a huge amount of potential. Unfortunately, for various reasons, the system stagnated. The original set of commits to implement Layers had a whole pile of issues and clearly had not gone through code review, and when attempts were made to fix these issues, the Layers team wanted to make no further changes. For Omni, a core requirement we have for any theme system is that it cannot affect the user experience when no theme is in use/installed. Layers fails this criteria. (For example, in AOSP, the text on the battery history graph is pure black with no transparency. In Layers, it is mapped to "exposed_primary_text_light" which is a shade of black that includes transparency. There is no way for an overlay to change the other graphical elements that reference this resource without also affecting the battery history graph text, and vice versa. There were numerous other cases of "colors redefined" and "multiple different colors mapped to a single resource".)
I've been talking with members of a few project (including Slim and LiquidSmooth) about taking the basic concept behind Layers and fleshing it out into a mature system that addresses the various issues with Layers. Also, there's a desire to try and implement as much compatibility with CyanogenMod themes as possible without making excessive sacrifices (bloat, major mangling of Sony's RRO approach to facilitate compatibility with legacy themes... Despite nearly all themes requiring a rearchitecture for Lollipop...) in order to make it easier for themers to support this new approach.
Proposed Roadmap and Status
Here's a proposed roadmap I discussed with some guys from Slim and LS in a discussion on G+. None of this is set in stone though.
1) Merge CM's resource exposure commits. While there are many aspects of CMTE I dislike, these are unambiguously superior to the Layers resource exposure commits and I find nothing objectionable to any of them I've looked at so far, although they have yet to go through full review. STATUS: Up on Gerrit, they seem good.
2) Write a Python script that handles translating the overlays of a CMTE theme to one compatible with the new system - STATUS: Semi-working, but requires item 4 and fails for any theme that uses the "common" resource overlay. Themes that don't use "common" (like Mono and FlatshadeUI) can be translated in 3-4 minutes. Well-formed themes that use "common" require typically 20-30 minutes to manually dereference any "common" references. Some themes rely on some hacks CM has to handle incomplete styles in overlays and thus won't be supportable without hacks that may be undesirable.
3) Implement support for loading overlays from somewhere on /data - STATUS: Not started yet. Needs some good security gurus/SELinux guys to do right.
4) Implement support for overlays being able to reference their own resources. CMTE has this, I haven't quite figured out how they implemented it as it's 13,000 lines of code changes to sift through. - STATUS: See the commit list, this is currently working, however it is "proof of concept" quality
5) Implement support for a "common" overlay - many CMTE themes use this and more are using it as time goes on - STATUS: Not started yet. This may not be possible without architectural mangling to a degree that is undesirable
6) Well, this is more in parallel with items 4/5, but implement an app for managing overlays - it has to be after 3 though. Someone who sucks less than I do at UI/UX stuff needs to do this. - STATUS: Obviously not started yet. I've had a few people express interest in this stuff.
7) Longterm goal - Implement support for parsing a CMTE theme in the manager app. Gives similar results to CMTE, except the big difference is putting the "heavy lifting" in an app instead of frameworks/base. This keeps the really nasty code separate from the core frameworks and thus more maintainable. - STATUS: Not even close to started. There are some components of CMTE that I really dislike and this may not be possible to do without those components. It's also far more likely to fail in ways that make a themer look bad for something not necessarily their fault.
Ideally it should be able to provide fairly high compatibility with CMTE but without the system bloat and performance impacts that CMTE seems to entail.
Show me the Code! (Patches)
THESE PATCHES ARE A PROOF-OF-CONCEPT/WORK IN PROGRESS. DO NOT MERGE THESE INTO ANY PROJECT. I will NOT work with anyone who merges these before they are ready!
You can submit them to your own Gerrit for review, but DON'T merge them.
Resource exposure patches
These are similar to the patches that make up "Type 2 Layers" - but to maximize compatibility with CM themes, we're using CM's resource naming. In fact, all of these patches are cherry-picks from CM
https://gerrit.omnirom.org/#/c/13292/
https://gerrit.omnirom.org/#/c/13293/
https://gerrit.omnirom.org/#/c/13294/
https://gerrit.omnirom.org/#/c/13295/
Allowing overlays to reference their own resources
A major limitation of the vanilla RRO implementation is that an overlay cannot reference its own resources. Sometimes this is annoying, in other cases (such as windowBackground attributes - see http://developer.android.com/guide/topics/ui/themes.html ), it makes doing certain things impossible. One of my main goals has been to find the minimum amount of change to allow this. Currently, the patches below are also all extracted from CMTE's frameworks/base megacommit. If this architecture is preserved I'm going to fix authorship of these commits, but right now I'm hoping to use these to gain ideas for a better way to do this and in the process rewrite them. These commits in their current implementation have some serious architectural limitations.
https://gerrit.omnirom.org/#/c/13346/ - The core implementation. This allows overlays to use their own resources. I'm in the process of analyzing this to determine if there's a way to do this without the current limitations it has. Specifically, if you attempt to use a "standard" overlay with package ID 0x7f, the overlay will completely fail and cause severe issues.
https://gerrit.omnirom.org/13347/ - Treat a few other PackageIDs as being "static" packages. I'm still in the process of reading through Android's code to figure out the differences between static and dynamic references. Overlays must be one of these packageIDs or they will fail.
https://gerrit.omnirom.org/13350/ - Allow aapt to override the packageID by specifying it as an argument to -x - this is needed to produce overlays that don't bork the system
Overlay best-fit hacks
https://gerrit.omnirom.org/#/c/13324/ - With standard RRO, if an overlay only has one resolution of resource, and the overlaid package has a resource that is a better fit (for example, overlay only has xxhdpi and device is xhdpi), the overlaid package's resource would get used. The end result in Layers is that some overlays would behave inconsistently on some devices. (For example, I've never seen a Layers overlay for Hangouts properly theme chat bubbles on any of my devices...)
Misc other fixes
https://gerrit.omnirom.org/#/c/13356/ - Quick settings tiles have a hardcoded AnimatedVectorDrawable class. This doesn't need to be hardcoded and can be a generic Drawable - for example, some themers want to use a RippleDrawable here. This commit is from Steve Kondik
Frequently Asked Questions
Q: What is this sytem's name?
A: To be determined. Names I've thought of so far are Light Weight Theme System (LWTS) and Phoenix (rising from the layers of ash) - I'm personally leaning towards LWTS because it's very neutral and I also hate flashy names.
Q: How is this different from AOSP/Sony RRO?
A: It is RRO with some small changes to address limitations in the current AOSP/Sony implementation, such as inability of overlays to reference their own resources.
Q: How is this different from Layers?
A: Any patch that is part of this system will go through code review with stakeholders from multiple projects invited to participate. Also, a core requirement of this system is that it does not change the behavior/look of the system when a theme is not installed.
Q: How is this different from CyanogenMod's Theme Engine?
A: While the current state of this is almost entirely cherry-picks of subcomponents of CMTE, it is only 150-200 total lines of code vs. CMTE's 13,000 in frameworks/base alone. There are some components of CMTE that we either don't want or will require too much invasive code to implement. So far one architectural difference is that like Layers, the current plan is for most of the "heavy lifting" (AAPT) to be done on a themer's PC, not on-device. Also, like Layers, this approach currently DOES support multiple overlays for a given package target. (This is most commonly used by Layers themers to change navbar icons independently of whatever other theme is installed for the rest of SystemUI)
Q: If this is intended to be a multi-ROM collaborative project, why is it in the Omni forum?
A: Most of the existing "generic" forums have a lot of clutter. One of the things I want to discuss with people is a better location for this. Same goes for the current usage of Omni's Gerrit.
Q: Needing a hacked AAPT sucks! I hate this!
A: I don't like it either. Trying to find a better solution is a work in progress.
Q: What about fonts?
A: Something I'd like to support, but not implemented yet.
Q: What about icon-packs?
A: Something I'd like to support, but not implemented yet. CM's approach depends on some of their massive architectural changes to RRO. Also, most launchers have built-in support for icon packs. (CMTE also allows a method for themes to include icon packs that will work with any launcher.)
Q: What about bootanimations?
A: Something I'd like to support, but not implemented yet. Should not be hard
Q: What about wallpapers?
A: Someone should probably work on this. I personally hated any theme that overwrote my nice wallpapers from InterfaceLIFT... So someone else will need to work on it. This NEEDS the ability for a user to disable by default.
Q: What about applying themes/overlays without reboot?
A: Unlikely, this capability of CMTE is the root of many of their massive architectural changes to RRO, and is responsible for many of the other tentacles it has throughout frameworks/base unrelated to resource lookup. Implementing this is almost guaranteed bloat.
Where are the Dialer/InCallUI resource exposure commits?
I need to take a look at these, CMTE doesn't have any - it may be that they are unnecessary when combined with the ability for overlays to self-reference resources. For example, looking at https://gerrit.omnirom.org/#/c/11674/2 there is no need to modify anything in res/drawable with CMTE or this approach, as the items in res/drawable can simply be overlaid. I have not yet looked at the other items.
Porting CMTE Themes
*Documentation on how to port a CMTE theme to the new system goes here*
More leftovers
Original leftovers is going to be the porting guide
Why not just call it Overlays Theme Engine?
skynet11 said:
Why not just call it Overlays Theme Engine?
Click to expand...
Click to collapse
Hmm, maybe... It's more likely to get confused with Layers though. It's already bad enough that so many users confuse Layers with vanilla RRO.
Just want to say 2 things:
1) Icon packs are actually possible to make, I made for "educational purpose" a port of a little part of Moonshine Icon Pack, GemFlat theme icons and some icons I personally made.
There are some advantages compared to CM: you don't have to insert app activity in any XML file, but just overlay the icon using a layer that target the app you want to theme.
2) I didn't understand well a thing about portings: do you actually mean on Layers or on this new type of theme engine?
Just a quick heads up.
Let's please read the OP before posting. If your post is not going to contribute to a technical discussion of the situation, please do not post it here. If your post mysteriously disappears with no warning, it is because such was not heeded.
Thanks.
SPAstef said:
Just want to say 2 things:
1) Icon packs are actually possible to make, I made for "educational purpose" a port of a little part of Moonshine Icon Pack, GemFlat theme icons and some icons I personally made.
There are some advantages compared to CM: you don't have to insert app activity in any XML file, but just overlay the icon using a layer that target the app you want to theme.
2) I didn't understand well a thing about portings: do you actually mean on Layers or on this new type of theme engine?
Click to expand...
Click to collapse
I believe this new way.
LiquidSmooth maintainer for d2usc/vzw & p600
SPAstef said:
Just want to say 2 things:
1) Icon packs are actually possible to make, I made for "educational purpose" a port of a little part of Moonshine Icon Pack, GemFlat theme icons and some icons I personally made.
There are some advantages compared to CM: you don't have to insert app activity in any XML file, but just overlay the icon using a layer that target the app you want to theme.
2) I didn't understand well a thing about portings: do you actually mean on Layers or on this new type of theme engine?
Click to expand...
Click to collapse
1) Well, right now, icon packs can be loaded by launchers that are "icon pack" aware. CMTE allows any launcher to load an icon pack from the theme itself by altering the icon resource of the app itself. Right now "system icon packs" are pretty low priority since MOST popular launchers support loading icon packs themselves, unless someone can state a good use case for them other than "supports any launcher".
2) Since CMTE is the most common theming system with a LOT of themers behind it, it's ideal to try and make the transition from CMTE to any other system as painless as possible for a themer. A theme engine without themes is pretty useless. Layers attracted a lot of themers unhappy with CMTE mainly due to how Cyngn ran some of their theme contests, but many of those themers were still supporting CMTE. If you want someone to support more than one theme engine, and you're NOT the biggest one out there, you've got to make their life as easy as possible. (Strangely, one member of the Layers team said that everything he did was "for the themers" - but the majority of what he did made things harder for themers AND ROM developers, especially themers coming from CMTE.)
Also, just one request to moderators: Try to go light on the moderation unless things go bad. It's a long story, but one of my issues with the Layers team was going overboard on the moderation. That said, the post deleted was just a link to the Layers community with no other comments other than saying "don't reply to me"...
Entropy512 said:
1) Well, right now, icon packs can be loaded by launchers that are "icon pack" aware. CMTE allows any launcher to load an icon pack from the theme itself by altering the icon resource of the app itself. Right now "system icon packs" are pretty low priority since MOST popular launchers support loading icon packs themselves, unless someone can state a good use case for them other than "supports any launcher".
2) Since CMTE is the most common theming system with a LOT of themers behind it, it's ideal to try and make the transition from CMTE to any other system as painless as possible for a themer. A theme engine without themes is pretty useless. Layers attracted a lot of themers unhappy with CMTE mainly due to how Cyngn ran some of their theme contests, but many of those themers were still supporting CMTE. If you want someone to support more than one theme engine, and you're NOT the biggest one out there, you've got to make their life as easy as possible. (Strangely, one member of the Layers team said that everything he did was "for the themers" - but the majority of what he did made things harder for themers AND ROM developers, especially themers coming from CMTE.)
Also, just one request to moderators: Try to go light on the moderation unless things go bad. It's a long story, but one of my issues with the Layers team was going overboard on the moderation. That said, the post deleted was just a link to the Layers community with no other comments other than saying "don't reply to me"...
Click to expand...
Click to collapse
I am a themer of both CM and Layers. Now, CM has many features that Layers hasn't (such as fonts, wallpapers, boot animations...) But talking about app themes only I like very much more Layers because of exposed colors. In new "Layers 2.1" various errors that have been made during first exposing were fixed (as did @atl4ntis alone in his ROM), and you don't have to struggle with styles.xml for most of the things (so it's more noob friendly). Obviously there have been many situations where I missed thee possibility to link something to something other in the overlay.
So I think that layers isn't confusing very much. I found more confusing cm. I think that someone who never made themes would prefer layers to cmte. This is my opinion BTW
SPAstef said:
I am a themer of both CM and Layers. Now, CM has many features that Layers hasn't (such as fonts, wallpapers, boot animations...) But talking about app themes only I like very much more Layers because of exposed colors. In new "Layers 2.1" various errors that have been made during first exposing were fixed (as did @atl4ntis alone in his ROM), and you don't have to struggle with styles.xml for most of the things (so it's more noob friendly). Obviously there have been many situations where I missed thee possibility to link something to something other in the overlay.
So I think that layers isn't confusing very much. I found more confusing cm. I think that someone who never made themes would prefer layers to cmte. This is my opinion BTW
Click to expand...
Click to collapse
I think the whole thing about whether is easy or hard can easily be fixed by creating templates just like in the CMTE where a "noob" can just git clone that and start off with that.......
If the template is done right with comments and all, it shouldn't be an issue. Then you have support threads which can be made after things are set and done where people can help each other and get things going.
Nothing is ever going to be "noob proof". Just take a look around at all the guides and everything for the most simple things. As easy as it is to flash a ROM, there's actually videos and guides for that and people STILL find themselves with that deer in the headlight look
SPAstef said:
I am a themer of both CM and Layers. Now, CM has many features that Layers hasn't (such as fonts, wallpapers, boot animations...) But talking about app themes only I like very much more Layers because of exposed colors. In new "Layers 2.1" various errors that have been made during first exposing were fixed (as did @atl4ntis alone in his ROM), and you don't have to struggle with styles.xml for most of the things (so it's more noob friendly). Obviously there have been many situations where I missed thee possibility to link something to something other in the overlay.
So I think that layers isn't confusing very much. I found more confusing cm. I think that someone who never made themes would prefer layers to cmte. This is my opinion BTW
Click to expand...
Click to collapse
Well, CMTE exposes colors too - can you provide a specific example of something that was easier in Layers than CMTE due to not being exposed?
I'm guessing probably something in Dialer or InCallUI, since the resource exposure commits in the rest of CMTE are pretty similar to Layers with a few exceptions. I'm willing to consider some "laziness commits" that expose resources as long as they don't conflict with existing ways of doing things.
Other themers I've spoken to preferred CMTE over Layers by a long shot. I think the learning curve of Layers for basic theming might be a bit shorter, however CMTE allows a themer to do much more. I've seen piles of things in Mono, Coalfield, and FlatshadeUI that would be an utter nightmare to do on Layers, if even possible. (As evidenced by the fact that some guy has been trying to port Coalfield to Layers for 2-3 weeks now - I had Coalfield working about 20-30 minutes after I started working on getting it to work with the new system.)
I looked into these fixes you claim they made... They're the fixes I fought for two months to get people to agree on, it appears that after I gave up and said "I've had enough", they squashed the fixup commits into the original ones and changed authorship (In addition to removing the post with my proposal from their community). For reference - the original fixup commits that I put forward for Layers 2.1 are at https://gerrit.omnirom.org/#/q/status:open+topic:rro2p1 and were originally written in late February. Similarly, any CMTE resource naming convention compatibility in Layers was proposed by myself for Layers 3 (WIP at https://gerrit.omnirom.org/#/c/12323/2) and rejected along with the Layers 2.1 fixes - it appears they pulled THIS in too and called the whole thing 2.1. (You'd think that a naming convention change would merit a major version number bump...)
Mazda said:
I think the whole thing about whether is easy or hard can easily be fixed by creating templates just like in the CMTE where a "noob" can just git clone that and start off with that.......
If the template is done right with comments and all, it shouldn't be an issue. Then you have support threads which can be made after things are set and done where people can help each other and get things going.
Nothing is ever going to be "noob proof". Just take a look around at all the guides and everything for the most simple things. As easy as it is to flash a ROM, there's actually videos and guides for that and people STILL find themselves with that deer in the headlight look
Click to expand...
Click to collapse
One thing I want to do is to try and write some convenience tools for themers... This may be necessary to handle the "common" nightmare as I might need to preprocess "common" resources.
Of course, there are a lot of tradeoffs here... Sometimes making things TOO easy prompts a flood of some really awful stuff. Theme DIY was a great idea but it's led to a bunch of really horrible paid themes on the Play Store (despite the TDIY author stating that the tool was not to be used for paid themes), making people more reluctant to actually buy paid themes that ARE good.
Which is why I'm still torn on one feature of CMTE that handles cases where an overlay has an incomplete style that is missing attributes - Now, this makes a themer's life easier, but in general, the themes where lack of this feature has been a problem were ones of poor quality... One of the stated reasons for the patch was handling cases where an app updated causing the overlay to crash. The problem in this case is that it's better for something to be obviously wrong than for it to fail in subtle weird ways. Look at Facebook for example - at some point they made a MASSIVE overhaul of their styles. Some themes overlaid the "old" styles - as a result of the changes, they crashed with this engine, but caused strange graphical glitches in CMTE. (In fact, I need to check, but I think one themer removed all of his style overlays for Facebook from a theme because of this - at least he was considering it.)
I want to make themer's lives easier BUT I also don't want to encourage bad practices... There are some tough tradeoffs here.
I agree with you.
If also users with no theming capacity starts making paid themes this will be a pain for good themers.
Another question, do you have any ETA to complete this? (Or at least first points)
SPAstef said:
I agree with you.
If also users with no theming capacity starts making paid themes this will be a pain for good themers.
Another question, do you have any ETA to complete this? (Or at least first points)
Click to expand...
Click to collapse
As far as ETAs - there are a lot of unknowns here. Also, I need to finish up some core Omni stuff that I let slide for... WAY too long because I was spending time on theming and Layers. There's a gigantic CAF ifdef effort I need to finish so we can start nightlies.
Also, if I recall correctly, you were working with the guy behind Carbon UI? (Elixium Dark is the Layers form of Carbon UI???) - https://play.google.com/store/apps/details?id=com.zyxxeil.carbon.ui
That was a pretty easy port since he only used common for some of the keyboard drawables.
MilosUI took about ten minutes (mostly, again, handling "common" in the keyboard).
I think I'm gonna pop back over to FlatshadeUI for a while though.
Entropy512 said:
As far as ETAs - there are a lot of unknowns here. Also, I need to finish up some core Omni stuff that I let slide for... WAY too long because I was spending time on theming and Layers. There's a gigantic CAF ifdef effort I need to finish so we can start nightlies.
Also, if I recall correctly, you were working with the guy behind Carbon UI? (Elixium Dark is the Layers form of Carbon UI???) - https://play.google.com/store/apps/details?id=com.zyxxeil.carbon.ui
That was a pretty easy port since he only used common for some of the keyboard drawables.
MilosUI took about ten minutes (mostly, again, handling "common" in the keyboard).
I think I'm gonna pop back over to FlatshadeUI for a while though.
Click to expand...
Click to collapse
I didn't port it. We did it together (actually Elixium Dark was out 2 weeks before Carbon), so there was no problems into porting, because they are 2 different themes. With that project we showed that it's possible to make very good themes with both CM and Layers.
Milos is a port (but with some changes), yeah it was quite quick to port it.
Mainly the "hard work" is with common and with framework, systemUI and settings, as they are quite different to theme between the 2 platforms
I look forward to adding this to my comparison between Layers and the CyanogenMod Theme Engine when I publish it