From bacfd44ecf7bf1206edb793ead5cb86a42463c0c Mon Sep 17 00:00:00 2001 From: nail <123456789@qq.com> Date: Tue, 7 Apr 2026 17:20:35 +0800 Subject: [PATCH] =?UTF-8?q?IM=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 4 + .../recent/RecentContactsFragment.java | 127 ++++++++++------ .../news/activity/CateRecordActivity.java | 42 +++++ .../news/fragment/MainMessageFragment.java | 45 +++++- .../view/settings/SettingFragment2.java | 38 +++-- .../view/settings/WalletActivity.java | 64 +++----- .../main/res/layout/activity_cate_record.xml | 11 ++ .../res/layout/activity_system_setting.xml | 1 + app/src/main/res/layout/activity_wallet.xml | 143 ++++-------------- app/src/main/res/layout/fragment_setting2.xml | 13 +- .../res/layout/item_main_message_title.xml | 61 +++++++- .../main/res/layout/nim_message_fragment.xml | 1 + .../res/mipmap-xhdpi/ic_clear_chat_list.png | Bin 0 -> 903 bytes .../res/mipmap-xhdpi/ic_clear_un_read.png | Bin 0 -> 869 bytes .../res/layout/muna_base_dialog_message.xml | 2 +- .../res/drawable-xhdpi/ic_cate_record.png | Bin 0 -> 5246 bytes .../res/drawable-xhdpi/ic_office_service.png | Bin 0 -> 5553 bytes .../res/drawable-xhdpi/ic_system_notice.png | Bin 0 -> 5448 bytes .../res/drawable/nim_message_send_bg.xml | 12 +- yunxinkit/res/layout/nim_recent_contacts.xml | 127 +++++++++++++++- 20 files changed, 446 insertions(+), 245 deletions(-) create mode 100644 app/src/main/java/com/xuebiping/bolizhuzi/view/news/activity/CateRecordActivity.java create mode 100644 app/src/main/res/layout/activity_cate_record.xml create mode 100644 app/src/main/res/mipmap-xhdpi/ic_clear_chat_list.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_clear_un_read.png create mode 100644 yunxinkit/res/drawable-xhdpi/ic_cate_record.png create mode 100644 yunxinkit/res/drawable-xhdpi/ic_office_service.png create mode 100644 yunxinkit/res/drawable-xhdpi/ic_system_notice.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6ac7fdc..cba2a8a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -360,6 +360,10 @@ + + () { - @Override - public void onResult(int code, Void result, Throwable exception) { - if (code == ResponseCode.RES_SUCCESS) { - int unreadNum = NIMClient.getService(MsgService.class).getTotalUnreadCount(true); - avatar = ""; - if (unreadNum > 0) { - NIMClient.getService(MsgService.class).queryRecentContacts().setCallback(new RequestCallbackWrapper>() { - @Override - public void onResult(int code, List recentContacts, Throwable throwable) { - if (recentContacts != null && recentContacts.size() > 0) { - for (int i = 0; i < recentContacts.size(); i++) { - if (NIMClient.getService(FriendService.class).isNeedMessageNotify(recentContacts.get(i).getContactId())) { - if (recentContacts.get(i).getUnreadCount() != 0 && Long.parseLong(recentContacts.get(i).getContactId()) > 20 && recentContacts.get(i).getSessionType() == SessionTypeEnum.P2P) { - NimUserInfo userInfo = NIMClient.getService(UserService.class).getUserInfo(recentContacts.get(i).getContactId()); - if (ConstUrl.LOGDEBUG)Log.i("TAG", "recentContacts: ----------->" + userInfo); - if (userInfo != null) { - avatar = userInfo.getAvatar(); - if (!TextUtils.isEmpty(avatar)) { - avatar = StrU.getResourcePath(avatar, getContext()); - } - } - break; - } - } - } - } - EventBus.getDefault().post(new UnReadCountEvent(unreadNum, avatar)); - } - }); - } else { - EventBus.getDefault().post(new UnReadCountEvent(unreadNum, avatar)); - } - - refreshMessages(false); -// if (checkState) { -// Toast.makeText(UserProfileActivity.this, "开启消息提醒", Toast.LENGTH_SHORT).show(); +// boolean checkState = NIMClient.getService(FriendService.class).isNeedMessageNotify(recent.getContactId()); +// title = (checkState ? getString(R.string.main_msg_list_mute_on) : getString(R.string.main_msg_list_mute_off)); +// alertDialog.addItem(title, new CustomAlertDialog.onSeparateItemClickListener() { +// @Override +// public void onClick() { +// NIMClient.getService(FriendService.class).setMessageNotify(recent.getContactId(), !checkState).setCallback(new RequestCallbackWrapper() { +// @Override +// public void onResult(int code, Void result, Throwable exception) { +// if (code == ResponseCode.RES_SUCCESS) { +// int unreadNum = NIMClient.getService(MsgService.class).getTotalUnreadCount(true); +// avatar = ""; +// if (unreadNum > 0) { +// NIMClient.getService(MsgService.class).queryRecentContacts().setCallback(new RequestCallbackWrapper>() { +// @Override +// public void onResult(int code, List recentContacts, Throwable throwable) { +// if (recentContacts != null && recentContacts.size() > 0) { +// for (int i = 0; i < recentContacts.size(); i++) { +// if (NIMClient.getService(FriendService.class).isNeedMessageNotify(recentContacts.get(i).getContactId())) { +// if (recentContacts.get(i).getUnreadCount() != 0 && Long.parseLong(recentContacts.get(i).getContactId()) > 20 && recentContacts.get(i).getSessionType() == SessionTypeEnum.P2P) { +// NimUserInfo userInfo = NIMClient.getService(UserService.class).getUserInfo(recentContacts.get(i).getContactId()); +// if (ConstUrl.LOGDEBUG)Log.i("TAG", "recentContacts: ----------->" + userInfo); +// if (userInfo != null) { +// avatar = userInfo.getAvatar(); +// if (!TextUtils.isEmpty(avatar)) { +// avatar = StrU.getResourcePath(avatar, getContext()); +// } +// } +// break; +// } +// } +// } +// } +// EventBus.getDefault().post(new UnReadCountEvent(unreadNum, avatar)); +// } +// }); // } else { -// Toast.makeText(UserProfileActivity.this, "关闭消息提醒", Toast.LENGTH_SHORT).show(); +// EventBus.getDefault().post(new UnReadCountEvent(unreadNum, avatar)); // } - } - } - }); - } - }); +// +// refreshMessages(false); +//// if (checkState) { +//// Toast.makeText(UserProfileActivity.this, "开启消息提醒", Toast.LENGTH_SHORT).show(); +//// } else { +//// Toast.makeText(UserProfileActivity.this, "关闭消息提醒", Toast.LENGTH_SHORT).show(); +//// } +// } +// } +// }); +// } +// }); /* alertDialog.addItem("删除该聊天(仅服务器)", new CustomAlertDialog.onSeparateItemClickListener() { @Override diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/news/activity/CateRecordActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/news/activity/CateRecordActivity.java new file mode 100644 index 0000000..29381d2 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/news/activity/CateRecordActivity.java @@ -0,0 +1,42 @@ +package com.xuebiping.bolizhuzi.view.news.activity; + +import android.os.Bundle; +import android.view.View; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.news.fragment.VideoRecordFragment; + +import java.util.ArrayList; +import java.util.List; + +public class CateRecordActivity extends BaseActivity{ + + private ViewPager mRecord_view_pager; + private VideoRecordFragment mVideoRecordFragment; + private List mChannelFragments = new ArrayList<>(); + private MainViewPagerAdapter mViewPagerAdapter; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cate_record); + setTitleName("通话记录"); + initView(); + } + + private void initView() { + mRecord_view_pager = findViewById(R.id.record_view_pager); + + mVideoRecordFragment = new VideoRecordFragment(); + mChannelFragments.add(mVideoRecordFragment); + mViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager(), + mChannelFragments); + + mRecord_view_pager.setAdapter(mViewPagerAdapter); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/news/fragment/MainMessageFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/news/fragment/MainMessageFragment.java index 15c4c2c..2b7830d 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/news/fragment/MainMessageFragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/news/fragment/MainMessageFragment.java @@ -14,6 +14,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.Nullable; @@ -22,8 +23,10 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; import com.blankj.utilcode.util.TimeUtils; +import com.fengliyan.uikit.toast.MaleToast; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.controller.constant.ConsUser; +import com.xuebiping.bolizhuzi.controller.eventBus.UnReadCountEvent; import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; import com.xuebiping.bolizhuzi.controller.user.manager.UserManager; @@ -34,6 +37,7 @@ import com.xuebiping.bolizhuzi.utils.SPUtils; import com.xuebiping.bolizhuzi.utils.StrU; import com.xuebiping.bolizhuzi.view.base.BaseActivity; import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; +import com.xuebiping.bolizhuzi.view.main.SearchActivity; import com.xuebiping.bolizhuzi.view.settings.MemberActivity; import com.xuebiping.bolizhuzi.view.settings.MissionActivity; import com.fengliyan.uikit.dialog.BaseMessageDialog; @@ -44,6 +48,8 @@ import com.netease.nimlib.sdk.msg.MsgService; import java.util.ArrayList; import java.util.List; +import de.greenrobot.event.EventBus; + /** * Created by halifa on 2019/2/27. */ @@ -58,7 +64,7 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene private View mTitleTag1; private View mTitleTag2; private View mTitlePost; - private ImageView title_clear_unread; + private RelativeLayout title_clear_unread; private ViewPager mMainViewPager; private LinearLayout lin_msg_vip; private TextView tv_msg_vip_time; @@ -67,10 +73,12 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene private List mChannelFragments = new ArrayList<>(); private MainViewPagerAdapter mViewPagerAdapter; private ConversasionFragment mConversasionFragment; - private VideoRecordFragment mVideoRecordFragment; +// private VideoRecordFragment mVideoRecordFragment; private int mIndex; private RecentContactsFragment mRecentContactsFragment; private CountDownTimer mVipCountDownTimer = null; + private RelativeLayout mRl_clear_chat_list; + private RelativeLayout mRl_home_search; @Nullable @Override @@ -179,10 +187,14 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene mTitleBottom2 = mTitleView.findViewById(R.id.title_bottom_line_2); mTitlePost = mTitleView.findViewById(R.id.title_post); title_clear_unread = mTitleView.findViewById(R.id.title_clear_unread); + mRl_clear_chat_list = mTitleView.findViewById(R.id.rl_clear_chat_list); + mRl_home_search = mTitleView.findViewById(R.id.rl_home_search); mTitleTag1.setOnClickListener(this); mTitleTag2.setOnClickListener(this); mTitlePost.setOnClickListener(this); title_clear_unread.setOnClickListener(this); + mRl_clear_chat_list.setOnClickListener(this); + mRl_home_search.setOnClickListener(this); title.addViewTo(mTitleView, POSTION_CENTER); } @@ -193,9 +205,9 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene lin_msg_sign = v.findViewById(R.id.lin_msg_sign); tv_msg_sign_in = v.findViewById(R.id.tv_msg_sign_in); mRecentContactsFragment = new RecentContactsFragment(); - mVideoRecordFragment = new VideoRecordFragment(); +// mVideoRecordFragment = new VideoRecordFragment(); mChannelFragments.add(mRecentContactsFragment); - mChannelFragments.add(mVideoRecordFragment); +// mChannelFragments.add(mVideoRecordFragment); lin_msg_vip.setOnClickListener(this); lin_msg_sign.setOnClickListener(this); @@ -233,12 +245,12 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene mTitleText1.setTextColor(ContextCompat.getColor(getActivity(), R.color.one_text)); mTitleText1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); mTitleText1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - mTitleBottom1.setVisibility(View.VISIBLE); +// mTitleBottom1.setVisibility(View.VISIBLE); mTitleText2.setTextColor(ContextCompat.getColor(getActivity(), R.color.one_text)); mTitleText2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); mTitleText2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - mTitleBottom2.setVisibility(View.GONE); +// mTitleBottom2.setVisibility(View.GONE); break; case 1: mTitleText2.setTextColor(ContextCompat.getColor(getActivity(), R.color.one_text)); @@ -255,6 +267,7 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene } private BaseMessageDialog clearUnreadDialog; + private BaseMessageDialog clearChatListDialog; @Override public void onClick(View view) { @@ -265,7 +278,7 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene } else if (view == mTitlePost) { NimUIKit.startP2PSession(getActivity(), "2"); } else if (view == title_clear_unread) { - clearUnreadDialog = new BaseMessageDialog.Builder(getContext()).setTitle("温馨提示").setMessage("消息气泡会清除,但消息不会丢失").setNegative("取消").setNegativeButtonListener(new DialogInterface.OnClickListener() { + clearUnreadDialog = new BaseMessageDialog.Builder(getContext()).setTitle("是否忽略所有未读提醒").setMessage("消息未读气泡会清除,不会删除聊天记录").setNegative("取消").setNegativeButtonListener(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { clearUnreadDialog.dismiss(); @@ -278,6 +291,24 @@ public class MainMessageFragment extends Fragment implements View.OnClickListene } }).build(); clearUnreadDialog.show(); + } else if (view == mRl_clear_chat_list) { + clearChatListDialog = new BaseMessageDialog.Builder(getContext()).setTitle("是否清空聊天列表").setMessage("聊天记录会被清除,请谨慎清空消息列表").setNegative("取消").setNegativeButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + clearChatListDialog.dismiss(); + } + }).setPositive("确定").setPositiveButtonListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + NIMClient.getService(MsgService.class).clearMsgDatabase(true); + EventBus.getDefault().post(new UnReadCountEvent(0, "")); + clearChatListDialog.dismiss(); + } + }).build(); + clearChatListDialog.show(); + } else if (view == mRl_home_search) { + Intent intent = new Intent(getActivity(), SearchActivity.class); + startActivity(intent); } else if (view == lin_msg_vip) { Intent intent = new Intent(getActivity(), MemberActivity.class); intent.putExtra("index", 0); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java index 3446df2..6c9a33b 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/SettingFragment2.java @@ -6,9 +6,11 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; @@ -21,11 +23,9 @@ import androidx.fragment.app.Fragment; import com.blankj.utilcode.util.GsonUtils; import com.facebook.drawee.view.SimpleDraweeView; -import com.fengliyan.device.DeviceManager; import com.fengliyan.http.httprequest.HttpCallback; import com.fengliyan.storage.StorageManager; import com.fengliyan.uikit.toast.MaleToast; -import com.flyco.roundview.RoundLinearLayout; import com.flyco.roundview.RoundTextView; import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGAImageView; @@ -42,7 +42,6 @@ import com.xuebiping.bolizhuzi.controller.settings.adapter.constant.SettingOptio import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; import com.xuebiping.bolizhuzi.controller.user.manager.UserManager; import com.xuebiping.bolizhuzi.im.uikit.api.NimUIKit; -import com.xuebiping.bolizhuzi.im.uikit.common.Constans; import com.xuebiping.bolizhuzi.im.uikit.common.ToastHelper; import com.xuebiping.bolizhuzi.model.login.bean.LoginBean; import com.xuebiping.bolizhuzi.model.main.MainPageAnchorBean; @@ -50,7 +49,6 @@ import com.xuebiping.bolizhuzi.model.settings.UserFrameBean; import com.xuebiping.bolizhuzi.model.settings.UserHomeBean; import com.xuebiping.bolizhuzi.model.settings.WalletIndexBean; import com.xuebiping.bolizhuzi.model.user.bean.BaseUserInfo; -import com.xuebiping.bolizhuzi.utils.NoClearSPUtils; import com.xuebiping.bolizhuzi.utils.SPUtils; import com.xuebiping.bolizhuzi.utils.StrU; import com.xuebiping.bolizhuzi.view.base.BaseActivity; @@ -59,7 +57,6 @@ import com.xuebiping.bolizhuzi.view.base.BaseWebViewActivity; import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; import com.xuebiping.bolizhuzi.view.main.MainPageActivity; import com.xuebiping.bolizhuzi.view.main.dialog.ShaiXuanDialog; -import com.xuebiping.bolizhuzi.view.news.activity.ChatActivity; import com.xuebiping.bolizhuzi.view.rank.ZhiRankActivity; import com.xuebiping.bolizhuzi.view.settings.dialog.FreeVipDialog; import com.xuebiping.bolizhuzi.view.settings.greeting.GreetingSettingActivity; @@ -114,9 +111,9 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { private LinearLayout lin_my_list1; - private LinearLayout lin_my_list2; + private TextView tv_go_homepage; - //private LinearLayout ll_mine_video_chat; + private LinearLayout ll_mine_video_chat; private List mOptions1 = new ArrayList<>(); @@ -194,9 +191,11 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { tv_income_num = v.findViewById(R.id.tv_income_num); lin_my_list1 = v.findViewById(R.id.lin_my_list1); - lin_my_list2 = v.findViewById(R.id.lin_my_list2); + tv_go_homepage = v.findViewById(R.id.tv_go_homepage); + ll_mine_video_chat = v.findViewById(R.id.ll_mine_video_chat); + rl_user_info.setOnClickListener(this); ll_go_edit_layout.setOnClickListener(this); tv_go_homepage.setOnClickListener(this); @@ -210,6 +209,7 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { ll_income.setOnClickListener(this); cl_income.setOnClickListener(this); rl_vip.setOnClickListener(this); + ll_mine_video_chat.setOnClickListener(this); tv_qingyu_id.setOnClickListener(this); UserManager.getInstance().registerUserInfoObserver(new Observer() { @@ -433,7 +433,6 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { @Override public void onSuccess(BaseActivity activity, MainPageAnchorBean result, String message) { mVideoEnableFlag = result.getOpen_video_status(); - addOption(mOptions1, lin_my_list1); } @Override @@ -522,6 +521,8 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { startActivity(intent); break; case R.id.cl_income: + intent = new Intent(getActivity(), WalletActivity.class); + startActivity(intent); case R.id.ll_income: intent = new Intent(getActivity(), CaibeiRechargeActivity.class); startActivity(intent); @@ -541,6 +542,9 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { clipUrlData(mUsercode); } break; + case R.id.ll_mine_video_chat: + MaleToast.showMessage(getActivity(),"我的视频,暂定"); + break; } } @@ -739,11 +743,24 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { break; case DONOTMODEL: - mSwitch.setVisibility(View.GONE); + mSwitch.setVisibility(View.VISIBLE); mHint.setVisibility(View.GONE); mArrow.setVisibility(View.VISIBLE); mLogo.setImageResource(R.mipmap.ic_do_not_model); mName.setText("勿扰模式"); + + if (mVideoEnableFlag == 1) { //已开启勿扰模式 + mSwitch.setChecked(true); + }else { + mSwitch.setChecked(false); + } + + mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean b) { + changeVideoStatus(); + } + }); break; case MEMBER: mSwitch.setVisibility(View.GONE); @@ -842,6 +859,7 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener { startActivity(intent); }); break; + } layout.addView(view); } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WalletActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WalletActivity.java index 363199d..b63df36 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WalletActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/settings/WalletActivity.java @@ -1,12 +1,10 @@ package com.xuebiping.bolizhuzi.view.settings; import android.content.Intent; -import android.graphics.Color; import android.os.Bundle; import android.view.View; -import android.widget.Button; -import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.TextView; import com.xuebiping.bolizhuzi.R; @@ -14,62 +12,48 @@ import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager; import com.xuebiping.bolizhuzi.model.settings.WalletIndexBean; import com.xuebiping.bolizhuzi.view.base.BaseActivity; import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; -import com.fengliyan.uikit.title.Title; public class WalletActivity extends BaseActivity implements View.OnClickListener{ public static final int REQUEST_RECHARGE = 110; + private TextView mWalletRecharge; private TextView mWalletIncoming; private LinearLayout mRechargeButton; private LinearLayout mExchangeButton; private LinearLayout mWithdrawButton; private LinearLayout wallet_bill_button; - private TextView mCaiBeiRecharge; - private TextView mCaiBeiImcome; - private View mCaiBeiRechargeButton; + private RelativeLayout mRl_back; + @Override public void onCreate(Bundle onSavedInstance){ super.onCreate(onSavedInstance); setContentView(R.layout.activity_wallet); - Title title = getCustomTitle(); - title.setTitleBackground(Color.TRANSPARENT); - title.dismissBottomLine(); - title.findViewById(R.id.title_bg).getBackground().setAlpha(255); - ImageView left = findViewById(R.id.left_image); - left.setImageResource(R.mipmap.ic_back_white); - title.setTitleWhite("我的钱包", null, null, new Title.OnFunctionalAreaClickListener() { - @Override - public void onLeftClick(View v) { - finish(); - } - - @Override - public void onRightClick(View v) { - Intent intent = new Intent(WalletActivity.this, BillActivity.class); - intent.putExtra("type", 0); - startActivity(intent); - } - }); - + hideTitleBar(); initView(); + + } + + @Override + public void onResume() { + super.onResume(); getWalletIndex(); } private void initView(){ + mRl_back = findViewById(R.id.rl_back); mWalletRecharge = findViewById(R.id.wallet_charge_amount); mWalletIncoming = findViewById(R.id.wallet_income_amount); mRechargeButton = findViewById(R.id.wallet_recharge_button); mExchangeButton = findViewById(R.id.wallet_exchange_button); wallet_bill_button = findViewById(R.id.wallet_bill_button); mWithdrawButton = findViewById(R.id.wallet_cash_button); - mCaiBeiRecharge = findViewById(R.id.wallet_caibei_recharge); - mCaiBeiImcome = findViewById(R.id.wallet_caibei_income); - mCaiBeiRechargeButton = findViewById(R.id.wallet_caibei_recharge_layout); + mRechargeButton.setOnClickListener(this); mExchangeButton.setOnClickListener(this); mWithdrawButton.setOnClickListener(this); wallet_bill_button.setOnClickListener(this); - mCaiBeiRechargeButton.setOnClickListener(this); + + mRl_back.setOnClickListener(this); } private void getWalletIndex(){ @@ -78,8 +62,6 @@ public class WalletActivity extends BaseActivity implements View.OnClickListener public void onSuccess(BaseActivity activity, WalletIndexBean result, String message) { mWalletRecharge.setText(result.getAccount().getCoin() + ""); mWalletIncoming.setText(result.getAccount().getIncome_coin() + ""); - mCaiBeiRecharge.setText(result.getAccount().getCoin() + ""); - mCaiBeiImcome.setText(result.getAccount().getIncome_coin() + ""); } @Override @@ -98,26 +80,26 @@ public class WalletActivity extends BaseActivity implements View.OnClickListener public void onClick(View view) { if(view == mRechargeButton){ Intent intent = new Intent(this, CaibeiRechargeActivity.class); - startActivityForResult(intent, REQUEST_RECHARGE); - }else if(view == mCaiBeiRechargeButton){ - Intent intent = new Intent(this, CaibeiRechargeActivity.class); - startActivityForResult(intent, REQUEST_RECHARGE); + startActivity(intent); }else if(view == mWithdrawButton){ Intent intent = new Intent(this, WithdrawActivity.class); - startActivityForResult(intent, REQUEST_RECHARGE); + startActivity(intent); }else if(view == mExchangeButton){ Intent intent = new Intent(this, ExchangeActivity.class); - startActivityForResult(intent, REQUEST_RECHARGE); + startActivity(intent); }else if(view == wallet_bill_button){ Intent intent = new Intent(WalletActivity.this, BillActivity.class); intent.putExtra("type", 0); startActivity(intent); + }else if (view == mRl_back) { + finish(); } } @Override - public void onActivityResult(int requestCode, int resultCode, Intent data){ - if(requestCode == REQUEST_RECHARGE){ + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_RECHARGE) { getWalletIndex(); } } diff --git a/app/src/main/res/layout/activity_cate_record.xml b/app/src/main/res/layout/activity_cate_record.xml new file mode 100644 index 0000000..3c40a9b --- /dev/null +++ b/app/src/main/res/layout/activity_cate_record.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_system_setting.xml b/app/src/main/res/layout/activity_system_setting.xml index f473a5c..9b5e58d 100644 --- a/app/src/main/res/layout/activity_system_setting.xml +++ b/app/src/main/res/layout/activity_system_setting.xml @@ -75,6 +75,7 @@ + + + + + + + + + + @@ -148,7 +175,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp12" android:layout_weight="1" - android:text="账单明细" + android:text="收支明细" android:textColor="@color/black" android:textSize="@dimen/dp14" android:textStyle="bold" /> @@ -203,6 +230,7 @@ android:background="#EEEEEE" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_setting2.xml b/app/src/main/res/layout/fragment_setting2.xml index 1a078e5..3006da8 100644 --- a/app/src/main/res/layout/fragment_setting2.xml +++ b/app/src/main/res/layout/fragment_setting2.xml @@ -9,6 +9,7 @@ tools:viewBindingIgnore="true"> @@ -637,20 +638,8 @@ android:background="@drawable/shape_recommend_bg" android:orientation="vertical" /> - - - diff --git a/app/src/main/res/layout/item_main_message_title.xml b/app/src/main/res/layout/item_main_message_title.xml index 3f19286..cde6ace 100644 --- a/app/src/main/res/layout/item_main_message_title.xml +++ b/app/src/main/res/layout/item_main_message_title.xml @@ -20,6 +20,7 @@ android:layout_marginRight="@dimen/dp16"> - + + + + + + + + + + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/nim_message_fragment.xml b/app/src/main/res/layout/nim_message_fragment.xml index 3cef377..88dd086 100644 --- a/app/src/main/res/layout/nim_message_fragment.xml +++ b/app/src/main/res/layout/nim_message_fragment.xml @@ -83,6 +83,7 @@ fresco:layout_constraintTop_toTopOf="@+id/tv_user_name" /> lP(t-sG z_GUpr!GcGdZE3P(qmky|!Gkw@D0X+p*?hFSn~!~I)10#V=FR-xy#Jfoham8a#?wSaI?lCrCw9W#0$fBz zP5oeXM>^rKZ68EM7hsD4`rDq|i3vm{98^b=GT2if@fjz&%Ce{kjbIrh2t7tZ91irb z+Sqs5@is4b864WSL4NHMp_1TiP$e6?M1wyKy(knQ#Aqm?DH1`xY=%@av-&`7N>c!~ z95r)mtDOK);^}j|@-LwPvADL*Wi(j{dPD$#YrL?L#u=3Nxy)!N01;g( z82U%=7I06P;b#Rb=bmY9lzd}KvLCvnS$=1lIsH*!-WX@}ef6Cf0E=ak#j;Ry6pNiX zPqOsMeI}sALQcQo3!0g42?J5f`m5D%bTdG)t7;e0U#`x+00}p03uE2v-(SsG=^m$8rN>|d7rB+Ob~!~ z`k_}$hsr=%y!bF2K-FfM@NQ+*M*~0vPYOonLE|m(k{%I2aAE#Z>;WL8xk6UI-3bkF z$9>L6bh=Syn*s#IQf(+%cG5-2Y0U1Y(RCb6XpfQLKL533qL|@nWQzB61u`3KM*9UL zpjJ1CswR_;B=_gDy(<8#mbVab1@DR_{*FnGT{4V~4PTLJalG3C@COus@?{`Uq?!W& ztZ>s1`m_#1VGVp>4P0zg;CuklcWmA7ia9HMFY7_s0E{gFQfnf002ovPDHLkV1nOjsQ&-} literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_clear_un_read.png b/app/src/main/res/mipmap-xhdpi/ic_clear_un_read.png new file mode 100644 index 0000000000000000000000000000000000000000..db2c3cdc7bebf54175a4fcd8edb2981978cf76f2 GIT binary patch literal 869 zcmV-r1DgDaP)gX1Id1bv`jRl#vpv!OJ0b^Q(3Fq52kP8SV+A9;Bjpk zu{>D^E_|xsiI>T&)lw5;fF=OmR|<|p-N$<`))sMDum5$7tLf^xMpK947~zOF*8xS8WT0D!`#?dTprE=EAnh=}n8aRf4{Tamj3&h4xWOZFWFPG8__RWpN@$kMA zl9yo)@bFw_;hEdPq9NlXyf#!$rqML|QOBcN7sT}(Q7RM+Qf4jVR=d;Luj3nm0Xo6N z9oV0OQo9>5D&r~k+k|8?m9;znz%ci=G6$xe{Z%@^adS_TaPYN$7nY-`jQw__QgOn> ze%WEJl1xmgI0b1|W23#cpdTAOaPuR*5e(F;kMr}oFRyzlfokDOGLZ;11Xt8@0l1Gb zs9#2)M|5*e=ByoM+*mAyOi01JpzEi}Z}YhqG7)&?6H+kY<`sCYq6{iS8`y-f&S~Oh vfHt^;)n*q4tZ*D(f%xP36sJy00000NkvXXu0mjf#B-B! literal 0 HcmV?d00001 diff --git a/uikit/src/main/res/layout/muna_base_dialog_message.xml b/uikit/src/main/res/layout/muna_base_dialog_message.xml index 3fa6aab..08b92c2 100644 --- a/uikit/src/main/res/layout/muna_base_dialog_message.xml +++ b/uikit/src/main/res/layout/muna_base_dialog_message.xml @@ -47,7 +47,7 @@ android:layout_weight="1" android:background="@drawable/muna_base_dialog_cancel_btn_bg" android:text="取消" - android:textColor="@color/mainColor" + android:textColor="#000000" android:textSize="@dimen/base_dialog_button_text_size" /> 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 Ef)f0#`v3p{ literal 0 HcmV?d00001 diff --git a/yunxinkit/res/drawable-xhdpi/ic_office_service.png b/yunxinkit/res/drawable-xhdpi/ic_office_service.png new file mode 100644 index 0000000000000000000000000000000000000000..11df4f9973369958b81a890cc979307fc733cb7a GIT binary patch literal 5553 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 - - + + + + + + + + \ No newline at end of file diff --git a/yunxinkit/res/layout/nim_recent_contacts.xml b/yunxinkit/res/layout/nim_recent_contacts.xml index cc47f13..86e6880 100644 --- a/yunxinkit/res/layout/nim_recent_contacts.xml +++ b/yunxinkit/res/layout/nim_recent_contacts.xml @@ -1,16 +1,135 @@ - + android:layout_height="wrap_content" + android:background="@color/transparent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +