@消息界面
This commit is contained in:
parent
a1633e3456
commit
80655a8662
65
common/src/main/java/com/yunbao/common/bean/OlineModel.java
Normal file
65
common/src/main/java/com/yunbao/common/bean/OlineModel.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class OlineModel extends BaseModel {
|
||||||
|
|
||||||
|
@SerializedName("userlist")
|
||||||
|
private List<OlineUserlistModel> userlist = new ArrayList<>();
|
||||||
|
@SerializedName("nums")
|
||||||
|
private String nums;
|
||||||
|
@SerializedName("medal_num")
|
||||||
|
private String medalNum;
|
||||||
|
@SerializedName("votestotal")
|
||||||
|
private String votestotal;
|
||||||
|
@SerializedName("medalRankNum")
|
||||||
|
private String medalRankNum;
|
||||||
|
|
||||||
|
public List<OlineUserlistModel> getUserlist() {
|
||||||
|
return userlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineModel setUserlist(List<OlineUserlistModel> userlist) {
|
||||||
|
this.userlist = userlist;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNums() {
|
||||||
|
return nums;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineModel setNums(String nums) {
|
||||||
|
this.nums = nums;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMedalNum() {
|
||||||
|
return medalNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineModel setMedalNum(String medalNum) {
|
||||||
|
this.medalNum = medalNum;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVotestotal() {
|
||||||
|
return votestotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineModel setVotestotal(String votestotal) {
|
||||||
|
this.votestotal = votestotal;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMedalRankNum() {
|
||||||
|
return medalRankNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineModel setMedalRankNum(String medalRankNum) {
|
||||||
|
this.medalRankNum = medalRankNum;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,270 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
public class OlineUserlistModel extends BaseModel {
|
||||||
|
@SerializedName("id")
|
||||||
|
private String id;
|
||||||
|
@SerializedName("user_nicename")
|
||||||
|
private String userNicename;
|
||||||
|
@SerializedName("avatar")
|
||||||
|
private String avatar;
|
||||||
|
@SerializedName("sex")
|
||||||
|
private String sex;
|
||||||
|
@SerializedName("noble_id")
|
||||||
|
private String nobleId;
|
||||||
|
@SerializedName("goodnum")
|
||||||
|
private String goodnum;
|
||||||
|
@SerializedName("is_guess")
|
||||||
|
private String isGuess;
|
||||||
|
@SerializedName("langue")
|
||||||
|
private String langue;
|
||||||
|
@SerializedName("goodnum_expire_time")
|
||||||
|
private String goodnumExpireTime;
|
||||||
|
@SerializedName("avatar2")
|
||||||
|
private String avatar2;
|
||||||
|
@SerializedName("version")
|
||||||
|
private String version;
|
||||||
|
@SerializedName("front_task")
|
||||||
|
private String frontTask;
|
||||||
|
@SerializedName("max_noble_end_time")
|
||||||
|
private String maxNobleEndTime;
|
||||||
|
@SerializedName("custom_color_id")
|
||||||
|
private String customColorId;
|
||||||
|
@SerializedName("is_chat")
|
||||||
|
private String isChat;
|
||||||
|
@SerializedName("level")
|
||||||
|
private String level;
|
||||||
|
@SerializedName("level_anchor")
|
||||||
|
private String levelAnchor;
|
||||||
|
@SerializedName("vip")
|
||||||
|
private VipModel vip;
|
||||||
|
@SerializedName("liang")
|
||||||
|
private LiangModel liang;
|
||||||
|
@SerializedName("medal_level")
|
||||||
|
private String medalLevel;
|
||||||
|
@SerializedName("medal_name")
|
||||||
|
private String medalName;
|
||||||
|
@SerializedName("contribution")
|
||||||
|
private String contribution;
|
||||||
|
@SerializedName("guard_type")
|
||||||
|
private String guardType;
|
||||||
|
@SerializedName("dress")
|
||||||
|
private DressModel dress;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserNicename() {
|
||||||
|
return userNicename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setUserNicename(String userNicename) {
|
||||||
|
this.userNicename = userNicename;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAvatar() {
|
||||||
|
return avatar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setAvatar(String avatar) {
|
||||||
|
this.avatar = avatar;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSex() {
|
||||||
|
return sex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setSex(String sex) {
|
||||||
|
this.sex = sex;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNobleId() {
|
||||||
|
return nobleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setNobleId(String nobleId) {
|
||||||
|
this.nobleId = nobleId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGoodnum() {
|
||||||
|
return goodnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setGoodnum(String goodnum) {
|
||||||
|
this.goodnum = goodnum;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIsGuess() {
|
||||||
|
return isGuess;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setIsGuess(String isGuess) {
|
||||||
|
this.isGuess = isGuess;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLangue() {
|
||||||
|
return langue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setLangue(String langue) {
|
||||||
|
this.langue = langue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGoodnumExpireTime() {
|
||||||
|
return goodnumExpireTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setGoodnumExpireTime(String goodnumExpireTime) {
|
||||||
|
this.goodnumExpireTime = goodnumExpireTime;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAvatar2() {
|
||||||
|
return avatar2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setAvatar2(String avatar2) {
|
||||||
|
this.avatar2 = avatar2;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setVersion(String version) {
|
||||||
|
this.version = version;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFrontTask() {
|
||||||
|
return frontTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setFrontTask(String frontTask) {
|
||||||
|
this.frontTask = frontTask;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMaxNobleEndTime() {
|
||||||
|
return maxNobleEndTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setMaxNobleEndTime(String maxNobleEndTime) {
|
||||||
|
this.maxNobleEndTime = maxNobleEndTime;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomColorId() {
|
||||||
|
return customColorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setCustomColorId(String customColorId) {
|
||||||
|
this.customColorId = customColorId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIsChat() {
|
||||||
|
return isChat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setIsChat(String isChat) {
|
||||||
|
this.isChat = isChat;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setLevel(String level) {
|
||||||
|
this.level = level;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLevelAnchor() {
|
||||||
|
return levelAnchor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setLevelAnchor(String levelAnchor) {
|
||||||
|
this.levelAnchor = levelAnchor;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VipModel getVip() {
|
||||||
|
return vip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setVip(VipModel vip) {
|
||||||
|
this.vip = vip;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiangModel getLiang() {
|
||||||
|
return liang;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setLiang(LiangModel liang) {
|
||||||
|
this.liang = liang;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMedalLevel() {
|
||||||
|
return medalLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setMedalLevel(String medalLevel) {
|
||||||
|
this.medalLevel = medalLevel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMedalName() {
|
||||||
|
return medalName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setMedalName(String medalName) {
|
||||||
|
this.medalName = medalName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContribution() {
|
||||||
|
return contribution;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setContribution(String contribution) {
|
||||||
|
this.contribution = contribution;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGuardType() {
|
||||||
|
return guardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setGuardType(String guardType) {
|
||||||
|
this.guardType = guardType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DressModel getDress() {
|
||||||
|
return dress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineUserlistModel setDress(DressModel dress) {
|
||||||
|
this.dress = dress;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
@ -859,7 +859,7 @@ Limited ride And limited avatar frame</string>
|
|||||||
<string name="you_may_also_like">you may also like</string>
|
<string name="you_may_also_like">you may also like</string>
|
||||||
<string name="anchor">anchor</string>
|
<string name="anchor">anchor</string>
|
||||||
<string name="anchor_more">More</string>
|
<string name="anchor_more">More</string>
|
||||||
<string name="wonderful_live">Wonderful live</string>
|
<string name="wonderful_live">Live</string>
|
||||||
<string name="recommended_for_you">More</string>
|
<string name="recommended_for_you">More</string>
|
||||||
<string name="fun_games">Fun Games</string>
|
<string name="fun_games">Fun Games</string>
|
||||||
<string name="value_added_benefits">Value-added benefits</string>
|
<string name="value_added_benefits">Value-added benefits</string>
|
||||||
|
@ -914,6 +914,11 @@
|
|||||||
<string name="login_invalid">登錄失效,請重新登錄</string>
|
<string name="login_invalid">登錄失效,請重新登錄</string>
|
||||||
<string name="slide_settings">滑動設置</string>
|
<string name="slide_settings">滑動設置</string>
|
||||||
<string name="up_slide_settings">上下滑動切換直播間</string>
|
<string name="up_slide_settings">上下滑動切換直播間</string>
|
||||||
|
<string name="live_say_something_a">\@用户昵称\t\t你好啊~</string>
|
||||||
|
<string name="oline_list">在线列表</string>
|
||||||
|
<string name="search_want">搜索想要@的人</string>
|
||||||
|
<string name="online_audience">在線觀眾</string>
|
||||||
|
<string name="audience">觀眾</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
<activity android:name=".activity.LiveTRTCAnchorActivity"/>
|
<activity android:name=".activity.LiveTRTCAnchorActivity" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.LiveAnchorActivity"
|
android:name=".activity.LiveAnchorActivity"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
@ -85,14 +85,17 @@
|
|||||||
android:name=".activity.PDLiveConversationActivity"
|
android:name=".activity.PDLiveConversationActivity"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"/>
|
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.PDLIiveChatActivity"
|
android:name=".activity.PDLIiveChatActivity"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:theme="@style/DialogActivity"/>
|
android:theme="@style/DialogActivity" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.EditNameRemarksActivity"
|
android:name=".activity.EditNameRemarksActivity"
|
||||||
android:screenOrientation="portrait" />
|
android:screenOrientation="portrait" />
|
||||||
|
<activity
|
||||||
|
android:name=".views.OlineListActivity"
|
||||||
|
android:screenOrientation="portrait" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -855,6 +855,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
|||||||
bundle.putString(Constants.LIVE_DANMU_PRICE, mDanmuPrice);
|
bundle.putString(Constants.LIVE_DANMU_PRICE, mDanmuPrice);
|
||||||
bundle.putString(Constants.COIN_NAME, mCoinName);
|
bundle.putString(Constants.COIN_NAME, mCoinName);
|
||||||
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
||||||
|
bundle.putString(Constants.LIVE_STREAM, mStream);
|
||||||
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
||||||
fragment.setArguments(bundle);
|
fragment.setArguments(bundle);
|
||||||
fragment.show(getSupportFragmentManager(), "LiveInputDialogFragment");
|
fragment.show(getSupportFragmentManager(), "LiveInputDialogFragment");
|
||||||
|
@ -289,7 +289,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
|
|||||||
} else if (bean.getType() == LiveChatBean.SYSTEM) {
|
} else if (bean.getType() == LiveChatBean.SYSTEM) {
|
||||||
boolean isContains = false;
|
boolean isContains = false;
|
||||||
for (LiveChatBean model : mList) {
|
for (LiveChatBean model : mList) {
|
||||||
if (!TextUtils.isEmpty(model.getContent()) && model.getContent().contains("堅決維護青少年群體精神文明健康")) {
|
if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康")||model.getContent().contains("click to register if you like. pdlive conducts"))) {
|
||||||
isContains = true;
|
isContains = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -408,7 +408,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
|
|||||||
|
|
||||||
public void scrollToBottom() {
|
public void scrollToBottom() {
|
||||||
if (mList.size() > 0) {
|
if (mList.size() > 0) {
|
||||||
mRecyclerView.smoothScrollToPosition(mList.size() - 1);
|
mRecyclerView.smoothScrollToPosition(getItemCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,73 @@
|
|||||||
|
package com.yunbao.live.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
import com.yunbao.live.views.OlineAudienceViewHolder;
|
||||||
|
import com.yunbao.live.views.OlineNobleViewHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OlineListAdapter extends RecyclerView.Adapter {
|
||||||
|
|
||||||
|
private int nobleType = 0;
|
||||||
|
|
||||||
|
private int audienceType = 1;
|
||||||
|
|
||||||
|
private List<Map<Integer, List<OlineUserlistModel>>> mapList = new ArrayList<>();
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
public OlineListAdapter(Context mContext) {
|
||||||
|
this.mContext = mContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addAll(List<Map<Integer, List<OlineUserlistModel>>> models) {
|
||||||
|
mapList.addAll(models);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
if (viewType == nobleType) {
|
||||||
|
return new OlineNobleViewHolder(LayoutInflater.from(mContext).inflate(R.layout.view_oline_audience, parent, false));
|
||||||
|
} else {
|
||||||
|
return new OlineAudienceViewHolder(LayoutInflater.from(mContext).inflate(R.layout.view_oline_audience, parent, false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
if (holder instanceof OlineNobleViewHolder) {
|
||||||
|
OlineNobleViewHolder nobleViewHolder = (OlineNobleViewHolder) holder;
|
||||||
|
nobleViewHolder.setData(mapList.get(position).get(nobleType));
|
||||||
|
} else {
|
||||||
|
OlineAudienceViewHolder audienceViewHolder = (OlineAudienceViewHolder) holder;
|
||||||
|
audienceViewHolder.setData(mapList.get(position).get(audienceType));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemViewType(int position) {
|
||||||
|
boolean isNoble = true;
|
||||||
|
for (int number : mapList.get(position).keySet()) {
|
||||||
|
isNoble = number == nobleType;
|
||||||
|
}
|
||||||
|
return isNoble ? nobleType : audienceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return mapList.size();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.yunbao.live.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
import com.yunbao.live.views.OlineListItemViewHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class OlineListItemAdapter extends RecyclerView.Adapter {
|
||||||
|
private Context mContext;
|
||||||
|
private List<OlineUserlistModel> models = new ArrayList<>();
|
||||||
|
|
||||||
|
public void addAll(List<OlineUserlistModel> userlistModels) {
|
||||||
|
models.addAll(userlistModels);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OlineListItemAdapter(Context mContext) {
|
||||||
|
this.mContext = mContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
return new OlineListItemViewHolder(LayoutInflater.from(mContext).inflate(R.layout.view_oline_item, parent, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||||
|
OlineListItemViewHolder itemViewHolder = (OlineListItemViewHolder) holder;
|
||||||
|
itemViewHolder.setData(models.get(position));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return models.size();
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@ package com.yunbao.live.dialog;
|
|||||||
import static android.content.Context.INPUT_METHOD_SERVICE;
|
import static android.content.Context.INPUT_METHOD_SERVICE;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -12,7 +13,6 @@ import android.text.TextUtils;
|
|||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
@ -23,7 +23,6 @@ import android.widget.CompoundButton;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
@ -37,10 +36,11 @@ import com.yunbao.common.http.live.LiveNetManager;
|
|||||||
import com.yunbao.common.utils.DpUtil;
|
import com.yunbao.common.utils.DpUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.live.R;
|
||||||
import com.yunbao.live.activity.LiveActivity;
|
import com.yunbao.live.activity.LiveActivity;
|
||||||
import com.yunbao.live.activity.LiveAnchorActivity;
|
|
||||||
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
||||||
|
import com.yunbao.live.views.OlineListActivity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -94,6 +94,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
params.height = DpUtil.dp2px(100);
|
params.height = DpUtil.dp2px(100);
|
||||||
params.gravity = Gravity.BOTTOM;
|
params.gravity = Gravity.BOTTOM;
|
||||||
window.setAttributes(params);
|
window.setAttributes(params);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -103,6 +104,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
imm = (InputMethodManager) mContext.getSystemService(INPUT_METHOD_SERVICE);
|
imm = (InputMethodManager) mContext.getSystemService(INPUT_METHOD_SERVICE);
|
||||||
mInput = (EditText) mRootView.findViewById(R.id.input);
|
mInput = (EditText) mRootView.findViewById(R.id.input);
|
||||||
radioHornType = mRootView.findViewById(R.id.radio_horn_type);
|
radioHornType = mRootView.findViewById(R.id.radio_horn_type);
|
||||||
|
|
||||||
for (int id : radioList) {
|
for (int id : radioList) {
|
||||||
RadioButton radioButton = mRootView.findViewById(id);
|
RadioButton radioButton = mRootView.findViewById(id);
|
||||||
radioHornTypes.add(radioButton);
|
radioHornTypes.add(radioButton);
|
||||||
@ -116,15 +118,12 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
mInput.setFocusableInTouchMode(true);
|
mInput.setFocusableInTouchMode(true);
|
||||||
mInput.requestFocus();
|
mInput.requestFocus();
|
||||||
|
|
||||||
mInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
mInput.setOnEditorActionListener((v, actionId, event) -> {
|
||||||
@Override
|
|
||||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
||||||
if (actionId == EditorInfo.IME_ACTION_SEND) {
|
if (actionId == EditorInfo.IME_ACTION_SEND) {
|
||||||
sendMessage();
|
sendMessage();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
});
|
});
|
||||||
mInput.addTextChangedListener(new TextWatcher() {
|
mInput.addTextChangedListener(new TextWatcher() {
|
||||||
@Override
|
@Override
|
||||||
@ -146,13 +145,10 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mInput.postDelayed(new Runnable() {
|
mInput.postDelayed(() -> {
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
//软键盘弹出
|
//软键盘弹出
|
||||||
imm.showSoftInput(mInput, InputMethodManager.SHOW_FORCED);
|
imm.showSoftInput(mInput, InputMethodManager.SHOW_FORCED);
|
||||||
mInput.requestFocus();
|
mInput.requestFocus();
|
||||||
}
|
|
||||||
}, 200);
|
}, 200);
|
||||||
mCheckBox = (CheckBox) mRootView.findViewById(R.id.danmu);
|
mCheckBox = (CheckBox) mRootView.findViewById(R.id.danmu);
|
||||||
mMyRadioButton = (MyRadioButton) mRootView.findViewById(R.id.btn_send);
|
mMyRadioButton = (MyRadioButton) mRootView.findViewById(R.id.btn_send);
|
||||||
@ -180,6 +176,16 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
radioHornType.setOnCheckedChangeListener(changeListener);
|
radioHornType.setOnCheckedChangeListener(changeListener);
|
||||||
radioHornType.getCheckedRadioButtonId();
|
radioHornType.getCheckedRadioButtonId();
|
||||||
netHandler.post(getNobleTrumpetNumRunnable);
|
netHandler.post(getNobleTrumpetNumRunnable);
|
||||||
|
ViewClicksAntiShake.clicksAntiShake(mRootView.findViewById(R.id.ai_te), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onViewClicks() {
|
||||||
|
Intent intent = new Intent(getActivity(), OlineListActivity.class);
|
||||||
|
intent.putExtra("liveID", mLiveUid);
|
||||||
|
intent.putExtra("stream", bundle.getString(Constants.LIVE_STREAM));
|
||||||
|
getActivity().startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,15 +44,6 @@ public class SocketLinkMicUtil {
|
|||||||
if (u == null) {
|
if (u == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// client.send(new SocketSendBean()
|
|
||||||
// .param("_method_", Constants.SOCKET_LINK_MIC)
|
|
||||||
// .param("action", 2)
|
|
||||||
// .param("msgtype", 10)
|
|
||||||
// .param("uid", u.getId())
|
|
||||||
// .param("uname", u.getUserNiceName())
|
|
||||||
// .param("level", u.getLevel())
|
|
||||||
// .param("touid", toUid)
|
|
||||||
// .param("ct", ""));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -67,15 +58,6 @@ public class SocketLinkMicUtil {
|
|||||||
if (u == null) {
|
if (u == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// client.send(new SocketSendBean()
|
|
||||||
// .param("_method_", Constants.SOCKET_LINK_MIC)
|
|
||||||
// .param("action", 3)
|
|
||||||
// .param("msgtype", 10)
|
|
||||||
// .param("uid", u.getId())
|
|
||||||
// .param("uname", u.getUserNiceName())
|
|
||||||
// .param("level", u.getLevel())
|
|
||||||
// .param("touid", touid)
|
|
||||||
// .param("ct", ""));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,11 +126,6 @@ public class SocketLinkMicUtil {
|
|||||||
if (client == null) {
|
if (client == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// client.send(new SocketSendBean()
|
|
||||||
// .param("_method_", Constants.SOCKET_LINK_MIC)
|
|
||||||
// .param("action", 7)
|
|
||||||
// .param("msgtype", 10)
|
|
||||||
// .param("touid", touid));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -158,10 +135,5 @@ public class SocketLinkMicUtil {
|
|||||||
if (client == null) {
|
if (client == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// client.send(new SocketSendBean()
|
|
||||||
// .param("_method_", Constants.SOCKET_LINK_MIC)
|
|
||||||
// .param("action", 8)
|
|
||||||
// .param("msgtype", 10)
|
|
||||||
// .param("touid", touid));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,41 @@
|
|||||||
|
package com.yunbao.live.views;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
import com.yunbao.live.adapter.OlineListItemAdapter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在线普通观众
|
||||||
|
*/
|
||||||
|
public class OlineAudienceViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
private TextView avatarType;
|
||||||
|
private RecyclerView audienceList;
|
||||||
|
private OlineListItemAdapter itemAdapter;
|
||||||
|
|
||||||
|
public OlineAudienceViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
avatarType = itemView.findViewById(R.id.avatar_type);
|
||||||
|
itemAdapter = new OlineListItemAdapter(itemView.getContext());
|
||||||
|
audienceList = itemView.findViewById(R.id.audience_list);
|
||||||
|
audienceList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false));
|
||||||
|
audienceList.setAdapter(itemAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置列表数据
|
||||||
|
*/
|
||||||
|
public void setData(List<OlineUserlistModel> models) {
|
||||||
|
avatarType.setText(R.string.audience);
|
||||||
|
avatarType.setVisibility(View.VISIBLE);
|
||||||
|
itemAdapter.addAll(models);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,86 @@
|
|||||||
|
package com.yunbao.live.views;
|
||||||
|
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.blankj.utilcode.util.GsonUtils;
|
||||||
|
import com.yunbao.common.activity.AbsActivity;
|
||||||
|
import com.yunbao.common.bean.OlineModel;
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.common.http.HttpCallback;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
import com.yunbao.live.adapter.OlineListAdapter;
|
||||||
|
import com.yunbao.live.http.LiveHttpUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OlineListActivity extends AbsActivity {
|
||||||
|
private RecyclerView audienceList;
|
||||||
|
private OlineListAdapter itemAdapter;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getLayoutId() {
|
||||||
|
return R.layout.acticity_oline_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void main() {
|
||||||
|
super.main();
|
||||||
|
initView();
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化数据
|
||||||
|
*/
|
||||||
|
private void initData() {
|
||||||
|
LiveHttpUtil.
|
||||||
|
getUserList(
|
||||||
|
getIntent().getStringExtra("liveID"),
|
||||||
|
getIntent().getStringExtra("stream"), "guanzhong", 1, new HttpCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
|
OlineModel responseData = GsonUtils.fromJson(info[0], OlineModel.class);
|
||||||
|
List<OlineUserlistModel> userlistModels = responseData.getUserlist();
|
||||||
|
List<OlineUserlistModel> noblelistModels = new ArrayList<>();
|
||||||
|
List<OlineUserlistModel> audiencelistModels = new ArrayList<>();
|
||||||
|
List<Map<Integer, List<OlineUserlistModel>>> mapList = new ArrayList<>();
|
||||||
|
//讲贵族前置顺序
|
||||||
|
for (OlineUserlistModel model : userlistModels) {
|
||||||
|
int nobleId = Integer.parseInt(model.getNobleId());
|
||||||
|
if (nobleId > 0) {
|
||||||
|
noblelistModels.add(model);
|
||||||
|
} else {
|
||||||
|
audiencelistModels.add(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<Integer, List<OlineUserlistModel>> noblerMap = new HashMap<>();
|
||||||
|
noblerMap.put(0, noblelistModels);
|
||||||
|
Map<Integer, List<OlineUserlistModel>> audienceMap = new HashMap<>();
|
||||||
|
audienceMap.put(1,audiencelistModels);
|
||||||
|
mapList.add(0,noblerMap);
|
||||||
|
mapList.add(1, audienceMap);
|
||||||
|
itemAdapter.addAll(mapList);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化控件
|
||||||
|
*/
|
||||||
|
private void initView() {
|
||||||
|
itemAdapter = new OlineListAdapter(mContext);
|
||||||
|
audienceList = findViewById(R.id.audience_list);
|
||||||
|
TextView titleView = findViewById(R.id.titleView);
|
||||||
|
titleView.setText(R.string.online_audience);
|
||||||
|
audienceList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
|
||||||
|
audienceList.setAdapter(itemAdapter);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.yunbao.live.views;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
|
import com.yunbao.common.views.weight.ClipPathCircleImage;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
|
||||||
|
public class OlineListItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
private TextView userName;
|
||||||
|
private ClipPathCircleImage avatar;
|
||||||
|
|
||||||
|
public OlineListItemViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
userName = itemView.findViewById(R.id.user_name);
|
||||||
|
avatar = itemView.findViewById(R.id.avatar);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置列表数据
|
||||||
|
*
|
||||||
|
* @param model 数据
|
||||||
|
*/
|
||||||
|
public void setData(OlineUserlistModel model) {
|
||||||
|
ImgLoader.displayAvatar(itemView.getContext(), model.getAvatar(), avatar);
|
||||||
|
userName.setText(model.getUserNicename());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package com.yunbao.live.views;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.OlineUserlistModel;
|
||||||
|
import com.yunbao.live.R;
|
||||||
|
import com.yunbao.live.adapter.OlineListItemAdapter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在线贵族
|
||||||
|
*/
|
||||||
|
public class OlineNobleViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
private TextView avatarType;
|
||||||
|
private RecyclerView audienceList;
|
||||||
|
private OlineListItemAdapter itemAdapter;
|
||||||
|
|
||||||
|
public OlineNobleViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
avatarType = itemView.findViewById(R.id.avatar_type);
|
||||||
|
itemAdapter = new OlineListItemAdapter(itemView.getContext());
|
||||||
|
audienceList = itemView.findViewById(R.id.audience_list);
|
||||||
|
audienceList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false));
|
||||||
|
audienceList.setAdapter(itemAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置列表数据
|
||||||
|
*/
|
||||||
|
public void setData(List<OlineUserlistModel> models) {
|
||||||
|
avatarType.setText(R.string.noble);
|
||||||
|
avatarType.setVisibility(View.VISIBLE);
|
||||||
|
itemAdapter.addAll(models);
|
||||||
|
}
|
||||||
|
}
|
5
live/src/main/res/drawable/bg_search_input_2.xml
Normal file
5
live/src/main/res/drawable/bg_search_input_2.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<corners android:radius="20dp"/>
|
||||||
|
<solid android:color="#F6F6F6"/>
|
||||||
|
</shape>
|
44
live/src/main/res/layout/acticity_oline_list.xml
Normal file
44
live/src/main/res/layout/acticity_oline_list.xml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?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="match_parent"
|
||||||
|
android:background="@color/white"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<include layout="@layout/view_title" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:layout_marginTop="18.67dp"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:background="@drawable/bg_search_input_2"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/edit"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@null"
|
||||||
|
android:hint="@string/search_want"
|
||||||
|
android:imeActionLabel="@string/search"
|
||||||
|
android:imeOptions="actionSearch"
|
||||||
|
android:paddingStart="22.67dp"
|
||||||
|
android:paddingRight="10dp"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="@color/textColor"
|
||||||
|
android:textColorHint="#BFBFBF"
|
||||||
|
android:textSize="15sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/audience_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginTop="23.33dp" />
|
||||||
|
</LinearLayout>
|
@ -26,10 +26,10 @@
|
|||||||
android:background="@drawable/radio_horn_type"
|
android:background="@drawable/radio_horn_type"
|
||||||
android:button="@null"
|
android:button="@null"
|
||||||
android:checked="true"
|
android:checked="true"
|
||||||
|
android:drawableLeft="@mipmap/icon_general_message_p"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/normal_barrage"
|
android:text="@string/normal_barrage"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:drawableLeft="@mipmap/icon_general_message_p"
|
|
||||||
android:textSize="12sp" />
|
android:textSize="12sp" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
@ -40,8 +40,8 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/radio_horn_type"
|
android:background="@drawable/radio_horn_type"
|
||||||
android:button="@null"
|
android:button="@null"
|
||||||
android:gravity="center"
|
|
||||||
android:drawableLeft="@mipmap/icon_popup_screen"
|
android:drawableLeft="@mipmap/icon_popup_screen"
|
||||||
|
android:gravity="center"
|
||||||
android:text="@string/floating_screen"
|
android:text="@string/floating_screen"
|
||||||
android:textColor="#FFB1B6C7"
|
android:textColor="#FFB1B6C7"
|
||||||
android:textSize="12sp" />
|
android:textSize="12sp" />
|
||||||
@ -54,12 +54,12 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/radio_horn_type"
|
android:background="@drawable/radio_horn_type"
|
||||||
android:button="@null"
|
android:button="@null"
|
||||||
android:gravity="center"
|
|
||||||
android:drawableStart="@mipmap/icon_world_horn"
|
android:drawableStart="@mipmap/icon_world_horn"
|
||||||
|
android:gravity="center"
|
||||||
android:text="@string/whole_station_horn"
|
android:text="@string/whole_station_horn"
|
||||||
android:textColor="#FFB1B6C7"
|
android:textColor="#FFB1B6C7"
|
||||||
android:visibility="visible"
|
android:textSize="12sp"
|
||||||
android:textSize="12sp" />
|
android:visibility="visible" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -82,6 +82,15 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="50dp">
|
android:layout_height="50dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ai_te"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginStart="12.33dp"
|
||||||
|
android:layout_marginEnd="10.33dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:src="@mipmap/icon_emphasis" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/input"
|
android:id="@+id/input"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@ -90,7 +99,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/bg_live_input"
|
android:background="@drawable/bg_live_input"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:hint="@string/live_say_something"
|
android:hint="@string/live_say_something_a"
|
||||||
android:imeActionLabel="@string/send"
|
android:imeActionLabel="@string/send"
|
||||||
android:imeOptions="actionSend"
|
android:imeOptions="actionSend"
|
||||||
android:maxLength="50"
|
android:maxLength="50"
|
||||||
|
@ -287,6 +287,43 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/chat_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:gravity="top"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/chat_recyclerView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginTop="370dp"
|
||||||
|
android:overScrollMode="never"
|
||||||
|
android:scrollbars="none" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/gif_view"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="13dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/gift_group_2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/gift_group_1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/hour_rank_layout"
|
android:id="@+id/hour_rank_layout"
|
||||||
@ -830,43 +867,6 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/chat_view"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="10dp"
|
|
||||||
android:gravity="top"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/chat_recyclerView"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginTop="370dp"
|
|
||||||
android:overScrollMode="never"
|
|
||||||
android:scrollbars="none" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/gif_view"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="13dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/gift_group_2"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/gift_group_1"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<com.yunbao.common.custom.MyFrameLayout2
|
<com.yunbao.common.custom.MyFrameLayout2
|
||||||
android:id="@+id/enter_room_group"
|
android:id="@+id/enter_room_group"
|
||||||
|
24
live/src/main/res/layout/view_oline_audience.xml
Normal file
24
live/src/main/res/layout/view_oline_audience.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?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">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/avatar_type"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="20.67dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginBottom="18dp"
|
||||||
|
android:text="@string/noble"
|
||||||
|
android:textColor="#B3B3B3"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/audience_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
28
live/src/main/res/layout/view_oline_item.xml
Normal file
28
live/src/main/res/layout/view_oline_item.xml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?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">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="18dp"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<com.yunbao.common.views.weight.ClipPathCircleImage
|
||||||
|
android:id="@+id/avatar"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:scaleType="centerCrop" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/user_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12.33dp"
|
||||||
|
android:text="@string/noble"
|
||||||
|
android:textColor="#222324"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
BIN
live/src/main/res/mipmap-xxxhdpi/icon_emphasis.png
Normal file
BIN
live/src/main/res/mipmap-xxxhdpi/icon_emphasis.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
@ -46,9 +46,9 @@
|
|||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/anchor_list"
|
android:id="@+id/anchor_list"
|
||||||
android:layout_below="@id/type_title"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@id/type_title"
|
||||||
android:layout_marginLeft="20dp"
|
android:layout_marginLeft="20dp"
|
||||||
android:layout_marginRight="20dp"
|
android:layout_marginRight="20dp"
|
||||||
android:fadingEdge="none" />
|
android:fadingEdge="none" />
|
||||||
|
Loading…
Reference in New Issue
Block a user