diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
12 files changed, 81 insertions, 24 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java index eea977c2e..a53adc719 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java @@ -5,7 +5,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/FeedFilterDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/FeedFilterDialog.java index 7d1fe4026..3b0e2d04b 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/FeedFilterDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/FeedFilterDialog.java @@ -6,6 +6,9 @@ import androidx.appcompat.app.AlertDialog; import org.greenrobot.eventbus.EventBus; +import java.util.Arrays; +import java.util.List; + import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent; import de.danoeh.antennapod.core.preferences.UserPreferences; @@ -16,20 +19,15 @@ public class FeedFilterDialog { dialog.setTitle(context.getString(R.string.pref_filter_feed_title)); dialog.setNegativeButton(android.R.string.cancel, (d, listener) -> d.dismiss()); - int selectedIndexTemp = 0; int selected = UserPreferences.getFeedFilter(); - String[] entryValues = context.getResources().getStringArray(R.array.nav_drawer_feed_filter_values); - for (int i = 0; i < entryValues.length; i++) { - if (Integer.parseInt(entryValues[i]) == selected) { - selectedIndexTemp = i; - } - } + List<String> entryValues = + Arrays.asList(context.getResources().getStringArray(R.array.nav_drawer_feed_filter_values)); + final int selectedIndex = entryValues.indexOf("" + selected); - final int selectedIndex = selectedIndexTemp; String[] items = context.getResources().getStringArray(R.array.nav_drawer_feed_filter_options); dialog.setSingleChoiceItems(items, selectedIndex, (d, which) -> { if (selectedIndex != which) { - UserPreferences.setFeedFilter(entryValues[which]); + UserPreferences.setFeedFilter(entryValues.get(which)); //Update subscriptions EventBus.getDefault().post(new UnreadItemsUpdateEvent()); } diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/FeedSortDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/FeedSortDialog.java new file mode 100644 index 000000000..96d1b9b67 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/dialog/FeedSortDialog.java @@ -0,0 +1,38 @@ +package de.danoeh.antennapod.dialog; + +import android.content.Context; + +import androidx.appcompat.app.AlertDialog; + +import org.greenrobot.eventbus.EventBus; + +import java.util.Arrays; +import java.util.List; + +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent; +import de.danoeh.antennapod.core.preferences.UserPreferences; + +public class FeedSortDialog { + public static void showDialog(Context context) { + AlertDialog.Builder dialog = new AlertDialog.Builder(context); + dialog.setTitle(context.getString(R.string.pref_nav_drawer_feed_order_title)); + dialog.setNegativeButton(android.R.string.cancel, (d, listener) -> d.dismiss()); + + int selected = UserPreferences.getFeedOrder(); + List<String> entryValues = + Arrays.asList(context.getResources().getStringArray(R.array.nav_drawer_feed_order_values)); + final int selectedIndex = entryValues.indexOf("" + selected); + + String[] items = context.getResources().getStringArray(R.array.nav_drawer_feed_order_options); + dialog.setSingleChoiceItems(items, selectedIndex, (d, which) -> { + if (selectedIndex != which) { + UserPreferences.setFeedOrder(entryValues.get(which)); + //Update subscriptions + EventBus.getDefault().post(new UnreadItemsUpdateEvent()); + } + d.dismiss(); + }); + dialog.show(); + } +} diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java index 209e5d0e1..a82c60d6c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java @@ -14,7 +14,7 @@ import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.preference.ListPreference; import androidx.preference.PreferenceFragmentCompat; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.dialog.ConfirmationDialog; import de.danoeh.antennapod.core.event.settings.SkipIntroEndingChangedEvent; @@ -322,7 +322,7 @@ public class FeedSettingsFragment extends Fragment { } private void setupKeepUpdatedPreference() { - SwitchPreference pref = findPreference("keepUpdated"); + SwitchPreferenceCompat pref = findPreference("keepUpdated"); pref.setChecked(feedPreferences.getKeepUpdated()); pref.setOnPreferenceChangeListener((preference, newValue) -> { @@ -336,7 +336,7 @@ public class FeedSettingsFragment extends Fragment { private void setupAutoDownloadGlobalPreference() { if (!UserPreferences.isEnableAutodownload()) { - SwitchPreference autodl = findPreference("autoDownload"); + SwitchPreferenceCompat autodl = findPreference("autoDownload"); autodl.setChecked(false); autodl.setEnabled(false); autodl.setSummary(R.string.auto_download_disabled_globally); @@ -345,7 +345,7 @@ public class FeedSettingsFragment extends Fragment { } private void setupAutoDownloadPreference() { - SwitchPreference pref = findPreference("autoDownload"); + SwitchPreferenceCompat pref = findPreference("autoDownload"); pref.setEnabled(UserPreferences.isEnableAutodownload()); if (UserPreferences.isEnableAutodownload()) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java index 8ecb692a5..e8bd5a1e1 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java @@ -107,8 +107,8 @@ public class OnlineSearchFragment extends Fragment { txtvError = root.findViewById(R.id.txtvError); butRetry = root.findViewById(R.id.butRetry); txtvEmpty = root.findViewById(android.R.id.empty); - - txtvEmpty.setText(getString(R.string.search_powered_by, searchProvider.getName())); + TextView txtvPoweredBy = root.findViewById(R.id.search_powered_by); + txtvPoweredBy.setText(getString(R.string.search_powered_by, searchProvider.getName())); return root; } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index da156f904..26216b375 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -384,10 +384,12 @@ public class QueueFragment extends Fragment { if (recyclerAdapter != null) { recyclerAdapter.updateDragDropEnabled(); } - if (locked) { - ((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.queue_locked, Snackbar.LENGTH_SHORT); - } else { - ((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.queue_unlocked, Snackbar.LENGTH_SHORT); + if (queue.size() == 0) { + if (locked) { + ((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.queue_locked, Snackbar.LENGTH_SHORT); + } else { + ((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.queue_unlocked, Snackbar.LENGTH_SHORT); + } } } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java index 7d6a3dc40..26145c064 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java @@ -46,6 +46,7 @@ import de.danoeh.antennapod.core.util.FeedItemUtil; import de.danoeh.antennapod.core.util.IntentUtils; import de.danoeh.antennapod.core.util.download.AutoUpdateManager; import de.danoeh.antennapod.dialog.FeedFilterDialog; +import de.danoeh.antennapod.dialog.FeedSortDialog; import de.danoeh.antennapod.dialog.RenameFeedDialog; import de.danoeh.antennapod.menuhandler.MenuItemUtils; import de.danoeh.antennapod.view.EmptyViewHandler; @@ -131,6 +132,9 @@ public class SubscriptionFragment extends Fragment { case R.id.subscriptions_filter: FeedFilterDialog.showDialog(requireContext()); return true; + case R.id.subscriptions_sort: + FeedSortDialog.showDialog(requireContext()); + return true; case R.id.subscription_num_columns_2: setColumnNumber(2); return true; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java index 0409ce11b..3f1cec729 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java @@ -22,6 +22,7 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat { private static final String PREF_FAQ = "prefFaq"; private static final String PREF_VIEW_FORUM = "prefViewForum"; private static final String PREF_SEND_BUG_REPORT = "prefSendBugReport"; + private static final String PREF_CATEGORY_PROJECT = "project"; private static final String STATISTICS = "statistics"; private static final String PREF_ABOUT = "prefAbout"; @@ -30,6 +31,13 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat { addPreferencesFromResource(R.xml.preferences); setupMainScreen(); setupSearch(); + + // If you are writing a spin-off, please update the details on screens like "About" and "Report bug" + // and afterwards remove the following lines. + String packageName = getContext().getPackageName(); + if (!"de.danoeh.antennapod".equals(packageName) && !"de.danoeh.antennapod.debug".equals(packageName)) { + findPreference(PREF_CATEGORY_PROJECT).setVisible(false); + } } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java index 4596fc90e..12be76ba7 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java @@ -13,6 +13,7 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.activity.PreferenceActivity; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.dialog.FeedFilterDialog; +import de.danoeh.antennapod.dialog.FeedSortDialog; import de.danoeh.antennapod.fragment.NavDrawerFragment; import org.apache.commons.lang3.ArrayUtils; @@ -82,6 +83,12 @@ public class UserInterfacePreferencesFragment extends PreferenceFragmentCompat { return true; })); + findPreference(UserPreferences.PREF_DRAWER_FEED_ORDER) + .setOnPreferenceClickListener((preference -> { + FeedSortDialog.showDialog(requireContext()); + return true; + })); + if (Build.VERSION.SDK_INT >= 26) { findPreference(UserPreferences.PREF_EXPANDED_NOTIFICATION).setVisible(false); } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java b/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java index 007457c24..94e60ef61 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java @@ -4,7 +4,7 @@ import android.annotation.TargetApi; import android.content.Context; import android.graphics.Typeface; import android.os.Build; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; import androidx.preference.PreferenceViewHolder; import android.util.AttributeSet; import android.util.TypedValue; @@ -12,7 +12,7 @@ import android.widget.TextView; import de.danoeh.antennapod.R; -public class MasterSwitchPreference extends SwitchPreference { +public class MasterSwitchPreference extends SwitchPreferenceCompat { public MasterSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java index 367593131..2a157c23b 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java @@ -2,7 +2,7 @@ package de.danoeh.antennapod.preferences; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import de.danoeh.antennapod.BuildConfig; import de.danoeh.antennapod.CrashReportWriter; diff --git a/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java b/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java index 1f28b5c49..f9c10041e 100644 --- a/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java +++ b/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java @@ -3,7 +3,7 @@ package de.danoeh.antennapod.spa; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.preference.PreferenceManager; +import androidx.preference.PreferenceManager; import android.util.Log; import de.danoeh.antennapod.BuildConfig; |