diff --git a/build.gradle b/build.gradle
index cced7ab..88791fe 100644
--- a/build.gradle
+++ b/build.gradle
@@ -52,9 +52,6 @@ dependencies {
compile "com.google.android.gms:play-services:${playServicesVersion}"
compile "com.google.android.gms:play-services-cast-framework:${playServicesVersion}"
compile "com.android.support:appcompat-v7:${supportLibVersion}"
-
compile "com.android.support:recyclerview-v7:${supportLibVersion}"
- compile 'com.googlecode.android-query:android-query:0.25.9'
-
- //compile 'com.googlecode.android-query:android-query:0.25.9'
+ compile 'com.github.bumptech.glide:glide:3.7.0'
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a8e20b7..5a9701b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon May 09 13:33:54 PDT 2016
+#Fri Dec 30 21:08:38 WET 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git a/res/layout/browse_row.xml b/res/layout/browse_row.xml
index 9a6803b..b33a2ec 100644
--- a/res/layout/browse_row.xml
+++ b/res/layout/browse_row.xml
@@ -1,5 +1,4 @@
-
-
-
+ android:paddingTop="8dp">
+ android:layout_height="wrap_content">
+ android:orientation="vertical">
+ android:visibility="visible" />
-
-
diff --git a/src/com/google/sample/cast/refplayer/CastOptionsProvider.java b/src/com/google/sample/cast/refplayer/CastOptionsProvider.java
index cb8153f..2eddb66 100644
--- a/src/com/google/sample/cast/refplayer/CastOptionsProvider.java
+++ b/src/com/google/sample/cast/refplayer/CastOptionsProvider.java
@@ -21,6 +21,7 @@
import com.google.android.gms.cast.framework.OptionsProvider;
import com.google.android.gms.cast.framework.SessionProvider;
import com.google.android.gms.cast.framework.media.CastMediaOptions;
+import com.google.android.gms.cast.framework.media.ImageHints;
import com.google.android.gms.cast.framework.media.ImagePicker;
import com.google.android.gms.cast.framework.media.MediaIntentReceiver;
import com.google.android.gms.cast.framework.media.NotificationOptions;
@@ -28,6 +29,7 @@
import com.google.sample.cast.refplayer.expandedcontrols.ExpandedControlsActivity;
import android.content.Context;
+import android.support.annotation.NonNull;
import java.util.Arrays;
import java.util.List;
@@ -64,15 +66,18 @@ public List getAdditionalSessionProviders(Context appContext) {
private static class ImagePickerImpl extends ImagePicker {
@Override
- public WebImage onPickImage(MediaMetadata mediaMetadata, int type) {
+ public WebImage onPickImage(MediaMetadata mediaMetadata, @NonNull ImageHints imageHints) {
if ((mediaMetadata == null) || !mediaMetadata.hasImages()) {
return null;
}
+
List images = mediaMetadata.getImages();
+
if (images.size() == 1) {
return images.get(0);
} else {
- if (type == ImagePicker.IMAGE_TYPE_MEDIA_ROUTE_CONTROLLER_DIALOG_BACKGROUND) {
+ if (imageHints.getType()
+ == ImagePicker.IMAGE_TYPE_MEDIA_ROUTE_CONTROLLER_DIALOG_BACKGROUND) {
return images.get(0);
} else {
return images.get(1);
diff --git a/src/com/google/sample/cast/refplayer/browser/VideoBrowserFragment.java b/src/com/google/sample/cast/refplayer/browser/VideoBrowserFragment.java
index 2b30788..ef1872f 100644
--- a/src/com/google/sample/cast/refplayer/browser/VideoBrowserFragment.java
+++ b/src/com/google/sample/cast/refplayer/browser/VideoBrowserFragment.java
@@ -64,7 +64,7 @@ public VideoBrowserFragment() {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
+ @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.video_browser_fragment, container, false);
}
@@ -89,7 +89,7 @@ public void itemClicked(View view, MediaInfo item, int position) {
} else {
String transitionName = getString(R.string.transition_image);
VideoListAdapter.ViewHolder viewHolder =
- (VideoListAdapter.ViewHolder) mRecyclerView.findViewHolderForPosition(position);
+ (VideoListAdapter.ViewHolder) mRecyclerView.findViewHolderForAdapterPosition(position);
Pair imagePair = Pair
.create((View) viewHolder.getImageView(), transitionName);
ActivityOptionsCompat options = ActivityOptionsCompat
@@ -134,7 +134,6 @@ public void onStop() {
}
-
private class MySessionManagerListener implements SessionManagerListener {
@Override
diff --git a/src/com/google/sample/cast/refplayer/browser/VideoListAdapter.java b/src/com/google/sample/cast/refplayer/browser/VideoListAdapter.java
index 57c9ea3..53dabfa 100644
--- a/src/com/google/sample/cast/refplayer/browser/VideoListAdapter.java
+++ b/src/com/google/sample/cast/refplayer/browser/VideoListAdapter.java
@@ -16,14 +16,13 @@
package com.google.sample.cast.refplayer.browser;
+import com.bumptech.glide.Glide;
import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaMetadata;
import com.google.android.gms.cast.framework.CastContext;
import com.google.android.gms.cast.framework.CastSession;
import com.google.sample.cast.refplayer.R;
-import com.androidquery.AQuery;
-
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -104,7 +103,6 @@ public static class ViewHolder extends RecyclerView.ViewHolder {
private final View mParent;
private final View mMenu;
private final View mTextContainer;
- private AQuery mAquery;
private TextView mTitleView;
private TextView mDescriptionView;
private ImageView mImgView;
@@ -115,13 +113,11 @@ public static ViewHolder newInstance(View parent) {
TextView descriptionView = (TextView) parent.findViewById(R.id.textView2);
View menu = parent.findViewById(R.id.menu);
View textContainer = parent.findViewById(R.id.text_container);
- AQuery aQuery = new AQuery(parent);
- return new ViewHolder(parent, imgView, textContainer, titleView, descriptionView, menu,
- aQuery);
+ return new ViewHolder(parent, imgView, textContainer, titleView, descriptionView, menu);
}
private ViewHolder(View parent, ImageView imgView, View textContainer, TextView titleView,
- TextView descriptionView, View menu, AQuery aQuery) {
+ TextView descriptionView, View menu) {
super(parent);
mParent = parent;
mImgView = imgView;
@@ -129,7 +125,6 @@ private ViewHolder(View parent, ImageView imgView, View textContainer, TextView
mMenu = menu;
mTitleView = titleView;
mDescriptionView = descriptionView;
- mAquery = aQuery;
}
public void setTitle(String title) {
@@ -141,8 +136,7 @@ public void setDescription(String description) {
}
public void setImage(String imgUrl) {
- mAquery.id(mImgView).width(114).image(imgUrl,
- true, true, 0, R.drawable.default_video, null, 0, ASPECT_RATIO);
+ Glide.with(itemView.getContext()).load(imgUrl).into(mImgView);
}
public void setOnClickListener(View.OnClickListener listener) {
diff --git a/src/com/google/sample/cast/refplayer/mediaplayer/LocalPlayerActivity.java b/src/com/google/sample/cast/refplayer/mediaplayer/LocalPlayerActivity.java
index d3138dc..8f195ea 100644
--- a/src/com/google/sample/cast/refplayer/mediaplayer/LocalPlayerActivity.java
+++ b/src/com/google/sample/cast/refplayer/mediaplayer/LocalPlayerActivity.java
@@ -16,6 +16,7 @@
package com.google.sample.cast.refplayer.mediaplayer;
+import com.bumptech.glide.Glide;
import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaMetadata;
import com.google.android.gms.cast.framework.CastButtonFactory;
@@ -31,8 +32,6 @@
import com.google.sample.cast.refplayer.settings.CastPreference;
import com.google.sample.cast.refplayer.utils.Utils;
-import com.androidquery.AQuery;
-
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.res.Configuration;
@@ -95,7 +94,6 @@ public class LocalPlayerActivity extends AppCompatActivity {
private PlaybackState mPlaybackState;
private final Handler mHandler = new Handler();
private final float mAspectRatio = 72f / 128;
- private AQuery mAquery;
private MediaInfo mSelectedMedia;
private boolean mControllersVisible;
private int mDuration;
@@ -125,7 +123,6 @@ public enum PlaybackState {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.player_activity);
- mAquery = new AQuery(this);
loadViews();
setupControlsCallbacks();
setupCastListener();
@@ -366,14 +363,13 @@ public void onSendingRemoteMediaRequest() {
}
-
});
remoteMediaClient.load(mSelectedMedia, autoPlay, position);
}
private void setCoverArtStatus(String url) {
if (url != null) {
- mAquery.id(mCoverArt).image(url);
+ Glide.with(this).load(url).into(mCoverArt);
mCoverArt.setVisibility(View.VISIBLE);
mVideoView.setVisibility(View.INVISIBLE);
} else {
@@ -603,7 +599,7 @@ public void onStartTrackingTouch(SeekBar seekBar) {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
- boolean fromUser) {
+ boolean fromUser) {
mStartText.setText(Utils.formatMillis(progress));
}
});
diff --git a/src/com/google/sample/cast/refplayer/queue/ui/QueueListAdapter.java b/src/com/google/sample/cast/refplayer/queue/ui/QueueListAdapter.java
index 17bd99e..8a8bfac 100644
--- a/src/com/google/sample/cast/refplayer/queue/ui/QueueListAdapter.java
+++ b/src/com/google/sample/cast/refplayer/queue/ui/QueueListAdapter.java
@@ -16,6 +16,10 @@
package com.google.sample.cast.refplayer.queue.ui;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.RequestListener;
+import com.bumptech.glide.request.target.Target;
import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaMetadata;
import com.google.android.gms.cast.MediaQueueItem;
@@ -26,8 +30,6 @@
import com.google.sample.cast.refplayer.R;
import com.google.sample.cast.refplayer.queue.QueueDataProvider;
-import com.androidquery.AQuery;
-
import android.content.Context;
import android.support.annotation.IntDef;
import android.support.v4.view.MotionEventCompat;
@@ -139,11 +141,27 @@ public void onBindViewHolder(final QueueItemViewHolder holder, int position) {
MediaMetadata metaData = info.getMetadata();
holder.mTitleView.setText(metaData.getString(MediaMetadata.KEY_TITLE));
holder.mDescriptionView.setText(metaData.getString(MediaMetadata.KEY_SUBTITLE));
- AQuery aq = new AQuery(holder.itemView);
if (!metaData.getImages().isEmpty()) {
- aq.id(holder.mImageView).width(IMAGE_THUMBNAIL_WIDTH)
- .image(metaData.getImages().get(0).getUrl().toString(), true, true, 0,
- R.drawable.default_video, null, 0, ASPECT_RATIO);
+ Glide.with(holder.itemView.getContext())
+ .load(metaData.getImages().get(0).getUrl().toString())
+ .listener(new RequestListener() {
+ @Override
+ public boolean onException(Exception e, String model,
+ Target target,
+ boolean isFirstResource) {
+ holder.mImageView.setImageResource(R.drawable.default_video);
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(GlideDrawable resource, String model,
+ Target target,
+ boolean isFromMemoryCache,
+ boolean isFirstResource) {
+ return false;
+ }
+ })
+ .into(holder.mImageView);
}
holder.mDragHandle.setOnTouchListener(new View.OnTouchListener() {