summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivityGingerbread.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java14
-rw-r--r--app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java39
-rw-r--r--app/src/main/res/layout/gpodnetauth_credentials.xml10
-rw-r--r--app/src/main/res/xml/preferences.xml8
6 files changed, 79 insertions, 7 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
index ba22a42b4..474c57169 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
@@ -118,5 +118,14 @@ public class PreferenceActivity extends AppCompatActivity {
activity.preferenceController.onResume();
}
}
+
+ @Override
+ public void onPause() {
+ PreferenceActivity activity = instance.get();
+ if(activity != null && activity.preferenceController != null) {
+ activity.preferenceController.onPause();
+ }
+ super.onPause();
+ }
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivityGingerbread.java b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivityGingerbread.java
index 633f8d66d..4af988ea0 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivityGingerbread.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivityGingerbread.java
@@ -55,6 +55,12 @@ public class PreferenceActivityGingerbread extends android.preference.Preference
}
@Override
+ protected void onPause() {
+ preferenceController.onPause();
+ super.onPause();
+ }
+
+ @Override
protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
theme.applyStyle(UserPreferences.getTheme(), true);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
index d46a3d6c2..8ede947c5 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
@@ -6,11 +6,13 @@ import android.content.res.Configuration;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
@@ -40,7 +42,7 @@ import de.danoeh.antennapod.core.service.GpodnetSyncService;
* Step 2: Choose device from a list of available devices or create a new one
* Step 3: Choose from a list of actions
*/
-public class GpodnetAuthenticationActivity extends ActionBarActivity {
+public class GpodnetAuthenticationActivity extends AppCompatActivity {
private static final String TAG = "GpodnetAuthActivity";
private static final String CURRENT_STEP = "current_step";
@@ -113,6 +115,9 @@ public class GpodnetAuthenticationActivity extends ActionBarActivity {
final TextView txtvError = (TextView) view.findViewById(R.id.txtvError);
final ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progBarLogin);
+ password.setOnEditorActionListener((v, actionID, event) ->
+ actionID == EditorInfo.IME_ACTION_GO && login.performClick());
+
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -131,6 +136,11 @@ public class GpodnetAuthenticationActivity extends ActionBarActivity {
login.setEnabled(false);
progressBar.setVisibility(View.VISIBLE);
txtvError.setVisibility(View.GONE);
+ // hide the keyboard
+ InputMethodManager inputManager = (InputMethodManager)
+ getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputManager.hideSoftInputFromWindow(login.getWindowToken(),
+ InputMethodManager.HIDE_NOT_ALWAYS);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
index e1ef24afd..19b8361e6 100644
--- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
+++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
@@ -28,10 +28,11 @@ import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
import android.text.format.DateFormat;
+import android.text.format.DateUtils;
import android.util.Log;
import android.widget.EditText;
-import android.widget.Toast;
import android.widget.ListView;
+import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
@@ -89,6 +90,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
public static final String PREF_GPODNET_SYNC = "pref_gpodnet_sync";
public static final String PREF_GPODNET_LOGOUT = "pref_gpodnet_logout";
public static final String PREF_GPODNET_HOSTNAME = "pref_gpodnet_hostname";
+ public static final String PREF_GPODNET_NOTIFICATIONS = "pref_gpodnet_notifications";
public static final String PREF_EXPANDED_NOTIFICATION = "prefExpandNotify";
public static final String PREF_PROXY = "prefProxy";
public static final String PREF_KNOWN_ISSUES = "prefKnownIssues";
@@ -120,6 +122,14 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
}
}
+ private final SharedPreferences.OnSharedPreferenceChangeListener gpoddernetListener =
+ (sharedPreferences, key) -> {
+ if (GpodnetPreferences.PREF_LAST_SYNC_ATTEMPT_TIMESTAMP.equals(key)) {
+ updateLastGpodnetSyncReport(GpodnetPreferences.getLastSyncAttemptResult(),
+ GpodnetPreferences.getLastSyncAttemptTimestamp());
+ }
+ };
+
/**
* Returns the preference activity that should be used on this device.
*
@@ -433,9 +443,14 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
setParallelDownloadsText(UserPreferences.getParallelDownloads());
setEpisodeCacheSizeText(UserPreferences.getEpisodeCacheSize());
setDataFolderText();
+ GpodnetPreferences.registerOnSharedPreferenceChangeListener(gpoddernetListener);
updateGpodnetPreferenceScreen();
}
+ public void onPause() {
+ GpodnetPreferences.unregisterOnSharedPreferenceChangeListener(gpoddernetListener);
+ }
+
@SuppressLint("NewApi")
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK &&
@@ -478,17 +493,39 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
ui.findPreference(PreferenceController.PREF_GPODNET_SETLOGIN_INFORMATION).setEnabled(loggedIn);
ui.findPreference(PreferenceController.PREF_GPODNET_SYNC).setEnabled(loggedIn);
ui.findPreference(PreferenceController.PREF_GPODNET_LOGOUT).setEnabled(loggedIn);
+ ui.findPreference(PREF_GPODNET_NOTIFICATIONS).setEnabled(loggedIn);
if(loggedIn) {
String format = ui.getActivity().getString(R.string.pref_gpodnet_login_status);
String summary = String.format(format, GpodnetPreferences.getUsername(),
GpodnetPreferences.getDeviceID());
ui.findPreference(PreferenceController.PREF_GPODNET_LOGOUT).setSummary(Html.fromHtml(summary));
+ updateLastGpodnetSyncReport(GpodnetPreferences.getLastSyncAttemptResult(),
+ GpodnetPreferences.getLastSyncAttemptTimestamp());
} else {
ui.findPreference(PreferenceController.PREF_GPODNET_LOGOUT).setSummary(null);
+ updateLastGpodnetSyncReport(false, 0);
}
ui.findPreference(PreferenceController.PREF_GPODNET_HOSTNAME).setSummary(GpodnetPreferences.getHostname());
}
+ private void updateLastGpodnetSyncReport(boolean successful, long lastTime) {
+ Preference sync = ui.findPreference(PREF_GPODNET_SYNC);
+ if (lastTime != 0) {
+ sync.setSummary(ui.getActivity().getString(R.string.pref_gpodnet_sync_sum) + "\n" +
+ ui.getActivity().getString(R.string.pref_gpodnet_sync_sum_last_sync_line,
+ ui.getActivity().getString(successful ?
+ R.string.gpodnetsync_pref_report_successful :
+ R.string.gpodnetsync_pref_report_failed),
+ DateUtils.getRelativeDateTimeString(ui.getActivity(),
+ lastTime,
+ DateUtils.MINUTE_IN_MILLIS,
+ DateUtils.WEEK_IN_MILLIS,
+ DateUtils.FORMAT_SHOW_TIME)));
+ } else {
+ sync.setSummary(ui.getActivity().getString(R.string.pref_gpodnet_sync_sum));
+ }
+ }
+
private String[] getUpdateIntervalEntries(final String[] values) {
final Resources res = ui.getActivity().getResources();
String[] entries = new String[values.length];
diff --git a/app/src/main/res/layout/gpodnetauth_credentials.xml b/app/src/main/res/layout/gpodnetauth_credentials.xml
index 13c5977f8..a290b682b 100644
--- a/app/src/main/res/layout/gpodnetauth_credentials.xml
+++ b/app/src/main/res/layout/gpodnetauth_credentials.xml
@@ -33,7 +33,11 @@
android:layout_margin="8dp"
android:focusable="true"
android:focusableInTouchMode="true"
- android:cursorVisible="true"/>
+ android:cursorVisible="true"
+ android:maxLines="1"
+ android:inputType="text"
+ android:imeOptions="actionNext"
+ android:nextFocusForward="@id/etxtPassword"/>
<EditText
android:id="@+id/etxtPassword"
@@ -45,7 +49,9 @@
android:layout_margin="8dp"
android:focusable="true"
android:focusableInTouchMode="true"
- android:cursorVisible="true"/>
+ android:cursorVisible="true"
+ android:imeOptions="actionGo"
+ android:imeActionLabel="@string/gpodnetauth_login_butLabel"/>
<Button
android:id="@+id/butLogin"
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 57829e3e1..d907cee12 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -74,7 +74,6 @@
android:key="prefQueueAddToFront"
android:summary="@string/pref_queueAddToFront_sum"
android:title="@string/pref_queueAddToFront_title"/>
- />
</PreferenceCategory>
<PreferenceCategory android:title="@string/playback_pref">
@@ -233,7 +232,7 @@
android:title="@string/pref_revokeAccess_title"/>
</PreferenceScreen>
<PreferenceScreen
- android:key="prefFlattrSettings"
+ android:key="prefGpodderSettings"
android:title="@string/gpodnet_main_label">
<PreferenceScreen
@@ -256,6 +255,11 @@
<Preference
android:key="pref_gpodnet_hostname"
android:title="@string/pref_gpodnet_sethostname_title"/>
+ <de.danoeh.antennapod.preferences.SwitchCompatPreference
+ android:key="pref_gpodnet_notifications"
+ android:title="@string/pref_gpodnet_notifications_title"
+ android:summary="@string/pref_gpodnet_notifications_sum"
+ android:defaultValue="true"/>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="@string/storage_pref">