Related
It is probably obvious that I am new to this. Looking for some guidance on what I am doing wrong here. Looking to remove a few UI elements starting with widgets and brightness slider in touchwiz.
Here is what I am trying to do. Under the touchwiz pulldown notification window I want to remove the text under the toggles and the little icon indicating that they are on or off. I have the 23 toggle mod installed.
I de-compiled lidroid-res.apk with apktool 1.5.1 I went to stock.lidroid-res\res\layout and edited power_widget_button.xml.
Before Edit
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:orientation="vertical" android:id="@id/power_widget_button" android:background="@drawable/stat_power_bg" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="76.0dip" android:layout_weight="1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:layout_gravity="center_horizontal" android:id="@id/power_widget_button_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2.669983dip" />
<TextView android:textSize="12.0dip" android:textStyle="normal" android:textColor="@color/power_widget_button_text" android:gravity="center_horizontal" android:layout_gravity="center_horizontal" android:id="@id/power_widget_button_text" android:paddingTop="46.669983dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:shadowDx="1.0" android:shadowDy="1.0" />
<ImageView android:layout_gravity="bottom|center" android:id="@id/power_widget_button_indic" android:paddingLeft="2.3299866dip" android:paddingRight="2.3299866dip" android:layout_width="fill_parent" android:layout_height="5.3299866dip" android:layout_marginBottom="4.5dip" android:scaleType="fitXY" />
</FrameLayout>
After Edit (removed two lines)
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:orientation="vertical" android:id="@id/power_widget_button" android:background="@drawable/stat_power_bg" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="76.0dip" android:layout_weight="1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:layout_gravity="center_horizontal" android:id="@id/power_widget_button_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2.669983dip" />
</FrameLayout>
Builds with :
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
Open up stock and modfiied 7-zip and copy file from one to the other (To try and keep signed status etc)
Copy to directory using root explorer.
Boots, Systemui crashes.
-----------------------------
So tried using VR.
Copied file that needs to be changed into /vr/system/framework/...
Installed zip from Recovery.
Same result, Systemui crashes.
Hey,
had thesame problem with lidroidmodding, try this http://forum.xda-developers.com/showthread.php?t=1904506 , worked fine for me (fake frameworks).
tsw_sweden said:
Hey,
had thesame problem with lidroidmodding, try this http://forum.xda-developers.com/showthread.php?t=1904506 , worked fine for me (fake frameworks).
Click to expand...
Click to collapse
Trying now thanks.
Hi. I'm pretty fresh to Android, but I've already fallen in love with it. After getting the courage to root, I've found my phone as customizable as I want. If you want to move past requesting developers to edit this or that for you or just want to learn more about editing neat system files, then this guide is for you. I will be providing a thorough rationale for each step; you don't need to read the rationale to make this work, but kittens will die if you don't. And, if you understand how it all works, you'll be able to mod/edit any APK you ever find! Made possible with help from:
David Dee for inspiring me to mod my phone
grgsiocl for the actual mod
Diamondback for his critical and wonderful integrated developing environment, Virtuous Ten Studio (aka VTS)...thus NO APKTOOL COMMAND LINE REQUIRED. YES. BE HAPPY.
efrant for the helpful ADB clarifications
Chainfire for his wonderful and free adbd insecure app
David Dee, Phoneguy589, psenseny: the three people who liked my post when I said I would write a guide about this.
So, want to make this,
{
"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"
}
look like this:
This mod is for US-based Galaxy S3's running 4.1.1. I'm concurrently running this with David Dee's 23 toggle mod, so no problems there. It might work in other phones, too, but I haven't tested them. Of course, everything you do is your own responsibility. I take no ownership of your issues, but I will help if I can!
The overview: If you know how to decompile, save the signature, edit XMLs, and recompile, just follow the instructions in bold red. For the rest of us, we'll be using the user-friendly, fully GUI Virtuous Ten Studio. First, we'll SystemUI.apk. Decompile. Edit XML. Recompile. Push modded SystemUI.apk and finally restart.
Making a Nandroid, setting up adbd insecure for those on stock kernel, and preparing VTS for use!
READ THIS WHOLE TUTORIAL ONCE AND MAKE SURE YOU UNDERSTAND IT BEFORE ACTUALLY STARTING IT. Ask me before you do something you don't know!
Root required. Why: we need to edit files in the /system partition of Android. Only root users will be able to do that.
Make a Nandroid backup right now (either using the wonderful Orange Backup app or reboot to recovery and make it).
I wasn't joking.
Seriously, make a Nandroid backup right now.
If you have the stock kernel (or any kernel that is "secure" [i.e. ro.secure=1 in your build.prop]), then install adbd insecure onto your phone. Why: expediency (i.e. fewer commands to type). VTS will be using ADB, the Android Debugging Bridge, to copy and paste files from our computer to our phone. If you are rooted + stock kernel, ADB runs in a "secure" mode that will make us jump through some hoops to copy files. Your phone has a build.prop file, located in /system. It has a line in there called ro.secure; if it is ro.secure=1, adb will run in this annoying secure mode (EVEN IF YOU ARE ROOTED). Adbd insecure will ignore that ro.secure=1 setting and force adbd to run insecure (get it? adbd insecure is the name of the app? Chainfire, you so clever!)
Now, install Virtuous Ten Studios (VTS) Why: We'll be using VTS exclusively to decompile, edit the XML, and recompile. You will NOT be writing a single line of code into a command prompt or anything. Thank you, modern software.
Read the tutorials gratefully written by Diamondback, et al. They're on the website linked in the link in the step above.
You didn't read them, did you? Jerk. lol, jk. But, seriously, read them. It will make VTS seem not so foreign and scary!
Enable Settings -> USB debugging on your phone.
Run the adbd insecure app on your phone. Check "Enable insecure adbd."
Plug your phone into your computer.
Open VTS. Then "File" -> "Open VTS Settings".
Go to "External Tools" -> "ApkTool". Click "Add single framework". Why: long answer here, haha. APKs are zip files, but if you simply unzipped them and opened an XML file, you'd get garbage. Unreadable junk! That's because the APK has been COMPILED. It was a collection of folders, then it was compiled (which, IMO, just means it was changed into Android-readable-code). We need Windows-readable-code. So, we must decompile the APK. Then we shall see Windows-readable-code organized into neat little folders. But, to change from Android-readable-code to Windows-readable-code, we need some extra files. Namely, your framework-res.apk. It contains some instructions or random junk (no idea what exactly) that will allow us to decompile SystemUI.apk.
Give your framework a tag. It's just a name that you can remember. Framework-res.apks are specific to each phone and each ROM, so if you did LOTS of theming, the tag would be useful in recalling which framework-res.apk this is!
Click OK. Then, click the down arrow next to Remote File. Open the Framework folder and highlight "framework-res.apk." Then click "Import." It'll take 15 or so seconds.
Click OK after the framework installs (you'll see it appear in your window!).
Modifying SystemUI.apk to remove the brightness bar
Let's actually do the mod now, eh? Click File in VTS and click "New Project." Why: Solutions are like "folders" and Projects are like "files" in VTS. It's just to keep you organized. We're going to be editing ONE file, so we'll make ONE solution and inside that solution will be ONE project.
Make sure Apk-Project is highlighted on the "Project" tab. Give the Project and Solution a name; doesn't matter what.
Click Apk-Tool on the left. Inside the framework tag box, type in the name you gave your framework. Or select it from the drop-down menu; whatever works for you.
Click Smali on the left. Choose API Level "4.1 Jelly Bean" Why: we aren't editing Smali (a different kind of code, besides XML), but it can't hurt, right?
Go to Build on the left. Make sure "Sign output file via the following method" is checked and Select "Keep old signature (not recommended)". It's not recommended because sometimes it can cause problems; but, it is the best option for system APKs (not user apks, like Pandora.apk). Why: every app has a signature verifying that it is made by this developer (and not some hacker). Think of a signature as a trip-wire for zipping and compiling APKs. If we do either of those, the signature will go crazy; if you have a "crazy"/tripped signature, your phone will be stuck on the boot logo. So, APKs are basically zip files; the signature is inside both the META-INF folder and AndroidManifest.xml file. Again, these files are tripped/changed if you unzip or re-zip or decompile or re-compile your APK (very sensitive!); you don't even have to open them and they will get changed! Thus, VTS, after we recompile, will insert the original META-INF folder and AndroidManifest.xml file (that it backed up when it pulled the APK) back into the now-modified APK.
Go to Import on the left. Click the "..." button on the right. Click the down arrow next to Remote file. Open the System folder.
BEHOLD the wonderful list of all the system apps installed on your phone. Scrooooooollllll down to SystemUI. apk. Select it and click import.
Click "OK" to begin decompiling SystemUI.apk
Wait about 20 seconds. You should be greeted with a set of folders called assets, res, and smali, as well as AndroidManifest.XML, apktook.yml, and buildevents.
Open res -> layout -> tw_status_bar_expanded.xml by DOUBLE-CLICKING it. WARNING: there are about 50 different folders that are called layout-blah and 50 different XML files that have "tw" and "status_bar" there. Make sure you open the right file.
You should get some nice XML code at the bottom. Add exactly this:
Code:
android:visibility="gone"
here (it's colored in red; scroll right to see it!):
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@id/notification_panel" android:background="@drawable/back" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="fill_parent" android:layout_height="fill_parent" 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">
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap">
<include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />
<com.wanam.systemui.quickpanel.PowerWidget android:id="@id/exp_power_stat" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/notification_panel_header_height" />
<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height">
<com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
</HorizontalScrollView>
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:id="@id/scrollCart" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" [B][COLOR="Red"]android:visibility="gone"[/COLOR][/B] android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip">
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="1.0dip">
<ImageView android:id="@id/brightness_icon" android:clickable="true" android:layout_width="25.0dip" android:layout_height="fill_parent" android:layout_marginLeft="13.0dip" android:src="@drawable/ic_sysbar_brightness" android:contentDescription="@string/accessibility_brightness_icon" />
<FrameLayout android:id="@id/brightness_group" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/auto_brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
</FrameLayout>
</LinearLayout>
<View android:background="#ff091a24" android:layout_width="fill_parent" android:layout_height="1.0dip" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#ff293945" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/onGoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#ff293945" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
</RelativeLayout>
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/notificationItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
</LinearLayout>
</ScrollView>
</FrameLayout>
<com.android.systemui.statusbar.phone.CloseDragHandle android:layout_gravity="bottom" android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:src="@drawable/tw_status_bar_close" android:scaleType="fitXY" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:layout_marginBottom="10.0dip" />
</RelativeLayout>
</com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
Then, DO NOT TOUCH ANYTHING ELSE in the XML file. Unless you're feeling adventurous?
Click "Push All" on the top. If you did it right, it shall ask you "Do you want to save changes?"
Click yes. Wait 2 minutes while it re-compiles and pushes the APK to /system/app.
If all went well, your screen will flicker and you'll get the original wallpaper back. No worries. REBOOT YOUR PHONE (this will reload SystemUI.apk, disable adbd insecure, and put /system back in a read-only state: all good things!) and ENJOY NO BRIGHTNESS BAR.
Questions?
Re: [GUIDE] *very* noob-friendly - learn to edit APKs - ex.: remove the brightness sl
I actually just posted a question in the TW themeing sticky thread concerning the brightness slider removal. Can you take a look and see if you might be able to help... Don't want to double post.
Thank You.
Sent from my SGS III
Re: [GUIDE] *very* noob-friendly - learn to edit APKs - ex.: remove the brightness sl
Hi! I see! OK. I simply added the android:visibility="gone" instead of changing the dip to 0.0.
To keep a placeholder, add my code just one line below the one I've posted. I don't exactly know how to do it your way.
This will give you a buffer as tall as the original brightness slider, like so:
However, that might be too much of a buffer. Then, I would experiment with some of those dip numbers concerning height and one of them might shrink it for you!
Nice tuto!
Then, DO NOT TOUCH ANYTHING ELSE in the XML file. Unless you're feeling adventurous?
Click to expand...
Click to collapse
Just for information, the layout file can be eaisly edited with Eclipse or Intellij Idea (both are free, Intellij is better BUT not opensource).
Using these tools is interesting as it can generate a view on your computer of the result.
So it is very easy to be adventurous
Regards
---------- Post added at 04:40 PM ---------- Previous post was at 04:33 PM ----------
ikjadoon said:
Hi! I see! OK. I simply added the android:visibility="gone" instead of changing the dip to 0.0.
To keep a placeholder, add my code just one line below the one I've posted. I don't exactly know how to do it your way.
This will give you a buffer as tall as the original brightness slider, like so:
However, that might be too much of a buffer. Then, I would experiment with some of those dip numbers concerning height and one of them might shrink it for you!
Click to expand...
Click to collapse
for the effect of Gone:
http://developer.android.com/reference/android/view/View.html#attr_android:visibility
Thanks. It's nothing big, but I was excited when I finally got it all to work. Oooh, that would be very handy! Hrmm.....I shall contemplate learning those programs---it's like opening Pandora's box, so many things to do!
I see; thank you for linking that wonderful website (no idea it existed!). So, maybe then, swiftks, keep the edit in the same line, but change it to android:visibility="invisible" ?
~Ibrahim~
Thanks guys, got it perfect to my liking. :laugh: :good:
Here's my tw_status_bar_expanded.xml with the changes in RED.
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@id/notification_panel" android:background="@drawable/notification_panel_bg" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="fill_parent" android:layout_height="fill_parent" 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">
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap">
<include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />
<com.wanam.systemui.quickpanel.PowerWidget android:id="@id/exp_power_stat" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/notification_panel_header_height" />
<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height">
<com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
</HorizontalScrollView>
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:id="@id/scrollCart" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#ff000000" [COLOR="red"]android:visibility="invisible"[/COLOR] android:layout_width="fill_parent" android:layout_height="[COLOR="red"]26.0dip[/COLOR]">
<LinearLayout android:orientation="horizontal" [COLOR="red"]android:visibility="invisible"[/COLOR] android:layout_width="fill_parent" android:layout_height="[COLOR="red"]25.0dip[/COLOR]">
<ImageView android:id="@id/brightness_icon" android:clickable="true" android:layout_width="25.0dip" android:layout_height="fill_parent" android:layout_marginLeft="13.0dip" android:src="@drawable/ic_sysbar_brightness" android:contentDescription="@string/accessibility_brightness_icon" />
<FrameLayout android:id="@id/brightness_group" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/auto_brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
</FrameLayout>
</LinearLayout>
<View android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="1.0dip" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#ff000000" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/onGoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#ff000000" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
</RelativeLayout>
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/notificationItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
</LinearLayout>
</ScrollView>
</FrameLayout>
<com.android.systemui.statusbar.phone.CloseDragHandle android:layout_gravity="bottom" android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:src="@drawable/tw_status_bar_close" android:scaleType="fitXY" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_marginBottom="0.0dip" />
</RelativeLayout>
</com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
just a tip if you are not on a windows machine because windows blows
use apktool... much much moree effective... in my opinion and to edit smali or xmls i use Sublime text editor
also i belive in this same xml u can remove carrier logo and some more fun stuff ;D as well as mess with color.
Good tut!
I was poking around with vts for systemui then i found your tut. Covered the basic startup. Work on my note 2 and s3.
Just to let you know, vts was updated to keep old signature together with the "AndroidManifest.xml" i just used the keep old signature feature and push it to my phone. Real easy no more typing to push. Thankyou very much!!! Much better than using apktool.
Sorry for bumping old thread but i cant resist haha!
winmobby said:
I was poking around with vts for systemui then i found your tut. Covered the basic startup. Work on my note 2 and s3.
Just to let you know, vts was updated to keep old signature together with the "AndroidManifest.xml" i just used the keep old signature feature and push it to my phone. Real easy no more typing to push. Thankyou very much!!! Much better than using apktool.
Sorry for bumping old thread but i cant resist haha!
Click to expand...
Click to collapse
Oh, it was! I saw that and totally forgot to update the guide. Will do!
Wow, it is so much easier now! Thanks for the heads up.
How to change Carrier ID to Carrier Logo
ikjadoon said:
Hi. I'm pretty fresh to Android, but I've already fallen in love with it. After getting the courage to root, I've found my phone as customizable as I want. If you want to move past requesting developers to edit this or that for you or just want to learn more about editing neat system files, then this guide is for you. I will be providing a thorough rationale for each step; you don't need to read the rationale to make this work, but kittens will die if you don't. And, if you understand how it all works, you'll be able to mod/edit any APK you ever find! Made possible with help from:
David Dee for inspiring me to mod my phone
grgsiocl for the actual mod
Diamondback for his critical and wonderful integrated developing environment, Virtuous Ten Studio (aka VTS)...thus NO APKTOOL COMMAND LINE REQUIRED. YES. BE HAPPY.
efrant for the helpful ADB clarifications
Chainfire for his wonderful and free adbd insecure app
David Dee, Phoneguy589, psenseny: the three people who liked my post when I said I would write a guide about this.
So, want to make this,
look like this:
This mod is for US-based Galaxy S3's running 4.1.1. I'm concurrently running this with David Dee's 23 toggle mod, so no problems there. It might work in other phones, too, but I haven't tested them. Of course, everything you do is your own responsibility. I take no ownership of your issues, but I will help if I can!
The overview: If you know how to decompile, save the signature, edit XMLs, and recompile, just follow the instructions in bold red. For the rest of us, we'll be using the user-friendly, fully GUI Virtuous Ten Studio. First, we'll SystemUI.apk. Decompile. Edit XML. Recompile. Push modded SystemUI.apk and finally restart.
Making a Nandroid, setting up adbd insecure for those on stock kernel, and preparing VTS for use!
READ THIS WHOLE TUTORIAL ONCE AND MAKE SURE YOU UNDERSTAND IT BEFORE ACTUALLY STARTING IT. Ask me before you do something you don't know!
Root required. Why: we need to edit files in the /system partition of Android. Only root users will be able to do that.
Make a Nandroid backup right now (either using the wonderful Orange Backup app or reboot to recovery and make it).
I wasn't joking.
Seriously, make a Nandroid backup right now.
If you have the stock kernel (or any kernel that is "secure" [i.e. ro.secure=1 in your build.prop]), then install adbd insecure onto your phone. Why: expediency (i.e. fewer commands to type). VTS will be using ADB, the Android Debugging Bridge, to copy and paste files from our computer to our phone. If you are rooted + stock kernel, ADB runs in a "secure" mode that will make us jump through some hoops to copy files. Your phone has a build.prop file, located in /system. It has a line in there called ro.secure; if it is ro.secure=1, adb will run in this annoying secure mode (EVEN IF YOU ARE ROOTED). Adbd insecure will ignore that ro.secure=1 setting and force adbd to run insecure (get it? adbd insecure is the name of the app? Chainfire, you so clever!)
Now, install Virtuous Ten Studios (VTS) Why: We'll be using VTS exclusively to decompile, edit the XML, and recompile. You will NOT be writing a single line of code into a command prompt or anything. Thank you, modern software.
Read the tutorials gratefully written by Diamondback, et al. They're on the website linked in the link in the step above.
You didn't read them, did you? Jerk. lol, jk. But, seriously, read them. It will make VTS seem not so foreign and scary!
Enable Settings -> USB debugging on your phone.
Run the adbd insecure app on your phone. Check "Enable insecure adbd."
Plug your phone into your computer.
Open VTS. Then "File" -> "Open VTS Settings".
Go to "External Tools" -> "ApkTool". Click "Add single framework". Why: long answer here, haha. APKs are zip files, but if you simply unzipped them and opened an XML file, you'd get garbage. Unreadable junk! That's because the APK has been COMPILED. It was a collection of folders, then it was compiled (which, IMO, just means it was changed into Android-readable-code). We need Windows-readable-code. So, we must decompile the APK. Then we shall see Windows-readable-code organized into neat little folders. But, to change from Android-readable-code to Windows-readable-code, we need some extra files. Namely, your framework-res.apk. It contains some instructions or random junk (no idea what exactly) that will allow us to decompile SystemUI.apk.
Give your framework a tag. It's just a name that you can remember. Framework-res.apks are specific to each phone and each ROM, so if you did LOTS of theming, the tag would be useful in recalling which framework-res.apk this is!
Click OK. Then, click the down arrow next to Remote File. Open the Framework folder and highlight "framework-res.apk." Then click "Import." It'll take 15 or so seconds.
Click OK after the framework installs (you'll see it appear in your window!).
Modifying SystemUI.apk to remove the brightness bar
Let's actually do the mod now, eh? Click File in VTS and click "New Project." Why: Solutions are like "folders" and Projects are like "files" in VTS. It's just to keep you organized. We're going to be editing ONE file, so we'll make ONE solution and inside that solution will be ONE project.
Make sure Apk-Project is highlighted on the "Project" tab. Give the Project and Solution a name; doesn't matter what.
Click Apk-Tool on the left. Inside the framework tag box, type in the name you gave your framework. Or select it from the drop-down menu; whatever works for you.
Click Smali on the left. Choose API Level "4.1 Jelly Bean" Why: we aren't editing Smali (a different kind of code, besides XML), but it can't hurt, right?
Go to Build on the left. Make sure "Sign output file via the following method" is checked and Select "Keep old signature (not recommended)". It's not recommended because sometimes it can cause problems; but, it is the best option for system APKs (not user apks, like Pandora.apk). Why: every app has a signature verifying that it is made by this developer (and not some hacker). Think of a signature as a trip-wire for zipping and compiling APKs. If we do either of those, the signature will go crazy; if you have a "crazy"/tripped signature, your phone will be stuck on the boot logo. So, APKs are basically zip files; the signature is inside both the META-INF folder and AndroidManifest.xml file. Again, these files are tripped/changed if you unzip or re-zip or decompile or re-compile your APK (very sensitive!); you don't even have to open them and they will get changed! Thus, VTS, after we recompile, will insert the original META-INF folder and AndroidManifest.xml file (that it backed up when it pulled the APK) back into the now-modified APK.
Go to Import on the left. Click the "..." button on the right. Click the down arrow next to Remote file. Open the System folder.
BEHOLD the wonderful list of all the system apps installed on your phone. Scrooooooollllll down to SystemUI. apk. Select it and click import.
Click "OK" to begin decompiling SystemUI.apk
Wait about 20 seconds. You should be greeted with a set of folders called assets, res, and smali, as well as AndroidManifest.XML, apktook.yml, and buildevents.
Open res -> layout -> tw_status_bar_expanded.xml by DOUBLE-CLICKING it. WARNING: there are about 50 different folders that are called layout-blah and 50 different XML files that have "tw" and "status_bar" there. Make sure you open the right file.
You should get some nice XML code at the bottom. Add exactly this:
Code:
android:visibility="gone"
here (it's colored in red; scroll right to see it!):
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@id/notification_panel" android:background="@drawable/back" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="fill_parent" android:layout_height="fill_parent" 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">
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap">
<include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />
<com.wanam.systemui.quickpanel.PowerWidget android:id="@id/exp_power_stat" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/notification_panel_header_height" />
<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height">
<com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
</HorizontalScrollView>
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:id="@id/scrollCart" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" [B][COLOR="Red"]android:visibility="gone"[/COLOR][/B] android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip">
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="1.0dip">
<ImageView android:id="@id/brightness_icon" android:clickable="true" android:layout_width="25.0dip" android:layout_height="fill_parent" android:layout_marginLeft="13.0dip" android:src="@drawable/ic_sysbar_brightness" android:contentDescription="@string/accessibility_brightness_icon" />
<FrameLayout android:id="@id/brightness_group" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
<com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/auto_brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
</FrameLayout>
</LinearLayout>
<View android:background="#ff091a24" android:layout_width="fill_parent" android:layout_height="1.0dip" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#ff293945" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/onGoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#ff293945" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
</RelativeLayout>
</LinearLayout>
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/notificationItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
</LinearLayout>
</ScrollView>
</FrameLayout>
<com.android.systemui.statusbar.phone.CloseDragHandle android:layout_gravity="bottom" android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:src="@drawable/tw_status_bar_close" android:scaleType="fitXY" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:layout_marginBottom="10.0dip" />
</RelativeLayout>
</com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
Then, DO NOT TOUCH ANYTHING ELSE in the XML file. Unless you're feeling adventurous?
Click "Push All" on the top. If you did it right, it shall ask you "Do you want to save changes?"
Click yes. Wait 2 minutes while it re-compiles and pushes the APK to /system/app.
If all went well, your screen will flicker and you'll get the original wallpaper back. No worries. REBOOT YOUR PHONE (this will reload SystemUI.apk, disable adbd insecure, and put /system back in a read-only state: all good things!) and ENJOY NO BRIGHTNESS BAR.
Questions?
Click to expand...
Click to collapse
Plez guilde me how to change Carrier ID to Carrier Logo (*.png) into notif bar
i used galaxy s3 AT&T i747 rom Stock JB 4.1.1
Ái Nhân said:
Plez guilde me how to change Carrier ID to Carrier Logo (*.png) into notif bar
i used galaxy s3 AT&T i747 rom Stock JB 4.1.1
Click to expand...
Click to collapse
Hi! Unforunately, I don't know how to do that particular mod. This guide is more to help you decompile/recompile than provide exact instructions for all the other mods.
If you've seen that mod in a ROM, contact the developer! They're pretty friendly folk.
Ái Nhân said:
Plez guilde me how to change Carrier ID to Carrier Logo (*.png) into notif bar
i used galaxy s3 AT&T i747 rom Stock JB 4.1.1
Click to expand...
Click to collapse
Sorry I missed this! This tweak should work:
http://forum.xda-developers.com/showthread.php?t=2227624
~Ibrahim~
EDIT: Ah, this thread has a second page. Haha, I had a little more time to search!
G'Day XDA,
I wanted to share with you a few quick and easy mods that I found while modding my phone. Here we go...
[SIZE=+2]AOSP STYLE CLEAR-ALL BUTTON IN EXPANDED STATUS BAR on SAMSUNG ROMs[/SIZE]
Original:
{
"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"
}
Mod:
Ok first things first, you need to decompile SystemUI.apk (I will assume that you know how to copy the apk from your phone using a root explorer and decompile using a program like APK Tool).
Once it has decompiled successfully, open up /res/layout/tw_status_bar_expanded_header.xml and you will see this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="39.0dip" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#ffffffff" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:layout_marginTop="-3.0dip" android:singleLine="true" systemui:ampmSmall="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#ffcbcbcb" android:ellipsize="none" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="4.0dip" android:maxLines="2" />
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" android:visibility="gone" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@drawable/ic_notify_rotation" android:contentDescription="@string/accessibility_rotation_lock_off" />
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:layout_width="1.0dip" android:layout_height="25.0dip" android:layout_marginTop="7.0dip" android:layout_marginBottom="7.0dip" android:src="@drawable/tw_quick_panel_plnm_setting_dv" />
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="39.0dip">
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
</RelativeLayout>
</LinearLayout>
Now you need to delete everything after the line which starts with <com.android.systemui.statusbar.RotateToggle and replace it with the following code:
Code:
<ImageView android:id="@id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@string/accessibility_settings_button" />
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:id="@id/clear_all_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@string/accessibility_clear_all" />
</LinearLayout>
So your finished file should look exactly like this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="39.0dip" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#ffffffff" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:layout_marginTop="-3.0dip" android:singleLine="true" systemui:ampmSmall="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#ffcbcbcb" android:ellipsize="none" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="4.0dip" android:maxLines="2" />
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" android:visibility="gone" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@drawable/ic_notify_rotation" android:contentDescription="@string/accessibility_rotation_lock_off" />
<ImageView android:id="@id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@string/accessibility_settings_button" />
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:id="@id/clear_all_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@string/accessibility_clear_all" />
</LinearLayout>
What this does is it moves the settings icon from the far right to the left next to the date (notice the first line we deleted started with <Space and the line we replaced it with was <ImageView android:id="@id/settings_button") and also adds the clear all button (@id/clear_all_button) to the top right.
Now save tw_status_bar_expanded_header.xml and close it.
So now the clear all button is going to be showing on the top right of the status bar, but there will also be a clear all button in the notification area, like this picture:
So we need to open up tw_status_bar_expanded.xml and look for the following line:
Code:
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
and delete it.
The reason why we delete that is because it is the button which has the text Clear All that appears on the right side of the Notifications header when you have notifications, which we don't need as there is already a nice AOSP style button we can press in the top right of the expanded status bar .
Now save tw_status_bar_expanded.xml and close it.
Now recompile SystemUI.apk, and either change it's name by removing the 'unsigned' from the start of it's name, push it to your device (don't forget to change permissions to RW-R--R--) and reboot OR take those 2 files from the newly compiled unsignedSystemUI.apk and put them in a VRTheme zip, flash them in recovery and VOILA! I have included a VRTheme Zip to this post called 'AOSP Clear All Button' which you can download and flash in recovery as well.
Easy, even for a noob like me Enjoy.
[SIZE=+2]EDIT CLEAR ALL BUTTON TO INCLUDE FOCUS OPTION[/SIZE]
You can also do a minor change to an xml file and add an icon to SystemUI.apk to allow for a 'focus' option of the new clear all button that you have re-added.
In your APK Tool directory in /projects/SystemUI.apk navigate to /res/drawable and open up ic_notify_clear.xml you will see this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_notify_clear_pressed" />
<item android:drawable="@drawable/ic_notify_clear_normal" />
</selector>
So this means the button acts in a very basic way. When the button appears in the expanded status bar, you will be looking at the icon ic_notify_clear_normal.png which is in the /res/drawable-hdpi folder, and when you press it, it changes to the icon ic_notify_clear_pressed.png which is also in the /res/drawable-hdpi folder. What we want to do is add some more code in there to allow for the icon to change to a third icon when we press and hold (focus) on it,
So you need to change the content of ic_notify_clear.xml to the following:
Code:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_notify_clear_pressed" />
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/ic_notify_clear_normal" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/ic_notify_clear_normal" />
<item android:state_pressed="true" android:drawable="@drawable/ic_notify_clear_pressed" />
<item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/ic_notify_clear_focus" />
<item android:state_enabled="true" android:drawable="@drawable/ic_notify_clear_normal" />
<item android:state_focused="true" android:drawable="@drawable/ic_notify_clear_focus" />
<item android:drawable="@drawable/ic_notify_clear_normal" />
</selector>
So what this does is it tells the SystemUI.apk to change the icon we see when we press and hold on the clear all button from the normal ic_notify_clear_press.png to a new icon which I have called ic_notify_clear_focus.png which you will need to create using an icon editor. I use Greenfish Icon Editor Pro but lots of people use Photoshop as well.
To create the icon, I opened up ic_notify_clear_pressed.png from the /res/drawable-hdpi folder and added more of a glow effect to it. I have attached a copy of it to the post. You can create your own though, if you want to. What you will need to do it copy it into the /res/drawable-hdpi folder and after changing the ic_notify_clear.xml from the /res/drawable folder you will then need to save the file, close it and recompile the apk.
Now if you want to push it back into /system/app on your phone then do that (don't forget to change permissions to RW-R--R--) but if, like me, you wish to flash it in recovery using a VRTheme zip file, then you will need to do a few steps. Firstly, out of the newly recompile unsignedSystemUI.apk you will need take the new icon you created and put it into /vrtheme/preload/symlink/system/app/SystemUI.apk/res/drawable-hdpi in the VRTheme zip file and you will also need to take the ic_notify_clear.xml that you edited out of the recompiled apk and put it into /vrtheme/preload/symlink/system/app/SystemUI.apk/res/drawable in the zip file. Then you will need to close the zip file.
Now the next thing we have to do is take the resources.arsc file from our newly re-compiled unsignedSystemUI.apk and save it on the computer somewhere (I usually put it on the desktop so I know where it is and then delete it afterwards) and then you will need to us a zip program like WinRar to open up the VRTheme zip file. I don't use 7Zip for this part because I can't get it to simply store a file instead of compressing it. So we need to use WinRar to open up the VRTheme zip file and navigate to /vrtheme/preload/symlink/system/app/SystemUI.apk and you will see the res folder in the window. Now drag the resources.arsc file that you saved into the window and when the box comes up that asks you how you want to compress it, you need to change it to the 'store' option so that it doesn't compress the resources.arsc file at all.
I can't include the resources.arsc file as if you have any other mods or icons or anything in your SystemUI.apk, it will be incompatible with the resources.arsc file from my System UI.apk. I have, however, included a VRTHeme zip file to this post called 'Clear All Button Focus' which has the icon and xml file that we edited earlier, that you can add your resources.arsc file to and flash in recovery.
Enjoy!
[SIZE=+2]AOSP SIGNAL & WIFI INDICATORS[/SIZE]
Another quick and easy mod that I found was the layout of the signal & wifi indicators in the status bar.
Original
Mod
In SystemUI.apk/res/layout open up tw_signal_cluster view. You will see this.
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.SignalClusterView android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout android:gravity="center" android:id="@id/wifi_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/wifi_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:layout_alignParentRight="true" android:layout_centerVertical="true" />
<ImageView android:layout_gravity="center" android:id="@id/wifi_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
<View android:id="@id/spacer" android:visibility="gone" android:layout_width="6.0dip" android:layout_height="6.0dip" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/new_mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:id="@id/separate_mobile" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/separate_mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/separate_mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:gravity="center" android:id="@id/mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/mobile_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_roaming" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
</LinearLayout>
<ImageView android:id="@id/airplane" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.SignalClusterView>
The first line we need to edit is this:
Code:
<FrameLayout android:gravity="center" android:id="@id/wifi_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
Directly after the android:layout_height="wrap_content" and before the > we need to add android:layout_marginRight="0.0dip" .
So now that line should look like this:
Code:
<FrameLayout android:gravity="center" android:id="@id/wifi_combo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0.0dip">
The next line we need to edit is this:
Code:
<ImageView android:layout_gravity="center" android:id="@id/wifi_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
In the very first part of the line android:layout_gravity="center" we need to add bottom| directly before center" . Directly after android:layout_height="wrap_content" we need to add android:layout_marginLeft="-6.0dip" before the last />
So now that line should look like this:
Code:
<ImageView android:layout_gravity="bottom|center" android:id="@id/wifi_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="-6.0dip" />
Now we need to focus on this section here:
Code:
<FrameLayout android:id="@id/separate_mobile" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/separate_mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/separate_mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:gravity="center" android:id="@id/mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/mobile_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_roaming" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
We need to change that whole section with this:
Code:
<RelativeLayout android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true">
<FrameLayout android:gravity="center" android:id="@id/mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/mobile_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_roaming" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
<FrameLayout android:id="@id/separate_mobile" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true">
<ImageView android:id="@id/separate_mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/separate_mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="0.8000001dip" />
</FrameLayout>
</RelativeLayout>
Your fully edited tw_signal_cluster_view.xml should now look like this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.SignalClusterView android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout android:gravity="center" android:id="@id/wifi_combo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0.0dip">
<ImageView android:id="@id/wifi_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:layout_alignParentRight="true" android:layout_centerVertical="true" />
<ImageView android:layout_gravity="bottom|center" android:id="@id/wifi_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="-6.0dip" />
</FrameLayout>
<View android:id="@id/spacer" android:visibility="gone" android:layout_width="6.0dip" android:layout_height="6.0dip" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/new_mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<RelativeLayout android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content">
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true">
<FrameLayout android:gravity="center" android:id="@id/mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@id/mobile_signal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/mobile_roaming" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
<FrameLayout android:id="@id/separate_mobile" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true">
<ImageView android:id="@id/separate_mobile_type" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/separate_mobile_inout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="0.8000001dip" />
</FrameLayout>
</RelativeLayout>
</LinearLayout>
<ImageView android:id="@id/airplane" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.SignalClusterView>
That's it for the coding. You will also need to replace a number of icons in /res/drawable-hdpi which start with stat_sys. I have included them in a zip file called AOSP Signal Icons Only which is attached to this post.
Just put them all into /res/drawable-hdpi then recompile and enjoy. I have also attached a VRTheme zip file called AOSP Signal & Wifi Indicators.zip which you can flash from recovery.
That's it. See, easy as! Enjoy
[SIZE=+2]Credits:[/SIZE]
Spannaa - For all your help and support. Taught me everything I know and always helps no matter what. There should be more people like him on this forum. He is also a very knowledgeable themer, go and look at his thread [THEME][NeatROM 4.7 XWLSS] Blue Ginger Plus theme with 23 toggles
Google - For creating Android
Samsung - For making our beloved Galaxy S II
Faryaab - For making the AOSP ROM Super Nexus which I have used as a benchmark. Find it here: [ROM][AOSP][JB][4.1.2][JZO54K] SuperNexus - I9100 - BUILD 5 [17-10-12]
Reserved 1
Reserved 2
Good guide Thanks
Sent from my GT-I9300 using xda premium
res...
Hmm, have been found.... reserved 1
rush25 said:
Good guide Thanks
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
Thanks mate,
I hope it was useful to you.
Dave
eray0687 said:
Hmm, have been found.... reserved 1
Click to expand...
Click to collapse
Umm sorry but I am not sure what you are asking or stating?
Added Clear All Button Focus guide
I have edited the first post to add a guide to make the AOSP Clear All Button have a 'focus' option when pressed and held.
I hope you all enjoy.
Dave
Hey daveyannihilation,
Thanks for the great tutorial,
it took me a while but i finally managed to achieve this mod on my phone,
i was even able to take it a step further and move the settings button to the left of the statusbar
I like the look of the stock settings icon, so i used that instead of the aosp one
Again thanks for the great tutorial
Tired Storeman said:
Hey daveyannihilation,
Thanks for the great tutorial,
it took me a while but i finally managed to achieve this mod on my phone,
i was even able to take it a step further and move the settings button to the left of the statusbar
I like the look of the stock settings icon, so i used that instead of the aosp one
Again thanks for the great tutorial
Click to expand...
Click to collapse
Hey Tired Storeman,
That looks great! Top work mate. Glad the tutorial was useful for you. To get the settings button where it is in your screenshot, did you put that particular line before the clock reference lines to achieve your desire effect?
Sent from my AOSP Blue SGSII
daveyannihilation said:
Hey Tired Storeman,
That looks great! Top work mate. Glad the tutorial was useful for you. To get the settings button where it is in your screenshot, did you put that particular line before the clock reference lines to achieve your desire effect?
Sent from my AOSP Blue SGSII
Click to expand...
Click to collapse
To be honest i didnt try putting it before the clock, i didnt think that would work, because i centered the clock
i used android
layout_marginLeft="-108.0dip"
after
android:layout_height="48.0dip"
if you find a better way of doing it, could you let me know, for future references
Any way of removing the settings button? I tried deleting that line and went into a bootloop. Maybe I need to edit some other part of the apk..
xcly said:
Any way of removing the settings button? I tried deleting that line and went into a bootloop. Maybe I need to edit some other part of the apk..
Click to expand...
Click to collapse
Removing the @id/settings_button lines should do this.
Delete from the original code:
Code:
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="39.0dip">
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
</RelativeLayout>
Or maybe just change android:visibility="visible" to android:visibility="gone"
Or delete from the modified code:
Code:
<ImageView android:id="@id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@string/accessibility_settings_button" />
Your bootloop could due to a bad recompile of SystemUI.apk
Spannaa said:
Removing the @id/settings_button lines should do this.
Delete from the original code:
Code:
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="39.0dip">
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
</RelativeLayout>
Or maybe just change android:visibility="visible" to android:visibility="gone"
Or delete from the modified code:
Code:
<ImageView android:id="@id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@string/accessibility_settings_button" />
Your bootloop could due to a bad recompile of SystemUI.apk
Click to expand...
Click to collapse
Thanks for the reply. Tried the last option you gave me because I do want the AOSP style, just not the settings button there as well. Still giving me a bootloop. I don't think it's a bad recompile as I tried it a multiple times with the same result.
Tried changing the width and height to wrap_content, as that seem to make it flexible, got through to Android is upgrading part but bootloop after that.. T_T
I'm probably naive but I don't see how deleting that one line, which seems sensible enough, causes a bootloop.. Probably will have to stick with settings button until I figure out a way.. unless you might have some other ideas?
xcly said:
Thanks for the reply. Tried the last option you gave me because I do want the AOSP style, just not the settings button there as well. Still giving me a bootloop. I don't think it's a bad recompile as I tried it a multiple times with the same result.
Tried changing the width and height to wrap_content, as that seem to make it flexible, got through to Android is upgrading part but bootloop after that.. T_T
I'm probably naive but I don't see how deleting that one line, which seems sensible enough, causes a bootloop.. Probably will have to stick with settings button until I figure out a way.. unless you might have some other ideas?
Click to expand...
Click to collapse
Does it work if you don't delete the line?
Just a thought: When you decompiled SystemUI.apk, did you install the two frameworks first (framework-res.apk & twframework-res.apk)?
Spannaa said:
Does it work if you don't delete the line?
Just a thought: When you decompiled SystemUI.apk, did you install the two frameworks first (framework-res.apk & twframework-res.apk)?
Click to expand...
Click to collapse
Yup following the guide as it is works fine. Just starts bootlooping if I delete the line..
Do you mean "apktool if frameworks"? Then I haven't done so.. worked fine without it so far so didn't really give it a thought. I'll try it out when I get home (if that is what you meant)
Sent from my GT-N7105 using xda premium
xcly said:
Yup following the guide as it is works fine. Just starts bootlooping if I delete the line..
Do you mean "apktool if frameworks"? Then I haven't done so.. worked fine without it so far so didn't really give it a thought. I'll try it out when I get home (if that is what you meant)
Sent from my GT-N7105 using xda premium
Click to expand...
Click to collapse
Yes, "if" the two frameworks when you decompile SystemUI.apk and don't delete them before you recompile.
Another thought: Instead of deleting the line, try adding: android:visibility="gone" to it instead - it maybe that the missing id for the settings_button is causing an issue.
Spannaa said:
Yes, "if" the two frameworks when you decompile SystemUI.apk and don't delete them before you recompile.
Another thought: Instead of deleting the line, try adding: android:visibility="gone" to it instead - it maybe that the missing id for the settings_button is causing an issue.
Click to expand...
Click to collapse
Ah cool. Will try that and let you know
Sent from my GT-N7105 using xda premium
---------- Post added at 02:59 PM ---------- Previous post was at 02:05 PM ----------
Spannaa said:
Yes, "if" the two frameworks when you decompile SystemUI.apk and don't delete them before you recompile.
Another thought: Instead of deleting the line, try adding: android:visibility="gone" to it instead - it maybe that the missing id for the settings_button is causing an issue.
Click to expand...
Click to collapse
The visibility thing worked like a charm. Thanks a lot for your help
Hi all;
I'm trying to do something and I've seen this thread.
I've replaced the alarm clock icon by this one (the little thin line at left of wifi icon)
Ok, what I want is to have this icon beside the clock, like this:
How can I get this? I've tried changing many things in SystemUI's xml but I'm unable to get it...
Can anybody give me a hand? Thanks in advance!
tevaadarelsol said:
Hi all;
I'm trying to do something and I've seen this thread.
I've replaced the alarm clock icon by this one (the little thin line at left of wifi icon)
Ok, what I want is to have this icon beside the clock, like this:
How can I get this? I've tried changing many things in SystemUI's xml but I'm unable to get it...
Can anybody give me a hand? Thanks in advance!
Click to expand...
Click to collapse
Bump!
Enviado desde mi GT-I9100 usando Tapatalk 2
How to Edit Lockscreen & Systemui
First of all i’m not expert developer i’m more like a themer i’m sharing my knowledge for xda community just for helping noobs to become expert
Click to expand...
Click to collapse
Do it at your own risk !
Click to expand...
Click to collapse
Mods for know :
-how to make center clock and no battery icon just %
-how to make center clock with battery icon and %
-how to edit notifications numbers
-how to edit lockscreen (blinds&hin text&...etc)
How to decompile & compile with apktool
First you must know how to decompile and compile
Requirements :
Latest java installed
PC
notepad++ to edit xml
Human
Install the following package download
unzip it and put it in new folder and name it android
open the folder ,,,,, press left shift and press right mouse click and open cmd
copy SystemUI you want to edit or Lockscreen (name of lockscreen in rom "UxpNxtLockScreen")
Type this in cmd
apktool d @@@.apk
Click to expand...
Click to collapse
replace @@@ with app name
After editing type this
apktool b @@@
Click to expand...
Click to collapse
replace @@@ with app name without apk !
now you will find compiled app in dist folder
open the original apk with winrar or any zip manger and drag
META-INF & AndroidMainFest.xml
Click to expand...
Click to collapse
to compiled apk and set zip options to "store" and make it replace the files
Finished !
If you have problems ,,, install framewrok-res.apk and SemcGenericUxpRes.apk with this one "apktool if ccc.apk change ccc with name of app
Click to expand...
Click to collapse
just install frame&Semc of wanted Rom
-------------------------------------------------------------------------
now its time to know how to edit
How to make center clock without battery icon just %
decompile SystemUI.apk and go to res/layout/states bar.xml and replace inside with this
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">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:paddingTop="2.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
<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">
<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.IconPartitioner android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
</com.android.systemui.statusbar.phone.IconPartitioner>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.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/signal_cluster_view" />
<TextView android:layout_gravity="left|center" android:id="@id/battery_text" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_settings_settings_button" android:singleLine="true" style="@style/StatusBarNotificationText" />
<ImageView android:id="@id/battery" android:paddingLeft="2.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:background="@drawable/status_bar_bg_tile" 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="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</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:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" 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>
compile and done :good::good:
you have center clock and % battery
How to make just center clock
Go to res/layout/states bar.xml and replace it with this
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">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:paddingTop="2.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
<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">
<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.IconPartitioner android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
</com.android.systemui.statusbar.phone.IconPartitioner>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.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/signal_cluster_view" />
<TextView android:layout_gravity="left|center" android:id="@id/battery_text" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_settings_settings_button" android:singleLine="true" style="@style/StatusBarNotificationText" />
<ImageView android:id="@id/battery" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:background="@drawable/status_bar_bg_tile" 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="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</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:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" 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>
Compile and done :good:
How to edit notifications numbers
Go to res/values/integers.xml and edit the number in
<integer name="config_maxNotificationIcons">5</integer>
Click to expand...
Click to collapse
Edit the number (but dont make it high number it will case problems in notifications size
How to edit Lockscreen
decompile lockscreen and go to UxpNxtLockScreen\res\values
to change when hint go before unlocking(how many times to hint disappear)
open integers.xml
and change the number in
Code:
<integer name="unlocks_before_hint_removal">[COLOR="red"]9[/COLOR]</integer>
want to change the number of blinds ? in stock lockscreen its 4 and its small so you can make it as you like but as high you make it as ugly it will be
change the number here
<integer name="number_of_blinds">10</integer>
Click to expand...
Click to collapse
want to change the blinds that will affected ?? = how many blinds will show when you put your finger on lockscreen
change the number here
Code:
<integer name="blinds_affected_by_touch">[COLOR="red"]5[/COLOR]</integer>
How to change hint text
Go to UxpNxtLockScreen\res\layout and open unlock_hint.xml
and find this android:text= and change the text between
" "
Click to expand...
Click to collapse
and save it
How to change widgets place on lock screen
Go to UxpNxtLockScreen\res\values and open dimens.xml and change the " dip " near text
Ex:
<dimen name="lockscreen_widget_slider_margin_top">93.0dip</dimen>
Click to expand...
Click to collapse
the place of the slider change 93.0 dip to the number you want (if the number was less it will be at top , more the number was more will be near the ground )
How to change blinds rotation degrees
Go to UxpNxtLockScreen\res\values and open fractions and change the number in this text
Code:
<fraction name="max_sideways_rotation_degrees">[COLOR="red"]100.0%[/COLOR]</fraction>
put the number with %
if 300% it will look like big blinds so make it 150% or 50% as you like
How to make the slider with transparent
Go to UxpNxtLockScreen\res\drawable-xhdpi
and open arrows_swipe_camera_overlay with photoshop and make the opacity as you like and save as png (default)
Compile and done :good:
---------------------------------------
Don’t Forget to Press Thanks :good | Also if want to pay me a coffee or something else , feel free to give me a small donation by Pressing Here .
Cool step-by-step tutorial for newbie like me. Finally I can edit the lockscreen!!!
By the way, if I want the lock screen hint to stay there permanently, what value should I give to it?
TitaniumZERO said:
Cool step-by-step tutorial for newbie like me. Finally I can edit the lockscreen!!!
By the way, if I want the lock screen hint to stay there permanently, what value should I give to it?
Click to expand...
Click to collapse
Remove the line
Code:
<integer name="unlocks_before_hint_removal">9</integer>
from the file.
I hope it'll work. :good:
Try and comment here.
About lockscreen howto edit etc is already posted by @black97one here:
http://forum.xda-developers.com/showthread.php?p=43582251
But nice share @abo hani
Pandemic said:
About lockscreen howto edit etc is already posted by @black97one here:
http://forum.xda-developers.com/showthread.php?p=43582251
But nice share @abo hani
Click to expand...
Click to collapse
I know that , but i want to collect all of them together
TitaniumZERO said:
Cool step-by-step tutorial for newbie like me. Finally I can edit the lockscreen!!!
By the way, if I want the lock screen hint to stay there permanently, what value should I give to it?
Click to expand...
Click to collapse
Ajith Roy said:
Remove the line
Code:
<integer name="unlocks_before_hint_removal">9</integer>
from the file.
I hope it'll work. :good:
Try and comment here.
Click to expand...
Click to collapse
Or just put the number 9999999 unlimited
abo hani said:
Or just put the number 9999999 unlimited
Click to expand...
Click to collapse
I've tried delete the line, it didn't work but putting an insanely big number there works.
By the way, I've tried the transparent slider mod but it's not working, I can't recompile the apk.
TitaniumZERO said:
I've tried delete the line, it didn't work but putting an insanely big number there works.
By the way, I've tried the transparent slider mod but it's not working, I can't recompile the apk.
Click to expand...
Click to collapse
Give me the log , press right click and select , select the log and press right click to copy it then paste it here
abo hani said:
Give me the log , press right click and select , select the log and press right click to copy it then paste it here
Click to expand...
Click to collapse
I'm in office now, I'll feedback when I go home.
Centered clock won't work with The AOSP one cuz differences like colors right?
EDIT: It worked :good:
nice post
TitaniumZERO said:
I'm in office now, I'll feedback when I go home.
Click to expand...
Click to collapse
It seems that I have to install framework-res.apk for it to work.
Anyway I've taken a few other tutorial available now I have a modded lock screen which takes 65536 scrolls to remove the hint, modified Walkman+camera widget icons, transparent widget backplate.
Thanks again.
TitaniumZERO said:
It seems that I have to install framework-res.apk for it to work.
Anyway I've taken a few other tutorial available now I have a modded lock screen which takes 65536 scrolls to remove the hint, modified Walkman+camera widget icons, transparent widget backplate.
Thanks again.
Click to expand...
Click to collapse
Thanks for feedback i hope you become expert themer
when i make a call, the 'connecting' text displayed on the screen is having a thinnest black border and inside white colored font for text Connecting. can u plz tell me what .apk file to decomplile? just dont tell me which text to change i want to find it by myself, i just need to know which .apk file and which layout i need to look for.. i need to make the entire connecting text Black colored font
how about to put am/pm at the clock in systemUI?
Thank You For This Great Tutorial .
Can You Make Incoming Call Screen Full. I Mean Full Screen Caller Pic And Making The Black Transparent Full Transparent
molzz said:
when i make a call, the 'connecting' text displayed on the screen is having a thinnest black border and inside white colored font for text Connecting. can u plz tell me what .apk file to decomplile? just dont tell me which text to change i want to find it by myself, i just need to know which .apk file and which layout i need to look for.. i need to make the entire connecting text Black colored font
Click to expand...
Click to collapse
SemcPhone.apk
aminfauzi said:
how about to put am/pm at the clock in systemUI?
Click to expand...
Click to collapse
will put the tut tomorrow or after tomorrow
M.WeWe said:
Thank You For This Great Tutorial .
Can You Make Incoming Call Screen Full. I Mean Full Screen Caller Pic And Making The Black Transparent Full Transparent
Click to expand...
Click to collapse
I will when i learn it but you can use full screen call app from google play
abo hani said:
will put the tut tomorrow or after tomorrow
Click to expand...
Click to collapse
ok that will be great
Nice job
good work abo hani
sent from thinkandroid
What should I do to change the Status Bar fully transparent?. Thank´s in advance
I would like to ask if any body knows how to change the date on the notification screen to a single line, rather than 2 lines.
I have a SGS2 with Neat Rom Lite v4.8 XWLSW
What i have done so far
1. Removed clock
2. Moved the settings button to the left of the screen
3. Tried changing <com.android.systemui.statusbar.policy.DateView........ to android:maxLines="1"
Which changes the date to a single line, but only 1 word of the date is shown (see screenshot)
4. Tried changing <com.android.systemui.statusbar.policy.DateView.......android:layout_width="wrap_content" to "150.0dip" to try and make the date container large, (no change)
5. Changed <com.android.systemui.statusbar.policy.DateView.......android:layout_height="wrap_content" to the "39.0dip" the same height as the notification header (no change)
I am thinking that i need to change something in DateView smali, but unfortunatly i do not know smali, and would not know which line to edit.
If anybody could offer any assistance, it would be greatly appreciated.
This is my tw_status_bar_expanded_header.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="39.0dip" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="39.0dip">
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
</RelativeLayout>
<ImageView android:layout_width="1.0dip" android:layout_height="25.0dip" android:layout_marginTop="7.0dip" android:layout_marginBottom="7.0dip" android:src="@drawable/tw_quick_panel_plnm_setting_dv" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textSize="18.0dip" android:textColor="#ffffffff" android:ellipsize="none" android:id="@id/date" android:layout_width="150.0dip" android:layout_height="39.0dip" android:layout_marginLeft="8.0dip" android:layout_marginRight="4.0dip" android:maxLines="1" />
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" android:visibility="gone" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@drawable/ic_notify_rotation" android:contentDescription="@string/accessibility_rotation_lock_off" />
</LinearLayout>
Mods, if i have posted this in the wrong section, please move accordingly.
Edit:- I finally worked it out
Checkout my tutorial Single Line Notification Date