diff options
Diffstat (limited to 'OpenKeychain/src/main/res')
5 files changed, 1427 insertions, 68 deletions
diff --git a/OpenKeychain/src/main/res/layout-w400dp/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout-w400dp/backup_code_fragment.xml new file mode 100644 index 000000000..407fa2d9e --- /dev/null +++ b/OpenKeychain/src/main/res/layout-w400dp/backup_code_fragment.xml @@ -0,0 +1,459 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingTop="20dp"> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:id="@+id/title_animator" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + custom:initialView="0"> + + <TextView + style="?android:textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:padding="10dp" + android:text="@string/backup_code_explanation" /> + + <TextView + style="?android:textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:padding="10dp" + android:text="@string/backup_code_enter" /> + + <TextView + style="?android:textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:padding="10dp" + android:text="@string/backup_code_ok" /> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:id="@+id/code_animator" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="15dp" + android:layout_marginTop="15dp" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + custom:initialView="1"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal"> + + <TextView + android:id="@+id/backup_code_display_1" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="ABCD" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_2" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="EFGH" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_3" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="IJKL" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_4" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="MNOP" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_5" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="QRST" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_6" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="UVWX" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal"> + + <!-- + The most reliable way to correctly size these I found was to put a transparent hint on them. + Theoretically, this should be what the android:ems attribute is for - didn't work for me. + --> + <EditText + android:id="@+id/backup_code_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:id="@+id/status_animator" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:inAnimation="@anim/fade_in_delayed" + android:outAnimation="@anim/fade_out" + custom:initialView="2"> + + <Button + android:id="@+id/button_backup_input" + style="?android:buttonBarButtonStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="10dp" + android:drawableLeft="@drawable/ic_mode_edit_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:text="@string/btn_code_wrotedown" /> + + <Space + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:orientation="vertical"> + + <TextView + style="?android:textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:text="@string/backup_code_wrong" /> + + <Button + android:id="@+id/button_backup_back" + style="?android:buttonBarButtonStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="10dp" + android:drawableLeft="@drawable/ic_repeat_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:text="@string/btn_backup_back" /> + + </LinearLayout> + + <LinearLayout + style="?android:buttonBarStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:orientation="vertical"> + + <LinearLayout + style="?android:buttonBarStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal"> + + <Button + android:id="@+id/button_backup_share" + style="?android:buttonBarButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:layout_weight="1" + android:drawableLeft="@drawable/ic_share_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:text="@string/btn_backup_share" /> + + <Button + android:id="@+id/button_backup_save" + style="?android:buttonBarButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:layout_weight="1" + android:drawableLeft="@drawable/ic_save_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:text="@string/btn_backup_save" /> + + + </LinearLayout> + + <Button + android:id="@+id/button_faq" + style="?android:buttonBarButtonStyle" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:text="@string/how_to_import" /> + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + +</LinearLayout> diff --git a/OpenKeychain/src/main/res/layout-w400dp/passphrase_dialog_backup_code.xml b/OpenKeychain/src/main/res/layout-w400dp/passphrase_dialog_backup_code.xml new file mode 100644 index 000000000..b2125d389 --- /dev/null +++ b/OpenKeychain/src/main/res/layout-w400dp/passphrase_dialog_backup_code.xml @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="14dp" + android:paddingTop="14dp"> + + <LinearLayout + android:id="@+id/input" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:id="@+id/passphrase_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="24dp" + android:text="@string/passphrase_for_backup" + android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="8dp"> + + <!-- + The most reliable way to correctly size these I found was to put a transparent hint on them. + Theoretically, this should be what the android:ems attribute is for - didn't work for me. + --> + <EditText + android:id="@+id/backup_code_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + </LinearLayout> + </LinearLayout> + + <LinearLayout + android:id="@+id/progress" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:orientation="horizontal" + android:visibility="invisible"> + + <ProgressBar + style="?android:attr/progressBarStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" /> + + <TextView + style="?android:attr/textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:padding="4dp" + android:text="@string/label_unlock" /> + + </LinearLayout> + +</RelativeLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout-w600dp/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout-w600dp/backup_code_fragment.xml index 6cea50a32..b247eeb74 100644 --- a/OpenKeychain/src/main/res/layout-w600dp/backup_code_fragment.xml +++ b/OpenKeychain/src/main/res/layout-w600dp/backup_code_fragment.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:custom="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" @@ -57,37 +56,300 @@ android:outAnimation="@anim/fade_out" custom:initialView="1"> - <TextView - android:id="@+id/backup_code_display" - style="@android:style/Widget.EditText" + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:clickable="false" - android:focusable="false" - android:singleLine="true" - android:textSize="18dp" - android:textStyle="bold" - android:typeface="monospace" - tools:ignore="SpUsage" - tools:text="AAAA-AAAA-AAAA-AAAA-AAAA-AAAA" /> - - <com.github.pinball83.maskededittext.MaskedEditText - android:id="@+id/backup_code_input" + android:layout_gravity="center_horizontal"> + + <TextView + android:id="@+id/backup_code_display_1" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="ABCD" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_2" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="EFGH" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_3" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="IJKL" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_4" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="MNOP" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_5" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="QRST" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_6" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="UVWX" /> + + </LinearLayout> + + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:textSize="18dp" - android:textStyle="bold" - android:typeface="monospace" - app:mask="****-****-****-****-****-****" - app:maskIconColor="@color/colorPrimary" - app:notMaskedSymbol="*" - tools:ignore="SpUsage" /> + android:layout_gravity="center_horizontal"> + + <!-- + The most reliable way to correctly size these I found was to put a transparent hint on them. + Theoretically, this should be what the android:ems attribute is for - didn't work for me. + --> + <EditText + android:id="@+id/backup_code_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + </LinearLayout> </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> diff --git a/OpenKeychain/src/main/res/layout/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout/backup_code_fragment.xml index 619a1b3b1..ecdaff5cc 100644 --- a/OpenKeychain/src/main/res/layout/backup_code_fragment.xml +++ b/OpenKeychain/src/main/res/layout/backup_code_fragment.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:custom="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" @@ -57,37 +56,330 @@ android:outAnimation="@anim/fade_out" custom:initialView="1"> - <TextView - android:id="@+id/backup_code_display" - style="@android:style/Widget.EditText" + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:clickable="false" - android:focusable="false" - android:singleLine="true" - android:textSize="18dp" - android:textStyle="bold" - android:typeface="monospace" - tools:ignore="SpUsage" - tools:text="AAAA-AAAA-AAAA-AAAA-AAAA-AAAA" /> - - <com.github.pinball83.maskededittext.MaskedEditText - android:id="@+id/backup_code_input" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:orientation="horizontal"> + + <TextView + android:id="@+id/backup_code_display_1" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="ABCD" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_2" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="EFGH" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_3" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="IJKL" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_4" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="MNOP" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_5" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="QRST" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:id="@+id/backup_code_display_6" + style="@android:style/Widget.EditText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:clickable="false" + android:focusable="false" + android:singleLine="true" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="SpUsage" + tools:text="UVWX" /> + </LinearLayout> + </LinearLayout> + + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:textSize="18dp" - android:textStyle="bold" - android:typeface="monospace" - app:mask="****-****-****-****-****-****" - app:maskIconColor="@color/colorPrimary" - app:notMaskedSymbol="*" - tools:ignore="SpUsage" /> + android:orientation="vertical"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:orientation="horizontal"> + + <!-- + The most reliable way to correctly size these I found was to put a transparent hint on them. + Theoretically, this should be what the android:ems attribute is for - didn't work for me. + --> + <EditText + android:id="@+id/backup_code_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="6" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="6" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="6" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="6" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="6" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + </LinearLayout> + </LinearLayout> </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> diff --git a/OpenKeychain/src/main/res/layout/passphrase_dialog_backup_code.xml b/OpenKeychain/src/main/res/layout/passphrase_dialog_backup_code.xml index f18b5193e..1eb55b3f6 100644 --- a/OpenKeychain/src/main/res/layout/passphrase_dialog_backup_code.xml +++ b/OpenKeychain/src/main/res/layout/passphrase_dialog_backup_code.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -26,22 +25,168 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:layout_marginTop="8dp"> + android:layout_marginTop="8dp" + android:orientation="vertical"> - <com.github.pinball83.maskededittext.MaskedEditText - android:id="@+id/backup_code" - style="@style/BackupCodeTextStyle" + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:textStyle="bold" - android:typeface="monospace" - app:mask="****-****-****-****-****-****" - app:maskIconColor="@color/colorPrimary" - app:notMaskedSymbol="*" - tools:ignore="SpUsage" /> + android:layout_gravity="right" + android:orientation="horizontal"> + + <!-- + The most reliable way to correctly size these I found was to put a transparent hint on them. + Theoretically, this should be what the android:ems attribute is for - didn't work for me. + --> + <EditText + android:id="@+id/backup_code_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:text="-" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + <EditText + android:id="@+id/backup_code_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:hint="ABCD" + android:inputType="textNoSuggestions|textCapCharacters" + android:maxLength="4" + android:singleLine="true" + android:textColorHint="@android:color/transparent" + android:textSize="18dp" + android:textStyle="bold" + android:typeface="monospace" + tools:ignore="HardcodedText,SpUsage" /> + + </LinearLayout> </LinearLayout> </LinearLayout> |