This commit is contained in:
2023-10-25 14:07:27 +08:00
parent 06a2621e0f
commit d34e30c291
21 changed files with 658 additions and 3 deletions

View File

@@ -96,7 +96,7 @@ public class AppContext extends CommonAppContext {
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatReceiveGiftItemProvider(getApplicationContext()));
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatAutoItemProvider(getApplicationContext()));
String appKey = "pvxdm17jpd3hr";
String appKey = "lmxuhwagl7s1d";
boolean enablePush = true;
RongIM.init(this, appKey, enablePush);
RongIM.setConnectionStatusListener(new RongIMClient.ConnectionStatusListener() {

View File

@@ -191,6 +191,7 @@ public class MainActivity extends AbsOTOActivity {
protected void onResume() {
super.onResume();
checkUserInfoIsSet();
initFirstLoginTips();
}
/**

View File

@@ -0,0 +1,114 @@
package com.shayu.onetoone.activity;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MyFriendListAdapter;
import com.shayu.onetoone.bean.HomeItemBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.WordUtil;
import java.util.List;
import io.rong.imkit.widget.refresh.SmartRefreshLayout;
import io.rong.imkit.widget.refresh.api.RefreshLayout;
import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener;
import io.rong.imkit.widget.refresh.listener.OnRefreshListener;
import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader;
@Route(path = RouteManager.ACTIVITY_MY_FRIEND_LIST)
public class MyFriendListActivity extends AbsOTOActivity {
public static final int TYPE_FRIEND = 0;
public static final int TYPE_FANS = 1;
public static final int TYPE_FOLLOW = 2;
private int type;
int page = 1;
MyFriendListAdapter adapter;
SmartRefreshLayout mRefreshLayout;
SwipeRecyclerView recyclerView;
@Override
protected int getLayoutId() {
return R.layout.activity_my_follow;
}
@Override
protected void main(Bundle savedInstanceState) {
Bundle extras = getIntent().getExtras();
type = extras.getInt("type", TYPE_FRIEND);
mRefreshLayout = findViewById(R.id.swipeRefreshLayout);
recyclerView = findViewById(R.id.recyclerView);
adapter = new MyFriendListAdapter(mContext);
recyclerView.setAdapter(adapter);
mRefreshLayout.setNestedScrollingEnabled(false);
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(mContext));
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(mContext));
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page = 1;
initData();
}
});
mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
initData();
}
});
initData();
}
private void initData() {
if (type == TYPE_FANS) {
OTONetManager.getInstance(mContext).getFans(page, new MyNetData());
} else if (type == TYPE_FOLLOW) {
OTONetManager.getInstance(mContext).getFollows(page, new MyNetData());
} else if (type == TYPE_FRIEND) {
OTONetManager.getInstance(mContext).getFriends(page, new MyNetData());
}
}
private class MyNetData implements HttpCallback<List<HomeItemBean>> {
@Override
public void onSuccess(List<HomeItemBean> data) {
String title = "";
mRefreshLayout.finishRefresh();
mRefreshLayout.finishLoadMore();
switch (type) {
case TYPE_FANS:
title = WordUtil.getNewString(R.string.activity_my_friend_list_fans);
break;
case TYPE_FOLLOW:
title = WordUtil.getNewString(R.string.activity_my_friend_list_follow);
break;
case TYPE_FRIEND:
title = WordUtil.getNewString(R.string.activity_my_friend_list_friend);
break;
}
if (data.isEmpty()) {
setTitle(title + "(" + adapter.getItemCount() + WordUtil.getNewString(R.string.activity_my_friend_list_people)+")");
recyclerView.loadMoreFinish(true, false);
return;
}
recyclerView.loadMoreFinish(false, true);
if (page == 1) {
adapter.setList(data);
} else {
adapter.addList(data);
}
page++;
setTitle(title + "(" + adapter.getItemCount() + WordUtil.getNewString(R.string.activity_my_friend_list_people)+")");
}
@Override
public void onError(String error) {
}
}
}

View File

@@ -30,9 +30,12 @@ import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.MyFriendListActivity;
import com.shayu.onetoone.activity.setting.SettingActivity;
import com.shayu.onetoone.adapter.MainMeAdapter;
import com.shayu.onetoone.bean.PeopleNum;
import com.shayu.onetoone.bean.SlideBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.MainHttpConsts;
import com.shayu.onetoone.utils.MainHttpUtil;
@@ -94,6 +97,10 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
private LinearLayout lt_advertisement;
private View redPoint;
private TextView followNum, fansNum, friendNum;
private View followLayout, fansLayout, friendLayout;
private ImageView sex;
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
@@ -123,6 +130,31 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
RouteManager.forwardEditProfileActivity();
}
});
fansNum = itemView.findViewById(R.id.fans);
fansLayout = itemView.findViewById(R.id.fans_layout);
followNum = itemView.findViewById(R.id.follow);
followLayout = itemView.findViewById(R.id.follow_layout);
friendNum = itemView.findViewById(R.id.friend);
friendLayout = itemView.findViewById(R.id.friend_layout);
sex = itemView.findViewById(R.id.sex);
fansLayout.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putInt("type", MyFriendListActivity.TYPE_FANS);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_FRIEND_LIST, bundle);
});
followLayout.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putInt("type", MyFriendListActivity.TYPE_FOLLOW);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_FRIEND_LIST, bundle);
});
friendLayout.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putInt("type", MyFriendListActivity.TYPE_FRIEND);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_FRIEND_LIST, bundle);
});
user_noble_ico = (ImageView) itemView.findViewById(R.id.user_noble_ico);
mLevelAnchor = (ImageView) itemView.findViewById(R.id.level_anchor);
mLevel = (ImageView) itemView.findViewById(R.id.level);
@@ -178,6 +210,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
}
});
loadData();
initPeopleNum();
}
@Override
@@ -278,6 +311,11 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
}
}
}
if (u.getSex() == 1) {
sex.setImageResource(R.mipmap.ic_message_tab_man);
} else {
sex.setImageResource(R.mipmap.ic_message_tab_woman);
}
showBanner();
ImgLoader.displayAvatar(mContext, u.getAvatar(), mAvatar);
mName.setText(u.getUserNiceName());
@@ -615,5 +653,21 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
}
}
void initPeopleNum() {
OTONetManager.getInstance(mContext)
.getPeopleNum(new com.yunbao.common.http.base.HttpCallback<PeopleNum>() {
@Override
public void onSuccess(PeopleNum data) {
fansNum.setText(data.getFans() + "");
followNum.setText(data.getFollow() + "");
friendNum.setText(data.getFriend() + "");
}
@Override
public void onError(String error) {
}
});
}
}

View File

@@ -0,0 +1,126 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.HomeItemBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import java.util.ArrayList;
import java.util.List;
public class MyFriendListAdapter extends RecyclerView.Adapter<MyFriendListAdapter.ViewHolder> {
List<HomeItemBean> list;
Context context;
public MyFriendListAdapter(Context context) {
this.context = context;
list=new ArrayList<>();
}
public void setList(List<HomeItemBean> list) {
this.list = list;
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_my_follow, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.setDate(list.get(position), position);
}
@Override
public int getItemCount() {
return list.size();
}
public void addList(List<HomeItemBean> data) {
this.list.addAll(data);
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private RoundedImageView avatar;
private ImageView sex;
private TextView uname;
private TextView starUp;
private Button submit;
public ViewHolder(@NonNull View itemView) {
super(itemView);
avatar = itemView.findViewById(R.id.avatar);
sex = itemView.findViewById(R.id.sex);
uname = itemView.findViewById(R.id.uname);
starUp = itemView.findViewById(R.id.star_up);
submit = itemView.findViewById(R.id.submit);
}
void setDate(HomeItemBean bean, int position) {
ImgLoader.display(context, bean.getAvatar(), avatar);
uname.setText(bean.getUser_nicename());
starUp.setText(bean.getStar() + "·" + bean.getStar_name());
if (bean.getSex() == 1) {
sex.setImageResource(R.mipmap.ic_message_tab_man);
} else {
sex.setImageResource(R.mipmap.ic_message_tab_woman);
}
//isAttention 0 未关注 1被关注 2已关注 3互相关注
submit.setEnabled(true);
switch (bean.getIsAttention()) {
case 1:
submit.setText(R.string.activity_my_friend_list_item_1);
break;
case 2:
submit.setText(R.string.activity_my_friend_list_item_2);
submit.setEnabled(false);
break;
case 3:
submit.setText(R.string.activity_my_friend_list_item_3);
submit.setEnabled(false);
break;
default:
submit.setText(R.string.activity_my_friend_list_item_0);
}
submit.setOnClickListener(v -> follow(bean.getId() + "", submit));
}
private void follow(String targetId, Button follow) {
OTONetManager.getInstance(context)
.follow(targetId, new HttpCallback<FollowBean>() {
@Override
public void onSuccess(FollowBean data) {
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
follow.setEnabled(false);
follow.setText(R.string.activity_my_friend_list_item_2);
}
@Override
public void onError(String error) {
}
});
}
}
}

View File

@@ -39,10 +39,19 @@ public class HomeItemBean extends BaseModel {
private int age;
private int level;
private int is_accost;
private int isAttention;//isAttention 0 未关注 1被关注 2已关注 3互相关注
public HomeItemBean() {
}
public int getIsAttention() {
return isAttention;
}
public void setIsAttention(int isAttention) {
this.isAttention = isAttention;
}
public int getId() {
return id;
}

View File

@@ -0,0 +1,36 @@
package com.shayu.onetoone.bean;
import com.yunbao.common.bean.BaseModel;
public class PeopleNum extends BaseModel {
int fans;
int follow;
int friend;
public PeopleNum() {
}
public int getFans() {
return fans;
}
public void setFans(int fans) {
this.fans = fans;
}
public int getFollow() {
return follow;
}
public void setFollow(int follow) {
this.follow = follow;
}
public int getFriend() {
return friend;
}
public void setFriend(int friend) {
this.friend = friend;
}
}

View File

@@ -23,6 +23,7 @@ import com.shayu.onetoone.bean.MatchingInfoBean;
import com.shayu.onetoone.bean.MatchingItemSizeBean;
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.OfficialNoticeBean;
import com.shayu.onetoone.bean.PeopleNum;
import com.shayu.onetoone.bean.PurseBean;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.bean.SystemMessageBean;
@@ -1303,4 +1304,55 @@ public class OTONetManager {
}
}).isDisposed();
}
public void getFollows(int page,HttpCallback<List<HomeItemBean>> callback) {
API.get().otoApi(mContext).
getFollows(page+"")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}, throwable -> {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}).isDisposed();
}
public void getFans(int page,HttpCallback<List<HomeItemBean>> callback) {
API.get().otoApi(mContext).
getFans(page+"")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}, throwable -> {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}).isDisposed();
}
public void getPeopleNum(HttpCallback<PeopleNum> callback) {
API.get().otoApi(mContext).
getPeopleNum()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}, throwable -> {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}).isDisposed();
}
}

View File

@@ -26,6 +26,7 @@ public class RouteManager {
public static final String ACTIVITY_CALL_AUDIO = "/activity/CallVAudioActivity";
public static final String PATH_EDITPROFILE = "/main/EditProfileActivity";
public static final String ACTIVITY_MATCHING = "/activity/MatchingActivity";
public static final String ACTIVITY_MY_FRIEND_LIST = "/activity/MyFriendListActivity";
//设置基本资料
public static final String ACTIVITY_COMPLETE = "/activity/CompleteActivity";

View File

@@ -18,6 +18,7 @@ import com.shayu.onetoone.bean.MatchingInfoBean;
import com.shayu.onetoone.bean.MatchingItemSizeBean;
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.OfficialNoticeBean;
import com.shayu.onetoone.bean.PeopleNum;
import com.shayu.onetoone.bean.PurseBean;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.bean.SystemMessageBean;
@@ -344,6 +345,13 @@ public interface OneToOneApi {
@GET("/api/public/?service=Friendappuser.friend")
Observable<ResponseModel<List<HomeItemBean>>> getFriends(@Query("p")String p);
@GET("/api/public/?service=Friendappuser.follow")
Observable<ResponseModel<List<HomeItemBean>>> getFollows(@Query("p")String p);
@GET("/api/public/?service=Friendappuser.fans")
Observable<ResponseModel<List<HomeItemBean>>> getFans(@Query("p")String p);
@GET("/api/public/?service=Friendappuser.peopleNum")
Observable<ResponseModel<PeopleNum>> getPeopleNum();
}