Related
Due to poor decisions made by the moderator staff here at XDA I will be leaving XDA. Recently my Developer application was denied due to a argument my team had with a moderator (TheDeadCpu) My whole team was banned and threads were deleted and nothing happened to this moderator. Now I am getting denied due to bad behavior. If you would like to continue using my kernels follow me on twitter @klquicksall I will also be deleting my kernel source from XDA.
I decided to start this thread because many people have asked me how to create transparency. Here is a Simple How to guide I put together through trial and error
All Fields in Bold are the needed changes. I have attached many examples in zip format that can be used for various roms at the bottom of Post 3.
Klquicksall’s Simple guide to make the Pull Down Notifications Menu and App drawer transparent.
*Look to the bottom of the guide for a few extra mods.*
Here are some Mods I made. With screen shots.
App drawer for sense 2.1
1 First we need to decompile the Rosie.apk using apk tool.
2 Resources needed to decompile; htc.com.resources.apk
3 Now you will need to locate 3 folders within the Res folder. 1 values, values-hdpi, and Layout
4. Values:
edit color.xml - replacing ff with 00 is just an option, you can certainly also use for example 88, or 77 depends on your taste.
<color name="all_item_background"> #00000000
<color name="add_to_home_background">#00000000
To delete the bubble text from the icon names (recommended)
<color name="bubble_dark_background">#00191919
<color name="bubble_text_shadowColor">#00000000
5 values-hdpi:
<color name="add_to_home_background">#00000000
00 is used in rcmix instead of 77 or 88
6 now go back to the main list of folders and select samli. Navigate to launcher.samli in the launcher folder. It’s about half way down the page. Look for this value in launcher.smali
const/high16 v23 (v24 in some roms), -0x100
and change to: const/high16 v23, -0x6700
7. Recompile apk.
(for apk manager)When asked the first time is this sys app. Select Y when asked the second time select Y again. Now it will run and stop and ask to view the keep folder. Make sure to delete resources.arsc and dex files in keep folder. If you don’t you will not get the desired affect from your mod. After deleting the files just hit enter to continue. Your app will be placed in the place app here for modding folder. It will be named unsignedrosie.apk Now open the place app here for modding folder and delete the original rosie.apk. Rename unsignedrosie.apk to rosie.apk and place it into a zip folder and flash.
App drawer for Sense 3.0
Follow steps 1 through 3 from the list above
4. Values:
Edit color.xml - replacing ff with cf is just an option, you can certainly also use for example 88, or 77 depends on your taste.
<color name="all_item_background">#cf000000
<color name="add_to_home_background">#cf000000
5 values-hdpi:
<color name="add_to_home_background">#cf000000
cf is used in rcmix instead of 77 or 88
6 Layout folder
Edit All_apps_view.xml
<?xml version="1.0" encoding="utf-8"?>
<com.htc.launcher.AllAppsView android:layout_width="fill_parent" android:layout_height="fill_parent" android:inAnimation="@anim/fade_in" androidutAnimation="@anim/fade_out"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.htc.launcher.AllAppsListView android:layout_gravity="top|left|center" android:id="@id/content_list" android:background=@color/all_item_background" androidaddingLeft="@dimen/tabbar_padding" androidaddingRight="@dimen/tabbar_padding" android:nextFocusLeft="@id/content_list" android:nextFocusRight="@id/content_list" android:nextFocusUp="@id/content_list" android:nextFocusDown="@id/content_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/application_boxed_padding_bottom" />
<com.htc.launcher.AllAppsGridView android:scrollbarStyle="outsideOverlay" android:layout_gravity="top|left|center" android:id="@id/content_grid" android:background="@color/all_item_background" androidaddingLeft="@dimen/application_grid_left_padding" androidaddingTop="@dimen/application_boxed_padding_top" androidaddingRight="@dimen/application_grid_right_padding" android:nextFocusLeft="@id/content_grid" android:nextFocusRight="@id/content_grid" android:nextFocusUp="@id/content_grid" android:nextFocusDown="@id/content_grid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/application_boxed_padding_bottom" android:listSelector="@drawable/grid_selector" android:drawSelectorOnTop="false" android:verticalSpacing="@dimen/launcher_aagv_vertical_spacing" android:numColumns="@integer/allprogram_grid_columns" />
<com.htc.launcher.AddWidgetLayout android:id="@id/content_add_to_home" android:background="@color/add_to_home_background" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<include android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/all_apps_tab" />
</com.htc.launcher.AllAppsView>
7 Recompile Apk
Notification pull down menu transparency for Sense 2.1 Gingerbread based Roms
First we need to decompile SystemUI.apk
Resources needed to decompile:
1 com.htc.resources.apk
2 framework-res.apk
1 Once the systemui.apk is decompiled you need to enable transparency support in StatusBarService.smali. and StatuBarPolicy.smali.
Smali Edits
statusbarservice.smali Replace const/4 v5, 0x2 with const/4 v5, -0x3 You will need to make this edit in two places. Make sure you see -0x1 above the 0x2 when editing.
statusbarpolicy.smali Replace const/4 v5, 0x2 with const/4 v5, -0x3. You will need to make this edit in one place.
Now we need to make edits in
Values and layout folders
1 Values
Color.xml
<color name="white">#ffffffff</color>
<color name="black">ff9c9c9c</color>
<color name="half_white">#7fffffff</color>
<color name="half_black">#7f000000</color>
<color name="primary_text_color">#ffffffff</color>
<color name="secondary_text_color">#ff9c9c9c</color>
Drawables
<item type="drawable" name="APKTOOL_DUMMY_00eb">false</item>
<item type="drawable" name="shade_bgcolor">#ff282828</item>
<item type="drawable" name="notification_header_text_color">#ff9c9c9c</item>
<item type="drawable" name="notification_number_text_color">#ff9c9c9c</item>
<item type="drawable" name="list_item_background">#00000000</item>
2 Layout folder
Statusbartracking.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.TrackingView androidrientation="vertical" androidaddingLeft="0.0px" androidaddingRight="0.0px" androidaddingBottom="0.0px" android:focusable="true" android:visibility="gone" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<View android:background="@drawable/status_bar_background" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<LinearLayout androidrientation="vertical" android:id="@id/swtich_buttons" android:layout_width="fill_parent" android:layout_height="wrap_content">
<View android:background="@drawable/divider_horizontal_light_opaque" android:layout_width="fill_parent" android:layout_height="1.0px" />
<View android:background="@drawable/status_bar_background" android:layout_width="fill_parent" android:layout_height="4.0sp" />
<LinearLayout androidrientation="horizontal" android:background=#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false">
<TextView android:textSize="15.0sp" android:textStyle="bold" android:textColor="#ffffffff" android:ellipsize="end" android:gravity="center" android:id="@id/notifications" android:background="@drawable/status_bar_tab_on" android:clickable="true" android:layout_width="0.0px" android:layout_height="48.0px" android:singleLine="true" android:layout_weight="1.0" />
<TextView android:textSize="15.0sp" android:textStyle="bold" android:textColor="#ffffffff" android:ellipsize="end" android:gravity="center" android:id="@id/quick_settings" android:background="@drawable/status_bar_tab_off" android:clickable="true" android:layout_width="0.0px" android:layout_height="48.0px" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
</LinearLayout>
<com.android.systemui.statusbar.CloseDragHandle androidrientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" />
</com.android.systemui.statusbar.CloseDragHandle>
</com.android.systemui.statusbar.TrackingView>
Statusbarexpanded.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.ExpandedView androidrientation="horizontal" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout androidrientation="horizontal" android:background="@drawable/status_bar_header_background" androidaddingTop="3.0dip" androidaddingRight="3.0dip" androidaddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.CarrierLabel android:layout_gravity="center_vertical" androidrientation="vertical" android:id="@id/carrierLabel" androidaddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0">
<com.htc.widget.HtcBlinkingTextView android:textAppearance="?android:textAppearanceLarge" android:textSize="28.0px" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/plmnLabel" androidaddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="28.0px" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/spnLabel" androidaddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.CarrierLabel>
<TextView android:textSize="14.0sp" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" androidaddingLeft="15.0dip" androidaddingRight="15.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip" android:layout_marginBottom="1.0dip" android:text="@string/status_bar_clear_all_button" style="\?android:buttonStyle" />
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" androidverScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.NotificationLinearLayout androidrientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/noNotificationsTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/ongoingTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
<LinearLayout androidrientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content"android:drawable="@drawable/status_bar_background" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/latestTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
<LinearLayout androidrientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawable="@drawable/status_bar_background" />
</com.android.systemui.statusbar.NotificationLinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</LinearLayout>
<ImageView android:id="@id/tab_divider" android:layout_width="2.0px" android:layout_height="fill_parent" android:src="@drawable/notification_separator" android:scaleType="fitXY" />
</com.android.systemui.statusbar.ExpandedView>
Quicksettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.preference.QuickSettings androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="28.0px" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/title_bar" android:background="@drawable/status_bar_header_background" androidaddingLeft="9.0sp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:text="@string/status_bar_quick_settings" />
<ScrollView android:id="@id/scroll" android:background="@drawable/list_item_background" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include android:id="@id/dummy_mode1" layout="\@layout/status_bar_preference" />
<include android:id="@id/brightness" layout="\@layout/status_bar_preference" />
<include android:id="@id/wifi" layout="\@layout/status_bar_preference" />
<include android:id="@id/bluetooth" layout="\@layout/status_bar_preference" />
<include android:id="@id/hotspot" layout="\@layout/status_bar_preference" />
<include android:id="@id/dummy_mode2" layout="\@layout/status_bar_preference" />
<include android:id="@id/gps" layout="\@layout/status_bar_preference" />
<include android:id="@id/network" layout="\@layout/status_bar_preference" />
<include android:id="@id/rotation" layout="\@layout/status_bar_preference" />
<include android:id="@id/vibration_mode" layout="\@layout/status_bar_preference" />
<include android:id="@id/silent_mode" layout="\@layout/status_bar_preference" />
<include android:id="@id/volume" layout="\@layout/status_bar_preference" />
<include android:id="@id/task_manager" layout="\@layout/status_bar_preference" />
<include android:id="@id/settings" layout="\@layout/status_bar_preference" />
</LinearLayout>
</ScrollView>
</com.android.systemui.statusbar.preference.QuickSettings>
Now you will need to change out Pngs in
Drawables, drawables hdpi
Drawables status bar tab on / off
Drawables hdpi status bar tab on / off, and Statusbarbackground.
Edit these pngs to your desired transparency effect.
3 Recompile apk
Notification pull down menu transparency for Sense 3.0 Gingerbread based Roms
First we need to decompile SystemUI.apk
Resources needed to decompile:
1 com.htc.resources.apk
2 framework-res.apk
1 Once the systemui.apk is decompiled you need to enable transparency support in StatusBarService.smali. and StatuBarPolicy.smali.
Smali Edits
statusbarservice.smali Replace const/4 v5, 0x2 with const/4 v5, -0x3 You will need to make this edit in one place. Make sure you see -0x1 above the 0x2 when editing. Line 1797 may be a little different in some roms.
statusbarpolicy.smali Replace const/4 v5, 0x2 with const/4 v5, -0x3. You will need to make this edit in one place. Line 2246 may be different in some roms.
Now we need to make edits in
Values and layout folders
Values Folder
Color
<color name="white">#ffffffff</color>
<color name="black">#ff999999</color>
<color name="half_white">#7fffffff</color>
<color name="half_black">#7f000000</color>
<color name="primary_text_color">#ffffffff</color>
<color name="secondary_text_color">#ffcccccc</color>
You can use different values for the colors, the ones listed above are just values I use.
Drawables
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<item type="drawable" name="APKTOOL_DUMMY_0046">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0047">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0048">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0049">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004a">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004b">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004c">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004d">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004e">false</item>
<item type="drawable" name="APKTOOL_DUMMY_004f">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0050">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0051">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0052">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0053">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0054">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0055">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0056">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0057">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0058">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0059">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005a">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005b">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005c">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005d">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005e">false</item>
<item type="drawable" name="APKTOOL_DUMMY_005f">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0060">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0061">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0062">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0063">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0064">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0072">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0073">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0074">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0075">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0076">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0077">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0078">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0079">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007a">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007b">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007c">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007d">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007e">false</item>
<item type="drawable" name="APKTOOL_DUMMY_007f">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0080">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0081">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0082">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0083">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0084">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0085">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0086">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0087">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0088">false</item>
<item type="drawable" name="APKTOOL_DUMMY_0089">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008a">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008b">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008c">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008d">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008e">false</item>
<item type="drawable" name="APKTOOL_DUMMY_008f">false</item>
<item type="drawable" name="APKTOOL_DUMMY_013e">false</item>
<item type="drawable" name="shade_bgcolor">#99000000</item>
<item type="drawable" name="notification_header_text_color">#ffffffff</item>
<item type="drawable" name="notification_number_text_color">#ffffffff</item>
<item type="drawable" name="list_item_background">#00000000</item>
<item type="drawable" name="list_item_background_gray">#fff2f2f2</item>
</resources>
Note on a stock SystemUI the values in Yellow will be on the top. You will need to add them to the bottom just like this guide has it.
Layout Folder
Status bar tracking.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.TrackingView androidrientation="vertical" androidaddingLeft="0.0px" androidaddingRight="0.0px" androidaddingBottom="0.0px" android:focusable="true" android:visibility="gone" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<View android:id="@id/background" android:background="@drawable/status_bar_background" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<LinearLayout androidrientation="vertical" android:id="@id/swtich_buttons" android:layout_width="fill_parent" android:layout_height="wrap_content">
<View android:background="@drawable/divider_horizontal_dark_opaque" android:layout_width="fill_parent" android:layout_height="1.0px" />
<View android:id="@id/tab_header" android:background="@drawable/status_bar_background" android:layout_width="fill_parent" android:layout_height="4.0sp" />
<LinearLayout androidrientation="horizontal" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false">
<TextView android:textSize="@com.htc:dimen/list_primary_m" android:textStyle="bold" android:textColor="#ffffffff" android:ellipsize="marquee" android:gravity="center" android:id="@id/notifications" android:background="@drawable/status_bar_tab_on" android:clickable="true" android:layout_width="0.0px" android:layout_height="@dimen/quick_settings_tab_height" android:singleLine="true" android:layout_weight="1.0" />
<TextView android:textSize="@com.htc:dimen/list_primary_m" android:textStyle="bold" android:textColor="#ffffffff" android:ellipsize="marquee" android:gravity="center" android:id="@id/quick_settings" android:background="@drawable/status_bar_tab_off" android:clickable="true" android:layout_width="0.0px" android:layout_height="@dimen/quick_settings_tab_height" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
</LinearLayout>
<com.android.systemui.statusbar.CloseDragHandle androidrientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" />
</com.android.systemui.statusbar.CloseDragHandle>
</com.android.systemui.statusbar.TrackingView>
Status bar expanded.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.ExpandedView androidrientation="horizontal" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:gravity="center_vertical" androidrientation="horizontal" android:background="@drawable/status_bar_header_background" androidaddingRight="@dimen/clear_button_padding_right" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.CarrierLabel android:gravity="center_vertical" android:layout_gravity="center_vertical" androidrientation="vertical" android:id="@id/carrierLabel" androidaddingLeft="5.0dip" androidaddingTop="1.0dip" androidaddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.htc.widget.HtcBlinkingTextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/plmnLabel" androidaddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/spnLabel" androidaddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.CarrierLabel>
<TextView android:textSize="@dimen/clear_button_font_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" androidaddingLeft="15.0dip" androidaddingRight="15.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_clear_all_button" style="?android:buttonStyle" />
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" androidverScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.NotificationLinearLayout androidrientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/noNotificationsTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/ongoingTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
<LinearLayout androidrientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawable="@drawable/status_bar_background" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/latestTitle" android:background="@drawable/title_bar_portrait" androidaddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
<LinearLayout androidrientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawable="@drawable/status_bar_background" />
</com.android.systemui.statusbar.NotificationLinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</LinearLayout>
<ImageView android:id="@id/tab_divider" android:layout_width="2.0px" android:layout_height="fill_parent" android:src="@drawable/notification_separator" android:scaleType="fitXY" />
</com.android.systemui.statusbar.ExpandedView>
Note the text is yellow will have to be added manually. They are not part of the stock SystemUI
Quicksettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<com.android.systemui.statusbar.preference.QuickSettings androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/title_bar" android:background="@drawable/status_bar_header_background" androidaddingLeft="9.0sp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:text="@string/status_bar_quick_settings" />
<ScrollView android:id="@id/scroll" android:background="@drawable/list_item_background" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout androidrientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include android:id="@id/volume" layout="@layout/status_bar_preference" />
<include android:id="@id/brightness" layout="@layout/status_bar_preference" />
<include android:id="@id/rotation" layout="@layout/status_bar_preference" />
<include android:id="@id/wifi" layout="@layout/status_bar_preference" />
<include android:id="@id/hotspot" layout="@layout/status_bar_preference" />
<include android:id="@id/network" layout="@layout/status_bar_preference" />
<include android:id="@id/wimax" layout="@layout/status_bar_preference" />
<include android:id="@id/bluetooth" layout="@layout/status_bar_preference" />
<include android:id="@id/gps" layout="@layout/status_bar_preference" />
<include android:id="@id/settings" layout="@layout/status_bar_preference" />
<include android:id="@id/task_manager" layout="@layout/status_bar_preference" />
</LinearLayout>
</ScrollView>
</com.android.systemui.statusbar.preference.QuickSettings>
Now use the Apks above for Status bar tab on / off and status bar background.
Recompile apk and enjoy.
To Change your Lock Screen in Gingerbread Sense 2.1
1. Create a 480x788 pixel png (no jpg) and name it lockscreen_topedge.png - if desired you can add a little transparency if you want this effect
2. Extract the HtcLockScreen.apk from the lockscreen.zip
3. Open (NOT UNPACK) HtcLockScreen.apk with winrar and drag your lockscreen_topedge.png in the res/drawable-hdpi folder and just close the apk. Make sure your compression settings in winrar are store to avoid any issues.
4. In a perfect world you zipalign your apk for less Ram consumption, but since this is only 1, you will not notice a difference anyway.
5. Now drag the HtcLockScreen.apk in the lockscreen2.2.1 or lockscreen2.2.zip (depends what you have downloaded for your type of ROM) in the system/app folder and close the zip. Again - no need to pack or unpack anything, this would only break the signage.
6. Install like a ROM with ROM Manager or directly from recovery.
To create the 5 app drawer for Sense 2.1
Decompile rosie.apk with htc.com.resources.apk
Go to values/ values-hdpi /integers
<integer name="cell_layout_line_width">4</integer>
Change to 5
Values-hdpi folder / integer
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="scroll_x1">0</integer>
<integer name="scroll_y1">37</integer>
<integer name="scroll_x2">240</integer>
<integer name="scroll_y2">10</integer>
<integer name="scroll_x3">480</integer>
<integer name="scroll_y3">37</integer>
<integer name="cell_layout_corner_radius">5</integer>
<integer name="cell_layout_line_width">5</integer>
<integer name="blade_control_touch_area">50</integer>
</resources>
Values folder / integer
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="add_view_scroll_up_duration">200</integer>
<integer name="add_view_scroll_down_duration">200</integer>
<integer name="add_view_fade_in_duration">300</integer>
<integer name="add_view_fade_out_down_duration">200</integer>
<integer name="blade_scroll_fade">300</integer>
<integer name="blade_bar_slide">800</integer>
<integer name="button_state_fade_duration">250</integer>
<integer name="buttons_slide_down_duration">200</integer>
<integer name="button_bar_scroll_up_area">5</integer>
<integer name="folder_grid_columns">5</integer>
<integer name="workspace_screen_cl_short_axis_cells">4</integer>
<integer name="workspace_screen_cl_long_axis_cells">4</integer>
<integer name="allprogram_grid_columns">5</integer>
<integer name="thumb_nail_screen_1_x">68</integer>
<integer name="thumb_nail_screen_1_y">13</integer>
<integer name="thumb_nail_screen_2_x">166</integer>
<integer name="thumb_nail_screen_2_y">13</integer>
<integer name="thumb_nail_screen_3_x">20</integer>
<integer name="thumb_nail_screen_3_y">141</integer>
<integer name="thumb_nail_screen_4_x">117</integer>
<integer name="thumb_nail_screen_4_y">141</integer>
<integer name="thumb_nail_screen_5_x">215</integer>
<integer name="thumb_nail_screen_5_y">141</integer>
<integer name="thumb_nail_screen_6_x">68</integer>
<integer name="thumb_nail_screen_6_y">269</integer>
<integer name="thumb_nail_screen_7_x">166</integer>
<integer name="thumb_nail_screen_7_y">269</integer>
<integer name="thumb_nail_screen_width">80</integer>
<integer name="thumb_nail_screen_height">114</integer>
<integer name="drag_scale">24</integer>
</resources>
Sense 3
5 app drawer
Values integers
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="default_screen_count">7</integer>
<integer name="default_screen">3</integer>
<integer name="middle_btn_top">532</integer>
<integer name="middle_left_btn_left">130</integer>
<integer name="middle_left_btn_right">371</integer>
<integer name="middle_center_btn_right">619</integer>
<integer name="middle_right_btn_right">860</integer>
<integer name="add_view_scroll_up_duration">200</integer>
<integer name="add_view_scroll_down_duration">200</integer>
<integer name="add_view_fade_in_duration">300</integer>
<integer name="add_view_fade_out_down_duration">200</integer>
<integer name="blade_scroll_fade">300</integer>
<integer name="blade_bar_slide">960</integer>
<integer name="allprogram_grid_rows">5</integer>
<integer name="button_state_fade_duration">250</integer>
<integer name="buttons_slide_down_duration">200</integer>
<integer name="button_bar_scroll_up_area">5</integer>
<integer name="folder_grid_columns">5</integer>
<integer name="workspace_screen_cl_short_axis_cells">4</integer>
<integer name="workspace_screen_cl_long_axis_cells">4</integer>
<integer name="allprogram_grid_columns">5</integer>
<integer name="allprogram_land_grid_columns">6</integer>
<integer name="thumb_nail_screen_1_x">68</integer>
<integer name="thumb_nail_screen_1_y">13</integer>
<integer name="thumb_nail_screen_2_x">166</integer>
<integer name="thumb_nail_screen_2_y">13</integer>
<integer name="thumb_nail_screen_3_x">20</integer>
<integer name="thumb_nail_screen_3_y">141</integer>
<integer name="thumb_nail_screen_4_x">117</integer>
<integer name="thumb_nail_screen_4_y">141</integer>
<integer name="thumb_nail_screen_5_x">215</integer>
<integer name="thumb_nail_screen_5_y">141</integer>
<integer name="thumb_nail_screen_6_x">68</integer>
<integer name="thumb_nail_screen_6_y">269</integer>
<integer name="thumb_nail_screen_7_x">166</integer>
<integer name="thumb_nail_screen_7_y">269</integer>
<integer name="thumb_nail_screen_width">80</integer>
<integer name="thumb_nail_screen_height">114</integer>
<integer name="thumb_nail_screen_1_x_5page">173</integer>
<integer name="thumb_nail_screen_1_y_5page">23</integer>
<integer name="thumb_nail_screen_2_x_5page">20</integer>
<integer name="thumb_nail_screen_2_y_5page">282</integer>
<integer name="thumb_nail_screen_3_x_5page">173</integer>
<integer name="thumb_nail_screen_3_y_5page">282</integer>
<integer name="thumb_nail_screen_4_x_5page">325</integer>
<integer name="thumb_nail_screen_4_y_5page">282</integer>
<integer name="thumb_nail_screen_5_x_5page">173</integer>
<integer name="thumb_nail_screen_5_y_5page">542</integer>
<integer name="thumb_nail_screen_width_5page">135</integer>
<integer name="thumb_nail_screen_height_5page">192</integer>
<integer name="drag_scale">24</integer>
</resources>
Values hdpi
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="allprogram_grid_rows">4</integer>
<integer name="scroll_x1">0</integer>
<integer name="scroll_y1">37</integer>
<integer name="scroll_x2">240</integer>
<integer name="scroll_y2">10</integer>
<integer name="scroll_x3">480</integer>
<integer name="scroll_y3">37</integer>
<integer name="cell_layout_corner_radius">5</integer>
<integer name="cell_layout_line_width">5</integer>
<integer name="blade_control_touch_area">50</integer>
Credits
Capychimp
he_stheone64
liamsters
maxdroid
If I forgot you please let me know.
Enjoy
Here are some tools to get you going
Apkmanager 4.9
Apktool
CapyChimp Apktool user guide
Attached are examples of what you should achieve if you follow the guide. I made all of the mods below with the guide above.
These zip files path is system/app If you are using a rom with a different path you will need to add the correct path to the zip and then flash.
1 Transparent pull down menu for sense 3
2 5 app drawer transparent for sense 3
3 4 app drawer transparent for hybrid roms based on 2.1 with 3.0 lockscreens
5 5 app drawer transparent for hybrid roms based on 2.1 with 3.0 lockscreens
6 4 app drawer transparent for 2.1 stock based roms
7 Transparent Pull down menu for 2.1 based roms.
Feel free to ask questions.
Is it possible to create a 5 column app drawer for the 3.0 Rosie?
Sent from my Desire HD using XDA Premium App
acidspider said:
Is it possible to create a 5 column app drawer for the 3.0 Rosie?
Sent from my Desire HD using XDA Premium App
Click to expand...
Click to collapse
Very easy. Look at my second post.
klquicksall said:
Very easy. Look at my second post.
Click to expand...
Click to collapse
nice thread very usefull for new guys
klquicksall said:
Very easy. Look at my second post.
Click to expand...
Click to collapse
I haven't got a client when it comes to stuff like that. Any chance of a flashable zip?
Sent from my Desire HD using XDA Premium App
acidspider said:
I haven't got a client when it comes to stuff like that. Any chance of a flashable zip?
Sent from my Desire HD using XDA Premium App
Click to expand...
Click to collapse
I have attached many examples of what should be achieved with the guide. Go to post 3 and download one of them. They also work on almost every rom for the DHD and Inspire 4g.
Ok ill give it a whirl. Cheers
Sent from my Desire HD using XDA Premium App
Thanks! Works perfectly.
Dont suppose you know how to get rid of the 'apps' bar at the top and the all/favourites/downloaded bar at the bottom? I'd like to fit even more apps on screen.
JLneonhug said:
Thanks! Works perfectly.
Dont suppose you know how to get rid of the 'apps' bar at the top and the all/favourites/downloaded bar at the bottom? I'd like to fit even more apps on screen.
Click to expand...
Click to collapse
That's part of the frame work. I don't think the app drawer would work without it.
Sent from my HTC Desire HD using XDA Premium App
Thanks, nice guide. I have a small problem though. I am trying to change tha app drawer background to transparent, I am using Sense 2.1
In the guide you are writing to change const/high16 v23 (v24 in some roms), -0x100 to: const/high16 v23, -0x6700 in launcher.smali.
The only problem is that I can't find const/high16 v23 (nor v24). I am using Rosie.apk that was already modded by Maxdroid to have 5 rows of icons on home screen.
Any idea?
Thanks
szilistvan said:
Thanks, nice guide. I have a small problem though. I am trying to change tha app drawer background to transparent, I am using Sense 2.1
In the guide you are writing to change const/high16 v23 (v24 in some roms), -0x100 to: const/high16 v23, -0x6700 in launcher.smali.
The only problem is that I can't find const/high16 v23 (nor v24). I am using Rosie.apk that was already modded by Maxdroid to have 5 rows of icons on home screen.
Any idea?
Thanks
Click to expand...
Click to collapse
If you dont mind which rom are you using this for? Also when you decompile Rosie.apk did you use both framework-res.apk and htc.com.resources.apk?
Yes, I used both. The ROM I have is Leedroid HD 2.2.3. (based on Froyo)
szilistvan said:
Yes, I used both. The ROM I have is Leedroid HD 2.2.3. (based on Froyo)
Click to expand...
Click to collapse
Well I haven't used a froyo ROM in a while but it should be the same. Look for -ox100 with note pad ++
Sent from my HTC Desire HD using XDA Premium App
I have tried that, searched the file with every possible combination, but no luck, I have no entry in that file with -0x100 or const/high16 v23(or v24).
szilistvan said:
I have tried that, searched the file with every possible combination, but no luck, I have no entry in that file with -0x100 or const/high16 v23(or v24).
Click to expand...
Click to collapse
Try to just search -0x100. Also if you search for the 1.84 based rcmix it has a transparent app drawer that comes with the ROM.
Sent from my HTC Desire HD using XDA Premium App
Thanks very much for this thread. I've now learnt a lot about carrying out transparency mods!
I was wondering if it is possible to edit Seo's Sense 3.0 Mms.apk with the "Bubble Interface" so that there is transparency on the conversation window? I've had a look around and attempted some changes but to no avail...
Thanks again!
pravus_nephilim said:
Thanks very much for this thread. I've now learnt a lot about carrying out transparency mods!
I was wondering if it is possible to edit Seo's Sense 3.0 Mms.apk with the "Bubble Interface" so that there is transparency on the conversation window? I've had a look around and attempted some changes but to no avail...
Thanks again!
Click to expand...
Click to collapse
well I think it would be possible but, I haven't tried it. Decompille the apk with look for all item background ect... in the values folder or layout folder. see if that works. There might also be a smali edit in there some where. Let me know how it goes.
szilistvan said:
I have tried that, searched the file with every possible combination, but no luck, I have no entry in that file with -0x100 or const/high16 v23(or v24).
Click to expand...
Click to collapse
let me know how it goes. If you cant get it ill try to fix one up for you.
Some of you saw/used my TNL theme: http://forum.xda-developers.com/showthread.php?t=1886892 and you probably would like to know how I did it.
Ok am gonna show you, but if you do not have basic knowledge (maybe even a bit advanced).
Requirements:
-apktool (not other apk manager!)
-cmd/terminal
-jre and jdk
-windows or linux (probably osx as well)
1. Load resources of app that you want to theme
Code:
apktool if here_comes_apk_file.apk
for me it was SystemUI.apk, then you will get:
Code:
I: Framework installed to: %userprofile%\apktool\framework\127.apk
2. What to do with 127.apk, simply add it to apktool.yml (of the theme):
Code:
usesFramework:
ids:
- 1
- 127
3. Preview of com_android_systemui.xml (as usual, but in layout files you cannot use a part of file you have to keep whole code):
Code:
<item name="layout/status_bar">@layout/status_bar</item>
<item name="layout/status_bar_expanded">@layout/status_bar_expanded</item>
<item name="layout/status_bar_expanded_header">@layout/status_bar_expanded_header</item>
4. Preview of status_bar_expanded_header.xml (you can add/remove/change everything you want as long as you put package name right after each @):
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="@com.android.systemui:drawable/notification_header_bg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@com.android.systemui:style/TextAppearance.StatusBar.Expanded.Clock" android:id="@com.android.systemui:id/clock" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@com.android.systemui:style/TextAppearance.StatusBar.Expanded.Date" android:id="@com.android.systemui:id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" />
<LinearLayout android:id="@com.android.systemui:id/buttons_bar" android:layout_width="wrap_content" android:layout_height="wrap_content">
<com.android.systemui.statusbar.RotationToggle android:id="@com.android.systemui:id/rotation_lock_button" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@com.android.systemui:drawable/ic_notify_rotation" android:contentDescription="@com.android.systemui:string/accessibility_rotation_lock_off" />
<ImageView android:id="@com.android.systemui:id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@com.android.systemui:drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@com.android.systemui:string/accessibility_settings_button" />
</LinearLayout>
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:id="@com.android.systemui:id/clear_all_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@com.android.systemui:drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@com.android.systemui:string/accessibility_clear_all" />
</LinearLayout>
5. Preview of usb_storage_activity.xml (from my MIUIv4 theme) (you can add/remove/change everything you want as long as you put package name right after each @):
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:gravity="center" android:id="@android:id/main" android:padding="18.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:layout_gravity="center" android:layout_marginTop="50.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:id="@android:id/icon" android:layout_width="0.0dip" android:layout_height="0.0dip" android:src="@android:drawable/usb_android" android:layout_centerHorizontal="true" />
<Button android:id="@android:id/mount_button" android:layout_gravity="center" android:background="@android:drawable/usb_android" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:id="@android:id/unmount_button" android:layout_gravity="center" android:background="@android:drawable/usb_android_connected" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:layout_gravity="center_vertical" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="24.0sp" android:gravity="center" android:id="@android:id/banner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:text="@android:string/usb_storage_title" android:layout_below="@android:id/icon" android:layout_centerHorizontal="true" />
<TextView android:textSize="14.0sp" android:gravity="center" android:id="@android:id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:text="@android:string/usb_storage_message" android:layout_below="@android:id/banner" />
</LinearLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="110.0dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true">
<ProgressBar android:id="@android:id/progress" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminate="true" style="?android:attr/progressBarStyle" />
</RelativeLayout>
</RelativeLayout>
6. Preview of styles.xml (from swype to show you how to theme such parts):
Code:
<style name="Swype.holo" parent="@com.nuance.swype.dtc:style/Swype.holo">
<item name="com.nuance.swype.dtc:candidateComponent">#ff187af4</item>
<item name="com.nuance.swype.dtc:candidateRecommended">#ff187af4</item>
<item name="com.nuance.swype.dtc:highlightedKeyTextColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:componentForegroundColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:convertingStringBackgroundColor">#aa187af4</item>
<item name="com.nuance.swype.dtc:smartEditorBackgroundHighlightColor">#aa187af4</item>
<item name="com.nuance.swype.dtc:smartEditorUnderlineHighlightColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:verCandidateComponent">#ff187af4</item>
<item name="com.nuance.swype.dtc:verCandidateRecommended">#ff187af4</item>
<item name="com.nuance.swype.dtc:wordInlineBackgroundColor">#ff187af4</item>
</style>
8. Using this guide you will loose wallpaper and preview of you theme to get your wall back add following code to android.xml:
Code:
<item name="drawable/default_wallpaper">@drawable/homescreen</item>
There is no way to fix preview w/o editing apktool source.
ZduneX25 said:
Hi guys am going to save some money to buy and try out iToy (do not judge), so I feel it is the right moment to share with you hacks I figured out this autumn.
Some of you saw/used my TNL theme: http://forum.xda-developers.com/showthread.php?t=1886892 and you probably would like to know how I did it.
Ok am gonna show you, but if you do not have basic knowledge (maybe even a bit advanced), do not join us, cause am going to make a TeamViewer Meeting to show how to, not to learn how to theme.
Why I cannot write a regular guide, because some things are less difficult to show that to explain, feel free to join me.
Am waiting for at least 10 themers then we will talk about the show.
Click to expand...
Click to collapse
You mean, we can using custom layout on cm theme engine instead the default layout inside systemui/framewok ?
This is something I'm very interested in although I don't consider myself a 'themer' can I still join though?
Sent from my GT-I9100 using xda premium
@saldymhmd yeah
@m1keyb I would be glad to see you there
Wow sounds interesting I'm not a good themer, but I think I have some exp Can I join ?
@saldymhmd depends from you, am not choosing who deserves, it will be public, everyone is welcome
but if some of the watchers will get confused during the show there will be no time to explain, that is the only limitation
I'm in
Me too
Hello ZduneX25,
I am also interested in the layout redirection meeting. I can redirect layout files with "@+id/" but usually apps like deskclock force close with this.
Regards, D_d
*EDIT*
Can the layout redirection be applied successfully in .apks like deskclock, or only systemui & framework-res?
@DaRk_dOg you can redirect any app, but only one at the time, means one custom app layout in one theme - apktool's limitation (I believe apktool dev could work on it)
ZduneX25 said:
@DaRk_dOg you can redirect any app, but only one at the time, means one custom app layout in one theme - apktool's limitation (I believe apktool dev could work on it)
Click to expand...
Click to collapse
I build through linux with ant.
You think this raises the one at a time limitation?
Regards, D_d
Count me in if it's on weekends!
I got the layout to work on only a few apps..otherwise it crashes the app..like ADWEX I got one too work but the other won't. Also it's risky to do framework layouts because not all roms use the same layout and can cause bootloops and crashes. But for the most part it can be done!
DarkJelly Gnex on JellyBro sent this from the app.
@DaRk_dOg linux turns you off from using layout it's only for apktool (regular decompiling and compiling method)
@djdarkknight96 i think they know that, but i guess it's their decision to make
I am also in(retested)
Ops I kinda forgot this thread, how is working tomorrow or the day after tomorrow for you guys?
We will pick the time of the meeting later on.
I am also in.and i know how to theme layout as well.
ZduneX25 said:
Ops I kinda forgot this thread, how is working tomorrow or the day after tomorrow for you guys?
We will pick the time of the meeting later on.
Click to expand...
Click to collapse
Weekend is good. The best time for me is during summer/winter break because then I don't have to worry about all the things I need to do for the next day etc.
anything happened here?
I'd like to know how to theme layout too =)
Hi,
Just found this thread and tought : well i am saved...
But, i can't compile my theme back.
Apktool keeps throwing me these errors :
"Adding multiple application package resources; only one is allowed. Use -x to create extended resources".
Well i googled this error, and i can't find a single usefull thing.
If someine has a clue i would appreciate it a lot.
Thanks for the help
hello community
i would like to share something i know about how to theme for most SystemUI.apk.
What in this TUT??
PAGE #1 :
1. Theme Tools that needed.
2. STEPS for making theme.
3. HOW TO CHANGE COLOR FOR TEXT.
4. HOW TO MAKE 1% BATTERY INCREMENT.
5. HOW TO MAKE CENTER CLOCK.
6. HOW TO REARRANGE THE TOGGLE.
7. HOW TO REMOVE THE BRIGHTNESS BAR.
8. HOW TO CHANGE STATUS BAR BACKGROUND.
9. HOW TO MAKE THE BUTTON AND NOTIFICATION TRANSPARENT.
10. HOW TO MAKE TRANSPARENT BACKGROUND.
PAGE #2 :
11. HOW TO REMOVE THE TEXT AND TOGGLES STATUS.
12. HINT HOW TO EDIT IMAGE WITHOUT GETTING ERROR!
13. sample_toggles for all!
14. HOW TO CHANGE ANY PART WITH IMAGE.
15. How To Sign Your Apk After Modding!
TUT SHARED BY OTHERS :
- HOW TO MOVE TOGGLES TO BOTTOM, HOW TO MOVE BATTERY ICON TO LEFT, HOW TO ADD AM/PM AT STATUS BAR. by @SuperDroid-BOND
- HOW TO ADD SCREENSHOT BUTTON IN STATUSBAR. by @remuntada78
1. Theme Tools that needed :
Click to expand...
Click to collapse
- Apktool (download the Jar and aapt) [only for Windows] thanks to iBotPeaches for the tool.
- Android Utility [only for MAC/LINUX] thanks to tommytomatoe for the tool.
- Better Draw9Patch. (for editing .9patch png) thanks to AndroidGraphix for the tool.
- good .xml reader (i'd prefer Notepad ++).
- good image editor (i'd prefer GIMP).
- for color to html, go to this site (colorgenerator or colorhunter which is my reference for color
i dont know about Linux or Mac, so this TUT is just for Windows. But im sure the steps is just the same.
STEPS after download the tool (Apktool):
Click to expand...
Click to collapse
- extract both downloaded zip file. (the Jar and aapt)
- you'll get 3 files ( aapt.exe, apktool.bat, and apktool.jar), place it together in one folder.
- go to Home Menu, search for "cmd", copy the cmd to the apktool folder.
STEPS for installing:
1) pull your framework-res.apk (in system/framework)
2) pull SystemUI.apk (in system/app)
3) install them with the command
Code:
apktool if framework-res.apk
Code:
apktool if SystemUI.apk
this will install the framework and the systemui for the current ROM.
2. STEPS for making theme :
1) decompile SystemUI.apk with the command.
Code:
apktool d SystemUI.apk
2) then go to SystemUI/res/drawable-hdpi/ (to edit the images)
be careful of the .9.png . Use the Better Draw9Patch tool for editing .9patch pngs.
these are the list of the png and where it will display :
Click to expand...
Click to collapse
for background :
* notification_panel_bg.9 ------------------------------------------------| (status bar bg)
* tw_quick_panel_list_bg_f/n/p ----------------------------------------| (toggle bg)
* tw_quick_panel_quick_setting_button_bg_normal.9 ---------| (toggle button background)
* tw_status_bar_call_ongoing_#####.9 ----------------------------| (status bar display when call)
for icons :
* all tw_quick_panel_icon_###.png ----------------------------------| (toggle button)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
* stat_sys_battery_# , stat_sys_battery_charge_anim## ------| (for battery display)
* tw_quickpanel_icon_#.png -------------------------------------------| (for status bar expended quicksetting)
* tw_quick_panel_plnm_setting_dv ----------------------------------| (for divider between the quicksetting and clock)
* tw_status_bar_close_on/off ------------------------------------------| ( for the status bar bottom drag)
for recent tumbnail :
* look for all recents_thumbnail_#.png ------------------------------| (for thumbnail bg)
* tw_btn_default_normal_holo_recent_button.9 ------------------| (for btn bg)
* tw_recent_panel_icon_######_holo_dark ----------------------| (for btn icon)
thats all for the important images (other images you'll know just with its look and where it belong )
3. HOW TO CHANGE TEXT COLOR.
Click to expand...
Click to collapse
res/layout :
1. tw_status bar.xml
battery text color.
Code:
<TextView android:textSize="12.0dip" android:textColor="#something"
clock text color.
Code:
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#something"
change the "something" with your preferred color.
2. tw_status_bar_expanded_header.xml
for pull down clock color.
Code:
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#something"
for date color.
Code:
"@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#something"
res/values :
1. colors.xml
for pull down Notification label color.
Code:
<color name="notification_category_color">
for clear button label text color.
Code:
<color name="tw_status_bar_clear_btn_text">
2. styles.xml
Code:
<style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">32.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ff33b5e5</item>
<item name="android:fontFamily">sans-serif-light</item>
Code:
<style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">12.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#FF9CE4FE</item>
<item name="android:textAllCaps">true</item>
Code:
<style name="TextAppearance.StatusBar.Expanded.Network" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">14.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ff33b5e5</item>
you can change the text size, color, style (bold or normal) in that xml.
4. HOW TO MAKE 1% BATTERY INCREMENT :
Click to expand...
Click to collapse
res/drawable/
- edit the stat_sys_battery.xml and stat_sys_battery_charge.xml to be like this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
<item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />
<item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" />
<item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" />
<item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
.
.
.
.
until :
Code:
.
.
.
.
.
<item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="95" />
<item android:drawable="@drawable/stat_sys_battery_96" android:maxLevel="96" />
<item android:drawable="@drawable/stat_sys_battery_97" android:maxLevel="97" />
<item android:drawable="@drawable/stat_sys_battery_98" android:maxLevel="98" />
<item android:drawable="@drawable/stat_sys_battery_99" android:maxLevel="99" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
</level-list>
animated battery charge display :
Code:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_0" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim0" />
</animation-list>
</item>
<item android:maxLevel="1">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_1" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim1" />
</animation-list>
</item>
<item android:maxLevel="2">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_2" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim2" />
</animation-list>
.
.
.
.
until :
Code:
.
.
.
.
<item android:maxLevel="100">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_100" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim100" />
</animation-list>
</item>
<item android:maxLevel="101">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1000" android:drawable="@drawable/stat_sys_battery_100" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_animfull" />
</animation-list>
</item>
</level-list>
then put the battery icons in res/drawable-hdpi, recompile.
5. HOW TO MAKE CENTER CLOCK?
Click to expand...
Click to collapse
res/layout
tw_status_bar.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/status_bar_background" android:focusable="true" android:fitsSystemWindows="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/left_icons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<TextView android:textSize="15.0dip" android:gravity="center_vertical" android:id="@id/carrierLabel" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
<ImageView android:id="@id/doNotDisturbIcon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_dnd" android:alpha="0.7" android:scaleX="0.85" android:scaleY="0.85" />
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff99FF00" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/right_icons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentRight="true">
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/tw_signal_cluster_view" />
<TextView android:textSize="9.0dip" android:textColor="#ff99FF00" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_old" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_new" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
edit the xml just like mine
6. HOW TO REARRANGE THE TOGGLE :
Click to expand...
Click to collapse
before:
res/values
arrays.xml
Code:
<string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item><string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item>Location</item>
<item>SilentMode</item>
<item>AutoRotate</item>
<item>Bluetooth</item>
<item>MobileData</item>
<item>DormantMode</item>
<item>PowerSaving</item>
<item>AllShareCast</item>
<item>MultiWindow</item>
<item>Sync</item>
</string-array>
just arrange what ever you want it to be with replace the arrangement of that xml.
eg. you want to make the GPS toggle to the other side :
HTML:
<string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item>SilentMode</item>
<item>AutoRotate</item>
<item>Bluetooth</item>
<item>MobileData</item>
<item>DormantMode</item>
<item>PowerSaving</item>
<item>AllShareCast</item>
<item>MultiWindow</item>
<item>Location</item>
<item>Sync</item>
</string-array>
after :
thats it, then recompile!
7. HOW TO REMOVE THE BRIGHTNESS BAR :
Click to expand...
Click to collapse
res/layouts
tw_status_bar_expanded.xml
find :
Code:
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="56.0dip">
replace the
Code:
android:layout_height="56.0dip"
with
Code:
android:layout_height="0.0dip"
recompile
8. HOW TO CHANGE STATUS BAR BACKGROUND :
Click to expand...
Click to collapse
res/drawable-hdpi
this is the easiest way.
replace the notification_panel_bg.9.png with any of your preferred image with resolution of 480x800.
but before that dont forget to make all toggle background to be transparent.well, these are several ways that you can make it done :
1) this is the step that i always use to make change the background.
- decompile the apk.
- go to the res/drawable-hdpi folder.
- find the notification_panel_bg.9.png.
- open it with any of your preferred photo editor.
- resize the image to 482x802 (so that the other 2x2 pixel will leave for .9patch).
- open the image that you want to make as background (copy it)
- paste it into the notification_panel_bg.9.png that you have resized.
- draw the whole 2x2 with black line #000000.
- save the image.
- recompile.
2) this steps is much easier, but i dont recommend. sometimes it failed.
- decompile the apk.
- recompile the apk.
- go to build/apk/res/drawable-hdpi.
- find the notification_panel_bg.9.png
- replace with your preferred image. (but dont forget to name the image with the same name include .9)
- build the apk again.
- your finished apk will be in dist folder.
3) this is the safest way i guess but always success.
- decompile the apk.
- go to res/layout folder.
- find tw_status_bar_expanded.xml
- in that xml, find android:background="@drawable/notification_panel_bg".
- change that notification_panel_bg with any name. example android:background="@drawable/mybackground".
- save the xml.
- then, go to res/drawable-hdpi folder.
- place your image named "mybackground".
- compile the apk.
9. HOW TO MAKE THE BUTTON AND NOTIFICATION TRANSPARENT :
Click to expand...
Click to collapse
res/layouts
tw_status_bar_expanded.xml
find :
all
Code:
android:background="#something"
in the xml the change the "#something" with "#00000000".
change ff value to (00 -> 100% transparency, 3f -> 75% transparency, 7f -> 50% transparency, bf -> 25% transparency)
The other value (1e1e1e) is RBG for grey color, if you want it black it will be (000000).
So:
#00000000 - black with 100% transparency
#3F000000 - black with 75% transparency
#7F000000 - black with 50% transparency
#BF000000 - black with 25% transparency
this post originally posted at http://forum.xda-developers.com/showthread.php?t=2078585 by majdinj (hit thanks to him )
Click to expand...
Click to collapse
then go to SystemUI\smali\com\android\systemui\statusbar\phone
PhoneStatusBar.smali
- find -0x100 (there will be just two of it in that smali)
- change both to 0x0 (0=zero)
- save smali.
(that will make the notification bar transparent).
10. HOW TO MAKE TRANSPARENT BACKGROUND :
Click to expand...
Click to collapse
res/layout
tw_status_bar_expanded.xml
find :
Code:
android:id="@id/notification_panel" android:background="@drawable/notification_panel_bg"
change the "@drawable/notification_panel_bg" to "#00000000" or your preferred transparent range. Then, recompile
11. HOW TO REMOVE THE TEXT AND TOGGLES STATUS :
Click to expand...
Click to collapse
res/layout
tw_quick_setting_button.xml
find :
Code:
<ImageView android:layout_gravity="center" android:id="@id/btn_image" android:layout_width="fill_parent" android:layout_height="60.0dip" android:layout_marginTop="4.0dip" />
1. change the android:layout_height="60.0dip" to android:layout_height="90.0dip".
2. change the android:layout_marginTop="4.0dip" to android:layout_marginTop="0.0dip"
then in the same xml.
find :
Code:
<TextView android:textSize="@dimen/quick_setting_button_text_size"
at the same line, you'll see android:textColor="blablabla", change it to android:textColor="#00000000".
and android:layout_height="blabla.bladip" to android:layout_height="0.0dip"
also at the same xml.
find :
Code:
<ImageView android:layout_gravity="center" android:id="@id/btn_status_image"
.
change all the padding to be like mine :
HTML:
<ImageView android:layout_gravity="center" android:id="@id/btn_status_image" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="0.0dip" android:scaleType="fitXY" android:drawable="@drawable/tw_quick_panel_off" />
all this steps will make the size of the toggle bigger, remove the toggles text, and remove the toggles status.
then go to :
res/values
dimens.xml
find :
Code:
<dimen name="quick_setting_button_
there will be 7 lines of it in that xml.
change the line to be just like mine :
HTML:
<dimen name="quick_setting_button_height">90.0dip</dimen>
<dimen name="quick_setting_button_image_height">90.0dip</dimen>
<dimen name="quick_setting_button_text_height">0.0dip</dimen>
<dimen name="quick_setting_button_text_size">0.0dip</dimen>
<dimen name="quick_setting_button_status_height">0.0dip</dimen>
<dimen name="quick_setting_button_status_padding">2.0dip</dimen>
<dimen name="quick_setting_button_margin_top">0.0dip</dimen>
next steps :
- make your own toggle images with resolution of 80x100 or 90x110 or mine is 90x150. ( just any resolution that fit your toggle when displayed).
- it doesn't matter because you already fix the dimension of the toggle display. The point of creating new big toggles is not to make the display stretched or narrowed.
final steps:
res/layout
tw_status_bar_expanded.xml
find :
Code:
<com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:layout_width="wrap_content" android:layout_height="wrap_content"
- in that line you'll see android:divider="@bla/blablabla" change it to android:divider="#00000000".
(that will remove the divider between the toggles)
then in the same xml, find :
HTML:
<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content"
edit the android:layout_height= to android:layout_height="90.0dip".
finish, recompile!
this is how it will look like :
12. HINT HOW TO EDIT IMAGE WITHOUT GETTING ERROR! :
Click to expand...
Click to collapse
1) ONLY EDIT the .9patch images before recompile the apk!
HOW TO EDIT IT??
- use the Better Draw9Patch to edit .9patch.
- there are many TUT for that..but i will put it in this TUT later.
- ONLY EDIT THE .9patch images in res/ (which folder it belong) before recompile!
2) EDIT NON-.9patch images after you recompile the "HOW TO EDIT IT" above.
- you can edit all of the NON-.9patch images FREELY in build/res/apk/ (which folder it belong).
- the folder you'll get after you recompile the apk.
- BUT DO NOT TOUCH ANY .9patch images in there!
13. sample toggles for ALL!! :
Click to expand...
Click to collapse
want other cool toggles???
click this link!!
sample_toggles_1 :
Click to expand...
Click to collapse
sample_toggles_2 :
Click to expand...
Click to collapse
sample_toggles_3 :
Click to expand...
Click to collapse
sample_toggles_4 :
Click to expand...
Click to collapse
sample_toggles_5 :
Click to expand...
Click to collapse
DOWNLOAD LINK:
sample_toggles_1
sample_toggles_2
sample_toggles_3
sample_toggles_4
sample_toggles_5
Click to expand...
Click to collapse
link updated : 12 MAY 2013
and here is the base for all my icons :
just put the icon inside that toggle base
download link :
base_sample_toggle_1
base_sample_toggle_2
want other cool toggles???
click this link!!
just download it and try to mod yourself with my toggles
the toggles is able to use if you use all my dimension that i have modded in the tut. (TUT #11)
dont forget to hit thanks if you using this toggles for your mod. give me credits is good enough.
14. HOW TO CHANGE ANY BACKGROUND WITH OWN IMAGE :
Click to expand...
Click to collapse
In this TUT#14, you can change any part with any image by using the .9patch. png.
its easy, you just need to change the color code in the xml for example android:background="#colorcode" to android:background="@drawable/your_image".
And then you need to create an .9.png image then put it into res/drawable-****.
the **** means what is your device dpi.
the size of the image is depend with the part that you want to change, it is your creativity.
before :
after :
Click to expand...
Click to collapse
15. How To Sign Your Apk After Modding! (IMPORTANT)
Click to expand...
Click to collapse
- recompile the apk, then the apktool will create new folder named "build".
- open the build/apk/ , copy and replace the original META-INF folder and AndroidManifest.xml into it. (for signing)
- recompile again by using command :
Code:
apktool b SystemUI
- your modded file will be in "dist" folder.
Click to expand...
Click to collapse
P.S : ALWAYS REPLACE THE ORIGINAL META-INF FOLDER AND AndroidManifest.xml from the ORIGINAL APK into the MODDED APK AFTER BUILD! or else you got bootloop.
references :
- http://forum.xda-developers.com/showthread.php?t=2078585 by majdinj.
- http://forum.xda-developers.com/showthread.php?t=1714481 by emompong.
- http://forum.xda-developers.com/showpost.php?t=35294425&postcount=172 by devabhishek.
credits to :
- Koulis2000 because teach me a lot of things especially for the xml and .9patch, thanks dude!
- bobfrantic also share what he knows to me , thanks a lot!
Click to expand...
Click to collapse
let me know if i forgot place your name as credit, im just normal human being :fingers-crossed: and sorry for that.
hit thanks to them, their post really help me a lot
there will be more TUT after this..maybe how to theme framework-res.apk
there must be something more i left, but i will put it later when i remember what it is.
if you got something more to ask, dont be shy to PM me.. i'll be happy to help..
(only if im able to!)
IF YOU HAVE SOMETHING THAT YOU KNOW FOR HOW TO MODDING SYSTEMUI.APK, AND IT IS NOT INCLUDED IN THIS TUT, PLEASE SHARE IT HERE
SO THAT MAYBE THIS TUT WILL HELP MANY PEOPLE WITH MANY VERSION OF DEVICES, I WISH THIS THREAD WILL BECOME THE PERFECT PLACE FOR PEOPLE WHO WANT TO LEARN ABOUT HOW TO THEME SYSTEMUI.APK
Nice thread, can you also add how to hide text in the toggles in the status pull down? Also here is a great little program people can use for determining color codes like #cecece to change colors. windows only though
View attachment color2html.zip
bobfrantic said:
Nice thread, can you also add how to hide text in the toggles in the status pull down? Also here is a great little program people can use for determining color codes like #cecece to change colors. windows only though
View attachment 1826979
Click to expand...
Click to collapse
i put the site i refer already
anyway, thanks..
will update the thing you said for next update..
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Nice thread that can really help out all the noobs out there. :thumbup:
Sent from my GT-I9070 using xda premium
can i use apk multi tool to do this as it gives all xml and icon files easily..??
is both same ??
thx for tutorial.
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Great tutorial, all well explained. Thanks
Sent from my GT-I9070
ravijani said:
can i use apk multi tool to do this as it gives all xml and icon files easily..??
is both same ??
thx for tutorial.
Click to expand...
Click to collapse
yes..just the same..but for apkmulti tool always set compression level to 0..(option 21).
and dont forget to replace the original META folder and AndroidManifest to the modded apk after recompile..
frzek said:
Great tutorial, all well explained. Thanks
Sent from my GT-I9070
Click to expand...
Click to collapse
hope this thread help a lot of people
Epic tut... but is apktools necessary? I use WinRAR.
R: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
panda00 said:
Epic tut... but is apktools necessary? I use WinRAR.
Click to expand...
Click to collapse
Yes for modify xml files. With winrar you can change the png only
Inviato dal mio GT-I9070 con Tapatalk 2
KINGbabasula said:
Yes for modify xml files. With winrar you can change the png only
Inviato dal mio GT-I9070 con Tapatalk 2
Click to expand...
Click to collapse
How come? If you use winrar, you can open xml files and edit them...
panda00 said:
How come? If you use winrar, you can open xml files and edit them...
Click to expand...
Click to collapse
you need to decode the xml so it can be read by any xml reader..with winrar you cant read the xml..
thats why you need the apktool to decode the xml..
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
The finest work. Tnx a lot
Enviado desde mi GT-I9070 usando Tapatalk 2
Одг: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Great tut.
Послато са GT-I9070 користећи Тапаток 2
xessus said:
The finest work. Tnx a lot
Enviado desde mi GT-I9070 usando Tapatalk 2
Click to expand...
Click to collapse
shut_down said:
Great tut.
Послато са GT-I9070 користећи Тапаток 2
Click to expand...
Click to collapse
thanks a lot for the compliment, friend
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Thanks, after my exams this week I'm definitely going to theme some!
Sent from my GT-I9070 using xda app-developers app
hey guys
why the 'command' to be like this when i recompile the SystemUI?
i just "MAKE 1% BATTERY INCREMENT" , can you tell me where is my mistake? thks before
sandrin0 said:
Thanks, after my exams this week I'm definitely going to theme some!
Sent from my GT-I9070 using xda app-developers app
Click to expand...
Click to collapse
goodluck
droid_bazzline02 said:
hey guys
why the 'command' to be like this when i recompile the SystemUI?
i just "MAKE 1% BATTERY INCREMENT" , can you tell me where is my mistake? thks before
Click to expand...
Click to collapse
that is not the problem..scroll up more, the exact problem will shown at the several lines after you hit the the build command..
my guess is you forgot to put the battery set completely in the hdpi folder..
joehanh88 said:
goodluck
that is not the problem..scroll up more, the exact problem will shown at the several lines after you hit the the build command..
my guess is you forgot to put the battery set completely in the hdpi folder..
Click to expand...
Click to collapse
I've checked it again, then after i try to recompile the SystemUI again, the dist folder was not out.
why guys?
droid_bazzline02 said:
I've checked it again, then after i try to recompile the SystemUI again, the dist folder was not out.
why guys?
Click to expand...
Click to collapse
because you got error while decompile..
NOTE: this mod is tested only in 2.3-4.1.2,but im sure it work too in 4.2++
Hello guys, i'll share this guide to you. this guide is based in this thread by @markmellarpes and some modification by me . So press thanks buttons to the original thread
Credit & thanks:
- markmellarpes
- Adi Aisiteru Reborn
- b16h22
- PineappleOwl
- dugeriss
- mariozawa
- Lenox Devs
- Hyperion Devs
Ok lets go to Guide:
first of all need some requirement for this MOD-GUIDE
REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk
- notepad++
- Tool for decompiling, : APKTOOL 2.0.0 beta 9 or latest version
- Tool for Sign apk, : CM Signer
STEP 1
Settings.apk
- Decompile Settings.apk
Go to and paste this code below
- Settings/res/values/strings.xml
Code:
<string name="change_pic_k">Change Logo</string>
<string name="profile_pic_k">CHANGE PICTURE</string>
<string name="profile_name_k">CHANGE STATUS</string>
- Settings/res/values/ids.xml
Code:
<item type="id" name="profile">false</item>
<item type="id" name="profile_name">false</item>
<item type="id" name="image_k">false</item>
<item type="id" name="owner_k">false</item>
<item type="id" name="linear_layout_k">false</item>
<item type="id" name="profile_pic_k">false</item>
<item type="id" name="layout1_k">false</item>
<item type="id" name="change_picture_text_k">false</item>
<item type="id" name="photo_picker_k">false</item>
<item type="id" name="linear_layout1_k">false</item>
<item type="id" name="layout2_k">false</item>
<item type="id" name="name_field_k">false</item>
<item type="id" name="name_edit_k">false</item>
<item type="id" name="peropil_k">false</item>
<item type="id" name="pp_k">false</item>
- Settings.apk/res/xml/display_settings.xml (you can change the place like in System and whatever you want)
add this line before </PreferenceScreen>
Code:
<PreferenceScreen android:title="Device owner" android:key="device_owner" android:summary="">
<PreferenceScreen android:title="Change logo" android:summary="Set up cover and owner picture">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.b16h22.Profile" />
</PreferenceScreen>
<Preference android:title="Profile picture" android:summary="Set up profile picture">
<intent android:targetPackage="com.lenox.Lenox_Label" android:action="android.intent.action.MAIN" android:targetClass="com.lenox.Lenox_Label.MyActivity" />
</Preference>
</PreferenceScreen>
[COLOR="Blue"]</PreferenceScreen>[/COLOR]
- Settings.apk/res/xml/device_info_settings.xml
add this line after xmlns:android="http://schemas.android.com/apk/res/android">
Code:
[COLOR="Red"]xmlns:android="http://schemas.android.com/apk/res/android">[/COLOR]
<Preference android:layout="@layout/adi_logo" android:key="beam_kat_logo" />
- Settings.apk/AndroidManifest.xml
Code:
<activity android:label="@string/change_pic_k" android:name="com.b16h22.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
- After that, push all files from attachment in the right directory
- Recompile Settings
- Sign Settings.apk
- Decompile Settings.apk again
- Compare the code below with your public
Code:
smali/com/b16h22
Profile.smali
#147 0x7f040096 type="layout" name="profile_info"
#152 0x7f0a0242 type="id" name="photo_picker_k"
#162 0x7f0a023d type="id" name="owner_k"
#173 0x7f0a0245 type="id" name="name_field_k"
#184 0x7f0a0246 type="id" name="name_edit_k"
#195 0x7f0a023c type="id" name="image_k"
#262 0x7f0200bd type="drawable" name="ic_qs_default_user"
smali/com/android/settings/adi/about
ProfileName.smali
#23 0x7f0a0238 type="id" name="profile_name"
ProfilePicture$1.smali
#86 0x7f0200bd type="drawable" name="ic_qs_default_user"
ProfilePicture.smali
#25 0x7f0a0237 type="id" name="profile"
#66 0x7f0200bd type="drawable" name="ic_qs_default_user"
Recompile Settings
Sign Settings.apk
STEP 2
SystemUI.apk
- Decompile SystemUI.apk
Go to and paste this code below
- SystemUI/res/values/styles.xml
Code:
<style name="InformationItemTitleStyle">
<item name="android:textSize">14.0sp</item>
<item name="android:gravity">right</item>
<item name="android:paddingLeft">16.0dip</item>
<item name="android:paddingRight">10.0dip</item>
</style>
<style name="InformationItemTabStyle">
<item name="android:paddingTop">3.0dip</item>
</style>
<style name="InformationTextStyle">
<item name="android:textSize">14.0sp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
- SystemUI/res/values/ids.xml
Code:
<item type="id" name="markmellarpes_multi">false</item>
<item type="id" name="lenoxpic">false</item>
<item type="id" name="profile_name">false</item>
<item type="id" name="cover">false</item>
<item type="id" name="profile_status">false</item>
<item type="id" name="profile">false</item>
<item type="id" name="lenox_label">false</item>
- SystemUI/res/layout/status_bar_expanded.xml
Cut this line "NotificationLayout"
for example CM9
Code:
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@android:style/TextAppearance.Large" android:gravity="left" android:layout_gravity="top" android:id="@id/noNotificationsTitle" android:padding="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_height" />
</LinearLayout>
</ScrollView>
<ImageView android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
Then add this line in the "NotificationLayout" before
Code:
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<FrameLayout android:layout_width="240.0px" android:layout_height="174.0dip" android:layout_weight="1.0">
<com.b16h22.haiyan.ProfileCover android:id="@id/cover" android:layout_width="fill_parent" android:layout_height="174.0dip" android:layout_marginLeft="0.0px" android:layout_marginTop="0.0px" android:layout_marginRight="0.0px" android:layout_marginBottom="0.0px" android:scaleType="centerCrop" />
<FrameLayout android:gravity="left" android:layout_gravity="bottom" android:background="@drawable/frame" android:layout_width="96.0dip" android:layout_height="96.0dip">
<com.lenox.Lenox_Label.lenoxpicture android:gravity="left" android:layout_gravity="bottom" android:id="@id/lenoxpic" android:layout_width="90.0dip" android:layout_height="90.0dip" android:layout_margin="3.0dip" android:layout_marginBottom="0.0px" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" />
</FrameLayout>
<com.lenox.Lenox_Label.lenoxlabel android:textStyle="bold" android:textColor="#ffffffff" android:layout_gravity="right" android:id="@id/lenox_label" android:background="@drawable/gradient_bg" android:paddingLeft="7.0dip" android:layout_width="fill_parent" android:layout_height="25.0dip" android:layout_marginLeft="96.0dip" android:layout_marginTop="115.0dip" android:layout_marginRight="0.0px" android:layout_toRightOf="@id/lenoxpic" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" />
<com.b16h22.statusbar.MultiPanelButtons android:gravity="center" android:layout_gravity="right" android:orientation="horizontal" android:background="@drawable/btn_default_small" android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_marginLeft="96.0dip" android:layout_marginTop="140.0dip" android:layout_marginRight="0.0px" android:layout_toRightOf="@id/lenoxpic" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" />
</FrameLayout>
</LinearLayout>
</ScrollView>
<com.b16h22.statusbar.MultiPanelFlipper android:id="@id/markmellarpes_multi" android:layout_width="fill_parent" android:layout_height="wrap_content">
[COLOR="Red"]"NotificatioLayout" paste in this line[/COLOR]
<FrameLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ScrollView android:scrollbars="none" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overScrollMode="never">
<include layout="@layout/fb1" />
</ScrollView>
</FrameLayout>
<FrameLayout android:gravity="center" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0.0dip">
<ScrollView android:scrollbars="none" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overScrollMode="never">
<include layout="@layout/fb2" />
</ScrollView>
</FrameLayout>
</com.b16h22.statusbar.MultiPanelFlipper>
</LinearLayout>
- After that, push all files from attachment in the right directory
- Recompile SystemUI
- Sign SsytemUI.apk
- Decompile SystemUI.apk again
- Compare the code below with your public
Code:
smali/com/b16h22/haiyan
ProfileCover$1.smali
#86 0x7f020180 type="drawable" name="ic_qs_default_user"
ProfileCover.smali
#25 0x7f0e00e3 type="id" name="cover"
#66 0x7f020180 type="drawable" name="ic_qs_default_user"
ProfileName.smali
#23 0x7f0e00e2 type="id" name="profile_name"
ProfilePicture$1.smali
#86 0x7f02011b type="drawable" name="status_bar_expand_pressed"
ProfilePicture.smali
#25 0x7f0e00e5 type="id" name="profile"
#66 0x7f020180 type="drawable" name="ic_qs_default_user"
ProfileStatus.smali
#23 0x7f0e00e4 type="id" name="profile_status"
smali/com/b16h22/statusbar
MultiPanelButtons.smali
#54,61,68 0x7f020181 type="drawable" name="tw_btn_default_small"
MultiPanelFlipper.smali
#21 0x7f0e00e0 type="id" name="markmellarpes_multi"
smali/com/lenox/Lenox_Label
lenoxpicture.smali
#21 0x7f0e00e1 type="id" name="lenoxpic"
lenoxlabel.smali
#25 0x7f0e00e6 type="id" name="lenox_label"
Recompile SystemUI
Sign SystemUI.apk
SCREESHOT
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
done,
Happy theming
thanks om...
D2Y aka E said:
thanks om...
Click to expand...
Click to collapse
urwel
Getting this error when try to recompile for first time the Settings.apk
Awesome Guide Sir :fingers-crossed:
report
i get this error log when i tried to recompile settings.apk after i edited .. any help /
NOTE!! IMPORTANT!!
Use APKTOOL V2.0.0 beta 9(latest version) to compile apk, or you'll get error when Recompiling
Great guide as always.
keep share um. _/|\_
K_TECH said:
NOTE!! IMPORTANT!!
Use APKTOOL V2.0.0 beta 9(latest version) to compile apk, or you'll get error when Recompiling
Click to expand...
Click to collapse
Now is working fine!
Awesome guide/mod sir, thanks.
MagModBR said:
Now is working fine!
Awesome guide/mod sir, thanks.
Click to expand...
Click to collapse
Enjoy it ^_^
Someone help me..
Can you explain where I can put this script activity android:label="@string/change_pic" android:name="com.b16h22.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity> at android manifest.xml
I mean at the end line or where...
Im so sorry for my bad english
I hope you under stand what I mean
Thanx
K_TECH said:
NOTE!! IMPORTANT!!
Use APKTOOL V2.0.0 beta 9(latest version) to compile apk, or you'll get error when Recompiling
Click to expand...
Click to collapse
it means must use APKTOOL sir ...
aww ... I really was not lucky
I prefer to use APKMULTITOOL because it's easier than taking APKTOOL
sorry for my bad english sir....
keren abiss :good:
K_TECH said:
NOTE!! IMPORTANT!!
Use APKTOOL V2.0.0 beta 9(latest version) to compile apk, or you'll get error when Recompiling
Click to expand...
Click to collapse
Where I can downloaded that apktool sir?
crizt said:
Someone help me..
Can you explain where I can put this script activity android:label="@string/change_pic" android:name="com.b16h22.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity> at android manifest.xml
I mean at the end line or where...
Im so sorry for my bad english
I hope you under stand what I mean
Thanx
Click to expand...
Click to collapse
Yes at the end of your manifest
Sent from my SCH-I605 using xda app-developers app
I don't understand what to do with profilepic.apk?
ThePiss&Chur said:
it means must use APKTOOL sir ...
aww ... I really was not lucky
I prefer to use APKMULTITOOL because it's easier than taking APKTOOL
sorry for my bad english sir....
Click to expand...
Click to collapse
Download apktool 2.0.0 beta 9, take the files inside it (apktool.jar,apktool.bat,aapt.exe), then put those file into your tool
How to add Music VisualizerView - Graphic Equalizer animation style to Notification panel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
XDA PORTAL : http://www.xda-developers.com/mod-spotlight-graphic-equalizer-for-notification-panel/
Hello good day XDA
This mod is a ported mod from CM11 Tiles, but I guess this mod will work to all device /OS which has Landroid/media/AudioManager.smali and Landroid/media/audiofx/Visualizer.smali
Oke let's start it
REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk
- notepad++
- APKTOOL 2 ++
STEP 1
Decompile SystemUI.apk
Download attached smali and merge to your decompiled SystemUI
STEP 2
go to SystemUI.apk/res/layout/ status_bar_expanded.xml, gemini_status_bar_expanded.xml, tw_status_bar_expanded.xml, status_bar_tracking.xml , depend on your UI
and add the red line
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.NotificationPanelView android:id="@id/notification_panel" android:background="@drawable/notification_panel_bg" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/notification_panel_margin_left"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<View android:id="@id/handle" android:background="@drawable/status_bar_close" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="@dimen/close_handle_height" />
<include android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" layout="@layout/carrier_label" />
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/close_handle_underlap" android:animateLayoutChanges="false">
<include android:layout_width="fill_parent" android:layout_height="@dimen/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
<ViewStub android:id="@id/ribbon_settings_stub" android:layout="@layout/ribbon_settings" android:layout_width="fill_parent" android:layout_height="@dimen/notification_min_height" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network.EmergencyOnly" android:gravity="center" android:id="@id/emergency_calls_only" android:padding="4.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<ViewStub android:id="@id/flip_settings_stub" android:layout="@layout/flip_settings" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
</FrameLayout>
</LinearLayout>
[COLOR="Red"]<com.adi.rom.interface.MusicEqualizerVisualizer android:layout_gravity="bottom" android:id="@id/visualizer_view_panel" android:layout_width="fill_parent" android:layout_height="48.0dip" android:layout_marginBottom="36.0dip">
<LinearLayout android:orientation="vertical" android:id="@id/custom_visualizer_view_panel" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.adi.rom.interface.VisualizerView android:id="@id/custom_visualizer_view" android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>
</com.adi.rom.interface.MusicEqualizerVisualizer>[/COLOR]
</com.android.systemui.statusbar.phone.NotificationPanelView>
NEXT
SystemUI.apk/res/values/colors.xml
add the red line to end of it before </resources>
Code:
<color name="pie_selected_color">@android:color/holo_blue_light</color>
<color name="pie_long_pressed_color">#ff8ad5f0</color>
<color name="pie_outline_color">#dd0099cc</color>
[COLOR="Red"]<color name="custom_equalizer_fill_color">#96ffffff</color>[/COLOR]
</resources>
SystemUI.apk/res/values/dimens.xml
add the red line to end of it before </resources>
Code:
<dimen name="pie_navbar_height">85.0dip</dimen>
<dimen name="pie_sysinfo_radius">165.0dip</dimen>
<dimen name="pie_sysinfo_height">85.0sp</dimen>
[COLOR="Red"]<dimen name="custom_eqalizer_path_effect_1">6.0dip</dimen>
<dimen name="custom_eqalizer_path_effect_2">1.0dip</dimen>
<dimen name="custom_eqalizer_path_stroke_width">6.0dip</dimen>[/COLOR]
</resources>
SystemUI.apk/res/values/ids.xml
add the red line to end of it before </resources>
Code:
<item type="id" name="notification_inspect_item">false</item>
<item type="id" name="recent_remove_item">false</item>
<item type="id" name="recent_inspect_item">false</item>
[COLOR="Red"]<item type="id" name="custom_visualizer_view">false</item>
<item type="id" name="visualizer_view_panel">false</item>
<item type="id" name="custom_visualizer_view_panel">false</item>[/COLOR]
</resources>
SystemUI.apk/res/values/integers.xml
add the red line to end of it before </resources>
Code:
<integer name="blinds_pop_duration_ms">10</integer>
<integer name="notification_panel_layout_gravity">0x37</integer>
<integer name="settings_panel_layout_gravity">0x37</integer>
[COLOR="Red"]<integer name="custom_equalizer_divisions">4</integer>
<integer name="custom_equalizer_db_fuzz_factor">2</integer>
<integer name="custom_equalizer_db_fuzz">-10</integer>[/COLOR]
</resources>
Done and compile your SystemUI.apk
STEP 3
Decompile the newly recompiled again
next go to systemui/res/values/public.xml
leave it but keep it open
STEP 4
go to -SystemUI.apk/smali/com/adi/rom/interface/MusicEqualizerVisualizer.smali
search for 0x7f??????
Change the value in the smali with the value you got in your own public.xml
0x7f0900db
Code:
<public type="id" name="custom_visualizer_view" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0e0063
Code:
<public type="dimen" name="custom_eqalizer_path_stroke_width" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0b000e
Code:
<public type="color" name="custom_equalizer_fill_color" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0e0061
Code:
<public type="dimen" name="custom_eqalizer_path_effect_1" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0e0062
Code:
<public type="dimen" name="custom_eqalizer_path_effect_2" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0d0012
Code:
<public type="integer" name="custom_equalizer_divisions" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0d0014
Code:
<public type="integer" name="custom_equalizer_db_fuzz" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0d0013
Code:
<public type="integer" name="custom_equalizer_db_fuzz_factor" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
0x7f0900dd
Code:
<public type="id" name="custom_visualizer_view_panel" id="[COLOR="Red"]0x7f??????[/COLOR]" />
Click to expand...
Click to collapse
STEP 5
AndroidManifest.xml
Add the red line
Code:
<uses-permission android:name="android.permission.READ_DREAM_STATE"/>
<uses-permission android:name="android.permission.WRITE_DREAM_STATE"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
[COLOR="Red"]<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>[/COLOR]
<application android:allowBackup="false" android:allowClearUserData="false" android:hardwareAccelerated="true" android:icon="@android:drawable/platlogo" android:label="@string/app_label" android:persistent="true">
<service android:exported="true" android:name="SystemUIService"/>
STEP 6
- Compile
- Sign it
- Disable Signature check
You can try using any of the keys that come with whatever apk signing tool you use, but you will more then likely end up with a SystemUI.apk that wont show as being installed, you must sign it with platfrom keys from CyanogenMod's android_build github https://github.com/CyanogenMod/android_build/tree/jellybean/target/product/security
Note !
for CM / AOSP from source whic has
STATIC TILES, you need to uncheck/disable Equalizer tile, otherwise the Visualizer will not appear on Notification panel
Screenshot
New Style !
How to add Selectable 8 style Music Visualizer - to Notification panel
http://forum.xda-developers.com/android/themes/guide-how-to-add-selectable-8-style-t3070550
well done om adi.thank you
Awesome :good:
Another Owesome guide from the master :good:
Thnks om, i'll try soon
thanks
awesome guide
you're the best
work fine in lollipop 5.1
in lockscreen.
working perfectly sir.. Thanks
Sir, can you share this visualizer and weather tiles?)
Please don't quote all OPs
and Request is off , sorry , you are out of the topic
the_vanya1 said:
Sir, can you share this visualizer and weather tiles?)
Click to expand...
Click to collapse
Well done @Adi Aisiteru Reborn :thumbup::thumbup::thumbup:
And don't quote the whole of OP, edit your post please @the_vanya1
Sir @Adi Aisiteru Reborn, how to Add Switch on/off to Setting?
sir just a question.
in the source files why dont you use codes like these to assign the parts to ID's in packages?
this will save time in editing all the 0x7f*** etc codes and will work better
Code:
int layoutID = getResources().getIdentifier("customequalizerview","id", "com.android.systemui");
LinearLayout Layoutey = (LinearLayout)findViewById(layoutID);
in the java source code.
i find this easier as all java mods i nowadays code with those codes as thats easier to port for other people.
its doable for images ids layouts etc almost anything its useable.
Just my 2 cents
nice mod bro
A neat idea! Thanks! I'll have to give it a try..
---------------------------------
Sent from Tapatalk
------------------------------
Works on odexed rom?
EDIT: if doesn't work, can i just deodex systemui.apk and apply changes?
Thank you OP. Great MOD. Great tutorial.
HTC One M8 running Sense 7.0 with Android 5.0.1
Can this be made as an xposed module? i think that would be cool if you can!
SpaceCaker said:
sir just a question.
in the source files why dont you use codes like these to assign the parts to ID's in packages?
this will save time in editing all the 0x7f*** etc codes and will work better
Code:
int layoutID = getResources().getIdentifier("customequalizerview","id", "com.android.systemui");
LinearLayout Layoutey = (LinearLayout)findViewById(layoutID);
in the java source code.
i find this easier as all java mods i nowadays code with those codes as thats easier to port for other people.
its doable for images ids layouts etc almost anything its useable.
Just my 2 cents
nice mod bro
Click to expand...
Click to collapse
Interesting sir spacecaker,
you can write it, and I'll post it as optional guide , thanks
FSadino said:
Works on odexed rom?
EDIT: if doesn't work, can i just deodex systemui.apk and apply changes?
Click to expand...
Click to collapse
you should be able to run just the deodexed SystemUI.apk..
just remember to remove the SystemUI.odex..