Membuat Switch Big Display Picture Profile BBM
Membuat Switch Big Display Picture Profile BBM

Tutorial Switch Big Display picture Profile BBM

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 6

Tambahkan 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

Related Posts

Load comments

Comments