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