Integrates passphrase strength indicator to create key wizard.

This commit patches issue #1050. The padding set in the passphrase edit
text is set programmatically because there is a bug in appcompat-v7
where padding via xml doesn't work:

http://code.google.com/p/android/issues/detail?id=77982
This commit is contained in:
Lukas Zorich 2015-03-03 18:52:10 -03:00
parent 7f9c663033
commit 438314c4bb
2 changed files with 30 additions and 17 deletions

View File

@ -134,6 +134,12 @@ public class CreateKeyInputFragment extends Fragment {
) )
); );
// Edit text padding doesn't work via xml (http://code.google.com/p/android/issues/detail?id=77982)
// so we set the right padding programmatically.
mPassphraseEdit.setPadding(mPassphraseEdit.getPaddingLeft(),
mPassphraseEdit.getPaddingTop(),
(int) (56 * getResources().getDisplayMetrics().density),
mPassphraseEdit.getPaddingBottom());
mPassphraseEdit.addTextChangedListener(new TextWatcher() { mPassphraseEdit.addTextChangedListener(new TextWatcher() {
@Override @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { public void beforeTextChanged(CharSequence s, int start, int count, int after) {

View File

@ -59,27 +59,34 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/label_passphrase" /> android:text="@string/label_passphrase" />
<EditText <FrameLayout
android:id="@+id/create_key_passphrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:imeOptions="actionNext" android:layout_marginBottom="8dp">
android:inputType="textPassword"
android:hint="@string/label_passphrase"
android:ems="10"
android:layout_gravity="center_horizontal" />
<org.sufficientlysecure.keychain.ui.widget.passwordstrengthindicator.PasswordStrengthBarView <EditText
android:id="@+id/create_key_passphrase_strength" android:id="@+id/create_key_passphrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="8dp" android:layout_height="wrap_content"
android:layout_marginBottom="8dp" android:imeOptions="actionNext"
custom:strength="medium" android:inputType="textPassword"
custom:showGuides="false" android:hint="@string/label_passphrase"
custom:color_fail="@color/android_red_light" android:ems="10"
custom:color_weak="@color/android_orange_light" android:layout_gravity="center_horizontal" />
custom:color_strong="@color/android_green_light"/>
<org.sufficientlysecure.keychain.ui.widget.passwordstrengthindicator.PasswordStrengthBarView
android:id="@+id/create_key_passphrase_strength"
android:layout_width="48dp"
android:layout_height="8dp"
android:layout_gravity="end|center_vertical"
custom:strength="medium"
custom:showGuides="false"
custom:color_fail="@color/android_red_light"
custom:color_weak="@color/android_orange_light"
custom:color_strong="@color/android_green_light"/>
</FrameLayout>
<EditText <EditText
android:id="@+id/create_key_passphrase_again" android:id="@+id/create_key_passphrase_again"