diff options
7 files changed, 104 insertions, 72 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/NextcloudAuthenticationFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/NextcloudAuthenticationFragment.java index 3578dace5..14440be47 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/NextcloudAuthenticationFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/NextcloudAuthenticationFragment.java @@ -39,9 +39,9 @@ public class NextcloudAuthenticationFragment extends DialogFragment viewBinding = NextcloudAuthDialogBinding.inflate(getLayoutInflater()); dialog.setView(viewBinding.getRoot()); - viewBinding.loginButton.setOnClickListener(v -> { + viewBinding.chooseHostButton.setOnClickListener(v -> { viewBinding.errorText.setVisibility(View.GONE); - viewBinding.loginButton.setVisibility(View.GONE); + viewBinding.chooseHostButton.setVisibility(View.GONE); viewBinding.loginProgressContainer.setVisibility(View.VISIBLE); nextcloudLoginFlow = new NextcloudLoginFlow(AntennapodHttpClient.getHttpClient(), viewBinding.serverUrlText.getText().toString(), getContext(), this); @@ -87,6 +87,6 @@ public class NextcloudAuthenticationFragment extends DialogFragment viewBinding.loginProgressContainer.setVisibility(View.GONE); viewBinding.errorText.setVisibility(View.VISIBLE); viewBinding.errorText.setText(errorMessage); - viewBinding.loginButton.setVisibility(View.VISIBLE); + viewBinding.chooseHostButton.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/res/layout/gpodnetauth_credentials.xml b/app/src/main/res/layout/gpodnetauth_credentials.xml index e318f11d9..a5b8c594d 100644 --- a/app/src/main/res/layout/gpodnetauth_credentials.xml +++ b/app/src/main/res/layout/gpodnetauth_credentials.xml @@ -7,11 +7,17 @@ android:orientation="vertical"> <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="16dp" + android:text="@string/synchronization_credentials_explanation" /> + + <TextView android:id="@+id/createAccountWarning" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/gpodnetauth_encryption_warning" - android:textColor="#F44336" + android:textColor="?attr/icon_red" android:textStyle="bold" android:visibility="invisible" /> @@ -25,6 +31,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/username_label" + android:inputType="textNoSuggestions" android:lines="1" android:imeOptions="actionNext|flagNoFullscreen" /> @@ -33,6 +40,7 @@ <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="16dp" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"> <com.google.android.material.textfield.TextInputEditText @@ -43,42 +51,33 @@ android:inputType="textPassword" android:lines="1" android:imeOptions="actionNext|flagNoFullscreen" - android:imeActionLabel="@string/gpodnetauth_login_butLabel" /> + android:imeActionLabel="@string/synchronization_login_butLabel" /> </com.google.android.material.textfield.TextInputLayout> - <LinearLayout - android:layout_width="match_parent" + <ProgressBar + android:id="@+id/progBarLogin" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:gravity="end|center_vertical"> - - <TextView - android:id="@+id/credentialsError" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/icon_red" - android:textSize="@dimen/text_size_small" - android:maxLines="2" - android:ellipsize="end" - android:gravity="center" - tools:text="Error message" - tools:background="@android:color/holo_green_dark" /> - - <ProgressBar - android:id="@+id/progBarLogin" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:visibility="gone" - android:layout_gravity="right" /> + android:visibility="gone" + android:layout_gravity="right" /> - <Button - android:id="@+id/butLogin" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/gpodnetauth_login_butLabel" /> + <TextView + android:id="@+id/credentialsError" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="?attr/icon_red" + android:textSize="@dimen/text_size_small" + android:maxLines="2" + android:ellipsize="end" + android:gravity="center" + android:visibility="gone" + tools:text=" message" /> - </LinearLayout> + <Button + android:id="@+id/butLogin" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/synchronization_login_butLabel" /> </LinearLayout> diff --git a/app/src/main/res/layout/gpodnetauth_device.xml b/app/src/main/res/layout/gpodnetauth_device.xml index cb133f684..6e051ecf3 100644 --- a/app/src/main/res/layout/gpodnetauth_device.xml +++ b/app/src/main/res/layout/gpodnetauth_device.xml @@ -6,6 +6,12 @@ android:layout_height="wrap_content" android:orientation="vertical"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="16dp" + android:text="@string/synchronization_selectDevice_explanation" /> + <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/gpodnetauth_dialog.xml b/app/src/main/res/layout/gpodnetauth_dialog.xml index a70b76a49..b5814a4e5 100644 --- a/app/src/main/res/layout/gpodnetauth_dialog.xml +++ b/app/src/main/res/layout/gpodnetauth_dialog.xml @@ -1,20 +1,31 @@ <?xml version="1.0" encoding="utf-8"?> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="16dp" - android:clipToPadding="false"> +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="16dp" + android:clipToPadding="false"> + <ViewFlipper android:id="@+id/viewflipper" android:layout_width="match_parent" android:layout_height="wrap_content" + android:measureAllChildren="false" android:inAnimation="@anim/slide_right_in" android:outAnimation="@anim/slide_left_out"> - <include layout="@layout/gpodnetauth_host" /> - <include layout="@layout/gpodnetauth_credentials" /> - <include layout="@layout/gpodnetauth_device" /> - <include layout="@layout/gpodnetauth_finish" /> + <include + layout="@layout/gpodnetauth_host" /> + + <include + layout="@layout/gpodnetauth_credentials" /> + + <include + layout="@layout/gpodnetauth_device" /> + + <include + layout="@layout/gpodnetauth_finish" /> </ViewFlipper> -</ScrollView>
\ No newline at end of file + +</ScrollView> diff --git a/app/src/main/res/layout/gpodnetauth_host.xml b/app/src/main/res/layout/gpodnetauth_host.xml index bcee9b880..7f2d16f11 100644 --- a/app/src/main/res/layout/gpodnetauth_host.xml +++ b/app/src/main/res/layout/gpodnetauth_host.xml @@ -3,18 +3,26 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" + android:clipToPadding="false"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="16dp" + android:text="@string/synchronization_host_explanation" /> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="16dp" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/serverUrlText" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/gpodnetauth_host" + android:hint="@string/synchronization_host_label" android:inputType="textNoSuggestions" android:lines="1" android:imeOptions="actionNext|flagNoFullscreen" /> @@ -23,9 +31,8 @@ <Button android:id="@+id/chooseHostButton" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="right|end" - android:text="@string/gpodnetauth_select_server" /> + android:text="@string/proceed_to_login_butLabel" /> </LinearLayout> diff --git a/app/src/main/res/layout/nextcloud_auth_dialog.xml b/app/src/main/res/layout/nextcloud_auth_dialog.xml index 08cf05ef9..c08c5b969 100644 --- a/app/src/main/res/layout/nextcloud_auth_dialog.xml +++ b/app/src/main/res/layout/nextcloud_auth_dialog.xml @@ -7,6 +7,12 @@ android:orientation="vertical" android:clipToPadding="false"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="16dp" + android:text="@string/synchronization_host_explanation" /> + <com.google.android.material.textfield.TextInputLayout android:id="@+id/serverUrlTextInput" android:layout_width="match_parent" @@ -18,7 +24,7 @@ android:id="@+id/serverUrlText" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/gpodnetauth_host" + android:hint="@string/synchronization_host_label" android:inputType="textNoSuggestions" android:lines="1" android:imeOptions="actionNext|flagNoFullscreen" /> @@ -55,9 +61,9 @@ android:layout_marginBottom="16dp" /> <Button - android:id="@+id/loginButton" + android:id="@+id/chooseHostButton" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/gpodnetauth_login_butLabel" /> + android:text="@string/proceed_to_login_butLabel" /> </LinearLayout> diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml index cdab72bab..40015630f 100644 --- a/ui/i18n/src/main/res/values/strings.xml +++ b/ui/i18n/src/main/res/values/strings.xml @@ -460,20 +460,6 @@ <string name="pref_theme_title_dark">Dark</string> <string name="pref_theme_title_trueblack">Black (AMOLED ready)</string> <string name="pref_episode_cache_unlimited">Unlimited</string> - <string name="synchronization_logout">Logout</string> - <string name="pref_synchronization_logout_toast">Logout was successful</string> - <string name="pref_gpodnet_setlogin_information_title">Change login information</string> - <string name="pref_gpodnet_setlogin_information_sum">Change the login information for your gpodder.net account.</string> - <string name="synchronization_sync_changes_title">Synchronize now</string> - <string name="synchronization_full_sync_title">Force full synchronization</string> - <string name="synchronization_login_status"><![CDATA[Logged in as <i>%1$s</i> on <i>%2$s</i>. <br/><br/>You can choose your synchronization provider again once you have logged out]]></string> - <string name="synchronization_summary_unchoosen">You can choose from multiple providers to synchronize your subscriptions and episode play state with</string> - <string name="synchronization_summary_nextcloud">Gpoddersync is an open-source Nextcloud app that you can easily install on your own server. The app is independent of the AntennaPod project.</string> - <string name="synchronization_nextcloud_authenticate_browser">Grant access using the opened web browser and come back to AntennaPod.</string> - <string name="synchronization_choose_title">Choose synchronization provider</string> - <string name="synchronization_force_sync_summary">Re-synchronize all subscriptions and episode states</string> - <string name="synchronization_sync_summary">Synchronize subscription and episode state changes</string> - <string name="dialog_choose_sync_service_title">Choose synchronization provider</string> <string name="pref_playback_speed_sum">Customize the speeds available for variable speed playback</string> <string name="pref_feed_playback_speed_sum">The speed to use when starting audio playback for episodes in this podcast</string> <string name="pref_feed_skip">Auto Skip</string> @@ -631,21 +617,38 @@ <string name="auto_enable_label">Auto-enable</string> <string name="sleep_timer_enabled_label">Sleep timer enabled</string> - <!-- gpodder.net --> + <!-- Synchronisation --> + <string name="synchronization_choose_title">Choose synchronization provider</string> + <string name="synchronization_summary_unchoosen">You can choose from multiple providers to synchronize your subscriptions and episode play state with</string> + <string name="dialog_choose_sync_service_title">Choose synchronization provider</string> + <string name="gpodnet_description">Gpodder.net is an open-source podcast synchronization service that you can install on your own server. Gpodder.net is independent of the AntennaPod project.</string> + <string name="synchronization_summary_nextcloud">Gpoddersync is an open-source Nextcloud app that you can easily install on your own server. The app is independent of the AntennaPod project.</string> + <string name="synchronization_host_explanation">You can pick your own server to synchronize with. When you have identified your preferred synchronization server, please enter its address here.</string> + <string name="synchronization_host_label">Server address</string> + <string name="proceed_to_login_butLabel">Proceed to login</string> + <string name="synchronization_nextcloud_authenticate_browser">Grant access using the opened web browser and come back to AntennaPod.</string> <string name="gpodnetauth_login_butLabel">Login</string> + <string name="synchronization_credentials_explanation">Please provide the credentials of your account on the synchronization server.</string> <string name="gpodnetauth_encryption_warning">Password and data are not encrypted!</string> <string name="username_label">Username</string> <string name="password_label">Password</string> - <string name="gpodnet_description">Gpodder.net is an open-source podcast synchronization service that you can install on your own server. Gpodder.net is independent of the AntennaPod project.</string> - <string name="gpodnetauth_host">Hostname</string> - <string name="gpodnetauth_select_server">Select server</string> + <string name="synchronization_login_butLabel">Log in</string> + <string name="synchronization_selectDevice_explanation">Please select the device that you created on the synchronization server or create a new one.</string> <string name="gpodnetauth_device_name">Device name</string> <string name="gpodnetauth_device_name_default">AntennaPod on %1$s</string> <string name="gpodnetauth_existing_devices">Existing devices</string> <string name="gpodnetauth_create_device">Create device</string> <string name="gpodnetauth_finish_descr">Congratulations! Your gpodder.net account is now linked with your device. AntennaPod will from now on automatically sync subscriptions on your device with your gpodder.net account.</string> <string name="gpodnetauth_finish_butsyncnow">Start sync now</string> - + <string name="pref_gpodnet_setlogin_information_title">Change login information</string> + <string name="pref_gpodnet_setlogin_information_sum">Change the login information for your gpodder.net account.</string> + <string name="synchronization_sync_changes_title">Synchronize now</string> + <string name="synchronization_sync_summary">Synchronize subscription and episode state changes</string> + <string name="synchronization_full_sync_title">Force full synchronization</string> + <string name="synchronization_force_sync_summary">Re-synchronize all subscriptions and episode states</string> + <string name="synchronization_logout">Logout</string> + <string name="synchronization_login_status"><![CDATA[Logged in as <i>%1$s</i> on <i>%2$s</i>. <br/><br/>You can choose your synchronization provider again once you have logged out]]></string> + <string name="pref_synchronization_logout_toast">Logout was successful</string> <string name="gpodnetsync_error_title">gpodder.net sync error</string> <string name="gpodnetsync_error_descr">An error occurred during syncing:\u0020</string> <string name="gpodnetsync_pref_report_successful">Successful</string> |