summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/GpodderAuthenticationFragment.java43
-rw-r--r--app/src/main/res/layout/gpodnetauth_credentials.xml137
-rw-r--r--app/src/main/res/layout/gpodnetauth_host.xml59
-rw-r--r--net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java2
-rw-r--r--ui/i18n/src/main/res/values/strings.xml5
5 files changed, 90 insertions, 156 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/GpodderAuthenticationFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/GpodderAuthenticationFragment.java
index 358985cea..e3e069868 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/GpodderAuthenticationFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/synchronization/GpodderAuthenticationFragment.java
@@ -2,7 +2,6 @@ package de.danoeh.antennapod.fragment.preferences.synchronization;
import android.app.Dialog;
import android.content.Context;
-import android.graphics.Paint;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
@@ -12,31 +11,20 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
-import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.ViewFlipper;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
-
import com.google.android.material.button.MaterialButton;
-import com.google.android.material.textfield.TextInputLayout;
-
-import java.util.List;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.sync.SynchronizationCredentials;
import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
import de.danoeh.antennapod.core.sync.SyncService;
+import de.danoeh.antennapod.core.sync.SynchronizationCredentials;
import de.danoeh.antennapod.core.sync.SynchronizationProviderViewData;
import de.danoeh.antennapod.core.sync.SynchronizationSettings;
import de.danoeh.antennapod.core.util.FileNameGenerator;
-import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.net.sync.gpoddernet.GpodnetService;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetDevice;
import io.reactivex.Completable;
@@ -44,6 +32,11 @@ import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
+import java.util.List;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
/**
* Guides the user through the authentication process.
*/
@@ -70,7 +63,7 @@ public class GpodderAuthenticationFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
- dialog.setTitle(GpodnetService.DEFAULT_BASE_HOST);
+ dialog.setTitle(R.string.gpodnetauth_login_butLabel);
dialog.setNegativeButton(R.string.cancel_label, null);
dialog.setCancelable(false);
this.setCancelable(false);
@@ -85,23 +78,13 @@ public class GpodderAuthenticationFragment extends DialogFragment {
private void setupHostView(View view) {
final Button selectHost = view.findViewById(R.id.chooseHostButton);
- final RadioGroup serverRadioGroup = view.findViewById(R.id.serverRadioGroup);
final EditText serverUrlText = view.findViewById(R.id.serverUrlText);
-
- if (!GpodnetService.DEFAULT_BASE_HOST.equals(SynchronizationCredentials.getHosturl())) {
- serverUrlText.setText(SynchronizationCredentials.getHosturl());
- }
- final TextInputLayout serverUrlTextInput = view.findViewById(R.id.serverUrlTextInput);
- serverRadioGroup.setOnCheckedChangeListener((group, checkedId) -> {
- serverUrlTextInput.setVisibility(checkedId == R.id.customServerRadio ? View.VISIBLE : View.GONE);
- });
selectHost.setOnClickListener(v -> {
- SynchronizationCredentials.clear(getContext());
- if (serverRadioGroup.getCheckedRadioButtonId() == R.id.customServerRadio) {
- SynchronizationCredentials.setHosturl(serverUrlText.getText().toString());
- } else {
- SynchronizationCredentials.setHosturl(GpodnetService.DEFAULT_BASE_HOST);
+ if (serverUrlText.getText().length() == 0) {
+ return;
}
+ SynchronizationCredentials.clear(getContext());
+ SynchronizationCredentials.setHosturl(serverUrlText.getText().toString());
service = new GpodnetService(AntennapodHttpClient.getHttpClient(),
SynchronizationCredentials.getHosturl(), SynchronizationCredentials.getDeviceID(),
SynchronizationCredentials.getUsername(), SynchronizationCredentials.getPassword());
@@ -116,12 +99,8 @@ public class GpodderAuthenticationFragment extends DialogFragment {
final Button login = view.findViewById(R.id.butLogin);
final TextView txtvError = view.findViewById(R.id.credentialsError);
final ProgressBar progressBar = view.findViewById(R.id.progBarLogin);
- final TextView createAccount = view.findViewById(R.id.createAccountButton);
final TextView createAccountWarning = view.findViewById(R.id.createAccountWarning);
- createAccount.setPaintFlags(createAccount.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
- createAccount.setOnClickListener(v -> IntentUtils.openInBrowser(getContext(), "https://gpodder.net/register/"));
-
if (SynchronizationCredentials.getHosturl().startsWith("http://")) {
createAccountWarning.setVisibility(View.VISIBLE);
}
diff --git a/app/src/main/res/layout/gpodnetauth_credentials.xml b/app/src/main/res/layout/gpodnetauth_credentials.xml
index 8cf6941c9..91224744b 100644
--- a/app/src/main/res/layout/gpodnetauth_credentials.xml
+++ b/app/src/main/res/layout/gpodnetauth_credentials.xml
@@ -1,107 +1,84 @@
<?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:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginBottom="8dp">
-
- <ImageView
- android:layout_width="64dp"
- android:layout_height="64dp"
- app:srcCompat="@drawable/gpodder_icon"/>
-
- <TextView
- android:id="@+id/createAccountButton"
- android:layout_width="0dp"
- android:textAlignment="textEnd"
- android:layout_height="wrap_content"
- android:background="?attr/selectableItemBackground"
- android:textColor="?colorAccent"
- android:layout_weight="1"
- android:layout_gravity="center_vertical|end"
- android:text="@string/create_account"/>
- </LinearLayout>
+ 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">
<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:textStyle="bold"
- android:visibility="invisible" />
+ android:id="@+id/createAccountWarning"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/gpodnetauth_encryption_warning"
+ android:textColor="#F44336"
+ android:textStyle="bold"
+ android:visibility="invisible" />
<com.google.android.material.textfield.TextInputLayout
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
- android:id="@+id/etxtUsername"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/username_label"
- android:lines="1"
- android:imeOptions="actionNext|flagNoFullscreen"/>
+ android:id="@+id/etxtUsername"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/username_label"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
- android:id="@+id/etxtPassword"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/password_label"
- android:inputType="textPassword"
- android:lines="1"
- android:imeOptions="actionNext|flagNoFullscreen"
- android:imeActionLabel="@string/gpodnetauth_login_butLabel"/>
+ android:id="@+id/etxtPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/password_label"
+ android:inputType="textPassword"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen"
+ android:imeActionLabel="@string/gpodnetauth_login_butLabel" />
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:gravity="end|center_vertical">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:gravity="end|center_vertical">
<TextView
- android:id="@+id/credentialsError"
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:textColor="@color/download_failed_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"/>
+ android:id="@+id/credentialsError"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textColor="@color/download_failed_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:id="@+id/progBarLogin"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ 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"/>
+ android:id="@+id/butLogin"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/gpodnetauth_login_butLabel" />
+
</LinearLayout>
</LinearLayout>
diff --git a/app/src/main/res/layout/gpodnetauth_host.xml b/app/src/main/res/layout/gpodnetauth_host.xml
index 52c5fdb5d..bcee9b880 100644
--- a/app/src/main/res/layout/gpodnetauth_host.xml
+++ b/app/src/main/res/layout/gpodnetauth_host.xml
@@ -1,50 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <RadioGroup
- android:id="@+id/serverRadioGroup"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <RadioButton
- android:id="@+id/officialServerRadio"
- android:text="@string/gpodnetauth_server_official"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:checked="true"/>
- <RadioButton
- android:id="@+id/customServerRadio"
- android:text="@string/gpodnetauth_server_custom"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- </RadioGroup>
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
- android:id="@+id/serverUrlTextInput"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
- android:visibility="gone"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ 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:inputType="textNoSuggestions"
- android:lines="1"
- android:imeOptions="actionNext|flagNoFullscreen" />
+ android:id="@+id/serverUrlText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/gpodnetauth_host"
+ android:inputType="textNoSuggestions"
+ android:lines="1"
+ android:imeOptions="actionNext|flagNoFullscreen" />
</com.google.android.material.textfield.TextInputLayout>
<Button
- android:id="@+id/chooseHostButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="right|end"
- android:text="@string/gpodnetauth_select_server"/>
+ android:id="@+id/chooseHostButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right|end"
+ android:text="@string/gpodnetauth_select_server" />
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
index 37fb5f76f..7873ae4fe 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
@@ -46,7 +46,7 @@ import okhttp3.ResponseBody;
*/
public class GpodnetService implements ISyncService {
public static final String TAG = "GpodnetService";
- public static final String DEFAULT_BASE_HOST = "gpodder.net";
+ private static final String DEFAULT_BASE_HOST = "gpodder.net";
private static final int UPLOAD_BULK_SIZE = 30;
private static final MediaType TEXT = MediaType.parse("plain/text; charset=utf-8");
private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml
index 34813dde5..b1062d3c2 100644
--- a/ui/i18n/src/main/res/values/strings.xml
+++ b/ui/i18n/src/main/res/values/strings.xml
@@ -625,12 +625,9 @@
<!-- gpodder.net -->
<string name="gpodnetauth_login_butLabel">Login</string>
<string name="gpodnetauth_encryption_warning">Password and data are not encrypted!</string>
- <string name="create_account">Create account</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 is independent of the AntennaPod project.</string>
- <string name="gpodnetauth_server_official">Official gpodder.net server</string>
- <string name="gpodnetauth_server_custom">Custom server</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="gpodnetauth_device_name">Device name</string>