diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6a21942..37192d1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -47,8 +47,8 @@ android { applicationId = "com.hbl.lewan" minSdk = 24 targetSdk = 33 - versionCode = 214 - versionName = "2.1.4" + versionCode = 215 + versionName = "2.1.5" multiDexEnabled = true testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" manifestPlaceholders["IMAPPKEY"] = "23c9cbddd4b876908efdccd0a6f2638d" //正式 @@ -58,8 +58,8 @@ android { manifestPlaceholders["JPUSH_APPKEY"] = "9041bc22de91e3d9af3cfd23" manifestPlaceholders["JPUSH_CHANNEL"] = "developer-default" ndk { -// abiFilters += listOf("armeabi-v7a", "arm64-v8a") - abiFilters += listOf("x86","x86_64","armeabi","armeabi-v7a","arm64-v8a") + abiFilters += listOf("armeabi-v7a", "arm64-v8a") +// abiFilters += listOf("x86","x86_64","armeabi","armeabi-v7a","arm64-v8a") } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd3ad8f..b20f010 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -508,6 +508,13 @@ android:screenOrientation="portrait" android:theme="@style/TransTheme" android:windowSoftInputMode="adjustResize" /> + + >>() { + .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result> result) { LogUtils.i("result==" + result.code + "result.data==" + result.data.getList()); diff --git a/app/src/main/java/com/hbl/lewan/imkit/team/BaseTeamQrSettingActivity.java b/app/src/main/java/com/hbl/lewan/imkit/team/BaseTeamQrSettingActivity.java index d0bbf98..cd25cfe 100644 --- a/app/src/main/java/com/hbl/lewan/imkit/team/BaseTeamQrSettingActivity.java +++ b/app/src/main/java/com/hbl/lewan/imkit/team/BaseTeamQrSettingActivity.java @@ -130,7 +130,7 @@ public abstract class BaseTeamQrSettingActivity extends BaseActivity implements public List selectorlist = new ArrayList<>(); //邀請好友列表 - //群行动码 + //群二维码 public ShareDateUtils shareDateUtils; public LoginBean loginBean; public String teamId; @@ -489,7 +489,7 @@ public abstract class BaseTeamQrSettingActivity extends BaseActivity implements super.onDestroy(); } - //******************************************************群行动码处理start***************************************************************** + //******************************************************群二维码处理start***************************************************************** private ImageView coloseIv; private LinearLayout qrcodeLy; @@ -919,7 +919,7 @@ public abstract class BaseTeamQrSettingActivity extends BaseActivity implements } } - //******************************************************群行动码处理end***************************************************************** + //******************************************************群二维码处理end***************************************************************** public boolean onTouchEvent(MotionEvent event) { if (null != this.getCurrentFocus()) { /** diff --git a/app/src/main/java/com/hbl/lewan/imkit/team/TeamMembersList2Activity.java b/app/src/main/java/com/hbl/lewan/imkit/team/TeamMembersList2Activity.java new file mode 100644 index 0000000..7adf689 --- /dev/null +++ b/app/src/main/java/com/hbl/lewan/imkit/team/TeamMembersList2Activity.java @@ -0,0 +1,639 @@ +// Copyright (c) 2022 NetEase, Inc. All rights reserved. +// Use of this source code is governed by a MIT license that can be +// found in the LICENSE file. + +package com.hbl.lewan.imkit.team; + +import static com.netease.yunxin.kit.corekit.im.utils.RouterConstant.KEY_TEAM_ID; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.View; +import android.view.inputmethod.EditorInfo; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.hbl.lewan.R; +import com.hbl.lewan.databinding.ActivityTeamMembers1Binding; +import com.hbl.lewan.dialog.ActionConfirmDialog; +import com.hbl.lewan.imkit.team.adapter.TeamMembersAdapter2; +import com.hbl.lewan.network.Api; +import com.hbl.lewan.network.BaseObserver; +import com.hbl.lewan.network.Result; +import com.hbl.lewan.utils.GsonUtils; +import com.netease.nimlib.sdk.NIMClient; +import com.netease.nimlib.sdk.RequestCallback; +import com.netease.nimlib.sdk.team.TeamService; +import com.netease.nimlib.sdk.team.constant.TeamMemberType; +import com.netease.nimlib.sdk.team.model.Team; +import com.netease.nimlib.sdk.team.model.TeamMember; +import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam; +import com.netease.yunxin.kit.chatkit.repo.ContactRepo; +import com.netease.yunxin.kit.chatkit.ui.model.SwitchGroupBean; +import com.netease.yunxin.kit.chatkit.ui.model.TeamExtensionBean; +import com.netease.yunxin.kit.common.ui.utils.ToastX; +import com.netease.yunxin.kit.common.utils.NetworkUtils; +import com.netease.yunxin.kit.corekit.im.IMKitClient; +import com.netease.yunxin.kit.corekit.im.model.UserInfo; +import com.netease.yunxin.kit.corekit.im.utils.RouterConstant; +import com.netease.yunxin.kit.corekit.route.XKitRouter; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +/** + * 群聊成员页面 (编辑群员,群主转让那) 这快逻辑有点乱 + */ +public class TeamMembersList2Activity extends BaseTeamQrSettingActivity { + + public static final String ISMANAGER = "isManager"; + public static final String LISTUSERINFOS = "listUserInfos"; + public static final String TEAMINFO = "teamInfo"; + public static final String TYPE = "type"; + public static final String QUITE = "quite"; + public static final String TEAMQR = "teamQr"; + public int type; //0查看群成员,1 群主转让 + public int quite; //0 转让退群 1 只转让 + public boolean isRefresh = false; //是否刷新设置页 + public boolean teamQr = true; + public List listSearch = new ArrayList<>(); + public int isAllowAdd = 1; + List switchGroupBeans = new ArrayList<>(); + + public static void launch(Context context, int isManager, boolean isShowTeamQR, String teamId, List userInfos, Team team, @NonNull ActivityResultLauncher launcher) { + Intent intent = new Intent(context, TeamMembersList2Activity.class); + intent.putExtra(ISMANAGER, isManager); + intent.putExtra(TYPE, 0); + intent.putExtra(TEAMQR, isShowTeamQR); + intent.putExtra(KEY_TEAM_ID, teamId); + intent.putExtra(LISTUSERINFOS, (Serializable) userInfos); + intent.putExtra(TEAMINFO, (Serializable) team); + launcher.launch(intent); + } + + public static void launch(Context context, int isQuit, String teamId, List userInfos, @NonNull ActivityResultLauncher launcher) { + Intent intent = new Intent(context, TeamMembersList2Activity.class); + intent.putExtra(KEY_TEAM_ID, teamId); + intent.putExtra(TYPE, 1); + intent.putExtra(QUITE, isQuit); + intent.putExtra(LISTUSERINFOS, (Serializable) userInfos); + launcher.launch(intent); + } + + + ActivityTeamMembers1Binding binding; + private int isManager = 0; // 1 群主 2 管理员 + private Team teamInfo; + private String teamOwnerId; //群主id; + + private TeamMembersAdapter2 membersAdapter; + private TeamExtensionBean extensionBean; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); +// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); +// getWindow().setNavigationBarColor(getResources().getColor(com.netease.yunxin.kit.chatkit.ui.R.color.color_white)); + isManager = getIntent().getIntExtra(ISMANAGER, 0); + teamInfo = (Team) getIntent().getSerializableExtra(TEAMINFO); + type = getIntent().getIntExtra(TYPE, 0); + quite = getIntent().getIntExtra(QUITE, 0); + List list = (List) getIntent().getSerializableExtra(LISTUSERINFOS); + teamQr = getIntent().getBooleanExtra(TEAMQR, true); + + if (teamInfo != null) { + teamOwnerId = teamInfo.getCreator(); + if (!TextUtils.isEmpty(teamInfo.getExtension())) { + extensionBean = GsonUtils.getObjFromJSON(teamInfo.getExtension(), TeamExtensionBean.class); + if (extensionBean == null) { + extensionBean = new TeamExtensionBean(Integer.parseInt(teamInfo.getExtension()), 0); + } + } else { + extensionBean = new TeamExtensionBean(1, 0); + } + isAllowAdd = extensionBean.getAllowAddFriends(); + } + if (list != null && list.size() > 0) { + + listmemebers.clear(); + listmemebers.addAll(list); + } else { + if (NetworkUtils.isConnected()) { + showLoading(); + //重新获取群成员 + teammodel.getUserInfoData().observe(this, listResultInfo -> { + dismissLoading(); + if (listResultInfo.getSuccess()) { +// getTeamActiveTime(); + List listmember = listResultInfo.getValue(); + listmemebers.clear(); + listmember = sortListMembers(listmember); + for (UserInfoWithTeam userinfo : listmember) { +// LogUtils.i("走了333333333355555555555:"+GsonUtils.beanToJSONString(userinfo)); + + UserInfo userInfos = userinfo.getUserInfo(); + userInfos.setSignature(userinfo.getTeamInfo().isMute() ? "1" : ""); + listmemebers.add(userInfos); + } + setData(); + + } + }); + teammodel.requestTeamMembers(teamId); + } + + } + initView(); + initData(); + } + + + @Override + public View getContentView() { + binding = ActivityTeamMembers1Binding.inflate(getLayoutInflater()); + return binding.getRoot(); + } + + + Map memberMap; + + public void getTeamActiveTime() { + if (isManager != 0 && type == 0) { + Api.getInstance().teamMemberActiveTime(teamId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver>>() { + @Override + public void onSuccess(Result> feedbackResp) { +// LogUtils.d("dddd" + feedbackResp.data); +// LogUtils.i("走了333333333366666666:"); + + memberMap = feedbackResp.data; + listmemebers.remove(0); + listmemebers = sortListByActivieTime(listmemebers); + listmemebers.add(0, IMKitClient.getUserInfo()); + membersAdapter.setData(listmemebers, false, memberMap, teamId); + } + + + @Override + public void onError(int code, String msg) { + ToastX.showShortToast(msg); + + } + }); + } + } + + //排序成员 + public List sortListByActivieTime(List teamMemberlist) { + List resultlist = new ArrayList<>(); + Set keys = memberMap.keySet(); + if (!keys.isEmpty()) { + for (String id : keys) { + for (UserInfo userInfo : teamMemberlist) { + if (userInfo.getAccount().equals(id)) { + resultlist.add(userInfo); + } + } + } + } + return resultlist; + } + + + public void setData() { + if (type == 0) { +// listmemebers.add(0, IMKitClient.getUserInfo()); + membersAdapter.setData(listmemebers, false, memberMap, teamId); +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1)); + } else { //不能编辑 转让 + for (int i = 0; i < listmemebers.size(); i++) { + if (listmemebers.get(i).getAccount().equals(IMKitClient.account())) { + listmemebers.remove(i); + } + } + +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size())); + membersAdapter.setEdit(false); + membersAdapter.setData(listmemebers, false, memberMap, teamId); + } + binding.rvMembers.setAdapter(membersAdapter); + } + + public void initView() { + initTitleView(); + + LinearLayoutManager layoutManager = + new LinearLayoutManager(this, RecyclerView.VERTICAL, false); + binding.rvMembers.setLayoutManager(layoutManager); + membersAdapter = new TeamMembersAdapter2(this, type); + setData(); + membersAdapter.setItemClickListener(new TeamMembersAdapter2.ItemClickListener() { + @Override + public void onItemClick(UserInfo item, int position) { + + } + + @Override + public void onAddClick(UserInfo item, int position) { + startUserInfoActivity(item.getAccount(), teamId); + } + + @Override + public void onSwithType(UserInfo userInfo, int position, boolean isGrab, int allowGrab, int allowSend) { + groupSwitch(position, userInfo.getAccount(), allowSend, allowGrab); + } + + }); + binding.editSelectorFriends.setOnEditorActionListener((textView, actionId, keyEvent) -> + { + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + String search = textView.getEditableText().toString(); + //搜索好友 + List listSearchResult = searchName(search); + listSearch.clear(); + listSearch.addAll(listSearchResult); + if (listSearch.size() > 0) { + membersAdapter.refreshData(listSearch, false); +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listSearch.size())); + + } + } + return false; + }); + binding.editSelectorFriends.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void afterTextChanged(Editable editable) { + if (TextUtils.isEmpty(editable.toString())) { + binding.icCleanEdit.setVisibility(View.GONE); +// membersAdapter.setEdit(false); +// binding.title.setActionText(R.string.teammember_edit); +// listmemebers.add(0, IMKitClient.getUserInfo()); + membersAdapter.refreshData(listmemebers, type == 0); +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1)); + } else { + binding.icCleanEdit.setVisibility(View.VISIBLE); + } + } + }); + binding.icCleanEdit.setOnClickListener(view -> binding.editSelectorFriends.setText("")); + } + + public void startUserInfoActivity(String userid, String teamId) { + + if (isManager == 1 || isManager == 2) { + XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE) + .withContext(TeamMembersList2Activity.this) + .withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account()) + .withParam("userId", userid) + .withParam("teamId", teamId) + .withParam("isGroup", true) + .navigate(); + return; + } + + + //如果群不允许群内添加好友 当前登录用户不是群主,以及userid 也不是群主 直接跳过 + if (isAllowAdd == 0 && isManager != 1 && !userid.equals(teamOwnerId)) { + + NIMClient.getService(TeamService.class).queryTeamMember(teamId, userid).setCallback(new RequestCallback() { + @Override + public void onSuccess(TeamMember members) { + if (members != null) { + if (members.getType() == TeamMemberType.Manager) { + XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE) + .withContext(TeamMembersList2Activity.this) + .withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account()) + .withParam("userId", userid) + .withParam("teamId", teamId) + .withParam("isGroup", true) + .navigate(); + } + } + + } + + @Override + public void onFailed(int code) { + // 撤销群管理员失败 + + } + + @Override + public void onException(Throwable exception) { + // 错误 + } + }); + + return; + } + + XKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE) + .withContext(TeamMembersList2Activity.this) + .withParam(RouterConstant.KEY_ACCOUNT_ID_KEY, IMKitClient.account()) + .withParam("userId", userid) + .withParam("teamId", teamId) + .withParam("isGroup", true) + .navigate(); + } + + public void initData() { + teammodel.getRemoveMembersData().observe( + this, + voidResultInfo -> { + if (voidResultInfo.getSuccess()) { + //移除群成员成功 变量太多 + List userInfos = new ArrayList<>(); + List list = membersAdapter.getSelectedInt(); + for (int i = 0; i < list.size(); i++) { + userInfos.add(membersAdapter.getData().get(list.get(i))); + } + for (int i = 0; i < userInfos.size(); i++) { + UserInfo userInfo = userInfos.get(i); +// int searchIndex = listSearch.indexOf(userInfo); +// if (searchIndex >= 0) { //通过搜索列表删除的 +// listSearch.remove(searchIndex); +// } + int indexSelector = selectorlist.indexOf(userInfo.getAccount()); + int indexMembers = listmemebers.indexOf(userInfo); + if (indexSelector >= 0) { + selectorlist.remove(indexSelector); //成员有变化 ,邀请 选中的人数就有变化(都是好友) + } + if (indexMembers >= 0) { + listmemebers.remove(indexMembers); + } + + } +// LogUtils.d("删除结束 " + listmemebers.size()); +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1)); + isRefresh = true; + setTitleEdit(listmemebers, true, R.string.teammember_edit); + binding.editSelectorFriends.setText(""); + + + //刪除的 +// if (deletePosition >= 0) { +// if (listSearch.size() == deletePosition || listmemebers.size() == deletePosition) { +// deletePosition = deletePosition - 1; +// } +//// if (listSearch.size() == 0 && listmemebers.size() == deletePosition) { +//// deletePosition = deletePosition - 1; +//// } +// UserInfo userInfo; +// if (listSearch.size() > 0) { +// userInfo = listSearch.get(deletePosition); +// listSearch.remove(deletePosition); +// membersAdapter.removeData(deletePosition); +// deletePosition = listmemebers.indexOf(userInfo); +// } else { +// membersAdapter.removeData(deletePosition); +// } +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, membersAdapter.getData().size())); +// selectorlist.remove(listmemebers.get(deletePosition).getAccount()); +// listmemebers.remove(deletePosition); +// isRefresh = true; +// } + } + + }); + teammodel.getUserInfoData().observe(this, listResultInfo -> { + if (listResultInfo.getSuccess()) { + memberMap = null; +// getTeamActiveTime(); + List list = listResultInfo.getValue(); + //邀请成功 获取用户信息 + selectorlist.clear(); + listmemebers.clear(); + listmemebers.add(IMKitClient.getUserInfo()); + for (UserInfoWithTeam userinfo : list) { +// LogUtils.i("走了3333333333444444444:"+GsonUtils.beanToJSONString(userinfo)); + + selectorlist.add(userinfo.getUserInfo().getAccount()); + UserInfo userInfos = userinfo.getUserInfo(); + userInfos.setSignature(userinfo.getTeamInfo().isMute() ? "1" : ""); + listmemebers.add(userInfos); + +// listmemebers.add(userinfo.getUserInfo()); + } + membersAdapter.setData(listmemebers, false, memberMap, teamId); + isRefresh = true; +// binding.tvteammembers.setText(getString(com.netease.yunxin.kit.contactkit.ui.R.string.fun_creategroup_members, listmemebers.size() - 1)); + } + }); + + if (listmemebers != null) { + for (UserInfo userInfo : listmemebers) { + selectorlist.add(userInfo.getAccount()); + } + } + + teammodel.getQuitTeamData().observe(this, voidResultInfo -> { + if (voidResultInfo.getSuccess()) { + //成功 + showTransferDialog(true, ""); + } else { + showTransferDialog(false, voidResultInfo.getMsg().getMessage()); + } + }); + + getTeamSwiches(); + } + + private void getTeamSwiches() { + com.netease.yunxin.kit.chatkit.ui.network.Api.getInstance().groupSwitches(teamId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new com.netease.yunxin.kit.chatkit.ui.network.BaseObserver<>() { + @Override + public void onSuccess(com.netease.yunxin.kit.chatkit.ui.network.Result> feedbackResp) { + switchGroupBeans = feedbackResp.data; + membersAdapter.notifyDataSetChanged(); + + } + + @Override + public void onError(int code, String msg) { + + } + }); + } + + private void getTeamSwiches(int index) { + com.netease.yunxin.kit.chatkit.ui.network.Api.getInstance().groupSwitches(teamId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new com.netease.yunxin.kit.chatkit.ui.network.BaseObserver<>() { + @Override + public void onSuccess(com.netease.yunxin.kit.chatkit.ui.network.Result> feedbackResp) { + switchGroupBeans = feedbackResp.data; + membersAdapter.notifyItemChanged(index); + } + + @Override + public void onError(int code, String msg) { + + } + }); + } + public boolean getSwitchValue(Long userId, boolean isGrad) { + if (switchGroupBeans != null && switchGroupBeans.size() > 0) { + boolean isIn = false; + for (SwitchGroupBean s : switchGroupBeans) { + if (userId.equals(s.getUserUid())) { + isIn = true; + if (isGrad) { + return s.getAllowGrab() == 1; + } else { + return s.getAllowSend() == 1; + } + } + + } + if (!isIn) { + if (isGrad) { + return false; + } else { + return true; + } + } + } + if (isGrad) { + return false; + } else { + return true; + } + + } + + private void groupSwitch(int index, String Uid, int allowSend, int allowGrab) { + Map map = new HashMap<>(); + map.put("uid", Uid); + map.put("allowSend", allowSend); + map.put("allowGrab", allowGrab); + map.put("groupId", teamId); + Api.getInstance().groupSwitch(map) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver() { + @Override + public void onSuccess(Result feedbackResp) { + getTeamSwiches(index); + } + + @Override + public void onError(int code, String msg) { + + } + }); + } + + + private boolean isRemove = false; + + + private void initTitleView() { +// binding.title.setTitle(com.netease.yunxin.kit.contactkit.ui.R.string.select); +// binding.title.getBackImageView().setImageResource(com.netease.yunxin.kit.contactkit.ui.R.drawable.ic_dialog_close); + binding.title.getBackImageView().setOnClickListener(v -> { + finish(); + }); + } + + + public void setTitleEdit(List listmember, boolean isEdit, int actionText) { +// binding.title.setActionText(actionText); + membersAdapter.setEdit(!isEdit); + membersAdapter.getSelectedInt().clear(); + membersAdapter.setData(listmember, false, memberMap, teamId); + } + + + public void showTransferDialog(boolean isSuccess, String value) { + + ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(this, isSuccess ? getString(R.string.transfer_success) + : (TextUtils.isEmpty(value) ? getString(R.string.transfer_fail) : getString(R.string.transfer_failmsg, value)), false); + + actionConfirmDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { + @Override + public void toSumbit() { + if (isSuccess) { + //回调结果 + quite = 2; + setActivityResult(); + } else { + actionConfirmDialog.dismiss(); + } + + } + + @Override + public void toCancel() { + } + }); + actionConfirmDialog.show(); + + } + + public void setActivityResult() { + Intent intent = new Intent(); + intent.putExtra(TYPE, type); + intent.putExtra(QUITE, quite); + setResult(RESULT_OK, intent); + finish(); + } + + public List searchName(String key) { + List listSearch = new ArrayList<>(); + List result = new ArrayList<>(); + result.addAll(listmemebers); + if (result.size() >= 2 && (result.get(0).getAccount().equals(result.get(1).getAccount()))) { //因为邀请好友icon + result.remove(result.get(0)); + } + for (UserInfo userInfo : result) { + + String name = getAlias(userInfo); + if (name.contains(key)) { + listSearch.add(userInfo); + } + } + return listSearch; + } + + + public String getAlias(UserInfo userInfo) { + String name = userInfo.getName(); + if (ContactRepo.isFriend(userInfo.getAccount())) { + String alias = ContactRepo.getFriend(userInfo.getAccount()).getAlias(); + return TextUtils.isEmpty(alias) ? name : alias; + } + return name; + } + + +} diff --git a/app/src/main/java/com/hbl/lewan/imkit/team/TeamSettingActivity.java b/app/src/main/java/com/hbl/lewan/imkit/team/TeamSettingActivity.java index b0b6fda..28e2bfe 100644 --- a/app/src/main/java/com/hbl/lewan/imkit/team/TeamSettingActivity.java +++ b/app/src/main/java/com/hbl/lewan/imkit/team/TeamSettingActivity.java @@ -26,6 +26,7 @@ import com.hbl.lewan.contact.ReportActivity; import com.hbl.lewan.databinding.ActivityBaseChatsettingBinding; import com.hbl.lewan.dialog.ActionConfirmDialog; import com.hbl.lewan.model.TeamUpdateEvent; +import com.hbl.lewan.redpack.SendRedPacketActivity; import com.hbl.lewan.utils.GsonUtils; import com.hbl.lewan.utils.LogUtils; import com.hbl.lewan.widget.CircleImageView; @@ -65,6 +66,8 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity { protected TeamMember teamMember; private boolean isOpenNotify = true; private ActivityResultLauncher launcher; + private ActivityResultLauncher launcher1; + private boolean isTeamShow; private boolean isUpdateTeam = false; @@ -101,6 +104,11 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity { } } }); + launcher1 = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + + } + }); } public void updateTeamData() { @@ -155,6 +163,17 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity { intent.putExtra("teamId",teamId); startActivity(intent); }); + binding.flhbkz.setOnClickListener(v -> { + int manager = 0; + if (teamMember.getType() == TeamMemberType.Owner) { + manager = 1; + } + if (teamMember.getType() == TeamMemberType.Manager) { + manager = 2; + } + + TeamMembersList2Activity.launch(TeamSettingActivity.this, manager, false, teamId, listmemebers, teamInfo, launcher1); + }); } private void getChatList() { @@ -369,8 +388,11 @@ public class TeamSettingActivity extends BaseTeamQrSettingActivity { if(teamMember.getType() == TeamMemberType.Owner||teamMember.getType() == TeamMemberType.Manager){ binding.fljinyan.setVisibility(View.VISIBLE); + binding.flhbkz.setVisibility(View.VISIBLE); }else { binding.fljinyan.setVisibility(View.GONE); + binding.flhbkz.setVisibility(View.GONE); + } } diff --git a/app/src/main/java/com/hbl/lewan/imkit/team/adapter/TeamMembersAdapter2.java b/app/src/main/java/com/hbl/lewan/imkit/team/adapter/TeamMembersAdapter2.java new file mode 100644 index 0000000..df4b027 --- /dev/null +++ b/app/src/main/java/com/hbl/lewan/imkit/team/adapter/TeamMembersAdapter2.java @@ -0,0 +1,340 @@ +// Copyright (c) 2022 NetEase, Inc. All rights reserved. +// Use of this source code is governed by a MIT license that can be +// found in the LICENSE file. + +package com.hbl.lewan.imkit.team.adapter; + +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CompoundButton; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import androidx.viewbinding.ViewBinding; + +import com.hbl.lewan.R; +import com.hbl.lewan.databinding.TeamMembersViewHolder2Binding; +import com.hbl.lewan.imkit.team.TeamMembersList2Activity; +import com.netease.nimlib.sdk.NIMClient; +import com.netease.nimlib.sdk.team.TeamService; +import com.netease.nimlib.sdk.team.constant.TeamMemberType; +import com.netease.nimlib.sdk.team.model.TeamMember; +import com.netease.yunxin.kit.chatkit.repo.ContactRepo; +import com.netease.yunxin.kit.corekit.im.model.UserInfo; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +// 群组成员列表 +public class TeamMembersAdapter2 extends RecyclerView.Adapter { + + protected List members; + private Context mContext; + private boolean isShowInvited = true; + private boolean isEdit = false; + private int mType; // + private int selectpostion = -1; + private Map mapTime; + private List selectedInt = new ArrayList<>(); //多选position + private String teamId; + TeamMembersList2Activity teamMembersList2Activity; + + public TeamMembersAdapter2(Context context, int type) { + members = new ArrayList<>(); + mContext = context; + mType = type; + teamMembersList2Activity = (TeamMembersList2Activity) context; + } + + protected TeamMembersAdapter2.ItemClickListener itemClickListener; + + public void setItemClickListener(TeamMembersAdapter2.ItemClickListener itemClickListener) { + this.itemClickListener = itemClickListener; + } + + public void setData(List list, boolean isShow, Map mapActiveTime, String teamId) { + members.clear(); + members.addAll(list); + selectedInt.clear(); + isShowInvited = isShow; + mapTime = mapActiveTime; + this.teamId = teamId; + notifyDataSetChanged(); + } + + public void setEdit(boolean edit) { + isEdit = edit; + } + + public boolean isEdit() { + return isEdit; + } + + + public int getSelectpostion() { + return selectpostion; + } + + + public void refreshData(List list, boolean isInvited) { + isShowInvited = isInvited; + selectpostion = -1; + members.clear(); + members.addAll(list); + notifyDataSetChanged(); + } + + public List getSelectedInt() { + return selectedInt; + } + + // public void addData(List list) { +// int initsize = members.size(); +// members.addAll(list); +// notifyItemRangeChanged(initsize, list.size()); +// } + + public void removeData(int position) { + members.remove(position); + notifyItemRemoved(position); + } + + public List getData() { + return members; + } + + @NonNull + @Override + public TeamMembersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new TeamMembersViewHolder(TeamMembersViewHolder2Binding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull TeamMembersViewHolder holder, int position) { + UserInfo userInfo = members.get(position); + holder.binding.unreadTv.setVisibility(View.GONE); + if (position == 0 && isShowInvited) { + holder.binding.avatarView.setData(com.netease.yunxin.kit.contactkit.ui.R.drawable.ic_creategroup_add, ""); + holder.binding.icDelete.setVisibility(View.GONE); + holder.binding.tvName.setText(mContext.getResources().getString(R.string.invcode_friend_txt)); + holder.binding.tvNameActivetime.setVisibility(View.GONE); + } else { + TeamMember teamMember = NIMClient.getService(TeamService.class).queryTeamMemberBlock(teamId, userInfo.getAccount()); + if(teamMember!=null){ + if(teamMember.getType() == TeamMemberType.Manager){ + holder.binding.unreadTv.setVisibility(View.VISIBLE); + holder.binding.unreadTv.setText(R.string.teamsetting_other_teammanager); + holder.binding.unreadTv.setBackgroundResource(com.netease.yunxin.kit.conversationkit.ui.R.drawable.bg_conversation_red_dot1); + }else if(teamMember.getType() == TeamMemberType.Owner){ + holder.binding.unreadTv.setVisibility(View.VISIBLE); + holder.binding.unreadTv.setText(com.netease.yunxin.kit.teamkit.ui.R.string.team_owner); + holder.binding.unreadTv.setBackgroundResource(com.netease.yunxin.kit.conversationkit.ui.R.drawable.bg_conversation_red_dot); + + + } + } + if (isEdit) { + if (teamMember != null && (teamMember.getType() == TeamMemberType.Manager || teamMember.getType() == TeamMemberType.Owner)) { + holder.binding.icDelete.setVisibility(View.GONE); + } else { + holder.binding.icDelete.setVisibility(View.VISIBLE); + } + if (selectedInt.indexOf(position) >= 0) { + holder.binding.icDelete.setBackgroundResource(R.mipmap.dialog_gou_t); + } else { + holder.binding.icDelete.setBackgroundResource(R.mipmap.dialog_gou_ff); + } +// holder.binding.icDelete.setVisibility(userInfo.getAccount().equals(IMKitClient.account()) ? View.GONE : View.VISIBLE); + } else if (mType == 1) { + + if (selectpostion >= 0 && position == selectpostion) { + holder.binding.icDelete.setBackgroundResource(R.mipmap.dialog_gou_tt); + } else { + holder.binding.icDelete.setBackgroundResource(R.drawable.bg_d8d8d8_singleunselector); + } + holder.binding.icDelete.setVisibility(View.VISIBLE); + } else { + holder.binding.icDelete.setVisibility(View.GONE); + } + String avaterurl = userInfo.getAvatar(); + if (TextUtils.isEmpty(avaterurl)) { + holder.binding.avatarView.setData(R.mipmap.default_head_img, userInfo.getName(), 0); + } else { + holder.binding.avatarView.setData(avaterurl, userInfo.getName()); + } + String name = userInfo.getName(); + if (ContactRepo.isFriend(userInfo.getAccount())) { + String alias = ContactRepo.getFriend(userInfo.getAccount()).getAlias(); + if (!TextUtils.isEmpty(alias)) { + name = alias; + } + } + holder.binding.tvName.setText(name); + if (mapTime != null && mapTime.size() > 0) { + holder.binding.tvNameActivetime.setVisibility(View.VISIBLE); + holder.binding.tvNameActivetime.setTextColor(Color.parseColor("#FE6881")); + holder.binding.tvNameActivetime.setBackgroundResource(R.drawable.cornor_stroke_fe6881_2dp); + String time = parseTimeLong(holder.binding.tvNameActivetime, mapTime.get(userInfo.getAccount())); + holder.binding.tvNameActivetime.setText(time); + } else { + holder.binding.tvNameActivetime.setVisibility(View.GONE); + } + + holder.binding.jinyanIv.setVisibility(View.GONE); + if(!TextUtils.isEmpty(userInfo.getSignature())&&userInfo.getSignature().equals("1")){ + holder.binding.jinyanIv.setVisibility(View.VISIBLE); + } + + + } + holder.binding.avatarView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (itemClickListener != null) { + itemClickListener.onAddClick(userInfo, position); + } + } + }); + holder.binding.shouhongbaoSwitch.setOnClickListener(v -> { + if (itemClickListener != null) { + itemClickListener.onSwithType(userInfo, position,true, + holder.binding.shouhongbaoSwitch.isChecked()?1:0,holder.binding.fahongbaoSwitch.isChecked()?1:0); + } + }); + + holder.binding.fahongbaoSwitch.setOnClickListener(v -> { + if (itemClickListener != null) { + itemClickListener.onSwithType(userInfo, position,false, + holder.binding.shouhongbaoSwitch.isChecked()?1:0,holder.binding.fahongbaoSwitch.isChecked()?1:0); + } + }); + + holder.binding.fahongbaoSwitch.setChecked(teamMembersList2Activity.getSwitchValue(Long.parseLong(userInfo.getAccount()),false)); + + holder.binding.shouhongbaoSwitch.setChecked(teamMembersList2Activity.getSwitchValue(Long.parseLong(userInfo.getAccount()),true)); + + holder.binding.getRoot().setOnClickListener(view -> { + if (itemClickListener != null) { + if (position == 0 && isShowInvited) { +// itemClickListener.onAddClick(); //邀请好友 + } else { + if (mType == 1) { //转让 + if (selectpostion == position) { + selectpostion = -1; + } else { + selectpostion = position; + } + notifyDataSetChanged(); + } else { + if (isEdit && holder.binding.icDelete.getVisibility() == View.VISIBLE) { + //管理员删除用户选择 + int index = selectedInt.indexOf(position); + if (index >= 0) { + selectedInt.remove(index); + } else { + selectedInt.add(position); + } + notifyItemChanged(position); + + } else { + itemClickListener.onItemClick(userInfo, position); + } + } + + } + + + } + }); + } + + + /* + 相差天数 + */ + public static int differentDays(long timeseconds) { + Date date1 = new Date(timeseconds); + Date date2 = new Date(System.currentTimeMillis()); //当前日期 + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(date1); + + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(date2); + int day1 = cal1.get(Calendar.DAY_OF_YEAR); + int day2 = cal2.get(Calendar.DAY_OF_YEAR); + + int year1 = cal1.get(Calendar.YEAR); + int year2 = cal2.get(Calendar.YEAR); + if (year1 != year2) //不同年 + { + int timeDistance = 0; + for (int i = year1; i < year2; i++) { + if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) //闰年 + { + timeDistance += 366; + } else //不是闰年 + { + timeDistance += 365; + } + } + + return timeDistance + (day2 - day1); + } else //同年 + { + return day2 - day1; + } + } + + public String parseTimeLong(TextView textView, long timestra) { + int days = differentDays(timestra); + String time; + if (days == 0) { + time = textView.getResources().getString(R.string.today_txt); + } else if (days == 1) { + time = textView.getResources().getString(R.string.yesterday_txt); + } else if (days <= 6) { + time = String.format(textView.getResources().getString(R.string.jinjiri_txt), days + 1); + } else if (days <= 29) { + time = String.format(textView.getResources().getString(R.string.jinjiri_txt), days + 1); + } else { + textView.setTextColor(Color.parseColor("#cbcbcb")); + textView.setBackgroundResource(R.drawable.cornor_stroke_cbcbcb_2dp); + time = String.format(textView.getResources().getString(R.string.jitianqi_txt), days + 1); + } + return time; + } + + @Override + public int getItemCount() { + return members.size(); + } + + + public interface ItemClickListener { + void onItemClick(UserInfo item, int position); + + void onAddClick(UserInfo item, int position); + + void onSwithType(UserInfo userInfo,int position,boolean isGrab,int allowGrab,int allowSend); + } + + protected class TeamMembersViewHolder extends RecyclerView.ViewHolder { + + TeamMembersViewHolder2Binding binding; + + public TeamMembersViewHolder(@NonNull ViewBinding binding) { + super(binding.getRoot()); + this.binding = (TeamMembersViewHolder2Binding) binding; + } + } +} + + diff --git a/app/src/main/java/com/hbl/lewan/login/RegisterActivity.java b/app/src/main/java/com/hbl/lewan/login/RegisterActivity.java index caa6cfe..ac17fbc 100644 --- a/app/src/main/java/com/hbl/lewan/login/RegisterActivity.java +++ b/app/src/main/java/com/hbl/lewan/login/RegisterActivity.java @@ -910,7 +910,7 @@ public class RegisterActivity extends BaseActivity { String stsCredentialsBean; private void toShangchuanAli(File file ) { - showLoadingDialog(); + showLoadingDialog("正在上传头像"); // Api.getInstance().stsCredentials() // .subscribeOn(Schedulers.io()) // .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/hbl/lewan/main/MainActivity.java b/app/src/main/java/com/hbl/lewan/main/MainActivity.java index 6274ccf..88bb54f 100644 --- a/app/src/main/java/com/hbl/lewan/main/MainActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/MainActivity.java @@ -53,6 +53,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import androidx.viewpager2.widget.ViewPager2; import com.codersun.fingerprintcompat.AonFingerChangeCallback; import com.codersun.fingerprintcompat.FingerManager; @@ -403,6 +404,9 @@ public class MainActivity extends BaseActivity { WindowCompat.setDecorFitsSystemWindows(getWindow(), false); ViewGroup.LayoutParams layoutParams = activityMainBinding.bottomV.getLayoutParams(); layoutParams.height = getNavigationBarHeight(this); + if(Build.MANUFACTURER.equals("HUAWEI")){ + layoutParams.height = 0; + } activityMainBinding.bottomV.setLayoutParams(layoutParams); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); @@ -410,7 +414,7 @@ public class MainActivity extends BaseActivity { ChatDataUtils.set(this, ChatKitUIConstant.SERVICES_LOGIN, false); ChatKitUIConstant.isSendGiftRedPacket = DataUtils.getIsSendGiftRedPacket(); initView(); - getServiceId(); +// getServiceId(); ChatObserverRepo.registerReceiveMessageObserve(receiveMessageObserver); // EventCenter.registerEventNotify(skinNotify); @@ -788,10 +792,34 @@ public class MainActivity extends BaseActivity { fragmentAdapter = new FragmentAdapter(this); fragmentAdapter.setFragmentList(fragments); - activityMainBinding.viewPager.setUserInputEnabled(false); +// activityMainBinding.viewPager.setUserInputEnabled(false); activityMainBinding.viewPager.setAdapter(fragmentAdapter); activityMainBinding.viewPager.setCurrentItem(START_INDEX, false); activityMainBinding.viewPager.setOffscreenPageLimit(fragments.size()); + activityMainBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); + } + + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + resetTabStyle(); + if(position == 0){ + activityMainBinding.contact.setTextColor( + getResources().getColor(R.color.color_fe6881)); + activityMainBinding.contact.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.chat_img_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + }else{ + activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_fe6881)); + activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.wo_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + } + }); mCurrentTab = activityMainBinding.contactBtnGroup; resetTabSkin(isCommonSkin); checkZhiWen(); @@ -840,7 +868,7 @@ public class MainActivity extends BaseActivity { if (obj instanceof HmsScan) { if (!TextUtils.isEmpty(((HmsScan) obj).getOriginalValue())) { String result1 = ((HmsScan) obj).getOriginalValue(); - Log.v("LAILIAOLIAO", "行动码是啥:" + result1); + Log.v("LAILIAOLIAO", "二维码是啥:" + result1); // 开始解析2维码内容并进入相应的处理逻辑 processQRCodeScanResult(this, result1); } @@ -899,14 +927,14 @@ public class MainActivity extends BaseActivity { } else { QRCodeScheme.QRCodeData qrData = QRCodeScheme.parseCodeData(originalQrcodeStr); // 2维码内容前缀(形如“time_go_mm://add_user/”) - LogUtils.i("行动码是啥111:" + GsonUtils.beanToJSONString(qrData)); + LogUtils.i("二维码是啥111:" + GsonUtils.beanToJSONString(qrData)); String scheme = qrData.getScheme(); // 2维码内容(形如“400069”) String value = qrData.getValue(); String uid = qrData.getUserId(); if (!CommonUtils.isStringEmpty(scheme, true) && !CommonUtils.isStringEmpty(value, true)) { - LogUtils.i("行动码是啥222:" + scheme); + LogUtils.i("二维码是啥222:" + scheme); switch (scheme) { case QRCodeScheme.QR_CODE_SCHEME_ADD_USER: @@ -1015,19 +1043,16 @@ public class MainActivity extends BaseActivity { private void showGiftView(String machineId, String orderNos, String moneys) { this.orderNo = orderNos; - LogUtils.i("进来了啊"); if (bindBean != null) { if (!bindBean.getPhoneBind()) { showDialog(); } else if (!bindBean.getPayPasswordSet()) { showDialogPay(); } else { - LogUtils.i("进来了啊11111"); if (DataUtils.get(MainActivity.this, "hasFinger", false)) { showPayCashFingerDialog(machineId, moneys, TYPE_PAYMENT_GIFT); } else { - LogUtils.i("进来了啊22222222"); showPayCashDialog(machineId, moneys, TYPE_PAYMENT_GIFT); } @@ -1298,12 +1323,10 @@ public class MainActivity extends BaseActivity { joinTitleTv = (TextView) bottomView.findViewById(R.id.join_title_tv); groupHeadIv = (ContactAvatarView) bottomView.findViewById(R.id.group_head_iv); joinTv = (TextView) bottomView.findViewById(R.id.join_tv); - LogUtils.i("1111111111111111122222222222:" + IMApplication.schemeTeamId); Team team = NIMClient.getService(TeamService.class).queryTeamBlock(groupId); groupNameTv = (TextView) bottomView.findViewById(R.id.group_name_tv); if (team != null) { - LogUtils.i("11111111111111111333333333333:" + IMApplication.schemeTeamId); if (TextUtils.isEmpty(team.getIcon())) { groupHeadIv.setData(com.netease.yunxin.kit.contactkit.ui.R.mipmap.ic_group_defaulthead, "head"); @@ -1312,11 +1335,9 @@ public class MainActivity extends BaseActivity { } groupNameTv.setText(team.getName()); if (team.isMyTeam()) { - LogUtils.i("加入群聊成功1111111111111111111"); joinTitleTv.setText(R.string.jinru_group_txt); joinTv.setText(R.string.jinru_group_txt); } else { - LogUtils.i("加入群聊成功22222222222222"); joinTitleTv.setText(R.string.join_group_txt); joinTv.setText(R.string.join_group_txt); @@ -1328,15 +1349,12 @@ public class MainActivity extends BaseActivity { .withParam(RouterConstant.CHAT_KRY, team) .withContext(MainActivity.this) .navigate(); - LogUtils.i("加入群聊成功33333333333333"); } else { NIMClient.getService(TeamService.class).applyJoinTeam(groupId, null).setCallback(new RequestCallback() { @Override public void onSuccess(Team team1) { - LogUtils.i("加入群聊成功4444444444444444444"); - LogUtils.i("加入群聊成功:" + GsonUtils.beanToJSONString(team1)); bottomSheetDialog.dismiss(); XKitRouter.withKey(RouterConstant.PATH_FUN_CHAT_TEAM_PAGE) @@ -1381,18 +1399,14 @@ public class MainActivity extends BaseActivity { } }); } else { - LogUtils.i("1111111111111111144444444444:" + IMApplication.schemeTeamId); joinTitleTv.setText(R.string.join_group_txt); joinTv.setText(R.string.join_group_txt); getJoinInfo(groupId, false, bottomSheetDialog); - LogUtils.i("加入群聊成功555555555555"); joinTv.setOnClickListener(v -> NIMClient.getService(TeamService.class).applyJoinTeam(groupId, null).setCallback(new RequestCallback() { @Override public void onSuccess(Team team1) { - LogUtils.i("加入群聊成功:" + GsonUtils.beanToJSONString(true)); - LogUtils.i("加入群聊成功6666666666666666"); bottomSheetDialog.dismiss(); XKitRouter.withKey(RouterConstant.PATH_FUN_CHAT_TEAM_PAGE) .withParam(RouterConstant.CHAT_KRY, team1) @@ -1436,12 +1450,7 @@ public class MainActivity extends BaseActivity { } - coloseIv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - bottomSheetDialog.dismiss(); - } - }); + coloseIv.setOnClickListener(v -> bottomSheetDialog.dismiss()); bottomSheetDialog.setContentView(bottomView); bottomSheetDialog.show(); @@ -1459,11 +1468,9 @@ public class MainActivity extends BaseActivity { @Override public void onSuccess(Team result) { if (!b) { - LogUtils.i("加入群聊成功7777777777777777"); groupHeadIv.setData(result.getIcon(), result.getName()); groupNameTv.setText(result.getName()); } else { - LogUtils.i("加入群聊成功88888888888888"); dialog.dismiss(); XKitRouter.withKey(RouterConstant.PATH_FUN_CHAT_TEAM_PAGE) .withParam(RouterConstant.CHAT_KRY, result) @@ -1488,7 +1495,6 @@ public class MainActivity extends BaseActivity { private void sendMachine(String scheme) { scheme = scheme.replace("https://admin.letschat2023.com/#/downLoad", "https://www.baidu.com"); Uri uri = Uri.parse(scheme); - LogUtils.i("数据是啥:" + scheme); String id = uri.getQueryParameter("deviceId"); //id 值 10943 Intent intent = new Intent(MainActivity.this, AuthorizeActivity.class); intent.putExtra("deviceId", id); @@ -1511,12 +1517,10 @@ public class MainActivity extends BaseActivity { @Override public void onSuccess(Result feedbackResp) { bindBean = feedbackResp.data; - LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(bindBean)); } @Override public void onError(int code, String msg) { - LogUtils.i("获取到的错误:" + code + "" + msg); } }); @@ -1524,7 +1528,6 @@ public class MainActivity extends BaseActivity { @Override protected void onDestroy() { - ALog.d(Constant.PROJECT_TAG, "MainActivity:onDestroy"); // EventCenter.unregisterEventNotify(skinNotify); ChatObserverRepo.unregisterReceiveMessageObserve(receiveMessageObserver); if (mEventSubscription != null) { @@ -2004,15 +2007,15 @@ public class MainActivity extends BaseActivity { if (feedbackResp.data != null && feedbackResp.data.size() > 0) { for (ConfigBean configBean : feedbackResp.data) { -// if (configBean.getId() == 1) { -// DataUtils.set(MainActivity.this, "transfer_cash", configBean.getVal().equals("1")); -// } + if (configBean.getId() == 1) { + DataUtils.set(MainActivity.this, "transfer_cash", configBean.getVal().equals("1")); + } // if (configBean.getId() == 2) { // DataUtils.set(MainActivity.this, "transfer_jifen", configBean.getVal().equals("1")); // } - if (configBean.getId() == 3) { - DataUtils.set(MainActivity.this, "transfer_score", configBean.getVal().equals("1")); - } +// if (configBean.getId() == 3) { +// DataUtils.set(MainActivity.this, "transfer_score", configBean.getVal().equals("1")); +// } if (configBean.getId() == 4) { DataUtils.set(MainActivity.this, "redpkg_score", configBean.getVal().equals("1")); } diff --git a/app/src/main/java/com/hbl/lewan/main/chat/ChatConversationFragment.java b/app/src/main/java/com/hbl/lewan/main/chat/ChatConversationFragment.java index 9b2c87a..e59cad7 100644 --- a/app/src/main/java/com/hbl/lewan/main/chat/ChatConversationFragment.java +++ b/app/src/main/java/com/hbl/lewan/main/chat/ChatConversationFragment.java @@ -660,9 +660,9 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe conversationViewBottom.setViewHolderFactory(funViewHolderFactory); conversationViewShiJie.setViewHolderFactory(funViewHolderFactory); if (conversationType == 2) { - if(ApiService.AREA_CODE.equals("+86")) { + if (ApiService.AREA_CODE.equals("+86")) { viewBinding.layoutShijiechat.setVisibility(View.VISIBLE); - }else{ + } else { viewBinding.layoutShijiechat.setVisibility(View.GONE); } @@ -1008,9 +1008,9 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe viewBinding.layoutOneroot.setVisibility(View.GONE); viewBinding.layoutShijiechat.setVisibility(View.GONE); } else { - if(ApiService.AREA_CODE.equals("+86")) { + if (ApiService.AREA_CODE.equals("+86")) { viewBinding.layoutShijiechat.setVisibility(View.VISIBLE); - }else{ + } else { viewBinding.layoutShijiechat.setVisibility(View.GONE); } @@ -1125,11 +1125,32 @@ public class ChatConversationFragment extends BaseFragment implements ILoadListe View bottomView = LayoutInflater.from(getActivity()).inflate(R.layout.bottom_sheet_layout_conversation, null); bottomSheetDialog.setContentView(bottomView); bottomSheetDialog.show(); - + TextView zhiding_tv = (TextView) bottomView.findViewById(R.id.zhiding_tv); TextView coloseIv1 = (TextView) bottomView.findViewById(R.id.colose_iv); TextView hideTv = (TextView) bottomView.findViewById(R.id.hide_tv); TextView deleteTv = (TextView) bottomView.findViewById(R.id.delete_tv); + if (dataBean.infoData.isStickTop()) { + zhiding_tv.setText(getString(com.netease.yunxin.kit.conversationkit.ui.R.string.cancel_stick_title)); + } else { + zhiding_tv.setText(getString(com.netease.yunxin.kit.conversationkit.ui.R.string.stick_title)); + + } + + zhiding_tv.setOnClickListener(v -> { + if (dataBean.infoData.isStickTop()) { + viewModel.removeStick((ConversationBean) data); +// NIMClient.getService(MsgService.class).removeStickTopSession(dataBean.infoData.getContactId(), dataBean.infoData.getSessionType(),""); //删除会话 没删聊天记录 + + } else { + viewModel.addStickTop((ConversationBean) data); +// NIMClient.getService(MsgService.class).addStickTopSession(dataBean.infoData.getContactId(), dataBean.infoData.getSessionType(),""); //删除会话 没删聊天记录 + + } + bottomSheetDialog.dismiss(); + + }); + coloseIv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/hbl/lewan/main/chat/ChatTabFragment.java b/app/src/main/java/com/hbl/lewan/main/chat/ChatTabFragment.java index 154608c..346d91d 100644 --- a/app/src/main/java/com/hbl/lewan/main/chat/ChatTabFragment.java +++ b/app/src/main/java/com/hbl/lewan/main/chat/ChatTabFragment.java @@ -23,6 +23,7 @@ import com.hbl.lewan.IMUIKitConfig; import com.hbl.lewan.R; import com.hbl.lewan.databinding.FragmentChatBinding; import com.hbl.lewan.imkit.selector.FunContactSelectorActivity; +import com.hbl.lewan.imkit.verify.FunVerifyListActivity; import com.hbl.lewan.main.FragmentAdapter; import com.hbl.lewan.main.MainActivity; import com.hbl.lewan.main.index.add.AddFriendsActivity; @@ -48,9 +49,11 @@ import com.netease.yunxin.kit.chatkit.repo.ContactRepo; import com.netease.yunxin.kit.chatkit.ui.fun.FunChatForwardSelectDialog; import com.netease.yunxin.kit.common.ui.fragments.BaseFragment; import com.netease.yunxin.kit.common.utils.NetworkUtils; +import com.netease.yunxin.kit.contactkit.ui.fun.contact.FunContactFragment; import com.netease.yunxin.kit.contactkit.ui.fun.search.FunSearchActivity; import com.netease.yunxin.kit.conversationkit.ui.common.ConversationConstant; import com.netease.yunxin.kit.conversationkit.ui.model.ConversationBean; +import com.netease.yunxin.kit.conversationkit.ui.normal.page.ConversationFragment; import com.netease.yunxin.kit.corekit.event.EventCenter; import com.netease.yunxin.kit.corekit.event.EventNotify; import com.netease.yunxin.kit.corekit.im.IMKitClient; @@ -71,7 +74,8 @@ import io.reactivex.schedulers.Schedulers; public class ChatTabFragment extends BaseFragment { FragmentChatBinding viewBinding; - ChatConversationFragment allConversationFragment; +// ChatConversationFragment allConversationFragment; + ConversationFragment contactFragment; ChatConversationFragment friendConversationFragment; ChatConversationFragment teamConversationFragment; // FollowListFragment followListFragment; @@ -243,7 +247,7 @@ public class ChatTabFragment extends BaseFragment { .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result feedbackResp) { - LogUtils.i("获取到的错误:" + feedbackResp + "" + feedbackResp.data); + LogUtils.i("获取到:" + feedbackResp + "" + feedbackResp.data); int count = feedbackResp.data.getSystemMsgCount(); int activityMsgCount = feedbackResp.data.getActivityMsgCount(); int msgcount = DataUtils.get(getActivity(), "activity_message_count", 0); @@ -314,7 +318,8 @@ public class ChatTabFragment extends BaseFragment { public void initView() { tabView = new View[]{viewBinding.layoutChatfmAll, viewBinding.layoutChatfmFriends, viewBinding.layoutChatfmGroup, viewBinding.layoutChatfmFollow}; - fragments.add(allConversationFragment = ChatConversationFragment.newInstance(0)); +// fragments.add(allConversationFragment = ChatConversationFragment.newInstance(0)); + fragments.add(contactFragment = new ConversationFragment()); // fragments.add(friendConversationFragment = ChatConversationFragment.newInstance(1)); // fragments.add(teamConversationFragment = ChatConversationFragment.newInstance(2)); // followListFragment = new FollowListFragment(); @@ -348,7 +353,9 @@ public class ChatTabFragment extends BaseFragment { viewBinding.ivIndexfmNotifytop.setOnClickListener(v -> { notifyCount = 0; setNotifyTotalCount(); - startActivity(new Intent(getActivity(), NotifyMessageActivity.class)); +// startActivity(new Intent(getActivity(), NotifyMessageActivity.class)); + startActivity(new Intent(getActivity(), FunVerifyListActivity.class)); + }); viewBinding.layoutChatfmCommonSearch.getRoot().setOnClickListener(view -> startActivity(new Intent(getActivity(), FunSearchActivity.class)) ); diff --git a/app/src/main/java/com/hbl/lewan/main/home/HomeFragment.java b/app/src/main/java/com/hbl/lewan/main/home/HomeFragment.java index 242d87d..fe94d31 100644 --- a/app/src/main/java/com/hbl/lewan/main/home/HomeFragment.java +++ b/app/src/main/java/com/hbl/lewan/main/home/HomeFragment.java @@ -465,7 +465,7 @@ public class HomeFragment extends BaseFragment { public void onResume() { super.onResume(); getWallet(); - getNotifiesCount(); +// getNotifiesCount(); if (verifyCount > 0) { getNotificationUnreadCount(); } diff --git a/app/src/main/java/com/hbl/lewan/main/index/add/AddFriendsActivity.java b/app/src/main/java/com/hbl/lewan/main/index/add/AddFriendsActivity.java index 169ef8c..0f5f9ed 100644 --- a/app/src/main/java/com/hbl/lewan/main/index/add/AddFriendsActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/index/add/AddFriendsActivity.java @@ -457,7 +457,7 @@ public class AddFriendsActivity extends LllChatBaseActivity { String result1 = ((HmsScan) obj).getOriginalValue(); // String result = CameraScan.parseScanResult(data); // Log.v(TAG, "2维码扫码结果:" + result); - Log.v("LAILIAOLIAO", "行动码是啥:" + result1); + Log.v("LAILIAOLIAO", "二维码是啥:" + result1); // 开始解析2维码内容并进入相应的处理逻辑 processQRCodeScanResult(this, result1); @@ -515,14 +515,14 @@ public class AddFriendsActivity extends LllChatBaseActivity { } else { QRCodeScheme.QRCodeData qrData = QRCodeScheme.parseCodeData(originalQrcodeStr); // 2维码内容前缀(形如“time_go_mm://add_user/”) - LogUtils.i("行动码是啥111:" + GsonUtils.beanToJSONString(qrData)); + LogUtils.i("二维码是啥111:" + GsonUtils.beanToJSONString(qrData)); String scheme = qrData.getScheme(); // 2维码内容(形如“400069”) String value = qrData.getValue(); String uid = qrData.getUserId(); if (!CommonUtils.isStringEmpty(scheme, true) && !CommonUtils.isStringEmpty(value, true)) { - LogUtils.i("行动码是啥222:" + scheme); + LogUtils.i("二维码是啥222:" + scheme); switch (scheme) { case QRCodeScheme.QR_CODE_SCHEME_ADD_USER: diff --git a/app/src/main/java/com/hbl/lewan/main/mine/AccountAndSecurityActivity.java b/app/src/main/java/com/hbl/lewan/main/mine/AccountAndSecurityActivity.java index 8e59fd1..dbd16f2 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/AccountAndSecurityActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/AccountAndSecurityActivity.java @@ -120,7 +120,7 @@ public class AccountAndSecurityActivity extends BaseActivity { // // wxAPI = WXAPIFactory.createWXAPI(this, IMUIKitConfig.WECHAT_APPID, true); // wxAPI.registerApp(IMUIKitConfig.WECHAT_APPID); -// initListeners(); + initListeners(); } @@ -183,6 +183,10 @@ public class AccountAndSecurityActivity extends BaseActivity { viewBinding.settingTitleBar.setOnBackIconClickListener(v -> onBackPressed()); viewBinding.zhmmBt.setOnClickListener(v -> { + if(loginBean!=null&&(loginBean.getUserType()+"").equals("2")){ + ToastX.showShortToast("副号不支持修改密码"); + return; + } if (bean != null) { if (bean.getPhoneBind() == false) { showDialog(); @@ -200,6 +204,11 @@ public class AccountAndSecurityActivity extends BaseActivity { }); viewBinding.bindPhoneBt.setOnClickListener(v -> { + if(loginBean!=null&&(loginBean.getUserType()+"").equals("2")){ + ToastX.showShortToast("副号不支持修改手机号"); + return; + + } if (bean != null && bean.getPhoneBind() == false) { Intent intent = new Intent(AccountAndSecurityActivity.this, ChangeAccoutActionActivity.class); intent.putExtra("type", ChangeAccoutActionActivity.TYPE_BIND_PHONE); @@ -221,6 +230,10 @@ public class AccountAndSecurityActivity extends BaseActivity { // } }); viewBinding.accoutBt.setOnClickListener(v -> { + if(loginBean!=null&&(loginBean.getUserType()+"").equals("2")){ + ToastX.showShortToast("副号不支持修改乐玩账号"); + return; + } startActivityForResult(new Intent(AccountAndSecurityActivity.this, SettingAccoutIdActivity.class), 888); }); viewBinding.closeAccount.setOnClickListener(v -> { @@ -297,8 +310,10 @@ public class AccountAndSecurityActivity extends BaseActivity { bean = feedbackResp.data; //只有这是个参数允许切换 // viewBinding.bindWechatTv.setText(feedbackResp.data.getWechatBind()?getString(R.string.yibangding_txt):getString(R.string.weibangding_txt)); - viewBinding.bindPhoneTv.setText(feedbackResp.data.getPhoneBind() ? (feedbackResp.data.getAreaCode() + feedbackResp.data.getPhone()) : getString(R.string.weibangding_txt)); + if(!loginBean.getUserType().equals("2")) { + viewBinding.bindPhoneTv.setText(feedbackResp.data.getPhoneBind() ? (feedbackResp.data.getAreaCode() + feedbackResp.data.getPhone()) : getString(R.string.weibangding_txt)); + } } @Override @@ -329,22 +344,26 @@ public class AccountAndSecurityActivity extends BaseActivity { @Override public void onSuccess(Result feedbackResp) { - LoginBean loginBean = DataUtils.getLocUserInfo(); + LoginBean loginBean1 = DataUtils.getLocUserInfo(); - if (loginBean != null) { + if (loginBean1 != null) { //只有这是个参数允许切换 - loginBean.setNwId(feedbackResp.data.getNwId()); - loginBean.setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); - loginBean.getUser().setNwId(feedbackResp.data.getNwId()); - loginBean.getUser().setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); - DataUtils.set(AccountAndSecurityActivity.this, "login_bean", GsonUtils.beanToJSONString(loginBean)); - + loginBean1.setNwId(feedbackResp.data.getNwId()); + loginBean1.setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); + loginBean1.getUser().setNwId(feedbackResp.data.getNwId()); + loginBean1.getUser().setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); + loginBean1.getUser().setUserType(feedbackResp.data.getUserType()); + DataUtils.set(AccountAndSecurityActivity.this, "login_bean", GsonUtils.beanToJSONString(loginBean1)); + loginBean = loginBean1; if (TextUtils.isEmpty(loginBean.getNwId())) { viewBinding.accoutTv.setText(getString(R.string.weishezhi_txt)); } else { viewBinding.accoutTv.setText(loginBean.getNwId()); } + if(feedbackResp.data.getUserType().equals("2")){ + viewBinding.bindPhoneTv.setText(feedbackResp.data.getUser_mail()); + } } } diff --git a/app/src/main/java/com/hbl/lewan/main/mine/AccoutListActivity.java b/app/src/main/java/com/hbl/lewan/main/mine/AccoutListActivity.java index 0967dd8..21bb9e1 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/AccoutListActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/AccoutListActivity.java @@ -10,6 +10,7 @@ import android.text.TextUtils; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -58,11 +59,14 @@ import com.hbl.lewan.utils.GsonUtils; import com.hbl.lewan.utils.LogUtils; import com.hbl.lewan.wallet.SetPayPasswordActivity; import com.hbl.lewan.wallet.TopUpActivity; +import com.hbl.lewan.welcome.WelcomeActivity; import com.hbl.lewan.widget.CircleImageView; import com.netease.nimlib.sdk.auth.LoginInfo; import com.netease.yunxin.kit.alog.ALog; import com.netease.yunxin.kit.chatkit.ui.common.RxBus; +import com.netease.yunxin.kit.chatkit.ui.data.ChatDatabase; import com.netease.yunxin.kit.common.ui.activities.BaseActivity; +import com.netease.yunxin.kit.common.ui.dialog.LoadingDialog; import com.netease.yunxin.kit.common.ui.utils.ToastX; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.login.LoginCallback; @@ -96,6 +100,7 @@ public class AccoutListActivity extends BaseActivity { iniAdapter(); accounts(); } + Handler handler = new Handler(); private void accounts() { @@ -107,6 +112,7 @@ public class AccoutListActivity extends BaseActivity { public void onSuccess(Result> feedbackResp) { if (feedbackResp.data != null && feedbackResp.data.size() > 0) { globalAmountList = (ArrayList) feedbackResp.data; +// globalAmountList.add(new AccountsBean(-1)); commonAdapter.setDates(globalAmountList); } } @@ -127,32 +133,46 @@ public class AccoutListActivity extends BaseActivity { @Override public void convert(ViewHolder holder, AccountsBean s, int index) { //{"userId":61330234,"phone":"jue00lie","nickname":"jue00lie","avatar":null} - holder.setText(R.id.title_tv, s.getNickname()); - holder.setText(R.id.des_tv, "ID:" + s.getUserId()); - CircleImageView item_iv = holder.getView(R.id.item_iv); - Glide.with(AccoutListActivity.this).load(s.getAvatar()).placeholder(R.mipmap.default_head_img).error(R.mipmap.default_head_img).into(item_iv); - TextView dqsy_tv = holder.getView(R.id.dqsy_tv); - if (IMKitClient.account().equals(s.getUserId() + "")) { - dqsy_tv.setVisibility(View.VISIBLE); - } else { - dqsy_tv.setVisibility(View.GONE); - } + LinearLayout user_ly = holder.getView(R.id.user_ly); + TextView add_accout_ly = holder.getView(R.id.add_accout_ly); TextView unreadTv = holder.getView(R.id.unreadTv); + TextView dqsy_tv = holder.getView(R.id.dqsy_tv); + CircleImageView item_iv = holder.getView(R.id.item_iv); + + dqsy_tv.setVisibility(View.GONE); unreadTv.setVisibility(View.GONE); + if (s.getUserId() == -1) { + add_accout_ly.setVisibility(View.VISIBLE); + user_ly.setVisibility(View.GONE); + item_iv.setImageResource(R.mipmap.add_accouts_img); + holder.getView(R.id.big_bg).setOnClickListener(v -> { - if (index == 0) { - unreadTv.setVisibility(View.VISIBLE); - } - - holder.getView(R.id.big_bg).setOnClickListener(v -> { + ToastX.showShortToast("去添加账号"); + }); + } else { + add_accout_ly.setVisibility(View.GONE); + user_ly.setVisibility(View.VISIBLE); + holder.setText(R.id.title_tv, s.getNickname()); + holder.setText(R.id.des_tv, "ID:" + s.getNwId()); + Glide.with(AccoutListActivity.this).load(s.getAvatar()).placeholder(R.mipmap.default_head_img).error(R.mipmap.default_head_img).into(item_iv); if (IMKitClient.account().equals(s.getUserId() + "")) { - return; + dqsy_tv.setVisibility(View.VISIBLE); } else { - changeUser(s); + dqsy_tv.setVisibility(View.GONE); } + if (index == 0) { + unreadTv.setVisibility(View.VISIBLE); + } + holder.getView(R.id.big_bg).setOnClickListener(v -> { - }); + if (!IMKitClient.account().equals(s.getUserId() + "")) { + changeUser(s); + } + + }); + + } } }; viewBinding.recycler.setAdapter(commonAdapter); @@ -161,8 +181,32 @@ public class AccoutListActivity extends BaseActivity { } private void changeUser(AccountsBean s) { + showLoadingDialog("正在切换账号"); + IMKitClient.logoutIM( + new com.netease.yunxin.kit.corekit.im.login.LoginCallback() { + @Override + public void onError(int errorCode, @NonNull String errorMsg) { + DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_ACCOUNT, ""); + DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_TOKEN, ""); + ChatDatabase.chatDatabase = null; + handler.postDelayed(() -> changeUserNew(s),3000); + } - Api.getInstance().changeAccount(s.getUserId()+"") + @Override + public void onSuccess(@Nullable Void data) { + DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_ACCOUNT, ""); + DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_TOKEN, ""); + ChatDatabase.chatDatabase = null; + handler.postDelayed(() -> changeUserNew(s),3000); + } + }); + + + + } + + private void changeUserNew(AccountsBean s) { + Api.getInstance().changeAccount(s.getUserId() + "") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver<>() { @@ -170,6 +214,7 @@ public class AccoutListActivity extends BaseActivity { public void onSuccess(Result feedbackResp) { if (TextUtils.isEmpty(feedbackResp.data.getUser().getChatToken())) { + dimessLoadingDialog(); ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(AccoutListActivity.this, getString(R.string.zhbhf_jqsb_txt), false); actionConfirmDialog.show(); return; @@ -184,11 +229,10 @@ public class AccoutListActivity extends BaseActivity { @Override public void onError(int code, String msg) { + dimessLoadingDialog(); ToastX.showShortToast(msg); } }); - - } private void loginIM(String account, String token) { @@ -203,12 +247,14 @@ public class AccoutListActivity extends BaseActivity { new LoginCallback<>() { @Override public void onError(int errorCode, @NonNull String errorMsg) { + dimessLoadingDialog(); ToastX.showShortToast( String.format(getResources().getString(R.string.login_fail), errorCode)); } @Override public void onSuccess(@Nullable LoginInfo data) { + dimessLoadingDialog(); DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_ACCOUNT, account); DataUtils.set(AccoutListActivity.this, IMUIKitConfig.LOGIN_TOKEN, token); DataUtils.set(AccoutListActivity.this, "last_login_time", System.currentTimeMillis()); @@ -219,8 +265,31 @@ public class AccoutListActivity extends BaseActivity { } + public LoadingDialog loadingDialog; + + public void showLoadingDialog() { + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.show(); + } + + public void showLoadingDialog(String msg) { + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText(msg); + loadingDialog.show(); + } + + + public void dimessLoadingDialog() { + if (loadingDialog != null) { + loadingDialog.dismiss(); + } + + } + private void showMainActivityAndFinish() { - ALog.d(Constant.PROJECT_TAG, AccoutListActivity.class.getName(), "showMainActivityAndFinish"); + ALog.d(Constant.PROJECT_TAG, AccoutListActivity.class.getName(), "showMainActivityAndFinish"); RxBus.getInstance().post(117765); //5秒 Intent intent = new Intent(); diff --git a/app/src/main/java/com/hbl/lewan/main/mine/MineFragment.java b/app/src/main/java/com/hbl/lewan/main/mine/MineFragment.java index 54befa5..6e0cadc 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/MineFragment.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/MineFragment.java @@ -82,6 +82,8 @@ import java.util.List; import java.util.Map; import com.hbl.lewan.dialog.SelectLanguageDialog; +import com.netease.yunxin.kit.corekit.im.utils.RouterConstant; +import com.netease.yunxin.kit.corekit.route.XKitRouter; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -255,8 +257,12 @@ public class MineFragment extends BaseFragment { checkAccounts(); }); - binding.friendTv.setOnClickListener(v -> startActivity(new Intent(getActivity(), FriendPermissionsActivity.class))); - + binding.friendTv.setOnClickListener(v -> + XKitRouter.withKey(RouterConstant.PATH_FUN_MY_BLACK_PAGE) + .withContext(getActivity()) + .navigate() + ); +// startActivity(new Intent(getActivity(), FriendPermissionsActivity.class)) binding.toMerchantTv.setOnClickListener(v -> { Intent intent = new Intent(getActivity(), JsBridgeActivity.class); intent.putExtra("url", IMUIKitConfig.MERCHANT_URL); @@ -276,10 +282,10 @@ public class MineFragment extends BaseFragment { .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result> feedbackResp) { - if(feedbackResp.data!=null && feedbackResp.data.size()>1){ - startActivity(new Intent(getActivity(),AccoutListActivity.class)); - }else{ - ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(getActivity(), "当前没有副号,是否需要购买", "取消","购买",true); + if (feedbackResp.data != null && feedbackResp.data.size() > 1) { + startActivity(new Intent(getActivity(), AccoutListActivity.class)); + } else { + ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(getActivity(), "当前没有副号,是否需要购买?", "取消", "购买", true); actionConfirmDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { @Override public void toSumbit() { @@ -302,6 +308,8 @@ public class MineFragment extends BaseFragment { } }); +// startActivity(new Intent(getActivity(),AccoutListActivity.class)); + } private void toWalletInfo(boolean b) { @@ -364,7 +372,7 @@ public class MineFragment extends BaseFragment { private void getVersion() { try { - Api.getInstance().version(com.hbl.lewan.network.ApiService.AREA_CODE.equals("+86")?7:0, DataUtils.getVersionCode(getActivity()), com.netease.yunxin.kit.chatkit.ui.network.ApiService.SUBSTATIONID1) + Api.getInstance().version(com.hbl.lewan.network.ApiService.AREA_CODE.equals("+86") ? 7 : 0, DataUtils.getVersionCode(getActivity()), com.netease.yunxin.kit.chatkit.ui.network.ApiService.SUBSTATIONID1) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver<>() { @@ -377,7 +385,7 @@ public class MineFragment extends BaseFragment { VersionDialog actionDialog = new VersionDialog(getActivity(), String.format(getString(R.string.updateversion_txt), versionBean.getVersionName()), getDownloadText(versionBean), getString(R.string.xiacigengxin_txt), - getString(R.string.login_form_have_latest_version_update_now),versionBean.getForceDownload()==0); + getString(R.string.login_form_have_latest_version_update_now), versionBean.getForceDownload() == 0); actionDialog.setOnToActionListener(new VersionDialog.OnToActionListener() { @Override public void toSumbit() { @@ -419,7 +427,7 @@ public class MineFragment extends BaseFragment { } private void checkUpdate(String url) { - new AppUpdater(getActivity(), url).start(); + new AppUpdater(getActivity(), url).start(); // Intent intent = new Intent(Intent.ACTION_VIEW); // intent.setData(Uri.parse(url)); // startActivity(intent); @@ -431,16 +439,16 @@ public class MineFragment extends BaseFragment { int loc = DataUtils.get(getActivity(), "locale", 1); switch (loc) { case 1: - name = versionBean.getUpgradeHintZhCn().replace("\\n","\n"); + name = versionBean.getUpgradeHintZhCn().replace("\\n", "\n"); break; case 2: - name = versionBean.getUpgradeHintEnUs().replace("\\n","\n"); + name = versionBean.getUpgradeHintEnUs().replace("\\n", "\n"); break; case 3: - name = versionBean.getUpgradeHintJaJp().replace("\\n","\n"); + name = versionBean.getUpgradeHintJaJp().replace("\\n", "\n"); break; default: - name = versionBean.getUpgradeHintZhTw().replace("\\n","\n"); + name = versionBean.getUpgradeHintZhTw().replace("\\n", "\n"); break; } diff --git a/app/src/main/java/com/hbl/lewan/main/mine/SettingAccoutIdActivity.java b/app/src/main/java/com/hbl/lewan/main/mine/SettingAccoutIdActivity.java index 07270af..c08a94e 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/SettingAccoutIdActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/SettingAccoutIdActivity.java @@ -107,6 +107,7 @@ public class SettingAccoutIdActivity extends BaseActivity { loginBean.setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); loginBean.getUser().setNwId(feedbackResp.data.getNwId()); loginBean.getUser().setNwIdSetTime(feedbackResp.data.getNwIdSetTime()); + loginBean.getUser().setUserType(feedbackResp.data.getUserType()); DataUtils.set(SettingAccoutIdActivity.this, "login_bean", GsonUtils.beanToJSONString(loginBean)); showChange(loginBean); diff --git a/app/src/main/java/com/hbl/lewan/main/mine/UserHeadEditActivity.java b/app/src/main/java/com/hbl/lewan/main/mine/UserHeadEditActivity.java index 83c853a..bbd2afa 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/UserHeadEditActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/UserHeadEditActivity.java @@ -243,7 +243,7 @@ public class UserHeadEditActivity extends BaseActivity implements CommonCallback String stsCredentialsBean; private void toShangchuanAli(File file, boolean isHead) { - showLoadingDialog(); + showLoadingDialog(isHead?"正在上传头像":"正在上传背景图"); Api.getInstance().stsCredentials1() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -342,6 +342,7 @@ public class UserHeadEditActivity extends BaseActivity implements CommonCallback } else { // 上传失败 LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); + ToastX.showShortToast(info.error); } }, options); } diff --git a/app/src/main/java/com/hbl/lewan/main/mine/UserInfoActivity.java b/app/src/main/java/com/hbl/lewan/main/mine/UserInfoActivity.java index 4d615af..910efec 100644 --- a/app/src/main/java/com/hbl/lewan/main/mine/UserInfoActivity.java +++ b/app/src/main/java/com/hbl/lewan/main/mine/UserInfoActivity.java @@ -233,7 +233,7 @@ public class UserInfoActivity extends BaseActivity { String result1 = ((HmsScan) obj).getOriginalValue(); // String result = CameraScan.parseScanResult(data); // Log.v(TAG, "2维码扫码结果:" + result); - Log.v("LAILIAOLIAO", "行动码是啥:" + result1); + Log.v("LAILIAOLIAO", "二维码是啥:" + result1); // 开始解析2维码内容并进入相应的处理逻辑 processQRCodeScanResult(this, result1); @@ -294,7 +294,7 @@ public class UserInfoActivity extends BaseActivity { } else { QRCodeScheme.QRCodeData qrData = QRCodeScheme.parseCodeData(originalQrcodeStr); // 2维码内容前缀(形如“time_go_mm://add_user/”) - LogUtils.i("行动码是啥111:" + GsonUtils.beanToJSONString(qrData)); + LogUtils.i("二维码是啥111:" + GsonUtils.beanToJSONString(qrData)); String scheme = qrData.getScheme(); // 2维码内容(形如“400069”) @@ -302,7 +302,7 @@ public class UserInfoActivity extends BaseActivity { String uid = qrData.getUserId(); if (!CommonUtils.isStringEmpty(scheme, true) && !CommonUtils.isStringEmpty(value, true)) { - LogUtils.i("行动码是啥222:" + scheme); + LogUtils.i("二维码是啥222:" + scheme); switch (scheme) { case QRCodeScheme.QR_CODE_SCHEME_ADD_USER: @@ -751,6 +751,11 @@ public class UserInfoActivity extends BaseActivity { v -> EditUserInfoActivity.launch(getApplicationContext(), Constant.EDIT_EMAIL, launcher)); binding.flPhone.setOnClickListener( v -> { + if(locUser!=null&&(locUser.getUserType()+"").equals("2")){ + ToastX.showShortToast("副号不支持修改手机号"); + return; + } + if (bean != null && bean.getPhoneBind() == false) { Intent intent = new Intent(UserInfoActivity.this, ChangeAccoutActionActivity.class); intent.putExtra("type", ChangeAccoutActionActivity.TYPE_BIND_PHONE); @@ -895,7 +900,8 @@ public class UserInfoActivity extends BaseActivity { public void onSuccess(Result feedbackResp) { bean = feedbackResp.data; //只有这是个参数允许切换 - binding.tvPhone.setText(bean.getAreaCode() + "" + bean.getPhone()); + if(!loginBean.getUserType().equals("2")) + binding.tvPhone.setText(bean.getAreaCode()+""+bean.getPhone()); } @@ -980,6 +986,9 @@ public class UserInfoActivity extends BaseActivity { @Override public void onSuccess(Result feedbackResp) { locUser = feedbackResp.data; + if(feedbackResp.data.getUserType().equals("2")) { + binding.tvPhone.setText(locUser.getUser_mail()); + } changeIndex(feedbackResp.data); } diff --git a/app/src/main/java/com/hbl/lewan/model/AccountsBean.java b/app/src/main/java/com/hbl/lewan/model/AccountsBean.java index c89f140..1f037e9 100644 --- a/app/src/main/java/com/hbl/lewan/model/AccountsBean.java +++ b/app/src/main/java/com/hbl/lewan/model/AccountsBean.java @@ -13,6 +13,22 @@ public class AccountsBean { private String phone; private String nickname; private String avatar; + private String nwId; + + public AccountsBean() { + } + + public AccountsBean(int userId) { + this.userId = userId; + } + + public String getNwId() { + return nwId; + } + + public void setNwId(String nwId) { + this.nwId = nwId; + } public int getUserId() { return userId; diff --git a/app/src/main/java/com/hbl/lewan/network/ApiService.java b/app/src/main/java/com/hbl/lewan/network/ApiService.java index c175e92..9cdacf0 100644 --- a/app/src/main/java/com/hbl/lewan/network/ApiService.java +++ b/app/src/main/java/com/hbl/lewan/network/ApiService.java @@ -1,7 +1,6 @@ package com.hbl.lewan.network; -import com.blankj.utilcode.util.LogUtils; import com.hbl.lewan.BuildConfig; import com.hbl.lewan.model.AccountsBean; import com.hbl.lewan.model.ActivityMsgBean; @@ -71,13 +70,11 @@ import com.netease.yunxin.kit.chatkit.ui.model.RedpacketBean; import com.netease.yunxin.kit.chatkit.ui.model.RedpacketGroupBean; import com.netease.yunxin.kit.chatkit.ui.model.TransferBean; -import java.util.HashMap; import java.util.List; import java.util.Map; import io.reactivex.Observable; import okhttp3.MultipartBody; -import okhttp3.RequestBody; import retrofit2.http.Body; import retrofit2.http.DELETE; import retrofit2.http.Field; @@ -1211,6 +1208,13 @@ public interface ApiService { Observable>> withdraw(@Query("page") int page, @Query("size") int size); + + @POST("/group/switch") + Observable groupSwitch(@Body Map requestBody); + + + + } diff --git a/app/src/main/java/com/hbl/lewan/redpack/ReceiveRedPacketActivity.java b/app/src/main/java/com/hbl/lewan/redpack/ReceiveRedPacketActivity.java index e76372c..5961179 100644 --- a/app/src/main/java/com/hbl/lewan/redpack/ReceiveRedPacketActivity.java +++ b/app/src/main/java/com/hbl/lewan/redpack/ReceiveRedPacketActivity.java @@ -29,6 +29,7 @@ import com.hbl.lewan.utils.GsonUtils; import com.hbl.lewan.utils.ImageCacheLoader; import com.hbl.lewan.utils.LogUtils; import com.hbl.lewan.wallet.WalletInfoActivity; +import com.hbl.lewan.wallet.WalletInfoNewActivity; import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.uinfo.UserService; import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; @@ -331,9 +332,9 @@ public class ReceiveRedPacketActivity extends BaseActivity implements View.OnCli viewBinding.toWalletTv.setText(R.string.ddfglq_txt); // titleTipsTvuser.setText(String.format("1个红包共%s%.2f",getString(R.string.danwei_txt), redpacketBean.getAmount() / 100f)); if (redpacketBean.getCoinType() == 0) { - viewBinding.titleTipsTvuser.setText(getString(R.string.red_envelope_amount_txt) + AppUtils.getQian(redpacketGroupBean.getAmount()) + getTypeName() + ",等待对方领取"); + viewBinding.titleTipsTvuser.setText(getString(R.string.red_envelope_amount_txt) + AppUtils.getQian(redpacketBean.getAmount()) + getTypeName() + ",等待对方领取"); } else { - viewBinding.titleTipsTvuser.setText(getString(R.string.red_envelope_amount_txt) +AppUtils.getQian(redpacketGroupBean.getAmount()) + getTypeName() + ",等待对方领取"); + viewBinding.titleTipsTvuser.setText(getString(R.string.red_envelope_amount_txt) +AppUtils.getQian(redpacketBean.getAmount()) + getTypeName() + ",等待对方领取"); } } else if (redpacketBean.getStatus() == 1) { @@ -348,7 +349,7 @@ public class ReceiveRedPacketActivity extends BaseActivity implements View.OnCli viewBinding.toWalletTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(ReceiveRedPacketActivity.this, WalletInfoActivity.class); + Intent intent = new Intent(ReceiveRedPacketActivity.this, WalletInfoNewActivity.class); intent.putExtra("isG", redpacketBean.getCoinType().equals(0)); startActivity(intent); @@ -359,7 +360,7 @@ public class ReceiveRedPacketActivity extends BaseActivity implements View.OnCli } viewBinding.endLy.setVisibility(View.GONE); - viewBinding.priceTv.setText(AppUtils.getQian(redpacketGroupBean.getAmount()) + getTypeName()); + viewBinding.priceTv.setText(AppUtils.getQian(redpacketBean.getAmount()) + getTypeName()); viewBinding.timeTv.setText(redpacketBean.getReceiveTime() + ""); if ((redpacketBean.getReceiverUid() + "").equals(IMKitClient.account())) { diff --git a/app/src/main/java/com/hbl/lewan/redpack/SendGiftRedPacketActivity.java b/app/src/main/java/com/hbl/lewan/redpack/SendGiftRedPacketActivity.java index 150ccce..d4ea8d8 100644 --- a/app/src/main/java/com/hbl/lewan/redpack/SendGiftRedPacketActivity.java +++ b/app/src/main/java/com/hbl/lewan/redpack/SendGiftRedPacketActivity.java @@ -319,12 +319,13 @@ public class SendGiftRedPacketActivity extends BaseActivity { } } else { - if (Float.parseFloat(viewBinding.numberHintEt.getText().toString().trim()) > IMUIKitConfig.SINGLE_MAX_MONEY) { -// ToastUtils.showShort(String.format(getString(R.string.max_red_packet_tips_txt),getString(R.string.danwei_txt),Const.SINGLE_MAX_MONEY)); - ToastX.showShortToast(getString(R.string.dghbjebndy_txt) + " " + IMUIKitConfig.SINGLE_MAX_MONEY); - return; - } +// if (Float.parseFloat(viewBinding.numberHintEt.getText().toString().trim()) > IMUIKitConfig.SINGLE_MAX_MONEY) { +//// ToastUtils.showShort(String.format(getString(R.string.max_red_packet_tips_txt),getString(R.string.danwei_txt),Const.SINGLE_MAX_MONEY)); +// ToastX.showShortToast(getString(R.string.dghbjebndy_txt) + " " + IMUIKitConfig.SINGLE_MAX_MONEY); +// +// return; +// } } if (walletBean != null) { if (Float.parseFloat(viewBinding.numberTv.getText().toString().trim()) > (walletBean.getGiftCoin() / 100f)) { diff --git a/app/src/main/java/com/hbl/lewan/redpack/SendRedPacketActivity.java b/app/src/main/java/com/hbl/lewan/redpack/SendRedPacketActivity.java index 8f67615..739de53 100644 --- a/app/src/main/java/com/hbl/lewan/redpack/SendRedPacketActivity.java +++ b/app/src/main/java/com/hbl/lewan/redpack/SendRedPacketActivity.java @@ -172,7 +172,17 @@ public class SendRedPacketActivity extends BaseActivity { // this.setTitle(getString(R.string.fshb_txt)); if (isGroup) { // viewBinding.jintLeftTv.setText(R.string.zjine_txt); - viewBinding.tipsTv.setVisibility(View.VISIBLE); + + if(getIntent().getBooleanExtra("is_zhuanshu",false)){ + isPinShouQi = false; + userInfo = (UserInfo) getIntent().getSerializableExtra("user_Bean"); + viewBinding.tipsTv.setVisibility(View.GONE); + viewBinding.zhuanshuNextIv.setVisibility(View.GONE); + viewBinding.zhuanshuLy.setEnabled(false); + }else{ + viewBinding.tipsTv.setVisibility(View.VISIBLE); + } + changeType(); diff --git a/app/src/main/java/com/hbl/lewan/redpack/TransferAccountsActivity.java b/app/src/main/java/com/hbl/lewan/redpack/TransferAccountsActivity.java index 3cc4049..c596249 100644 --- a/app/src/main/java/com/hbl/lewan/redpack/TransferAccountsActivity.java +++ b/app/src/main/java/com/hbl/lewan/redpack/TransferAccountsActivity.java @@ -75,7 +75,7 @@ public class TransferAccountsActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - getWindow().setStatusBarColor(getResources().getColor(R.color.color_fffafa)); + getWindow().setStatusBarColor(getResources().getColor(R.color.white)); getWindow().setNavigationBarColor(getResources().getColor(R.color.color_fffafa)); super.onCreate(savedInstanceState); viewBinding = ActivityTransferAccountsBinding.inflate(getLayoutInflater()); diff --git a/app/src/main/java/com/hbl/lewan/redpack/TransferInfoActivity.java b/app/src/main/java/com/hbl/lewan/redpack/TransferInfoActivity.java index 3e03112..0970b2e 100644 --- a/app/src/main/java/com/hbl/lewan/redpack/TransferInfoActivity.java +++ b/app/src/main/java/com/hbl/lewan/redpack/TransferInfoActivity.java @@ -61,7 +61,7 @@ public class TransferInfoActivity extends BaseActivity @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - getWindow().setStatusBarColor(getResources().getColor(R.color.color_fcfcfc)); + getWindow().setStatusBarColor(getResources().getColor(R.color.white)); getWindow().setNavigationBarColor(getResources().getColor(R.color.color_white)); super.onCreate(savedInstanceState); viewBinding = ActivityTransferInfoBinding.inflate(getLayoutInflater()); diff --git a/app/src/main/java/com/hbl/lewan/utils/QRCodeScheme.java b/app/src/main/java/com/hbl/lewan/utils/QRCodeScheme.java index 2e14013..00f6b66 100644 --- a/app/src/main/java/com/hbl/lewan/utils/QRCodeScheme.java +++ b/app/src/main/java/com/hbl/lewan/utils/QRCodeScheme.java @@ -66,7 +66,7 @@ public class QRCodeScheme { * 构造指定群聊的加群2维码的字符串。 * * @param gid 群id - * @param sharedByUid 行动码分享者的uid + * @param sharedByUid 二维码分享者的uid * @return 将用于生成2维码的字符串 */ public static String constructJoinGroupCodeStr(@NonNull String gid, @NonNull String sharedByUid) { @@ -76,7 +76,7 @@ public class QRCodeScheme { /** * 解析2维码内容。 * - * @param qrcodeStr 扫描出的原始行动码字符串 + * @param qrcodeStr 扫描出的原始二维码字符串 * @return 无论能否成功解析,都会返回QRCodeData对象 */ public static QRCodeData parseCodeData(String qrcodeStr){ @@ -97,7 +97,7 @@ public class QRCodeScheme { String scheme = qrcodeStr.substring(0, qrcodeStr.lastIndexOf("/") + 1); // 2维码内容 String value = qrcodeStr.substring(qrcodeStr.lastIndexOf("/") + 1); - LogUtils.i("行动码是啥:"+scheme+";;"+value); + LogUtils.i("二维码是啥:"+scheme+";;"+value); // 设置 d.setScheme(scheme).setValue(value).setUserId(uid); } diff --git a/app/src/main/java/com/hbl/lewan/utils/ShareDateUtils.java b/app/src/main/java/com/hbl/lewan/utils/ShareDateUtils.java index ae69951..ae23106 100644 --- a/app/src/main/java/com/hbl/lewan/utils/ShareDateUtils.java +++ b/app/src/main/java/com/hbl/lewan/utils/ShareDateUtils.java @@ -110,7 +110,7 @@ public class ShareDateUtils { @Override public void onSuccess(@Nullable List param) { for (ConversationInfo conversationInfo : param) { - LogUtils.i("用户信息:" + GsonUtils.beanToJSONString(conversationInfo)); +// LogUtils.i("用户信息:" + GsonUtils.beanToJSONString(conversationInfo)); if (conversationInfo.getTeamInfo() != null) { titleUsers.add(new UserShareBean(conversationInfo.getTeamInfo())); @@ -152,7 +152,7 @@ public class ShareDateUtils { @Override public void onSuccess(@Nullable List param) { for (FriendInfo conversationInfo : param) { - LogUtils.i("用户信息1:" + GsonUtils.beanToJSONString(conversationInfo)); +// LogUtils.i("用户信息1:" + GsonUtils.beanToJSONString(conversationInfo)); boolean isAt = false; for (int i = 0; i < titleUsers.size(); i++) { if (titleUsers.get(i).getFriendInfo() != null) { diff --git a/app/src/main/java/com/hbl/lewan/wallet/BindWeChatOrAliPayActivity.java b/app/src/main/java/com/hbl/lewan/wallet/BindWeChatOrAliPayActivity.java index 81a3a82..9a77f07 100644 --- a/app/src/main/java/com/hbl/lewan/wallet/BindWeChatOrAliPayActivity.java +++ b/app/src/main/java/com/hbl/lewan/wallet/BindWeChatOrAliPayActivity.java @@ -353,7 +353,7 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { String stsCredentialsBean; private void toShangchuanAli(File file) { - showLoadingDialog(); + showLoadingDialog("正在上传图片"); Api.getInstance().stsCredentials1() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/hbl/lewan/wallet/MyWalletActivity.java b/app/src/main/java/com/hbl/lewan/wallet/MyWalletActivity.java index a14733c..4377ef9 100644 --- a/app/src/main/java/com/hbl/lewan/wallet/MyWalletActivity.java +++ b/app/src/main/java/com/hbl/lewan/wallet/MyWalletActivity.java @@ -14,7 +14,10 @@ import com.hbl.lewan.R; import com.hbl.lewan.databinding.ActivityMywalletBinding; import com.hbl.lewan.databinding.ActivityWalletInfoNewBinding; import com.hbl.lewan.dialog.ActionConfirmDialog; +import com.hbl.lewan.main.mine.AccoutListActivity; +import com.hbl.lewan.main.mine.BuyAccountActivity; import com.hbl.lewan.main.mine.ChangeAccoutActionActivity; +import com.hbl.lewan.model.AccountsBean; import com.hbl.lewan.model.BindBean; import com.hbl.lewan.model.LoginBean; import com.hbl.lewan.model.WalletBean; @@ -30,6 +33,8 @@ import com.netease.yunxin.kit.common.ui.activities.BaseActivity; import com.netease.yunxin.kit.common.ui.utils.ToastX; import com.netease.yunxin.kit.corekit.im.IMKitClient; +import java.util.List; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -59,6 +64,48 @@ public class MyWalletActivity extends BaseActivity { bindInfo(); } + + + private void checkAccounts() { + Api.getInstance().accounts() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result> feedbackResp) { + if(feedbackResp.data!=null && feedbackResp.data.size()>1){ +// startActivity(new Intent(MyWalletActivity.this, AccoutListActivity.class)); + viewBinding.gmfhLy.setVisibility(View.GONE); + viewBinding.gmfhLine.setVisibility(View.GONE); + }else{ + viewBinding.gmfhLy.setVisibility(View.VISIBLE); + viewBinding.gmfhLine.setVisibility(View.VISIBLE); + +// ActionConfirmDialog actionConfirmDialog = new ActionConfirmDialog(getActivity(), "当前没有副号,是否需要购买", "取消","购买",true); +// actionConfirmDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { +// @Override +// public void toSumbit() { +// startActivity(new Intent(getActivity(), BuyAccountActivity.class)); +// } +// +// @Override +// public void toCancel() { +// +// } +// }); +// actionConfirmDialog.show(); + } + } + + @Override + public void onError(int code, String msg) { + LogUtils.i("获取到的错误:" + code + "" + msg); + ToastX.showShortToast(msg); + + } + }); + } + LoginBean locUser; private void getUserInfo(int type) { @@ -111,6 +158,8 @@ public class MyWalletActivity extends BaseActivity { protected void onResume() { super.onResume(); getWallet(); + checkAccounts(); + } private void bindInfo() { @@ -134,7 +183,12 @@ public class MyWalletActivity extends BaseActivity { protected void initView() { viewBinding.contactListActivityTitleBar.getBackImageView().setOnClickListener(v -> finish()); - + viewBinding.gmfhBt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(MyWalletActivity.this, BuyAccountActivity.class)); + } + }); viewBinding.lqmxBt.setOnClickListener(v -> { if (bindBean != null) { if (!bindBean.getPhoneBind()) { diff --git a/app/src/main/java/com/hbl/lewan/wallet/PaySettingActivity.java b/app/src/main/java/com/hbl/lewan/wallet/PaySettingActivity.java index 3bd2784..da1a29a 100644 --- a/app/src/main/java/com/hbl/lewan/wallet/PaySettingActivity.java +++ b/app/src/main/java/com/hbl/lewan/wallet/PaySettingActivity.java @@ -79,10 +79,19 @@ public class PaySettingActivity extends BaseActivity implements SelectPayTypeDia viewBinding.mianmiSc.setChecked(DataUtils.get(PaySettingActivity.this, "hasMianMi", false)); viewBinding.zhiwenSc.setChecked(DataUtils.get(PaySettingActivity.this, "hasFinger", false)); viewBinding.mianmiV.setOnClickListener(v -> { + if(loginBean!=null&&(loginBean.getUserType()+"").equals("2")){ + ToastX.showShortToast("副号不支持修改密码"); + return; + } + + if (bean != null && !bean.getPayPasswordSet()) { showDialogPay(); return; } + + + boolean isCheck = DataUtils.get(PaySettingActivity.this, "hasMianMi", false); if (isCheck) { @@ -205,6 +214,8 @@ public class PaySettingActivity extends BaseActivity implements SelectPayTypeDia } + + private void showDialogPay() { com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog actionDialog = new com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog(PaySettingActivity.this, @@ -325,6 +336,10 @@ public class PaySettingActivity extends BaseActivity implements SelectPayTypeDia @Override protected void onResume() { super.onResume(); + + loginBean = DataUtils.getLocUserInfo(); + + bindInfo(IMKitClient.account()); } diff --git a/app/src/main/java/com/hbl/lewan/wallet/TiXianActivity.java b/app/src/main/java/com/hbl/lewan/wallet/TiXianActivity.java index 5e12636..9f79bec 100644 --- a/app/src/main/java/com/hbl/lewan/wallet/TiXianActivity.java +++ b/app/src/main/java/com/hbl/lewan/wallet/TiXianActivity.java @@ -276,6 +276,7 @@ public class TiXianActivity extends BaseActivity { bankBean =aliPayBeans.get(0); }else{ viewBinding.shoukuanBt.setText(""); + bankBean = null; } if(tiXianConfBean!=null) { viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费" + tiXianConfBean.getBaseFee() + "
提现费率" + tiXianConfBean.getFeeRate() + "%
预计到账时间2小时以内")); @@ -291,6 +292,8 @@ public class TiXianActivity extends BaseActivity { bankBean =bankBeans.get(0); }else{ viewBinding.shoukuanBt.setText(""); + bankBean = null; + } if(tiXianConfBean!=null) { viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费" + tiXianConfBean.getBaseFee() + "
提现费率" + tiXianConfBean.getFeeRate() + "%
预计到账时间2小时以内")); diff --git a/app/src/main/res/drawable/pass_word_bg1.xml b/app/src/main/res/drawable/pass_word_bg1.xml new file mode 100644 index 0000000..dfa1cb7 --- /dev/null +++ b/app/src/main/res/drawable/pass_word_bg1.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_dialog_bg222.xml b/app/src/main/res/drawable/shape_dialog_bg222.xml new file mode 100644 index 0000000..2a53222 --- /dev/null +++ b/app/src/main/res/drawable/shape_dialog_bg222.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_base_chatsetting.xml b/app/src/main/res/layout/activity_base_chatsetting.xml index 00cde0b..842c296 100644 --- a/app/src/main/res/layout/activity_base_chatsetting.xml +++ b/app/src/main/res/layout/activity_base_chatsetting.xml @@ -182,7 +182,7 @@ + + + + + + + + + + android:textSize="@dimen/sp_14" /> @@ -32,67 +31,83 @@ app:layout_constraintTop_toTopOf="parent" app:titleText="我的钱包" app:titleTextColor="@android:color/black" /> - - - - - - - + android:background="@mipmap/qianbao_top_float_bg" + android:orientation="vertical"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_20" + android:text="我的零钱" + android:textColor="#ffffffff" + android:textSize="14sp" /> + android:id="@+id/jinbi_yue_tv" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_15" + android:textColor="#fffcf0a1" + android:textSize="30sp" /> + + + + + + + - + + @@ -223,7 +239,36 @@ android:layout_marginLeft="@dimen/dp_15" android:layout_marginRight="@dimen/dp_15" android:background="#D8D8D8" /> + +