Saturday, March 8, 2014

[GUIDE][JB][ALL] HOW TO TABBED SETTINGS WITH SWIPE GESTURE (UPDATE)

ASSALAMUALAIKUM WR.WB

Hallo droiders, gmna weekendnya ?? wah ane bahagia banget ini ada waktu senggang haha, nahhh berhubung dari kemaren banyak banget yang request minta bikin tab di settings, nahhh ane buatin nih tutor HOW TO TABBED SETTINGS WITH SWIPE GESTURE atau MEMBUAT TAB DI SETTINGS DENGAN SWIPE GESTURE sebenernya ini tutor implementasi dari GINGERBREAD tapi sekarang ane buatin yang khusus buat JELLY BEAN.

Perlu di perhatiin, ini tutor udah ane coba ulang sebelum ane buat, dan ini work banget, intinya perhatiin jangan sampe ada yang terlewat, oiya biar memudahkan mengikuti tutor ini, ada baiknya sambil buka MENAMBAHKAN ITEM ATAU APK KE SETTINGS, TARGET CLASS AND PACKAGE, dan MEMBUAT QUICK PANEL karena dari ketiga post di atas ada sangkut pautnya dengan post ini, ok langsung aja yahh ::

Bahan-bahan ::
Langkah-langkah ::
  • Decompile Settings.apk
  • Download file ini, ekstrak lalu taroh di tempatnya masing-masing.
  • Buka values/ids lalu tambahkan line ini di paling bawah
    <item type="id" name="tabHost">false</item>
    <item type="id" name="tabsLayout">false</item>
    <item type="id" name="tabsText">false</item>
  • Masih di folder yang sama, buka strings dan taroh line ini di paling bawah
    <string name="personal_settings_tab">StockJBMood</string>
    <string name="program_settings_tab">Tentang Perangkat</string>
  • Done
  • Recompile settingsnya
  • Decompile lagi Settingsnya
  • Buka values/public.xml dan jangan di tutup
  • Go to smali/com/android/settings, oiya ini public.xml ane buat compare an
PersonalSettings.smali
ctrl+f di smalinya                                                        ctrl+f di pulic ente, ambil deh kodenya
    0x7f05004d                                                             personal_settings
    0x7f040099                                                             speed_container

ProgramSettings.smali
    0x7f05004e                                                             program_settings
    0x7f040099                                                             speed_container

TabbedSettings$1.smali
    0x7f110001                                                             slide_in_right
    0x7f11                                                                     slide_in_left (AMBIL HANYA 4 KODE)

TabbedSettings.smali
    0x7f110002                                                             slide_out_left
    0x7f110003                                                             slide_out_right
    0x7f04009b                                                             tab_indicator
    0x7f080254                                                             tabsText
    0x7f04009a                                                             tab_content
    0x7f080252                                                             tabHost
#NOTE :: Untuk mengganti header yang stockjbmood ada di TabbedSettings.smali bukan di strings
  • Editing smali Done
  • Buka manifest, lalu ubah
<activity android:label="@string/settings_label_launcher" android:name="Settings" android:taskAffinity="com.android.settings" android:launchMode="singleTask" android:configChanges="mcc|mnc|keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  • Menjadi seperti ini oiya ini contoh manifest ane buat compare an
<activity android:theme="@*android:style/Theme.NoTitleBar" android:label="@string/settings_label_launcher" android:name="TabbedSettings" android:process="com.android.settings" android:taskAffinity="com.android.settings" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="PersonalSettings" />
        <activity android:name="ProgramSettings" />
        <activity android:name="DeviceInfoSettings" />
        <activity android:label="@string/settings_label_launcher" android:name="Settings">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
  • Done
  • Recompile
  • Sign apk
  • Push dehhhh
  • Kalo ada yg FC biasakan pake Catlog biar tau dimana errornya, bisa liat di Cara memakai CatLog 
UPDATE :: Yang di atas kalo berhasil jadinya 2 tab, kalo mau jadi 3 tab cukup replace smali tabbednya dengan smali tabbed yang ini, ga usah edit edit lagi :-)


#NOTE :: Buat program_settings.xml sama personal_settings.xml isikan dengan semau ente, itu udah ane kasih 1 line, buat contoh ada di dalamnya, mankanya ane bilang main main ke MENAMBAHKAN ITEM ATAU APK KE SETTINGS. Oiya ini cuma 2 tab yahh, kalo mau 3 tab nanti ane tambahin


SS ::

Thanks to ::
XDA
Om Dug
Bariklicious Dev Rom

Happy Ngoprek :-)


62 komentar

Oh iya gan. Ini habis di sign in langsung di push gan?? Ane ngeri fc.

ini pendek kalo di praktekin kok, iya abis di sign langsung push dahh :-)

Mantep kang .. nti ane coba lah... :)

ayok reviewnya dong :-)

biar kalo ada problem ane bisa bantu sblm senin :-)

reviewnya yahhh :-)

nanti kalo ada problem biar ane bantu, masuk senin ane udh sibuk hehe

ijin nyoba mastah.. :-)

cara memberi day di deket jam gimana um tutor nya

Kang request ane yg nambah tab di ui :-D

Odex bisa gag ini gan.... karna saya lebih suka odex

tab UI bukan di mari um treadnya haha, nanti insya allah dehh, biasa lagi repot wkwk

ga bisa, soalnya ini maibab smali, kalo odex repot ngoprek smalinya bro

JB 4.1 atau 4.2 nih mastah?? atau 2-2nya bisa

Sy sudah ikutin... Tp gagal... Setting apk gak jalan... Pas manifest di ganti yang ori... Jalan tp gak ada perubhan.. Itu knapa ya gan ???

../../../storage/sdcard0/apktool/Settings_src/smali/com/android/settings/TabbedSettings$1.smali[98,4] Invalid literal value: 32529. Low 16 bits must be zeroed out.
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/android/settings/TabbedSettings$1.smali
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:72)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:56)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:337)
at brut.androlib.Androlib.buildSources(Androlib.java:298)
at brut.androlib.Androlib.build(Androlib.java:284)
at brut.androlib.Androlib.build(Androlib.java:258)
at brut.apktool.Main.cmdBuild(Main.java:233)
at brut.apktool.Main.main(Main.java:88)
I: Using Apktool 2.0.0-Beta7 on Settings_src
I: Smaling...



Itu eror di line mana yah gan ? Tolong bantu :D

kalo eror di line terakhir waktu edit android manifest itu salahnya dmn ya om?

evercoss a7s

udh di sign blm, emng kalo urusan sign signan susah, mending baca post ane yg how to disable signature dulu bro :-)

errornya di smali bro, ente hhnya apa ?? kalo samsul ga bisa kayanya deh

kalo kaya gini knapa ya om?
04-21 11:49:50.906 E/AndroidRuntime(4165): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.TabbedSettings}: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/tab_indikator.9.png from xml type layout resource ID #0x7f0200d9

ka tio 4.2.2 gk ada personal seting smalinya

kayanya ga kuat ngangkat smali deh itu, pake apa bro decompilenya ?

udh download bahan di atas blm ?? personal settingnya kan dari bahan di atas :-)

ka tio itu yg di taro dibawah sebelum apa dibawah nya??? error mulu pas recompilenya personal setting xml blblabla

sebelum recersource apa sesudah mksdnya

error di public xml mulu knp ya k??? hadeuh.... padahal blm ngotak ngatik public xml bru recompile pertama ... apa kudu signature dulu ya ??? pening pala ini...

sebelum dong, errornya gmna ?? ikutin aja cara di atas, banyak yg work kok :-)

ngga perlu kok, hpnya apa yah emng ??

Advan s5e k.. iya bingung nih tiap recompile apk gk pernah bisa... udh ikutin tutor k ... klo kk gk kbrtn pgn blajar nih dri kk 743EDC3B pin saya k

ane jarang on bbm, nih wa aja 085770302903

itu udah ke compile om...
cuman pas d push fc...
signature udah di disable..
rom full signed..
sya pake linux om..
itu logcat pas buka setting..


aapt: warning: string
/storage/sdcard1/projec/Settings_src/res/values/ids.xml:709: error: Found text "
?????? " where item tag is expected
/storage/sdcard1/projec/Settings_src/res/values/strings.xml:2471: error: Found text "
?????? " where item tag is expected
/storage/sdcard1/projec/Settings_src/res/layout/tab_content.xml:2: error: Error: No resource found that matches the given name (at 'id' with value '@id/tabHost').
/storage/sdcard1/projec/Settings_src/res/layout/tab_indicator.xml:2: error: Error: No resource found that matches the given name (at 'id' with value '@id/tabsLayout').
/storage/sdcard1/projec/Settings_src/res/layout/tab_indicator.xml:4: error: Error: No resource found that matches the given name (at 'id' with value '@id/tabsText').
/storage/sdcard1/projec/Settings_src/res/xml/personal_settings.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/personal_settings_tab').
/storage/sdcard1/projec/Settings_src/res/xml/program_settings.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/program_settings_tab').
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/data/data/per.pqy.apktool/lix/aapt, p, --min-sdk-version, 17, --target-sdk-version, 17, -F, /data/data/per.pqy.apktool/APKTOOL8478519635324418688.tmp, -0, arsc, -I, ?/apktool/framework/1.apk, -S, /storage/sdcard1/projec/Settings_src/res, -M, /storage/sdcard1/projec/Settings_src/AndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
at brut.androlib.Androlib.buildResources(Androlib.java:283)
at brut.androlib.Androlib.build(Androlib.java:206)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/data/data/per.pqy.apktool/lix/aapt, p, --min-sdk-version, 17, --target-sdk-version, 17, -F, /data/data/per.pqy.apktool/APKTOOL8478519635324418688.tmp, -0, arsc, -I, ?/apktool/framework/1.apk, -S, /storage/sdcard1/projec/Settings_src/res, -M, /storage/sdcard1/projec/Settings_src/AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
..

Ane fc om, pas d swife/klik tab StockJBMood..
Itu knp y om, kira" apanya yng salah..

Sayangnya gak bsa buat samsul ya um? :(

nah udh edit manifest, di sign, terus id udh cocok semua ??

iya um udh beberapa yg test gagal pas recompile :v

Gan nama fontsnya apa

Om buat hp oppo find clover bisa gak ya, jb 4.2

This comment has been removed by a blog administrator.

tested kok di jb 4.2 um, test aja :-)

Om cara pindahin isi yg ada di tab pengaturan k tab stockjebe mod gmn om??

buka res/xml/cari setting header, teruh pindah deh yang mau di pindah linenya hehe

This comment has been removed by the author.

Om..kalo edit tabedsettings.smali di bagian "stockjbmod" itu harus edit yg lain juga gak?
Soalnya di ane tampilan setting jd blank klo edit text itu

gan link smali yg tab 3 eror..
tolong di perbaiki...
terima kasih sebelum nya gan.

Gan... udah bisa...tapi pas waktu mau berpindah tab kog fc? Saya cek di logcat, error di TabbedSettings$1.smali... tp saya cek kembali id public nya udah bener...jd dmn salahnya?

Ini kenapa yah um tio.?


I: Smaling...
[0,0] 2131034118 cannot fit into a short
[100,4] mismatched tree node: I_STATEMENT_FORMAT35c_METHOD expecting I_CATCHES
[102,4] mismatched tree node: I_STATEMENT_FORMAT11x expecting
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: /sdcard/apktool/Settings_src_src/smali/com/android/settings/TabbedSettings$1.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
at brut.androlib.Androlib.buildSources(Androlib.java:214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)

Knapa nih om dimna yg erornya
Ane pake andromax u2 Jb4,1

I: Smaling...
[0,0] 2131820544 cannot fit into a short
[100,4] mismatched tree node: I_STATEMENT_FORMAT35c_METHOD expecting I_CATCHES
[102,4] mismatched tree node: I_STATEMENT_FORMAT11x expecting
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: /sdcard/apktool/Settings_src_signfont_battery_src_src/smali/com/android/settings/TabbedSettings$1.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
at brut.androlib.Androlib.buildSources(Androlib.java:214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)

Samsung eror di smali

Sinyal yg berupa xml cr krubhnya gimn gan ?
Icon sinyl bawaan yg berupa xml biar tau gmbr&bentuk sinylnya gimn crnya gan ?

0x7f11 slide_in_left (AMBIL HANYA 4 KODE)
Itu maksudnya gmn om? Di public.xml kan gak 4 digit

ambl 4 digit awal om, kan itu hanya 4 kode saja yang di ambil

Berkomentarlah yang baik, tidak mencela postingan :-) . Gunakan bahasa yang sopan dan mudah di mengerti.

TERIMA KASIH TELAH BERKOMENTAR, karena pengunjung yang baik adalah pengunjung yang berkomentar :-) :v
EmoticonEmoticon