tested and work perfectly in JB 4.1.2 xwms3 based
Before modding do a Nandroid Backup
To achieve you need:
SecSettings.apk
SecContacts.apk
tool for decompile and compile like apktool 1.5.2;
tool for text edit like notepad++:
Start with SecSettings.apk:
Decompile SecSettings.apk ,go in res/xml ,open with text editor display_settings.xml and add the red line
Code:
<CheckBoxPreference android:persistent="false" android:title="@string/display_saving" android:key="power_saving_mode" android:summary="@string/display_saving_mode_summary" />
<CheckBoxPreference android:persistent="false" android:title="@string/notification_pulse_title" android:key="notification_pulse" />
<PreferenceCategory android:title="@string/dialer_options">
<ListPreference android:persistent="false" android:entries="@array/dialer_bg_entries" android:title="@string/dialer_bg_chooser" android:key="dialer_chooser" android:summary="@string/dialer_bg_chooser_summary" android:entryValues="@array/dialer_bg_values" />
</PreferenceCategory>
Code:
<string-array name="dialer_bg_entries">
<item>Stock Dialer</item>
<item>Anastasia Dialer</item>
<item>BlackGlass Dialer</item>
<item>Chrome Dialer</item>
<item>Orange Dialer</item>
<item>Rainbow Dialer</item>
<item>White Dialer</item>
</string-array>
<string-array name="dialer_bg_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
</string-array>
</resources>
Code:
<string name="dialer_options">Options Dialer</string>
<string name="dialer_bg_chooser">Choose Dialer</string>
<string name="dialer_bg_chooser_summary">Select the background of dialer</string>
</resources>
Code:
.field private final mCurConfig:Landroid/content/res/Configuration;
.field private mDialerChooser:Landroid/preference/ListPreference;
.field private mDirect:I
.field mDirectUri:Landroid/net/Uri;
Code:
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
.line 424
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
invoke-virtual {v12, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "dialer_chooser"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Landroid/preference/ListPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mDialerChooser:Landroid/preference/ListPreference;
const-string v12, "dialer_chooser"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mDialerChooser:Landroid/preference/ListPreference;
invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v12
invoke-virtual {v13, v12}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mDialerChooser:Landroid/preference/ListPreference;
invoke-virtual {v13, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
Code:
const-string v2, "contextualpage_settings"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_dialer_chooser change this from cond_2 to cond_dialer_chooser
.line 1089
check-cast p2, Ljava/lang/Boolean;
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-eqz v0, :cond_e
Code:
.line 1100
const-string v1, "DisplaySettings"
const-string v3, "CONTEXTUALPAGE_SWITCH_CHANGED changed = false"
invoke-static {v1, v3}, Landroid/util/Log;->secD(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_7
:cond_11
move-wide v0, v4
goto/16 :goto_3
:cond_dialer_chooser
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mDialerChooser:Landroid/preference/ListPreference;
if-ne p1, v1, :cond_2
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "dialer_chooser"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
.end method
SecContacts.apk part
Decompile SecContacts.apk ,download this zip Attachment 2901418 and put all the drawable pngs in SecContacts\res\drawable-sw320dp-hdpi
Compile SecContacts and decompile the new SecContacts.apk to obtain the new ids of the new pngs
So open SystemUI\res\value\public and leave it open to check the new ids
Go in SecContacts/smali/com/sec/android/app/dialertab/dialpad and open DialpadFragment.smali file and add the following red lines
Code:
.field private mAddContactsDialog:Landroid/app/AlertDialog;
.field private mAdditionalButtonBackground:I
.field private mAdditionalButtonBackgroundLand:I
.field private mAudioManager:Landroid/media/AudioManager;
.field private mButtonAnimLeft:Landroid/view/animation/TranslateAnimation;
.
.
.
.field private mDialButtonSim1:Landroid/view/View;
.field private mDialButtonSim2:Landroid/view/View;
.field private mDialerBackground:I
.field private mDialerLandBackground:I
.field private mDialpad:Landroid/view/View;
.field private mDialpadAdditionalButtons:Landroid/view/View;
in blue lines some explanation
Code:
.method set_dialer_background(Landroid/content/Context;)V
.locals 5
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "dialer_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7f02039e check this id with dialer_bg_p_01 in your res/value
goto :goto_0
:cond_0
const v2, 0x7f02064b check this id with anastasia_dialer_bg_p_01 in your res/value
goto :goto_0
:cond_1
const v2, 0x7f02064c check this id with blackglass_dialer_bg_p_01 in your res/value
goto :goto_0
:cond_2
const v2, 0x7f02064d check this id with chrome_dialer_bg_p_01 in your res/value
goto :goto_0
:cond_3
const v2, 0x7f02064a check this id with orange_dialer_bg_p_01 in your res/value
goto :goto_0
:cond_4
const v2, 0x7f02064e check this id with rainbow_dialer_bg_p_01 in your res/value
goto :goto_0
:cond_5
const v2, 0x7f02064f check this id with white_dialer_bg_p_01 in your res/value
:goto_0
iput v2, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerBackground:I
return-void
.end method
.method set_dialerland_background(Landroid/content/Context;)V
.locals 5
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "dialer_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7f020395 check this id with dialer_bg_h_01 in your res/value
goto :goto_0
:cond_0
const v2, 0x7f020656 check this id with anastasia_dialer_bg_h_01 in your res/value
goto :goto_0
:cond_1
const v2, 0x7f020658 check this id with blackglass_dialer_bg_h_01 in your res/value
goto :goto_0
:cond_2
const v2, 0x7f02065a check this id with chrome_dialer_bg_h_01 in your res/value
goto :goto_0
:cond_3
const v2, 0x7f02065c check this id with orange_dialer_bg_h_01 in your res/value
goto :goto_0
:cond_4
const v2, 0x7f02065e check this id with rainbow_dialer_bg_h_01 in your res/value
goto :goto_0
:cond_5
const v2, 0x7f020660 check this id with white_dialer_bg_h_01 in your res/value
:goto_0
iput v2, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerLandBackground:I
return-void
.end method
.method set_additional_button_background(Landroid/content/Context;)V
.locals 5
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "dialer_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7f02039f check this id with dialer_bg_p_02 in your res/value
goto :goto_0
:cond_0
const v2, 0x7f020650 check this id with anastasia_dialer_bg_p_02 in your res/value
goto :goto_0
:cond_1
const v2, 0x7f020651 check this id with blackglass_dialer_bg_p_02 in your res/value
goto :goto_0
:cond_2
const v2, 0x7f020652 check this id with chrome_dialer_bg_p_02 in your res/value
goto :goto_0
:cond_3
const v2, 0x7f020653 check this id with orange_dialer_bg_p_02 in your res/value
goto :goto_0
:cond_4
const v2, 0x7f020654 check this id with rainbow_dialer_bg_p_02 in your res/value
goto :goto_0
:cond_5
const v2, 0x7f020655 check this id with white_dialer_bg_p_02 in your res/value
:goto_0
iput v2, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackground:I
return-void
.end method
.method set_additional_button_background_land(Landroid/content/Context;)V
.locals 5
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "dialer_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7f020396 check this id with dialer_bg_h_02 in your res/value
goto :goto_0
:cond_0
const v2, 0x7f020657 check this id with anastasia_dialer_bg_h_02 in your res/value
goto :goto_0
:cond_1
const v2, 0x7f020659 check this id with blackglass_dialer_bg_h_02 in your res/value
goto :goto_0
:cond_2
const v2, 0x7f02065b check this id with chrome_dialer_bg_h_02 in your res/value
goto :goto_0
:cond_3
const v2, 0x7f02065d check this id with orange_dialer_bg_h_02 in your res/value
goto :goto_0
:cond_4
const v2, 0x7f02065f check this id with rainbow_dialer_bg_h_02 in your res/value
goto :goto_0
:cond_5
const v2, 0x7f020661 check this id with white_dialer_bg_h_02 in your res/value
:goto_0
iput v2, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackgroundLand:I
return-void
.end method
In the same method find this code
Code:
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {v1, v3}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {v1, v3}, Landroid/view/View;->setVisibility(I)V
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v5
invoke-virtual {p0, v5}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_dialer_background(Landroid/content/Context;)V
iget v5, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerBackground:I
invoke-virtual {v1, v5}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {v1, v3}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {v1, v3}, Landroid/view/View;->setVisibility(I)V
iget-object v1, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v5
invoke-virtual {p0, v5}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_dialerland_background(Landroid/content/Context;)V
iget v5, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerLandBackground:I
invoke-virtual {v1, v5}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {v0, v3}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {v0, v3}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v5
invoke-virtual {p0, v5}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_additional_button_background(Landroid/content/Context;)V
iget v5, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackground:I
invoke-virtual {v0, v5}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {v0, v3}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {v0, v3}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v5
invoke-virtual {p0, v5}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_additional_button_background_land(Landroid/content/Context;)V
iget v5, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackgroundLand:I
invoke-virtual {v0, v5}, Landroid/view/View;->setBackgroundResource(I)V
then in the same method find this code, pay attention it appears more than once and you need to add for each
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpad:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v12
invoke-virtual {p0, v12}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_dialer_background(Landroid/content/Context;)V
iget v12, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerBackground:I
invoke-virtual {v0, v12}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadLand:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v12
invoke-virtual {p0, v12}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_dialerland_background(Landroid/content/Context;)V
iget v12, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialerLandBackground:I
invoke-virtual {v0, v12}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtons:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v12
invoke-virtual {p0, v12}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_additional_button_background(Landroid/content/Context;)V
iget v12, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackground:I
invoke-virtual {v0, v12}, Landroid/view/View;->setBackgroundResource(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
Code:
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {v0, v7}, Landroid/view/View;->setVisibility(I)V
iget-object v0, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mDialpadAdditionalButtonsLand:Landroid/view/View;
invoke-virtual {p0}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->getActivity()Landroid/app/Activity;
move-result-object v12
invoke-virtual {p0, v12}, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->set_additional_button_background_land(Landroid/content/Context;)V
iget v12, p0, Lcom/sec/android/app/dialertab/dialpad/DialpadFragment;->mAdditionalButtonBackgroundLand:I
invoke-virtual {v0, v12}, Landroid/view/View;->setBackgroundResource(I)V