diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml
index 84e2ac6ad..9a425095e 100644
--- a/OneToOne/src/main/AndroidManifest.xml
+++ b/OneToOne/src/main/AndroidManifest.xml
@@ -172,6 +172,9 @@
+
> {
+
+ @Override
+ public void onSuccess(List 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) {
+
+ }
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
index 6465ac26e..f6a4310df 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
@@ -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 {
+ 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() {
+ @Override
+ public void onSuccess(PeopleNum data) {
+ fansNum.setText(data.getFans() + "");
+ followNum.setText(data.getFollow() + "");
+ friendNum.setText(data.getFriend() + "");
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/MyFriendListAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/MyFriendListAdapter.java
new file mode 100644
index 000000000..9885a6d62
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/MyFriendListAdapter.java
@@ -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 {
+ List list;
+ Context context;
+
+ public MyFriendListAdapter(Context context) {
+ this.context = context;
+ list=new ArrayList<>();
+ }
+
+ public void setList(List 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 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() {
+ @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) {
+
+ }
+ });
+ }
+ }
+
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/HomeItemBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/HomeItemBean.java
index 24d3ee4cd..c2f9ce65f 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/bean/HomeItemBean.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/HomeItemBean.java
@@ -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;
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/PeopleNum.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/PeopleNum.java
new file mode 100644
index 000000000..679413870
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/PeopleNum.java
@@ -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;
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
index 27e169fcc..94fb68011 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java
@@ -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> 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> 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 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();
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
index ecfd4a37f..23f48f3c6 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
@@ -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";
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
index e67aea458..3749aaae0 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java
@@ -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>> getFriends(@Query("p")String p);
+ @GET("/api/public/?service=Friendappuser.follow")
+ Observable>> getFollows(@Query("p")String p);
+ @GET("/api/public/?service=Friendappuser.fans")
+ Observable>> getFans(@Query("p")String p);
+
+ @GET("/api/public/?service=Friendappuser.peopleNum")
+ Observable> getPeopleNum();
}
diff --git a/OneToOne/src/main/res/drawable/bg_my_follow_btn.xml b/OneToOne/src/main/res/drawable/bg_my_follow_btn.xml
new file mode 100644
index 000000000..b7b358f44
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_my_follow_btn.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn2.xml b/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn2.xml
new file mode 100644
index 000000000..5a951e350
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn2.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn3.xml b/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn3.xml
new file mode 100644
index 000000000..bb3428575
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_rect_round_tag_btn3.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_choose_label.xml b/OneToOne/src/main/res/layout/activity_choose_label.xml
index 7fce6b30d..f2812147d 100644
--- a/OneToOne/src/main/res/layout/activity_choose_label.xml
+++ b/OneToOne/src/main/res/layout/activity_choose_label.xml
@@ -12,7 +12,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
- android:layout_marginTop="15dp"
+ android:layout_marginTop="@dimen/activity_top"
android:padding="10dp"
android:text="@string/layout_choose_label_tip1"
android:textColor="@color/black2"
diff --git a/OneToOne/src/main/res/layout/activity_my_follow.xml b/OneToOne/src/main/res/layout/activity_my_follow.xml
new file mode 100644
index 000000000..00a4ce166
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_my_follow.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/fragment_my.xml b/OneToOne/src/main/res/layout/fragment_my.xml
index e818674e0..6b423b6f7 100644
--- a/OneToOne/src/main/res/layout/fragment_my.xml
+++ b/OneToOne/src/main/res/layout/fragment_my.xml
@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ xmlns:tools="http://schemas.android.com/tools"
android:background="@color/gray2"
android:orientation="vertical"
android:paddingBottom="10dp">
@@ -69,6 +70,14 @@
android:scaleType="centerCrop"
app:autoPlay="true" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values-zh-rHK/strings.xml b/OneToOne/src/main/res/values-zh-rHK/strings.xml
index ba7ba87ce..5e339c6bc 100644
--- a/OneToOne/src/main/res/values-zh-rHK/strings.xml
+++ b/OneToOne/src/main/res/values-zh-rHK/strings.xml
@@ -247,4 +247,17 @@
添加更多
保存
+ 被關註
+ 關注
+ 互動關註
+ 人
+
+ 未關註
+ 回關
+ 已關注
+ 相互關注
+
+ 粉絲
+ 關注
+ 好友
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values-zh-rTW/strings.xml b/OneToOne/src/main/res/values-zh-rTW/strings.xml
index ba7ba87ce..5e339c6bc 100644
--- a/OneToOne/src/main/res/values-zh-rTW/strings.xml
+++ b/OneToOne/src/main/res/values-zh-rTW/strings.xml
@@ -247,4 +247,17 @@
添加更多
保存
+ 被關註
+ 關注
+ 互動關註
+ 人
+
+ 未關註
+ 回關
+ 已關注
+ 相互關注
+
+ 粉絲
+ 關注
+ 好友
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values/strings.xml b/OneToOne/src/main/res/values/strings.xml
index 6779c3750..13c0dc2bc 100644
--- a/OneToOne/src/main/res/values/strings.xml
+++ b/OneToOne/src/main/res/values/strings.xml
@@ -249,4 +249,17 @@
添加更多
保存
+ 被關註
+ 關注
+ 互動關註
+ 人
+
+ 未關註
+ 回關
+ 已關注
+ 相互關注
+
+ 粉絲
+ 關注
+ 好友
\ No newline at end of file