diff options
Diffstat (limited to 'OpenKeychain/src/main/res')
-rw-r--r-- | OpenKeychain/src/main/res/anim/fade_in_delayed.xml | 8 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/anim/fade_out_delayed.xml | 8 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout-land/backup_code_fragment.xml | 364 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout-land/qr_code_activity.xml | 39 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout-mdpi/backup_code_fragment.xml | 363 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout-xhdpi/backup_code_fragment.xml | 364 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/backup_activity.xml | 26 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/decrypt_list_entry.xml | 34 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/drawer_backup_fragment.xml (renamed from OpenKeychain/src/main/res/layout/backup_fragment.xml) | 0 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/import_keys_activity.xml | 29 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/menu/key_view.xml | 2 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/values/strings.xml | 22 |
12 files changed, 1188 insertions, 71 deletions
diff --git a/OpenKeychain/src/main/res/anim/fade_in_delayed.xml b/OpenKeychain/src/main/res/anim/fade_in_delayed.xml new file mode 100644 index 000000000..3f2887b5e --- /dev/null +++ b/OpenKeychain/src/main/res/anim/fade_in_delayed.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<set xmlns:android="http://schemas.android.com/apk/res/android"> + <alpha android:fromAlpha="0.0" android:toAlpha="1.0" + android:interpolator="@android:anim/bounce_interpolator" + android:duration="700" + android:startOffset="400" + /> +</set> diff --git a/OpenKeychain/src/main/res/anim/fade_out_delayed.xml b/OpenKeychain/src/main/res/anim/fade_out_delayed.xml new file mode 100644 index 000000000..a895bdedd --- /dev/null +++ b/OpenKeychain/src/main/res/anim/fade_out_delayed.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<set xmlns:android="http://schemas.android.com/apk/res/android"> + <alpha android:fromAlpha="1.0" android:toAlpha="0.0" + android:interpolator="@android:anim/accelerate_interpolator" + android:duration="300" + android:startOffset="400" + /> +</set> diff --git a/OpenKeychain/src/main/res/layout-land/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout-land/backup_code_fragment.xml new file mode 100644 index 000000000..fd8cd21f0 --- /dev/null +++ b/OpenKeychain/src/main/res/layout-land/backup_code_fragment.xml @@ -0,0 +1,364 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:custom="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="20dp"> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/title_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + custom:initialView="0"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_explanation" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_enter" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_ok" + style="?android:textAppearanceMedium" + /> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/code_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + android:layout_marginTop="15dp" + android:layout_marginBottom="15dp" + custom:initialView="1"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="ABCDEF" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="GHIJKL" + tools:ignore="SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="MNOPQR" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="STUVWX" + tools:ignore="SpUsage" + /> + + </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:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="______" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="______" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="______" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="______" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/status_animator" + android:inAnimation="@anim/fade_in_delayed" + android:outAnimation="@anim/fade_out" + custom:initialView="2"> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="10dp" + android:text="@string/btn_code_wrotedown" + android:drawableLeft="@drawable/ic_mode_edit_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:id="@+id/button_backup_input" + style="?android:buttonBarButtonStyle" + /> + + <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="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:text="@string/backup_code_wrong" + style="?android:textAppearanceMedium" + /> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:layout_gravity="center_horizontal" + android:padding="12dp" + android:text="@string/btn_backup_back" + android:drawableLeft="@drawable/ic_repeat_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_back" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + style="?android:buttonBarStyle"> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_share" + android:drawableLeft="@drawable/ic_share_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_share" + style="?android:buttonBarButtonStyle" + /> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_save" + android:drawableLeft="@drawable/ic_save_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_save" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + +</LinearLayout> diff --git a/OpenKeychain/src/main/res/layout-land/qr_code_activity.xml b/OpenKeychain/src/main/res/layout-land/qr_code_activity.xml deleted file mode 100644 index 59a733e89..000000000 --- a/OpenKeychain/src/main/res/layout-land/qr_code_activity.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?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" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <include - android:id="@+id/toolbar_include" - layout="@layout/toolbar_standalone" /> - - <LinearLayout - android:layout_below="@id/toolbar_include" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <android.support.v7.widget.CardView - android:id="@+id/qr_code_image_layout" - android:transitionName="qr_code" - android:layout_gravity="center_horizontal" - android:layout_margin="32dp" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:clickable="true" - android:foreground="?android:attr/selectableItemBackground" - app:cardBackgroundColor="@android:color/white" - app:cardUseCompatPadding="true" - app:cardCornerRadius="4dp"> - - <org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView - android:id="@+id/qr_code_image" - android:layout_width="wrap_content" - android:layout_height="match_parent" - app:dominantMeasurement="height" - app:aspectRatioEnabled="true" /> - </android.support.v7.widget.CardView> - - </LinearLayout> -</RelativeLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout-mdpi/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout-mdpi/backup_code_fragment.xml new file mode 100644 index 000000000..4c7cb7374 --- /dev/null +++ b/OpenKeychain/src/main/res/layout-mdpi/backup_code_fragment.xml @@ -0,0 +1,363 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:custom="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="50dp"> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/title_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + custom:initialView="0"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_explanation" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_enter" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_ok" + style="?android:textAppearanceMedium" + /> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/code_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + android:layout_marginTop="15dp" + android:layout_marginBottom="15dp" + custom:initialView="0"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="ABCDEF" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="GHIJKL" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="MNOPQR" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:singleLine="true" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="STUVWX" + tools:ignore="SpUsage" + /> + + </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:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="16dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/status_animator" + android:inAnimation="@anim/fade_in_delayed" + android:outAnimation="@anim/fade_out" + custom:initialView="2"> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="10dp" + android:text="@string/btn_code_wrotedown" + android:padding="12dp" + android:id="@+id/button_backup_input" + style="?android:buttonBarButtonStyle" + /> + + <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 + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:text="@string/backup_code_wrong" + style="?android:textAppearanceMedium" + /> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:layout_gravity="center_horizontal" + android:padding="12dp" + android:text="@string/btn_backup_back" + android:drawableLeft="@drawable/ic_repeat_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_back" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + style="?android:buttonBarStyle"> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_share" + android:drawableLeft="@drawable/ic_share_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_share" + style="?android:buttonBarButtonStyle" + /> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_save" + android:drawableLeft="@drawable/ic_save_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_save" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + +</LinearLayout> diff --git a/OpenKeychain/src/main/res/layout-xhdpi/backup_code_fragment.xml b/OpenKeychain/src/main/res/layout-xhdpi/backup_code_fragment.xml new file mode 100644 index 000000000..1ea976656 --- /dev/null +++ b/OpenKeychain/src/main/res/layout-xhdpi/backup_code_fragment.xml @@ -0,0 +1,364 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:custom="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="50dp"> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/title_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + custom:initialView="0"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_explanation" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_enter" + style="?android:textAppearanceMedium" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/backup_code_ok" + style="?android:textAppearanceMedium" + /> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/code_animator" + android:inAnimation="@anim/fade_in" + android:outAnimation="@anim/fade_out" + android:layout_marginTop="15dp" + android:layout_marginBottom="15dp" + custom:initialView="0"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="ABCDEF" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="GHIJKL" + tools:ignore="SpUsage" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="MNOPQR" + tools:ignore="SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_display_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + style="@android:style/Widget.EditText" + android:clickable="false" + android:focusable="false" + tools:text="STUVWX" + tools:ignore="SpUsage" + /> + + </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:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_1" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_2" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_3" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center_vertical" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:text="-" + tools:ignore="HardcodedText,SpUsage" + /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:id="@+id/backup_code_4" + android:textStyle="bold" + android:typeface="monospace" + android:textSize="18dp" + android:singleLine="true" + android:inputType="textNoSuggestions|textCapCharacters" + android:hint="ABCDEF" + android:textColorHint="@android:color/transparent" + android:maxLength="6" + tools:ignore="HardcodedText,SpUsage" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_gravity="center_horizontal" + android:id="@+id/status_animator" + android:inAnimation="@anim/fade_in_delayed" + android:outAnimation="@anim/fade_out" + custom:initialView="2"> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="10dp" + android:text="@string/btn_code_wrotedown" + android:drawableLeft="@drawable/ic_mode_edit_grey_24dp" + android:drawablePadding="8dp" + android:padding="12dp" + android:id="@+id/button_backup_input" + style="?android:buttonBarButtonStyle" + /> + + <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 + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:text="@string/backup_code_wrong" + style="?android:textAppearanceMedium" + /> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:layout_gravity="center_horizontal" + android:padding="12dp" + android:text="@string/btn_backup_back" + android:drawableLeft="@drawable/ic_repeat_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_back" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + style="?android:buttonBarStyle"> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_share" + android:drawableLeft="@drawable/ic_share_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_share" + style="?android:buttonBarButtonStyle" + /> + + <Button + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="10dp" + android:padding="12dp" + android:text="@string/btn_backup_save" + android:drawableLeft="@drawable/ic_save_grey_24dp" + android:drawablePadding="8dp" + android:id="@+id/button_backup_save" + style="?android:buttonBarButtonStyle" + /> + + </LinearLayout> + + </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator> + + +</LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/backup_activity.xml b/OpenKeychain/src/main/res/layout/backup_activity.xml new file mode 100644 index 000000000..59ab6cbf2 --- /dev/null +++ b/OpenKeychain/src/main/res/layout/backup_activity.xml @@ -0,0 +1,26 @@ +<?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="match_parent"> + + <include + android:id="@+id/toolbar_include" + layout="@layout/toolbar_standalone_white" /> + + <LinearLayout + android:layout_below="@id/toolbar_include" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <include layout="@layout/notify_area" /> + + <FrameLayout + android:id="@+id/content_frame" + android:layout_width="match_parent" + android:layout_height="match_parent"> + </FrameLayout> + + </LinearLayout> +</RelativeLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml b/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml index 7869b9a8a..4a79f0ccd 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml @@ -65,34 +65,35 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingRight="4dp" - android:paddingLeft="4dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" + android:gravity="center_vertical" tools:ignore="UseCompoundDrawables"> <ImageView android:id="@+id/result_encryption_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:src="@drawable/status_lock_open_24dp" - android:layout_gravity="center_vertical" /> + /> <TextView android:id="@+id/result_encryption_text" android:layout_width="0dp" - android:layout_height="wrap_content" android:layout_weight="1" + android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginLeft="8dp" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginLeft="6dp" android:text="" tools:text="Encryption status text" /> <ImageView android:id="@+id/context_menu" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="4dp" android:scaleType="center" - android:layout_width="36dip" - android:layout_height="48dip" android:clickable="true" android:background="?attr/selectableItemBackgroundBorderless" android:src="@drawable/ic_more_vert_black_24dp" /> @@ -103,25 +104,25 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingRight="4dp" - android:paddingLeft="4dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" + android:gravity="center_vertical" tools:ignore="UseCompoundDrawables"> <ImageView android:id="@+id/result_signature_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:src="@drawable/status_signature_unverified_cutout_24dp" - android:layout_gravity="center_vertical" /> + /> <TextView android:id="@+id/result_signature_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginLeft="8dp" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginLeft="6dp" android:text="" tools:text="Signature status text" /> </LinearLayout> @@ -130,10 +131,11 @@ android:id="@+id/result_signature_layout" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="2dp" + android:layout_marginBottom="2dp" android:clickable="true" android:background="?android:selectableItemBackground" android:orientation="horizontal" - style="?listPreferredItemHeight" > <LinearLayout diff --git a/OpenKeychain/src/main/res/layout/backup_fragment.xml b/OpenKeychain/src/main/res/layout/drawer_backup_fragment.xml index 96fba954b..96fba954b 100644 --- a/OpenKeychain/src/main/res/layout/backup_fragment.xml +++ b/OpenKeychain/src/main/res/layout/drawer_backup_fragment.xml diff --git a/OpenKeychain/src/main/res/layout/import_keys_activity.xml b/OpenKeychain/src/main/res/layout/import_keys_activity.xml index 28bb8a0b8..6602c4b8f 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_activity.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_activity.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools"> <include android:id="@+id/toolbar_include" @@ -21,16 +22,26 @@ <include layout="@layout/notify_area" /> - <FrameLayout - android:id="@+id/import_keys_top_container" + <LinearLayout android:layout_width="match_parent" - android:layout_height="64dp" - android:orientation="vertical" /> + android:layout_height="wrap_content" + android:orientation="vertical" + android:id="@+id/import_keys_top_layout" + android:visibility="gone" + tools:visibility="visible"> - <View - android:layout_width="match_parent" - android:layout_height="1dip" - android:background="?android:attr/listDivider" /> + <FrameLayout + android:id="@+id/import_keys_top_container" + android:layout_width="match_parent" + android:layout_height="64dp" + android:orientation="vertical" /> + + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + </LinearLayout> <FrameLayout android:id="@+id/import_keys_list_container" diff --git a/OpenKeychain/src/main/res/menu/key_view.xml b/OpenKeychain/src/main/res/menu/key_view.xml index 1bda1463a..c0adfcd6f 100644 --- a/OpenKeychain/src/main/res/menu/key_view.xml +++ b/OpenKeychain/src/main/res/menu/key_view.xml @@ -16,7 +16,7 @@ android:title="@string/key_view_action_update" /> <item - android:id="@+id/menu_key_view_export_file" + android:id="@+id/menu_key_view_backup" app:showAsAction="never" android:title="@string/menu_export_key" /> diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 03493d697..8f86d5976 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -30,6 +30,7 @@ <string name="title_export_keys">"Backup Keys"</string> <string name="title_key_not_found">"Key Not Found"</string> <string name="title_send_key">"Upload to Keyserver"</string> + <string name="title_backup">"Backup Key"</string> <string name="title_certify_key">"Confirm Key"</string> <string name="title_key_details">"Key Details"</string> <string name="title_help">"Help"</string> @@ -107,7 +108,7 @@ <!-- menu --> <string name="menu_preferences">"Settings"</string> <string name="menu_help">"Help"</string> - <string name="menu_export_key">"Backup to file"</string> + <string name="menu_export_key">"Backup key"</string> <string name="menu_delete_key">"Delete key"</string> <string name="menu_manage_keys">"Manage my keys"</string> <string name="menu_search">"Search"</string> @@ -1295,16 +1296,11 @@ <item quantity="one">"Exporting one key"</item> <item quantity="other">"Exporting %d keys"</item> </plurals> - <string name="msg_export_file_name">"Filename: %s"</string> <string name="msg_export_all">"Exporting all keys"</string> <string name="msg_export_public">"Exporting public key %s"</string> <string name="msg_export_upload_public">"Uploading public key %s"</string> <string name="msg_export_secret">"Exporting secret key %s"</string> - <string name="msg_export_error_no_file">"No filename specified!"</string> - <string name="msg_export_error_fopen">"Error opening file!"</string> - <string name="msg_export_error_no_uri">"No URI specified!"</string> <string name="msg_export_error_uri_open">"Error opening URI stream!"</string> - <string name="msg_export_error_storage">"Storage is not ready for writing!"</string> <string name="msg_export_error_db">"Database error!"</string> <string name="msg_export_error_io">"Input/output error!"</string> <string name="msg_export_error_key">"Error preprocessing key data!"</string> @@ -1555,6 +1551,7 @@ <string name="error_reading_k9">"Received incomplete data, try pressing 'Download complete message' in K-9 Mail!"</string> <string name="filename_unknown">Unknown filename (click to open)</string> <string name="filename_unknown_text">Text (click to show)</string> + <string name="filename_keys">"Key Backup (click to import)"</string> <string name="intent_show">Show Signed/Encrypted Content</string> <string name="intent_share">Share Signed/Encrypted Content</string> <string name="view_internal">"View in OpenKeychain"</string> @@ -1645,6 +1642,19 @@ <string name="linked_error_http">"Communication error: %s"</string> <string name="linked_webview_title_github">"GitHub Authorization"</string> <string name="linked_gist_description">"OpenKeychain API Tests"</string> + <string name="snack_btn_overwrite">"Overwrite"</string> + <string name="backup_code_explanation">"The backup will be secured with a backup code. Write it down before you proceed!"</string> + <string name="backup_code_enter">"Please enter the backup code:"</string> + <string name="backup_code_ok">"Code accepted!"</string> + <string name="btn_code_wrotedown">"OK, I wrote it down!"</string> + <string name="backup_code_wrong">"The backup code you entered is wrong!\nDid you write it down correctly?"</string> + <string name="btn_backup_share">"Share backup"</string> + <string name="btn_backup_save">"Save backup"</string> + <string name="snack_backup_error_saving">"Error saving backup!"</string> + <string name="snack_backup_saved">"Backup saved"</string> + <string name="snack_backup_exists">"Backup already exists!"</string> + <string name="snack_backup_saved_dir">"Saved to OpenKeychain directory"</string> + <string name="btn_backup_back">Go back to check</string> <string name="share_log_dialog_title">"Share log?"</string> <string name="share_log_dialog_message">"While logs can be super helpful for developers to find bugs in OpenKeychain, they can contain potential sensitive information such as data about the updated keys. Please make sure you are okay with sharing this information."</string> |