Cool [MOD][Android 4.1.2] Add Customizable 23 Statusbar Toggles To Samsung Jelly bean Roms

This is an update of the known 15 toggles, with more toggles and a new application to customize an reorder the toggles in the status bar, i modded Lidroid App to keep only the Status bar features.

Here is how it looks like :




Let start, you need to decompile SystemUI.apk, you can use my updated Apk_Manager Repack.
  • Edit "SystemUI.apk\res\layout\tw_status_bar_expanded.xm l" and make these changes, this will hide the stock status bar and use the new one:
Code:
        <TextView 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" />
        <HorizontalScrollView android:id="@id/quicksetting_scroller" android:visibility="gone" 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:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
        </HorizontalScrollView>
        <com.wanam.systemui.quickpanel.PowerWidget android:id="@id/exp_power_stat" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height" />
        <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">
  • 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/wanam/systemui/quickpanel/PowerWidget;

.field mQueueLock:Ljava/lang/Object;


Method "makeStatusBarView" :

Code:
    invoke-virtual {v1, v0, p3, v2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V

    .line 1120
    +++iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;

    +++invoke-virtual {v1}, Lcom/wanam/systemui/quickpanel/PowerWidget;->updateWidget()V

    return-void
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, 0x7f0d010e

    +++invoke-virtual {v13, v14}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

    +++move-result-object v13

    +++check-cast v13, Lcom/wanam/systemui/quickpanel/PowerWidget;

    +++move-object/from16 v0, p0

    +++iput-object v13, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;

    .line 698
    new-instance v13, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
Code:
    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/wanam/systemui/quickpanel/PowerWidget;

    +++invoke-virtual {v13}, Lcom/wanam/systemui/quickpanel/PowerWidget;->setupWidget()V

    .line 826
    sget-boolean v13, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useTouchWizGUI:Z
Extract attached "wanam.zip" and copy both folders "com" & "wanam" to your "SystemUI.apk\smali\".

That's all, recompile your SystemUI.

After building, make sure your Id "exp_power_stat" got the public id "0x7f0d010e", 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 "LidroidSettings.apk" to "/system/app" (with permissions 644).

Use this guide to mod lidroid-res.

Thanks to Lidroid for his awesome work, big thanks to GrgSiocl for providing the required files.

I attached a CWM patch working on DEODEXED XXELKC Roms ONLY!
(Patches and system file updated to V2 with a new repacked Lidroid App, why?)
Attached Files
File Type: zip wanam.zip - [Click for QR Code] (104.3 KB, 1706 views)
File Type: zip systemV2.zip - [Click for QR Code] (1.83 MB, 1663 views)
File Type: zip GT-I9300_WanamLite.XXELKC.23ToggleV2.zip - [Click for QR Code] (4.32 MB, 1346 views)