Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
RvApp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lify
RvApp
Commits
dc19a9db
Commit
dc19a9db
authored
Nov 06, 2019
by
jianglx
Browse files
Options
Browse Files
Download
Plain Diff
Im未读消息数
parents
c1b96687
4340c0fe
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
230 additions
and
94 deletions
+230
-94
MainActivity.java
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
+25
-10
build.gradle
RvWrapper/build.gradle
+2
-0
ImInitListenter.java
...ain/java/com/ruiwenliu/wrapper/inter/ImInitListenter.java
+4
-0
AppUtils.java
...er/src/main/java/com/ruiwenliu/wrapper/util/AppUtils.java
+17
-0
build.gradle
build.gradle
+2
-0
HomeFragment.java
...java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
+43
-19
MineFragment.java
module_mine/src/main/java/com/rv/rvmine/MineFragment.java
+2
-5
TourismFragment.java
...tourism/src/main/java/com/rv/tourism/TourismFragment.java
+16
-9
CustomerListActivity.java
plugin_im/src/main/java/com/rv/im/CustomerListActivity.java
+2
-2
ImSetting.java
plugin_im/src/main/java/com/rv/im/ImSetting.java
+1
-0
CustomerListAdapter.java
.../src/main/java/com/rv/im/adapter/CustomerListAdapter.java
+15
-1
ConversationDao.java
...in_im/src/main/java/com/rv/im/db/dao/ConversationDao.java
+1
-18
MessageDao.java
plugin_im/src/main/java/com/rv/im/db/dao/MessageDao.java
+30
-16
ChatMessageServiceImp.java
...main/java/com/rv/im/db/service/ChatMessageServiceImp.java
+8
-1
IChatMessageService.java
...c/main/java/com/rv/im/db/service/IChatMessageService.java
+2
-0
Customer.java
plugin_im/src/main/java/com/rv/im/db/table/Customer.java
+10
-0
NotificationMananger.java
...im/src/main/java/com/rv/im/util/NotificationMananger.java
+6
-6
ListenerManager.java
plugin_im/src/main/java/com/rv/im/xmpp/ListenerManager.java
+2
-0
item_customer.xml
plugin_im/src/main/res/layout/item_customer.xml
+42
-7
No files found.
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
View file @
dc19a9db
...
@@ -29,6 +29,7 @@ import android.widget.Toast;
...
@@ -29,6 +29,7 @@ import android.widget.Toast;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
import
com.frame.rv.config.RvFrameConfig
;
import
com.frame.rv.config.RvFrameConfig
;
import
com.ruiwenliu.wrapper.ICommunicateListener
;
import
com.ruiwenliu.wrapper.MessageEventLogout
;
import
com.ruiwenliu.wrapper.MessageEventLogout
;
import
com.ruiwenliu.wrapper.MessageEventRemoteLogin
;
import
com.ruiwenliu.wrapper.MessageEventRemoteLogin
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.SPConstance
;
...
@@ -41,6 +42,7 @@ import com.ruiwenliu.wrapper.bean.UpdateTokenBean;
...
@@ -41,6 +42,7 @@ import com.ruiwenliu.wrapper.bean.UpdateTokenBean;
import
com.ruiwenliu.wrapper.receiver.NetWorkReceiver
;
import
com.ruiwenliu.wrapper.receiver.NetWorkReceiver
;
import
com.ruiwenliu.wrapper.statusbar.StatusBarUtil
;
import
com.ruiwenliu.wrapper.statusbar.StatusBarUtil
;
import
com.ruiwenliu.wrapper.util.GpsManager
;
import
com.ruiwenliu.wrapper.util.GpsManager
;
import
com.ruiwenliu.wrapper.util.AppUtils
;
import
com.ruiwenliu.wrapper.util.UtilsManager
;
import
com.ruiwenliu.wrapper.util.UtilsManager
;
import
com.ruiwenliu.wrapper.util.listener.SwitchFragment
;
import
com.ruiwenliu.wrapper.util.listener.SwitchFragment
;
import
com.ruiwenliu.wrapper.weight.CustomScrollViewPager
;
import
com.ruiwenliu.wrapper.weight.CustomScrollViewPager
;
...
@@ -55,9 +57,11 @@ import com.rv.home.rv.module.ApiConfig;
...
@@ -55,9 +57,11 @@ import com.rv.home.rv.module.ApiConfig;
import
com.ruiwenliu.wrapper.base.presenter.CommonPresenter
;
import
com.ruiwenliu.wrapper.base.presenter.CommonPresenter
;
import
com.rv.home.rv.module.ui.main.home.HomeFragment
;
import
com.rv.home.rv.module.ui.main.home.HomeFragment
;
import
com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean
;
import
com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean
;
import
com.rv.im.CustomerListActivity
;
import
com.rv.im.ImService
;
import
com.rv.im.ImService
;
import
com.rv.im.ImSetting
;
import
com.rv.im.ImSetting
;
import
com.rv.im.call.AudioOrVideoController
;
import
com.rv.im.call.AudioOrVideoController
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.view.TitleTextWindow
;
import
com.rv.im.view.TitleTextWindow
;
import
com.rv.im.xmpp.ListenerManager
;
import
com.rv.im.xmpp.ListenerManager
;
...
@@ -94,7 +98,8 @@ import butterknife.OnClick;
...
@@ -94,7 +98,8 @@ import butterknife.OnClick;
import
cn.jpush.android.api.BasicPushNotificationBuilder
;
import
cn.jpush.android.api.BasicPushNotificationBuilder
;
import
cn.jpush.android.api.JPushInterface
;
import
cn.jpush.android.api.JPushInterface
;
public
class
MainActivity
extends
BaseActivity
<
CommonPresenter
>
implements
DownListenerManager
.
DownListener
,
ChatMessageListener
{
public
class
MainActivity
extends
BaseActivity
<
CommonPresenter
>
implements
DownListenerManager
.
DownListener
,
ChatMessageListener
,
ICommunicateListener
{
private
boolean
hasGetVersionInfo
=
false
;
// 判断是否已经获取过版本信息
private
boolean
hasGetVersionInfo
=
false
;
// 判断是否已经获取过版本信息
...
@@ -165,6 +170,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -165,6 +170,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
EventBus
.
getDefault
().
register
(
this
);
EventBus
.
getDefault
().
register
(
this
);
DownListenerManager
.
getInstance
().
addDownListener
(
this
);
DownListenerManager
.
getInstance
().
addDownListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
AppUtils
.
setBadger
(
ImSetting
.
getContext
(),
ChatMessageServiceImp
.
getInstance
(
ImSetting
.
getContext
()).
getUnReadMsg
());
GpsManager
.
getInstance
(
this
).
rigister
();
GpsManager
.
getInstance
(
this
).
rigister
();
}
}
...
@@ -258,14 +264,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -258,14 +264,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
if
(
actBean
!=
null
&&
actBean
.
isRel
()
&&
actBean
.
getData
()
!=
null
&&
actBean
.
getData
().
size
()
>
0
)
{
if
(
actBean
!=
null
&&
actBean
.
isRel
()
&&
actBean
.
getData
()
!=
null
&&
actBean
.
getData
().
size
()
>
0
)
{
final
ActBean
.
Act
act
=
actBean
.
getData
().
get
(
0
);
final
ActBean
.
Act
act
=
actBean
.
getData
().
get
(
0
);
mPresenter
.
saveOnclick
(
"0"
,
String
.
valueOf
(
act
.
getId
()));
mPresenter
.
saveOnclick
(
"0"
,
String
.
valueOf
(
act
.
getId
()));
promotionDialog
=
new
PromotionDialog
.
Builder
(
this
,
new
View
.
OnClickListener
()
{
promotionDialog
=
new
PromotionDialog
.
Builder
(
this
,
view
->
{
@Override
public
void
onClick
(
View
view
)
{
promotionDialog
.
dismiss
();
promotionDialog
.
dismiss
();
mPresenter
.
saveOnclick
(
"1"
,
String
.
valueOf
(
act
.
getId
()));
mPresenter
.
saveOnclick
(
"1"
,
String
.
valueOf
(
act
.
getId
()));
postActivityPopup
(
act
.
getId
());
postActivityPopup
(
act
.
getId
());
startActivity
(
WebViewActivity
.
getIntent
(
getApplicationContext
(),
act
.
getUrl
(),
act
.
getName
()));
startActivity
(
WebViewActivity
.
getIntent
(
getApplicationContext
(),
act
.
getUrl
(),
act
.
getName
()));
}
}).
setData
(
act
).
create
();
}).
setData
(
act
).
create
();
promotionDialog
.
show
();
promotionDialog
.
show
();
}
}
...
@@ -425,6 +428,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -425,6 +428,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
@Override
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
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
)
{
if
(
mAdapter
!=
null
)
{
mAdapter
.
getCurrentFragment
().
onActivityResult
(
requestCode
,
resultCode
,
data
);
mAdapter
.
getCurrentFragment
().
onActivityResult
(
requestCode
,
resultCode
,
data
);
}
}
...
@@ -467,6 +475,8 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -467,6 +475,8 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
ARouter
.
getInstance
()
ARouter
.
getInstance
()
.
build
(
Constance
.
ACTIVITY_URL_COUPONALL
)
.
build
(
Constance
.
ACTIVITY_URL_COUPONALL
)
.
navigation
();
.
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"
)))
{
}
else
if
(
intent
!=
null
&&
"mine_wallet"
.
equals
(
intent
.
getStringExtra
(
"to"
)))
{
setCurrent
(
TYPE_MINE
);
setCurrent
(
TYPE_MINE
);
ARouter
.
getInstance
()
ARouter
.
getInstance
()
...
@@ -657,7 +667,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -657,7 +667,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
Cookie
.
clear
(
getApplicationContext
());
Cookie
.
clear
(
getApplicationContext
());
OkGoUtil
.
clearToken
();
OkGoUtil
.
clearToken
();
ImSetting
.
logout
();
ImSetting
.
logout
();
AppUtils
.
setBadger
(
getApplicationContext
(),
0
);
showLogoutDialog
();
showLogoutDialog
();
}
}
...
@@ -760,4 +770,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -760,4 +770,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
((
HomeFragment
)
mAdapter
.
getItem
(
0
)).
newsComing
();
((
HomeFragment
)
mAdapter
.
getItem
(
0
)).
newsComing
();
((
TourismFragment
)
mAdapter
.
getItem
(
1
)).
newsComing
();
((
TourismFragment
)
mAdapter
.
getItem
(
1
)).
newsComing
();
}
}
@Override
public
boolean
hasUnreadMsg
()
{
return
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
getUnReadMsg
()
>
0
;
}
}
}
RvWrapper/build.gradle
View file @
dc19a9db
...
@@ -85,5 +85,7 @@ dependencies {
...
@@ -85,5 +85,7 @@ dependencies {
api
'cn.jiguang.sdk:jpush:3.3.4'
api
'cn.jiguang.sdk:jpush:3.3.4'
// 此处以JPush 3.3.4 版本为例。
// 此处以JPush 3.3.4 版本为例。
api
'cn.jiguang.sdk:jcore:2.1.2'
api
'cn.jiguang.sdk:jcore:2.1.2'
api
"me.leolin:ShortcutBadger:1.1.22@aar"
// 此处以JCore 2.1.2 版本为例。
// 此处以JCore 2.1.2 版本为例。
}
}
RvWrapper/src/main/java/com/ruiwenliu/wrapper/inter/ImInitListenter.java
0 → 100644
View file @
dc19a9db
package
com
.
ruiwenliu
.
wrapper
.
inter
;
public
interface
ImInitListenter
{
}
RvWrapper/src/main/java/com/ruiwenliu/wrapper/util/AppUtils.java
View file @
dc19a9db
...
@@ -9,6 +9,8 @@ import com.yuyife.okgo.OkGoUtil;
...
@@ -9,6 +9,8 @@ import com.yuyife.okgo.OkGoUtil;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.EventBus
;
import
me.leolin.shortcutbadger.ShortcutBadger
;
public
class
AppUtils
{
public
class
AppUtils
{
public
static
void
logout
(
Context
context
)
{
public
static
void
logout
(
Context
context
)
{
...
@@ -17,6 +19,21 @@ public class AppUtils {
...
@@ -17,6 +19,21 @@ public class AppUtils {
RvCache
.
getInstance
().
clear
();
RvCache
.
getInstance
().
clear
();
Cookie
.
clear
(
context
);
Cookie
.
clear
(
context
);
OkGoUtil
.
clearToken
();
OkGoUtil
.
clearToken
();
setBadger
(
context
.
getApplicationContext
(),
0
);
EventBus
.
getDefault
().
post
(
new
MessageEventLogout
());
EventBus
.
getDefault
().
post
(
new
MessageEventLogout
());
}
}
/********
* 设置桌面未读消息数
* @param count
*/
public
static
void
setBadger
(
Context
context
,
int
count
)
{
if
(
ShortcutBadger
.
isBadgeCounterSupported
(
context
))
{
if
(
count
>
0
)
{
ShortcutBadger
.
applyCount
(
context
,
count
);
}
else
{
ShortcutBadger
.
removeCount
(
context
);
}
}
}
}
}
build.gradle
View file @
dc19a9db
...
@@ -14,6 +14,7 @@ buildscript {
...
@@ -14,6 +14,7 @@ buildscript {
maven
{
maven
{
url
"https://jitpack.io"
url
"https://jitpack.io"
}
}
mavenCentral
()
}
}
dependencies
{
dependencies
{
classpath
'com.android.tools.build:gradle:3.2.1'
classpath
'com.android.tools.build:gradle:3.2.1'
...
@@ -27,6 +28,7 @@ buildscript {
...
@@ -27,6 +28,7 @@ buildscript {
allprojects
{
allprojects
{
repositories
{
repositories
{
mavenCentral
()
google
()
google
()
jcenter
()
jcenter
()
// 支付宝 SDK AAR 包所需的配置
// 支付宝 SDK AAR 包所需的配置
...
...
module_home/src/main/java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
View file @
dc19a9db
...
@@ -3,6 +3,7 @@ package com.rv.home.rv.module.ui.main.home;
...
@@ -3,6 +3,7 @@ package com.rv.home.rv.module.ui.main.home;
import
android.Manifest
;
import
android.Manifest
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.app.AlertDialog
;
import
android.app.AlertDialog
;
import
android.app.Activity
;
import
android.content.ComponentName
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
...
@@ -42,6 +43,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
...
@@ -42,6 +43,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
import
com.frame.rv.config.RvFrameConfig
;
import
com.frame.rv.config.RvFrameConfig
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.ruiwenliu.wrapper.ICommunicateListener
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
...
@@ -255,6 +257,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -255,6 +257,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
return
fragment
;
return
fragment
;
}
}
@Override
@Override
public
int
getViewLayout
()
{
public
int
getViewLayout
()
{
return
R
.
layout
.
fragment_home
;
return
R
.
layout
.
fragment_home
;
...
@@ -280,6 +283,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -280,6 +283,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
tvHotRvtour
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
tvHotRvtour
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
tvHotRvtour
.
getPaint
().
setFakeBoldText
(
true
);
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
();
ViewTreeObserver
observer
=
rlItemLayout
.
getViewTreeObserver
();
observer
.
addOnGlobalLayoutListener
(
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
observer
.
addOnGlobalLayoutListener
(
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
@Override
@Override
...
@@ -924,7 +933,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -924,7 +933,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
Intent
intent
=
new
Intent
();
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
"login_user_id"
,
Cookie
.
getStringValue
(
getContext
(),
SPConstance
.
USER_JSON_IMUSERID
));
intent
.
putExtra
(
"login_user_id"
,
Cookie
.
getStringValue
(
getContext
(),
SPConstance
.
USER_JSON_IMUSERID
));
intent
.
setComponent
(
name
);
intent
.
setComponent
(
name
);
startActivity
(
intent
);
getActivity
().
startActivityForResult
(
intent
,
9527
);
}
}
}
else
if
(
id
==
R
.
id
.
tv_home_car_rental_guide
)
{
}
else
if
(
id
==
R
.
id
.
tv_home_car_rental_guide
)
{
//租车指南
//租车指南
...
@@ -1322,12 +1331,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1322,12 +1331,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
//只是layout背景透明(仿知乎滑动效果)
//只是layout背景透明(仿知乎滑动效果)
llItemSearch
.
setBackground
(
getResources
().
getDrawable
(
R
.
drawable
.
shape_rv_textview_home_translucent
));
llItemSearch
.
setBackground
(
getResources
().
getDrawable
(
R
.
drawable
.
shape_rv_textview_home_translucent
));
travelCityText
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
travelCityText
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
// if(hasNewMessage){
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
if
(((
ICommunicateListener
)
_mActivity
).
hasUnreadMsg
())
{
// }else {
travelServerImage
.
setImageResource
(
R
.
drawable
.
rv_rentingcar_icon_service_white_news
);
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
}
else
{
// }
travelServerImage
.
setImageResource
(
R
.
drawable
.
rv_rentingcar_icon_service_white
);
travelServerImage
.
setImageResource
(
R
.
drawable
.
rv_rentingcar_icon_service_white
);
}
ivTravelCityTextHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_up_arrow2
);
ivTravelCityTextHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_up_arrow2
);
ivSearchInputHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_search2
);
ivSearchInputHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_search2
);
searchInput
.
setHintTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
searchInput
.
setHintTextColor
(
getResources
().
getColor
(
R
.
color
.
colorWrite
));
...
@@ -1339,12 +1348,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1339,12 +1348,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
}
else
{
}
else
{
llItemTop
.
setVisibility
(
View
.
VISIBLE
);
llItemTop
.
setVisibility
(
View
.
VISIBLE
);
llItemSearch
.
setBackground
(
getResources
().
getDrawable
(
R
.
drawable
.
shape_rv_textview_home_search
));
llItemSearch
.
setBackground
(
getResources
().
getDrawable
(
R
.
drawable
.
shape_rv_textview_home_search
));
// if(hasNewMessage){
if
(((
ICommunicateListener
)
_mActivity
).
hasUnreadMsg
())
{
// travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange_news);
travelServerImage
.
setImageResource
(
R
.
drawable
.
rentingcar_icon_service_orangeorange_news
);
// }else{
}
else
{
// travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
// }
travelServerImage
.
setImageResource
(
R
.
drawable
.
rentingcar_icon_service_orangeorange
);
travelServerImage
.
setImageResource
(
R
.
drawable
.
rentingcar_icon_service_orangeorange
);
}
travelCityText
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorMain
));
travelCityText
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
colorMain
));
ivTravelCityTextHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_up_arrow
);
ivTravelCityTextHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_up_arrow
);
ivSearchInputHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_search
);
ivSearchInputHint
.
setImageResource
(
R
.
drawable
.
rv_common_icon_search
);
...
@@ -1458,14 +1466,30 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1458,14 +1466,30 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
* 新消息
* 新消息
*/
*/
public
void
newsComing
()
{
public
void
newsComing
()
{
// hasNewMessage = true ;
if
(
llItemTop
.
getVisibility
()
!=
View
.
VISIBLE
)
{
// if (llItemTop.getVisibility() != View.VISIBLE) {
travelServerImage
.
setImageResource
(
R
.
drawable
.
rv_rentingcar_icon_service_white_news
);
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white_news);
}
else
{
// } else {
travelServerImage
.
setImageResource
(
R
.
drawable
.
rentingcar_icon_service_orangeorange_news
);
// 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
@Override
public
void
onDestroyView
()
{
public
void
onDestroyView
()
{
super
.
onDestroyView
();
super
.
onDestroyView
();
...
...
module_mine/src/main/java/com/rv/rvmine/MineFragment.java
View file @
dc19a9db
...
@@ -38,6 +38,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
...
@@ -38,6 +38,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
import
com.ruiwenliu.wrapper.bean.UserInfoBean
;
import
com.ruiwenliu.wrapper.bean.UserInfoBean
;
import
com.ruiwenliu.wrapper.browse.ActivityImageBrowseInt
;
import
com.ruiwenliu.wrapper.browse.ActivityImageBrowseInt
;
import
com.ruiwenliu.wrapper.util.AppUtils
;
import
com.ruiwenliu.wrapper.util.UtilsManager
;
import
com.ruiwenliu.wrapper.util.UtilsManager
;
import
com.ruiwenliu.wrapper.util.glide.GlideManager
;
import
com.ruiwenliu.wrapper.util.glide.GlideManager
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout
;
...
@@ -248,11 +249,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
...
@@ -248,11 +249,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
.
subscribe
(
new
Observer
<
SignOutEvent
>(
disposable
)
{
.
subscribe
(
new
Observer
<
SignOutEvent
>(
disposable
)
{
@Override
@Override
public
void
onNext
(
SignOutEvent
event
)
{
public
void
onNext
(
SignOutEvent
event
)
{
UtilsManager
.
getInstance
(
_mActivity
).
clearShareData
(
"city_json"
);
AppUtils
.
logout
(
_mActivity
);
UtilsManager
.
getInstance
(
_mActivity
).
setShNull
();
RvCache
.
getInstance
().
clear
();
Cookie
.
clear
(
_mActivity
);
OkGoUtil
.
clearToken
();
signOut
();
signOut
();
}
}
});
});
...
...
module_tourism/src/main/java/com/rv/tourism/TourismFragment.java
View file @
dc19a9db
...
@@ -29,6 +29,7 @@ import com.baidu.mapapi.search.geocode.GeoCoder;
...
@@ -29,6 +29,7 @@ import com.baidu.mapapi.search.geocode.GeoCoder;
import
com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener
;
import
com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener
;
import
com.baidu.mapapi.search.geocode.ReverseGeoCodeResult
;
import
com.baidu.mapapi.search.geocode.ReverseGeoCodeResult
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.ruiwenliu.wrapper.ICommunicateListener
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
...
@@ -112,9 +113,6 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -112,9 +113,6 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
private
LocationManager
locationManager
;
private
LocationManager
locationManager
;
private
GeoCoder
geoCoder
;
private
GeoCoder
geoCoder
;
private
boolean
hasNewMessage
;
public
static
TourismFragment
getInstance
(
int
type
)
{
public
static
TourismFragment
getInstance
(
int
type
)
{
Bundle
bundl
=
new
Bundle
();
Bundle
bundl
=
new
Bundle
();
bundl
.
putInt
(
"type"
,
type
);
bundl
.
putInt
(
"type"
,
type
);
...
@@ -205,6 +203,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -205,6 +203,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
}
}
}
}
},
rvTourAround
);
},
rvTourAround
);
if
(((
ICommunicateListener
)
_mActivity
).
hasUnreadMsg
())
{
ImgTravelServer
.
setImageResource
(
R
.
drawable
.
common_journey_service_gray_news
);
}
else
{
ImgTravelServer
.
setImageResource
(
R
.
drawable
.
common_journey_service_gray
);
}
}
}
@Override
@Override
...
@@ -237,14 +240,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -237,14 +240,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
.
navigation
();
.
navigation
();
}
else
if
(
id
==
R
.
id
.
travel_server_image
)
{
}
else
if
(
id
==
R
.
id
.
travel_server_image
)
{
if
(
isLogin
())
{
if
(
isLogin
())
{
hasNewMessage
=
false
;
ImgTravelServer
.
setImageResource
(
R
.
drawable
.
common_journey_service_gray
);
ComponentName
name
=
new
ComponentName
(
getActivity
(),
"com.rv.im.CustomerListActivity"
);
ComponentName
name
=
new
ComponentName
(
getActivity
(),
"com.rv.im.CustomerListActivity"
);
Intent
intent
=
new
Intent
();
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
"login_user_id"
,
Cookie
.
getStringValue
(
getContext
(),
SPConstance
.
USER_JSON_IMUSERID
));
intent
.
putExtra
(
"login_user_id"
,
Cookie
.
getStringValue
(
getContext
(),
SPConstance
.
USER_JSON_IMUSERID
));
intent
.
setComponent
(
name
);
intent
.
setComponent
(
name
);
startActivity
(
intent
);
_mActivity
.
startActivityForResult
(
intent
,
9527
);
}
}
}
else
if
(
id
==
R
.
id
.
ll_item_popular_brigade_many
||
id
==
R
.
id
.
iv_popular_brigade_many
)
{
}
else
if
(
id
==
R
.
id
.
ll_item_popular_brigade_many
||
id
==
R
.
id
.
iv_popular_brigade_many
)
{
//查看热门更多
//查看热门更多
...
@@ -449,8 +449,15 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -449,8 +449,15 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
}
}
public
void
newsComing
()
{
public
void
newsComing
()
{
// hasNewMessage = true;
ImgTravelServer
.
setImageResource
(
R
.
drawable
.
common_journey_service_gray_news
);
// 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
);
}
}
}
...
...
plugin_im/src/main/java/com/rv/im/CustomerListActivity.java
View file @
dc19a9db
...
@@ -41,8 +41,6 @@ import java.util.List;
...
@@ -41,8 +41,6 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Timer
;
import
java.util.Timer
;
import
okhttp3.Call
;
public
class
CustomerListActivity
extends
BaseStatusActivity
<
CommonPresenter
>
implements
SimpleRefreshLayout
.
OnSimpleRefreshListener
,
ChatMessageListener
{
public
class
CustomerListActivity
extends
BaseStatusActivity
<
CommonPresenter
>
implements
SimpleRefreshLayout
.
OnSimpleRefreshListener
,
ChatMessageListener
{
private
SimpleRefreshLayout
refreshLayout
;
private
SimpleRefreshLayout
refreshLayout
;
...
@@ -129,6 +127,7 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -129,6 +127,7 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
if
(
lists
!=
null
&&
lists
.
size
()
>
0
)
{
if
(
lists
!=
null
&&
lists
.
size
()
>
0
)
{
for
(
Customer
customer
:
lists
)
{
for
(
Customer
customer
:
lists
)
{
ChatMessage
message
=
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
getLastMsg
(
customer
.
getImUserId
());
ChatMessage
message
=
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
getLastMsg
(
customer
.
getImUserId
());
customer
.
setUnReadMessage
(
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
getUnReadMsg
(
customer
.
getImUserId
()));
if
(
message
!=
null
)
customer
.
setLastMessageInfo
(
message
);
if
(
message
!=
null
)
customer
.
setLastMessageInfo
(
message
);
}
}
Collections
.
sort
(
lists
,
(
o1
,
o2
)
->
{
Collections
.
sort
(
lists
,
(
o1
,
o2
)
->
{
...
@@ -227,6 +226,7 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -227,6 +226,7 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
for
(
Customer
customer
:
customers
)
{
for
(
Customer
customer
:
customers
)
{
if
(!
TextUtils
.
isEmpty
(
customer
.
getImUserId
())
&&
if
(!
TextUtils
.
isEmpty
(
customer
.
getImUserId
())
&&
customer
.
getImUserId
().
equals
(
fromUserId
))
{
customer
.
getImUserId
().
equals
(
fromUserId
))
{
customer
.
setUnReadMessage
(
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
getUnReadMsg
(
fromUserId
));
if
(
message
!=
null
)
if
(
message
!=
null
)
customer
.
setLastMessageInfo
(
message
);
customer
.
setLastMessageInfo
(
message
);
break
;
break
;
...
...
plugin_im/src/main/java/com/rv/im/ImSetting.java
View file @
dc19a9db
...
@@ -47,6 +47,7 @@ public class ImSetting {
...
@@ -47,6 +47,7 @@ public class ImSetting {
// ChatConversationServiceImp.getInstance(getContext()).release();
// ChatConversationServiceImp.getInstance(getContext()).release();
CustomerServiceImp
.
getInstance
(
getContext
()).
release
();
CustomerServiceImp
.
getInstance
(
getContext
()).
release
();
ChatMessageServiceImp
.
getInstance
(
getContext
()).
release
();
ChatMessageServiceImp
.
getInstance
(
getContext
()).
release
();
getSharePreference
(
getContext
()).
edit
().
clear
().
commit
();
SQLiteHelper
.
closeDb
();
// 关掉数据库连接
SQLiteHelper
.
closeDb
();
// 关掉数据库连接
}
}
...
...
plugin_im/src/main/java/com/rv/im/adapter/CustomerListAdapter.java
View file @
dc19a9db
...
@@ -4,6 +4,7 @@ import android.content.Context;
...
@@ -4,6 +4,7 @@ import android.content.Context;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.view.View
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseViewHolder
;
import
com.chad.library.adapter.base.BaseViewHolder
;
...
@@ -40,11 +41,24 @@ public class CustomerListAdapter extends BaseQuickAdapter<Customer, BaseViewHold
...
@@ -40,11 +41,24 @@ public class CustomerListAdapter extends BaseQuickAdapter<Customer, BaseViewHold
}
}
if
(!
TextUtils
.
isEmpty
(
item
.
getLastMsg
()))
if
(!
TextUtils
.
isEmpty
(
item
.
getLastMsg
()))
// helper.setText(R.id.tv_last_msg, item.getLastMsg());
helper
.
setText
(
R
.
id
.
tv_last_msg
,
parser
.
addSmileySpans
(
deleteHtml
(
item
.
getLastMsg
()),
true
));
helper
.
setText
(
R
.
id
.
tv_last_msg
,
parser
.
addSmileySpans
(
deleteHtml
(
item
.
getLastMsg
()),
true
));
else
{
else
{
helper
.
setText
(
R
.
id
.
tv_last_msg
,
" "
);
helper
.
setText
(
R
.
id
.
tv_last_msg
,
" "
);
}
}
if
(
item
.
getUnReadMessage
()
>
0
)
{
if
(
item
.
getUnReadMessage
()
<
100
){
helper
.
setText
(
R
.
id
.
tv_unread_num
,
item
.
getUnReadMessage
()
+
""
);
}
else
{
helper
.
setText
(
R
.
id
.
tv_unread_num
,
"···"
);
}
helper
.
itemView
.
findViewById
(
R
.
id
.
tv_unread_num
).
setVisibility
(
View
.
VISIBLE
);
helper
.
itemView
.
findViewById
(
R
.
id
.
img_no_unread
).
setVisibility
(
View
.
GONE
);
}
else
{
helper
.
itemView
.
findViewById
(
R
.
id
.
tv_unread_num
).
setVisibility
(
View
.
GONE
);
helper
.
itemView
.
findViewById
(
R
.
id
.
img_no_unread
).
setVisibility
(
View
.
VISIBLE
);
}
}
}
private
static
String
deleteHtml
(
String
msg
)
{
private
static
String
deleteHtml
(
String
msg
)
{
...
...
plugin_im/src/main/java/com/rv/im/db/dao/ConversationDao.java
View file @
dc19a9db
...
@@ -24,7 +24,6 @@ public class ConversationDao {
...
@@ -24,7 +24,6 @@ public class ConversationDao {
private
ConversationDao
(
Context
context
)
{
private
ConversationDao
(
Context
context
)
{
try
{
try
{
this
.
mContext
=
context
;
this
.
mContext
=
context
;
// mHelper = OpenHelperManager.getHelper(mContext, SQLiteHelper.class);
dao
=
DaoManager
.
createDao
(
SQLiteHelper
.
getInstance
(
context
).
getConnectionSource
(),
ChatConversation
.
class
);
dao
=
DaoManager
.
createDao
(
SQLiteHelper
.
getInstance
(
context
).
getConnectionSource
(),
ChatConversation
.
class
);
}
catch
(
SQLException
e
)
{
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -32,26 +31,10 @@ public class ConversationDao {
...
@@ -32,26 +31,10 @@ public class ConversationDao {
}
}
public
static
final
ConversationDao
getInstance
(
Context
context
)
{
public
static
final
ConversationDao
getInstance
(
Context
context
)
{
// if (instance == null) {
// synchronized (ConversationDao.class) {
// if (instance == null) {
// instance = new ConversationDao(context);
// }
// }
// }
return
new
ConversationDao
(
context
);
return
new
ConversationDao
(
context
);
}
}
// public static final ConversationDao getInstance(Context context) {
// if (instance == null) {
// synchronized (ConversationDao.class) {
// if (instance == null) {
// instance = new ConversationDao(context);
// }
// }
// }
// return instance;
// }
@Override
@Override
protected
void
finalize
()
throws
Throwable
{
protected
void
finalize
()
throws
Throwable
{
...
...
plugin_im/src/main/java/com/rv/im/db/dao/MessageDao.java
View file @
dc19a9db
...
@@ -9,7 +9,7 @@ import com.j256.ormlite.android.apptools.OpenHelperManager;
...
@@ -9,7 +9,7 @@ import com.j256.ormlite.android.apptools.OpenHelperManager;
import
com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
;
import
com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
;
import
com.j256.ormlite.dao.Dao
;
import
com.j256.ormlite.dao.Dao
;
import
com.j256.ormlite.dao.DaoManager
;
import
com.j256.ormlite.dao.DaoManager
;
import
com.
j256.ormlite.dao.GenericRawResults
;
import
com.
rv.im.ImSetting
;
import
com.rv.im.db.SQLiteHelper
;
import
com.rv.im.db.SQLiteHelper
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.enums.MessageStatusEnum
;
import
com.rv.im.enums.MessageStatusEnum
;
...
@@ -102,7 +102,7 @@ public class MessageDao {
...
@@ -102,7 +102,7 @@ public class MessageDao {
* 删除消息
* 删除消息
* @param message
* @param message
*/
*/
public
void
deleteMessage
(
ChatMessage
message
){
public
void
deleteMessage
(
ChatMessage
message
)
{
if
(
dao
==
null
)
{
if
(
dao
==
null
)
{
LogUtil
.
e
(
TAG
,
"dao is null"
);
LogUtil
.
e
(
TAG
,
"dao is null"
);
return
;
return
;
...
@@ -272,25 +272,40 @@ public class MessageDao {
...
@@ -272,25 +272,40 @@ public class MessageDao {
LogUtil
.
e
(
TAG
,
"userId is null"
);
LogUtil
.
e
(
TAG
,
"userId is null"
);
return
0
;
return
0
;
}
}
int
count
=
0
;
List
<
ChatMessage
>
chatMessages
=
null
;
List
<
ChatMessage
>
chatMessages
;
try
{
try
{
chatMessages
=
dao
.
queryBuilder
().
orderBy
(
"timeSend"
,
false
).
where
()
chatMessages
=
dao
.
queryBuilder
().
where
()
.
eq
(
"fromUserId"
,
userId
)
.
eq
(
"fromUserId"
,
userId
)
.
or
()
.
and
()
.
eq
(
"
toUserId"
,
userId
)
.
eq
(
"
isRead"
,
false
)
.
query
();
.
query
();
if
(
chatMessages
!=
null
&&
chatMessages
.
size
()
>
0
)
{
}
catch
(
SQLException
e
)
{
for
(
ChatMessage
message
:
chatMessages
)
{
e
.
printStackTrace
();
if
(!
message
.
isRead
())
{
count
+=
1
;
}
}
return
chatMessages
!=
null
?
chatMessages
.
size
()
:
0
;
}
}
/***********
* 获取所有未读的消息
* @return
*/
public
int
getUnReadMessage
()
{
if
(
dao
==
null
)
{
LogUtil
.
e
(
TAG
,
"dao is null"
);
return
0
;
}
}
List
<
ChatMessage
>
chatMessages
=
null
;
try
{
chatMessages
=
dao
.
queryBuilder
().
where
()
.
eq
(
"isRead"
,
false
)
.
and
()
.
eq
(
"toUserId"
,
ImSetting
.
getUserId
())
.
query
();
}
catch
(
SQLException
e
)
{
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
c
ount
;
return
c
hatMessages
!=
null
?
chatMessages
.
size
()
:
0
;
}
}
public
void
setMessageRead
(
String
userId
)
{
public
void
setMessageRead
(
String
userId
)
{
...
@@ -302,7 +317,6 @@ public class MessageDao {
...
@@ -302,7 +317,6 @@ public class MessageDao {
LogUtil
.
e
(
TAG
,
"userId is null"
);
LogUtil
.
e
(
TAG
,
"userId is null"
);
return
;
return
;
}
}
int
count
=
0
;
List
<
ChatMessage
>
chatMessages
;
List
<
ChatMessage
>
chatMessages
;
try
{
try
{
chatMessages
=
dao
.
queryBuilder
().
orderBy
(
"timeSend"
,
false
).
where
()
chatMessages
=
dao
.
queryBuilder
().
orderBy
(
"timeSend"
,
false
).
where
()
...
...
plugin_im/src/main/java/com/rv/im/db/service/ChatMessageServiceImp.java
View file @
dc19a9db
...
@@ -2,6 +2,7 @@ package com.rv.im.db.service;
...
@@ -2,6 +2,7 @@ package com.rv.im.db.service;
import
android.content.Context
;
import
android.content.Context
;
import
com.ruiwenliu.wrapper.util.AppUtils
;
import
com.rv.im.ImSetting
;
import
com.rv.im.ImSetting
;
import
com.rv.im.db.dao.ConversationDao
;
import
com.rv.im.db.dao.ConversationDao
;
import
com.rv.im.db.dao.MessageDao
;
import
com.rv.im.db.dao.MessageDao
;
...
@@ -16,7 +17,7 @@ public class ChatMessageServiceImp implements IChatMessageService {
...
@@ -16,7 +17,7 @@ public class ChatMessageServiceImp implements IChatMessageService {
private
static
ChatMessageServiceImp
instance
=
null
;
private
static
ChatMessageServiceImp
instance
=
null
;
private
ConversationDao
conversationDao
=
null
;
private
ConversationDao
conversationDao
=
null
;
p
ublic
ChatMessageServiceImp
(
Context
context
)
{
p
rivate
ChatMessageServiceImp
(
Context
context
)
{
dao
=
new
MessageDao
(
context
);
dao
=
new
MessageDao
(
context
);
conversationDao
=
ConversationDao
.
getInstance
(
context
);
conversationDao
=
ConversationDao
.
getInstance
(
context
);
}
}
...
@@ -80,8 +81,14 @@ public class ChatMessageServiceImp implements IChatMessageService {
...
@@ -80,8 +81,14 @@ public class ChatMessageServiceImp implements IChatMessageService {
return
dao
.
getUnReadMessage
(
targetUserId
);
return
dao
.
getUnReadMessage
(
targetUserId
);
}
}
@Override
public
int
getUnReadMsg
()
{
return
dao
.
getUnReadMessage
();
}
@Override
@Override
public
void
setMsgRead
(
String
targetUserId
)
{
public
void
setMsgRead
(
String
targetUserId
)
{
AppUtils
.
setBadger
(
ImSetting
.
getContext
(),
ChatMessageServiceImp
.
getInstance
(
ImSetting
.
getContext
()).
getUnReadMsg
()
);
dao
.
setMessageRead
(
targetUserId
);
dao
.
setMessageRead
(
targetUserId
);
}
}
...
...
plugin_im/src/main/java/com/rv/im/db/service/IChatMessageService.java
View file @
dc19a9db
...
@@ -24,6 +24,8 @@ public interface IChatMessageService {
...
@@ -24,6 +24,8 @@ public interface IChatMessageService {
int
getUnReadMsg
(
String
targetUserId
);
int
getUnReadMsg
(
String
targetUserId
);
int
getUnReadMsg
();
void
setMsgRead
(
String
targetUserId
);
void
setMsgRead
(
String
targetUserId
);
void
setVoicePlay
(
String
packId
);
void
setVoicePlay
(
String
packId
);
...
...
plugin_im/src/main/java/com/rv/im/db/table/Customer.java
View file @
dc19a9db
...
@@ -30,6 +30,8 @@ public class Customer {
...
@@ -30,6 +30,8 @@ public class Customer {
private
long
lastMsgTimes
;
private
long
lastMsgTimes
;
private
int
unReadMessage
;
public
int
get_id
()
{
public
int
get_id
()
{
return
_id
;
return
_id
;
}
}
...
@@ -102,6 +104,14 @@ public class Customer {
...
@@ -102,6 +104,14 @@ public class Customer {
this
.
lastMsgTimes
=
lastMsgTimes
;
this
.
lastMsgTimes
=
lastMsgTimes
;
}
}
public
int
getUnReadMessage
()
{
return
unReadMessage
;
}
public
void
setUnReadMessage
(
int
unReadMessage
)
{
this
.
unReadMessage
=
unReadMessage
;
}
public
void
setLastMessageInfo
(
ChatMessage
lastMessageInfo
)
{
public
void
setLastMessageInfo
(
ChatMessage
lastMessageInfo
)
{
if
(
lastMessageInfo
.
getMessageType
()
==
MessageTypeEnum
.
TEXT
.
getType
())
{
if
(
lastMessageInfo
.
getMessageType
()
==
MessageTypeEnum
.
TEXT
.
getType
())
{
...
...
plugin_im/src/main/java/com/rv/im/util/NotificationMananger.java
View file @
dc19a9db
...
@@ -30,13 +30,13 @@ public class NotificationMananger {
...
@@ -30,13 +30,13 @@ public class NotificationMananger {
}
else
{
}
else
{
builder
=
new
NotificationCompat
.
Builder
(
context
);
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();
// Intent intent = new Intent(context, CustomerListActivity.class);
// 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
);
PendingIntent
pendingIntent
=
PendingIntent
.
getActivity
(
context
,
0
,
intent
,
0
);
Notification
notification
=
builder
.
setTicker
(
"您有新的消息"
)
Notification
notification
=
builder
.
setTicker
(
"您有新的消息"
)
.
setSmallIcon
(
R
.
mipmap
.
logo
)
.
setSmallIcon
(
R
.
mipmap
.
logo
)
...
...
plugin_im/src/main/java/com/rv/im/xmpp/ListenerManager.java
View file @
dc19a9db
...
@@ -4,6 +4,7 @@ import android.media.MediaPlayer;
...
@@ -4,6 +4,7 @@ import android.media.MediaPlayer;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.os.Looper
;
import
com.ruiwenliu.wrapper.util.AppUtils
;
import
com.rv.im.ImSetting
;
import
com.rv.im.ImSetting
;
import
com.rv.im.R
;
import
com.rv.im.R
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
...
@@ -101,6 +102,7 @@ public class ListenerManager {
...
@@ -101,6 +102,7 @@ public class ListenerManager {
* 新消息来临
* 新消息来临
*/
*/
public
void
notifyNewMesssage
(
final
ChatMessage
message
)
{
public
void
notifyNewMesssage
(
final
ChatMessage
message
)
{
AppUtils
.
setBadger
(
ImSetting
.
getContext
(),
ChatMessageServiceImp
.
getInstance
(
ImSetting
.
getContext
()).
getUnReadMsg
()
);
NotificationMananger
.
showNewsNotification
(
ImSetting
.
getContext
(),
message
.
getFromId
());
NotificationMananger
.
showNewsNotification
(
ImSetting
.
getContext
(),
message
.
getFromId
());
bell
();
bell
();
mHandler
.
post
(()
->
{
mHandler
.
post
(()
->
{
...
...
plugin_im/src/main/res/layout/item_customer.xml
View file @
dc19a9db
...
@@ -58,17 +58,52 @@
...
@@ -58,17 +58,52 @@
</LinearLayout>
</LinearLayout>
<TextView
android:id=
"@+id/tv_state"
<LinearLayout
android:layout_width=
"@dimen/size_50"
android:layout_width=
"@dimen/size_50"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:gravity=
"right|top"
android:gravity=
"center"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/tv_state"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"right"
android:text=
"在线"
android:text=
"在线"
android:textColor=
"@color/gray"
android:textColor=
"@color/gray"
android:textSize=
"@dimen/text_12"
/>
android:textSize=
"@dimen/text_12"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_3"
android:gravity=
"right"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_unread_num"
android:layout_width=
"@dimen/indicator_size"
android:layout_height=
"@dimen/indicator_size"
android:layout_alignParentEnd=
"true"
android:layout_marginRight=
"@dimen/size_3"
android:background=
"@drawable/tab_unread_bg"
android:gravity=
"center"
android:textColor=
"@android:color/white"
android:textSize=
"10dp"
android:visibility=
"gone"
/>
<ImageView
android:id=
"@+id/img_no_unread"
android:layout_width=
"@dimen/dp20"
android:layout_height=
"@dimen/size_15"
android:src=
"@mipmap/msg_replay_icon"
android:visibility=
"gone"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment