From 87338fd02d496e19129c91763cb46835f3ff3870 Mon Sep 17 00:00:00 2001 From: Andrei Date: Sat, 16 May 2020 18:29:59 -0700 Subject: [PATCH] Android widget config feed list updates --- .../res/layout/activity_widget_config.xml | 40 +++++++---------- .../com/newsblur/activity/WidgetConfig.java | 43 ++++++++++++------- .../activity/WidgetConfigAdapter.java | 2 +- 3 files changed, 44 insertions(+), 41 deletions(-) diff --git a/clients/android/NewsBlur/res/layout/activity_widget_config.xml b/clients/android/NewsBlur/res/layout/activity_widget_config.xml index 83f923b77..3240ebdfe 100644 --- a/clients/android/NewsBlur/res/layout/activity_widget_config.xml +++ b/clients/android/NewsBlur/res/layout/activity_widget_config.xml @@ -1,31 +1,23 @@ - + android:layout_height="match_parent"> - + android:layout_height="match_parent" + android:orientation="vertical" + app:layoutManager="android.support.v7.widget.LinearLayoutManager" /> - + - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfig.java b/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfig.java index fcc07d4a2..3f1a4978b 100644 --- a/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfig.java +++ b/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfig.java @@ -6,6 +6,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.Loader; import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -218,23 +219,9 @@ public class WidgetConfig extends NbActivity { } else if (feedOrderFilter == FeedOrderFilter.OPENS && listOrderFilter == ListOrderFilter.DESCENDING) { return Integer.compare(o2.feedOpens, o1.feedOpens); } else if (feedOrderFilter == FeedOrderFilter.RECENT_STORY && listOrderFilter == ListOrderFilter.ASCENDING) { - try { - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); - Date firstDate = dateFormat.parse(o1.lastStoryDate); - Date secondDate = dateFormat.parse(o2.lastStoryDate); - return secondDate.compareTo(firstDate); - } catch (ParseException e) { - e.printStackTrace(); - } + return compareLastStoryDateTimes(o1.lastStoryDate, o2.lastStoryDate, listOrderFilter); } else if (feedOrderFilter == FeedOrderFilter.RECENT_STORY && listOrderFilter == ListOrderFilter.DESCENDING) { - try { - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); - Date firstDate = dateFormat.parse(o1.lastStoryDate); - Date secondDate = dateFormat.parse(o2.lastStoryDate); - return firstDate.compareTo(secondDate); - } catch (ParseException e) { - e.printStackTrace(); - } + return compareLastStoryDateTimes(o1.lastStoryDate, o2.lastStoryDate, listOrderFilter); } else if (feedOrderFilter == FeedOrderFilter.STORIES_MONTH && listOrderFilter == ListOrderFilter.ASCENDING) { return Integer.compare(o1.storiesPerMonth, o2.storiesPerMonth); } else if (feedOrderFilter == FeedOrderFilter.STORIES_MONTH && listOrderFilter == ListOrderFilter.DESCENDING) { @@ -244,4 +231,28 @@ public class WidgetConfig extends NbActivity { } }; } + + private int compareLastStoryDateTimes(String firstDateTime, String secondDateTime, ListOrderFilter listOrderFilter) { + try { + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); + // found null last story date times on feeds + if (TextUtils.isEmpty(firstDateTime)) { + firstDateTime = "2000-01-01 00:00:00"; + } + if (TextUtils.isEmpty(secondDateTime)) { + secondDateTime = "2000-01-01 00:00:00"; + } + + Date firstDate = dateFormat.parse(firstDateTime); + Date secondDate = dateFormat.parse(secondDateTime); + if (listOrderFilter == ListOrderFilter.ASCENDING) { + return firstDate.compareTo(secondDate); + } else { + return secondDate.compareTo(firstDate); + } + } catch (ParseException e) { + e.printStackTrace(); + return 0; + } + } } \ No newline at end of file diff --git a/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfigAdapter.java b/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfigAdapter.java index 8c1dce5d0..37ef4f18f 100644 --- a/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfigAdapter.java +++ b/clients/android/NewsBlur/src/com/newsblur/activity/WidgetConfigAdapter.java @@ -63,7 +63,7 @@ public class WidgetConfigAdapter extends RecyclerView.Adapter