Fix crash in getIntentForPinCreate(), show 'Create' in prefs.

This commit is contained in:
Greyson Parrelli
2020-02-02 22:56:50 -05:00
parent 835ef02872
commit 77caa9e9d4
4 changed files with 36 additions and 7 deletions

View File

@@ -26,14 +26,16 @@ public class CreateKbsPinActivity extends BaseActionBarActivity {
private final DynamicTheme dynamicTheme = new DynamicRegistrationTheme();
public static Intent getIntentForPinCreate(@NonNull Context context) {
return new Intent(context, CreateKbsPinActivity.class);
return getIntent(context, true);
}
public static Intent getIntentForPinUpdate(@NonNull Context context) {
Intent intent = getIntentForPinCreate(context);
intent.putExtra(IS_NEW_PIN, true);
return getIntent(context, false);
}
private static Intent getIntent(@NonNull Context context, boolean isNewPin) {
Intent intent = new Intent(context, CreateKbsPinActivity.class);
intent.putExtra(IS_NEW_PIN, isNewPin);
return intent;
}

View File

@@ -4,6 +4,7 @@ import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
@@ -23,7 +24,6 @@ import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.lock.RegistrationLockDialog;
import org.thoughtcrime.securesms.lock.v2.CreateKbsPinActivity;
import org.thoughtcrime.securesms.lock.v2.PinUtil;
@@ -56,8 +56,16 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
Preference kbsGroup = this.findPreference("prefs_lock_v2");
if (FeatureFlags.pinsForAll()) {
Preference preference = this.findPreference("pref_kbs_change");
regGroup.setVisible(false);
kbsPinChange.setOnPreferenceClickListener(new KbsPinChangeListener());
if (PinUtil.userHasPin(ApplicationDependencies.getApplication())) {
kbsPinChange.setOnPreferenceClickListener(new KbsPinUpdateListener());
preference.setWidgetLayoutResource(R.layout.kbs_pin_change_preference);
} else {
kbsPinChange.setOnPreferenceClickListener(new KbsPinCreateListener());
preference.setWidgetLayoutResource(R.layout.kbs_pin_create_preference);
}
} else {
kbsGroup.setVisible(false);
regLock.setChecked(PinUtil.userHasPin(requireContext()));
@@ -171,7 +179,7 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
}
}
private class KbsPinChangeListener implements Preference.OnPreferenceClickListener {
private class KbsPinUpdateListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(CreateKbsPinActivity.getIntentForPinUpdate(requireContext()), CreateKbsPinActivity.REQUEST_NEW_PIN);
@@ -179,6 +187,14 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
}
}
private class KbsPinCreateListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(CreateKbsPinActivity.getIntentForPinCreate(requireContext()), CreateKbsPinActivity.REQUEST_NEW_PIN);
return true;
}
}
private class AccountLockClickListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {