[BitSyko] Official Layers and BitSyko Apps [RRO] - Android Apps and Games

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:

Related

[PLANNING][WIP]Towards a new theme system

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

Sapphyx Launcher- A launcher built for you in mind

This is simply the sequel to my last launcher project, Sapphire Launcher. I started this project last August and began the beta in June of this year. So, Instead of boring you with a story of how I started and what an android launcher is, I will start with what is important to know before you post any comments.
Sapphyx Launcher is not intended to be another Pixel based Launcher. I provide the settings needed to transform the launcher from the "Pixel" interface back to the original launcherinterface. I am not a code junky, this is a learning project for me to learn how to properly use Google Services, Firebase, Analytics, Communicate properly with the user base and community on Google Plus, learn android from within the launcher application and provide cool customization options to your android device. Sapphyx is for Android 6.0 and above because of the code structure I use and the performance I promise.
Sapphyx Launcher is my vision of what I would call an original launcher. Its the kind of experience that slaps you in the face alittle bit to get you thinking why havn't other developers taken up such originality in their homescreen replacement projects. Like my old custom roms (Bionx Roms), i promise a unique experience and a very good customer feedback appreciation program. The launcher, like many other custom launchers, offer customization to pretty much everything. Label text size and color, grid options, toggling views and menus, unique navigation from point A to point B, material user interface, Context Pages, Gestures, Notification bubbles and more! Sapphyx Launcher has been called the ADW of its time as it brings back memories of my current users of the original ADW launcher from gingerbread with the amount of options that are offered. In Sapphyx Launcher, I offer a unique and exclusive feature called Context Pages (Now available in the latest beta) which are my replacement of a swipe to left add on. These pages offer different tools, features and shortcuts to daily tasked completed by the user. Sapphyx Launcher is a premium application and requires a license to use some of the advanced options. I also offer free license to users on certain occasions. Sapphyx Launcher is fully optimized for 64bit environment and Snapdragon chipsets.
MAIN FEATURES (Based on latest beta release)
-Transitional Themeing
-Notification Bubbles
-Homescreen Customization
-Dock Preferences
-Folder Preferences
-Unique Launcher Drawer with toolbar
-Context Pages (With Chooser)
-Unique Wallpaper manager
-Powerful Launcher Settings
-Google Services and Firebase
-Fabric Error Reporting
And more...
If a Licensed is missing, its because I am still testing the code and determining if its reliable for my project. I have no intentions to add Google Now or Oreo features. I may create my own implementation of something similar going forward if requested.
I urge you to join the Google Plus Group as that is my home and where I will be posting majority of what I am working on and previews and also you can sign up from for beta build releases.
Google Play Link
Google Plus Group
XDA Labs Link: https://labs.xda-developers.com/store/app/com.gsd.launcher.sapphyx
XDA:DevDB Information
Sapphyx Launcher, App for all devices (see above for details)
Contributors
Nx Biotic
Version Information
Status: Stable
Current Version: 1.00.20
Beta Release Date: 2017-08-16
Created 2017-08-18
Last Updated 2017-08-18
Rollouts/Updates
Sapphyx Launcher will be distributed in 3 ways. On Google Play, users have a choice of the stable channel and beta channel. The stable channel will distribute builds that are dependable, less buggy and user friendly. Beta builds will have experimental settings, have relatively new features readying for the stable channel and is open.
Xda Labs will feature dev preview builds in the Alpha Channel, mirrored beta versions and stable versions.
The Google Play Rating system for beta builds point users to this forum.
Ratings
I take the rating system seriously. If you abuse the system you will be pointed out or ignored. If you call out a user or developer, i will call you out publicly. Rate the application based on its performance, its features and reliability. Not what you think it should be or what you want it to be. Do not demand features.
License
I may not include license to a 3rd party resource if i am testing it or its relatively new. A license will be included if its solid and dependable and plan to be kept in the project.
#first!! Excellent launcher bro!!
Hoping to have the final beta update out before the end of August. After that, the next update after that will begin locking features and settings and users will be required to purchase either my premium or onyx license key (no difference except value and support). A handful of features will stay unlocked like icon editing and icon pack support.
Is there a way not to use the extended homescreen. I am not able to go back to homescreen when i am on another screen without opening that ****in extended screen
Gesendet von meinem SM-G935F mit Tapatalk
js45721 said:
Is there a way not to use the extended homescreen. I am not able to go back to homescreen when i am on another screen without opening that ****in extended screen
Gesendet von meinem SM-G935F mit Tapatalk
Click to expand...
Click to collapse
I am currently working on a way to lock it out for users who don't like the intentions of it. Its based on a Drawer layout thus the launcher layout is placed inside of it so its not something i can just disable with a view toggle. I have to find a way to lock the drawer from being accessed. Right now, its i provided an enforced lock toggle. Yes, this is a priority im working on.
This actually looks really good, seems to fix the handful of things that bother me about the pixel launcher.ill give it a shot for a few days and see how it does on my s8(TouchWiz is ehh), I'll be sure to post any bugs I find to the g+ group
huffmybrd said:
This actually looks really good, seems to fix the handful of things that bother me about the pixel launcher.ill give it a shot for a few days and see how it does on my s8(TouchWiz is ehh), I'll be sure to post any bugs I find to the g+ group
Click to expand...
Click to collapse
Very much appreciated. I like to tell users they don't have to keep Sapphyx installed, i care more about what they noticed or found that could be wrong.
Pushed out an update today to the following apps in regards to Sapphyx Launcher.
GSD Premium license now adds a Time Page module for Static Pages (Simple Widget, may add more to it later).
Sapphyx SideDrawer now listens to Drawer Background Color and Column Count shared preferences.
Getting ready to release the API for devs to mess around with as well as adding Shared Preferences inside Sapphyx Launcher settings they will have access to. For example: Static Pages background color.
Happy weekend everyone.
Update 1.00.25 available on playstore, xda labs coming soon.
woow seems very promising launcher!
can you implement a static page that have same feature of oneplus shelf or arrow launcher? i hate google now page on the left, and i would love a scrollable page where i can add my widget and app shortcut!
Hope this can be a added soon1
okaiuz said:
woow seems very promising launcher!
can you implement a static page that have same feature of oneplus shelf or arrow launcher? i hate google now page on the left, and i would love a scrollable page where i can add my widget and app shortcut!
Hope this can be a added soon1
Click to expand...
Click to collapse
I already have plans to develop a page similar to Shelf. If I don't get to it, another dev will be able to soon as I will be releasing the API soon todo so. Im just not their yet to be satisfied with public usage.
I felt the same while developing this launcher, i wanted the same concept just another package or feature.
Nx Biotic said:
I already have plans to develop a page similar to Shelf. If I don't get to it, another dev will be able to soon as I will be releasing the API soon todo so. Im just not their yet to be satisfied with public usage.
I felt the same while developing this launcher, i wanted the same concept just another package or feature.
Click to expand...
Click to collapse
great work man!
I started working on publishing the Sapphyx Launcher API on github. Repository is live but the tutorial and setup isn't finished yet, been busy.
If you have any interest in it, feel free to star it. Github account can be accessed in the launcher about information. Il have some things documented above in OP when everything on github is finalized.
API is live on my github. I will be publishing some of my pages on my Github for examples.
The next update will be official release anf as a reminder will be locking all premium settings and requiring a key to unlock.
As apart of the update, Im compiling on Android Oreo which has broken a few things and improved performance so Im in the middle of a massive rework right now. The Extended homescreen is more aggressive now, making it feel more like a drawer than a extra page on your homescreen. This makes it less visible for users to notice if you do not want to use it vs users who will be using it. A large number of Force Closes have been patched. Ive gone through the launcher settings and moved a few things around while revamping a few views (Like the Avatar bottom menu).
Il be focusing on more user requests near release so keep the logs and requests and feedback coming.
A new feature im currently working on for Sapphyx Launcher. Kinda like a mock of the One plus Shelf.
Nx Biotic said:
A new feature im currently working on for Sapphyx Launcher. Kinda like a mock of the One plus Shelf.
Click to expand...
Click to collapse
looks lit man !
cant wait
Another look at the redesigned Left and Right Panes in Sapphyx Launcher's new update currently in development.
Static Pages now have an indicator to indicate which page you are on and how far left you are. Above the container is now a Google Now search widget which solves the delima of Now on left as clicking on it opens Google Now in that view. (I could add the Companion code from lawnchair but i really don't want to copy from them)
The Smart Pane has pretty much a final design. Just lacking its features at the moment. Currently looking at some options users could benefit from if they choose to use this feature for a cleaner homescreen setup.
This new update is planned for the end of September or beginning of October. I have a few things i want to touch up as far as existing tweaks, revamp the UX for the launcher settings, fix a few straggling bugs in a few tweaks and finalize the new Smart Pane and lock all premium settings.
A project update for xda followers.
I plan on doing a dev preview as an alpha build on xda labs soon. This build would be labled as an Alpha build and be a preview of the fall update. I hope to have this live next week. If you use this build, I expect feeeback. I will announce when it goes live.
I recently just switched to the newest Android Studio 3 beta and updated the launcher to compile on Oreo. The result was a massive amount of broken activities and actions because of new behavior and deprecated code and rules in Oreo. I have been working hard to fix everything and patch anything in need and remove anything that was completely broken. The result was a faster launcher but their is some weird behavior still and we're trying to locate the bugs and fix them (For example the drawer hangs or gets stuck as you swipe up from the dock)
I have been finishing up what I need to for a few new features, one of them being Sleeve. Sleeve is my representation of the One Plus Shelf feature. Altho it isn't 100% complete yet, I want users to get to try it and here from them what All could go in this hidden home screen. This screen is summoned via a gesture or launcher action.
A great amount of the launcher and interface has been rewritten to be more user friendly and easier to use as well as make that first impressions on many. The launcher settings has been re organized, a new long click listener was added to the carrot indicator. A few fixes to icon pack helper for Oreo and patches to pre existing tweaks so they behave correctly.
Be sure to follow the google plus group for more info and previews and to share your feedback and requests easier.
Dev preview builds are available on xda labs. Please select Alpha channel.
https://labs.xda-developers.com/store/app/com.gsd.launcher.sapphyx

[APP LAUNCHER][4.2+]DecentHome (Open Source)

Hi all,
I spent some time to develop an application launcher based on Trebuchet 13 with a custom application drawer which users can create folders and change application icons placement.
You can check this video to see what it looks like and how it acts Youtube - DecentHome Preview
It is a little bit 2015, and it's not that customization friendly, but I tried to make it simple and mainly focused on the application drawer's capabilities.
In order to achieve that I may had to rewrite Application Drawer from scratch and heavily reconstruct existing database and its services.
You can download the source code from GitHub - DecentHome
Also, you can download a standalone version of Trebuchet 13 which you can directly download, import and compile on Android Studio from GitHub - Trebuchet13Standalone
You can install it with attached apk.
Feel free to ask questions an comment.
Please let me know about any errors.
Thank you.

[LIBRARY] Dynamic Support - Build Android apps

A complete library to build apps for Android 14+ (ICS or above) devices with a built-in theme
engine. It is built on top of the latest app compat library to provide best compatibility.
Checkout the sources on GitHub.
Installation
It can be installed by adding the following dependency to your `build.gradle` file:
Code:
dependencies {
implementation 'com.pranavpandey.android:dynamic-support:1.0.0'
}
Click to expand...
Click to collapse
Usage
It is a collection of activities, fragments, widgets, views and some utility functions required to build a standard Android app. It also provides some in-built use cases like an intro screen, drawer activity, about screen, collapsing app bar, bottom navigation, color picker, multiple locales, runtime permissions, etc. which can be used and customised according to the need.
Theme engine
Each activity and widget can be themed by using the in-built theme engine with background aware functionality to avoid any visibility issues. Colors can be selected by using the provided material design colors or by selecting a custom color from the in-built picker which supports HEX, HSV and ARGB values.
Know more about the background aware functionality on GitHub.
Sample
This library is fully commented so, please check the individual classes or files for the documentation. Basic documentation will be available soon.
Checkout the sample to know more about the basic implementation.
Click to expand...
Click to collapse
Apps using Dynamic Support
All of my apps are using some or all part of this library. You can download them from Play Store. Please email me if you are using this library and want to feature your app here. Also, please checkout the Rotation app to experience the full potential of this library.
Rotation - Orientation Manager
Click to expand...
Click to collapse
Translations
German (de) - Flubberlutsch
Chinese (Simplified) (zh-rCN) - John Canny
Click to expand...
Click to collapse
I have tried by best to cover most of the scenerios. If something is missing, you can easily create custom views by using the base views and widgets. Please checkout the sources to find out the hidden implementations which can lead you to add various amazing functionalities.
XDA:DevDB Information
Dynamic Support, Tool/Utility for all devices (see above for details)
Contributors
Pranav Pandey
Source Code: https://github.com/pranavpandey/dynamic-support
Version Information
Status: Stable
Current Stable Version: 1.0.0
Stable Release Date: 2018-03-10
Created 2018-03-18
Last Updated 2018-03-18
up up up up
Hello everyone!
I am still working on this library and it has evolved into a world of Dynamic libraries with even better possibilities.
Please visit the official website for more info:
Dynamic Support
Dynamic libraries by Pranav Pandey
dynamic.pranavpandey.com

PAID PROJECT: Nougat or Oreo AOSP status bar signal and wifi icon colors and mods

I would like to hire the right developer for a personal project.
I absolutely dislike white statusbar icons. Most, if not all substratum
themes do not touch the status bar icon color, some use overlays to
change the background though. There is a substratum overlay for wifi icons but this seems overly
complex for such a simple icon swap, and there have been changes made by google
to prevent the signal icon from being changed, at least according to the developer.
In earlier versions of Android, SystemUI.apk could be extracted along with framework-res,apk, and the
resources swapped for icons of my choosing. I am going with an AOSP rom
based on Nougat (AICP, or Resurrection). I am not working with Sense roms. My understanding is that Oreo further limited
the ability to change statusbar icons, that would be my reason for going
with Nougat. I would rather stay with an Oreo build of AICP but that is not a must.
If you are interested, I would like an estimate of the time it would
take you to:
1. Tell me which files to pull and send to you
2. Determine where the resources and/or code must be decompiled/edited to make this
work, that is, signal, wifi, other icons of my choosing. I can provide the icon files.
3. Send me the edited files
4. I will test
5. Work with me to handle the bugs
6. Once we have a working setup, draft an outline of what you did which
would enable me to decompile/edit the appropriate apks or files so I can
do this myself later with different icons.
A bit about me:
I am tech savvy, familiar with the linux command line, adb, etc.
I am working with AOSP roms on a HTC M9. Rooted, S-OFF, it is a GSM
variant (himaul). But I am not a software developer.
I am not looking for an app to do this for me. But I am seeking out the expertise
to reverse engineer what I need to make this happen and do it manually.
In my hours of pouring over xda I read somewhere the inability to choose
the icons is a google policy. I can't stand the modern UI white, washed
out colors but themeing can take care of most of that. In case you ask,
I'm currently on 4.3 on a HTC M7 from 2014 and I have got to get going with a newer
device.
I realize your time is valuable and this will not be a trivial task (or expense)....I only ask you to reply having enough familiarity to dive in without too much OJT.
Please do include your hourly rate. I would have no problem if this work is made GPL and free to post here, if you like.
Thanks!!

Categories

Resources