Skip to content

Commit e85aa3c

Browse files
committed
Support for Android API 10
1 parent ccbcd6c commit e85aa3c

2 files changed

Lines changed: 53 additions & 23 deletions

File tree

app/src/main/java/org/gnucash/android/ui/passcode/PassLockActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ protected void onResume() {
4343
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
4444
GnuCashApplication.PASSCODE_SESSION_INIT_TIME = 0;
4545
}
46-
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
47-
if (sharedPreferences.getBoolean(UxArgument.ENABLED_PASSCODE, false) && !isSessionActive()) {
46+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
47+
String passCode = prefs.getString(UxArgument.PASSCODE, "");
48+
if (prefs.getBoolean(UxArgument.ENABLED_PASSCODE, false) && !isSessionActive() && !passCode.trim().isEmpty()) {
4849
startActivity(new Intent(this, PasscodeLockScreenActivity.class)
4950
.setAction(getIntent().getAction())
5051
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)

app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.gnucash.android.model.Transaction;
6363
import org.gnucash.android.ui.UxArgument;
6464
import org.gnucash.android.ui.account.AccountsActivity;
65+
import org.gnucash.android.ui.passcode.PasscodeLockScreenActivity;
6566
import org.gnucash.android.ui.passcode.PasscodePreferenceActivity;
6667

6768
import java.io.File;
@@ -201,8 +202,13 @@ protected void onCreate(Bundle savedInstanceState) {
201202

202203
pref = findPreference(getString(R.string.key_enable_passcode));
203204
pref.setOnPreferenceChangeListener(this);
204-
pref.setTitle(((CheckBoxPreference) pref).isChecked() ?
205-
getString(R.string.title_passcode_enabled) : getString(R.string.title_passcode_disabled));
205+
pref.setTitle(((CheckBoxPreference) pref).isChecked()
206+
? getString(R.string.title_passcode_enabled)
207+
: getString(R.string.title_passcode_disabled)
208+
);
209+
210+
pref = findPreference(getString(R.string.key_change_passcode));
211+
pref.setOnPreferenceClickListener(this);
206212
}
207213
}
208214

@@ -251,12 +257,10 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
251257
startActivityForResult(new Intent(this, PasscodePreferenceActivity.class),
252258
PasscodePreferenceFragment.PASSCODE_REQUEST_CODE);
253259
} else {
254-
preference.setTitle(getString(R.string.title_passcode_disabled));
260+
Intent passIntent = new Intent(this, PasscodeLockScreenActivity.class);
261+
passIntent.putExtra(UxArgument.DISABLE_PASSCODE, UxArgument.DISABLE_PASSCODE);
262+
startActivityForResult(passIntent, PasscodePreferenceFragment.REQUEST_DISABLE_PASSCODE);
255263
}
256-
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
257-
.edit()
258-
.putBoolean(UxArgument.ENABLED_PASSCODE, (Boolean) newValue)
259-
.commit();
260264
} else if (preference.getKey().equals(getString(R.string.key_use_double_entry))){
261265
setImbalanceAccountsHidden((Boolean) newValue);
262266
}
@@ -373,7 +377,7 @@ public boolean onPreferenceClick(Preference preference) {
373377

374378
if (key.equals(getString(R.string.key_change_passcode))){
375379
startActivityForResult(new Intent(this, PasscodePreferenceActivity.class),
376-
PasscodePreferenceFragment.PASSCODE_REQUEST_CODE);
380+
PasscodePreferenceFragment.REQUEST_CHANGE_PASSCODE);
377381
return true;
378382
}
379383

@@ -567,17 +571,6 @@ public void onClick(DialogInterface dialog, int which) {
567571

568572
@Override
569573
public void onActivityResult(int requestCode, int resultCode, Intent data) {
570-
if (resultCode == Activity.RESULT_CANCELED) {
571-
if (requestCode == PasscodePreferenceFragment.PASSCODE_REQUEST_CODE) {
572-
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
573-
.edit()
574-
.putBoolean(UxArgument.ENABLED_PASSCODE, false)
575-
.commit();
576-
((CheckBoxPreference) findPreference(getString(R.string.key_enable_passcode))).setChecked(false);
577-
}
578-
return;
579-
}
580-
581574
switch (requestCode) {
582575
case AccountsActivity.REQUEST_PICK_ACCOUNTS_FILE:
583576
try {
@@ -589,12 +582,48 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
589582
}
590583
break;
591584
case PasscodePreferenceFragment.PASSCODE_REQUEST_CODE:
592-
if (data != null) {
585+
if (resultCode == Activity.RESULT_OK && data != null) {
593586
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
594587
.edit()
595588
.putString(UxArgument.PASSCODE, data.getStringExtra(UxArgument.PASSCODE))
596589
.commit();
597-
Toast.makeText(getApplicationContext(), R.string.toast_passcode_set, Toast.LENGTH_SHORT).show();
590+
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
591+
.edit()
592+
.putBoolean(UxArgument.ENABLED_PASSCODE, true)
593+
.commit();
594+
Toast.makeText(this, R.string.toast_passcode_set, Toast.LENGTH_SHORT).show();
595+
findPreference(getString(R.string.key_enable_passcode)).setTitle(getString(R.string.title_passcode_enabled));
596+
}
597+
if (resultCode == Activity.RESULT_CANCELED) {
598+
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
599+
.edit()
600+
.putBoolean(UxArgument.ENABLED_PASSCODE, false)
601+
.commit();
602+
((CheckBoxPreference) findPreference(getString(R.string.key_enable_passcode))).setChecked(false);
603+
findPreference(getString(R.string.key_enable_passcode)).setTitle(getString(R.string.title_passcode_disabled));
604+
}
605+
break;
606+
607+
case PasscodePreferenceFragment.REQUEST_DISABLE_PASSCODE:
608+
boolean flag = resultCode != Activity.RESULT_OK;
609+
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
610+
.edit()
611+
.putBoolean(UxArgument.ENABLED_PASSCODE, flag)
612+
.commit();
613+
((CheckBoxPreference) findPreference(getString(R.string.key_enable_passcode))).setChecked(flag);
614+
break;
615+
616+
case PasscodePreferenceFragment.REQUEST_CHANGE_PASSCODE:
617+
if (resultCode == Activity.RESULT_OK && data != null) {
618+
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
619+
.edit()
620+
.putString(UxArgument.PASSCODE, data.getStringExtra(UxArgument.PASSCODE))
621+
.commit();
622+
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
623+
.edit()
624+
.putBoolean(UxArgument.ENABLED_PASSCODE, true)
625+
.commit();
626+
Toast.makeText(this, R.string.toast_passcode_set, Toast.LENGTH_SHORT).show();
598627
findPreference(getString(R.string.key_enable_passcode)).setTitle(getString(R.string.title_passcode_enabled));
599628
}
600629
break;

0 commit comments

Comments
 (0)