Commit dc87e1a8 authored by jianglx's avatar jianglx

Im未读消息数

parent dc19a9db
......@@ -29,7 +29,6 @@ import android.widget.Toast;
import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.ICommunicateListener;
import com.ruiwenliu.wrapper.MessageEventLogout;
import com.ruiwenliu.wrapper.MessageEventRemoteLogin;
import com.ruiwenliu.wrapper.SPConstance;
......@@ -39,10 +38,11 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseWrapperFragment;
import com.ruiwenliu.wrapper.bean.ActBean;
import com.ruiwenliu.wrapper.bean.UpdateTokenBean;
import com.ruiwenliu.wrapper.inter.ImInitListenter;
import com.ruiwenliu.wrapper.receiver.NetWorkReceiver;
import com.ruiwenliu.wrapper.statusbar.StatusBarUtil;
import com.ruiwenliu.wrapper.util.GpsManager;
import com.ruiwenliu.wrapper.util.AppUtils;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.weight.CustomScrollViewPager;
......@@ -61,7 +61,6 @@ import com.rv.im.CustomerListActivity;
import com.rv.im.ImService;
import com.rv.im.ImSetting;
import com.rv.im.call.AudioOrVideoController;
import com.rv.im.db.service.ChatMessageServiceImp;
import com.rv.im.db.table.ChatMessage;
import com.rv.im.view.TitleTextWindow;
import com.rv.im.xmpp.ListenerManager;
......@@ -99,7 +98,7 @@ import cn.jpush.android.api.BasicPushNotificationBuilder;
import cn.jpush.android.api.JPushInterface;
public class MainActivity extends BaseActivity<CommonPresenter> implements DownListenerManager.DownListener, ChatMessageListener, ICommunicateListener {
public class MainActivity extends BaseActivity<CommonPresenter> implements DownListenerManager.DownListener, ChatMessageListener,ImInitListenter {
private boolean hasGetVersionInfo = false; // 判断是否已经获取过版本信息
......@@ -157,6 +156,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
return new Intent(context, MainActivity.class);
}
@Override
public boolean isBindService() {
return hasBindService;
}
@Override
protected int setLayout() {
return R.layout.activity_main;
......@@ -170,7 +174,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
EventBus.getDefault().register(this);
DownListenerManager.getInstance().addDownListener(this);
ListenerManager.getInstance().addChatMessageListener(this);
AppUtils.setBadger(ImSetting.getContext(), ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg());
// AppUtils.setBadger(ImSetting.getContext(), ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg());
GpsManager.getInstance(this).rigister();
}
......@@ -253,9 +257,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
case 1:
EffectiveTimeBean bean = (EffectiveTimeBean) result;
if (bean != null && bean.isRel() && bean.getData() != null) {
AppCookie.save( "actRent", bean.getData().getActRent());
AppCookie.save( "actTour", bean.getData().getActTour());
AppCookie.save( "insurePrice", bean.getData().getInsurePrice());
AppCookie.save("actRent", bean.getData().getActRent());
AppCookie.save("actTour", bean.getData().getActTour());
AppCookie.save("insurePrice", bean.getData().getInsurePrice());
AppCookie.save("actMember", bean.getData().getActMember());
}
break;
......@@ -428,11 +432,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9527) {
((HomeFragment) mAdapter.getItem(0)).ChangeImStatus(hasUnreadMsg());
((TourismFragment) mAdapter.getItem(1)).ChangeImStatus(hasUnreadMsg());
return;
}
if (mAdapter != null) {
mAdapter.getCurrentFragment().onActivityResult(requestCode, resultCode, data);
}
......@@ -475,8 +475,6 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_COUPONALL)
.navigation();
} else if (intent != null && "chat".equals(intent.getStringExtra("to"))) {
startActivityForResult(new Intent(this, CustomerListActivity.class), 9527);
} else if (intent != null && "mine_wallet".equals(intent.getStringExtra("to"))) {
setCurrent(TYPE_MINE);
ARouter.getInstance()
......@@ -667,7 +665,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
Cookie.clear(getApplicationContext());
OkGoUtil.clearToken();
ImSetting.logout();
AppUtils.setBadger(getApplicationContext(), 0);
// AppUtils.setBadger(getApplicationContext(), 0);
showLogoutDialog();
}
......@@ -767,12 +765,5 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
TitleTextWindow view = new TitleTextWindow(this);
view.show();
}
((HomeFragment) mAdapter.getItem(0)).newsComing();
((TourismFragment) mAdapter.getItem(1)).newsComing();
}
@Override
public boolean hasUnreadMsg() {
return ChatMessageServiceImp.getInstance(getApplicationContext()).getUnReadMsg() > 0;
}
}
......@@ -2,9 +2,16 @@ package com.xxfc.rv.other;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import com.ruiwenliu.wrapper.util.AppUtils;
import com.rv.im.CustomerListActivity;
import com.rv.im.db.service.ChatMessageServiceImp;
import com.yuyife.okgo.OkGoUtil;
import me.leolin.shortcutbadger.ShortcutBadger;
public class RvActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
......@@ -23,22 +30,26 @@ public class RvActivityLifecycleCallbacks implements Application.ActivityLifecyc
@Override
public void onActivityStarted(Activity activity) {
ativiteCount += 1;
}
@Override
public void onActivityResumed(Activity activity) {
ativiteCount += 1;
}
@Override
public void onActivityPaused(Activity activity) {
ativiteCount -= 1;
}
@Override
public void onActivityStopped(Activity activity) {
ativiteCount -= 1;
if (ativiteCount == 0) {
// Toast.makeText(activity.getApplication(), "程序退到后台", Toast.LENGTH_SHORT).show();
setBadger(activity.getApplicationContext());
}
}
@Override
......@@ -68,4 +79,16 @@ public class RvActivityLifecycleCallbacks implements Application.ActivityLifecyc
public static void setIsSpecialCases(boolean isSpecialCases) {
RvActivityLifecycleCallbacks.isSpecialCases = isSpecialCases;
}
/********
* 设置桌面未读消息数
*/
public static void setBadger(Context context) {
if (ShortcutBadger.isBadgeCounterSupported(context)) {
if (TextUtils.isEmpty(OkGoUtil.getToken()))
AppUtils.setBadger(context, 0);
else
AppUtils.setBadger(context, ChatMessageServiceImp.getInstance(context).getUnReadMsg());
}
}
}
package com.ruiwenliu.wrapper.inter;
public interface ImInitListenter {
boolean isBindService();
}
......@@ -19,7 +19,6 @@ public class AppUtils {
RvCache.getInstance().clear();
Cookie.clear(context);
OkGoUtil.clearToken();
setBadger(context.getApplicationContext(),0);
EventBus.getDefault().post(new MessageEventLogout());
}
......
......@@ -3,7 +3,6 @@ package com.rv.home.rv.module.ui.main.home;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
......@@ -43,10 +42,10 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig;
import com.google.gson.Gson;
import com.ruiwenliu.wrapper.ICommunicateListener;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.inter.ImInitListenter;
import com.ruiwenliu.wrapper.util.GpsManager;
import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.UtilsManager;
......@@ -95,8 +94,6 @@ import java.util.Map;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.Unbinder;
import io.reactivex.functions.Consumer;
import pub.devrel.easypermissions.AppSettingsDialog;
/**
* 首页
......@@ -283,12 +280,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
tvHotRvtour.setTextColor(getResources().getColor(R.color.colorWrite));
tvHotRvtour.getPaint().setFakeBoldText(true);
if (((ICommunicateListener) _mActivity).hasUnreadMsg()) {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
} else {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
}
ViewTreeObserver observer = rlItemLayout.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
......@@ -924,16 +915,20 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
} else if (id == R.id.iv_home_travel_server_image) {
if (isLogin()) {
hasNewMessage = false;
if (llItemTop.getVisibility() != View.VISIBLE) {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
} else {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
// if (llItemTop.getVisibility() != View.VISIBLE) {
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
// } else {
// travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
// }
if (_mActivity instanceof ImInitListenter && !((ImInitListenter) _mActivity).isBindService()) {
showToast("Im初始化中...");
return;
}
ComponentName name = new ComponentName(getActivity(), "com.rv.im.CustomerListActivity");
Intent intent = new Intent();
intent.putExtra("login_user_id", Cookie.getStringValue(getContext(), SPConstance.USER_JSON_IMUSERID));
intent.setComponent(name);
getActivity().startActivityForResult(intent, 9527);
startActivity(intent);
}
} else if (id == R.id.tv_home_car_rental_guide) {
//租车指南
......@@ -1332,11 +1327,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
llItemSearch.setBackground(getResources().getDrawable(R.drawable.shape_rv_textview_home_translucent));
travelCityText.setTextColor(getResources().getColor(R.color.colorWrite));
if (((ICommunicateListener) _mActivity).hasUnreadMsg()) {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
} else {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
}
ivTravelCityTextHint.setImageResource(R.drawable.rv_common_icon_up_arrow2);
ivSearchInputHint.setImageResource(R.drawable.rv_common_icon_search2);
searchInput.setHintTextColor(getResources().getColor(R.color.colorWrite));
......@@ -1348,11 +1339,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
} else {
llItemTop.setVisibility(View.VISIBLE);
llItemSearch.setBackground(getResources().getDrawable(R.drawable.shape_rv_textview_home_search));
if (((ICommunicateListener) _mActivity).hasUnreadMsg()) {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange_news);
} else {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
}
travelCityText.setTextColor(getResources().getColor(R.color.colorMain));
ivTravelCityTextHint.setImageResource(R.drawable.rv_common_icon_up_arrow);
ivSearchInputHint.setImageResource(R.drawable.rv_common_icon_search);
......@@ -1462,34 +1449,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
});
}
/******
* 新消息
*/
public void newsComing() {
if (llItemTop.getVisibility() != View.VISIBLE) {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
} else {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange_news);
}
}
public void ChangeImStatus(boolean hasUnReadMsg) {
if (llItemTop.getVisibility() != View.VISIBLE) {
if (hasUnReadMsg) {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
} else {
travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
}
} else {
if (hasUnReadMsg) {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange_news);
} else {
travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
}
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
......
......@@ -29,11 +29,11 @@ import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.ruiwenliu.wrapper.ICommunicateListener;
import com.ruiwenliu.wrapper.SPConstance;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.inter.ImInitListenter;
import com.ruiwenliu.wrapper.util.GpsManager;
import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
......@@ -203,11 +203,6 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
}
}
}, rvTourAround);
if (((ICommunicateListener) _mActivity).hasUnreadMsg()) {
ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray_news);
} else {
ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray);
}
}
@Override
......@@ -240,11 +235,15 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
.navigation();
} else if (id == R.id.travel_server_image) {
if (isLogin()) {
if (_mActivity instanceof ImInitListenter && !((ImInitListenter) _mActivity).isBindService()) {
showToast("Im初始化中...");
return;
}
ComponentName name = new ComponentName(getActivity(), "com.rv.im.CustomerListActivity");
Intent intent = new Intent();
intent.putExtra("login_user_id", Cookie.getStringValue(getContext(), SPConstance.USER_JSON_IMUSERID));
intent.setComponent(name);
_mActivity.startActivityForResult(intent, 9527);
startActivity(intent);
}
} else if (id == R.id.ll_item_popular_brigade_many || id == R.id.iv_popular_brigade_many) {
//查看热门更多
......@@ -448,19 +447,6 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
travelBanner.updateBannerStyle(BannerConfig.CIRCLE_INDICATOR);
}
public void newsComing() {
ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray_news);
}
public void ChangeImStatus(boolean hasUnReadMsg) {
if (hasUnReadMsg) {
ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray_news);
} else {
ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray);
}
}
@Override
public void onDestroy() {
super.onDestroy();
......
......@@ -5,7 +5,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import com.rv.im.db.SQLiteHelper;
import com.rv.im.db.service.ChatConversationServiceImp;
import com.rv.im.db.service.ChatMessageServiceImp;
import com.rv.im.db.service.CustomerServiceImp;
......@@ -44,7 +43,6 @@ public class ImSetting {
*
*/
public static void logout() {
// ChatConversationServiceImp.getInstance(getContext()).release();
CustomerServiceImp.getInstance(getContext()).release();
ChatMessageServiceImp.getInstance(getContext()).release();
getSharePreference(getContext()).edit().clear().commit();
......
......@@ -2,7 +2,6 @@ package com.rv.im.db.service;
import android.content.Context;
import com.ruiwenliu.wrapper.util.AppUtils;
import com.rv.im.ImSetting;
import com.rv.im.db.dao.ConversationDao;
import com.rv.im.db.dao.MessageDao;
......@@ -88,7 +87,6 @@ public class ChatMessageServiceImp implements IChatMessageService {
@Override
public void setMsgRead(String targetUserId) {
AppUtils.setBadger(ImSetting.getContext(),ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg() );
dao.setMessageRead(targetUserId);
}
......
......@@ -30,13 +30,13 @@ public class NotificationMananger {
} else {
builder = new NotificationCompat.Builder(context);
}
Intent intent = new Intent();
intent.setComponent(new ComponentName(context, "com.xxfc.rv.MainActivity"));
intent.putExtra("to","chat") ;
intent.putExtra("fromId",fromId) ;
//
// Intent intent = new Intent(context, CustomerListActivity.class);
// Intent intent = new Intent();
// intent.setComponent(new ComponentName(context, "com.xxfc.rv."));
// intent.putExtra("to","chat") ;
// intent.putExtra("fromId",fromId) ;
//
Intent intent = new Intent(context, CustomerListActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
Notification notification = builder.setTicker("您有新的消息")
.setSmallIcon(R.mipmap.logo)
......
......@@ -102,12 +102,12 @@ public class ListenerManager {
* 新消息来临
*/
public void notifyNewMesssage(final ChatMessage message) {
AppUtils.setBadger(ImSetting.getContext(),ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg() );
NotificationMananger.showNewsNotification(ImSetting.getContext(), message.getFromId());
bell();
mHandler.post(() -> {
if (message != null) {
ChatMessageServiceImp.getInstance(ImSetting.getContext()).addMessage(message); // 数据库添加消息
AppUtils.setBadger(ImSetting.getContext(),ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg() );
for (int i = mChatMessageListeners.size() - 1; i >= 0; i--) {
mChatMessageListeners.get(i).onNewMessage(message.getFromUserId(), message, false);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment