Screenshot:
Feature:
Header BG with option (Default, Color, BG Picker, Timer/Omni)
Header BG Timer/Omni style (Default, Modern, Poly)
Header BG alpha
Header BG animation
Enable/disable blur BG
Add options to set date for Idul Fitri, Idul Adha and birthday
Add Blur BG preview
Requirement:
- Mengerti compile/decompile APK
- APKTool
- Notepad++ (PC)
- Bahan: Download
Step:
Part AsusSystemUI:
1. Decompile AsusSystemUI.apk
2. Letakkan smali dan res yg dari guide ke tempat masing".. Timpah aja bila yg sudah ada..
3. Buka AndroidManifest.xml
Cari:
<activity android:excludeFromRecents="true" android:name="com.android.keyguard.KeyguardIntruderView" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
Tambahkan dibawahnya:
<activity android:theme="@android:style/Theme.Holo" android:label="Header Machine Preference" android:icon="@null" android:name="com.bamzzz.prefs.HeaderMachineActivity" android:excludeFromRecents="true" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
4. Buka res/layout/asus_status_bar_expanded_header.xml (Asus) atau status_bar_expanded_header.xml (Other phone)
Cari:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.StatusBarHeaderView android:layout_gravity="@integer/notification_panel_layout_gravity" android:id="@id/header" android:background="@null" android:paddingBottom="@dimen/asus_quicksetting_panel_header_padding_bottom" android:focusable="true" android:clickable="true" android:layout_width="@dimen/notification_panel_width" android:layout_height="@dimen/asus_status_bar_header_height" android:baselineAligned="false" android:paddingStart="@dimen/notification_side_padding" android:paddingEnd="@dimen/notification_side_padding"
xmlns:android="http://schemas.android.com/apk/res/android">
Tambahkan tepat dibawahnya:
<com.bamzzz.HeaderMachine android:id="@id/header_machine"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:scaleType="fitXY"
android:adjustViewBounds="true" />
Asus Only:
Cari:
<Button android:textSize="@dimen/asus_notification_clear_all_text_size" android:textColor="@color/asus_notification_clear_all_text_color" android:id="@id/clear_all_button" android:background="@drawable/ic_notify_clear" android:layout_width="wrap_content" android:layout_height="@dimen/asus_notification_clear_all_height" android:text="@string/status_bar_clear_all_button" android:layout_alignParentBottom="true" android:contentDescription="@string/accessibility_clear_all" android:fontFamily="sans-serif" android:layout_marginEnd="@dimen/asus_quicksetting_button_margin_right" android:layout_alignParentEnd="true" />
Lalu tambahkan: android:layout_marginBottom="@dimen/asus_quicksetting_panel_header_padding_bottom"
Hingga menjadi:
<Button android:layout_marginBottom="@dimen/asus_quicksetting_panel_header_padding_bottom" android:textSize="@dimen/asus_notification_clear_all_text_size" android:textColor="@color/asus_notification_clear_all_text_color" android:id="@id/clear_all_button" android:background="@drawable/ic_notify_clear" android:layout_width="wrap_content" android:layout_height="@dimen/asus_notification_clear_all_height" android:text="@string/status_bar_clear_all_button" android:layout_alignParentBottom="true" android:contentDescription="@string/accessibility_clear_all" android:fontFamily="sans-serif" android:layout_marginEnd="@dimen/asus_quicksetting_button_margin_right" android:layout_alignParentEnd="true" />
5. Buka res/values/ids.xml
Tambahkan:
<item type="id" name="header_machine">false</item>
<item type="id" name="header_machine_layout">false</item>
<item type="id" name="header_machine_time_title">false</item>
<item type="id" name="header_machine_idul_fitri_text">false</item>
<item type="id" name="header_machine_idul_fitri_button">false</item>
<item type="id" name="header_machine_idul_adha_text">false</item>
<item type="id" name="header_machine_idul_adha_button">false</item>
<item type="id" name="header_machine_birthday_text">false</item>
<item type="id" name="header_machine_birthday_button">false</item>
<item type="id" name="header_machine_background_title">false</item>
<item type="id" name="header_machine_background_content">false</item>
<item type="id" name="header_machine_checkBlur">false</item>
<item type="id" name="header_machine_background_button_pick">false</item>
<item type="id" name="header_machine_background_button_set">false</item>
<item type="id" name="header_machine_tip_text">false</item>
6. Step ini tidak harus diterapkan !!! Khusus Asus Zenfone, berfungsi untuk menghilangkan background default atau bawaan tema:
Buka smali/com/android/systemui/statusbar/phone/StatusBarHeaderView.smali
Cari:
# instance fields
Tambahkan dibawahnya:
.field private mHeaderMachine:I
Cari:
.method private setImageViewDrawable()V
Kemudian cari:
invoke-virtual {p0, v0}, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->setBackground(Landroid/graphics/drawable/Drawable;)V
Tambahkan diatasnya:
iget v8, p0, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->mHeaderMachine:I
const/4 v9, 0x0
if-ne v8, v9, :cond_brut
const-string v8, "BamzzzHeaderMachine"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "Header Machine disable -> "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
iget v10, p0, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->mHeaderMachine:I
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v8, v9}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
Cari lagi yang tadi:
invoke-virtual {p0, v0}, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->setBackground(Landroid/graphics/drawable/Drawable;)V
Lalu tambahkan dibawahnya:
goto :goto_brutt
:cond_brut
const-string v8, "BamzzzHeaderMachine"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "Header Machine enable -> "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
iget v10, p0, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->mHeaderMachine:I
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v8, v9}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
const/4 v8, 0x0
invoke-virtual {p0, v8}, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->setBackgroundResource(I)V
:goto_brutt
Cari:
.line 199
.local v8, "paddingBottom":I
const/4 v12, 0x0
invoke-virtual {p0, v7, v12, v7, v8}, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->setPaddingRelative(IIII)V
.line 200
return-void
Diatasnya tambahkan:
const/4 v8, 0x0
Cari:
.method public updateEverything()V
Diatas return-void tambahkan:
invoke-static {}, Lcom/bamzzz/HeaderMachine;->getVisibilities()I
move-result v0
iput v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->mHeaderMachine:I
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/StatusBarHeaderView;->setImageViewDrawable()V
7. Recompile UI nya, jgn lupa di Sign dan zipalign. Push & Reboot.
8. Selesai
Part Settings:
Optional!!! Pilih salah satu, menggunakan ZenControl.apk (Lollipop only) atau dimasukin ke Settings.apk
Add Preference using ZenControl.apk :
1. Decompile ZenControl.apk
2. Buka dan tambahkan script dibawah ini di /res/xml/dropdown_prefs.xml
<PreferenceScreen android:title="@string/header_machine_title" android:summary="@string/header_machine_summary">
<PreferenceCategory android:title="@string/header_machine_title" />
<com.wubydax.romcontrol.prefs.MyListPreference
android:entries="@array/header_machine_style_entries"
android:title="@string/header_machine_style_title"
android:key="header_machine_style"
android:defaultValue="3"
android:entryValues="@array/header_machine_style_values" />
<com.wubydax.romcontrol.prefs.MyListPreference
android:entries="@array/header_machine_bg_style_entries"
android:title="@string/header_machine_bg_style_title"
android:key="header_machine_bg_style"
android:defaultValue="1"
android:entryValues="@array/header_machine_bg_style_values" />
<com.wubydax.romcontrol.prefs.ColorPickerPreference
android:title="@string/header_machine_color_title"
android:key="header_machine_color"
android:defaultValue="\#00000000"
alphaSlider="true" />
<com.wubydax.romcontrol.prefs.SeekBarPreference
android:icon="@null"
android:max="255"
android:title="@string/header_machine_bg_alpha_title"
android:key="header_machine_bg_image_alpha"
android:defaultValue="100"
min="0"
unitsRight="" />
<CheckBoxPreference
android:defaultValue="false"
android:title="@string/header_machine_bg_animated_title"
android:key="header_machine_bg_animated"
android:summaryOn="@string/header_machine_enable"
android:summaryOff="@string/header_machine_disable" />
<CheckBoxPreference
android:defaultValue="false"
android:title="@string/header_machine_bg_image_blur_title"
android:key="header_machine_bg_image_blur"
android:summaryOn="@string/header_machine_enable"
android:summaryOff="@string/header_machine_disable" />
<PreferenceScreen
android:summary="@string/header_machine_preference_summary"
android:title="@string/header_machine_preference_title">
<intent
android:targetClass="com.bamzzz.prefs.HeaderMachineActivity"
android:targetPackage="com.android.systemui" />
</PreferenceScreen>
</PreferenceScreen>
3. Buka dan tambahkan script dibawah ini di res/values/strings.xml
<string name="header_machine_title">Header Machine</string>
<string name="header_machine_summary">Enable various bg options in expanded header</string>
<string name="header_machine_style_title">Header Machine Style</string>
<string name="header_machine_style_1_title">Default</string>
<string name="header_machine_style_2_title">Color</string>
<string name="header_machine_style_3_title">Custom Image</string>
<string name="header_machine_style_4_title">Timer (OMNI)</string>
<string name="header_machine_bg_style_title">Timer Background Style</string>
<string name="header_machine_bg_style_1_title">Default</string>
<string name="header_machine_bg_style_2_title">Modern</string>
<string name="header_machine_bg_style_3_title">Poly HD</string>
<string name="header_machine_color_title">Header Color</string>
<string name="header_machine_bg_alpha_title">Header BG Alpha</string>
<string name="header_machine_bg_animated_title">BG Animated</string>
<string name="header_machine_bg_image_blur_title">Blur BG</string>
<string name="header_machine_enable">Enable</string>
<string name="header_machine_disable">Disable</string>
<string name="header_machine_preference_title">Header Machine Preference</string>
<string name="header_machine_preference_summary">Set Header Machine Date and Custom Image Background</string>
4. Buka dan tambahkan script dibawah ini di res/values/arrays.xml
<string-array name="header_machine_bg_style_entries">
<item>@string/header_machine_bg_style_1_title</item>
<item>@string/header_machine_bg_style_2_title</item>
<item>@string/header_machine_bg_style_3_title</item>
</string-array>
<string-array name="header_machine_bg_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="header_machine_style_entries">
<item>@string/header_machine_style_1_title</item>
<item>@string/header_machine_style_2_title</item>
<item>@string/header_machine_style_3_title</item>
<item>@string/header_machine_style_4_title</item>
</string-array>
<string-array name="header_machine_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
5. Recompile ZenControl..
6. Install ZenControl seperti apk normal
Add Preference include settings:
1. Terapkan guide ane sebelumnya: http://forum.xda-developers.com/zenfone-4/themes-apps/guide-easy-preference-control-t3317849
2. Buka dan tambahkan script dibawah ini di /res/xml/zen_prefs.xml
<PreferenceScreen android:title="@string/header_machine_title" android:summary="@string/header_machine_summary">
<com.android.settings.bamzzz.prefs.MyListPreference
android:entries="@array/header_machine_style_entries"
android:title="@string/header_machine_style_title"
android:key="header_machine_style"
android:defaultValue="3"
android:entryValues="@array/header_machine_style_values" />
<com.android.settings.bamzzz.prefs.MyListPreference
android:entries="@array/header_machine_bg_style_entries"
android:title="@string/header_machine_bg_style_title"
android:key="header_machine_bg_style"
android:defaultValue="1"
android:entryValues="@array/header_machine_bg_style_values" />
<com.android.settings.bamzzz.prefs.ColorPickerPreference
android:title="@string/header_machine_color_title"
android:key="header_machine_color"
android:defaultValue="\#00000000"
alphaSlider="true" />
<com.android.settings.bamzzz.prefs.SeekBarPreference
android:icon="@null"
android:max="255"
android:title="@string/header_machine_bg_alpha_title"
android:key="header_machine_bg_image_alpha"
android:defaultValue="100"
min="0"
unitsRight="" />
<CheckBoxPreference
android:defaultValue="false"
android:title="@string/header_machine_bg_animated_title"
android:key="header_machine_bg_animated"
android:summaryOn="@string/header_machine_enable"
android:summaryOff="@string/header_machine_disable" />
<CheckBoxPreference
android:defaultValue="false"
android:title="@string/header_machine_bg_image_blur_title"
android:key="header_machine_bg_image_blur"
android:summaryOn="@string/header_machine_enable"
android:summaryOff="@string/header_machine_disable" />
<PreferenceScreen
android:summary="@string/header_machine_preference_summary"
android:title="@string/header_machine_preference_title">
<intent
android:targetClass="com.bamzzz.prefs.HeaderMachineActivity"
android:targetPackage="com.android.systemui" />
</PreferenceScreen>
</PreferenceScreen>
3. Buka dan tambahkan script dibawah ini di res/values/strings.xml
<string name="header_machine_title">Header Machine</string>
<string name="header_machine_summary">Enable various bg options in expanded header</string>
<string name="header_machine_style_title">Header Machine Style</string>
<string name="header_machine_style_1_title">Default</string>
<string name="header_machine_style_2_title">Color</string>
<string name="header_machine_style_3_title">Custom Image</string>
<string name="header_machine_style_4_title">Timer (OMNI)</string>
<string name="header_machine_bg_style_title">Timer Background Style</string>
<string name="header_machine_bg_style_1_title">Default</string>
<string name="header_machine_bg_style_2_title">Modern</string>
<string name="header_machine_bg_style_3_title">Poly HD</string>
<string name="header_machine_color_title">Header Color</string>
<string name="header_machine_bg_alpha_title">Header BG Alpha</string>
<string name="header_machine_bg_animated_title">BG Animated</string>
<string name="header_machine_bg_image_blur_title">Blur BG</string>
<string name="header_machine_enable">Enable</string>
<string name="header_machine_disable">Disable</string>
<string name="header_machine_preference_title">Header Machine Preference</string>
<string name="header_machine_preference_summary">Set Header Machine Date and Custom Image Background</string>
4. Buka dan tambahkan script dibawah ini di res/values/arrays.xml
<string-array name="header_machine_bg_style_entries">
<item>@string/header_machine_bg_style_1_title</item>
<item>@string/header_machine_bg_style_2_title</item>
<item>@string/header_machine_bg_style_3_title</item>
</string-array>
<string-array name="header_machine_bg_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="header_machine_style_entries">
<item>@string/header_machine_style_1_title</item>
<item>@string/header_machine_style_2_title</item>
<item>@string/header_machine_style_3_title</item>
<item>@string/header_machine_style_4_title</item>
</string-array>
<string-array name="header_machine_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
5. Compile Settings. Selesai.
========================================================================
NB: Dilarang mengubah nama smali atau path smali yang ada didalam guide ini tanpa izin ane !!!
Attention: Don't rename or modify path of smali from this guide without my permissions !!!
========================================================================
Header Machine demo video: https://youtu.be/TaFGTlTdrMI
========================================================================
Created by bamzzz@xda
fb.me/bamz4ever
ZenControl by Wuby986@xda & daxgirl@xda
Idea from StatusBar Header Machine and some drawables and some methods from OmniROM Project
Thanks to SyahrulLail for idea of Date picker preference
========================================================================
/*
* Copyright (C) 2015 The OmniROM Project
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
=========================================================================
1 comments:
Write commentsgan...mohon pencerahan na untuk menghilangkan/disable background header bawaan di miui cara na gmn...(step no.6)...
ReplySilahkan tinggalkan komentar EmoticonEmoticon