From d09f0b187ed2f684c498f52510a5a935eacd1d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20M=C3=A9tais?= Date: Fri, 24 Oct 2014 11:13:45 +0200 Subject: [PATCH] Cardview for video browsing --- .../ic_more_vert_grey600_24dp.png | Bin 0 -> 221 bytes .../ic_more_vert_grey600_24dp.png | Bin 0 -> 202 bytes .../ic_more_vert_grey600_24dp.png | Bin 0 -> 252 bytes vlc-android/res/layout/video_grid_card.xml | 73 ++++++++++++++++++ vlc-android/res/layout/video_grid_item.xml | 61 --------------- vlc-android/res/layout/video_list_card.xml | 73 ++++++++++++++++++ vlc-android/res/layout/video_list_item.xml | 67 ---------------- vlc-android/res/values-land/booleans.xml | 4 + vlc-android/res/values-sw600dp/booleans.xml | 4 + vlc-android/res/values-sw600dp/dimens.xml | 8 ++ vlc-android/res/values/booleans.xml | 4 + vlc-android/res/values/dimens.xml | 6 ++ .../vlc/gui/video/VideoGridFragment.java | 37 ++------- .../vlc/gui/video/VideoListAdapter.java | 8 +- 14 files changed, 181 insertions(+), 164 deletions(-) create mode 100644 vlc-android/res/drawable-hdpi/ic_more_vert_grey600_24dp.png create mode 100644 vlc-android/res/drawable-mdpi/ic_more_vert_grey600_24dp.png create mode 100644 vlc-android/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png create mode 100644 vlc-android/res/layout/video_grid_card.xml delete mode 100644 vlc-android/res/layout/video_grid_item.xml create mode 100644 vlc-android/res/layout/video_list_card.xml delete mode 100644 vlc-android/res/layout/video_list_item.xml create mode 100644 vlc-android/res/values-land/booleans.xml create mode 100644 vlc-android/res/values-sw600dp/booleans.xml create mode 100644 vlc-android/res/values-sw600dp/dimens.xml create mode 100644 vlc-android/res/values/booleans.xml diff --git a/vlc-android/res/drawable-hdpi/ic_more_vert_grey600_24dp.png b/vlc-android/res/drawable-hdpi/ic_more_vert_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e141502a69bd1442b49b6a5cc1b35fe71be48ebe GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?B?0_fWX?B;$bJn%o3gg`e4<#CsF(r!<{wG@5&M z(Zr;H=XI+MGptRLFBD}QS@0~N)3NhZO27`2C2dzGNCi1(o%rv-|4@I)+XZO=~G=WkM1 zFVdQ&MBb@0ROQx761SM literal 0 HcmV?d00001 diff --git a/vlc-android/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png b/vlc-android/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc63a511de28fa7260348468d9523e8a42413fe GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zOFUg1Ln02py<*69KtaGI&|mn-@4v;KM~YdSqh_l~ywTahdHCDsSx=?U+%slk`NLh{ zqSe}Pm(e2cR(0mQ8SF{(^G(iub&ze?Bd4*u(SV`OHo>#@-=iBJmra}ObL{+iZPBcW rQA@;Dx-wl++UlVjq{YJV;~itF^yUaYL$~)p`x!i4{an^LB{Ts5+|g0{ literal 0 HcmV?d00001 diff --git a/vlc-android/res/layout/video_grid_card.xml b/vlc-android/res/layout/video_grid_card.xml new file mode 100644 index 000000000..2bd11cea9 --- /dev/null +++ b/vlc-android/res/layout/video_grid_card.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vlc-android/res/layout/video_grid_item.xml b/vlc-android/res/layout/video_grid_item.xml deleted file mode 100644 index efc8506aa..000000000 --- a/vlc-android/res/layout/video_grid_item.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/vlc-android/res/layout/video_list_card.xml b/vlc-android/res/layout/video_list_card.xml new file mode 100644 index 000000000..51b84df1c --- /dev/null +++ b/vlc-android/res/layout/video_list_card.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vlc-android/res/layout/video_list_item.xml b/vlc-android/res/layout/video_list_item.xml deleted file mode 100644 index 6fdc4b4ff..000000000 --- a/vlc-android/res/layout/video_list_item.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/vlc-android/res/values-land/booleans.xml b/vlc-android/res/values-land/booleans.xml new file mode 100644 index 000000000..75fa6c101 --- /dev/null +++ b/vlc-android/res/values-land/booleans.xml @@ -0,0 +1,4 @@ + + + false + \ No newline at end of file diff --git a/vlc-android/res/values-sw600dp/booleans.xml b/vlc-android/res/values-sw600dp/booleans.xml new file mode 100644 index 000000000..75fa6c101 --- /dev/null +++ b/vlc-android/res/values-sw600dp/booleans.xml @@ -0,0 +1,4 @@ + + + false + \ No newline at end of file diff --git a/vlc-android/res/values-sw600dp/dimens.xml b/vlc-android/res/values-sw600dp/dimens.xml new file mode 100644 index 000000000..bad3a26c8 --- /dev/null +++ b/vlc-android/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ + + 200dp + 200dp + 120dp + 16sp + 12sp + 10dp + \ No newline at end of file diff --git a/vlc-android/res/values/booleans.xml b/vlc-android/res/values/booleans.xml new file mode 100644 index 000000000..9d519cd2b --- /dev/null +++ b/vlc-android/res/values/booleans.xml @@ -0,0 +1,4 @@ + + + true + \ No newline at end of file diff --git a/vlc-android/res/values/dimens.xml b/vlc-android/res/values/dimens.xml index ffdd68e79..6ee277022 100644 --- a/vlc-android/res/values/dimens.xml +++ b/vlc-android/res/values/dimens.xml @@ -3,4 +3,10 @@ 10dp 50dp 50dp + 160dp + 160dp + 100dp + 12sp + 10sp + 0dp \ No newline at end of file diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java index 1b4cad262..8de4cbe77 100644 --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java @@ -50,6 +50,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -81,14 +82,7 @@ public class VideoGridFragment extends SherlockGridFragment implements ISortable protected static final String ACTION_SCAN_STOP = "org.videolan.vlc.gui.ScanStop"; protected static final int UPDATE_ITEM = 0; - /* Constants used to switch from Grid to List and vice versa */ - //FIXME If you know a way to do this in pure XML please do it! - private static final int GRID_ITEM_WIDTH_DP = 156; - private static final int GRID_HORIZONTAL_SPACING_DP = 20; - private static final int GRID_VERTICAL_SPACING_DP = 20; private static final int GRID_STRETCH_MODE = GridView.STRETCH_COLUMN_WIDTH; - private static final int LIST_HORIZONTAL_SPACING_DP = 0; - private static final int LIST_VERTICAL_SPACING_DP = 10; private static final int LIST_STRETCH_MODE = GridView.STRETCH_COLUMN_WIDTH; protected LinearLayout mLayoutFlipperLoading; @@ -207,29 +201,13 @@ public class VideoGridFragment extends SherlockGridFragment implements ISortable mVideoAdapter.clear(); } - private boolean hasSpaceForGrid(View v) { - final Activity activity = getActivity(); - if (activity == null) - return true; - - DisplayMetrics outMetrics = new DisplayMetrics(); - activity.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - - final int itemWidth = Util.convertDpToPx(GRID_ITEM_WIDTH_DP); - final int horizontalspacing = Util.convertDpToPx(GRID_HORIZONTAL_SPACING_DP); - final int width = mGridView.getPaddingLeft() + mGridView.getPaddingRight() - + horizontalspacing + (itemWidth * 2); - if (width < outMetrics.widthPixels) - return true; - return false; - } - private void updateViewMode() { if (getView() == null || getActivity() == null) { Log.w(TAG, "Unable to setup the view"); return; } + Resources res = getResources(); // Compute the left/right padding dynamically DisplayMetrics outMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); @@ -239,20 +217,15 @@ public class VideoGridFragment extends SherlockGridFragment implements ISortable sidePadding, mGridView.getPaddingBottom()); // Select between grid or list - if (hasSpaceForGrid(getView())) { - Log.d(TAG, "Switching to grid mode"); + if (!res.getBoolean(R.bool.list_mode)) { mGridView.setNumColumns(GridView.AUTO_FIT); mGridView.setStretchMode(GRID_STRETCH_MODE); - mGridView.setHorizontalSpacing(Util.convertDpToPx(GRID_HORIZONTAL_SPACING_DP)); - mGridView.setVerticalSpacing(Util.convertDpToPx(GRID_VERTICAL_SPACING_DP)); - mGridView.setColumnWidth(Util.convertDpToPx(GRID_ITEM_WIDTH_DP)); + mGridView.setColumnWidth(res.getDimensionPixelSize(R.dimen.grid_card_width)); + mGridView.setVerticalSpacing(res.getDimensionPixelSize(R.dimen.grid_card_vertical_spacing)); mVideoAdapter.setListMode(false); } else { - Log.d(TAG, "Switching to list mode"); mGridView.setNumColumns(1); mGridView.setStretchMode(LIST_STRETCH_MODE); - mGridView.setHorizontalSpacing(LIST_HORIZONTAL_SPACING_DP); - mGridView.setVerticalSpacing(Util.convertDpToPx(LIST_VERTICAL_SPACING_DP)); mVideoAdapter.setListMode(true); } } diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java index 243c04d64..70ec8bc86 100644 --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java @@ -139,9 +139,9 @@ public class VideoListAdapter extends ArrayAdapter LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (!mListMode) - v = inflater.inflate(R.layout.video_grid_item, parent, false); + v = inflater.inflate(R.layout.video_grid_card, parent, false); else - v = inflater.inflate(R.layout.video_list_item, parent, false); + v = inflater.inflate(R.layout.video_list_card, parent, false); holder = new ViewHolder(); holder.layout = v.findViewById(R.id.layout_item); @@ -203,7 +203,7 @@ public class VideoListAdapter extends ArrayAdapter holder.subtitle.setText(text); holder.title.setText(media.getTitle() + "\u2026"); // ellipsis holder.more.setVisibility(View.INVISIBLE); - holder.progress.setVisibility(View.GONE); + holder.progress.setVisibility(View.INVISIBLE); } private void fillVideoView(ViewHolder holder, Media media) { @@ -219,7 +219,7 @@ public class VideoListAdapter extends ArrayAdapter holder.progress.setProgress((int) (lastTime / 1000)); } else { text = Strings.millisToText(media.getLength()); - holder.progress.setVisibility(View.GONE); + holder.progress.setVisibility(View.INVISIBLE); } if (media.getWidth() > 0 && media.getHeight() > 0) { -- GitLab