yoyocx

On Off Big DP

Dec 20th, 2015
1,073
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1.  
  2. 1. Siapkan 2 Layout activity_view_profile.xml dengan activity_view_profile_big.xml (dimana yang big merupakan layout yang sudah diedit menjadi bigdp)
  3.  
  4. 2. Buka smali ViewProfileActivity.smali
  5.  
  6. 3. Masukan kode berikut di bawah # direct methods
  7.  
  8. .method private setContent()V
  9. .locals 4
  10.  
  11. .prologue
  12. .line 20
  13. invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
  14.  
  15. move-result-object v0
  16.  
  17. invoke-static {v0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
  18.  
  19. move-result-object v0
  20.  
  21. const-string v1, "DeltaBigDp.Checked"
  22.  
  23. const/4 v2, 0x1
  24.  
  25. invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
  26.  
  27. move-result v0
  28.  
  29. invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
  30.  
  31. move-result-object v0
  32.  
  33. invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
  34.  
  35. move-result v0
  36.  
  37. if-nez v0, :cond_0
  38.  
  39. .line 21
  40. invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
  41.  
  42. move-result-object v0
  43.  
  44. invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  45.  
  46. move-result-object v0
  47.  
  48. const-string v1, "activity_view_profile"
  49.  
  50. const-string v2, "layout"
  51.  
  52. invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
  53.  
  54. move-result-object v3
  55.  
  56. invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
  57.  
  58. move-result-object v3
  59.  
  60. invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  61.  
  62. move-result v0
  63.  
  64. invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
  65.  
  66. .line 28
  67. :goto_0
  68. return-void
  69.  
  70. .line 24
  71. :cond_0
  72. invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
  73.  
  74. move-result-object v0
  75.  
  76. invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  77.  
  78. move-result-object v0
  79.  
  80. const-string v1, "activity_view_profile_big"
  81.  
  82. const-string v2, "layout"
  83.  
  84. invoke-virtual {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->getBaseContext()Landroid/content/Context;
  85.  
  86. move-result-object v3
  87.  
  88. invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
  89.  
  90. move-result-object v3
  91.  
  92. invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  93.  
  94. move-result v0
  95.  
  96. invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
  97.  
  98. goto :goto_0
  99. .end method
  100.  
  101.  
  102. 4. Ganti kode A dengan B
  103.  
  104. (A) .line 242
  105. const v0, 0x7f03008f
  106.  
  107. invoke-virtual {p0, v0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContentView(I)V
  108.  
  109.  
  110. (B) .line 15
  111. invoke-direct {p0}, Lcom/bbm/ui/activities/ViewProfileActivity;->setContent()V
  112.  
  113. 5. Untuk yang menggunakan PreferenceActivity gunakan kode di bawah namun jika mau ditempatkan di layout activity_setting.xml lanjut step 6
  114.  
  115. Tambahkan kode berikut di prefernce.xml dari PreferenceActivity Anda (Contoh di delta_preference.xml)
  116.  
  117. <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" />
  118.  
  119.  
  120. 6. Bikin smali baru dengan nama DeltaBigDp.smali letaknya di com/mod/dp/* isinya sebagai berikut :
  121.  
  122. .class public Lcom/mod/dp/DeltaBigDp;
  123. .super Lcom/mod/libs/TCheckBoxMod;
  124. .source "DeltaBigDp.java"
  125.  
  126.  
  127. # direct methods
  128. .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
  129. .locals 1
  130. .param p1, "cont" # Landroid/content/Context;
  131. .param p2, "attr" # Landroid/util/AttributeSet;
  132.  
  133. .prologue
  134. .line 12
  135. const/4 v0, 0x0
  136.  
  137. invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
  138.  
  139. move-result-object v0
  140.  
  141. invoke-direct {p0, p1, p2, v0}, Lcom/mod/libs/TCheckBoxMod;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;Ljava/lang/Boolean;)V
  142.  
  143. .line 13
  144. return-void
  145. .end method
  146.  
  147.  
  148. # virtual methods
  149. .method public onSwitchOFF()V
  150. .locals 1
  151.  
  152. .prologue
  153. .line 26
  154. invoke-static {}, Landroid/os/Process;->myPid()I
  155.  
  156. move-result v0
  157.  
  158. invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
  159.  
  160. .line 27
  161. return-void
  162. .end method
  163.  
  164. .method public onSwitchON()V
  165. .locals 1
  166.  
  167. .prologue
  168. .line 19
  169. invoke-static {}, Landroid/os/Process;->myPid()I
  170.  
  171. move-result v0
  172.  
  173. invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
  174.  
  175. .line 20
  176. return-void
  177. .end method
  178.  
  179.  
  180. 7. Langsung tambahkan kode berikut di layout activity_setting.xml
  181.  
  182. <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">
  183. <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" />
  184. <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" />
  185. </LinearLayout>
Advertisement
Add Comment
Please, Sign In to add comment