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) {