diff --git a/app/src/main/java/com/kanglai/push/ui/activity/FindUsersActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/FindUsersActivity.java index a75ec93..d918cb8 100644 --- a/app/src/main/java/com/kanglai/push/ui/activity/FindUsersActivity.java +++ b/app/src/main/java/com/kanglai/push/ui/activity/FindUsersActivity.java @@ -1,7 +1,6 @@ package com.kanglai.push.ui.activity; import android.content.Context; -import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.InputFilter; @@ -23,17 +22,14 @@ import androidx.recyclerview.widget.RecyclerView; import com.blankj.utilcode.util.CacheDiskUtils; import com.blankj.utilcode.util.CollectionUtils; -import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.StringUtils; import com.bumptech.glide.Glide; import com.dolphin.core.BuildConfig; import com.dolphin.core.base.BaseActivity; -import com.dolphin.core.util.ToastUtil; import com.dolphin.core.widget.DefaultItemDecoration; import com.kanglai.push.BR; import com.kanglai.push.R; import com.kanglai.push.constant.CacheConstant; -import com.kanglai.push.constant.CommonConstant; import com.kanglai.push.databinding.ActivityFindUsersBinding; import com.kanglai.push.entity.ConcernFan; import com.kanglai.push.entity.LinkEntity; @@ -41,15 +37,8 @@ import com.kanglai.push.entity.User; import com.kanglai.push.ui.adapter.SearchRecyclerAdapter; import com.kanglai.push.ui.vm.FindUsersViewModel; import com.kanglai.push.util.ViewFilterUtil; -import com.kongzue.dialogx.dialogs.BottomDialog; -import com.kongzue.dialogx.dialogs.BottomMenu; import com.kongzue.dialogx.dialogs.FullScreenDialog; -import com.kongzue.dialogx.dialogs.MessageDialog; import com.kongzue.dialogx.interfaces.OnBindView; -import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener; -import com.kongzue.dialogx.interfaces.OnMenuItemClickListener; - -import java.util.List; /** * 查找各类用户 @@ -68,7 +57,6 @@ public class FindUsersActivity extends BaseActivity(R.layout.item_full_dialog_fans) { @Override public void onBind(FullScreenDialog dialog, View v) { @@ -222,7 +208,6 @@ public class FindUsersActivity extends BaseActivity mViewModel.attentionFrim(item.getId())); }else { // 用户 name.setText(item.getNikeName()+"【"+ item.getName() +"】"); text01.setText("所属部门:"+item.getDeptName()); @@ -251,16 +236,11 @@ public class FindUsersActivity extends BaseActivity { /** 加载用户列表数据 */ public void loadUserList(){ - linkService.getFriendList(MapUtils.newHashMap()) + linkService.getFriendList( + MapUtils.newHashMap(Pair.create("size","999"))) .compose(RxUtil.schedulersTransformer()) .compose(RxUtil.exceptionTransformer()) .doOnSubscribe(this) @@ -91,7 +94,7 @@ public class FindUsersViewModel extends ToolbarViewModel { } /** 加载公司列表 */ public void loadFirmList(){ - linkService.getEnterpriseList(MapUtils.newHashMap()) + linkService.getEnterpriseList(MapUtils.newHashMap(Pair.create("size","999"))) .compose(RxUtil.schedulersTransformer()) .compose(RxUtil.exceptionTransformer()) .doOnSubscribe(this) @@ -145,7 +148,15 @@ public class FindUsersViewModel extends ToolbarViewModel { protected void publishResults(CharSequence charSequence, FilterResults results) { ArrayList linkArrayList = (ArrayList) results.values; if (linkArrayList.size() != 0) { - mActivity.mAdapter.refresh(linkArrayList); + mActivity.hideKeyboard(); + WaitDialog.show(" "); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + WaitDialog.dismiss(); + mActivity.mAdapter.refresh(linkArrayList); + } + },800); }else ToastUtil.showCenter("未找到与[ " + charSequence + " ]相类似的用户"); } }; @@ -170,19 +181,19 @@ public class FindUsersViewModel extends ToolbarViewModel { protected void publishResults(CharSequence charSequence, FilterResults filterResults) { ArrayList linkArrayList = (ArrayList) filterResults.values; if (linkArrayList.size() != 0) { - mActivity.mAdapter.refresh(linkArrayList); + mActivity.hideKeyboard(); + WaitDialog.show(" "); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + WaitDialog.dismiss(); + mActivity.mAdapter.refresh(linkArrayList); + } + },800); }else ToastUtil.showCenter("未找到与[ " + charSequence + " ]相类似的企业"); } }; - /** - * 关注企业 - * todo 暂时没有业务需求 - * - * @param id - */ - public void attentionFrim(String id) { - } /** 关注好友 */ public void attentionUser(String id, FullScreenDialog dialog) { diff --git a/app/src/main/java/com/kanglai/push/util/SoftKeyboardHelper.java b/app/src/main/java/com/kanglai/push/util/SoftKeyboardHelper.java new file mode 100644 index 0000000..7123eb9 --- /dev/null +++ b/app/src/main/java/com/kanglai/push/util/SoftKeyboardHelper.java @@ -0,0 +1,110 @@ +package com.kanglai.push.util; + +import android.content.Context; +import android.content.res.Configuration; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; + +import com.blankj.utilcode.util.ScreenUtils; + +/** + * 软键盘工具类 + * @Author: liusixiang007 + * @since: 2024/1/10 + */ +public class SoftKeyboardHelper { + + public static final String TAG = "SoftKeyboard_Debug"; + private InputMethodManager imm; + private final Context context; + private int lastScreenOrientation; + + public SoftKeyboardHelper(Context context) { + this.context = context; + if (ScreenUtils.isPortrait()) { + lastScreenOrientation = Configuration.ORIENTATION_PORTRAIT; + } else { + lastScreenOrientation = Configuration.ORIENTATION_LANDSCAPE; + } + } + + /** + * 显示软键盘 + * @param view 触发软键盘的EditText + */ + public synchronized void showSoftKeyboard(EditText view) { + if (imm == null) { + imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + } + imm.showSoftInput(view, 0); + } + + /** + * 隐藏软键盘 + * + * @param view 触发软键盘的EditText + */ + public synchronized void hideSoftKeyboard(EditText view) { + if (imm == null) { + imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + } + if (view != null) { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } + + /** + * 监听软键盘弹出监听 + * @param parentLayout 父容器 + * @param softKeyboardListener 监听接口 + */ + public void setKeyboardListener(final View parentLayout, final SoftKeyboardListener softKeyboardListener) { + if (softKeyboardListener == null || parentLayout == null) { + return; + } + parentLayout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { + @Override + public void onLayoutChange(View view, int left, int top, int right, int bottom, + int oldLeft, int oldTop, int oldRight, int oldBottom) { + int screenHeight = ScreenUtils.getScreenHeight(); + int currentScreenOrientation = -1; + if (ScreenUtils.isPortrait()) { + currentScreenOrientation = Configuration.ORIENTATION_PORTRAIT; + } else { + currentScreenOrientation = Configuration.ORIENTATION_LANDSCAPE; + } + //排除横竖屏切换引起的布局变化 + if (lastScreenOrientation != currentScreenOrientation) { + lastScreenOrientation = currentScreenOrientation; + return; + } + + int defaultHeight = screenHeight / 3; + if (oldBottom != 0 && bottom != 0 && (oldBottom - bottom > defaultHeight)) { + softKeyboardListener.onSoftKeyboardShow(0); + } else if (oldBottom != 0 && bottom != 0 && (bottom - oldBottom > defaultHeight)) { + softKeyboardListener.onSoftKeyboardHide(0); + } + + } + }); + } + + /** 软键盘事件监听接口 */ + public interface SoftKeyboardListener { + /** + * 软键盘弹出监听回调 + * + * @param softKeyboardHeight 软键盘高度 + */ + void onSoftKeyboardShow(int softKeyboardHeight); + + /** + * 软键盘隐藏监听回调 + * + * @param softKeyboardHeight 软键盘高度 + */ + void onSoftKeyboardHide(int softKeyboardHeight); + } +} diff --git a/app/src/main/res/layout/activity_find_users.xml b/app/src/main/res/layout/activity_find_users.xml index 3d23af6..7f82655 100644 --- a/app/src/main/res/layout/activity_find_users.xml +++ b/app/src/main/res/layout/activity_find_users.xml @@ -154,7 +154,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"/> - + + + \ No newline at end of file