Blog Ardhana - Selamat Tahun baru 2016 sobatku, OK langsung saja pada pokok pembahasan yang akan saya share untuk kamu. Pada artikel ini, saya akan berbagi tutorial mengenai aplikasi Android, yakni salah satu aplikasi yang sudah banyak orang pakai, yaitu BBM. Mengenai soal BBM, tentu tak heran jika kamu juga pernah mendengar BBM MOD, atau BBM Modifikasi. BBM yang mempunyai tampilan unik, berbeda dengan BBM Official yang ada di Playstore. Namun yang perlu kamu ketahui, mesikpun BBM MOD adalah BBM unik dengan tampilan yang berbeda dari Playstore, Base dari BBM MOD sendiri asalnya berawal dari Playstore itu.
Dan kali ini, saya akan membagikan tutorial Switch Big Display Picture Profile BBM. Seperti apa tutorialnya? simak penjelasan saya di bawah ini.
Membuat Switch Big Display Picture Profile BBM
1. Kamu paham Decompile/Recompile. Skip, anggap saja sudah paham, kemudian Decompile aplikasi BBM.apk Bisa kamu cari disini.2. Jika sudah di Decompile, Siapkan 2 Layout activity_view_profile.xml dengan activity_view_profile_big.xml (dimana yang big merupakan layout yang sudah diedit menjadi Big DP, untuk mengubah jadi Big DP bisa kamu pakai cara instan lewat Portable APKTool. Download disini. Saya sarankan download paling terbaru)
3. Buka smali ViewProfileActivity.smali yang ada di folder smali/com/bbm/ui/activities
4. Masukan kode berikut di bawah # direct methods
.method private setContent()V
.locals 4
.prologue
.line 20
invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
move-result-object v0
const-string v1, "DeltaBigDp.Checked"
const/4 v2, 0x1
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-nez v0, :cond_0
.line 21
invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
const-string v1, "activity_view_profile"
const-string v2, "layout"
invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
move-result-object v3
invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
.line 28
:goto_0
return-void
.line 24
:cond_0
invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
const-string v1, "activity_view_profile_big"
const-string v2, "layout"
invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
move-result-object v3
invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
goto :goto_0
.end method
4. Ganti kode A dengan B- Kode A
.line 242
const v0, 0x7f03008f
invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
- Kode B
.line 15
invoke-direct {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContent()V
5. Untuk yang menggunakan PreferenceActivity gunakan kode di bawah namun jika mau ditempatkan di layout activity_setting.xml lanjut step 6Tambahkan kode berikut di prefernce.xml dari PreferenceActivity Anda (Contoh di delta_preference.xml)
<CheckBoxPreference android:icon="@drawable/delta_dp" android:title="@string/bigdp" android:key="DeltaBigDp.Checked" android:defaultValue="true" android:summaryOn="@string/enabled" android:summaryOff="@string/disabled" />
6. Buat smali baru dengan nama DeltaBigDp.smali letaknya di com/mod/dp/ isinya sebagai berikut :.class public Lcom/mod/dp/DeltaBigDp;
.super Lcom/mod/libs/TCheckBoxMod;
.source "DeltaBigDp.java"
# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 1
.param p1, "cont" # Landroid/content/Context;
.param p2, "attr" # Landroid/util/AttributeSet;
.prologue
.line 12
const/4 v0, 0x0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-direct {p0, p1, p2, v0}, Lcom/mod/libs/TCheckBoxMod;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;Ljava/lang/Boolean;)V
.line 13
return-void
.end method
# virtual methods
.method public onSwitchOFF()V
.locals 1
.prologue
.line 26
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
.line 27
return-void
.end method
.method public onSwitchON()V
.locals 1
.prologue
.line 19
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
.line 20
return-void
.end method
7. Tambahkan kode berikut di layout activity_setting.xml <LinearLayout android:orientation="horizontal" android:paddingLeft="@dimen/settings_item_padding_left" android:paddingTop="@dimen/settings_item_padding_top" android:paddingBottom="@dimen/settings_item_padding_bottom" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.mod.libs.TLabel android:textColor="@color/listItemTitle" android:layout_gravity="center_vertical" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="Big DP on Profile" android:layout_weight="1.0" style="@style/Common.Label" />
<com.mod.dp.DeltaBigDp android:textColor="@color/listItemTitle" android:paddingRight="@dimen/settings_item_small_padding_right" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
Demikian tutorial yang bisa saya berikan untuk kamu, dan semoga bermanfaat. Share juga artikel ini ke teman teman kamu agar ikut mencobanya.Credit: Yoyocx S Praditya P