3333
3434import org .gnucash .android .R ;
3535import org .gnucash .android .ui .UxArgument ;
36+ import org .gnucash .android .ui .passcode .PasscodeLockScreenActivity ;
3637import org .gnucash .android .ui .passcode .PasscodePreferenceActivity ;
3738
3839/**
4344public class PasscodePreferenceFragment extends PreferenceFragment {
4445
4546 /**
46- * * Request code for retrieving passcode to store
47+ * Request code for retrieving passcode to store
4748 */
4849 public static final int PASSCODE_REQUEST_CODE = 2 ;
50+ /**
51+ * Request code for disabling passcode
52+ */
53+ public static final int REQUEST_DISABLE_PASSCODE = 3 ;
4954
5055 private SharedPreferences .Editor editor ;
5156 private CheckBoxPreference checkBoxPreference ;
@@ -78,7 +83,9 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
7883 if ((Boolean ) newValue ) {
7984 startActivityForResult (intent , PASSCODE_REQUEST_CODE );
8085 } else {
81- checkBoxPreference .setTitle (passcodeDisabled );
86+ Intent passIntent = new Intent (getActivity (), PasscodeLockScreenActivity .class );
87+ passIntent .putExtra (UxArgument .DISABLE_PASSCODE , UxArgument .DISABLE_PASSCODE );
88+ startActivityForResult (passIntent , REQUEST_DISABLE_PASSCODE );
8289 }
8390 editor .putBoolean (UxArgument .ENABLED_PASSCODE , (Boolean ) newValue );
8491 editor .commit ();
@@ -99,13 +106,25 @@ public boolean onPreferenceClick(Preference preference) {
99106 public void onActivityResult (int requestCode , int resultCode , Intent data ) {
100107 super .onActivityResult (requestCode , resultCode , data );
101108
102- if (resultCode == Activity .RESULT_OK && requestCode == PASSCODE_REQUEST_CODE && data != null ) {
103- editor .putString (UxArgument .PASSCODE , data .getStringExtra (UxArgument .PASSCODE ));
104- Toast .makeText (getActivity (), R .string .toast_passcode_set , Toast .LENGTH_SHORT ).show ();
105- checkBoxPreference .setTitle (getString (R .string .title_passcode_enabled ));
106- } else {
107- editor .putBoolean (UxArgument .ENABLED_PASSCODE , false );
108- checkBoxPreference .setChecked (false );
109+ switch (requestCode ) {
110+ case PASSCODE_REQUEST_CODE :
111+ if (resultCode == Activity .RESULT_OK && data != null ) {
112+ editor .putString (UxArgument .PASSCODE , data .getStringExtra (UxArgument .PASSCODE ));
113+ editor .putBoolean (UxArgument .ENABLED_PASSCODE , true );
114+ Toast .makeText (getActivity (), R .string .toast_passcode_set , Toast .LENGTH_SHORT ).show ();
115+ checkBoxPreference .setTitle (getString (R .string .title_passcode_enabled ));
116+ }
117+ if (resultCode == Activity .RESULT_CANCELED ) {
118+ editor .putBoolean (UxArgument .ENABLED_PASSCODE , false );
119+ checkBoxPreference .setChecked (false );
120+ checkBoxPreference .setTitle (getString (R .string .title_passcode_disabled ));
121+ }
122+ break ;
123+ case REQUEST_DISABLE_PASSCODE :
124+ boolean flag = (resultCode == Activity .RESULT_OK ) ? false : true ;
125+ editor .putBoolean (UxArgument .ENABLED_PASSCODE , flag );
126+ checkBoxPreference .setChecked (flag );
127+ break ;
109128 }
110129 editor .commit ();
111130 }
0 commit comments