From 572d8bd8d48c4dc26df3d96517b9b1850ab92589 Mon Sep 17 00:00:00 2001 From: Christophe Beyls Date: Wed, 7 Jan 2015 02:52:48 +0100 Subject: [PATCH] List fragments now inherit from SmoothListFragment for simpler code and more smoothness under Lollipop. --- .../fragments/BaseLiveListFragment.java | 10 ++-------- .../fragments/BookmarksListFragment.java | 10 ++-------- .../fragments/PersonInfoListFragment.java | 10 ++-------- .../fosdem/fragments/PersonsListFragment.java | 10 ++-------- .../fragments/SearchResultListFragment.java | 10 ++-------- .../fosdem/fragments/SmoothListFragment.java | 19 +++++++++++++++++++ .../fragments/TrackScheduleListFragment.java | 10 ++-------- .../fosdem/fragments/TracksListFragment.java | 10 ++-------- 8 files changed, 33 insertions(+), 56 deletions(-) create mode 100644 app/src/main/java/be/digitalia/fosdem/fragments/SmoothListFragment.java diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/BaseLiveListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/BaseLiveListFragment.java index fb50613..729155c 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/BaseLiveListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/BaseLiveListFragment.java @@ -3,7 +3,6 @@ package be.digitalia.fosdem.fragments; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.View; @@ -12,7 +11,7 @@ import be.digitalia.fosdem.activities.EventDetailsActivity; import be.digitalia.fosdem.adapters.EventsAdapter; import be.digitalia.fosdem.model.Event; -public abstract class BaseLiveListFragment extends ListFragment implements LoaderCallbacks { +public abstract class BaseLiveListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int EVENTS_LOADER_ID = 1; @@ -43,12 +42,7 @@ public abstract class BaseLiveListFragment extends ListFragment implements Loade adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/BookmarksListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/BookmarksListFragment.java index 0c45158..4aff11a 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/BookmarksListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/BookmarksListFragment.java @@ -6,7 +6,6 @@ import android.database.Cursor; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.Menu; @@ -28,7 +27,7 @@ import be.digitalia.fosdem.widgets.BookmarksMultiChoiceModeListener; * * @author Christophe Beyls */ -public class BookmarksListFragment extends ListFragment implements LoaderCallbacks { +public class BookmarksListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int BOOKMARKS_LOADER_ID = 1; private static final String PREF_UPCOMING_ONLY = "bookmarks_upcoming_only"; @@ -168,12 +167,7 @@ public class BookmarksListFragment extends ListFragment implements LoaderCallbac adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java index bda8e61..82a1f86 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java @@ -5,7 +5,6 @@ import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.LayoutInflater; @@ -23,7 +22,7 @@ import be.digitalia.fosdem.loaders.SimpleCursorLoader; import be.digitalia.fosdem.model.Event; import be.digitalia.fosdem.model.Person; -public class PersonInfoListFragment extends ListFragment implements LoaderCallbacks { +public class PersonInfoListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int PERSON_EVENTS_LOADER_ID = 1; private static final String ARG_PERSON = "person"; @@ -112,12 +111,7 @@ public class PersonInfoListFragment extends ListFragment implements LoaderCallba adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/PersonsListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/PersonsListFragment.java index 8408597..b43b9bf 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/PersonsListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/PersonsListFragment.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.support.v4.widget.CursorAdapter; @@ -21,7 +20,7 @@ import be.digitalia.fosdem.db.DatabaseManager; import be.digitalia.fosdem.loaders.SimpleCursorLoader; import be.digitalia.fosdem.model.Person; -public class PersonsListFragment extends ListFragment implements LoaderCallbacks { +public class PersonsListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int PERSONS_LOADER_ID = 1; @@ -68,12 +67,7 @@ public class PersonsListFragment extends ListFragment implements LoaderCallbacks adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/SearchResultListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/SearchResultListFragment.java index 1a668cb..15dd850 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/SearchResultListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/SearchResultListFragment.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.View; @@ -16,7 +15,7 @@ import be.digitalia.fosdem.db.DatabaseManager; import be.digitalia.fosdem.loaders.SimpleCursorLoader; import be.digitalia.fosdem.model.Event; -public class SearchResultListFragment extends ListFragment implements LoaderCallbacks { +public class SearchResultListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int EVENTS_LOADER_ID = 1; private static final String ARG_QUERY = "query"; @@ -75,12 +74,7 @@ public class SearchResultListFragment extends ListFragment implements LoaderCall adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/SmoothListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/SmoothListFragment.java new file mode 100644 index 0000000..f027dbb --- /dev/null +++ b/app/src/main/java/be/digitalia/fosdem/fragments/SmoothListFragment.java @@ -0,0 +1,19 @@ +package be.digitalia.fosdem.fragments; + +import android.os.Build; +import android.support.v4.app.ListFragment; + +/** + * ListFragment which disables the fade animation under certain conditions for more smoothness. + */ +public class SmoothListFragment extends ListFragment { + + @Override + public void setListShown(boolean shown) { + if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) && isResumed()) { + super.setListShown(shown); + } else { + setListShownNoAnimation(shown); + } + } +} diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/TrackScheduleListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/TrackScheduleListFragment.java index 95b0656..43416e0 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/TrackScheduleListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/TrackScheduleListFragment.java @@ -10,7 +10,6 @@ import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.support.v4.widget.CursorAdapter; @@ -32,7 +31,7 @@ import be.digitalia.fosdem.model.Event; import be.digitalia.fosdem.model.Track; import be.digitalia.fosdem.utils.DateUtils; -public class TrackScheduleListFragment extends ListFragment implements Handler.Callback, LoaderCallbacks { +public class TrackScheduleListFragment extends SmoothListFragment implements Handler.Callback, LoaderCallbacks { /** * Interface implemented by container activities @@ -205,12 +204,7 @@ public class TrackScheduleListFragment extends ListFragment implements Handler.C isListAlreadyShown = true; } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } /** diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/TracksListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/TracksListFragment.java index b4b0b20..9e7e19a 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/TracksListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/TracksListFragment.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.support.v4.widget.CursorAdapter; @@ -20,7 +19,7 @@ import be.digitalia.fosdem.loaders.SimpleCursorLoader; import be.digitalia.fosdem.model.Day; import be.digitalia.fosdem.model.Track; -public class TracksListFragment extends ListFragment implements LoaderCallbacks { +public class TracksListFragment extends SmoothListFragment implements LoaderCallbacks { private static final int TRACKS_LOADER_ID = 1; private static final String ARG_DAY = "day"; @@ -80,12 +79,7 @@ public class TracksListFragment extends ListFragment implements LoaderCallbacks< adapter.swapCursor(data); } - // The list should now be shown. - if (isResumed()) { - setListShown(true); - } else { - setListShownNoAnimation(true); - } + setListShown(true); } @Override