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
acdf844c
Commit
acdf844c
authored
Oct 23, 2019
by
jianglx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化客服
parent
da9b1214
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
194 additions
and
86 deletions
+194
-86
MainActivity.java
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
+16
-1
ICommunicateListener.java
...main/java/com/ruiwenliu/wrapper/ICommunicateListener.java
+6
-0
HomeFragment.java
...java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
+43
-27
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
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
-15
ChatMessageServiceImp.java
...main/java/com/rv/im/db/service/ChatMessageServiceImp.java
+5
-0
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
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 @
acdf844c
...
@@ -30,6 +30,7 @@ import android.widget.Toast;
...
@@ -30,6 +30,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
;
...
@@ -55,9 +56,11 @@ import com.rv.home.rv.module.ApiConfig;
...
@@ -55,9 +56,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
;
...
@@ -95,7 +98,7 @@ import cn.jpush.android.api.BasicPushNotificationBuilder;
...
@@ -95,7 +98,7 @@ 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
;
// 判断是否已经获取过版本信息
...
@@ -421,6 +424,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -421,6 +424,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
);
}
}
...
@@ -463,6 +471,8 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -463,6 +471,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
()
...
@@ -754,4 +764,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -754,4 +764,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/src/main/java/com/ruiwenliu/wrapper/ICommunicateListener.java
0 → 100644
View file @
acdf844c
package
com
.
ruiwenliu
.
wrapper
;
public
interface
ICommunicateListener
{
boolean
hasUnreadMsg
();
}
module_home/src/main/java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
View file @
acdf844c
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
main
.
home
;
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
main
.
home
;
import
android.Manifest
;
import
android.Manifest
;
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
;
...
@@ -39,6 +40,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
...
@@ -39,6 +40,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
;
...
@@ -241,8 +243,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -241,8 +243,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
private
int
countPage
;
private
int
countPage
;
private
int
mPage
;
private
int
mPage
;
private
boolean
hasNewMessage
;
public
static
HomeFragment
getInstance
(
int
type
)
{
public
static
HomeFragment
getInstance
(
int
type
)
{
Bundle
bundl
=
new
Bundle
();
Bundle
bundl
=
new
Bundle
();
bundl
.
putInt
(
"type"
,
type
);
bundl
.
putInt
(
"type"
,
type
);
...
@@ -251,6 +251,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -251,6 +251,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
;
...
@@ -282,6 +283,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -282,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
...
@@ -876,17 +883,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -876,17 +883,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
scrollview
.
fullScroll
(
View
.
FOCUS_UP
);
scrollview
.
fullScroll
(
View
.
FOCUS_UP
);
}
else
if
(
id
==
R
.
id
.
iv_home_travel_server_image
)
{
}
else
if
(
id
==
R
.
id
.
iv_home_travel_server_image
)
{
if
(
isLogin
())
{
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
);
}
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
);
startActivity
ForResult
(
intent
,
9527
);
}
}
}
else
if
(
id
==
R
.
id
.
tv_home_car_rental_guide
)
{
}
else
if
(
id
==
R
.
id
.
tv_home_car_rental_guide
)
{
//租车指南
//租车指南
...
@@ -1255,12 +1256,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1255,12 +1256,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
));
...
@@ -1272,12 +1273,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1272,12 +1273,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
);
...
@@ -1403,13 +1403,29 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1403,13 +1403,29 @@ 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
onDestroy
()
{
public
void
onDestroy
()
{
...
...
module_tourism/src/main/java/com/rv/tourism/TourismFragment.java
View file @
acdf844c
...
@@ -28,6 +28,7 @@ import com.baidu.mapapi.search.geocode.GeoCoder;
...
@@ -28,6 +28,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
;
...
@@ -110,9 +111,6 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -110,9 +111,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
);
...
@@ -202,6 +200,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -202,6 +200,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
...
@@ -234,14 +237,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -234,14 +237,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
);
startActivity
ForResult
(
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
)
{
//查看热门更多
//查看热门更多
...
@@ -440,8 +440,15 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -440,8 +440,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 @
acdf844c
...
@@ -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
)
->
{
...
@@ -218,6 +217,7 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -218,6 +217,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/adapter/CustomerListAdapter.java
View file @
acdf844c
...
@@ -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 @
acdf844c
...
@@ -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 @
acdf844c
...
@@ -10,6 +10,7 @@ import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
...
@@ -10,6 +10,7 @@ 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.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 +103,7 @@ public class MessageDao {
...
@@ -102,7 +103,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 +273,40 @@ public class MessageDao {
...
@@ -272,25 +273,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 +318,6 @@ public class MessageDao {
...
@@ -302,7 +318,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 @
acdf844c
...
@@ -80,6 +80,11 @@ public class ChatMessageServiceImp implements IChatMessageService {
...
@@ -80,6 +80,11 @@ 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
)
{
dao
.
setMessageRead
(
targetUserId
);
dao
.
setMessageRead
(
targetUserId
);
...
...
plugin_im/src/main/java/com/rv/im/db/service/IChatMessageService.java
View file @
acdf844c
...
@@ -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 @
acdf844c
...
@@ -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 @
acdf844c
...
@@ -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/res/layout/item_customer.xml
View file @
acdf844c
...
@@ -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