[GUIDE] HTC Sense 6 built-in themes

Search This thread

Pneuma1985

Senior Member
Jan 5, 2011
903
1,069
Around
preview images located default wallpaper:
wallpapers_00.jpg
wallpapers_01.jpg
wallpapers_02.jpg
wallpapers_03.jpg

Dont know what you mean... I think fisha was asking how the previews are generated themselves I think he was referring to the top bar with the color array... The image is probably the wallpaper yes... But how the top bar is generated is something completely different and its most likely a smali array.

Oh and the answer to his question can we make our own themes well the answer isnt as simple as yes or no... Yes you can make a theme built off the backbone of the one thats already threaded into the apk. B/c essentially the themes are interwoven through the apps themselves and from what I can tell there is no controller that says grab this vs that. If anything its like fisha says, it calls the category which grabs a whole bunch of things so yes you can change the category; thus creating a theme, but actually making one separate from the ones they've provided will be a ton of work and ton of adding a whole new category and then linking it to all the apps that would get changed. Our best bet is figuring out the previews blocks and changing the whole category of one of them.
 
Last edited:

jmz

Inactive Recognized Developer
Sep 17, 2008
3,623
4,804
Lawton, OK
www.jmzsoft.com
Google Pixel 4a 5G
Honestly, I think the easiest way to go about doing these themes is to hook into them using xposed. Im just adding my 2 cents here. This would create the most compatiblity and customization available. Rather than being stuck to 1 custom theme without reflashing a new one.
 
  • Like
Reactions: Pneuma1985

Pneuma1985

Senior Member
Jan 5, 2011
903
1,069
Around
Honestly, I think the easiest way to go about doing these themes is to hook into them using xposed. Im just adding my 2 cents here. This would create the most compatiblity and customization available. Rather than being stuck to 1 custom theme without reflashing a new one.
Very true xposed is definitely a way around this...Some dont like xposed though and claim it slows down the phone. I wouldn't know though, I've never used it.
 

Raymond Ebertt

Senior Member
Dec 12, 2011
3,056
3,580
Surrey
Honestly, I think the easiest way to go about doing these themes is to hook into them using xposed. Im just adding my 2 cents here. This would create the most compatiblity and customization available. Rather than being stuck to 1 custom theme without reflashing a new one.

A custom theme is better in my opinion. If you theme the stock theme the way you want it, it's going to run through the entire phone. These themes that HTC has implemented to sense 6 isn't sitting well with me and I'm sure others as well. A custom theme is the way to go.

Sent from my HTC One using xda app-developers app
 
  • Like
Reactions: toolhas4degrees

jmz

Inactive Recognized Developer
Sep 17, 2008
3,623
4,804
Lawton, OK
www.jmzsoft.com
Google Pixel 4a 5G
A custom theme is better in my opinion. If you theme the stock theme the way you want it, it's going to run through the entire phone. These themes that HTC has implemented to sense 6 isn't sitting well with me and I'm sure others as well. A custom theme is the way to go.

Sent from my HTC One using xda app-developers app

Well of course. But this thread is about built in themes and that was what I was talking about. But technically you could use xposed to theme everything

Sent from my HTC One_M8 using Tapatalk
 

Raymond Ebertt

Senior Member
Dec 12, 2011
3,056
3,580
Surrey
Well of course. But this thread is about built in themes and that was what I was talking about. But technically you could use xposed to theme everything

Sent from my HTC One_M8 using Tapatalk

This thread is about providing some insight for the many hurdles that Sense 6 now has and as the owner of post 3 and 4, I will be giving some clearer insight to this. I do believe working with one theme is a better way to go but every one has their own preference

Sent from my HTC One using xda app-developers app
 
  • Like
Reactions: Pneuma1985

Pneuma1985

Senior Member
Jan 5, 2011
903
1,069
Around
This thread is about providing some insight for the many hurdles that Sense 6 now has and as the owner of post 3 and 4, I will be giving some clearer insight to this. I do believe working with one theme is a better way to go but every one has their own preference

Sent from my HTC One using xda app-developers app

Oh no I completely agree the only down side to that is making all the categories work together and im not a fan of the whole top_header being a color thing its crazy ugly from a gfx standpoint. I hope to be of some service when it comes to figuring the themes out. ;)
 
  • Like
Reactions: Raymond Ebertt

Raymond Ebertt

Senior Member
Dec 12, 2011
3,056
3,580
Surrey
Oh no I completely agree the only down side to that is making all the categories work together and im not a fan of the whole top_header being a color thing its crazy ugly from a gfx standpoint. I hope to be of some service when it comes to figuring the themes out. ;)



That's an issue indeed. I found if you just stay with the stock theme nearly everything else is fine. What bothers me the most is that some of the main apks like gallery, dialer, phone, and calculator have repeated resources images that makes doing a theme 4 times longer. I think HTC got its Sense kicked out of it.
Sent from my HTC One using xda app-developers app
 

nashshafrulrezza

Senior Member
Jul 8, 2011
1,964
1,429
Johor Bahru
Google Pixel 4 XL
That's an issue indeed. I found if you just stay with the stock theme nearly everything else is fine. What bothers me the most is that some of the main apks like gallery, dialer, phone, and calculator have repeated resources images that makes doing a theme 4 times longer. I think HTC got its Sense kicked out of it.
Sent from my HTC One using xda app-developers app

Yes indeed! Hopefully we can figure it out how to link it to each other..

Sent from my HTC One using Tapatalk
 
  • Like
Reactions: 2WildFirE

fisha21

Senior Member
Nov 23, 2007
2,331
4,379
Honestly, I think the easiest way to go about doing these themes is to hook into them using xposed. Im just adding my 2 cents here. This would create the most compatiblity and customization available. Rather than being stuck to 1 custom theme without reflashing a new one.

Very true, xposed would allow for a theme engine type setup. The only downside for me is that it requires more coding knowledge than I possess.

I still haven't decided how to implement the theme on the Renovate M8 rom. While the theme engine approach allows for much better on-the-fly customisation, my themes tend to rely heavily on themed images which the HTC setup doesn't allow for
 
  • Like
Reactions: Pneuma1985

Mikanoshi

Senior Member
Aug 9, 2013
4,000
4,878
Soviet ☭ Russia
en.mikanoshi.name
At least using themes is pretty easy with appropriate HTC frameworks:
Code:
int themeNumber = 2; // from 1 to 4, 0 for theme without categories
int mThemeId = HtcWrapConfiguration.getHtcThemeId(this, themeNumber);
setTheme(mThemeId);
or just use any theme color:
Code:
ArrayList<ThemeColor> themeColors = HtcWrapConfiguration.getThemeColor(this);
for(int i = 0; i <= 3; i++)
for(int j = 0; j <= 3; j++)
Log.e(null, String.format("Theme " + (i+1) + " Color "+ j +": #%06X", (0xFFFFFF & themeColors.get(i).getColor()[j])));

Theme 1 Color 0: #0086CB
Theme 1 Color 1: #4EA770
Theme 1 Color 2: #FF5D3D
Theme 1 Color 3: #252525

Theme 2 Color 0: #FFA63D
Theme 2 Color 1: #E74457
Theme 2 Color 2: #F64541
Theme 2 Color 3: #252525

Theme 3 Color 0: #0761B9
Theme 3 Color 1: #07B7B9
Theme 3 Color 2: #A325A3
Theme 3 Color 3: #252525

Theme 4 Color 0: #252525
Theme 4 Color 1: #252525
Theme 4 Color 2: #252525
Theme 4 Color 3: #252525
 
Last edited:
  • Like
Reactions: Basil3

Basil3

Inactive Recognized Themer
Apr 4, 2008
7,789
13,110
Dublin
At least using themes is pretty easy with appropriate HTC frameworks:
Code:
int themeNumber = 2; // from 1 to 4, 0 for theme without categories
int mThemeId = HtcWrapConfiguration.getHtcThemeId(this, themeNumber);
setTheme(mThemeId);
or just use any theme color:
Code:
ArrayList<ThemeColor> themeColors = HtcWrapConfiguration.getThemeColor(this);
for(int i = 0; i <= 3; i++)
for(int j = 0; j <= 3; j++)
Log.e(null, String.format("Theme " + (i+1) + " Color "+ j +": #%06X", (0xFFFFFF & themeColors.get(i).getColor()[j])));

Nice, I'll have to look in to this. A lot easier than how I've been doing it [emoji106]

Sent from my HTC One_M8 using Tapatalk
 

Mikanoshi

Senior Member
Aug 9, 2013
4,000
4,878
Soviet ☭ Russia
en.mikanoshi.name
Settings app is using 0 category of every theme (it is an HTC's default and is not displayed on a thumbnails).
I'm using it for toolbox, repainting each pixel :D

Screenshot_2014-04-07-17-08-22.png Screenshot_2014-04-07-17-09-18.png
 
Last edited:
  • Like
Reactions: METHOD1911

xReaper7x

Senior Member
Dec 3, 2013
199
28
Toronto
Is there anyway to make one of the stock themes a straight red theme? Like everything red? I have been using InsertCoin for this but I perfer stock as it seems to run a lot quicker :) Thanks!
 

nashshafrulrezza

Senior Member
Jul 8, 2011
1,964
1,429
Johor Bahru
Google Pixel 4 XL
Is there anyway to make one of the stock themes a straight red theme? Like everything red? I have been using InsertCoin for this but I perfer stock as it seems to run a lot quicker :) Thanks!

Just use the OP way if you think other suggestion hard to understand for you.
For default theme. Just edit all in color.xml

Sent from my HTC One using Tapatalk
 

Raymond Ebertt

Senior Member
Dec 12, 2011
3,056
3,580
Surrey
So I have to edit com.htc.resources.apk, Prism.apk and HMS_Gallery.apk correct? Any others?

Each apk will have a specific color or two but the main panels and all font colors come from resources. If you want to make a red theme (I'm not quite sure to what extent you want it) you will need to theme the category colors as well. Just a note. A theme doesn't make the Rom faster. Themes are only colors. Good luck

Sent from my HTC One using xda app-developers app
 

xReaper7x

Senior Member
Dec 3, 2013
199
28
Toronto
Each apk will have a specific color or two but the main panels and all font colors come from resources. If you want to make a red theme (I'm not quite sure to what extent you want it) you will need to theme the category colors as well. Just a note. A theme doesn't make the Rom faster. Themes are only colors. Good luck

Sent from my HTC One using xda app-developers app

Haha yea I understand colours don't make a rom go faster. I just had InsertCoin Rom and it was running very slow, but when on stock im fine. So I was wondering is there a way to get the colours from InsertCoin on stock, took a look at com.htc.resources.apk but man am I confused.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 34
    With the avalanche of Sense 6 ROMs, and the release of the M8, we are finally getting to dig into the themes HTC reintroduced in Sense 6. Some of you may remember Sense skins, like we used to have on Sense 3 -- 4.5, and be eagerly looking forward to put those skinning skills back into action.

    HTC, however had other ideas - gone are the standalone skin .apks, and instead we have a slightly convoluted implementation instead...thanks HTC ;) (If the concept of Sense skins mean nothing to you, then please just ignore this bit....nothing to see here, other than a themer who's been at this way too long!)

    So, what and where are these themes? I've uncovered a few things while digging around, and thought I'd share what I learnt with my fellow themers. Please note, this thread is not intended to be a guide on how to theme - there are plenty of excellent threads covering this already. The purpose of this thread is to share ideas and findings


    What are the Sense 6 themes?​

    This is the easy bit! If you open Settings/Personalise/Theme, you'll be presented with the four built-in themes:

    29y2yon.jpg



    Where are the Sense 6 themes?​

    This is where things get complicated.

    There are four themes, each of which is split into five categories. The themes are called:

    27ymv4g.jpg


    The system wide theme is controlled by hex colour codes located in colors.xml and styles.xml of com.htc.resources. This controls the majority of system apps.

    If you look at com.htc.resources.apk/styles.xml line 2047 for example, you'll see that there are entries called:

    Code:
    <style name="ThemeOne.CategoryOne" parent="@style/HtcDeviceDefault">
    <style name="ThemeOne.CategoryTwo" parent="@style/HtcDeviceDefault">
    <style name="ThemeOne.CategoryThree" parent="@style/HtcDeviceDefault">
    <style name="ThemeOne.CategoryFour" parent="@style/HtcDeviceDefault">
    etc, starting from line 2047

    Categories 1-4 are represented by the four boxes along the top of the theme preview. The fifth category is defined by HTC within apks as Category 0, and this is the default category. It is used when the code within the apk doesn't specify which category to use (more on this later). With the default theme, you'll probably have noticed that various HTC apps have different coloured header bars, which correspond to the four boxes on the preview image:

    11jq2it.jpg

    So if you wanted to change the colour of the dialer, you'd edit the colour codes for HtcDeviceDefault.CategoryOne. If you were using the second theme, the orange one, you'd edit ThemeOne.CategoryOne to change dialer header, and so on...

    I've managed to track down which category each HTC app uses, but if there are any I'm missing, please let me know

    • Category 0
      • HTC Backup
      • Internet
      • Settings
      • Setup
      • Tips & Help
      • Scribble
      • All apps launched while in Car mode
    • Category 1
      • Calendar
      • Contacts
      • Mail
      • Message
      • Tasks
      • Phone
    • Category 2
      • Calculator
      • Clock
      • Stocks
      • Voice recorder
      • Weather
    • Category 3
      • Camera
      • FM radio
      • Music
    • Category 4
      • Didn't actually find any apps that seemed to use this category

    All of these apps use the specified category from com.htc.resources, so that's where you should edit it. There are some HTC apps that have seem to have their own internal themes:

    • Prism.apk
    • HMS_Gallery.apk
    • HTC-IME.apk
    • Video_Center.apk
    • HtcExtremePowerSaverLauncher.apk

    so they have their own specified themes and categories within the colors and styles.xml of their own apk. There may be other apks as well, I just haven't spotted them yet. They read the system flag to determine which Theme to use, but then use their own categories for various elements within the app.

    So Prism for example will set the overall Theme according to what's been set in the Theme picker but then will use its own internal categories. From my testing so far, all aspects of Prism (app drawer header, Blinkfeed, app drawer icon overlay) seem to use Category 4 colours from within Prism.apk. Haven't looked into any of the other apps listed above!


    How are the Sense 6 themes used?​

    So, which theme the system is using is determined by you, via the Theme Picker. As for which category an app uses, that is determined within the java code - thanks to @Mikanoshi for some more detailed info

    Still not sure where the current theme flag is set, so that the other themed apps (Gallery, Prism etc) know which theme to use. I'm guessing framework2.jar or framework3.jar, though I guess it doesn't really matter!

    As for the preview images, these are generated within, and then cached in /data/data/com.htc.home.personalize/files/themePreview/ - again, thanks to @Mikanoshi for more detailed info.

    If you want the Theme picker screen to show your edited themes, rather than the default ones, you'll need to delete these cached images. This can be done by full wiping, but obviously not so convenient. The other option is to add the following line

    Code:
    delete_recursive("/data/data/com.htc.home.personalize/files/themePreview");

    somewhere in the updater-script of your rom/theme zip.​


    Can we add new ones?​

    The four built in themes offer a great way to offer multiple variations of your theme. But what if 4 options aren't enough?

    I'm currently looking into this question. The biggest uncertainty I have right now is whether the themes are entirely defined in xml, or whether there is a smali compoment - some hidden smali arrays perhaps. Certainly, editing the theme don't require any smali edits, but it may be the overall number is hardcoded somewhere. Even if we can add our own, it will be via apk modification, so the themes will have to be flashed, and compatibility will likely be limited depending on much a given rom has modified their com.htc.res, Prism or Gallery apks. However it ends up working, it certainly won't be as easy as installing a skin apk from the Playstore....part of me suspects this may have been a factor behind HTC's decision to use this integrated theming solution.

    I've had a few messages comparing this to the CM Theme chooser. Having never flashed any non-Sense rom, I've no experience of this. Perhaps someone more familiar with Theme chooser could offer some insight?​

    Well, that's all for now. Apologies for the slightly wordy post, a consequence of me thinking out loud. I will say one more thing though. When Sense 6 first landed, I was not a fan of these new themes at all. But having spent time exploring and getting to know how they work, I actually really like them now. Overall, theming Sense 6 requires less smali edits than Sense 5/5.5 did, and the theme picker aspect is actually quite powerful....how else could you offer 4 variants of a theme so easily. I suspect that it's better for themers like myself, who theme specific roms, than it is for standalone themers.

    Happy theming!!​
    8
    reserved for future info
    8
    reserved for future info 5
    5