Laman

Thursday, November 15, 2012

Add Setting Button On Pulldown


Cara bikin setting shortcut di setting button
Tool
1. apk manager/apktool
2. notpad++

Bahan
1.SystemUI.apk
2.Icon setting png
Cara
1. bongkar SystemUI.apk menggunakan apktool
2. Buka status_bar_expanded.xml lalu cari    <com.android.systemui.statusbar.CarrierLabel android:textSize="17.659973dip" android:textColor="#ffffffff android:layout_gravity="center_vertical" android:orientation="vertical" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip"
android:layout_marginTop="1.0dip" android:layout_weight="1.0" />
Lalu tambahkan--
   <ImageView android:layout_gravity="center_vertical" android:id="@id/settings_button" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:contentDescription="@string/accessibility_settings_button" />

3. Buka strings.xml dan tambahkan    <string name="accessibility_settings_button">System settings.</string>

4. Buka ids.xml dan tambahkan
   <item type="id" name="settings_button">false</item>
5. masukan file yang ada di dalam setting_shortcut.zip(extra) sesuai folder
6. lalu compile(kenapa musti compile karena kita musti tau public id settingnya yang nantinya akan dipake di smali)    
pastikan tidak ada error

7. Buka public.xml dari singedSystemUI.apk cari    <public type="id" name="settings_button" id="0x7f090027" /> ---Mungkin nomornya bisa berbeda----

Selanjutnya kita pindah ke smali

8. Buka StatusBarService.smali
   lalu cari    .field mScrollView:Landroid/widget/ScrollView
     lalu tambahkan dibawahnya    .field mSettingsBut:Landroid/view/View;
   .field private mSettingsButListener:Landroid/view/View$. OnClickListener;

9  lalu cari    iput-object v0, p0, Lcom/android/systemui/statusbar/StatusBarService;->mStopTracing:Ljava/lang/Runnable;    dan tambahkan dibawahnya

   .line 1703     new-instance v0, Lcom/android/systemui/statusbar/StatusBarService$8;     invoke-direct {v0, p0}, Lcom/android/systemui/statusbar/StatusBarService$8;-><init>     (Lcom/android/systemui/statusbar/StatusBarService;)V     iput-object v0, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsButListener:Landroid/view/View $OnClickListener;
return-void.

10. cari iput v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mEdgeBorder:I
    kalo tidak ketemu coba ganti v7 dengan v8
    lalu tambahkan dibawahnya

    .line 333     const v7, 0x7f090027     invoke-virtual {v1, v7}, Lcom/android/systemui/statusba/ExpandedView;->findViewById(I)Landroid/view/View;     move-result-object v7     iput-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;
    .line 334     iget-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;     iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsButListener:Landroid/view/View $OnClickListener;     invoke-virtual {v7, v8}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V

    untuk const v7, 0x7f090027 sesuaikan dengan publik idnya
    jika iput v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mEdgeBorder:I
    maka v7 diubah menjadi v8 semua seperti berikut

    .line 333     const v8, 0x7f090026     invoke-virtual {v2, v8}, Lcom/android/systemui/statusbar/ExpandedView;->findViewById(I)Landroid/view/View;     move-result-object v8     iput-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;
    .line 334     iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;     iget-object v9, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsButListener:Landroid/view/View     $OnClickListener;
    invoke-virtual {v8, v9}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V

11. masukan StatusBarService$8.smali ke folder smali
12. compile n done..
13. kalo gagal berati ada yang salah coba lagi dan gogling cari referensi...hehehehe
selamat mencoba




ART CORNER OFFICIAL LIL'g & Eko Pujiyanto

No comments:

Post a Comment