[Verizon Samsung Galaxy S III] Didact74:
Part TWO

Decompile SecSettings.apk

Navigate to res/values/arrays

Add the followin lines

<string-array name="lockscreen_entries">
<item>Acer Cloud</item>
<item>Galaxy SIII Ripple/Circle</item>
<item>BlackBerry 10</item>
<item>AOSP LockScreen</item>
<item>HTC Sense 4.0</item>
<item>LG Optimus</item>
</string-array>
<string-array name="lockscreen_values">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>-1</item>
<item>-2</item>
</string-array>

Navigate to res/xml/lockscreen_settings.xml

Replace all the code with the following

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/lock_screen"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<ListPreference android:persistent="true" android:entries="@array/lockscreen_entries" android:title="Choose Your LockScreen" android:key="lockscreen_type_key" android:defaultValue="1" android:entryValues="@array/lockscreen_values" />
<CheckBoxPreference android:title="@string/enable_lockscreen_torch" android:key="enable_lockscreen_torch" android:summary="@string/enable_lockscreen_torch_text" />
<SwitchPreferenceScreen android:title="@string/lock_screen_shortcut_title" android:key="lock_screen_shortcut" android:summary="@string/lock_screen_shortcut_summary">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.lockscreenshortcut.LockScreenShortcutSettings" />
</SwitchPreferenceScreen>
<SwitchPreferenceScreen android:title="@string/information_ticker" android:key="information_ticker" android:summary="@string/information_ticker_summary" android:fragment="com.android.settings.InformationTicker" />
<CheckBoxPreference android:title="@string/clock" android:key="clock" android:summary="@string/clock_summary" />
<SwitchPreferenceScreen android:title="@string/dualclock_settings_title" android:key="dualclock_settings" android:summary="@string/dualclock_settings_summary" android:dependency="clock" android:fragment="com.android.settings.dualclock.DualClockSetting" />
<SwitchPreferenceScreen android:title="@string/weather" android:key="weather" android:summary="@string/weather_summary" />
<CheckBoxPreference android:title="@string/ripple_effect" android:key="ripple_effect" android:summary="@string/ripple_effect_summary" />
<PreferenceScreen android:title="@string/ink_effect" android:key="ink_effect">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.InkeffectPreview" />
</PreferenceScreen>
<CheckBoxPreference android:title="@string/help_text_title" android:key="help_text" android:summary="@string/help_text_summary" />
<PreferenceCategory android:title="@string/features_category_title" android:key="feature_category" />
<SwitchPreferenceScreen android:title="@string/motion_camera_short_cut_title" android:key="camera_short_cut" android:summary="@string/motion_camera_short_cut_summary" android:fragment="com.android.settings.motion.MotionView">
<extra android:name="title" android:value="@string/motion_camera_short_cut_title" />
<extra android:name="sensitivity" android:value="false" />
</SwitchPreferenceScreen>
<CheckBoxPreference android:title="@string/samsung_unlock_option_say_your_wakeup_command_to_unlock_screen" android:key="say_your_wakeup" android:summary="@string/wakeup_in_lockscreen_summary" />
<PreferenceScreen android:title="@string/samsung_unlock_option_set_wakeup_command" android:key="set_wakeup_command">
<intent android:action="android.intent.action.VOICE_SETTING_SET_WAKEUP_COMMAND" />
</PreferenceScreen>
</PreferenceScreen>

Navigate to smali/com/android/settings/LockScreenSettings.smali

Add the following code at the top of the file

.field private mLockScreenStylePref:Landroid/preference/ListPreference;

Find the following method

.method private updateState()V

Replace the entire method with the following code

.method private updateState()V
.locals 9

.prologue
const/4 v5, 0x1

const/4 v6, 0x0

.line 263
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mLockScreenTorch:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "enable_lockscreen_torch"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_12

move v4, v5

:goto_0
invoke-virtual {v7, v4}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

.line 265
invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mClock:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "show_clock"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_7

move v4, v5

:goto_1
invoke-virtual {v7, v4}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

.line 265
invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "aw_daemon_service_key_app_service_status"

invoke-static {v4, v7, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

and-int/lit8 v2, v4, 0x1

.line 267
.local v2, mAppLockScreen:I
invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "pen_hovering_ink_effect"

invoke-static {v4, v7, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

.line 269
.local v3, mInkEffectColor:I
const-string v4, "LockScreenSettings"

new-instance v7, Ljava/lang/StringBuilder;

invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

const-string v8, "mInkEffectColor : "

invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v7

invoke-static {v4, v7}, Landroid/util/secutil/Log;->secD(Ljava/lang/String;Ljava/lang/String;)I

.line 271
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mWeather:Landroid/preference/SwitchPreferenceScreen;

if-eqz v4, :cond_0

.line 272
if-ne v2, v5, :cond_8

.line 273
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mWeather:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {v4, v5}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

.line 278
:cond_0
:goto_2
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mDualclock:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "dualclock_menu_settings"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_9

move v4, v5

:goto_3
invoke-virtual {v7, v4}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

.line 279
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mInformationTicker:Landroid/preference/SwitchPreferenceScreen;

if-eqz v4, :cond_1

.line 280
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mInformationTicker:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "information_ticker"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_a

move v4, v5

:goto_4
invoke-virtual {v7, v4}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

.line 282
:cond_1
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mCameraShortCut:Landroid/preference/SwitchPreferenceScreen;

if-eqz v4, :cond_2

.line 283
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mCameraShortCut:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "motion_unlock_camera_short_cut"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_b

move v4, v5

:goto_5
invoke-virtual {v7, v4}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

.line 286
:cond_2
invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "lockscreen_wallpaper"

invoke-static {v4, v7, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-ne v4, v5, :cond_c

move v0, v6

.line 287
.local v0, isLiveWallpaper:Z
:goto_6
invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "lock_motion_tilt_to_unlock"

invoke-static {v4, v7, v6}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v1

.line 289
.local v1, isMotionLock:I
if-nez v0, :cond_3

if-lez v1, :cond_d

.line 290
:cond_3
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {v4, v6}, Landroid/preference/CheckBoxPreference;->setEnabled(Z)V

.line 293
:goto_7
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "lockscreen_ripple_effect"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_e

move v4, v5

:goto_8
invoke-virtual {v7, v4}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "lockscreen_type_key"

invoke-static {v4, v7, v6}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v1

const/4 v0, 0x1

if-eq v1, v0, :cond_13

iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {v4, v6}, Landroid/preference/CheckBoxPreference;->setEnabled(Z)V

invoke-virtual {v4, v6}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

:goto_9

:goto_a
.line 294
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mInkEffect:Landroid/preference/PreferenceScreen;

iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {v7}, Landroid/preference/CheckBoxPreference;->isChecked()Z

move-result v7

invoke-virtual {v4, v7}, Landroid/preference/PreferenceScreen;->setEnabled(Z)V

.line 295
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mInkEffect:Landroid/preference/PreferenceScreen;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getResources()Landroid/content/res/Resources;

move-result-object v7

iget-object v8, p0, Lcom/android/settings/LockScreenSettings;->mInkEffectSummary:[I

aget v8, v8, v3

invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

move-result-object v7

invoke-virtual {v4, v7}, Landroid/preference/PreferenceScreen;->setSummary(Ljava/lang/CharSequence;)V

.line 297
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mHelpText:Landroid/preference/CheckBoxPreference;

if-eqz v4, :cond_4

.line 298
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mHelpText:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "unlock_text"

invoke-static {v4, v8, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_f

move v4, v5

:goto_b
invoke-virtual {v7, v4}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

.line 300
:cond_4
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mSayCommand:Landroid/preference/CheckBoxPreference;

if-eqz v4, :cond_5

.line 301
iget-object v7, p0, Lcom/android/settings/LockScreenSettings;->mSayCommand:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v8, "wake_up_lock_screen"

invoke-static {v4, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

if-eqz v4, :cond_10

move v4, v5

:goto_c
invoke-virtual {v7, v4}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

.line 304
:cond_5
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mLockScreenShortcut:Landroid/preference/SwitchPreferenceScreen;

if-eqz v4, :cond_6

.line 305
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mLockScreenShortcut:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {p0}, Lcom/android/settings/LockScreenSettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v7

const-string v8, "lock_screen_shortcut"

invoke-static {v7, v8, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v7

if-ne v7, v5, :cond_11

:goto_d
invoke-virtual {v4, v5}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

.line 308
:cond_6
return-void

.end local v0 #isLiveWallpaper:Z
.end local v1 #isMotionLock:I
.end local v2 #mAppLockScreen:I
.end local v3 #mInkEffectColor:I
:cond_7
move v4, v6

.line 263
goto/16 :goto_1

.line 275
.restart local v2 #mAppLockScreen:I
.restart local v3 #mInkEffectColor:I
:cond_8
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mWeather:Landroid/preference/SwitchPreferenceScreen;

invoke-virtual {v4, v6}, Landroid/preference/SwitchPreferenceScreen;->setChecked(Z)V

goto/16 :goto_2

:cond_9
move v4, v6

.line 278
goto/16 :goto_3

:cond_a
move v4, v6

.line 280
goto/16 :goto_4

:cond_b
move v4, v6

.line 283
goto/16 :goto_5

:cond_c
move v0, v5

.line 286
goto/16 :goto_6

.line 292
.restart local v0 #isLiveWallpaper:Z
.restart local v1 #isMotionLock:I
:cond_d
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {v4, v5}, Landroid/preference/CheckBoxPreference;->setEnabled(Z)V

goto/16 :goto_7

:cond_e
move v4, v6

.line 293
goto :goto_8

:cond_f
move v4, v6

.line 298
goto :goto_b

:cond_10
move v4, v6

.line 301
goto :goto_c

:cond_11
move v5, v6

.line 305
goto :goto_d

:cond_12
move v4, v6

.line 263
goto/16 :goto_0

:cond_13
iget-object v4, p0, Lcom/android/settings/LockScreenSettings;->mRippleEffect:Landroid/preference/CheckBoxPreference;

invoke-virtual {v4, v5}, Landroid/preference/CheckBoxPreference;->setEnabled(Z)V

invoke-virtual {v4, v5}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

goto/16 :goto_9

:cond_14
move v4, v6

goto/16 :goto_a
.end method

Go to the next post to continue.....