From 0c5533ffb3dfa4c00dd3aca21c0f36ebfce669a1 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Sat, 14 Oct 2023 10:55:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E5=AF=B9=E8=AF=9D=E6=A1=86?= =?UTF-8?q?=EF=BC=8C=E7=9B=B8=E5=86=8C=E7=9B=B8=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/ChatMessageFragment.java | 77 ++++++++++++++++--- .../com/shayu/onetoone/dialog/TipsDialog.java | 55 +++++++++---- .../listener/OnDialogClickListener.java | 4 + .../onetoone/manager/SendMessageManager.java | 15 +++- OneToOne/src/main/res/layout/dialog_tips1.xml | 7 ++ 5 files changed, 130 insertions(+), 28 deletions(-) diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java index 57b9201ff..2ebeaca08 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java @@ -12,6 +12,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -44,6 +45,7 @@ import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.interfaces.ImageResultCallback; import com.yunbao.common.interfaces.OnItemClickListener; +import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.ProcessImageUtil; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.StringUtil; @@ -54,15 +56,20 @@ import java.io.File; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Date; +import java.util.Iterator; import java.util.List; import io.rong.imkit.IMCenter; +import io.rong.imkit.config.RongConfigCenter; import io.rong.imkit.conversation.MessageListAdapter; import io.rong.imkit.conversation.extension.component.plugin.IPluginModule; import io.rong.imkit.conversation.extension.component.plugin.ImagePlugin; +import io.rong.imkit.manager.SendImageManager; import io.rong.imkit.model.UiMessage; +import io.rong.imkit.picture.PictureSelectionModel; import io.rong.imkit.picture.PictureSelector; import io.rong.imkit.picture.config.PictureMimeType; +import io.rong.imkit.picture.entity.LocalMedia; import io.rong.imlib.IRongCallback; import io.rong.imlib.RongIMClient; import io.rong.imlib.model.Conversation; @@ -246,22 +253,22 @@ public class ChatMessageFragment extends AbsConversationFragment { boolean isCamera = position == 1; SendMessageManager.sendMessageForText(targetId, "图片信息", new OnSendMessageListener() { - // PictureSelector.create(currentFragment) - // .openGallery(RongConfigCenter.conversationConfig().rc_media_selector_contain_video ? PictureMimeType.ofAll() : PictureMimeType.ofImage()) - // .loadImageEngine(RongConfigCenter.featureConfig().getKitImageEngine()) - // .setRequestedOrientation(1) - // .videoDurationLimit(RongIMClient.getInstance().getVideoLimitTime()) - // .maxSelectNum(9) - // .imageSpanCount(3) - // .isGif(true) - // .forResult(this.mRequestCode); @Override public void onSuccess(String token) { super.onSuccess(token); + ChatMessageFragment.this.token = token; if (isCamera) { - PictureSelector.create(ChatMessageFragment.this).openCamera(PictureMimeType.ofImage()); + cameraUtil.getImageByCamera(false); } else { - PictureSelector.create(ChatMessageFragment.this).openGallery(PictureMimeType.ofImage()); + PictureSelector.create(ChatMessageFragment.this) + .openGallery(PictureMimeType.ofImage()) + .loadImageEngine(RongConfigCenter.featureConfig().getKitImageEngine()) + .setRequestedOrientation(1) + .videoDurationLimit(RongIMClient.getInstance().getVideoLimitTime()) + .maxSelectNum(9) + .imageSpanCount(3) + .isGif(true) + .forResult(110); } } @@ -400,6 +407,7 @@ public class ChatMessageFragment extends AbsConversationFragment { @Override public void onSuccess(Message message) { + SendMessageManager.onCallSuccess(token, null); } @Override @@ -560,6 +568,51 @@ public class ChatMessageFragment extends AbsConversationFragment { @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); - ToastUtil.show("收到回调"); + if (requestCode == 110) { + List selectList = PictureSelector.obtainMultipleResult(data); + if (selectList != null && selectList.size() > 0) { + boolean sendOrigin = ((LocalMedia) selectList.get(0)).isOriginal(); + for (LocalMedia item : selectList) { + String mimeType = item.getMimeType(); + if (mimeType.startsWith("image")) { + ImageMessage imageMessage=ImageMessage.obtain(Uri.parse(item.getPath()),sendOrigin); + Message message = Message.obtain(targetId, conversationType, imageMessage); + message.setSenderUserId(CommonAppConfig.getInstance().getUid()); + message.setObjectName("RC:ImgMsg"); + message.setExtra(""); + message.setSentTime(new Date().getTime()); + message.setTargetId(targetId); + IMCenter.getInstance().sendMediaMessage(message, null, null, new IRongCallback.ISendMediaMessageCallback() { + + @Override + public void onProgress(Message message, int progress) { + + } + + @Override + public void onCanceled(Message message) { + + } + + @Override + public void onAttached(Message message) { + + } + + @Override + public void onSuccess(Message message) { + SendMessageManager.onCallSuccess(token, null); + } + + @Override + public void onError(Message message, RongIMClient.ErrorCode errorCode) { + ToastUtil.show(R.string.system_tip_failure); + System.out.println("发送失败:" + errorCode.getMessage()); + } + }); + } + } + } + } } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/dialog/TipsDialog.java b/OneToOne/src/main/java/com/shayu/onetoone/dialog/TipsDialog.java index 6e9fda8c9..da301d725 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/dialog/TipsDialog.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/dialog/TipsDialog.java @@ -1,6 +1,8 @@ package com.shayu.onetoone.dialog; import android.content.Context; +import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; @@ -15,8 +17,11 @@ import com.yunbao.common.utils.StringUtil; public class TipsDialog extends AbsDialogCenterPopupWindow { private String title, content; private OnDialogClickListener onDialogClickListener; - TextView mTitle,mContent; - Button mCancel,mApply; + TextView mTitle, mContent; + Button mCancel, mApply; + ViewGroup viewGroup; + View contentView; + String cancelText, applyText; public TipsDialog(@NonNull Context context) { super(context); @@ -32,6 +37,21 @@ public class TipsDialog extends AbsDialogCenterPopupWindow { return this; } + public TipsDialog setContentView(View contentView) { + this.contentView = contentView; + return this; + } + + public TipsDialog setCancelText(String cancelText) { + this.cancelText = cancelText; + return this; + } + + public TipsDialog setApplyText(String applyText) { + this.applyText = applyText; + return this; + } + public TipsDialog setOnDialogClickListener(OnDialogClickListener onDialogClickListener) { this.onDialogClickListener = onDialogClickListener; return this; @@ -50,29 +70,38 @@ public class TipsDialog extends AbsDialogCenterPopupWindow { @Override protected void onCreate() { super.onCreate(); - mTitle=findViewById(R.id.title); - mContent=findViewById(R.id.content); - mCancel=findViewById(R.id.cancel); - mApply=findViewById(R.id.apply); + mTitle = findViewById(R.id.title); + mContent = findViewById(R.id.content); + mCancel = findViewById(R.id.cancel); + mApply = findViewById(R.id.apply); + viewGroup = findViewById(R.id.content_layout); - if(StringUtil.isEmpty(title)){ + if (StringUtil.isEmpty(title)) { mTitle.setVisibility(GONE); - }else{ + } else { mTitle.setText(title); } - if(StringUtil.isEmpty(content)){ + if (StringUtil.isEmpty(content)) { mContent.setVisibility(GONE); - }else{ + } else { mContent.setText(content); } + if (contentView != null) { + viewGroup.addView(contentView); + if (onDialogClickListener != null) { + onDialogClickListener.onCreateView(contentView); + } + } + mCancel.setText(cancelText); + mApply.setText(applyText); mCancel.setOnClickListener(v -> { - if(onDialogClickListener!=null){ + if (onDialogClickListener != null) { onDialogClickListener.onCancel(dialog); } dismiss(); }); - mApply.setOnClickListener(v ->{ - if(onDialogClickListener!=null){ + mApply.setOnClickListener(v -> { + if (onDialogClickListener != null) { onDialogClickListener.onApply(dialog); } dismiss(); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/listener/OnDialogClickListener.java b/OneToOne/src/main/java/com/shayu/onetoone/listener/OnDialogClickListener.java index 759de8941..e0318f43e 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/listener/OnDialogClickListener.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/listener/OnDialogClickListener.java @@ -1,6 +1,7 @@ package com.shayu.onetoone.listener; import android.app.Dialog; +import android.view.View; public abstract class OnDialogClickListener { public void onCancel(Dialog dialog){ @@ -8,5 +9,8 @@ public abstract class OnDialogClickListener { } public void onApply(Dialog dialog){ + } + public void onCreateView(View itemView){ + } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java index 522680946..64d78b162 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java @@ -4,6 +4,7 @@ import com.shayu.onetoone.bean.MessageConsumeConfigBean; import com.shayu.onetoone.listener.OnSendMessageListener; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.utils.ToastUtil; import java.util.HashMap; import java.util.Map; @@ -105,17 +106,25 @@ public class SendMessageManager { @Override public void onSuccess(HttpCallbackModel sd) { if (sd.getCode() != 0) { - listener.onSuccess(sd.getMsg()); + if(listener!=null) { + listener.onSuccess(sd.getMsg()); + } } else { cache.remove(token); - listener.onSuccess(null); + if(listener!=null) { + listener.onSuccess(null); + } } } @Override public void onError(String error) { - listener.onError(OnSendMessageListener.STATUS_ERROR, error); + ToastUtil.show(error); + System.err.println(error); + if(listener!=null) { + listener.onError(OnSendMessageListener.STATUS_ERROR, error); + } } } ); diff --git a/OneToOne/src/main/res/layout/dialog_tips1.xml b/OneToOne/src/main/res/layout/dialog_tips1.xml index fcd2980ed..3203eeae6 100644 --- a/OneToOne/src/main/res/layout/dialog_tips1.xml +++ b/OneToOne/src/main/res/layout/dialog_tips1.xml @@ -17,6 +17,12 @@ android:textColor="#333333" android:textSize="18sp" android:textStyle="bold" /> + + + + Date: Sat, 14 Oct 2023 18:23:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E6=8E=92=E8=A1=8C=E6=A6=9C=20?= =?UTF-8?q?=E7=AD=9B=E9=80=89=20=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OneToOne/src/main/AndroidManifest.xml | 3 +- .../onetoone/activity/HomeScreenActivity.java | 97 ++++++ .../onetoone/activity/HomeSearchActivity.java | 119 +++++++ .../activity/fragments/FriendsFragment.java | 9 +- .../activity/fragments/home/HotFragment.java | 18 +- .../fragments/home/RecommendFragment.java | 77 ++++- .../message/ChatMessageFragment.java | 2 +- .../onetoone/adapter/HomeHotListAdapter.java | 7 +- .../adapter/HomeRecommendListAdapter.java | 7 +- .../MsgMessageRecyclerViewAdapter.java | 3 + .../shayu/onetoone/manager/OTONetManager.java | 61 +++- .../shayu/onetoone/manager/RouteManager.java | 11 + .../shayu/onetoone/network/OneToOneApi.java | 26 +- .../main/res/drawable/bg_home_search_btn.xml | 4 +- .../res/drawable/bg_home_search_checked.xml | 5 + .../src/main/res/layout/activity_screen.xml | 307 ++++++++++++++++++ .../src/main/res/layout/activity_search.xml | 304 +++++------------ .../main/res/layout/fragment_recommend.xml | 11 + .../src/main/res/layout/view_empty_list.xml | 26 ++ .../main/res/mipmap-xxhdpi/ic_empty_list.png | Bin 0 -> 74771 bytes .../src/main/res/mipmap-xxhdpi/ic_refresh.png | Bin 0 -> 8993 bytes OneToOne/src/main/res/values/dimens.xml | 2 +- .../com/yunbao/common/utils/StringUtil.java | 9 + 23 files changed, 848 insertions(+), 260 deletions(-) create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/HomeScreenActivity.java create mode 100644 OneToOne/src/main/res/drawable/bg_home_search_checked.xml create mode 100644 OneToOne/src/main/res/layout/activity_screen.xml create mode 100644 OneToOne/src/main/res/layout/view_empty_list.xml create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_empty_list.png create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_refresh.png diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml index ea4b1a185..7e4bfd6a8 100644 --- a/OneToOne/src/main/AndroidManifest.xml +++ b/OneToOne/src/main/AndroidManifest.xml @@ -141,7 +141,8 @@ - + + { + String age = getRadioButtonValue(ageRadioGroup); + String sex = getRadioButton(sexRadioGroup).getTag().toString(); + String auth = getRadioButtonValue(authRadioGroup); + if (isRadioButtonEmpty(ageRadioGroup)) { + age = ""; + } + if (isRadioButtonEmpty(authRadioGroup)) { + auth = ""; + } + if (sex.equals("all")) { + sex = ""; + } + if (StringUtil.isEmptyAll(age, auth, sex)) { + RouteManager.forwardMainActivity(); + } else { + Bundle bundle = new Bundle(); + bundle.putString("age", age); + bundle.putString("sex", sex); + bundle.putString("auth", auth); + RouteManager.forwardMainActivityForScreen(bundle); + } + }); + tvSearch.setOnClickListener(v -> { + String search = etSearch.getText().toString(); + if(StringUtil.isEmpty(search)){ + ToastUtil.show("空的不能搜索"); + return; + } + Bundle bundle=new Bundle(); + bundle.putString("search",search); + RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SEARCH,bundle); + }); + } + + String getRadioButtonValue(FlexBoxRadioGroup group) { + return ((RadioButton) findViewById(group.getCheckedRadioButtonId())).getText().toString(); + } + + boolean isRadioButtonEmpty(FlexBoxRadioGroup group) { + RadioButton button = (RadioButton) findViewById(group.getCheckedRadioButtonId()); + if (button.getTag() == null) { + return false; + } + return button.getTag().toString().equals("all"); + } + + RadioButton getRadioButton(FlexBoxRadioGroup group) { + return findViewById(group.getCheckedRadioButtonId()); + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java index 596cd6e78..c294bb216 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java @@ -1,13 +1,44 @@ package com.shayu.onetoone.activity; import android.os.Bundle; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; import com.shayu.onetoone.R; +import com.shayu.onetoone.adapter.HomeHotListAdapter; +import com.shayu.onetoone.adapter.HomeRecommendListAdapter; +import com.shayu.onetoone.bean.HomeItemBean; +import com.shayu.onetoone.manager.OTONetManager; import com.shayu.onetoone.manager.RouteManager; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.utils.StringUtil; +import com.yunbao.common.utils.ToastUtil; + +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.wrapper.RongRefreshHeader; @Route(path = RouteManager.ACTIVITY_HOME_SEARCH) public class HomeSearchActivity extends AbsOTOActivity { + View viewEmpty; + View refresh; + SmartRefreshLayout swipeRefreshLayout; + RecyclerView searchList; + RecyclerView recommendList; + EditText edit; + TextView searchBtn; + int page = 1; + HomeRecommendListAdapter searchListAdapter; + HomeHotListAdapter recommendListAdapter; + @Override protected int getLayoutId() { return R.layout.activity_search; @@ -15,6 +46,94 @@ public class HomeSearchActivity extends AbsOTOActivity { @Override protected void main(Bundle savedInstanceState) { + viewEmpty = findViewById(R.id.view_empty); + refresh = findViewById(R.id.refresh); + swipeRefreshLayout = findViewById(R.id.swipeRefreshLayout); + searchList = findViewById(R.id.searchList); + recommendList = findViewById(R.id.recommendList); + edit = findViewById(R.id.edit); + searchBtn = findViewById(R.id.search); + searchListAdapter = new HomeRecommendListAdapter(this); + recommendListAdapter = new HomeHotListAdapter(this); + + swipeRefreshLayout.autoLoadMore(); + swipeRefreshLayout.setEnableRefresh(false); + swipeRefreshLayout.setRefreshFooter(new RongRefreshHeader(this)); + swipeRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + page++; + search(edit.getText().toString()); + } + }); + + searchList.setAdapter(searchListAdapter); + recommendList.setAdapter(recommendListAdapter); + + + refresh.setOnClickListener(v -> refresh()); + + searchBtn.setOnClickListener(v -> search(edit.getText().toString())); + + edit.setText(getIntent().getBundleExtra("bundle").getString("search")); + search(edit.getText().toString()); + refresh(); + } + + private void search(String key) { + if (StringUtil.isEmpty(key)) { + ToastUtil.show("不能为空"); + return; + } + OTONetManager.getInstance(mContext) + .search(key, + "", + "", + "", + page + "", + new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (page == 1 && data.isEmpty()) { + searchList.setVisibility(View.GONE); + viewEmpty.setVisibility(View.VISIBLE); + return; + } + viewEmpty.setVisibility(View.GONE); + searchList.setVisibility(View.VISIBLE); + if (page != 1 && data.isEmpty()) { + page--; + swipeRefreshLayout.finishLoadMore(); + return; + } + if (page == 1) { + searchListAdapter.setList(data); + } else { + searchListAdapter.addLst(data); + } + } + + @Override + public void onError(String error) { + + } + } + ); + } + + private void refresh() { + OTONetManager.getInstance(this) + .getSearchRecommend(new HttpCallback>() { + @Override + public void onSuccess(List data) { + recommendListAdapter.setList(data); + } + + @Override + public void onError(String error) { + + } + }); } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java index 19a4a89e6..f79196adc 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java @@ -46,10 +46,13 @@ public class FriendsFragment extends BaseFragment { return fragments.size(); } }); - findViewById(R.id.btn_top).setOnClickListener(v ->{ - RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_RANK); + findViewById(R.id.btn_top).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_RANK)); + findViewById(R.id.btn_filter).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SCREEN)); - }); + Bundle screen = getActivity().getIntent().getBundleExtra("screen"); + if(screen!=null){ + viewPager2.setCurrentItem(0); + } } @Override diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HotFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HotFragment.java index 3299b6255..a849ba312 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HotFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HotFragment.java @@ -27,6 +27,7 @@ public class HotFragment extends BaseFragment { SmartRefreshLayout mRefreshLayout; SwipeRecyclerView recyclerView; HomeHotListAdapter adapter; + private int page = 1; @Override public void initView(View itemView) { @@ -47,24 +48,37 @@ public class HotFragment extends BaseFragment { onConversationListLoadMore(); } }); + page = 1; initData(); } private void onConversationListLoadMore() { + page++; + initData(); mRefreshLayout.finishLoadMore(); } private void onConversationListRefresh(RefreshLayout refreshLayout) { + page = 1; initData(); refreshLayout.finishRefresh(); } private void initData() { OTONetManager.getInstance(mContext) - .getHomeHot(new HttpCallback>() { + .getHomeHot(page + "", new HttpCallback>() { @Override public void onSuccess(List data) { - adapter.setList(data); + if (page != 1 && data.isEmpty()) { + page--; + mRefreshLayout.finishLoadMore(); + return; + } + if (page != 1) { + adapter.addList(data); + } else { + adapter.setList(data); + } } @Override diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/RecommendFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/RecommendFragment.java index 9d3dbc0f0..82fc34214 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/RecommendFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/RecommendFragment.java @@ -1,6 +1,5 @@ package com.shayu.onetoone.activity.fragments.home; -import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -9,9 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import com.shayu.onetoone.R; -import com.shayu.onetoone.activity.HomeSearchActivity; import com.shayu.onetoone.activity.fragments.BaseFragment; -import com.shayu.onetoone.activity.HomepageRankingActivity; import com.shayu.onetoone.adapter.HomeRecommendListAdapter; import com.shayu.onetoone.bean.HomeItemBean; import com.shayu.onetoone.manager.OTONetManager; @@ -31,6 +28,9 @@ public class RecommendFragment extends BaseFragment { SwipeRecyclerView recyclerView; HomeRecommendListAdapter adapter; View top; + private int page = 1; + private boolean isScreen; + Bundle screen; @Override public void initView(View itemView) { @@ -42,8 +42,10 @@ public class RecommendFragment extends BaseFragment { mRefreshLayout.setNestedScrollingEnabled(false); mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext())); mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext())); + recyclerView.setEmptyView(itemView.findViewById(R.id.view_empty)); mRefreshLayout.setOnRefreshListener(new OnRefreshListener() { public void onRefresh(@NonNull RefreshLayout refreshLayout) { + page = 1; onConversationListRefresh(refreshLayout); } }); @@ -53,13 +55,63 @@ public class RecommendFragment extends BaseFragment { } }); top.setOnClickListener(view -> { - // recyclerView.scrollToPosition(0); - startActivity(new Intent(getContext(), HomeSearchActivity.class)); + recyclerView.scrollToPosition(0); }); - initData(); + screen = getActivity().getIntent().getBundleExtra("screen"); + if (screen != null) { + if (!isScreen) { + page = 1; + } + isScreen = true; + screen(screen); + mRefreshLayout.setEnableRefresh(false); + } else { + if (isScreen) { + page = 1; + } + isScreen = false; + initData(); + } + } + + private void screen(Bundle screen) { + OTONetManager.getInstance(mContext) + .search("", + screen.getString("age", ""), + screen.getString("auth", ""), + screen.getString("sex", ""), + page + "", + new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (page != 1 && data.isEmpty()) { + page--; + mRefreshLayout.finishLoadMore(); + return; + } + if (page != 1) { + adapter.addLst(data); + } else { + adapter.setList(data); + } + mRefreshLayout.finishRefresh(); + } + + @Override + public void onError(String error) { + + } + } + ); } private void onConversationListLoadMore() { + page++; + if (isScreen) { + screen(screen); + } else { + initData(); + } mRefreshLayout.finishLoadMore(); } @@ -69,10 +121,19 @@ public class RecommendFragment extends BaseFragment { private void initData() { OTONetManager.getInstance(mContext) - .getHomeRecommend(new HttpCallback>() { + .getHomeRecommend(page + "", new HttpCallback>() { @Override public void onSuccess(List data) { - adapter.setList(data); + if (page != 1 && data.isEmpty()) { + page--; + mRefreshLayout.finishLoadMore(); + return; + } + if (page != 1) { + adapter.addLst(data); + } else { + adapter.setList(data); + } mRefreshLayout.finishRefresh(); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java index 2ebeaca08..895a0bbcd 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java @@ -292,7 +292,7 @@ public class ChatMessageFragment extends AbsConversationFragment { .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback() { @Override public void onSuccess(UserBean data) { - if (data.getInfo().getSage_auth() == 1) { + if (data.getInfo().getName_auth() == 1) { listener.onError(0, ""); } else { listener.onSuccess(""); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeHotListAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeHotListAdapter.java index f795efe9e..fb325e7da 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeHotListAdapter.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeHotListAdapter.java @@ -42,7 +42,7 @@ public class HomeHotListAdapter extends RecyclerView.Adapter data) { + list.addAll(data); + notifyDataSetChanged(); + } + public class ViewHolder extends RecyclerView.ViewHolder { private RoundedImageView avatar; private ImageView status; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRecommendListAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRecommendListAdapter.java index eef188e85..00d30a291 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRecommendListAdapter.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRecommendListAdapter.java @@ -52,6 +52,11 @@ public class HomeRecommendListAdapter extends RecyclerView.Adapter data) { + this.list.addAll(data); + notifyDataSetChanged(); + } + public class ViewHolder extends RecyclerView.ViewHolder { private RoundedImageView avatar; private ImageView chat; @@ -88,7 +93,7 @@ public class HomeRecommendListAdapter extends RecyclerView.Adapter> callback) { + public void getHomeHot(String page,HttpCallback> callback) { API.get().otoApi(mContext) - .getHomeHot() + .getHomeHot(page) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>>() { @@ -489,10 +489,10 @@ public class OTONetManager { }).isDisposed(); } - public void getHomeRecommend(HttpCallback> callback) { + public void getHomeRecommend(String page,HttpCallback> callback) { API.get().otoApi(mContext) - .getHomeRecommend() + .getHomeRecommend(page) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>>() { @@ -651,10 +651,11 @@ public class OTONetManager { } }).isDisposed(); } - public void getHomeRank(String type,String date, HttpCallback> callback) { + + public void getHomeRank(String type, String date, HttpCallback> callback) { API.get().otoApi(mContext) - .getHomeRank(type,date) + .getHomeRank(type, date) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(model -> { @@ -672,6 +673,54 @@ public class OTONetManager { }).isDisposed(); } + public void search(String keyword, + String age, + String name_auth, + String sex, + String page, + HttpCallback> callback) { + + API.get().otoApi(mContext) + .search(keyword, age, name_auth, sex, "",page) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(model -> { + if (callback != null) { + callback.onSuccess(model.getData().getInfo()); + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + Log.e(TAG, "accept: ", throwable); + if (callback != null) { + callback.onError(mContext.getString(com.yunbao.common.R.string.net_error)); + } + } + }).isDisposed(); + } + public void getSearchRecommend(HttpCallback> callback) { + + API.get().otoApi(mContext) + .getSearchRecommend() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> model) throws Exception { + if (callback != null) { + callback.onSuccess(model.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + Log.e(TAG, "accept: ", throwable); + if (callback != null) { + callback.onError(mContext.getString(com.yunbao.common.R.string.net_error)); + } + } + }).isDisposed(); + } private MultipartBody.Part createUploadFile(File file) { RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); return MultipartBody.Part.createFormData("file", file.getName(), requestBody); 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 de76aa332..600c50d8b 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java @@ -16,11 +16,17 @@ public class RouteManager { public static final String ACTIVITY_WEB_VIEW = "/activity/WebViewActivity"; public static final String ACTIVITY_HOME_RANK = "/activity/HomepageRankingActivity"; public static final String ACTIVITY_HOME_SEARCH = "/activity/HomeSearchActivity"; + public static final String ACTIVITY_HOME_SCREEN = "/activity/HomeScreenActivity"; public static void forwardMainActivity() { ARouter.getInstance().build(ACTIVITY_MAIN) .navigation(); } + public static void forwardMainActivityForScreen(Bundle bundle) { + ARouter.getInstance().build(ACTIVITY_MAIN) + .withBundle("screen",bundle) + .navigation(); + } public static void forwardMsgMoreConfigActivity() { ARouter.getInstance().build(ACTIVITY_MSG_MORE_CONFIG_ACTIVITY) @@ -52,6 +58,11 @@ public class RouteManager { ARouter.getInstance().build(path) .navigation(); } + public static void forwardActivity(String path,Bundle bundle) { + ARouter.getInstance().build(path) + .withBundle("bundle",bundle) + .navigation(); + } } 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 4b2e5be9f..b053c73b4 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java @@ -113,10 +113,10 @@ public interface OneToOneApi { Observable>> getTargetUserInfoList(@Query("ids") String ids); @GET("/api/public/?service=Friendappuser.hot") - Observable>> getHomeHot(); + Observable>> getHomeHot(@Query("p") String p); @GET("/api/public/?service=Friendappuser.recommend") - Observable>> getHomeRecommend(); + Observable>> getHomeRecommend(@Query("p") String p); @GET("/api/public/?service=Message.getListInfo") Observable>> getSystemMessageList(@Query("type") int type); @@ -137,24 +137,36 @@ public interface OneToOneApi { @GET("/api/public/?service=Friendappmsg.giftList") Observable>> getGiftList(); + @GET("/api/public/?service=Friendappmoney.info") Observable> getPurseInfo(); + @GET("/api/public/?service=User.setAttents") - Observable>> follow(@Query("touid")String toUid); + Observable>> follow(@Query("touid") String toUid); /** - * * @param type 1魅力榜 2财富榜 * @param date 1日榜 2周榜 */ @GET("/api/public/?service=Friendapprank.list") Observable>> getHomeRank( - @Query("type")String type, - @Query("date")String date + @Query("type") String type, + @Query("date") String date + ); + + @GET("/api/public/?service=Friendappuser.list") + Observable>> search( + @Query("keyword") String keyword, + @Query("age") String age, + @Query("name_auth") String name_auth, + @Query("sex") String sex, + @Query("star") String star, + @Query("p") String p ); - + @GET("/api/public/?service=Friendappuser.like") + Observable>> getSearchRecommend(); } diff --git a/OneToOne/src/main/res/drawable/bg_home_search_btn.xml b/OneToOne/src/main/res/drawable/bg_home_search_btn.xml index 09a9ef524..66e3caa0c 100644 --- a/OneToOne/src/main/res/drawable/bg_home_search_btn.xml +++ b/OneToOne/src/main/res/drawable/bg_home_search_btn.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/OneToOne/src/main/res/drawable/bg_home_search_checked.xml b/OneToOne/src/main/res/drawable/bg_home_search_checked.xml new file mode 100644 index 000000000..09a9ef524 --- /dev/null +++ b/OneToOne/src/main/res/drawable/bg_home_search_checked.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/activity_screen.xml b/OneToOne/src/main/res/layout/activity_screen.xml new file mode 100644 index 000000000..ff0aa2e5e --- /dev/null +++ b/OneToOne/src/main/res/layout/activity_screen.xml @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +