Related
This mod is based on Lidroid work so all credits goes to him, he updated his framework (lidroid-res) to api level 16 but he didn't port it to Samsung Jely bean Roms yet, so i decided to try to do it my self.
{
"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"
}
I packaged needed sources into SystemUI, to make it easy to port on next updates.
Let start, you need to decompile SystemUI.apk (use my repacked Apk_Manager if you get any issue).
Edit "SystemUI.apk\res\layout\tw_status_bar_expanded.xml" and make these changes, this will hide the stock status bar and use the new one:
Code:
<include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />
<com.wanamlite.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>
Edit "SystemUI.apk\res\values\ids.xml" and add this Id:
Code:
++ <item type="id" name="exp_power_stat">false</item>
Edit "SystemUI.apk\smali\com\android\systemui\statusbar\phone\PhoneStatusBar.smali" and make these changes :
Add mPowerWidget field :
Code:
.field mPostCollapseCleanup:Ljava/lang/Runnable;
++.field mPowerWidget:Lcom/wanamlite/systemui/quickpanel/PowerWidget;
.field mQueueLock:Ljava/lang/Object;
Method "addIcon" :
Code:
invoke-virtual {v1, v0, p3, v2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
.line 1086
++iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanamlite/systemui/quickpanel/PowerWidget;
++invoke-virtual {v1}, Lcom/wanamlite/systemui/quickpanel/PowerWidget;->updateWidget()V
return-void
Method "makeStatusBarView" :
Code:
invoke-virtual {v13, v14}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V
++move-object/from16 v0, p0
++iget-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
++const v14, 0x7f0d0109
++invoke-virtual {v13, v14}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
++move-result-object v13
++check-cast v13, Lcom/wanamlite/systemui/quickpanel/PowerWidget;
++move-object/from16 v0, p0
++iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanamlite/systemui/quickpanel/PowerWidget;
.line 716
new-instance v13, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
Code:
move-object/from16 v0, p0
iget-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v1, v13, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
++move-object/from16 v0, p0
++iget-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanamlite/systemui/quickpanel/PowerWidget;
++invoke-virtual {v13}, Lcom/wanamlite/systemui/quickpanel/PowerWidget;->setupWidget()V
.line 806
sget-boolean v13, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useTouchWizGUI:Z
Extract attached "wanamlite.zip" and copy both folders "com" & "wanamlite" to your "SystemUI.apk\smali\".
That's all, recompile your SystemUI.
After building, make sure your Id "exp_power_stat" got the public id "0x7f0d0109", if you got a different Id, use your new public Id in the "makeStatusBarView" method.
Download attached "system.zip" , you need to copy Toggle buttons resources "lidroid-res.apk" to "system/framework", and "QuickPanelSettings.apk" to "/system/app" (with permissions 644).
Use this updated guide to mod lidroid-res.
Enjoy!
good job :good:
Awesome
if only there is a flash zip ,will be simpler for non tech like me
Sent from my GT-I9300 using xda app-developers app
noobandroid said:
if only there is a flash zip ,will be simpler for non tech like me
Sent from my GT-I9300 using xda app-developers app
Click to expand...
Click to collapse
Already available on my Rom V3.2.
wanam please can u tell me how to use ur apk manager. as decompiling and compiiling a system app. thanks
wanam said:
Already available on my Rom V3.2.
Click to expand...
Click to collapse
I'm still on 3.1 cause the 3.2 make my phone hang when i flash it, tried couple times
Sent from my GT-I9300 using xda app-developers app
Appreciate your work man, thanks
noobandroid said:
I'm still on 3.1 cause the 3.2 make my phone hang when i flash it, tried couple times
Sent from my GT-I9300 using xda app-developers app
Click to expand...
Click to collapse
Strange...3.2 is perfect here...D/L fail?
Thanks so much Wanam
thanks wanam, systemui.apk upload please.
Thanks a lot again!!!
Sent from my Nexus 7 using Tapatalk 2
Thanks wanam for sharing this.....
Thanks your one of the best
Sent from my GT-I9300 using xda premium
Great work as always,
thank you for sharing this guide with us my friend
Thanks so much Wanam
Which xml edits to remove brightness slider?
Sent from my GT-I9300 using xda premium
rlorange said:
Which xml edits to remove brightness slider?
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
it is located in systemui!
decompile systemui
go to res/layout/tw_status_bar_expanded.xml (open it using notepad++) and scroll down till you see this
PHP:
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height">
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" [B]android:visibility="gone"[/B] android:layout_height="55.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>
insert the one in the bold letters or (android:visibility="gone") and recompile systemUI!
Thank you Wanam
Thanks great work though 1 request. Can you please add power saving toggle?
This mod is originally posted on Galaxy Wonder theme forum :
[MOD][CM10] Sense 4.0 style Multitasking - Recent apps
I have tried this mod on my Galaxy Mini with CM10.1-Balt Rom-v4.2 and work very fine!
ok lets go to Guide:
first of all need some requirment for this MOD-GUIDE
REQUIREMENT:
- BRAIN
- Patient
- Know how to decompile/recompiling Apk file
- notepad++
- Tool for decompiling, : apkmanager/apktool/Virtous/apkmultitools
1.DECOMPILE, framework-res.apk
- /res/values/dimens.xml : change thumbnail size to..
Code:
<dimen name="thumbnail_height">[COLOR="Red"]240.0dip[/COLOR]</dimen>
<dimen name="thumbnail_width">[COLOR="Red"]151.0dip[/COLOR]</dimen>
Save and compile
2.DECOMPILE, SystemUI.apk
- /res/values/bools.xml
Code:
<bool name="config_recents_thumbnail_image_fits_to_xy">[COLOR="Red"]true[/COLOR]</bool>
- /res/values/strings.xml
add this line to the end
Code:
<string name="recent_apps_title">Recent apps</string>
-/res/values/ids.xml
add this line to the end
Code:
<item type="id" name="recents_transition_background" />
<item type="id" name="recents_transition_placeholder_icon" />
- /res/layout/status_bar_no_recent_apps.xml
Code:
<TextView android:textSize="20.0dip" android:textColor="@*android:color/[COLOR="Red"]white[/COLOR]" android:gravity="center_horizontal" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_no_recent_apps" />
- /res/layout/status_bar_expanded_header.xml
before :
Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" [COLOR="Red"]android:background="@drawable/notification_header_bg"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
change it to
Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" [COLOR="Red"]android:background="#ff000000"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
- /res/layout/status_bar_recent_item.xml
Delete the whole lines, and replace with this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@*android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
<FrameLayout android:id="@id/app_thumbnail" android:background="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
<ImageView android:id="@id/app_thumbnail_image" android:layout_width="192.0dip" android:layout_height="305.0dip" android:layout_marginTop="15.0dip" android:layout_marginBottom="15.0dip" />
</FrameLayout>
<View android:id="@id/recents_callout_line" android:background="@drawable/recents_callout_line" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="1.0dip" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="3.0dip" android:layout_marginRight="3.0dip" android:layout_toLeftOf="@id/app_thumbnail" android:layout_below="@id/app_label" android:layout_alignParentLeft="true" />
<ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="192.0dip" android:layout_height="wrap_content" android:layout_marginTop="57.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="@dimen/status_bar_recents_app_icon_max_width" android:maxHeight="@dimen/status_bar_recents_app_icon_max_height" android:layout_below="@id/app_thumbnail" />
<TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="192.0dip" android:layout_height="fill_parent" android:layout_marginTop="7.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_icon" android:layout_alignParentBottom="true" />
<TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="40.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
- /res/layout/status_bar_recent_panel.xml
Delete the whole lines, and replace with this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="@drawable/sense_port" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<View android:id="@id/recents_transition_background" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<FrameLayout android:id="@id/recents_bg_protect" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
<ImageView android:id="@id/recents_transition_placeholder_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="0.0dip" android:stackFromBottom="true" android:divider="@null">
<LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.systemui.recent.RecentsHorizontalScrollView>
<TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="43.0dip" android:text="@string/recent_apps_title" />
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
</FrameLayout>
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
</com.android.systemui.recent.RecentsPanelView>
- /res/layout-land/status_bar_recent_item.xml
Delete the whole lines, and replace with this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@*android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
<FrameLayout android:id="@id/app_thumbnail" android:background="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
<ImageView android:id="@id/app_thumbnail_image" android:layout_width="137.0dip" android:layout_height="217.0dip" android:layout_marginTop="10.0dip" android:layout_marginBottom="20.0dip" />
</FrameLayout>
<ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="50.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="10.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="35.0dip" android:maxHeight="35.0dip" android:layout_below="@id/app_thumbnail" />
<TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="70.0dip" android:layout_height="fill_parent" android:scrollHorizontally="true" android:singleLine="true" android:layout_toRightOf="@id/app_icon" android:layout_below="@id/app_thumbnail" />
<TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:visibility="gone" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="40.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
- /res/layout-land/status_bar_recent_panel.xml
Delete the whole lines, and replace with this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="@drawable/sense_land" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<View android:id="@id/recents_transition_background" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<FrameLayout android:id="@id/recents_bg_protect" android:background="#00000000" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
<ImageView android:id="@id/recents_transition_placeholder_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|right|center" android:orientation="horizontal" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin" android:stackFromBottom="true" android:divider="@null">
<LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" />
</com.android.systemui.recent.RecentsHorizontalScrollView>
<TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="@string/recent_apps_title" />
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
</FrameLayout>
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
</com.android.systemui.recent.RecentsPanelView>
- smali/com/android/systemui/recent/RecentsPanelView.smali
DELETE the whole line starting from this line
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
-
- until
-
.end method
REPLACE it with these lines :
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
.locals 30
.parameter "h"
.parameter "thumbnail"
.parameter "show"
.parameter "anim"
.prologue
.line 409
if-eqz p2, :cond_4
.line 413
const/16 v26, 0x4
.line 414
.local v26, reflectionGap:I
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v6
.line 415
.local v6, width:I
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v24
.line 417
.local v24, height:I
new-instance v8, Landroid/graphics/Matrix;
invoke-direct {v8}, Landroid/graphics/Matrix;-><init>()V
.line 418
.local v8, matrix:Landroid/graphics/Matrix;
const/high16 v3, 0x3f80
const/high16 v4, -0x4080
invoke-virtual {v8, v3, v4}, Landroid/graphics/Matrix;->preScale(FF)Z
.line 420
const/4 v4, 0x0
mul-int/lit8 v3, v24, 0x2
div-int/lit8 v5, v3, 0x3
div-int/lit8 v7, v24, 0x3
const/4 v9, 0x0
move-object/from16 v3, p2
invoke-static/range {v3 .. v9}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v27
.line 421
.local v27, reflectionImage:Landroid/graphics/Bitmap;
div-int/lit8 v3, v24, 0x3
add-int v3, v3, v24
sget-object v4, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v6, v3, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v23
.line 423
.local v23, bitmapWithReflection:Landroid/graphics/Bitmap;
new-instance v9, Landroid/graphics/Canvas;
move-object/from16 v0, v23
invoke-direct {v9, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 424
.local v9, canvas:Landroid/graphics/Canvas;
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move-object/from16 v0, p2
invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 425
new-instance v14, Landroid/graphics/Paint;
invoke-direct {v14}, Landroid/graphics/Paint;-><init>()V
.line 426
.local v14, defaultPaint:Landroid/graphics/Paint;
const/4 v10, 0x0
move/from16 v0, v24
int-to-float v11, v0
int-to-float v12, v6
add-int/lit8 v3, v24, 0x4
int-to-float v13, v3
invoke-virtual/range {v9 .. v14}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 427
const/4 v3, 0x0
add-int/lit8 v4, v24, 0x4
int-to-float v4, v4
const/4 v5, 0x0
move-object/from16 v0, v27
invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 429
new-instance v25, Landroid/graphics/Paint;
invoke-direct/range {v25 .. v25}, Landroid/graphics/Paint;-><init>()V
.line 430
.local v25, paint:Landroid/graphics/Paint;
new-instance v15, Landroid/graphics/LinearGradient;
const/16 v16, 0x0
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
int-to-float v0, v3
move/from16 v17, v0
const/16 v18, 0x0
invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
add-int/lit8 v3, v3, 0x4
int-to-float v0, v3
move/from16 v19, v0
const v20, 0x70ffffff
const v21, 0xffffff
sget-object v22, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
invoke-direct/range {v15 .. v22}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
.line 433
.local v15, shader:Landroid/graphics/LinearGradient;
move-object/from16 v0, v25
invoke-virtual {v0, v15}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 434
new-instance v3, Landroid/graphics/PorterDuffXfermode;
sget-object v4, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v3, v4}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
move-object/from16 v0, v25
invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
.line 435
const/16 v17, 0x0
move/from16 v0, v24
int-to-float v0, v0
move/from16 v18, v0
int-to-float v0, v6
move/from16 v19, v0
invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
add-int/lit8 v3, v3, 0x4
int-to-float v0, v3
move/from16 v20, v0
move-object/from16 v16, v9
move-object/from16 v21, v25
invoke-virtual/range {v16 .. v21}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 438
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
move-object/from16 v0, v23
invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
.line 442
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;
if-eqz v3, :cond_0
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;
invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
if-ne v3, v4, :cond_0
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;
invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
if-eq v3, v4, :cond_1
.line 445
:cond_0
move-object/from16 v0, p0
iget-boolean v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mFitThumbnailToXY:Z
if-eqz v3, :cond_5
.line 446
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
const/high16 v4, 0x41c8
invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setRotationY(F)V
.line 455
:cond_1
:goto_0
if-eqz p3, :cond_3
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;
invoke-virtual {v3}, Landroid/view/View;->getVisibility()I
move-result v3
if-eqz v3, :cond_3
.line 456
if-eqz p4, :cond_2
.line 457
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;
move-object/from16 v0, p0
iget-object v4, v0, Lcom/android/systemui/recent/RecentsPanelView;->mContext:Landroid/content/Context;
const v5, 0x7f04000f
invoke-static {v4, v5}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/view/View;->setAnimation(Landroid/view/animation/Animation;)V
.line 460
:cond_2
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;
const/4 v4, 0x0
invoke-virtual {v3, v4}, Landroid/view/View;->setVisibility(I)V
.line 462
:cond_3
move-object/from16 v0, p2
move-object/from16 v1, p1
iput-object v0, v1, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;
.line 464
.end local v6 #width:I
.end local v8 #matrix:Landroid/graphics/Matrix;
.end local v9 #canvas:Landroid/graphics/Canvas;
.end local v14 #defaultPaint:Landroid/graphics/Paint;
.end local v15 #shader:Landroid/graphics/LinearGradient;
.end local v23 #bitmapWithReflection:Landroid/graphics/Bitmap;
.end local v24 #height:I
.end local v25 #paint:Landroid/graphics/Paint;
.end local v26 #reflectionGap:I
.end local v27 #reflectionImage:Landroid/graphics/Bitmap;
:cond_4
return-void
.line 448
.restart local v6 #width:I
.restart local v8 #matrix:Landroid/graphics/Matrix;
.restart local v9 #canvas:Landroid/graphics/Canvas;
.restart local v14 #defaultPaint:Landroid/graphics/Paint;
.restart local v15 #shader:Landroid/graphics/LinearGradient;
.restart local v23 #bitmapWithReflection:Landroid/graphics/Bitmap;
.restart local v24 #height:I
.restart local v25 #paint:Landroid/graphics/Paint;
.restart local v26 #reflectionGap:I
.restart local v27 #reflectionImage:Landroid/graphics/Bitmap;
:cond_5
new-instance v29, Landroid/graphics/Matrix;
invoke-direct/range {v29 .. v29}, Landroid/graphics/Matrix;-><init>()V
.line 449
.local v29, scaleMatrix:Landroid/graphics/Matrix;
move-object/from16 v0, p0
iget v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mThumbnailWidth:I
int-to-float v3, v3
invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
int-to-float v4, v4
div-float v28, v3, v4
.line 450
.local v28, scale:F
move-object/from16 v0, v29
move/from16 v1, v28
move/from16 v2, v28
invoke-virtual {v0, v1, v2}, Landroid/graphics/Matrix;->setScale(FF)V
.line 451
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
sget-object v4, Landroid/widget/ImageView$ScaleType;->MATRIX:Landroid/widget/ImageView$ScaleType;
invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
.line 452
move-object/from16 v0, p1
iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
move-object/from16 v0, v29
invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V
goto :goto_0
.end method
- And download this : https://www.dropbox.com/s/ebk8u7traq8mh3i/drawable-nodpi.zip
extract this to /res/drawable-nodpi/
Remember to add the added strings and sources, in res/value/public.xml
CREDIT & THANKS TO :
- CyanogenMod
- XDA
- Adi_ais hiteru
- arco
- Evilisto
- mnemonyc (me)
SCREENSHOT
{
"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"
}
Send from AWMP D.C.
R: [MOD][CM10.1] Sense 4.0 style Task Manager - Recent apps [MDPI/LDPI DEVICES]
Hey guys...do u like this work? Press thanks button to do me that it is a good job!
Send from AWMP D.C.
Great job !
Tested on CM10.1 !
I got bootlop tested on slimbean 4.2.2
Not working for me LiQu OS beta-1 (base rom CM10.1), I got this in logcat
Code:
E( 562) java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.systemui/com.android.systemui.recent.RecentsActivity}: java.lang.IllegalArgumentException: missing Recents[Horizontal]ScrollView (AndroidRuntime)
E( 562) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2304) (AndroidRuntime)
E( 562) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2354) (AndroidRuntime)
E( 562) at android.app.ActivityThread.access$600(ActivityThread.java:150) (AndroidRuntime)
E( 562) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) (AndroidRuntime)
E( 562) at android.os.Handler.dispatchMessage(Handler.java:99) (AndroidRuntime)
E( 562) at android.os.Looper.loop(Looper.java:137) (AndroidRuntime)
E( 562) at android.app.ActivityThread.main(ActivityThread.java:5193) (AndroidRuntime)
E( 562) at java.lang.reflect.Method.invokeNative(Native Method) (AndroidRuntime)
E( 562) at java.lang.reflect.Method.invoke(Method.java:511) (AndroidRuntime)
E( 562) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) (AndroidRuntime)
E( 562) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) (AndroidRuntime)
E( 562) at dalvik.system.NativeStart.main(Native Method) (AndroidRuntime)
E( 562) Caused by: java.lang.IllegalArgumentException: missing Recents[Horizontal]ScrollView (AndroidRuntime)
E( 562) at com.android.systemui.recent.RecentsPanelView.onFinishInflate(RecentsPanelView.java:432) (AndroidRuntime)
E( 562) at android.view.LayoutInflater.rInflate(LayoutInflater.java:754) (AndroidRuntime)
E( 562) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) (AndroidRuntime)
E( 562) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) (AndroidRuntime)
E( 562) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) (AndroidRuntime)
E( 562) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) (AndroidRuntime)
E( 562) at android.app.Activity.setContentView(Activity.java:1881) (AndroidRuntime)
E( 562) at com.android.systemui.recent.RecentsActivity.onCreate(RecentsActivity.java:177) (AndroidRuntime)
E( 562) at android.app.Activity.performCreate(Activity.java:5104) (AndroidRuntime)
E( 562) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) (AndroidRuntime)
E( 562) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258) (AndroidRuntime)
logcat --> View attachment Log_2013-05-04_09-44-51.txt
U have done some errors on RecentPanelView.smali
Send from AWMP D.C.
i got this error when compiling..
[1659,4] missing EOF at '.line'
btw,nice work.. :good:
syakirilmam said:
i got this error when compiling..
[1659,4] missing EOF at '.line'
btw,nice work.. :good:
Click to expand...
Click to collapse
Please post in attachement the log of apktool error.
Send from AWMP D.C.
already solve that problem :fingers-crossed: but one problem found..my sytemUI doesn't have this xml
- /res/layout/status_bar_recent_item.xml
syakirilmam said:
already solve that problem :fingers-crossed: but one problem found..my sytemUI doesn't have this xml
- /res/layout/status_bar_recent_item.xml
Click to expand...
Click to collapse
But for what rom do u want do this mod??
Send from AWMP D.C.
stock samsung cm 10 rom from samsung s3 mini...
sorry for my bad english..
syakirilmam said:
stock samsung cm 10 rom from samsung s3 mini...
sorry for my bad english..
Click to expand...
Click to collapse
Sorry, I dont undertand...stock rom or cm10 rom??? And for what device??
Send from AWMP D.C.
cm 10 rom...my current device is samsung galaxy s3 mini...is it posibble to make this sense 4.0.task manager??
sorry for my attitude and my english
syakirilmam said:
cm 10 rom...my current device is samsung galaxy s3 mini...is it posibble to make this sense 4.0.task manager??
sorry for my attitude and my english
Click to expand...
Click to collapse
Follow this guide
http://forum.xda-developers.com/showthread.php?p=39047468
[MOD-GUIDE][CM10] Sense 4.0 style Multitasking with Reflection on CM10 [HDPI DEVICES]
Send from AWMP D.C.
mnemonyc said:
Follow this guide
http://forum.xda-developers.com/showthread.php?p=39047468
[MOD-GUIDE][CM10] Sense 4.0 style Multitasking with Reflection on CM10 [HDPI DEVICES]
Thank you man!!:good:
Click to expand...
Click to collapse
can this mod be done on cm10?
ive cm10 on xperia mini pro!
can i do it on my rom?
its 4.1.2 android version
MEHRDAD595 said:
can this mod be done on cm10?
ive cm10 on xperia mini pro!
can i do it on my rom?
its 4.1.2 android version
Click to expand...
Click to collapse
Yes u can!
Send from AWMP D.C.
help
mnemonyc said:
Hey guys...do u like this work? Press thanks button to do me that it is a good job!
Send from AWMP D.C.
Click to expand...
Click to collapse
hey that was great. I want some help from you if you can.
I want to change the look of the gingerbread status bar to that of the ICS(original ics that of nexus) .
Can you please give the tutorial for changing every thing in status bar like icons and background and all?
please... I searched everywhere but can't find anything related.
Requesting you to please give the tutorial......
Can I try this mod in the cm9 by maclaw for galaxy ace?
Inviato dal mio GT-S5830 con Tapatalk 2
Yes, u can
Sent from my GT-I9300 using Tapatalk 4 Beta
How to add 4.2.2 Statusbar to youre Jellybean rom
In this guide i will show u how to add 4.2.2 statusbar
Note:!!!!!!! If u are new to modifying apps Dont try this Please.. u must know how to mod first before u gonna try as u will definetly end up in some errors or possible FCs
Read the thread/OP/first 1/2 posts FULLY! if u dont read it fully i wont provide support as u are to lazy to even read in the first place. if u read full 1st page i can help u
do add logcats if FC * how to do this is also described here!*. Thanks
Next is
Statusbar.xml
make sure it looks like this below
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">
<com.android.systemui.statusbar.StatusBarServiceLRPull android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<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:visibility="gone" 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="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:textColor="@touchwiz:dimen/tw_softkey_textsize_singleline" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
</com.android.systemui.statusbar.StatusBarServiceLRPull>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="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>
Now we are going to modify
Status_bar_expanded.xml
Make sure it looks something like this
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">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" />
<LinearLayout android:orientation="vertical" 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/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
<include layout="@layout/brightness" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network.EmergencyOnly" android:gravity="center" android:id="@id/emergency_calls_only" android:paddingBottom="4.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
</LinearLayout>
<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/close_handle_height">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/close_handle_height" android:src="@drawable/status_bar_close" android:scaleType="fitXY" />
</com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
change it to
RED - Add BLUE - moved
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">
[COLOR="Blue"]<LinearLayout android:orientation="vertical" 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/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
</LinearLayout>[/COLOR]
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" />
[COLOR="red"]<com.spacecaker.SpaceLayOut android:layout_width="fill_parent" android:layout_height="fill_parent">[/COLOR]
[COLOR="Red"]<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include layout="@layout/quickpanel_quick_settings_space" />
</LinearLayout>[/COLOR]
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" [COLOR="red"]android:layout_marginTop="@dimen/notification_panel_header_height"[/COLOR] android:layout_marginBottom="@dimen/close_handle_underlap">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network.EmergencyOnly" android:gravity="center" android:id="@id/emergency_calls_only" android:paddingBottom="4.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
</LinearLayout>
[COLOR="red"]</com.spacecaker.SpaceLayOut>[/COLOR]
<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/close_handle_height">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/close_handle_height" android:src="@drawable/status_bar_close" android:scaleType="fitXY" />
</com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
What i have done is adding new
Code:
<com.spacecaker.SpaceLayOut android:layout_width="fill_parent" android:layout_height="fill_parent">
</com.spacecaker.SpaceLayOut>
lines + use other xml to load Quickpanel and JB header
to make it look much cleaner
Next up is moddifying
StatusBar_Expanded_Header.xml
RED - Add BLUE - moved
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:background="@drawable/notification_header_bg" android:layout_width="fill_parent" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<View android:background="@drawable/status_bar_hr" android:layout_width="fill_parent" android:layout_height="2.0dip" android:visibility="gone" />
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="@drawable/notification_header_bg" android:layout_width="fill_parent" android:layout_height="52.0dip" android:baselineAligned="false">
<ImageView android:id="@id/quickpanelsettings_button" android:paddingLeft="5.0dip" android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quickpanelsettings" android:layout_alignParentLeft="true" />
<ImageView android:id="@id/quicksettings_button" android:paddingLeft="5.0dip" android:paddingRight="1.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:layout_alignParentLeft="true" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:id="@id/clock_expanded" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="@com.sonyericsson.uxp:color/semc_theme_accent_color" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" />
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" 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" />
<com.spacecaker.ButtonBurst android:id="@id/spacebuttonburst" android:layout_width="40.0dip" android:layout_height="40.0dip" android:layout_alignParentRight="true" />
[COLOR="red"]<Button android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="80.0dip" android:layout_height="wrap_content" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" /> [/COLOR]
</LinearLayout>
</LinearLayout>
Now we are going to
res/values/ids.xml
and we are going to add these ids
Code:
<item type="id" name="spaceybeaneyheader">false</item>
<item type="id" name="settings_button">false</item>
<item type="id" name="jbclock">false</item>
<item type="id" name="spacebuttonburst">false</item>
<item type="id" name="recent_app_button">false</item>
Now go to
res/values/strings.xml and we add these lines
Code:
<string name="accessibility_clear_all">Clear</string>
<string name="accessibility_settings_button">System settings.</string>
Now go to
res/values/Styles.xml
and add
this to the end of file
Code:
<style name="S3.Clear" parent="@*android:style/Widget.Button">
<item name="android:textAppearance">?android:textAppearanceSmallInverse</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:gravity">center</item>
<item name="android:background">@drawable/tw_btn_default_small</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
now add a dimens.xml or edit ur dimens.xml
and add this line
Code:
<dimen name="status_bar_expanded_notification_clear_button_text_size">17.0dip</dimen>
<dimen name="status_bar_expanded_notification_category_text_size">17.0dip</dimen>
<dimen name="status_bar_expanded_clear_button_width">123.0dip</dimen>
now change this line in dimens.xml from
[CODE}]<dimen name="notification_panel_header_height">111.0dip</dimen>[/CODE]
to
Code:
<dimen name="notification_panel_header_height">52.0dip</dimen>
Now add all the Files i have given in the attachement *Space_Adds.zip*
and compile the apk
if u get a error do describe it in xda post so i can help u to fix
Now delete the Directory of ur decompiled apk
and
Decompiled the apk again * this is for the public IDS * sothey are added
Now
go to
res/values/public.xml and find these
Code:
<public type="drawable" name="btn_tg"
<public type="drawable" name="btn_toggles_normal"
Now goto
smali/com/spacecaker/ButtonBurst.smali
and find this
Code:
const v3, 0x7f020180
change it to the Public ID code u got from
Code:
<public type="drawable" name="btn_toggles_normal"
Now find this
Code:
const v3, 0x7f02017f
change it to the public id u got from
Code:
<public type="drawable" name="btn_tg"
and now We are done for this part
now lets add the
Settings
Display
and
Prof/Contact button
goto
smali/com/android/systemui/SystemUIService.smali
and aadd these to end of the file
Code:
.method public BrightnessButton(Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.settings"
const-string v2, "com.android.settings.Settings"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V
.line 1720
return-void
.end method
.method public ProfileButton(Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.contacts"
const-string v2, "com.android.contacts.activities.PeopleActivity"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V
.line 1720
return-void
.end method
.method public SpaceCakerButton(Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 2431
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2432
const-string v1, "com.android.settings"
const-string v2, "com.android.settings.Settings"
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
.line 2433
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V
.line 1720
return-void
.end method
now compile the apk and it should work now
if it doesn't work please take a logcat * A full logcat with ADB and not with catlog or logcat apps on phone if preferable use this command adb logcat -v long > logcat.txt this way i can help also dont cut the logcat just keep it full as there are more parts that are needed to see instead of only a E/androidruntime error
Special Thanks to
Matz69
DCSMS
auliaYF
marinalin
and everyone who helped
SpaceCaker
xda.agm
if i am missing credits or whatsoever PM me and i will set
How to add new/change toggles ?
As u can see i highlighted some stuff with pink color
Code:
[COLOR="Magenta"][I]const-string v2, "com.android.settings"[/I][/COLOR]
Packagename
Code:
[COLOR="Magenta"][I]const-string v2, "com.android.settings.Settings"[/I][/COLOR]
Activity
As u can see it has this tag inside
Code:
com.android.settings
packagename
Code:
com.android.settings.Settings
Activity
this is the package/action name of a app / option inside settings.apk
u can change this to any thin u want like
taskmanager it will be like this
Code:
const-string v2, "com.sec.android.app.controlpanel"
this is packagename, and
Code:
const-string v2, "com.sec.android.app.controlpanel.activity.JobManagerActivity"
this is activity,
now if u add it to a new Onclick method it will look like this
Code:
.method public [COLOR="RoyalBlue"]SpaceCakerButton[/COLOR](Landroid/view/View;)V
.locals 5
.parameter "view"
.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 105
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 107
[COLOR="RoyalBlue"]const-string v2, "com.android.settings"[/COLOR]
[COLOR="RoyalBlue"]const-string v3, "com.android.settings.Settings"[/COLOR]
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void
.line 115
:catch_0
move-exception v0
.line 117
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_0
.end method
this is a new method
of course it wont work yet as u need to add it to the layout
goto res/layout/quickpanel_quick_settings_space.xml
add something like this
Code:
<FrameLayout android:id="@id/settings_button" android:background= [user=3944923]@drawab[/user]le/tile_toggle" android:layout_width="106.0px" android:layout_height="100.0px" android:layout_weight="1.0">
<ImageView android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" [COLOR="Red"]android:src [user=3944923]@drawab[/user]le/taskmanagerpng"[/COLOR][COLOR="Red"]android:onClick="SpaceCakerButton"[/COLOR] />
<TextView android:textSize="12.0dip" android:textColor="#ffffffff" android:gravity="center" android:layout_gravity="bottom" android:background="#00000000" android:layout_width="106.0px" android:layout_height="wrap_content" android:layout_marginBottom="15.0px" [COLOR="Red"]android:text="TaskManager"[/COLOR] />
</FrameLayout>
the red stuff u need to edit to the app/ icon / text /
Code:
.method public SpaceCakerButton
u used
@drawable/taskmanagerpng u need to add a png that has the name taskmanagerpng to drawable-mdpi
Code:
android:onClick="[COLOR="Magenta"]SpaceCakerButton[/COLOR]"
noticed the pink part ?
this is the text i used after .method public
this makes the button actually work
And ofcourse
Code:
android:text="[COLOR="Magenta"]TaskManager[/COLOR]"
this is what the text needs to say under the app
SpaceCaker said:
taken this post for more
Click to expand...
Click to collapse
and ofcourse this one aswell is neccesary
Thank you for this!!!!
I am going to see if I can get this for Note II
Sent from my SPH-L900 using xda app-developers app
Omg you did the guide for jellybean... Thank you thank you thank you so much man... Gonna try this method later.. I'm just gonna wait till my uncle leaves so I won't be disturbed in the computer
Sent from my H100 using xda app-developers app
so now carrying after my succes with getting this to work i have added the method to systemuiservice now i can click the toggles but they wont launch anything
Ofcours it will work... worked for me....
Sent from my IRIS_501 using xda premium
Hi there! Any way to porting this awesome guide to stock ICS?
ReQuanto said:
Hi there! Any way to porting this awesome guide to stock ICS?
Click to expand...
Click to collapse
yes offfcourse
vu
t u will need to mix some stuff from gB guide with JB guide
Sent from my S500 using xda app-developers app
Tried,took 5 Hours to compile after solving all errors in Stock ROM.... Gonna flash now
EDIT: No more SystemUI....No notification bar+no wallpaper etc
SpaceCaker said:
yes offfcourse
vu
t u will need to mix some stuff from gB guide with JB guide
Click to expand...
Click to collapse
I understand that too much to ask, but could you at leisure to try to port this guide? I tried to do it, but I have some errors in the id's and .smali
ReQuanto said:
I understand that too much to ask, but could you at leisure to try to port this guide? I tried to do it, but I have some errors in the id's and .smali
Click to expand...
Click to collapse
You can do it... Took me a while as well to get it to work on jb, this guide was posted just after 3 of us with same mediatek devices got it to work using same GB guide, all it takes is analyzing the build errors and checking the logcats if you get fc but in the end the errors can just be fixed by a view work arounds... Just don't give up on it :thumbup::thumbup::thumbup:
Sent from my H100 using xda app-developers app
I GOT EVERYTHING WORKING.... ALL THREE TOGGLES WORKING... YOU CAN ADD TOGGLES AS MUCH YOU WANT.... NO MORE FC.....
to get working lots of layout changes needed.... :victory::victory::victory::victory:
my device : mt6577 4.1.1
just took 6 hours....
ss:
Dark4Droid said:
Tried,took 5 Hours to compile after solving all errors in Stock ROM.... Gonna flash now
EDIT: No more SystemUI....No notification bar+no wallpaper etc
Click to expand...
Click to collapse
like me on s2 xwlsw
akash akya said:
I GOT EVERYTHING WORKING.... ALL THREE TOGGLES WORKING... YOU CAN ADD TOGGLES AS MUCH YOU WANT.... NO MORE FC.....
to get working lots of layout changes needed.... :victory::victory::victory::victory:
my device : mt6577 4.1.1
just took 6 hours....
ss:
Click to expand...
Click to collapse
To switch to quick panel view do have to tap on the quick panel button once or twice??? Mine I have to tap on it twice
Sent from my H100 using xda app-developers app
thirdzcee said:
To switch to quick panel view do have to tap on the quick panel button once or twice??? Mine I have to tap on it twice
Sent from my H100 using xda app-developers app
Click to expand...
Click to collapse
yup but it occur rarely once in ten times...
---added more toggles----
akash akya said:
yup but it occur rarely once in ten times...
---added more toggles----
Click to expand...
Click to collapse
Cool,,, mine it happens every time... Haven't added toggles yet or even changed the icons, but I moved the toolbarview and slider to the space view
Sent from my H100 using xda app-developers app
thirdzcee said:
Cool,,, mine it happens every time... Haven't added toggles yet or even changed the icons, but I moved the toolbarview and slider to the space view
View attachment 2123048
Sent from my H100 using xda app-developers app
Click to expand...
Click to collapse
Looks Cool... :good::good:
next goal... enable auto close notification when we click any toggle....
akash akya said:
Looks Cool... :good::good:
next goal... enable auto close notification when we click any toggle....
Click to expand...
Click to collapse
yeah same thing happens with mine, and seems that moving the toolbarview causes fc when the screeb rotates, but statusbar just comes back after tapping on ok button of fc...
akash akya said:
Looks Cool... :good::good:
next goal... enable auto close notification when we click any toggle....
Click to expand...
Click to collapse
i can add that to the toggle code
will do once i acces pc
Sent from my S500 using xda app-developers app
HOW TO PORT LIDROID TOGGLES
TO NON SAMSUNG ICS ROMS
for JB you can go here : http://forum.xda-developers.com/showthread.php?t=2381290
Credit & Thank you :
- @lidroid
- Recognized themer @serajr for some additional toggles created by him.
and we are going to port 21 Lidroid toggles :
( -Lock screen/screen-off action, -Reboot action, -Shutdown action, -Airplane mode, -Bluetoth, -Brightness, -GPS, -Flashlight, -Lockscreen, -MobileData, -Orientation, -ScreenTimeOut, -Sound, -Sync, -Wi-fi, -Wi-fi Hotspot, Battery info, Stay awake, USB Connection mode, USB Debugging, Network mode )
NOTE !! , for CyanogenMod 9 do not follow this guide, you can just flash my mod for CM9 in here http://forum.xda-developers.com/showthread.php?t=2334200
many users from different devices reported work on their phone
ok lets go to Guide:
first of all need some requirement for this MOD-GUIDE
REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk file
- notepad++
- Tool for decompiling, : apkmanager/apktool/Virtous/apkmultitools/ or else
1. Decomple SystemUI.apk
- res/values/ids.xml
add this to the end :
Code:
<item type="id" name="quickpanel_button">false</item>
<item type="id" name="quickpanel_button_image">false</item>
<item type="id" name="quickpanel_button_text">false</item>
<item type="id" name="quickpanel_button_indic">false</item>
<item type="id" name="adi_quickpanel">false</item>
- res/values/strings.xml
add this to the end :
Code:
<string name="quickpanel_wifi_text">WiFi</string>
<string name="quickpanel_dc_text">Data</string>
<string name="quickpanel_network_mode_text">Network</string>
<string name="quickpanel_sound_text">Ring</string>
<string name="quickpanel_sound_vibration_text">Ring Vibrate</string>
<string name="quickpanel_silent_text">Silent</string>
<string name="quickpanel_vibration_text">Vibration</string>
<string name="quickpanel_rotation_text">Orientation</string>
<string name="quickpanel_bluetooth_text">Bluetooth</string>
<string name="quickpanel_gps_text">GPS</string>
<string name="quickpanel_autosync_text">Auto Sync</string>
<string name="quickpanel_brightness_text">Brightness</string>
<string name="quickpanel_screen_timeout_text">Timeout</string>
<string name="quickpanel_lockscreen_text">Lockscreen</string>
<string name="quickpanel_airplane_text">Airplane</string>
<string name="quickpanel_flashlight_text">Flashlight</string>
<string name="quickpanel_reboot_text">Reboot</string>
<string name="quickpanel_shutdown_text">Shutdown</string>
<string name="airplane_mode">In Flight mode</string>
<string name="shutdown_confirm">Your phone will shut down.</string>
<string name="screen_timeout_seconds">Screen timeout set to: %d second(s)</string>
<string name="screen_timeout_minutes">Screen timeout set to: %d minute(s)</string>
<string name="screen_timeout_hours">Screen timeout set to: %d hour(s)</string>
<string name="hamster">Phone Options</string>
<string name="yes">OK</string>
<string name="no">Cancel</string>
<string name="reboot">Reboot</string>
<string name="reboot_recovery">CWM recovery</string>
<string name="reboot_download">Download</string>
<string name="quickpanel_usb_debugging_text">USB Debugging</string>
<string name="quickpanel_usb_connection_mode_text">USB Conn. Mode</string>
<string name="quickpanel_usb_current_mtp_title">Current mode: MPT</string>
<string name="quickpanel_usb_current_msc_title">Current mode: MSC</string>
<string name="usb_mpt_mode">MPT - Media Transfer</string>
<string name="usb_msc_mode">MSC - Mass Storage</string>
<string name="quickpanel_stay_awake_plugged_text">Stay Awake</string>
<string name="quickpanel_battery_info_text">Battery Info</string>
<string name="battery_info_info">Battery Information</string>
<string name="battery_info_usage">Battery Power Usage</string>
<string name="quickpanel_wifi_ap_text">Wifi AP</string>
<string name="quickpanel_lockscreen_action_text">Lock Now</string>
- res/layout/status_bar_expanded.xml
add the red code :
MEDIATEK device
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.ExpandedView android:orientation="vertical" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/toolBarSwitchPanel" android:background="@drawable/notification_header_bg" android:layout_width="fill_parent" android:layout_height="103.0dip">
<include layout="@layout/zzz_toolbar_view" />
<include layout="@layout/zzz_toolbar_indicator" />
</FrameLayout>
<View android:background="@drawable/status_bar_hr" android:layout_width="fill_parent" android:layout_height="2.0dip" />
<RelativeLayout android:background="@drawable/notification_header_bg" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="52.0dip">
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="left|center" android:id="@id/date" android:paddingLeft="16.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_alignParentLeft="true" />
<ImageView android:id="@id/settings_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:layout_toRightOf="@id/date" android:contentDescription="@string/accessibility_settings_button" />
<ImageView android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_clear" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
</RelativeLayout>
[COLOR="Red"]<com.lidroid.systemui.quickpanel.PowerWidget android:id="@id/adi_quickpanel" android:layout_width="fill_parent" android:layout_height="wrap_content" />[/COLOR]
<View android:background="@drawable/status_bar_hr" android:layout_width="fill_parent" android:layout_height="2.0dip" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@*android:style/TextAppearance.Large" android:gravity="left" android:layout_gravity="top" android:id="@id/noNotificationsTitle" android:padding="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_height" />
</LinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</com.android.systemui.statusbar.phone.ExpandedView>
AOSP / XPERIA
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.ExpandedView android:orientation="vertical" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<RelativeLayout android:background="@drawable/notification_header_bg" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="52.0dip">
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="left|center" android:id="@id/date" android:paddingLeft="16.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_alignParentLeft="true" />
<ImageView android:id="@id/settings_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:layout_toRightOf="@id/date" android:contentDescription="@string/accessibility_settings_button" />
<ImageView android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_clear" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
</RelativeLayout>
[COLOR="Red"]<com.lidroid.systemui.quickpanel.PowerWidget android:id="@id/adi_quickpanel" android:layout_width="fill_parent" android:layout_height="wrap_content" />[/COLOR]
<View android:background="@drawable/status_bar_hr" android:layout_width="fill_parent" android:layout_height="2.0dip" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@*android:style/TextAppearance.Large" android:gravity="left" android:layout_gravity="top" android:id="@id/noNotificationsTitle" android:padding="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_height" />
</LinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</com.android.systemui.statusbar.phone.ExpandedView>
- smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
add the blue code :
Code:
.field mPixelFormat:I
.field mPositionTmp:[I
.field mPostCollapseCleanup:Ljava/lang/Runnable;
[COLOR="Blue"].field mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;[/COLOR]
.field private mPreviousConfigFontScale:F
.field mQueueLock:Ljava/lang/Object;
.field private mRecentTasksLoader:Lcom/android/systemui/recent/RecentTasksLoader;
NEXT still in the same smali
for MEDIATEK devices
find this method
Code:
# virtual methods
.method public addIcon(Ljava/lang/String;IILcom/android/internal/statusbar/StatusBarIcon;)V
scroll down and add the blue code
Code:
invoke-virtual {v1, v0, p3, v2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
[COLOR="Blue"]iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->updateWidget()V[/COLOR]
.line 601
return-void
.end method
next find this method :
Code:
.method protected makeStatusBarView()Landroid/view/View;
scroll down and add the blue code
Code:
const [COLOR="Red"]v11[/COLOR], 0x7f0e0041
invoke-virtual {[COLOR="Red"]v2, v11[/COLOR]}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object [COLOR="Red"]v11[/COLOR]
check-cast [COLOR="Red"]v11[/COLOR], Landroid/widget/ScrollView;
iput-object [COLOR="Red"]v11, p0[/COLOR], Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;
[COLOR="Blue"]const [COLOR="Red"]v11[/COLOR], 0x7f0e0096
invoke-virtual {[COLOR="Red"]v2, v11[/COLOR]}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object [COLOR="Red"]v11[/COLOR]
check-cast [COLOR="Red"]v11[/COLOR], Lcom/lidroid/systemui/quickpanel/PowerWidget;
iput-object [COLOR="Red"]v11, p0[/COLOR], Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;[/COLOR]
.line 375
new-instance v11, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
invoke-direct {v11, p0, v1, v6}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;Landroid/content/Context;Landroid/view/View;)V
iput-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mTicker:Lcom/android/systemui/statusbar/phone/Ticker;
pay attention on the red code in the part of blue code, it has to be written the same like above it/previous part
and also every mediatek device may be have diferent code,. see my another example in here : http://forum.xda-developers.com/showpost.php?p=44095535&postcount=7
next still in the same method, scroll down , and add the blue code
Code:
const-string v11, "android.intent.action.SIM_INFO_UPDATE"
invoke-virtual {v9, v11}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 450
iget-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSIMInfoReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v1, v11, v9}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
[COLOR="Blue"]iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V[/COLOR]
.line 454
return-object v6
.line 312
.end local v3 #filter:Landroid/content/IntentFilter;
.end local v4 #indicator:Lcom/android/systemui/statusbar/toolbar/ToolBarIndicator;
.end local v6 #sb:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.end local v8 #signalCluster:Lcom/android/systemui/statusbar/SignalClusterViewGemini;
.end local v9 #simInfoIntentFilter:Landroid/content/IntentFilter;
.end local v10 #tickerView:Lcom/android/systemui/statusbar/phone/TickerView;
Click to expand...
Click to collapse
for AOSP / XPERIA
find this method
Code:
# virtual methods
.method public addIcon(Ljava/lang/String;IILcom/android/internal/statusbar/StatusBarIcon;)V
scroll down and add the blue code
Code:
const-string v8, "android.intent.action.SCREEN_OFF"
invoke-virtual {v2, v8}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 373
iget-object v8, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v0, v8, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
[COLOR="Blue"]iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mExpandedView:Lcom/android/systemui/statusbar/phone/ExpandedView;
const v6, 0x7f0e0096
invoke-virtual {v5, v6}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Lcom/lidroid/systemui/quickpanel/PowerWidget;
iput-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v6}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V[/COLOR]
.line 375
return-object v4
.line 306
.end local v2 #filter:Landroid/content/IntentFilter;
.end local v6 #signalCluster:Lcom/android/systemui/statusbar/SignalClusterView;
.end local v7 #tickerView:Lcom/android/systemui/statusbar/phone/TickerView;
:catch_0
move-exception v8
goto/16 :goto_0
.end method
Click to expand...
Click to collapse
CONTINUE TO POST #2
2. Download source_ICS_Lidroid_SytemUI.apk
Exstract it and merge to your decompiled SystemUI.apk
NOTE !! if your device has arrays.xml in res/values/here
please do check again the source_ICS_Lidroid_SytemUI.apk and adapt the arrays.xml code in it with yours
done and Recompile your SystemUI.apk
3. Decompile the newly Recompiled APK again and go to
res/values/public.xml
open it with Notepad++
leave it, but keep it open
next
- smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
with Notepad++ , control+F
MEDIATEK DEVICES
Code:
iput-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;
const v11, [COLOR="Red"]0x7f0e0096[/COLOR]
invoke-virtual {v2, v11}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v11
check-cast v11, Lcom/lidroid/systemui/quickpanel/PowerWidget;
iput-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
.line 375
new-instance v11, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
Click to expand...
Click to collapse
AOSP/XPERIA
Code:
invoke-virtual {v0, v8, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mExpandedView:Lcom/android/systemui/statusbar/phone/ExpandedView;
const v6, [COLOR="Red"]0x7f0e0096[/COLOR]
invoke-virtual {v5, v6}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Lcom/lidroid/systemui/quickpanel/PowerWidget;
iput-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v6}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V
.line 375
return-object v4
Click to expand...
Click to collapse
Replace 0x7f0e0096 with the new ids from second decompiled public.xml
Code:
<public type="id" name="[COLOR="Blue"]adi_quickpanel[/COLOR]" id="[COLOR="Red"]0x7fxxxxxx[/COLOR]" />
NEXT CONTINUE IN POST #3
4. Download ICS_Lidroid_public.xml
and open it with Notepad++
so now you have two public.xml which is opened in the Notepad++
1. second decompiled public.xml
2. ICS_Lidroid_public.xml
- go to , smali/com/lidroid/systemui/quickpanel/here...
there are a lot of smalis there
FIND ALL IDS in all that smalis THAT'S STARTED WITH
Code:
[COLOR="Red"]0x7fxxxxxx[/COLOR]
EXAMPLE :
AirplaneButton.smali
find this :
Code:
const v0, [COLOR="Red"]0x7f080089[/COLOR]
find 0x7f080089 in ICS_Lidroid_public.xml
Code:
<public type="string" name="quickpanel_lockscreen_text" id="0x7f080088" />
<public type="[COLOR="Blue"]string[/COLOR]" name="[COLOR="Green"]quickpanel_airplane_text[/COLOR]" id="[COLOR="Red"]0x7f080089[/COLOR]" />
<public type="string" name="quickpanel_flashlight_text" id="0x7f08008a" />
we find that 0x7f080089 is for string .... quickpanel_airplane_text
Next, find string .... quickpanel_airplane_text new ids in your
public.xml of second decompiled SystemUI.apk
Code:
<public type="[COLOR="Blue"]string[/COLOR]" name="[COLOR="Green"]quickpanel_airplane_text[/COLOR]" id="[COLOR="Red"]0x7fxxxxxx[/COLOR]" />
change the ids in AirplaneButton.smali with your new ids from public.xml of second decompiled systemui.apk.
Do it too, to all
Code:
[COLOR="Red"]0x7fxxxxxx[/COLOR]
in all smalis in the lidroid folder.
6. Download this QuickPanel_Settings.apk and push to system/app with right permission
Done
Additional Guide
[HOWTO] Enable 2G/3G, 2G, 3G Toggle
only for devices that support 3G/HSDPA
Go to this thread [HOWTO] Enable 2G/3G Toggle from Statusbar/Launcher
But don't follow the lidroid step, coz we have it already
or Without patching Phone.apk , but with editing Lidroid and Android.manifest
go here : http://forum.xda-developers.com/showpost.php?p=40971646&postcount=30
[Porting Guide][ICS] Mod 4.2 Statusbar tilesview (TABS, Slider, Flip Anim, Lidroid )
http://forum.xda-developers.com/showthread.php?t=2423398
Guide How to full screen Expanded Pulldown JB style
http://forum.xda-developers.com/showthread.php?p=45130177#post45130177
I think that should be done before step 2 because I have the error code in PhoneStatusBar.smali 0x7f0e0096 in step 1
{
"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"
}
I made 2 previous steps then get the code received from <public type="id" name="adi_quickpanel" id="0x7fxxxxxx" /> instead PhoneStatusBar.smali then recompile and it's ok
My device is Lenovo A390
Sorry for my bad English!
Gửi từ Lenovo A390_ROW của tôi bằng cách sử dụng Tapatalk 2
I get errors while recompiling the apk. Here's the full error http://pastebin.com/EKEVsGQh. I'm attaching my SystemUI and framework-res for reference. Please do not just mod it and give it to me, explain if you can so I can know what exactly is the problem
SystemUI.apk
framework-res.apk
try this @grvrulz
add the blue code, but don't add <-- adi_quickpanel
Code:
[COLOR="Red"]const v13, 0x7f0e0042
invoke-virtual {v3, v13}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v13
check-cast v13, Landroid/widget/ScrollView;
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;[/COLOR]
[B]blue lines below is basically a copy from above red lines[/B]
[COLOR="Blue"]const v13, 0x7f0e0042 <-- adi_quickpanel
invoke-virtual {v3, v13}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v13
check-cast v13, Lcom/lidroid/systemui/quickpanel/PowerWidget;
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;[/COLOR]
dafuqChicken said:
I think that should be done before step 2 because I have the error code in PhoneStatusBar.smali 0x7f0e0096 in step 1
View attachment 2152085
I made 2 previous steps then get the code received from <public type="id" name="adi_quickpanel" id="0x7fxxxxxx" /> instead PhoneStatusBar.smali then recompile and it's ok
View attachment 2152086
My device is Lenovo A390
Sorry for my bad English!
Gửi từ Lenovo A390_ROW của tôi bằng cách sử dụng Tapatalk 2
Click to expand...
Click to collapse
oke , how is the result now ?, is there any I can help
How to Port Lidroid Toggles to CM7
Thanks
x-dira said:
How to Port Lidroid Toggles to CM7
Thanks
Click to expand...
Click to collapse
I cannot experimenting on CM7 , coz we don't have CM7 roms on my device,.
but CM7 is Gingerbread, so I think it will be same guide like for Stok GB too
Still doesn't work
Adi Aisiteru Reborn said:
try this @grvrulz
add the blue code, but don't add <-- adi_quickpanel
Code:
[COLOR="Red"]const v13, 0x7f0e0042
invoke-virtual {v3, v13}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v13
check-cast v13, Landroid/widget/ScrollView;
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;[/COLOR]
[B]below is a copied from above[/B]
[COLOR="Blue"]const v13, 0x7f0e0042 <-- adi_quickpanel
invoke-virtual {v3, v13}, Lcom/android/systemui/statusbar/phone/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v13
check-cast v13, Lcom/lidroid/systemui/quickpanel/PowerWidget;
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;[/COLOR]
Click to expand...
Click to collapse
Thank you. I completed the whole guide with this, but the quickpanel doesn't show up. I tried rebooting a couple of times and placing the quickpanel widget at different points in the layout, but it still doesn't show up. I took a logcat with 'adb logcat -d > logcat2.txt' and I'm attaching it here for reference.
Yeah! I have done!!
Thank you for this mod!
Can you help me remove it?
Gửi từ Lenovo A390_ROW của tôi bằng cách sử dụng Tapatalk 2
grvrulz said:
Thank you. I completed the whole guide with this, but the quickpanel doesn't show up. I tried rebooting a couple of times and placing the quickpanel widget at different points in the layout, but it still doesn't show up. I took a logcat with 'adb logcat -d > logcat2.txt' and I'm attaching it here for reference.
Click to expand...
Click to collapse
can you attach me your modded PhoneStatusBar.smali ?
dafuqChicken said:
Can you help me remove it?
View attachment 2153404
Gửi từ Lenovo A390_ROW của tôi bằng cách sử dụng Tapatalk 2
Click to expand...
Click to collapse
Code:
android:layout_height="[COLOR="Red"]0.0dip[/COLOR]"
Adi Aisiteru Reborn said:
Additional Guide
[HOWTO] Enable 2G/3G, 2G, 3G Toggle
only for devices that support 3G/HSDPA
Go to this thread [HOWTO] Enable 2G/3G Toggle from Statusbar/Launcher
But don't follow the lidroid step, coz we have it already
or Without patching Phone.apk , but with editing Lidroid and Android.manifest
go here : http://forum.xda-developers.com/showpost.php?p=40971646&postcount=30
Click to expand...
Click to collapse
Additional Guide added
Adi Aisiteru Reborn said:
can you attach me your modded PhoneStatusBar.smali ?
Click to expand...
Click to collapse
Here's my Phonestatusbar.smali. It's renamed because xda doesn't accept smali files as attachments(but you probably knew it already )
grvrulz said:
Here's my Phonestatusbar.smali. It's renamed because xda doesn't accept smali files as attachments(but you probably knew it already )
Click to expand...
Click to collapse
Code:
const-string v13, "file"
invoke-virtual {v6, v13}, Landroid/content/IntentFilter;->addDataScheme(Ljava/lang/String;)V
.line 473
move-object/from16 v0, p0
iget-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaEjectBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v2, v13, v6}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
[COLOR="Blue"]iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V[/COLOR]
.line 475
return-object v8
.line 320
.end local v4 #filter:Landroid/content/IntentFilter;
.end local v5 #indicator:Lcom/android/systemui/statusbar/toolbar/ToolBarIndicator;
.end local v6 #mediaEjectFilter:Landroid/content/IntentFilter;
.end local v8 #sb:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.end local v10 #signalCluster:Lcom/android/systemui/statusbar/SignalClusterViewGemini;
.end local v11 #simInfoIntentFilter:Landroid/content/IntentFilter;
.end local v12 #tickerView:Lcom/android/systemui/statusbar/phone/TickerView;
:cond_1
const v13, 0x7f030020
const/4 v14, 0x0
invoke-static {v2, v13, v14}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v8
check-cast v8, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.restart local v8 #sb:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
goto/16 :goto_0
.line 337
:catch_0
move-exception v13
goto/16 :goto_1
.end method
you havn't add the blue code
Adi Aisiteru Reborn said:
Code:
const-string v13, "file"
invoke-virtual {v6, v13}, Landroid/content/IntentFilter;->addDataScheme(Ljava/lang/String;)V
.line 473
move-object/from16 v0, p0
iget-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaEjectBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v2, v13, v6}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
[COLOR="Blue"]iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V[/COLOR]
.line 475
return-object v8
.line 320
.end local v4 #filter:Landroid/content/IntentFilter;
.end local v5 #indicator:Lcom/android/systemui/statusbar/toolbar/ToolBarIndicator;
.end local v6 #mediaEjectFilter:Landroid/content/IntentFilter;
.end local v8 #sb:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.end local v10 #signalCluster:Lcom/android/systemui/statusbar/SignalClusterViewGemini;
.end local v11 #simInfoIntentFilter:Landroid/content/IntentFilter;
.end local v12 #tickerView:Lcom/android/systemui/statusbar/phone/TickerView;
:cond_1
const v13, 0x7f030020
const/4 v14, 0x0
invoke-static {v2, v13, v14}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v8
check-cast v8, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
.restart local v8 #sb:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
goto/16 :goto_0
.line 337
:catch_0
move-exception v13
goto/16 :goto_1
.end method
you havn't add the blue code
Click to expand...
Click to collapse
After adding this, I get the error
Code:
[8180,1] The register number must be less than v16
I also tried adding
Code:
move-object/from16 v0, p0
just before that line but it's still the same..
grvrulz said:
After adding this, I get the error
Code:
[8180,1] The register number must be less than v16
I also tried adding
Code:
move-object/from16 v0, p0
just before that line but it's still the same..
Click to expand...
Click to collapse
try to use PhoneStatusBar.smali code for AOSP/XPERIA from OP,.
or for Touchwizz in here http://forum.xda-developers.com/showthread.php?t=1725411
but change
Code:
Lcom/wanam/systemui/quickpanel/PowerWidget;
to :
Code:
Lcom/lidroid/systemui/quickpanel/PowerWidget;
Who want 4.2 quick panel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Credits :
* 4.2 quickpanel was originally made by RT @SpaceCaker Here without him no-quickpanel
* Wonderful guide for AOSP ROMs about Lidroid... which helped me lot, its by @Adi Aisiteru Reborn his guide here
* @XDA.AGM for this... toggles in panel view was not possible if didnt supported by giving his mod
* Lidroid Toggls for samsung Lidroid & for jb Wanam
* Lidroid Toggls port for non-samsung roms is made by Recognized themer @serajr for grid view
* @bsuhas for new method for quick panel mod
* My friend @BOND1987 is also encouraged me
* My friend @Akhilendra1711 for animate collapse methods
* My friend @khan_frd2002 for helping me in updating thread
* Tested with MTK 4.1.1 must work with AOSP based 4.1.1 roms *
Q : there is already a guide for quickpanel and lidroid, why you made new thread ??
A : well, combining both is different from doing them separately... also lidroid files and quick panel files i have given is different from given in those guides...
more screenshots :
If you have any questions or suggestions feel free to ask... If you get any part working, post back with screenshots and device name
Things needed :
* You MUST know how to decompile & compile .jar files and .apk files
* Text editor
* SystemUI.apk
PART 1 : setup 4.2 quick panel view
if you already followed guide by Spaecaker and got it working, skip this step and follow 2nd step
Step 1 : decompile systemui.apk and open ststus_bar.xml... for MTK devices its gemini_status_bar.xml..... find
Code:
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
add this code below it..
Code:
<com.android.systemui.statusbar.StatusBarServiceLRPull android:layout_width="fill_parent" android:layout_height="wrap_content">
find
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="2.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
add this code above it..
Code:
</com.android.systemui.statusbar.StatusBarServiceLRPull>
Step 2 : Open status_bar_expanded (for MTK gemini_status_bar_expanded.xml),
Delete this line :
Code:
<include android:layout_width="fill_parent" android:layout_height="@dimen/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
find
Code:
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap">
add this line above it..
Code:
<com.spacecaker.SpaceLayOut android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include layout="@layout/quickpanel_quick_settings_space" />
</LinearLayout>
find, this
Code:
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="115.0dip" android:layout_marginBottom="8.0dip" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:layout_gravity="bottom" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
</FrameLayout>
add this lines below it
Code:
</com.spacecaker.SpaceLayOut>
find :
Code:
<com.spacecaker.SpaceLayOut android:layout_width="fill_parent"
add this above it :
Code:
<LinearLayout android:orientation="vertical" 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/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
</LinearLayout>
Step 3 :open StatusBar_Expanded_Header.xml search for
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" />
add this below it :
Code:
<com.spacecaker.ButtonBurst android:id="@id/spacebuttonburst" android:layout_width="30.0dip" android:layout_height="30.0dip" android:layout_alignParentRight="true" />
Step 4 : open res/values/ids.xml add these at the end
Code:
<item type="id" name="spacebuttonburst">false</item>
save all and add these files in corresponding folders :
Download files here
Step 5 : compile and decompile compiled systemui.apk , open smali/com/spacecaker/ButtonBurst.smali
find const v3, 0x7f020180 replce with your id found in public.xml, search for <public type="drawable" name="btn_toggles_normal" next to it you will find id..
same way find const v3, 0x7f02017f replace id found in public.xml, search for <public type="drawable" name="btn_tg"
Step 6 : open smali/com/android/systemui/SystemUIService.smali
add this at the end :
Code:
.method public onClickPanelMethod(Landroid/view/View;)V
.locals 11
.parameter "v"
.prologue
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
invoke-virtual {p1}, Landroid/view/View;->getTag()Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/String;
:try_start_0
const-string v3, ","
invoke-virtual {v5, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v6
const/4 v4, 0x0
aget-object v4, v6, v4
const/4 v7, 0x1
aget-object v7, v6, v7
invoke-virtual {v0, v4, v7}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const/high16 v2, 0x1000
invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v0
invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:goto_0
const-string v1, "statusbar"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/StatusBarManager;
invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapse()V
return-void
:catch_0
move-exception v0
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
const-string v10, "Failed to execute action :\n"
invoke-virtual {v10, v5}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
const/16 v9, 0x7d0
invoke-static {p0, v5, v9}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v8
invoke-virtual {v8}, Landroid/widget/Toast;->show()V
goto :goto_0
.end method
Step 7 : save and compile.... flash/push test whether its working before adding toggles...
how to add new toggles to launch apps
open quick quickpanel_quick_settings_space.xml
to add toggle to launch app, just add
Code:
<FrameLayout android:id="@id/settings_button" android:tag="[COLOR="Red"]com.android.settings,com.android.settings.Settings$AudioProfileSettingsActivity[/COLOR]" android:background="@drawable/suvi_border_background" android:layout_width="120.0px" android:layout_height="100.0px" android:layout_weight="1.0" android:onClick="onSuviClickGenericFailOver">
note : the red code corresponds to package,activity name...
to get activity and package name, open app you want to add AndroidManifeast.xml you will get package name with package= tag
ex : for settings
Code:
<manifest android:sharedUserId="android.uid.system" android:versionCode="16" android:versionName="4.1.1-eng..1364989609" [COLOR="red"]package="com.android.settings"[/COLOR] coreApp="true"
activity name can be found by searching activity tag ex: for Wifi settings,
Code:
<activity android:label="@string/wifi_settings" [COLOR="red"]android:name="Settings$WifiSettingsActivity"[/COLOR] android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation|screenSize" android:parentActivityName="Settings">
finally it will look like :
Code:
<FrameLayout android:id="@id/settings_button" android:tag="[COLOR="Red"]com.android.settings,com.android.settings.Settings$WifiSettingsActivity[/COLOR]" android:background="@drawable/[COLOR="Blue"]xyz[/COLOR]" android:layout_width="120.0px" android:layout_height="100.0px" android:layout_weight="1.0" android:onClick="onSuviClickGenericFailOver">
also put corresponding image in drawable here xyz
PART 2 : add lidroid toggles
PART 2 : add Lidroid Toggles to QuickPanel
You must have working Quick panel view before trying this mod... follow first step to add quick panel view
You may also try.... @BOND1987 guide here for them who have already implimented lidroid in normal view thanks to him...
Code:
step 1 : decompile systemUI.apk, merge the files i have given...
goto : res/values/ids.xml add these at the end :
Code:
<item type="id" name="power_widget_button_text">false</item>
<item type="id" name="power_widget_button_indic">false</item>
<item type="id" name="power_widget">false</item>
<item type="id" name="automatic">false</item>
<item type="id" name="power_widget_button">false</item>
<item type="id" name="power_widget_button_image">false</item>
goto : res/values/strings.xml add these at the end
Code:
<string name="usb_connected_txt">USB connected</string>
<string name="quickpanel_wifi_text">Wi-Fi</string>
<string name="quickpanel_dc_text">Data</string>
<string name="quickpanel_network_mode_text">Network</string>
<string name="quickpanel_sound_text">Sound</string>
<string name="quickpanel_sound_vibration_text">Sound vibration</string>
<string name="quickpanel_silent_text">Silent</string>
<string name="quickpanel_vibration_text">Vibration</string>
<string name="quickpanel_rotation_text">Rotation</string>
<string name="quickpanel_bluetooth_text">Bluetooth</string>
<string name="quickpanel_gps_text">GPS</string>
<string name="quickpanel_autosync_text">Auto Sync</string>
<string name="quickpanel_brightness_text">Brightness</string>
<string name="quickpanel_screen_timeout_text">Timeout</string>
<string name="quickpanel_lockscreen_text">Lockscreen</string>
<string name="quickpanel_airplane_text">Flightmode</string>
<string name="quickpanel_flashlight_text">Flashlight</string>
<string name="quickpanel_reboot_text">Reboot</string>
<string name="quickpanel_shutdown_text">Shutdown</string>
<string name="airplane_mode">In Flight mode</string>
<string name="shutdown_confirm">Your phone will shut down.</string>
<string name="screen_timeout_seconds">Screen timeout set to: %d second(s)</string>
<string name="screen_timeout_minutes">Screen timeout set to: %d minute(s)</string>
<string name="screen_timeout_hours">Screen timeout set to: %d hour(s)</string>
<string name="hamster">Phone Options</string>
<string name="yes">OK</string>
<string name="no">Cancel</string>
<string name="reboot">Reboot</string>
<string name="reboot_recovery">Recovery</string>
<string name="reboot_download">Download</string>
<string name="quickpanel_nfc_text">NFC</string>
<string name="quickpanel_wifi_ap_text">Wifi AP</string>
<string name="quickpanel_lockscreen_action_text">Lock Now</string>
<string name="quickpanel_androidbeam_text">Android Beam</string>
<string name="brightness_settings_automatic">AUTO</string>
<string name="brightness_settings_title" />
<string name="quickpanel_usb_debugging_text">USB Debugging</string>
<string name="quickpanel_usb_connection_mode_text">USB Conn. Mode</string>
<string name="quickpanel_usb_current_mtp_title">Current mode: MPT</string>
<string name="quickpanel_usb_current_msc_title">Current mode: MSC</string>
<string name="usb_mpt_mode">MPT - Media Transfer</string>
<string name="usb_msc_mode">MSC - Mass Storage</string>
<string name="quickpanel_stay_awake_plugged_text">Stay Awake</string>
<string name="quickpanel_battery_info_text">Battery Info</string>
<string name="battery_info_info">Battery Information</string>
<string name="battery_info_usage">Battery Power Usage</string>
step 2 : open smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
find :
Code:
.field mPostCollapseCleanup:Ljava/lang/Runnable;
add this below it :
Code:
.field mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
Next find this method
Code:
# virtual methods
.method public addIcon(Ljava/lang/String;IILcom/android/internal/statusbar/StatusBarIcon;)V
and Add the blue code above .return-void
Code:
invoke-virtual {v1, v0, p3, v2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
[COLOR="Blue"] iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->updateWidget()V[/COLOR]
.line 826
return-void
.end method
step 3 : find line similer to these
Code:
new-instance v11, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
invoke-direct {v11, p0, v2, v12}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;Landroid/content/Context;Landroid/view/View;)V
iput-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mTicker:Lcom/android/systemui/statusbar/phone/Ticker;
above it you will see some thing like this,
Code:
iget-object [COLOR="red"]v11[/COLOR], p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;
const/4[COLOR="red"] v12[/COLOR], 0x0
invoke-virtual {[COLOR="red"]v11, v12[/COLOR]}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V
red lines may be different i your case..
add blue lines to give it the form , edit red colored variables to match using green line:
Code:
iget-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrollView:Landroid/widget/ScrollView;
const/4 v12, 0x0
[COLOR="SeaGreen"] invoke-virtual {[COLOR="red"]v11, v12[/COLOR]}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V[/COLOR]
[COLOR="Blue"] iget-object [COLOR="red"]v11[/COLOR], p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
.line 444
const[COLOR="red"] v12[/COLOR], 0x7f0c00e9
invoke-virtual {[COLOR="Red"]v11, v12[/COLOR]}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
.line 445
move-result-object [COLOR="red"]v11[/COLOR]
check-cast [COLOR="red"]v11[/COLOR], Lcom/lidroid/systemui/quickpanel/PowerWidget;
iput-object [COLOR="red"]v11[/COLOR], p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;[/COLOR]
.line 530
new-instance v11, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
iget-object v12, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
invoke-direct {v11, p0, v2, v12}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;Landroid/content/Context;Landroid/view/View;)V
iput-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mTicker:Lcom/android/systemui/statusbar/phone/Ticker;
step 4: find lines similer to this :
Code:
iget-object v11, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mDisplayMetrics:Landroid/util/DisplayMetrics;
iget v11, v11, Landroid/util/DisplayMetrics;->heightPixels:I
iget-object v12, p0, Lcom/android/systemui/SystemUI;->mContext:Landroid/content/Context;
add these line above
Code:
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v1}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V
step 5: open quickpanel_quick_settings_space.xml
edit it to look like this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
[COLOR="Red"] <com.lidroid.systemui.quickpanel.PowerWidget android:layout_marginTop="50.0dip" android:id="@id/power_widget" android:paddingTop="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" /> [/COLOR]
<ScrollView android:id="@id/scroll" android:scrollbars="none" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0.0dip" android:overScrollMode="never">
compile and decompile to get public ids..
Step 6: Open : res/values/public.xml keep it open, then open com/android/systemui/statusbar/phone/PhoneStatusBar.smali
search : 0x7f0c00e9 replece with id you got with <public type="id" name="power_widget"
open all smali found in smali/com/lidroid/systemui/quickpanel/
search for
Code:
0x7f
find the public name using my public.txt given
search for that name in your public.xml replace id in that smali...
step 7: Edit AndroidManifeast.xml to look like this, add red code,
Code:
[COLOR="red"]<manifest android:sharedUserId="android.uid.system" android:process="system"[/COLOR] android:versionCode="16" android:versionName="4.1.1-eng..1364989609" package="com.android.systemui" coreApp="true"
xmlns:android="http://schemas.android.com/apk/res/android">
[COLOR="red"]<uses-permission android:name="android.permission.CAMERA" />[/COLOR]
save all and compile, sign your systemui.apk as you have modified manifeast
Step 8: push/flash new systemui along with idroid_settings.apk given...
PART 3 : ADD VOLUME SLIDER TO QUICK PANEL :
This doesn't depend on Lidroid, any one with quick panel working may try it.... :highfive:
If your smali don't have some lines i mentioned... post your smali
SS :
lets proceed,
step 1 : Open res/values/ids.xml
add these below :
Code:
<item type="id" name="quickpanel_slider_ringer_volume">false</item>
<item type="id" name="quickpanel_slider_notification_volume">false</item>
<item type="id" name="quickpanel_slider_voice_call_volume">false</item>
<item type="id" name="quickpanel_slider_media_volume">false</item>
<item type="id" name="quickpanel_slider_alarm_volume">false</item>
step 2 : Open res/values/strings.xml
add these below :
Code:
<string name="quickpanel_slider_ringer_volume_text">Ringtone & notifications</string>
<string name="quickpanel_slider_notification_volume_text">Notifications</string>
<string name="quickpanel_slider_voice_call_volume_text">Voice calls</string>
<string name="quickpanel_slider_media_volume_text">Music, video, games, & other media</string>
<string name="quickpanel_slider_alarm_volume_text">Alarms</string>
Open styles.xml add these below :
Code:
<style name="TextAppearance" />
<style name="TextAppearance.QuickPanel" parent="@style/TextAppearance" />
<style name="TextAppearance.QuickPanel.TextStyle" parent="@style/TextAppearance.QuickPanel">
<item name="android:textSize">12.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffcccccc</item>
<item name="android:ellipsize">marquee</item>
<item name="android:paddingLeft">6.0dip</item>
<item name="android:paddingRight">6.0dip</item>
<item name="android:fadingEdge">horizontal</item>
<item name="android:maxLines">2</item>
<item name="android:singleLine">false</item>
<item name="android:drawablePadding">12.0dip</item>
<item name="android:textAllCaps">true</item>
</style>
step 3 : Open res/layout/quickpanel_quick_settings_space.xml
compare your code with mine to get layout as in screenshot...
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.lidroid.systemui.quickpanel.PowerWidget android:id="@id/adi_widget" android:paddingTop="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="50.0dip" />
<TextView android:textSize="14.0dip" android:textStyle="bold" android:gravity="center" android:layout_gravity="top|center" android:background="#60000000" android:layout_width="fill_parent" android:layout_height="25.0dip" android:layout_marginTop="10.0dip" android:layout_marginBottom="10.0dip" android:text="Volume Panel" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<ScrollView android:id="@id/scroll" android:scrollbars="none" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0.0dip" android:layout_marginBottom="30.0dip" android:overScrollMode="never">
<LinearLayout android:gravity="left" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10.0dip">
<FrameLayout android:background="#00ffffff" android:padding="3.0dip" android:layout_width="fill_parent" android:layout_height="65.0dip">
<TextView android:gravity="left" android:layout_gravity="top|left|center" android:layout_width="wrap_content" android:layout_height="15.0dip" android:layout_marginTop="0.0dip" android:layout_marginBottom="10.0dip" android:text="@string/quickpanel_slider_media_volume_text" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<LinearLayout android:layout_gravity="bottom|center" android:orientation="horizontal" android:padding="10.0dip" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="2.0dip">
<ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@*android:drawable/ic_media_ff" android:scaleType="center" />
<SeekBar android:id="@id/quickpanel_slider_media_volume" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_centerVertical="true" />
</LinearLayout>
</FrameLayout>
<FrameLayout android:background="#00ffffff" android:padding="3.0dip" android:layout_width="fill_parent" android:layout_height="65.0dip">
<TextView android:gravity="left" android:layout_gravity="top|left|center" android:layout_width="wrap_content" android:layout_height="15.0dip" android:layout_marginTop="0.0dip" android:layout_marginBottom="10.0dip" android:text="@string/quickpanel_slider_ringer_volume_text" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<LinearLayout android:layout_gravity="bottom|center" android:orientation="horizontal" android:padding="10.0dip" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="2.0dip">
<ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@*android:drawable/ic_audio_phone" android:scaleType="center" />
<SeekBar android:id="@id/quickpanel_slider_ringer_volume" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_centerVertical="true" />
</LinearLayout>
</FrameLayout>
<FrameLayout android:background="#00ffffff" android:padding="3.0dip" android:layout_width="fill_parent" android:layout_height="65.0dip">
<TextView android:gravity="left" android:layout_gravity="top|left|center" android:layout_width="wrap_content" android:layout_height="15.0dip" android:layout_marginTop="0.0dip" android:layout_marginBottom="10.0dip" android:text="@string/quickpanel_slider_alarm_volume_text" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<LinearLayout android:layout_gravity="bottom|center" android:orientation="horizontal" android:padding="10.0dip" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="2.0dip">
<ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@*android:drawable/ic_audio_alarm" android:scaleType="center" />
<SeekBar android:id="@id/quickpanel_slider_alarm_volume" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_centerVertical="true" />
</LinearLayout>
</FrameLayout>
<FrameLayout android:background="#00ffffff" android:padding="3.0dip" android:layout_width="fill_parent" android:layout_height="65.0dip">
<TextView android:gravity="left" android:layout_gravity="top|left|center" android:layout_width="wrap_content" android:layout_height="15.0dip" android:layout_marginTop="0.0dip" android:layout_marginBottom="10.0dip" android:text="@string/quickpanel_slider_voice_call_volume_text" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<LinearLayout android:layout_gravity="bottom|center" android:orientation="horizontal" android:padding="10.0dip" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="2.0dip">
<ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@*android:drawable/ic_audio_ring_notif" android:scaleType="center" />
<SeekBar android:id="@id/quickpanel_slider_voice_call_volume" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_centerVertical="true" />
</LinearLayout>
</FrameLayout>
<FrameLayout android:background="#00ffffff" android:padding="3.0dip" android:layout_width="fill_parent" android:layout_height="65.0dip">
<TextView android:gravity="left" android:layout_gravity="top|left|center" android:layout_width="wrap_content" android:layout_height="15.0dip" android:layout_marginTop="0.0dip" android:layout_marginBottom="10.0dip" android:text="@string/quickpanel_slider_notification_volume_text" android:singleLine="true" style="@style/TextAppearance.QuickPanel.TextStyle" />
<LinearLayout android:layout_gravity="bottom|center" android:orientation="horizontal" android:padding="10.0dip" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="2.0dip">
<ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@*android:drawable/ic_audio_notification" android:scaleType="center" />
<SeekBar android:id="@id/quickpanel_slider_notification_volume" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_centerVertical="true" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>
step 4 : save, compile and decompile
goto com\android\systemui\statusbar\phone\PhoneStatusBar.smali
find :
Code:
.field private mAnimationRuning:Z
add this below :
Code:
.field private mAudioManager:Landroid/media/AudioManager;
find : ( red code may be different in your case ignore it)
Code:
.method static synthetic access$[COLOR="Red"]200[/COLOR](Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)F
.locals 1
.parameter "x0"
.prologue
.line 118
iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSelfExpandVelocityPx:F
return v0
.end method
add this below :
Code:
.method static synthetic access$1101(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Landroid/media/AudioManager;
.locals 1
.parameter
.prologue
.line 23
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
return-object v0
.end method
.method static synthetic access$1200(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Z
.locals 1
.parameter "x0"
.prologue
.line 97
iget-boolean v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mExpandedVisible:Z
return v0
.end method
step 5 : Find
Code:
.method private setStatusBarLowProfile(Z)V
and this code above it :
Code:
.method private setQuickPanelVolumeSliders()V
.locals 12
.prologue
const/4 v11, 0x3
const/4 v10, 0x2
const/4 v9, 0x0
const/4 v7, 0x1
.line 54
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
const-string v6, "audio"
invoke-virtual {v5, v6}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/media/AudioManager;
iput-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
.line 57
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v8, 0x7f0c00ec
invoke-virtual {v5, v8}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v3
check-cast v3, Landroid/widget/SeekBar;
.line 58
.local v3, ringSlider:Landroid/widget/SeekBar;
invoke-virtual {v3, v7}, Landroid/widget/SeekBar;->setKeyProgressIncrement(I)V
.line 59
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v10}, Landroid/media/AudioManager;->getStreamMaxVolume(I)I
move-result v5
invoke-virtual {v3, v5}, Landroid/widget/SeekBar;->setMax(I)V
.line 60
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v10}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v3, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 61
new-instance v5, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashE;
invoke-direct {v5, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashE;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v3, v5}, Landroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
.line 80
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v8, 0x7f0c00ed
invoke-virtual {v5, v8}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/SeekBar;
.line 81
.local v2, notificationSlider:Landroid/widget/SeekBar;
invoke-virtual {v2, v7}, Landroid/widget/SeekBar;->setKeyProgressIncrement(I)V
.line 82
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x5
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamMaxVolume(I)I
move-result v5
invoke-virtual {v2, v5}, Landroid/widget/SeekBar;->setMax(I)V
.line 83
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x5
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v2, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 84
new-instance v5, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashD;
invoke-direct {v5, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashD;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v2, v5}, Landroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
.line 103
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v8, 0x7f0c00ee
invoke-virtual {v5, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v4
check-cast v4, Landroid/widget/SeekBar;
.line 104
.local v4, voiceCallSlider:Landroid/widget/SeekBar;
invoke-virtual {v4, v7}, Landroid/widget/SeekBar;->setKeyProgressIncrement(I)V
.line 105
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v9}, Landroid/media/AudioManager;->getStreamMaxVolume(I)I
move-result v5
invoke-virtual {v4, v5}, Landroid/widget/SeekBar;->setMax(I)V
.line 106
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v9}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v4, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 107
new-instance v5, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashC;
invoke-direct {v5, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashC;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v4, v5}, Landroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
.line 126
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v8, 0x7f0c00ef
invoke-virtual {v5, v8}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/SeekBar;
.line 127
.local v1, mediaSlider:Landroid/widget/SeekBar;
invoke-virtual {v1, v7}, Landroid/widget/SeekBar;->setKeyProgressIncrement(I)V
.line 128
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v11}, Landroid/media/AudioManager;->getStreamMaxVolume(I)I
move-result v5
invoke-virtual {v1, v5}, Landroid/widget/SeekBar;->setMax(I)V
.line 129
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
invoke-virtual {v5, v11}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v1, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 130
new-instance v5, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashB;
invoke-direct {v5, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashB;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v1, v5}, Landroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
.line 149
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v8, 0x7f0c00f0
invoke-virtual {v5, v8}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/SeekBar;
.line 150
.local v0, alarmSlider:Landroid/widget/SeekBar;
invoke-virtual {v0, v7}, Landroid/widget/SeekBar;->setKeyProgressIncrement(I)V
.line 151
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x4
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamMaxVolume(I)I
move-result v5
invoke-virtual {v0, v5}, Landroid/widget/SeekBar;->setMax(I)V
.line 152
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x4
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v0, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 153
new-instance v5, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashA;
invoke-direct {v5, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashA;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v0, v5}, Landroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
.line 170
return-void
.end method
Step 6 : Find these lines : (Red lines may be different)
Code:
new-instance [COLOR="Red"]v11[/COLOR], Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
iget-object [COLOR="red"]v12[/COLOR], p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
invoke-direct {[COLOR="red"]v11, p0, v2, v12[/COLOR]}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;Landroid/content/Context;Landroid/view/View;)V
iput-object [COLOR="red"]v11[/COLOR], p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mTicker:Lcom/android/systemui/statusbar/phone/Ticker;
add this above it :
Code:
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setQuickPanelVolumeSliders()V
Step 7 : Find this line
Code:
.method protected updateRecentsPanel()V
add this above :
Code:
.method public updateQuickPanelVolumeSliders()V
.locals 8
.prologue
.line 176
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v7, 0x7f0c00ec
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v3
check-cast v3, Landroid/widget/SeekBar;
.line 177
.local v3, ringSlider:Landroid/widget/SeekBar;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x2
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v3, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 180
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v7, 0x7f0c00ed
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/SeekBar;
.line 181
.local v2, notificationSlider:Landroid/widget/SeekBar;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x5
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v2, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 184
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v7, 0x7f0c00ee
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v4
check-cast v4, Landroid/widget/SeekBar;
.line 185
.local v4, voiceCallSlider:Landroid/widget/SeekBar;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x0
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v4, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 188
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v7, 0x7f0c00ef
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/SeekBar;
.line 189
.local v1, mediaSlider:Landroid/widget/SeekBar;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x3
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v1, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 192
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v7, 0x7f0c00f0
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/SeekBar;
.line 193
.local v0, alarmSlider:Landroid/widget/SeekBar;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mAudioManager:Landroid/media/AudioManager;
const/4 v6, 0x4
invoke-virtual {v5, v6}, Landroid/media/AudioManager;->getStreamVolume(I)I
move-result v5
invoke-virtual {v0, v5}, Landroid/widget/SeekBar;->setProgress(I)V
.line 195
return-void
.end method
Step 8 : Find
Code:
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
add this below value = {
Code:
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashA;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashB;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashC;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashD;,
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$AkashE;,
Step 9 : Last step : search left code in your public.xml , search right text in your PhoneStatusBar.smali replace id with your value...
Code:
quickpanel_slider_ringer_volume ----- 0x7f0c00ec
quickpanel_slider_notification_volume ------ 0x7f0c00ed
quickpanel_slider_voice_call_volume ------ 0x7f0c00ee
quickpanel_slider_media_volume ------ 0x7f0c00ef
quickpanel_slider_alarm_volume ------ 0x7f0c00f0
Note : dont confuse with string type ie
wrong
Code:
<public type="string" name="quickpanel_slider_ringer_volume_text" id="0x7f0900d5" />
right
Code:
<public type="id" name="quickpanel_slider_ringer_volume" id="0x7f0c00ec" />
Step 10 : Actual last step, Compile push/flash/whateva
FAQ :
Actually brother,
I need some help. I have added the files given by XDA.gm. As Adi Sir told me to follow that thread. So.
No I got the everything working but the slider I got not seem to be working properly. Sorry but before you posted your guide I already started working on it.
Now please help me with the sliders and all.
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""
BOND1987 said:
Actually brother,
I need some help. I have added the files given by XDA.gm. As Adi Sir told me to follow that thread. So.
No I got the everything working but the slider I got not seem to be working properly. Sorry but before you posted your guide I already started working on it.
Now please help me with the sliders and all.
View attachment 2157379
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""
Click to expand...
Click to collapse
for sliders you need to fix ids i guess.. i will check once...
woah, i just fried my psu and wasnt able to use my pc for more than a day then when i get back i see you guys doing a lot of stuff already,,,, great work guys. up:good::good::good:
Bro , do u have any solution to this ------>
Code:
C:\Apktool_JB>apktool b SystemUI_og
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
[COLOR="Red"]C:\Apktool_JB\SystemUI_og\res\layout\quickpanel_quick_settings_space.xml:9: erro
r: Error parsing XML: mismatched tag[/COLOR]
aapt: warning: string 'data_connection_datach_timeout_error_msg' has no default
translation in C:\Apktool_JB\SystemUI_og\res; found: de es fr in it ms pt tr vi
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.Androl
ibException: brut.common.BrutException: could not exec command: [aapt, p, --min-
sdk-version, 16, --target-sdk-version, 16, -F, C:\Users\AKHILE~1\AppData\Local\T
emp\APKTOOL6259043626794892065.tmp, -I, C:\Users\Akhilendra\apktool\framework\1.
apk, -S, C:\Apktool_JB\SystemUI_og\res, -M, C:\Apktool_JB\SystemUI_og\AndroidMan
ifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:355)
at brut.androlib.Androlib.buildResources(Androlib.java:280)
at brut.androlib.Androlib.build(Androlib.java:203)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:214)
at brut.apktool.Main.main(Main.java:74)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not
exec command: [aapt, p, --min-sdk-version, 16, --target-sdk-version, 16, -F, C:
\Users\AKHILE~1\AppData\Local\Temp\APKTOOL6259043626794892065.tmp, -I, C:\Users\
Akhilendra\apktool\framework\1.apk, -S, C:\Apktool_JB\SystemUI_og\res, -M, C:\Ap
ktool_JB\SystemUI_og\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:335)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:333)
... 5 more
Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sd
k-version, 16, --target-sdk-version, 16, -F, C:\Users\AKHILE~1\AppData\Local\Tem
p\APKTOOL6259043626794892065.tmp, -I, C:\Users\Akhilendra\apktool\framework\1.ap
k, -S, C:\Apktool_JB\SystemUI_og\res, -M, C:\Apktool_JB\SystemUI_og\AndroidManif
est.xml]
at brut.util.OS.exec(OS.java:89)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:333)
... 6 more
in quickpanel_quick_settigns.xml it gives an error saying mismatched tag. I am not able to compile your mod with bsuhas's quickpanel code. I tried before in my mod but it didn't work around there too...
BOND1987 said:
Actually brother,
I need some help. I have added the files given by XDA.gm. As Adi Sir told me to follow that thread. So.
No I got the everything working but the slider I got not seem to be working properly. Sorry but before you posted your guide I already started working on it.
Now please help me with the sliders and all.
View attachment 2157379
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""
Click to expand...
Click to collapse
or may be, there's additional smalis for that,.,.
find additional PhoneStatusBar$xx.smali for that, or / and compare the PhoneStatusBar.smali with XDA.AGM's
Sir,
Your suggestions always help me a lot. Although it takes time but I always get through with good great results.
I'll try this also now.
Edit:- @Akhilendra1711,
Wait buddy,
I'm gonna post a guide for those who already have applied lidroid and 4.2 and want to get these layouts. It will be on this thread only.
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""
find
Code:
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="2.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
add this code above it..
Code:
Code:
</com.android.systemui.statusbar.StatusBarServiceLRPull>
corrected now...
Akash Bro I got it after some try.... the setting button doesn't work but the 4.2 button works
and no buttons and clock on 4.2 statubar full black
Edit : I have done till part 1 only and i have already done with lidroid so i have follow part 2 from step 5 only i think so.....
i attach screenshot take a look
khan_frd2002 said:
Akash Bro I got it after some try.... the setting button doesn't work but the 4.2 button works
and no buttons and clock on 4.2 statubar full black
Edit : I have done till part 1 only and i have already done with lidroid so i have follow part 2 from step 5 only i think so.....
i attach screenshot take a look
Click to expand...
Click to collapse
yup follow from step 5 but, replace old files, and re edit ids....
im checking as you should get clock in view....
Akhilendra1711 said:
Bro , do u have any solution to this ------>
in quickpanel_quick_settigns.xml it gives an error saying mismatched tag. I am not able to compile your mod with bsuhas's quickpanel code. I tried before in my mod but it didn't work around there too...
Click to expand...
Click to collapse
Akhilendra Bro You have Get mismatched tag In quickpanel_quick_settigns.xml Because there i a space before <LinearLayout Line 7
khan_frd2002 said:
Akash Bro I got it after some try.... the setting button doesn't work but the 4.2 button works
and no buttons and clock on 4.2 statubar full black
Edit : I have done till part 1 only and i have already done with lidroid so i have follow part 2 from step 5 only i think so.....
i attach screenshot take a look
Click to expand...
Click to collapse
ohh.. i missed small step bro... thanks for your replay... updating thread...
khan_frd2002 said:
Akhilendra Bro You have Get mismatched tag In quickpanel_quick_settigns.xml Because there i a space before <LinearLayout Line 7
Click to expand...
Click to collapse
Bro I adjusted the space too . But still it said mismatch tag.
Sent from my Micromax A110 using XDA Premium HD app
khan_frd2002 said:
Akhilendra Bro You have Get mismatched tag In quickpanel_quick_settigns.xml Because there i a space before <LinearLayout Line 7
Click to expand...
Click to collapse
bro check now :
Delete this line :
Code:
<include android:layout_width="fill_parent" android:layout_height="@dimen/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
find
Code:
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/close_handle_underlap">
add this line above it..
Code:
<com.spacecaker.SpaceLayOut android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include layout="@layout/quickpanel_quick_settings_space" />
</LinearLayout>
find, this
Code:
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="115.0dip" android:layout_marginBottom="8.0dip" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.policy.NotificationRowLayout android:layout_gravity="bottom" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
</ScrollView>
</FrameLayout>
add this lines below it
Code:
</com.spacecaker.SpaceLayOut>
find :
Code:
<com.spacecaker.SpaceLayOut android:layout_width="fill_parent"
add this above it :
Code:
<LinearLayout android:orientation="vertical" 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/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
</LinearLayout>
also download new files n replace quick_settings_space with new file...
Akhilendra1711 said:
Bro I adjusted the space too . But still it said mismatch tag.
Sent from my Micromax A110 using XDA Premium HD app
Click to expand...
Click to collapse
give me that xml...
Akhilendra1711 said:
Bro I adjusted the space too . But still it said mismatch tag.
Sent from my Micromax A110 using XDA Premium HD app
Click to expand...
Click to collapse
Ok brother,
Upload your quickspace. Xml.
We will look into it and can answer better.
Had any one got the sliders working.
Coz I've done every thing, corrected all id's but still same.
""Hitting Thanks Don't Cost You Anything, then, Why You All Are Getting Bothered in Doing So. Hitting Thanks Increases My Motivation to Work for this Community....""