Added option to set gpodder.net hostname
This commit is contained in:
parent
2bfee6d467
commit
9eaffe684d
@ -213,6 +213,8 @@
|
||||
<string name="pref_gpodnet_setlogin_information_sum">Change the login information for your gpodder.net account.</string>
|
||||
<string name="pref_playback_speed_title">Playback Speeds</string>
|
||||
<string name="pref_playback_speed_sum">Customize the speeds available for variable speed audio playback</string>
|
||||
<string name="pref_gpodnet_sethostname_title">Set hostname</string>
|
||||
<string name="pref_gpodnet_sethostname_use_default_host">Use default host</string>
|
||||
|
||||
|
||||
<!-- Search -->
|
||||
|
@ -102,6 +102,9 @@
|
||||
<Preference
|
||||
android:key="pref_gpodnet_logout"
|
||||
android:title="@string/pref_gpodnet_logout_title"/>
|
||||
<Preference
|
||||
android:key="pref_gpodnet_hostname"
|
||||
android:title="@string/pref_gpodnet_sethostname_title"/>
|
||||
</PreferenceScreen>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
@ -3,6 +3,7 @@ package de.danoeh.antennapod.activity;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActionBar;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources.Theme;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
@ -23,6 +24,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.asynctask.FlattrClickWorker;
|
||||
import de.danoeh.antennapod.asynctask.OpmlExportWorker;
|
||||
import de.danoeh.antennapod.dialog.AuthenticationDialog;
|
||||
import de.danoeh.antennapod.dialog.GpodnetSetHostnameDialog;
|
||||
import de.danoeh.antennapod.dialog.VariableSpeedDialog;
|
||||
import de.danoeh.antennapod.preferences.GpodnetPreferences;
|
||||
import de.danoeh.antennapod.preferences.UserPreferences;
|
||||
@ -51,6 +53,7 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
|
||||
private static final String PREF_GPODNET_LOGIN = "pref_gpodnet_authenticate";
|
||||
private static final String PREF_GPODNET_SETLOGIN_INFORMATION = "pref_gpodnet_setlogin_information";
|
||||
private static final String PREF_GPODNET_LOGOUT = "pref_gpodnet_logout";
|
||||
private static final String PREF_GPODNET_HOSTNAME = "pref_gpodnet_hostname";
|
||||
|
||||
private CheckBoxPreference[] selectedNetworks;
|
||||
|
||||
@ -204,6 +207,18 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
findPreference(PREF_GPODNET_HOSTNAME).setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
GpodnetSetHostnameDialog.createDialog(PreferenceActivity.this).setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
updateGpodnetPreferenceScreen();
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
});
|
||||
buildUpdateIntervalPreference();
|
||||
buildAutodownloadSelectedNetworsPreference();
|
||||
setSelectedNetworksEnabled(UserPreferences
|
||||
@ -217,6 +232,7 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
|
||||
findPreference(PREF_GPODNET_LOGIN).setEnabled(!loggedIn);
|
||||
findPreference(PREF_GPODNET_SETLOGIN_INFORMATION).setEnabled(loggedIn);
|
||||
findPreference(PREF_GPODNET_LOGOUT).setEnabled(loggedIn);
|
||||
findPreference(PREF_GPODNET_HOSTNAME).setSummary(GpodnetPreferences.getHostname());
|
||||
}
|
||||
|
||||
private void buildUpdateIntervalPreference() {
|
||||
|
@ -2,6 +2,8 @@ package de.danoeh.antennapod.gpoddernet;
|
||||
|
||||
import de.danoeh.antennapod.AppConfig;
|
||||
import de.danoeh.antennapod.gpoddernet.model.*;
|
||||
import de.danoeh.antennapod.preferences.GpodnetPreferences;
|
||||
import de.danoeh.antennapod.preferences.UserPreferences;
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
@ -39,7 +41,9 @@ import java.util.List;
|
||||
public class GpodnetService {
|
||||
|
||||
private static final String BASE_SCHEME = "https";
|
||||
private static final String BASE_HOST = "gpodder.net";
|
||||
|
||||
public static final String DEFAULT_BASE_HOST = "gpodder.net";
|
||||
private final String BASE_HOST;
|
||||
|
||||
private static final int TIMEOUT_MILLIS = 20000;
|
||||
|
||||
@ -51,6 +55,7 @@ public class GpodnetService {
|
||||
params.setParameter(CoreProtocolPNames.USER_AGENT, AppConfig.USER_AGENT);
|
||||
HttpConnectionParams.setConnectionTimeout(params, TIMEOUT_MILLIS);
|
||||
HttpConnectionParams.setSoTimeout(params, TIMEOUT_MILLIS);
|
||||
BASE_HOST = GpodnetPreferences.getHostname();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,7 @@ import android.content.SharedPreferences;
|
||||
import android.util.Log;
|
||||
import de.danoeh.antennapod.AppConfig;
|
||||
import de.danoeh.antennapod.PodcastApp;
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetService;
|
||||
import de.danoeh.antennapod.service.GpodnetSyncService;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -23,6 +24,8 @@ public class GpodnetPreferences {
|
||||
public static final String PREF_GPODNET_USERNAME = "de.danoeh.antennapod.preferences.gpoddernet.username";
|
||||
public static final String PREF_GPODNET_PASSWORD = "de.danoeh.antennapod.preferences.gpoddernet.password";
|
||||
public static final String PREF_GPODNET_DEVICEID = "de.danoeh.antennapod.preferences.gpoddernet.deviceID";
|
||||
public static final String PREF_GPODNET_HOSTNAME = "prefGpodnetHostname";
|
||||
|
||||
|
||||
public static final String PREF_LAST_SYNC_TIMESTAMP = "de.danoeh.antennapod.preferences.gpoddernet.last_sync_timestamp";
|
||||
public static final String PREF_SYNC_ADDED = "de.danoeh.antennapod.preferences.gpoddernet.sync_added";
|
||||
@ -31,6 +34,7 @@ public class GpodnetPreferences {
|
||||
private static String username;
|
||||
private static String password;
|
||||
private static String deviceID;
|
||||
private static String hostname;
|
||||
|
||||
private static ReentrantLock feedListLock = new ReentrantLock();
|
||||
private static Set<String> addedFeeds;
|
||||
@ -56,6 +60,7 @@ public class GpodnetPreferences {
|
||||
lastSyncTimestamp = prefs.getLong(PREF_LAST_SYNC_TIMESTAMP, 0);
|
||||
addedFeeds = readListFromString(prefs.getString(PREF_SYNC_ADDED, ""));
|
||||
removedFeeds = readListFromString(prefs.getString(PREF_SYNC_REMOVED, ""));
|
||||
hostname = checkGpodnetHostname(prefs.getString(PREF_GPODNET_HOSTNAME, GpodnetService.DEFAULT_BASE_HOST));
|
||||
|
||||
preferencesLoaded = true;
|
||||
}
|
||||
@ -119,6 +124,20 @@ public class GpodnetPreferences {
|
||||
writePreference(PREF_LAST_SYNC_TIMESTAMP, lastSyncTimestamp);
|
||||
}
|
||||
|
||||
public static String getHostname() {
|
||||
ensurePreferencesLoaded();
|
||||
return hostname;
|
||||
}
|
||||
|
||||
public static void setHostname(String value) {
|
||||
value = checkGpodnetHostname(value);
|
||||
if (!value.equals(hostname)) {
|
||||
logout();
|
||||
writePreference(PREF_GPODNET_HOSTNAME, value);
|
||||
hostname = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void addAddedFeed(String feed) {
|
||||
ensurePreferencesLoaded();
|
||||
feedListLock.lock();
|
||||
@ -214,4 +233,14 @@ public class GpodnetPreferences {
|
||||
}
|
||||
return result.toString().trim();
|
||||
}
|
||||
|
||||
private static String checkGpodnetHostname(String value) {
|
||||
int startIndex = 0;
|
||||
if (value.startsWith("http://")) {
|
||||
startIndex = "http://".length();
|
||||
} else if (value.startsWith("https://")) {
|
||||
startIndex = "https://".length();
|
||||
}
|
||||
return value.substring(startIndex);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@ -473,5 +474,4 @@ public class UserPreferences implements
|
||||
Log.d(TAG, "Automatic update was deactivated");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user