[GUIDE][JB][ICS][GB] Tutor Spacecaker layout







Syarat:
* Brain
* Mengerti decompile & recompile
* Kesabaran & ketelitian

Langsung aja...


*** Langkah Pertama ***

* Decompile SystemUI.apk
* Copas/merger bahan ke folder SystemUI.apk hasil decompile barusan
* Buka msim_status_bar.xml
* Jadikan seperti ini: Tambahkan tulisan merah

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/msim_status_bar" android:background="@*android:color/black" 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">
                <LinearLayout android:id="@id/msim_signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" />
                <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: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>



* Buka status_bar_expanded_header.xml
* Jadikan seperti ini: Tambahkan tulisan merah

<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
    <LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false">
        <com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:id="@id/clock" 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: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" />
        <ImageView android:id="@id/tasklistSwitch" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" />
        <Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
        <LinearLayout android:layout_gravity="right|center" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="6.0dip" android:layout_marginRight="3.0dip" android:layout_alignParentRight="true">
            <com.spacecaker.ButtonBurst android:layout_gravity="center_vertical" android:id="@+id/spacebuttonburst" android:layout_width="30.0dip" android:layout_height="34.0dip" android:layout_marginRight="3.0dip" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>



* Buka msim_status_bar_expanded.xml
* Jadilan seperti ini: Tambahkan tulisan merah

<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">
    <include android:layout_gravity="bottom" android:id="@id/tracking" android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/status_bar_tracking" />
    <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" />
        <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="fill_parent">
                <include layout="@layout/quickpanel_quick_settings_space" />
            </LinearLayout>
            <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <ExpandableListView android:layout_gravity="center_vertical" android:id="@id/taskList" android:layout_width="fill_parent" android:layout_height="wrap_content" />
                <LinearLayout android:orientation="vertical" android:id="@id/originLayout" android:layout_width="fill_parent" android:layout_height="fill_parent">
                    <ImageView android:background="#55ffffff" android:layout_width="fill_parent" android:layout_height="2.0dip" />
                    <include android:id="@id/shortcut" layout="@layout/expanded_shortcut_port" />
                    <RelativeLayout android:id="@id/network_switches_container" 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">
                        <View android:background="?android:listDivider" android:layout_width="fill_parent" android:layout_height="1.0dip" />
                        <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
                            <ImageView android:paddingLeft="20.0dip" android:paddingRight="20.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/stat_notify_mobile_data" android:layout_alignParentRight="true" />
                            <TextView android:textAppearance="?android:textAppearanceMedium" android:ellipsize="marquee" android:gravity="left|center" android:id="@*android:id/title" android:paddingLeft="12.0dip" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/data_usage_enable_mobile" android:singleLine="true" />
                        </LinearLayout>
                        <Switch android:id="@id/network_switch" android:paddingLeft="3.0dip" android:paddingRight="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
                    </RelativeLayout>
                    <LinearLayout android:orientation="vertical" android:id="@id/network_settings_container" android:background="@drawable/notification_header_bg" android:paddingRight="3.0dip" android:layout_width="fill_parent" android:layout_height="52.0dip">
                        <View android:background="?android:listDivider" android:layout_width="fill_parent" android:layout_height="1.0dip" />
                        <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
                            <ImageView android:paddingLeft="20.0dip" android:paddingRight="20.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/stat_notify_network" android:layout_alignParentRight="true" />
                            <TextView android:textAppearance="?android:textAppearanceMedium" android:ellipsize="marquee" android:gravity="left|center" android:id="@*android:attr/theme" android:paddingLeft="12.0dip" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/settings_label" android:singleLine="true" />
                        </LinearLayout>
                        <View android:background="?android:listDivider" android:layout_width="fill_parent" android:layout_height="1.0dip" />
                    </LinearLayout>
                    <include layout="@layout/status_bar_notification_title" />
                    <ScrollView android:id="@id/scroll" android:background="@*android:color/transparent" 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:background="@*android:color/transparent" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/notification_row_min_height" />
                    </ScrollView>
                </LinearLayout>
            </LinearLayout>
        </com.spacecaker.SpaceLayOut>
    </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>



* Save & Recompile

*** Langkah kedua ***

* Decompile SystemUI.apk hasil dari langkah pertama
* Buka public.xml dan biarkan terbuka
* Buka ButtonBurst.smali ada di SystemUI.apk/smali/com/spacecaker/
* Ganti public id yang ada disana:

0x7f0202d2        <public type="drawable" name="btn_tg" id="0x7f020xxx" />
0x7f0202d3        <public type="drawable" name="btn_toggles_normal" id="0x7f020xxx" />

* Save, recompile & sign
* Push ke system lalu reboot

Bahan & tutor:
https://www.dropbox.com/s/ba4ci8gatyn4lfe/Tutor_Spacecaker_layout.zip?dl=0


Sumber: http://forum.xda-developers.com/showthread.php?t=2366476






Komentar

Postingan populer dari blog ini

[JB][GUIDE] 5 Tabs SystemUI with Flip Anim (Bagian-3)

[JB][ICS][GB][GUIDE] CHANGE SETTINGS BACKGROUND

[TUTOR][ICS][JB] Menambahkan Music Lidroid Toggle