Merge pull request #4400 from asdoi/sort_subscriptions
Add 'sort' to subscriptions view
This commit is contained in:
commit
410dfabeb5
@ -6,6 +6,9 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import de.danoeh.antennapod.R;
|
import de.danoeh.antennapod.R;
|
||||||
import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent;
|
import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent;
|
||||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
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.setTitle(context.getString(R.string.pref_filter_feed_title));
|
||||||
dialog.setNegativeButton(android.R.string.cancel, (d, listener) -> d.dismiss());
|
dialog.setNegativeButton(android.R.string.cancel, (d, listener) -> d.dismiss());
|
||||||
|
|
||||||
int selectedIndexTemp = 0;
|
|
||||||
int selected = UserPreferences.getFeedFilter();
|
int selected = UserPreferences.getFeedFilter();
|
||||||
String[] entryValues = context.getResources().getStringArray(R.array.nav_drawer_feed_filter_values);
|
List<String> entryValues =
|
||||||
for (int i = 0; i < entryValues.length; i++) {
|
Arrays.asList(context.getResources().getStringArray(R.array.nav_drawer_feed_filter_values));
|
||||||
if (Integer.parseInt(entryValues[i]) == selected) {
|
final int selectedIndex = entryValues.indexOf("" + selected);
|
||||||
selectedIndexTemp = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final int selectedIndex = selectedIndexTemp;
|
|
||||||
String[] items = context.getResources().getStringArray(R.array.nav_drawer_feed_filter_options);
|
String[] items = context.getResources().getStringArray(R.array.nav_drawer_feed_filter_options);
|
||||||
dialog.setSingleChoiceItems(items, selectedIndex, (d, which) -> {
|
dialog.setSingleChoiceItems(items, selectedIndex, (d, which) -> {
|
||||||
if (selectedIndex != which) {
|
if (selectedIndex != which) {
|
||||||
UserPreferences.setFeedFilter(entryValues[which]);
|
UserPreferences.setFeedFilter(entryValues.get(which));
|
||||||
//Update subscriptions
|
//Update subscriptions
|
||||||
EventBus.getDefault().post(new UnreadItemsUpdateEvent());
|
EventBus.getDefault().post(new UnreadItemsUpdateEvent());
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
@ -46,6 +46,7 @@ import de.danoeh.antennapod.core.util.FeedItemUtil;
|
|||||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||||
import de.danoeh.antennapod.core.util.download.AutoUpdateManager;
|
import de.danoeh.antennapod.core.util.download.AutoUpdateManager;
|
||||||
import de.danoeh.antennapod.dialog.FeedFilterDialog;
|
import de.danoeh.antennapod.dialog.FeedFilterDialog;
|
||||||
|
import de.danoeh.antennapod.dialog.FeedSortDialog;
|
||||||
import de.danoeh.antennapod.dialog.RenameFeedDialog;
|
import de.danoeh.antennapod.dialog.RenameFeedDialog;
|
||||||
import de.danoeh.antennapod.menuhandler.MenuItemUtils;
|
import de.danoeh.antennapod.menuhandler.MenuItemUtils;
|
||||||
import de.danoeh.antennapod.view.EmptyViewHandler;
|
import de.danoeh.antennapod.view.EmptyViewHandler;
|
||||||
@ -131,6 +132,9 @@ public class SubscriptionFragment extends Fragment {
|
|||||||
case R.id.subscriptions_filter:
|
case R.id.subscriptions_filter:
|
||||||
FeedFilterDialog.showDialog(requireContext());
|
FeedFilterDialog.showDialog(requireContext());
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.subscriptions_sort:
|
||||||
|
FeedSortDialog.showDialog(requireContext());
|
||||||
|
return true;
|
||||||
case R.id.subscription_num_columns_2:
|
case R.id.subscription_num_columns_2:
|
||||||
setColumnNumber(2);
|
setColumnNumber(2);
|
||||||
return true;
|
return true;
|
||||||
|
@ -13,6 +13,7 @@ import de.danoeh.antennapod.activity.MainActivity;
|
|||||||
import de.danoeh.antennapod.activity.PreferenceActivity;
|
import de.danoeh.antennapod.activity.PreferenceActivity;
|
||||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||||
import de.danoeh.antennapod.dialog.FeedFilterDialog;
|
import de.danoeh.antennapod.dialog.FeedFilterDialog;
|
||||||
|
import de.danoeh.antennapod.dialog.FeedSortDialog;
|
||||||
import de.danoeh.antennapod.fragment.NavDrawerFragment;
|
import de.danoeh.antennapod.fragment.NavDrawerFragment;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@ -82,6 +83,12 @@ public class UserInterfacePreferencesFragment extends PreferenceFragmentCompat {
|
|||||||
return true;
|
return true;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
findPreference(UserPreferences.PREF_DRAWER_FEED_ORDER)
|
||||||
|
.setOnPreferenceClickListener((preference -> {
|
||||||
|
FeedSortDialog.showDialog(requireContext());
|
||||||
|
return true;
|
||||||
|
}));
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 26) {
|
if (Build.VERSION.SDK_INT >= 26) {
|
||||||
findPreference(UserPreferences.PREF_EXPANDED_NOTIFICATION).setVisible(false);
|
findPreference(UserPreferences.PREF_EXPANDED_NOTIFICATION).setVisible(false);
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
android:id="@+id/subscriptions_filter"
|
android:id="@+id/subscriptions_filter"
|
||||||
android:title="@string/filter"
|
android:title="@string/filter"
|
||||||
custom:showAsAction="never" />
|
custom:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/subscriptions_sort"
|
||||||
|
android:title="@string/sort"
|
||||||
|
custom:showAsAction="never" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/subscription_num_columns"
|
android:id="@+id/subscription_num_columns"
|
||||||
android:title="@string/subscription_num_columns"
|
android:title="@string/subscription_num_columns"
|
||||||
|
@ -22,13 +22,10 @@
|
|||||||
android:enabled="true"/>
|
android:enabled="true"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/subscriptions_label">
|
<PreferenceCategory android:title="@string/subscriptions_label">
|
||||||
<ListPreference
|
<Preference
|
||||||
android:entryValues="@array/nav_drawer_feed_order_values"
|
|
||||||
android:entries="@array/nav_drawer_feed_order_options"
|
|
||||||
android:title="@string/pref_nav_drawer_feed_order_title"
|
android:title="@string/pref_nav_drawer_feed_order_title"
|
||||||
android:key="prefDrawerFeedOrder"
|
android:key="prefDrawerFeedOrder"
|
||||||
android:summary="@string/pref_nav_drawer_feed_order_sum"
|
android:summary="@string/pref_nav_drawer_feed_order_sum"/>
|
||||||
android:defaultValue="0"/>
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:entryValues="@array/nav_drawer_feed_counter_values"
|
android:entryValues="@array/nav_drawer_feed_counter_values"
|
||||||
android:entries="@array/nav_drawer_feed_counter_options"
|
android:entries="@array/nav_drawer_feed_counter_options"
|
||||||
|
@ -55,7 +55,7 @@ public class UserPreferences {
|
|||||||
// User Interface
|
// User Interface
|
||||||
public static final String PREF_THEME = "prefTheme";
|
public static final String PREF_THEME = "prefTheme";
|
||||||
public static final String PREF_HIDDEN_DRAWER_ITEMS = "prefHiddenDrawerItems";
|
public static final String PREF_HIDDEN_DRAWER_ITEMS = "prefHiddenDrawerItems";
|
||||||
private static final String PREF_DRAWER_FEED_ORDER = "prefDrawerFeedOrder";
|
public static final String PREF_DRAWER_FEED_ORDER = "prefDrawerFeedOrder";
|
||||||
private static final String PREF_DRAWER_FEED_COUNTER = "prefDrawerFeedIndicator";
|
private static final String PREF_DRAWER_FEED_COUNTER = "prefDrawerFeedIndicator";
|
||||||
public static final String PREF_EXPANDED_NOTIFICATION = "prefExpandNotify";
|
public static final String PREF_EXPANDED_NOTIFICATION = "prefExpandNotify";
|
||||||
public static final String PREF_USE_EPISODE_COVER = "prefEpisodeCover";
|
public static final String PREF_USE_EPISODE_COVER = "prefEpisodeCover";
|
||||||
@ -246,6 +246,12 @@ public class UserPreferences {
|
|||||||
return Integer.parseInt(value);
|
return Integer.parseInt(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setFeedOrder(String selected) {
|
||||||
|
prefs.edit()
|
||||||
|
.putString(PREF_DRAWER_FEED_ORDER, selected)
|
||||||
|
.commit();
|
||||||
|
}
|
||||||
|
|
||||||
public static int getFeedCounterSetting() {
|
public static int getFeedCounterSetting() {
|
||||||
String value = prefs.getString(PREF_DRAWER_FEED_COUNTER, "" + FEED_COUNTER_SHOW_NEW);
|
String value = prefs.getString(PREF_DRAWER_FEED_COUNTER, "" + FEED_COUNTER_SHOW_NEW);
|
||||||
return Integer.parseInt(value);
|
return Integer.parseInt(value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user