Commit 747e659192492ad89c6159f18f9b247192db8e54

Authored by 吴奎庆
1 parent 964c0b2b

直播页面 调整布局

app/src/main/java/com/cnlive/gundam/main/model/MsgEvent.java 0 → 100644
  1 +package com.cnlive.gundam.main.model;
  2 +
  3 +/**
  4 + * 创建:wukuiqing
  5 + * <p>
  6 + * 时间:2017/7/12
  7 + * <p>
  8 + * 描述:
  9 + */
  10 +
  11 +public class MsgEvent {
  12 +}
app/src/main/java/com/cnlive/gundam/main/ui/widget/RecyclerSpace.java 0 → 100644
  1 +package com.cnlive.gundam.main.ui.widget;
  2 +
  3 +
  4 +
  5 +import android.graphics.Canvas;
  6 +import android.graphics.Paint;
  7 +import android.graphics.Rect;
  8 +import android.graphics.drawable.Drawable;
  9 +import android.support.annotation.ColorRes;
  10 +import android.support.v7.widget.GridLayoutManager;
  11 +import android.support.v7.widget.LinearLayoutManager;
  12 +import android.support.v7.widget.RecyclerView;
  13 +import android.view.View;
  14 +
  15 +/**
  16 + * 创建:wukuiqing
  17 + * <p>
  18 + * 时间:2017/7/12
  19 + * <p>
  20 + * 描述:分割线
  21 + */
  22 +public class RecyclerSpace extends RecyclerView.ItemDecoration {
  23 + private int space;
  24 + private int color = -1;
  25 + private Drawable mDivider;
  26 + private Paint mPaint;
  27 + private int type;
  28 +
  29 + public int getColor() {
  30 + return color;
  31 + }
  32 +
  33 + public void setColor(@ColorRes int color) {
  34 + this.color = color;
  35 + }
  36 +
  37 + public RecyclerSpace(int space) {
  38 + this.space = space;
  39 + }
  40 +
  41 + public RecyclerSpace(int space, int color) {
  42 + this.space = space;
  43 + this.color = color;
  44 + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
  45 + mPaint.setColor(color);
  46 + mPaint.setStyle(Paint.Style.FILL);
  47 + mPaint.setStrokeWidth(space * 2);
  48 + }
  49 + public RecyclerSpace(int space, int color,int type) {
  50 + this.space = space;
  51 + this.color = color;
  52 + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
  53 + mPaint.setColor(color);
  54 + mPaint.setStyle(Paint.Style.FILL);
  55 + mPaint.setStrokeWidth(space * 2);
  56 + this.type=type;
  57 + }
  58 +
  59 + public RecyclerSpace(int space, Drawable mDivider) {
  60 + this.space = space;
  61 + this.mDivider = mDivider;
  62 + }
  63 +
  64 + @Override
  65 + public void getItemOffsets(Rect outRect, View view,
  66 + RecyclerView parent, RecyclerView.State state) {
  67 + if (parent.getLayoutManager() != null) {
  68 + if (parent.getLayoutManager() instanceof LinearLayoutManager && !(parent.getLayoutManager() instanceof GridLayoutManager)) {
  69 + if (((LinearLayoutManager) parent.getLayoutManager()).getOrientation() == LinearLayoutManager.HORIZONTAL) {
  70 + outRect.set(space, 0, space, 0);
  71 + } else {
  72 + outRect.set(0, space, 0, space);
  73 + }
  74 + } else {
  75 + outRect.set(space, space, space, space);
  76 + }
  77 + }
  78 +
  79 + }
  80 +
  81 + @Override
  82 + public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
  83 + super.onDraw(c, parent, state);
  84 + if (parent.getLayoutManager() != null) {
  85 + if (parent.getLayoutManager() instanceof LinearLayoutManager && !(parent.getLayoutManager() instanceof GridLayoutManager)) {
  86 + if (((LinearLayoutManager) parent.getLayoutManager()).getOrientation() == LinearLayoutManager.HORIZONTAL) {
  87 + drawHorizontal(c, parent);
  88 + } else {
  89 + drawVertical(c, parent);
  90 + }
  91 + } else {
  92 + if(type==0){
  93 + drawGrideview(c, parent);
  94 + }else{
  95 + drawGrideview1(c, parent);
  96 + }
  97 + }
  98 + }
  99 + }
  100 +
  101 + //绘制纵向 item 分割线
  102 +
  103 + private void drawVertical(Canvas canvas, RecyclerView parent) {
  104 + final int top = parent.getPaddingTop();
  105 + final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom();
  106 + final int childSize = parent.getChildCount();
  107 + for (int i = 0; i < childSize; i++) {
  108 + final View child = parent.getChildAt(i);
  109 + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
  110 + final int left = child.getRight() + layoutParams.rightMargin;
  111 + final int right = left + space;
  112 + if (mDivider != null) {
  113 + mDivider.setBounds(left, top, right, bottom);
  114 + mDivider.draw(canvas);
  115 + }
  116 + if (mPaint != null) {
  117 + canvas.drawRect(left, top, right, bottom, mPaint);
  118 + }
  119 + }
  120 + }
  121 +
  122 + //绘制横向 item 分割线
  123 + private void drawHorizontal(Canvas canvas, RecyclerView parent) {
  124 + int left = parent.getPaddingLeft();
  125 + int right = parent.getMeasuredWidth() - parent.getPaddingRight();
  126 + final int childSize = parent.getChildCount();
  127 + for (int i = 0; i < childSize; i++) {
  128 + final View child = parent.getChildAt(i);
  129 + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
  130 + int top = child.getBottom() + layoutParams.bottomMargin;
  131 + int bottom = top + space;
  132 + if (mDivider != null) {
  133 + mDivider.setBounds(left, top, right, bottom);
  134 + mDivider.draw(canvas);
  135 + }
  136 + if (mPaint != null) {
  137 + canvas.drawRect(left, top, right, bottom, mPaint);
  138 + }
  139 +
  140 + }
  141 + }
  142 +
  143 + //绘制grideview item 分割线 不是填充满的
  144 + private void drawGrideview(Canvas canvas, RecyclerView parent) {
  145 + GridLayoutManager linearLayoutManager = (GridLayoutManager) parent.getLayoutManager();
  146 + int childSize = parent.getChildCount();
  147 + int other = parent.getChildCount() / linearLayoutManager.getSpanCount() - 1;
  148 + if (other < 1) {
  149 + other = 1;
  150 + }
  151 + other = other * linearLayoutManager.getSpanCount();
  152 + if (parent.getChildCount() < linearLayoutManager.getSpanCount()) {
  153 + other = parent.getChildCount();
  154 + }
  155 + int top, bottom, left, right, spancount;
  156 + spancount = linearLayoutManager.getSpanCount() - 1;
  157 + for (int i = 0; i < childSize; i++) {
  158 + final View child = parent.getChildAt(i);
  159 + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
  160 + if (i < other) {
  161 + top = child.getBottom() + layoutParams.bottomMargin;
  162 + bottom = top + space;
  163 + left = (layoutParams.leftMargin + space) * (i + 1);
  164 + right = child.getMeasuredWidth() * (i + 1) + left + space * i;
  165 + if (mDivider != null) {
  166 + mDivider.setBounds(left, top, right, bottom);
  167 + mDivider.draw(canvas);
  168 + }
  169 + if (mPaint != null) {
  170 + canvas.drawRect(left, top, right, bottom, mPaint);
  171 + }
  172 + }
  173 + if (i != spancount) {
  174 + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1);
  175 + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space;
  176 + left = child.getRight() + layoutParams.rightMargin;
  177 + right = left + space;
  178 + if (mDivider != null) {
  179 + mDivider.setBounds(left, top, right, bottom);
  180 + mDivider.draw(canvas);
  181 + }
  182 + if (mPaint != null) {
  183 + canvas.drawRect(left, top, right, bottom, mPaint);
  184 + }
  185 + } else {
  186 + spancount += 4;
  187 + }
  188 + }
  189 + }
  190 +
  191 + /***/
  192 + private void drawGrideview1(Canvas canvas, RecyclerView parent) {
  193 + GridLayoutManager linearLayoutManager = (GridLayoutManager) parent.getLayoutManager();
  194 + int childSize = parent.getChildCount();
  195 + int top, bottom, left, right,spancount;
  196 + spancount=linearLayoutManager.getSpanCount();
  197 + for (int i = 0; i < childSize; i++) {
  198 + final View child = parent.getChildAt(i);
  199 + //画横线
  200 + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
  201 + top = child.getBottom() + layoutParams.bottomMargin;
  202 + bottom = top + space;
  203 + left = layoutParams.leftMargin+child.getPaddingLeft()+space;
  204 + right = child.getMeasuredWidth() * (i + 1) + left + space * i;
  205 + if (mDivider != null) {
  206 + mDivider.setBounds(left, top, right, bottom);
  207 + mDivider.draw(canvas);
  208 + }
  209 + if (mPaint != null) {
  210 + canvas.drawRect(left, top, right, bottom, mPaint);
  211 + }
  212 + //画竖线
  213 + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1);
  214 + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space;
  215 + left = child.getRight() + layoutParams.rightMargin;
  216 + right = left + space;
  217 + if (mDivider != null) {
  218 + mDivider.setBounds(left, top, right, bottom);
  219 + mDivider.draw(canvas);
  220 + }
  221 + if (mPaint != null) {
  222 + canvas.drawRect(left, top, right, bottom, mPaint);
  223 + }
  224 +
  225 + //画上缺失的线框
  226 + if(i<spancount){
  227 + top = child.getTop() + layoutParams.topMargin;
  228 + bottom = top + space;
  229 + left = (layoutParams.leftMargin + space) * (i + 1);
  230 + right = child.getMeasuredWidth() * (i + 1) + left + space * i;
  231 + if (mDivider != null) {
  232 + mDivider.setBounds(left, top, right, bottom);
  233 + mDivider.draw(canvas);
  234 + }
  235 + if (mPaint != null) {
  236 + canvas.drawRect(left, top, right, bottom, mPaint);
  237 + }
  238 + }
  239 + if(i%spancount==0){
  240 + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1);
  241 + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space;
  242 + left = child.getLeft() + layoutParams.leftMargin;
  243 + right = left + space;
  244 + if (mDivider != null) {
  245 + mDivider.setBounds(left, top, right, bottom);
  246 + mDivider.draw(canvas);
  247 + }
  248 + if (mPaint != null) {
  249 + canvas.drawRect(left, top, right, bottom, mPaint);
  250 + }
  251 + }
  252 + }
  253 + }
  254 +}
0 \ No newline at end of file 255 \ No newline at end of file
app/src/main/java/com/cnlive/gundam/video/activity/PlayerActivity.java
@@ -9,13 +9,20 @@ import android.support.v7.app.AppCompatActivity; @@ -9,13 +9,20 @@ import android.support.v7.app.AppCompatActivity;
9 import android.widget.Toast; 9 import android.widget.Toast;
10 10
11 import com.cnlive.gundam.R; 11 import com.cnlive.gundam.R;
  12 +import com.cnlive.gundam.main.model.MsgEvent;
12 import com.cnlive.gundam.main.model.VideoListProgram; 13 import com.cnlive.gundam.main.model.VideoListProgram;
  14 +import com.cnlive.gundam.main.utils.SharedPreferencesHelper;
  15 +import com.cnlive.gundam.user.util.ToastUtil;
13 import com.cnlive.gundam.video.fragment.PlayerLiveFragment; 16 import com.cnlive.gundam.video.fragment.PlayerLiveFragment;
14 import com.cnlive.gundam.video.fragment.PlayerUgcLiveFragment; 17 import com.cnlive.gundam.video.fragment.PlayerUgcLiveFragment;
15 import com.cnlive.gundam.video.fragment.PlayerUgcVodFragment; 18 import com.cnlive.gundam.video.fragment.PlayerUgcVodFragment;
16 import com.cnlive.gundam.video.fragment.PlayerVodFragment; 19 import com.cnlive.gundam.video.fragment.PlayerVodFragment;
17 import com.cnlive.gundam.video.utils.PlayerUtils; 20 import com.cnlive.gundam.video.utils.PlayerUtils;
18 21
  22 +import org.greenrobot.eventbus.EventBus;
  23 +import org.greenrobot.eventbus.Subscribe;
  24 +import org.greenrobot.eventbus.ThreadMode;
  25 +
19 /** 26 /**
20 * Created by gujun on 2017/4/5. 27 * Created by gujun on 2017/4/5.
21 * screenDirect //0:竖向 1;横向 ugcLive ugcVod 播放页面用到了 28 * screenDirect //0:竖向 1;横向 ugcLive ugcVod 播放页面用到了
@@ -28,11 +35,14 @@ public class PlayerActivity extends AppCompatActivity { @@ -28,11 +35,14 @@ public class PlayerActivity extends AppCompatActivity {
28 //默认横屏 35 //默认横屏
29 private int screenDirect = 1; 36 private int screenDirect = 1;
30 37
  38 +
31 @Override 39 @Override
32 protected void onCreate(@Nullable Bundle savedInstanceState) { 40 protected void onCreate(@Nullable Bundle savedInstanceState) {
33 super.onCreate(savedInstanceState); 41 super.onCreate(savedInstanceState);
34 setContentView(R.layout.activity_player); 42 setContentView(R.layout.activity_player);
35 addData(getIntent()); 43 addData(getIntent());
  44 +
  45 +
36 } 46 }
37 47
38 @Override 48 @Override
@@ -80,11 +90,20 @@ public class PlayerActivity extends AppCompatActivity { @@ -80,11 +90,20 @@ public class PlayerActivity extends AppCompatActivity {
80 90
81 @Override 91 @Override
82 public void onBackPressed() { 92 public void onBackPressed() {
  93 +
83 if (!(PlayerUtils.isPortrait(this)) && (fragment instanceof PlayerLiveFragment || fragment instanceof PlayerVodFragment)) { 94 if (!(PlayerUtils.isPortrait(this)) && (fragment instanceof PlayerLiveFragment || fragment instanceof PlayerVodFragment)) {
84 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 95 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  96 + } else if (SharedPreferencesHelper.getInstance(this).getIntValue("ishow") == 0) {
  97 + EventBus.getDefault().post(new MsgEvent());
85 } else { 98 } else {
86 super.onBackPressed(); 99 super.onBackPressed();
87 } 100 }
88 } 101 }
89 102
  103 +
  104 + @Override
  105 + protected void onDestroy() {
  106 + super.onDestroy();
  107 + EventBus.getDefault().unregister(this);
  108 + }
90 } 109 }
app/src/main/java/com/cnlive/gundam/video/adpter/CommonAdapter.java
@@ -8,6 +8,7 @@ import android.view.View; @@ -8,6 +8,7 @@ import android.view.View;
8 import android.view.ViewGroup; 8 import android.view.ViewGroup;
9 import android.widget.BaseAdapter; 9 import android.widget.BaseAdapter;
10 import android.widget.LinearLayout; 10 import android.widget.LinearLayout;
  11 +import android.widget.RelativeLayout;
11 12
12 import com.cnlive.gundam.databinding.ItemListRightBinding; 13 import com.cnlive.gundam.databinding.ItemListRightBinding;
13 import com.cnlive.gundam.video.model.MessageContent; 14 import com.cnlive.gundam.video.model.MessageContent;
@@ -67,12 +68,12 @@ public class CommonAdapter&lt;T&gt; extends BaseAdapter { @@ -67,12 +68,12 @@ public class CommonAdapter&lt;T&gt; extends BaseAdapter {
67 if(((MessageContent) mDataList.get(position)).isSendInfo()){ 68 if(((MessageContent) mDataList.get(position)).isSendInfo()){
68 ItemListRightBinding binding1 = (ItemListRightBinding) binding; 69 ItemListRightBinding binding1 = (ItemListRightBinding) binding;
69 LinearLayout rightLin = binding1.rightLin; 70 LinearLayout rightLin = binding1.rightLin;
70 - LinearLayout leftLin = binding1.leftLin; 71 + RelativeLayout leftLin = binding1.leftLin;
71 leftLin.setVisibility(View.VISIBLE); 72 leftLin.setVisibility(View.VISIBLE);
72 rightLin.setVisibility(View.INVISIBLE); 73 rightLin.setVisibility(View.INVISIBLE);
73 }else { 74 }else {
74 ItemListRightBinding binding1 = (ItemListRightBinding) binding; 75 ItemListRightBinding binding1 = (ItemListRightBinding) binding;
75 - LinearLayout leftLin = binding1.leftLin; 76 + RelativeLayout leftLin = binding1.leftLin;
76 LinearLayout rightLin = binding1.rightLin; 77 LinearLayout rightLin = binding1.rightLin;
77 rightLin.setVisibility(View.VISIBLE); 78 rightLin.setVisibility(View.VISIBLE);
78 79
app/src/main/java/com/cnlive/gundam/video/fragment/chat/ChatRoomFragment.java
@@ -11,6 +11,7 @@ import android.support.v4.app.Fragment; @@ -11,6 +11,7 @@ import android.support.v4.app.Fragment;
11 import android.support.v4.content.ContextCompat; 11 import android.support.v4.content.ContextCompat;
12 import android.support.v7.widget.GridLayoutManager; 12 import android.support.v7.widget.GridLayoutManager;
13 import android.support.v7.widget.SwitchCompat; 13 import android.support.v7.widget.SwitchCompat;
  14 +import android.util.Log;
14 import android.view.LayoutInflater; 15 import android.view.LayoutInflater;
15 import android.view.View; 16 import android.view.View;
16 import android.view.ViewGroup; 17 import android.view.ViewGroup;
@@ -21,6 +22,9 @@ import com.bumptech.glide.Glide; @@ -21,6 +22,9 @@ import com.bumptech.glide.Glide;
21 import com.cnlive.gundam.BR; 22 import com.cnlive.gundam.BR;
22 import com.cnlive.gundam.R; 23 import com.cnlive.gundam.R;
23 import com.cnlive.gundam.databinding.FragmentChatBinding; 24 import com.cnlive.gundam.databinding.FragmentChatBinding;
  25 +import com.cnlive.gundam.main.model.MsgEvent;
  26 +import com.cnlive.gundam.main.ui.widget.RecyclerSpace;
  27 +import com.cnlive.gundam.main.utils.SharedPreferencesHelper;
24 import com.cnlive.gundam.user.auth.UserService; 28 import com.cnlive.gundam.user.auth.UserService;
25 import com.cnlive.gundam.user.model.User; 29 import com.cnlive.gundam.user.model.User;
26 import com.cnlive.gundam.user.util.InputUtil; 30 import com.cnlive.gundam.user.util.InputUtil;
@@ -34,10 +38,14 @@ import com.cnlive.gundam.video.model.MessageContent; @@ -34,10 +38,14 @@ import com.cnlive.gundam.video.model.MessageContent;
34 import com.cnlive.libs.util.chat.ChatUtil; 38 import com.cnlive.libs.util.chat.ChatUtil;
35 import com.cnlive.libs.util.chat.base.IChat; 39 import com.cnlive.libs.util.chat.base.IChat;
36 import com.cnlive.libs.util.chat.model.CNUserInfo; 40 import com.cnlive.libs.util.chat.model.CNUserInfo;
  41 +import com.cnlive.libs.util.data.okhttpUtil.utils.L;
37 import com.cnlive.libs.video.barrage.BarrageLayout; 42 import com.cnlive.libs.video.barrage.BarrageLayout;
38 43
39 -import java.util.ArrayList; 44 +import org.greenrobot.eventbus.EventBus;
  45 +import org.greenrobot.eventbus.Subscribe;
  46 +import org.greenrobot.eventbus.ThreadMode;
40 47
  48 +import java.util.ArrayList;
41 49
42 50
43 /** 51 /**
@@ -82,23 +90,25 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -82,23 +90,25 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
82 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 90 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
83 super.onViewCreated(view, savedInstanceState); 91 super.onViewCreated(view, savedInstanceState);
84 initListener(); 92 initListener();
  93 + EventBus.getDefault().register(this);
85 initDate(); 94 initDate();
86 initGift(); 95 initGift();
87 int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE); 96 int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE);
88 if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) { 97 if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
89 requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_REQUEST_CODE); 98 requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_REQUEST_CODE);
90 - }else{ 99 + } else {
91 initChat(); 100 initChat();
92 } 101 }
93 } 102 }
  103 +
94 @Override 104 @Override
95 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 105 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
96 super.onRequestPermissionsResult(requestCode, permissions, grantResults); 106 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
97 - if(requestCode == PERMISSION_REQUEST_CODE){ 107 + if (requestCode == PERMISSION_REQUEST_CODE) {
98 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 108 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
99 initChat(); 109 initChat();
100 } else { 110 } else {
101 - ToastUtil.show(getActivity(),"使用聊天功能,请通过权限审核"); 111 + ToastUtil.show(getActivity(), "使用聊天功能,请通过权限审核");
102 } 112 }
103 } 113 }
104 } 114 }
@@ -121,6 +131,8 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -121,6 +131,8 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
121 } 131 }
122 } 132 }
123 }); 133 });
  134 +
  135 +
124 } 136 }
125 137
126 @BindingAdapter("android:src") 138 @BindingAdapter("android:src")
@@ -131,7 +143,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -131,7 +143,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
131 @BindingAdapter({"imageUrl"}) 143 @BindingAdapter({"imageUrl"})
132 public static void loadImage(ImageView imageView, String url) { 144 public static void loadImage(ImageView imageView, String url) {
133 if (url == null) { 145 if (url == null) {
134 - imageView.setImageResource(R.mipmap.ic_launcher); 146 +// imageView.setImageResource(R.mipmap.ic_launcher);
  147 +
  148 + Glide.with(imageView.getContext()).load("https://yweb0.cnliveimg.com/main/cnlive/150819151803915_969.jpg").error(R.mipmap.ic_launcher).into(imageView);
135 } else { 149 } else {
136 Glide.with(imageView.getContext()).load(url).error(R.mipmap.ic_launcher).into(imageView); 150 Glide.with(imageView.getContext()).load(url).error(R.mipmap.ic_launcher).into(imageView);
137 } 151 }
@@ -143,11 +157,11 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -143,11 +157,11 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
143 } 157 }
144 158
145 159
146 -  
147 @Override 160 @Override
148 public void onDestroy() { 161 public void onDestroy() {
149 super.onDestroy(); 162 super.onDestroy();
150 ChatUtil.disconnect(false); 163 ChatUtil.disconnect(false);
  164 + EventBus.getDefault().unregister(this);
151 } 165 }
152 166
153 private void initChat() { 167 private void initChat() {
@@ -178,11 +192,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -178,11 +192,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
178 @Override 192 @Override
179 public void onClick(View view) { 193 public void onClick(View view) {
180 int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE; 194 int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE;
  195 + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",i);
181 fragmentChatBinding.rlGift.setVisibility(i); 196 fragmentChatBinding.rlGift.setVisibility(i);
182 } 197 }
183 }); 198 });
184 GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 6); 199 GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 6);
185 fragmentChatBinding.recyclerGift.setLayoutManager(gridLayoutManager); 200 fragmentChatBinding.recyclerGift.setLayoutManager(gridLayoutManager);
  201 + fragmentChatBinding.recyclerGift.addItemDecoration(new RecyclerSpace(10));
  202 +
186 fragmentChatBinding.setGiftAdapter(new GiftAdapter(roomId, getActivity(), giftArray, R.layout.fragment_gift_receycel, BR.dataBean)); 203 fragmentChatBinding.setGiftAdapter(new GiftAdapter(roomId, getActivity(), giftArray, R.layout.fragment_gift_receycel, BR.dataBean));
187 } 204 }
188 205
@@ -222,20 +239,22 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -222,20 +239,22 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
222 barrageBottom(); 239 barrageBottom();
223 initMessageAdapter(); 240 initMessageAdapter();
224 messageContentInfo = new MessageContentInfo(); 241 messageContentInfo = new MessageContentInfo();
225 - messageContentInfo.setOnReceiveAndSendListener( roomId, getActivity(), ChatRoomFragment.this); 242 + messageContentInfo.setOnReceiveAndSendListener(roomId, getActivity(), ChatRoomFragment.this);
226 } 243 }
227 244
228 245
229 public void giftItem(int postion) { 246 public void giftItem(int postion) {
230 fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); 247 fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE);
231 - messageContents.add(new MessageContent(messageContents.get(0).getName(),"送了" + gitName[postion]+":",messageContents.get(0).getIcon(),false)); 248 +
  249 + messageContents.add(new MessageContent(messageContents.get(0).getName(), "送了" + gitName[postion] + ":", messageContents.get(0).getIcon(), false));
232 messageContentCommonAdapter.addItems((messageContents)); 250 messageContentCommonAdapter.addItems((messageContents));
233 } 251 }
234 252
235 ArrayList<MessageContent> messageContents; 253 ArrayList<MessageContent> messageContents;
  254 +
236 @Override 255 @Override
237 public void onchat(ArrayList<MessageContent> messageContents) { 256 public void onchat(ArrayList<MessageContent> messageContents) {
238 - this.messageContents=messageContents; 257 + this.messageContents = messageContents;
239 messageContentCommonAdapter.addItems((messageContents)); 258 messageContentCommonAdapter.addItems((messageContents));
240 259
241 } 260 }
@@ -244,4 +263,13 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback @@ -244,4 +263,13 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback
244 public void onbarrage(BarrageBaseMessage barrageBaseMessage) { 263 public void onbarrage(BarrageBaseMessage barrageBaseMessage) {
245 barrageLayout.addMessage(barrageBaseMessage); 264 barrageLayout.addMessage(barrageBaseMessage);
246 } 265 }
  266 +
  267 + //在注册了的Activity中,声明处理事件的方法
  268 + @Subscribe(threadMode = ThreadMode.MAIN) //第2步:注册一个在后台线程执行的方法,用于接收事件
  269 + public void onUserEvent(MsgEvent event) {
  270 +
  271 + fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE);
  272 + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",4);
  273 + }
  274 +
247 } 275 }
app/src/main/java/com/cnlive/gundam/video/fragment/chat/MessageContentInfo.java
@@ -67,9 +67,9 @@ public class MessageContentInfo { @@ -67,9 +67,9 @@ public class MessageContentInfo {
67 messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": 送了" + messagecontent, message.getUserInfo().getHeadUrl(), true)); 67 messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": 送了" + messagecontent, message.getUserInfo().getHeadUrl(), true));
68 } else if (messageType.equals(ChatRoom)) { 68 } else if (messageType.equals(ChatRoom)) {
69 if (message.getUserInfo().getUserId().equals(ChatUtil.getCurrentUserInfo().getUserId())) { 69 if (message.getUserInfo().getUserId().equals(ChatUtil.getCurrentUserInfo().getUserId())) {
70 - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " :", message.getUserInfo().getHeadUrl(), false)); 70 + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " : ", message.getUserInfo().getHeadUrl(), false));
71 } else { 71 } else {
72 - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " :" + messagecontent, message.getUserInfo().getHeadUrl(), true)); 72 + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " : " + messagecontent, message.getUserInfo().getHeadUrl(), true));
73 } 73 }
74 if (onChatListener != null) { 74 if (onChatListener != null) {
75 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); 75 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, ""));
@@ -85,7 +85,7 @@ public class MessageContentInfo { @@ -85,7 +85,7 @@ public class MessageContentInfo {
85 if (onChatListener != null) { 85 if (onChatListener != null) {
86 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), "来了", "")); 86 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), "来了", ""));
87 } 87 }
88 - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": " + "来了", message.getUserInfo().getHeadUrl(), true)); 88 + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " : " + "来了", message.getUserInfo().getHeadUrl(), true));
89 } 89 }
90 if (onChatListener != null) { 90 if (onChatListener != null) {
91 onChatListener.onchat(messageContentArrayList); 91 onChatListener.onchat(messageContentArrayList);
@@ -112,7 +112,7 @@ public class MessageContentInfo { @@ -112,7 +112,7 @@ public class MessageContentInfo {
112 String messageType = cnMessageModle.getType(); 112 String messageType = cnMessageModle.getType();
113 if (messageType.equals(ChatRoom)) { 113 if (messageType.equals(ChatRoom)) {
114 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); 114 onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, ""));
115 - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " :", message.getUserInfo().getHeadUrl(), false)); 115 + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " : ", message.getUserInfo().getHeadUrl(), false));
116 onChatListener.onchat(messageContentArrayList); 116 onChatListener.onchat(messageContentArrayList);
117 } 117 }
118 } catch (Exception e) { 118 } catch (Exception e) {
app/src/main/res/drawable/chat_gift_bg.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:shape="rectangle"
  4 + android:useLevel="false">
  5 + <solid android:color="#454543" />
  6 + <size android:height="24dp" />
  7 + <corners
  8 + android:bottomLeftRadius="8dp"
  9 + android:bottomRightRadius="8dp"
  10 + android:topLeftRadius="8dp"
  11 + android:topRightRadius="8dp" /> <!-- 设置四个角的半径 -->
  12 +
  13 +</shape>
0 \ No newline at end of file 14 \ No newline at end of file
app/src/main/res/drawable/switch_track_dan_off.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 2
3 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 3 <shape xmlns:android="http://schemas.android.com/apk/res/android">
4 - <solid android:color="#CC000000" />  
5 - <corners android:radius="9dp" /> 4 + <solid android:color="#555756" />
  5 +
  6 +
  7 + <corners android:radius="30dp" />
6 <size 8 <size
7 android:height="18dp" /> 9 android:height="18dp" />
8 <stroke 10 <stroke
app/src/main/res/drawable/switch_track_dan_on.xml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 3 <shape xmlns:android="http://schemas.android.com/apk/res/android">
4 <solid android:color="#FF4E51" /> 4 <solid android:color="#FF4E51" />
5 - <corners android:radius="9dp" /> 5 + <corners android:radius="30dp" />
6 <size 6 <size
7 android:height="18dp" /> 7 android:height="18dp" />
8 <stroke 8 <stroke
app/src/main/res/layout/fragment_chat.xml
@@ -38,9 +38,11 @@ @@ -38,9 +38,11 @@
38 android:id="@+id/edit_layout" 38 android:id="@+id/edit_layout"
39 android:layout_width="match_parent" 39 android:layout_width="match_parent"
40 android:layout_height="50dp" 40 android:layout_height="50dp"
  41 + android:background="#555756"
  42 + android:orientation="horizontal"
41 android:layout_alignParentBottom="true" 43 android:layout_alignParentBottom="true"
42 - android:background="#e0000000"  
43 - android:orientation="horizontal"> 44 + android:layout_alignParentLeft="true"
  45 + android:layout_alignParentStart="true">
44 46
45 <ImageView 47 <ImageView
46 android:id="@+id/sendMessage" 48 android:id="@+id/sendMessage"
@@ -83,6 +85,7 @@ @@ -83,6 +85,7 @@
83 android:visibility="invisible"> 85 android:visibility="invisible">
84 86
85 <android.support.v7.widget.RecyclerView 87 <android.support.v7.widget.RecyclerView
  88 + android:padding="5dp"
86 android:id="@+id/recycler_gift" 89 android:id="@+id/recycler_gift"
87 android:layout_width="match_parent" 90 android:layout_width="match_parent"
88 android:layout_height="wrap_content" 91 android:layout_height="wrap_content"
app/src/main/res/layout/fragment_gift_receycel.xml
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 </data> 10 </data>
11 11
12 <RelativeLayout 12 <RelativeLayout
  13 + android:background="@drawable/record_end"
13 android:id="@+id/ll_item" 14 android:id="@+id/ll_item"
14 android:layout_width="match_parent" 15 android:layout_width="match_parent"
15 android:layout_height="wrap_content"> 16 android:layout_height="wrap_content">
app/src/main/res/layout/fragment_player_live.xml
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 21
22 <RelativeLayout 22 <RelativeLayout
23 android:id="@+id/contentLayout" 23 android:id="@+id/contentLayout"
24 - android:background="@android:color/black" 24 + android:background="#282828"
25 android:layout_width="match_parent" 25 android:layout_width="match_parent"
26 android:layout_height="match_parent" 26 android:layout_height="match_parent"
27 android:layout_below="@+id/videoView"> 27 android:layout_below="@+id/videoView">
app/src/main/res/layout/item_list_right.xml
@@ -11,64 +11,98 @@ @@ -11,64 +11,98 @@
11 </data> 11 </data>
12 12
13 <RelativeLayout 13 <RelativeLayout
  14 +
14 android:layout_width="match_parent" 15 android:layout_width="match_parent"
15 - android:layout_height="match_parent"> 16 + android:layout_height="wrap_content"
  17 + android:padding="10dp">
16 18
17 - <LinearLayout 19 + <RelativeLayout
18 android:id="@+id/left_lin" 20 android:id="@+id/left_lin"
19 -  
20 android:layout_width="wrap_content" 21 android:layout_width="wrap_content"
21 android:layout_height="50dp" 22 android:layout_height="50dp"
22 - android:orientation="horizontal"> 23 + android:layout_alignParentLeft="true"
  24 + android:background="@drawable/chat_gift_bg"
23 25
24 - <com.cnlive.gundam.user.view.CircleImageView  
25 - android:layout_width="20dp"  
26 - android:layout_height="20dp"  
27 - app:imageUrl="@{user.icon}"/> 26 + android:paddingBottom="5dp"
  27 + android:paddingLeft="10dp"
  28 + android:paddingRight="10dp"
  29 + android:paddingTop="5dp">
28 30
29 - <TextView 31 + <ImageView
  32 + android:id="@+id/iv_left_user_icon"
30 android:layout_width="wrap_content" 33 android:layout_width="wrap_content"
31 android:layout_height="wrap_content" 34 android:layout_height="wrap_content"
32 - android:textColor="@android:color/white"  
33 - android:text="@{user.name}" /> 35 + android:layout_centerVertical="true"
  36 + app:imageUrl="@{user.icon}" />
34 37
35 - <TextView 38 + <LinearLayout
36 android:layout_width="wrap_content" 39 android:layout_width="wrap_content"
37 android:layout_height="wrap_content" 40 android:layout_height="wrap_content"
38 - android:textColor="@android:color/white"  
39 - android:text="@{user.messaage}" />  
40 - </LinearLayout> 41 + android:layout_marginLeft="10dp"
  42 + android:layout_toRightOf="@+id/iv_left_user_icon"
  43 + android:orientation="vertical">
  44 +
  45 + <TextView
  46 + android:id="@+id/tv_left_user_name"
  47 + android:layout_width="wrap_content"
  48 + android:layout_height="wrap_content"
  49 + android:text="@{user.name}"
  50 + android:textColor="@android:color/white" />
  51 +
  52 + <TextView
  53 + android:id="@+id/tv_left_user_mewssage"
  54 + android:layout_width="wrap_content"
  55 + android:layout_height="wrap_content"
  56 + android:layout_marginTop="5dp"
  57 + android:text="@{user.messaage}"
  58 + android:textColor="@android:color/white" />
  59 + </LinearLayout>
  60 +
  61 +
  62 + </RelativeLayout>
41 63
42 64
43 65
44 <LinearLayout 66 <LinearLayout
45 android:id="@+id/right_lin" 67 android:id="@+id/right_lin"
  68 + android:background="@drawable/chat_gift_bg"
46 69
  70 + android:paddingBottom="5dp"
  71 + android:paddingLeft="10dp"
  72 + android:paddingRight="10dp"
  73 + android:paddingTop="5dp"
47 android:layout_alignParentRight="true" 74 android:layout_alignParentRight="true"
48 android:layout_width="wrap_content" 75 android:layout_width="wrap_content"
49 android:layout_height="50dp" 76 android:layout_height="50dp"
50 android:orientation="horizontal"> 77 android:orientation="horizontal">
51 78
52 <TextView 79 <TextView
  80 + android:layout_gravity="center_vertical"
  81 + android:layout_marginRight="10dp"
53 android:layout_width="wrap_content" 82 android:layout_width="wrap_content"
54 android:layout_height="wrap_content" 83 android:layout_height="wrap_content"
55 android:textColor="@android:color/white" 84 android:textColor="@android:color/white"
56 android:text="@{user.messaage}" /> 85 android:text="@{user.messaage}" />
57 <TextView 86 <TextView
  87 + android:layout_gravity="center_vertical"
  88 + android:visibility="gone"
58 android:layout_width="wrap_content" 89 android:layout_width="wrap_content"
59 android:layout_height="wrap_content" 90 android:layout_height="wrap_content"
60 android:textColor="@android:color/white" 91 android:textColor="@android:color/white"
61 android:text="@{user.name}" /> 92 android:text="@{user.name}" />
62 93
63 - <com.cnlive.gundam.user.view.CircleImageView  
64 - android:layout_width="20dp"  
65 - android:layout_height="20dp" 94 + <ImageView
  95 + android:layout_gravity="center_vertical"
  96 + android:layout_width="wrap_content"
  97 + android:layout_height="wrap_content"
66 app:imageUrl="@{user.icon}" 98 app:imageUrl="@{user.icon}"
67 /> 99 />
68 100
69 </LinearLayout> 101 </LinearLayout>
70 102
71 103
  104 +
  105 +
72 </RelativeLayout> 106 </RelativeLayout>
73 107
74 </layout> 108 </layout>
75 \ No newline at end of file 109 \ No newline at end of file