Advertisement
yoyocx

Theming BBM

Jun 25th, 2015
737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 4.80 KB | None | 0 0
  1. ========================================================================================
  2. 1. Bikin Tema baru masukin di style
  3.  
  4.     <style name="Delta.Dark" parent="@style/Theme.AppCompat">
  5.         <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
  6.         <item name="windowActionBar">false</item>
  7.         <item name="windowActionModeOverlay">true</item>
  8.         <item name="actionModeStyle">@style/BBMAppTheme.ActionMode</item>
  9.         <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
  10.         <item name="colorPrimary">@color/primaryColor</item>
  11.         <item name="colorPrimaryDark">@color/primaryBackground</item>
  12.         <item name="colorAccent">@color/primaryColor</item>
  13.     </style>
  14.     <style name="Delta.Light" parent="@style/Theme.AppCompat.Light.DarkActionBar">
  15.         <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
  16.         <item name="windowActionBar">false</item>
  17.         <item name="windowActionModeOverlay">true</item>
  18.         <item name="actionModeStyle">@style/BBMAppTheme.ActionMode</item>
  19.         <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
  20.         <item name="colorPrimary">@color/primaryColor</item>
  21.         <item name="colorPrimaryDark">@color/primaryBackground</item>
  22.         <item name="colorAccent">@color/primaryColor</item>
  23.     </style>
  24.  
  25. 2. Recompile dan Decompile lagi untuk Generate ID
  26. 3. Jika sudah buka public catat kode id style berikut
  27.      
  28.     <public type="style" name="Delta.Dark" id="0x7f0f018a" />
  29.     <public type="style" name="Delta.Light" id="0x7f0f018b" />
  30.  
  31. 4. Buka DeltaPreference.smali
  32.  
  33.     Line 288 ganti dengan kode style Delta.Dark = 0x7f0f018a
  34.     Line 270 ganti dengan kode style Delta.Light = 0x7f0f018b
  35.  
  36. 5. Buka DeltaBackupRestore.smali
  37.  
  38.     Line 597 ganti dengan kode style Delta.Dark = 0x7f0f018a
  39.     Line 579 ganti dengan kode style Delta.Light = 0x7f0f018b
  40.  
  41. ========================================================================================
  42. B. Untuk menerapkan di setiap activity tambahkan kode berikut :
  43.  
  44. 1. Tambahkan kode ini di instance file
  45.  
  46.     .field private currentTheme:I
  47.  
  48.     .field private isLight:Z
  49.  
  50. 2. Tambahkan kode berikut di dalam # direct method (NOTE: edit kode ini Lcom/delta/backup/DeltaBackupRestore; dengan kode Activity yang dipakai)
  51.  
  52. .method private setPrefTheme()V
  53.     .locals 4
  54.  
  55.     .prologue
  56.     .line 70
  57.     invoke-static {p0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
  58.  
  59.     move-result-object v1
  60.  
  61.     .line 71
  62.     .local v1, "sharedPref":Landroid/content/SharedPreferences;
  63.     const-string v2, "list_preference"
  64.  
  65.     const-string v3, "1"
  66.  
  67.     invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  68.  
  69.     move-result-object v0
  70.  
  71.     .line 73
  72.     .local v0, "lister":Ljava/lang/String;
  73.     invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
  74.  
  75.     move-result v2
  76.  
  77.     iput v2, p0, Lcom/delta/backup/DeltaBackupRestore;->currentTheme:I
  78.  
  79.     .line 74
  80.     iget v2, p0, Lcom/delta/backup/DeltaBackupRestore;->currentTheme:I
  81.  
  82.     const/4 v3, 0x2
  83.  
  84.     if-ne v2, v3, :cond_0
  85.  
  86.     .line 75
  87.     const/4 v2, 0x0
  88.  
  89.     iput-boolean v2, p0, Lcom/delta/backup/DeltaBackupRestore;->isLight:Z
  90.  
  91.     .line 80
  92.     :goto_0
  93.     iget-boolean v2, p0, Lcom/delta/backup/DeltaBackupRestore;->isLight:Z
  94.  
  95.     if-eqz v2, :cond_1
  96.  
  97.     .line 81
  98.     const v2, 0x7f0f018b
  99.  
  100.     invoke-virtual {p0, v2}, Lcom/delta/backup/DeltaBackupRestore;->setTheme(I)V
  101.  
  102.     .line 85
  103.     :goto_1
  104.     return-void
  105.  
  106.     .line 77
  107.     :cond_0
  108.     const/4 v2, 0x1
  109.  
  110.     iput-boolean v2, p0, Lcom/delta/backup/DeltaBackupRestore;->isLight:Z
  111.  
  112.     goto :goto_0
  113.  
  114.     .line 83
  115.     :cond_1
  116.     const v2, 0x7f0f018a
  117.  
  118.     invoke-virtual {p0, v2}, Lcom/delta/backup/DeltaBackupRestore;->setTheme(I)V
  119.  
  120.     goto :goto_1
  121. .end method
  122.  
  123.  
  124. 3. Cari .method protected onCreate dan tambahkan kode berikut sehabis selesai kode .prologue
  125.  
  126.     .line 25
  127.     invoke-direct {p0}, Lcom/bbm/ui/activities/SettingsActivity;->setPrefTheme()V
  128.  
  129. ======= CONTOH DI SettingsActivity.smali =======
  130.  
  131. .method public onCreate(Landroid/os/Bundle;)V
  132.     .locals 9
  133.  
  134.     .prologue
  135.     const/4 v2, 0x1
  136.  
  137.     const/4 v1, 0x0
  138.  
  139.     const v8, 0x7f0b0707
  140.  
  141.     const v7, 0x7f0b0706
  142.  
  143.     .line 25
  144.     invoke-direct {p0}, Lcom/bbm/ui/activities/SettingsActivity;->setPrefTheme()V
  145.  
  146.     .line 194
  147.     invoke-super {p0, p1}, Lcom/bbm/bali/ui/main/a/a;->onCreate(Landroid/os/Bundle;)V
  148.  
  149. 4. INGAT, Lcom/bbm/ui/activities/SettingsActivity;->setPrefTheme()V sesuaikan dengan activity yang dipakai.
  150.  
  151. 5. LAST, untuk root layout jangan dikasih background.. dan android:textColor="#ff....." hanya dipake untuk text yang mau diwarnai...selain hitam dan putih
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement