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 Binary files /dev/null and b/vlc-android/res/drawable-hdpi/ic_more_vert_grey600_24dp.png differ diff --git a/vlc-android/res/drawable-mdpi/ic_more_vert_grey600_24dp.png b/vlc-android/res/drawable-mdpi/ic_more_vert_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed34354b293bc21ded8fdc063f68280a9627ab8 Binary files /dev/null and b/vlc-android/res/drawable-mdpi/ic_more_vert_grey600_24dp.png differ 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 Binary files /dev/null and b/vlc-android/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png differ 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 0000000000000000000000000000000000000000..2bd11cea962f442ded972316b8b4c8ad6219f5eb --- /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 efc8506aa09c1d272d2fa4078a50d83d220548aa..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..51b84df1c3c510478d00d5d6d30d0a7ba505ffea --- /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 6fdc4b4ffb838c27e2f87381150742e9bcade3e5..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..75fa6c1016ff70024c3ec1e8b7c847c2b1d8f527 --- /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 0000000000000000000000000000000000000000..75fa6c1016ff70024c3ec1e8b7c847c2b1d8f527 --- /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 0000000000000000000000000000000000000000..bad3a26c8b6e4cd988981224d17c6a1937f7519b --- /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 0000000000000000000000000000000000000000..9d519cd2ba049919f033375a741f511ca04d2c19 --- /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 ffdd68e79207931ad35e452fef74b08a08c497ca..6ee27702250a47d481118d540ae67fd6f07c51fa 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 1b4cad2621ec1b7cfbf88fb00d664fd813ed632d..8de4cbe779e1746c4c2c147882941d4a0bf136b8 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 243c04d6462640f737e3acdc1e95d170d560b103..70ec8bc86e1de7cac8f38cd0cfb75bd55924a24d 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) {