THIS THEME IS FOR MORE EXPERIENCED THEMERS ONLY!
Adding a Holo ActionBar to an app using Theme Chooser
Apps this is known not to work with:
WinAmp
Tapatalk
TubeMate
What does this do?
So you have an app that's made for Gingerbread, but you're using ICS or JB? Doesn't look as nice as it should does it?
Some of you might have seen my theme Holo Fixer, which automatically attempts to make those apps use Holo. In some cases, it works just fine. But it's not complete that way. If you wish to get more out of it, this guide will help you.
Screenshots of the outcome
A before and after screenshot:
![]()
Before
![]()
After
(This is the XDA RC blog app, which I'll be using in the guide)
Guide
Adding a Holo ActionBar to an app using Theme Chooser
Apps this is known not to work with:
WinAmp
Tapatalk
TubeMate
What does this do?
So you have an app that's made for Gingerbread, but you're using ICS or JB? Doesn't look as nice as it should does it?
Some of you might have seen my theme Holo Fixer, which automatically attempts to make those apps use Holo. In some cases, it works just fine. But it's not complete that way. If you wish to get more out of it, this guide will help you.
Screenshots of the outcome
A before and after screenshot:

Before

After
(This is the XDA RC blog app, which I'll be using in the guide)
Guide
1.) Start with your theme, make sure it's minSdkVersion is 14 or above and that you're building for ICS or above
2.) Pull the apk of your 'target app' from your phone/tablet, for example with the xda RC app:
3.) Using apktool, decompile that app
(No need for source, so use the -s tag to skip it)
4.) Firstly open the AndroidManifest.xml file and look for a "android:theme" tag, within the main activity area. That should be the theme being used by default for the app. If it isn't there (if the app uses code to set the theme it's unlikely it will have the tag), proceed to the next steps anyway, you may still be in luck. However, if it refers to "@android:style", you're out of luck, sorry :(
5.) Open the res/values/styles.xml of the app
6.) Search for the name of the style that matches the main theme of the app we found earlier. If you couldn't find it, look for a generic style that's likely to be the main theme. In the xda RC app, the main theme styles are the following:
If there are more than one, that's fine, continue.
7.) Copy the main theme styles to your theme's styles.xml, and rename them so they won't clash with other app's styles
8.) Change the parent theme to be its Holo equivalent:
9.) If it has tags that hide the title, remove them:
Leave the rest of the style in-tact though
10.) Make a new xml file in your theme's res/xml, using the package name, without the -1 or -number tags, and using _ rather than . For example, the xda RC app would be:
11.) Add the default resource redirect tags:
12.) Between the <resource-redirections> tags, add the following, replacing the "styleNameHere" with the original theme name, from the original app's styles.xml and the "modStyleNameHere" with the name of your theme name, from your theme's styles.xml
For example, the xda RC app's redirecion would be:
Note: If there's more than one theme being modified, you must redirect all the styles you are redirecting.
The full xml of the xda RC app can be found here, with different style names (my naming system is weird :silly:), and it also includes resource redirections, you don't need those yet.
13.) If you do not wish to customize your action bar at all, you are done here. If you do, proceed to post 2
2.) Pull the apk of your 'target app' from your phone/tablet, for example with the xda RC app:
Code:
adb pull /data/app/com.xda.rc.blog-1.apk
Code:
sudo java -jar apktool.jar d -s com.xda.rc.blog-1.apk
4.) Firstly open the AndroidManifest.xml file and look for a "android:theme" tag, within the main activity area. That should be the theme being used by default for the app. If it isn't there (if the app uses code to set the theme it's unlikely it will have the tag), proceed to the next steps anyway, you may still be in luck. However, if it refers to "@android:style", you're out of luck, sorry :(
5.) Open the res/values/styles.xml of the app
6.) Search for the name of the style that matches the main theme of the app we found earlier. If you couldn't find it, look for a generic style that's likely to be the main theme. In the xda RC app, the main theme styles are the following:
Code:
<style name="Theme_Light" parent="@*android:style/Theme.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Theme_Dark" parent="@*android:style/Theme.Black">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
7.) Copy the main theme styles to your theme's styles.xml, and rename them so they won't clash with other app's styles
Code:
<style name="Theme_Light_XDARC" parent="@*android:style/Theme.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Theme_Dark_XDARC" parent="@*android:style/Theme.Black">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Code:
<style name="Theme_Light_XDARC" parent="@*android:style/Theme.Holo.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Theme_Dark_XDARC" parent="@*android:style/Theme.Holo">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Code:
<style name="Theme_Light_XDARC" parent="@*android:style/Theme.Holo.Light">
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Theme_Dark_XDARC" parent="@*android:style/Theme.Holo">
<item name="android:windowContentOverlay">@null</item>
</style>
10.) Make a new xml file in your theme's res/xml, using the package name, without the -1 or -number tags, and using _ rather than . For example, the xda RC app would be:
Code:
com_xda_rc_blog
Code:
<?xml version="1.0" encoding="utf-8"?>
<resource-redirections>
</resource-redirections>
Code:
<item name="style/styleNameHere">@style/modStyleNameHere</item>
Code:
<item name="style/Theme_Light">@style/Theme_Light_XDARC</item>
The full xml of the xda RC app can be found here, with different style names (my naming system is weird :silly:), and it also includes resource redirections, you don't need those yet.
13.) If you do not wish to customize your action bar at all, you are done here. If you do, proceed to post 2