Commit c76859db authored by linfeng's avatar linfeng

提交代码

parent 65c6cf4f
package com.xxrv.video.adapter;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.component.utils.DateUtils;
import com.xxrv.video.R;
import com.xxrv.video.bean.circle.Comment;
import com.xxrv.video.bean.circle.VideoFile;
/**
* 评论
*/
public class CommentVideoAdapter extends BaseQuickAdapter<Comment, BaseViewHolder> {
public CommentVideoAdapter() {
super(R.layout.rv_item_comment_video);
}
@Override
protected void convert(BaseViewHolder helper, Comment item) {
if (item == null) {
return;
}
helper.setText(R.id.tv_content, item.getBody());
}
}
package com.xxrv.video.weight;
import android.content.Context;
import android.graphics.PointF;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.LinearSmoothScroller;
import android.support.v7.widget.RecyclerView;
import android.util.DisplayMetrics;
public class AutoScrollLayoutManager extends LinearLayoutManager {
public AutoScrollLayoutManager(Context context) {
super(context);
}
// 客制化需要实现该方法;
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int
position) {
LinearSmoothScroller linearSmoothScroller =
new LinearSmoothScroller(recyclerView.getContext()) {
@Nullable
@Override
public PointF computeScrollVectorForPosition(int targetPosition) {
return AutoScrollLayoutManager.this.computeScrollVectorForPosition
(targetPosition);
}
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
// 计算滑动每个像素需要的时间,这里应该与屏幕适配;
return 15f / displayMetrics.density;
}
};
linearSmoothScroller.setTargetPosition(position);
startSmoothScroll(linearSmoothScroller);
}
}
...@@ -3,6 +3,7 @@ package com.xxrv.video.weight; ...@@ -3,6 +3,7 @@ package com.xxrv.video.weight;
import android.content.Context; import android.content.Context;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
...@@ -15,7 +16,6 @@ import android.view.animation.LinearInterpolator; ...@@ -15,7 +16,6 @@ import android.view.animation.LinearInterpolator;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
...@@ -23,39 +23,32 @@ import com.base.utils.ui.datetime.selector.util.TextUtil; ...@@ -23,39 +23,32 @@ import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.danikula.videocache.HttpProxyCacheServer; import com.danikula.videocache.HttpProxyCacheServer;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.base.BaseView; import com.ruiwenliu.wrapper.base.BaseView;
import com.ruiwenliu.wrapper.presenter.MvpPresenter;
import com.ruiwenliu.wrapper.presenter.WrapperPresenter; import com.ruiwenliu.wrapper.presenter.WrapperPresenter;
import com.ruiwenliu.wrapper.util.glide.GlideApp; import com.ruiwenliu.wrapper.util.glide.GlideApp;
import com.ruiwenliu.wrapper.util.glide.GlideManager; import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.component.utils.Cookie;
import com.xxrv.video.R; import com.xxrv.video.R;
import com.xxrv.video.activity.TriListActivity; import com.xxrv.video.activity.TriListActivity;
import com.xxrv.video.adapter.CommentVideoAdapter;
import com.xxrv.video.api.VideoApi; import com.xxrv.video.api.VideoApi;
import com.xxrv.video.base.Proxy; import com.xxrv.video.base.Proxy;
import com.xxrv.video.bean.circle.Comment;
import com.xxrv.video.bean.circle.DiscoveryDataBean; import com.xxrv.video.bean.circle.DiscoveryDataBean;
import com.xxrv.video.bean.circle.VideoIMTokenBean; import com.xxrv.video.bean.circle.VideoIMTokenBean;
import com.xxrv.video.dialog.TrillCommDialog; import com.xxrv.video.dialog.TrillCommDialog;
import com.xxrv.video.presenter.VideoPresenter; import com.xxrv.video.presenter.VideoPresenter;
import com.xxrv.video.weight.likeView.LikeAnimationView;
import com.xxrv.video.weight.likeView.LikeRelativeLayout;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer;
import fm.jiecao.jcvideoplayer_lib.JCVideoViewbyXuan; import fm.jiecao.jcvideoplayer_lib.JCVideoViewbyXuan;
import fm.jiecao.jcvideoplayer_lib.OnJcvdListener; import fm.jiecao.jcvideoplayer_lib.OnJcvdListener;
import okhttp3.Call;
public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClickListener { public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClickListener {
TriListActivity mShareListener; TriListActivity mShareListener;
...@@ -102,6 +95,8 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick ...@@ -102,6 +95,8 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick
private TextView tvConmmentHint2; private TextView tvConmmentHint2;
private TextView tvConmmentHint3; private TextView tvConmmentHint3;
private TextView tvAddress; private TextView tvAddress;
private RecyclerView rvContent;
private CommentVideoAdapter commentVideoAdapter;
private OnJcvdListener mVideoListener = new OnJcvdListener() { private OnJcvdListener mVideoListener = new OnJcvdListener() {
@Override @Override
...@@ -204,6 +199,7 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick ...@@ -204,6 +199,7 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick
tvConmmentHint2 = findViewById(R.id.tv_conmment_hint2); tvConmmentHint2 = findViewById(R.id.tv_conmment_hint2);
tvConmmentHint3 = findViewById(R.id.tv_conmment_hint3); tvConmmentHint3 = findViewById(R.id.tv_conmment_hint3);
tvAddress = findViewById(R.id.tv_address); tvAddress = findViewById(R.id.tv_address);
rvContent = findViewById(R.id.rv_content);
ivAvatar.setOnClickListener(this); ivAvatar.setOnClickListener(this);
findViewById(R.id.iv_follow).setOnClickListener(this);// 关注 findViewById(R.id.iv_follow).setOnClickListener(this);// 关注
...@@ -213,8 +209,35 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick ...@@ -213,8 +209,35 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick
mVideoView.addOnJcvdListener(mVideoListener); mVideoView.addOnJcvdListener(mVideoListener);
initGestureAndAnimation(context); initGestureAndAnimation(context);
// AutoScrollLayoutManager autoScrollLayoutManager = new AutoScrollLayoutManager(context);
// rvContent.setLayoutManager(autoScrollLayoutManager);
// commentVideoAdapter = new CommentVideoAdapter();
// rvContent.setAdapter(commentVideoAdapter);
//
//
// rvContent.setOnScrollListener(new RecyclerView.OnScrollListener() {
// @Override
// public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
// super.onScrollStateChanged(recyclerView, newState);
//
// if (newState == RecyclerView.SCROLL_STATE_IDLE) {
// // 如果自动滑动到最后一个位置,则此处状态为SCROLL_STATE_IDLE
// AutoScrollLayoutManager lm = (AutoScrollLayoutManager) recyclerView
// .getLayoutManager();
//
// int position = lm.findLastCompletelyVisibleItemPosition();
// int count = lm.getItemCount();
// if (position == count - 1) {
// lm.scrollToPosition(0);
// rvContent.smoothScrollToPosition(commentVideoAdapter.getItemCount());
// }
// }
// }
// });
} }
private void initGestureAndAnimation(Context context) { private void initGestureAndAnimation(Context context) {
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override @Override
...@@ -324,27 +347,29 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick ...@@ -324,27 +347,29 @@ public class JcvTrillVideo extends FrameLayout implements BaseView, View.OnClick
tvAddress.setText(bean.getLocation()); tvAddress.setText(bean.getLocation());
} }
List<Comment> comments = bean.getComments(); commentVideoAdapter.addData(bean.getComments());
if (comments != null && comments.size() > 0) {
tvConmmentHint1.setVisibility(VISIBLE); // List<Comment> comments = bean.getComments();
tvConmmentHint1.setText(comments.get(0).getBody()); // if (comments != null && comments.size() > 0) {
} else { // tvConmmentHint1.setVisibility(VISIBLE);
tvConmmentHint1.setVisibility(GONE); // tvConmmentHint1.setText(comments.get(0).getBody());
} // } else {
// tvConmmentHint1.setVisibility(GONE);
if (comments != null && comments.size() > 1) { // }
tvConmmentHint2.setVisibility(VISIBLE); //
tvConmmentHint2.setText(comments.get(1).getBody()); // if (comments != null && comments.size() > 1) {
} else { // tvConmmentHint2.setVisibility(VISIBLE);
tvConmmentHint2.setVisibility(GONE); // tvConmmentHint2.setText(comments.get(1).getBody());
} // } else {
// tvConmmentHint2.setVisibility(GONE);
if (comments != null && comments.size() > 2) { // }
tvConmmentHint3.setVisibility(VISIBLE); //
tvConmmentHint3.setText(comments.get(2).getBody()); // if (comments != null && comments.size() > 2) {
} else { // tvConmmentHint3.setVisibility(VISIBLE);
tvConmmentHint3.setVisibility(GONE); // tvConmmentHint3.setText(comments.get(2).getBody());
} // } else {
// tvConmmentHint3.setVisibility(GONE);
// }
} }
@Override @Override
......
...@@ -201,6 +201,10 @@ ...@@ -201,6 +201,10 @@
android:layout_marginBottom="12dp" android:layout_marginBottom="12dp"
android:orientation="vertical"> android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_content"
android:layout_width="wrap_content"
android:layout_height="@dimen/size_60" />
<TextView <TextView
android:id="@+id/tv_conmment_hint1" android:id="@+id/tv_conmment_hint1"
...@@ -213,7 +217,8 @@ ...@@ -213,7 +217,8 @@
android:paddingBottom="@dimen/size_8" android:paddingBottom="@dimen/size_8"
android:text="今年一定要去这里..." android:text="今年一定要去这里..."
android:textColor="@color/colorWrite" android:textColor="@color/colorWrite"
android:textSize="@dimen/text_12" /> android:textSize="@dimen/text_12"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_conmment_hint2" android:id="@+id/tv_conmment_hint2"
...@@ -227,7 +232,8 @@ ...@@ -227,7 +232,8 @@
android:paddingBottom="@dimen/size_8" android:paddingBottom="@dimen/size_8"
android:text="各种颜色的集装箱,绝对是打卡圣地" android:text="各种颜色的集装箱,绝对是打卡圣地"
android:textColor="@color/colorWrite" android:textColor="@color/colorWrite"
android:textSize="@dimen/text_12" /> android:textSize="@dimen/text_12"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_conmment_hint3" android:id="@+id/tv_conmment_hint3"
...@@ -241,7 +247,8 @@ ...@@ -241,7 +247,8 @@
android:paddingBottom="@dimen/size_8" android:paddingBottom="@dimen/size_8"
android:text="住在里面真的是面朝大海,春暖花开呀 很安静..." android:text="住在里面真的是面朝大海,春暖花开呀 很安静..."
android:textColor="@color/colorWrite" android:textColor="@color/colorWrite"
android:textSize="@dimen/text_12" /> android:textSize="@dimen/text_12"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_name" android:id="@+id/tv_name"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/size_15"
android:paddingRight="@dimen/size_15">
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorYellow"
android:textSize="@dimen/text_22" />
</LinearLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment