Membuat Switch Big Display Picture Profile BBM

00.58.00
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

Artikel Lainnya

Previous
Next Post »
Blogger
Disqus
Pilih Sistem Komentar Yang Anda Sukai

Tidak ada komentar

Berkomentarlah yang baik dan benar, boleh promosi asal sopan