mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-02-03 20:17:39 +01:00
Merge pull request #5945 from ByteHamster/remove-gpodder
Remove default gpodder sync server
This commit is contained in:
commit
c0cfb4cf24
@ -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);
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
</LinearLayout>
|
||||
|
@ -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");
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user