[Android] TV: Batch main activity updates
Geoffrey Métais
git at videolan.org
Tue Jul 17 14:56:55 CEST 2018
vlc-android | branch: 3.0.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Tue Jul 17 14:43:33 2018 +0200| [bd276180f8f28793d50e15df37173b0769f8c172] | committer: Geoffrey Métais
TV: Batch main activity updates
> https://code.videolan.org/videolan/vlc-android/commit/bd276180f8f28793d50e15df37173b0769f8c172
---
.../org/videolan/vlc/gui/tv/MainTvActivity.java | 32 ++++++++++++++--------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
index 3835e425f..2c40bf282 100644
--- a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
@@ -82,6 +82,7 @@ import org.videolan.vlc.util.Constants;
import org.videolan.vlc.util.Permissions;
import org.videolan.vlc.util.Util;
+import java.util.LinkedList;
import java.util.List;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
@@ -184,7 +185,8 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
VLCApplication.runOnMainThread(new Runnable() {
@Override
public void run() {
- updateHistory(history);
+ final ListRow hist = updateHistory(history);
+ if (hist != null) mRowsAdapter.add(Math.min(2, mRowsAdapter.size()), hist);
}
});
}
@@ -400,11 +402,11 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
protected void onPostExecute(Void result) {
mHandler.sendEmptyMessage(HIDE_LOADING);
if (!isVisible()) return;
- if (mRowsAdapter != null) mRowsAdapter.clear();
- else {
+ if (mRowsAdapter == null) {
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
mBrowseFragment.setAdapter(mRowsAdapter);
}
+ final List<ListRow> rows = new LinkedList();
mHistoryIndex.clear();
//Video Section
mVideoIndex.clear();
@@ -421,7 +423,7 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
mVideoIndex.put(videoList[i].getLocation(), i);
}
}
- mRowsAdapter.add(new ListRow(videoHeader, mVideoAdapter));
+ rows.add(new ListRow(videoHeader, mVideoAdapter));
//Music sections
mCategoriesAdapter = new ArrayObjectAdapter(new CardPresenter(mContext));
@@ -431,16 +433,19 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_ALBUMS, getString(R.string.albums), R.drawable.ic_album_big));
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_GENRES, getString(R.string.genres), R.drawable.ic_genre_big));
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_SONGS, getString(R.string.songs), R.drawable.ic_song_big));
- mRowsAdapter.add(new ListRow(musicHeader, mCategoriesAdapter));
+ rows.add(new ListRow(musicHeader, mCategoriesAdapter));
//History
- if (showHistory && !Tools.isArrayEmpty(history)) updateHistory(history);
+ if (showHistory && !Tools.isArrayEmpty(history)) {
+ final ListRow hist = updateHistory(history);
+ if (hist != null) rows.add(hist);
+ }
//Browser section
mBrowserAdapter = new ArrayObjectAdapter(new CardPresenter(mContext));
final HeaderItem browserHeader = new HeaderItem(HEADER_NETWORK, getString(R.string.browsing));
updateBrowsers();
- mRowsAdapter.add(new ListRow(browserHeader, mBrowserAdapter));
+ rows.add(new ListRow(browserHeader, mBrowserAdapter));
mOtherAdapter = new ArrayObjectAdapter(new CardPresenter(mContext));
final HeaderItem miscHeader = new HeaderItem(HEADER_MISC, getString(R.string.other));
@@ -448,17 +453,19 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
mOtherAdapter.add(new CardPresenter.SimpleCard(ID_SETTINGS, getString(R.string.preferences), R.drawable.ic_menu_preferences_big));
mOtherAdapter.add(new CardPresenter.SimpleCard(ID_ABOUT, getString(R.string.about), getString(R.string.app_name_full)+" "+ BuildConfig.VERSION_NAME, R.drawable.ic_default_cone));
mOtherAdapter.add(new CardPresenter.SimpleCard(ID_LICENCE, getString(R.string.licence), R.drawable.ic_default_cone));
- mRowsAdapter.add(new ListRow(miscHeader, mOtherAdapter));
+ rows.add(new ListRow(miscHeader, mOtherAdapter));
+ mRowsAdapter.clear();
+ mRowsAdapter.addAll(0, rows);
}
}
@MainThread
- private synchronized void updateHistory(MediaWrapper[] history) {
- if (history == null || mRowsAdapter == null) return;
+ private synchronized ListRow updateHistory(MediaWrapper[] history) {
+ if (history == null || mRowsAdapter == null) return null;
final boolean createAdapter = mHistoryAdapter == null;
if (createAdapter) mHistoryAdapter = new ArrayObjectAdapter(new CardPresenter(mContext));
else mHistoryAdapter.clear();
- if (!mSettings.getBoolean(PreferencesFragment.PLAYBACK_HISTORY, true)) return;
+ if (!mSettings.getBoolean(PreferencesFragment.PLAYBACK_HISTORY, true)) return null;
for (int i = 0; i < history.length; ++i) {
final MediaWrapper item = history[i];
mHistoryAdapter.add(item);
@@ -466,8 +473,9 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
}
if (createAdapter) {
final HeaderItem historyHeader = new HeaderItem(HEADER_HISTORY, getString(R.string.history));
- mRowsAdapter.add(Math.min(2, mRowsAdapter.size()), new ListRow(historyHeader, mHistoryAdapter));
+ return new ListRow(historyHeader, mHistoryAdapter);
}
+ return null;
}
private void updateBrowsers() {
More information about the Android
mailing list