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
18bb680b
Commit
18bb680b
authored
Oct 24, 2019
by
linfeng
Browse files
Options
Browse Files
Download
Plain Diff
代码合并提交
parents
61a8c475
6443a94e
Changes
47
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
1180 additions
and
52 deletions
+1180
-52
build.gradle
RvClient/build.gradle
+5
-2
AndroidManifest.xml
RvClient/src/main/AndroidManifest.xml
+4
-0
MainActivity.java
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
+55
-3
RvClientApplication.java
RvClient/src/main/java/com/xxfc/rv/RvClientApplication.java
+3
-0
RvActivityLifecycleCallbacks.java
.../java/com/xxfc/rv/other/RvActivityLifecycleCallbacks.java
+71
-0
rv_rentingcar_icon_service_white_news.png
...drawable-xxhdpi/rv_rentingcar_icon_service_white_news.png
+0
-0
BaseBean.java
...er/src/main/java/com/ruiwenliu/wrapper/base/BaseBean.java
+1
-1
common_journey_service_gray_news.png
...n/res/drawable-xhdpi/common_journey_service_gray_news.png
+0
-0
AppCookie.java
...utils/src/main/java/com/rv/component/utils/AppCookie.java
+5
-0
Inc.java
...onent_utils/src/main/java/com/rv/component/utils/Inc.java
+1
-1
CampDetailActivity.java
...mp/src/main/java/com/rv/camp/camp/CampDetailActivity.java
+1
-1
ApiConfig.java
...e_home/src/main/java/com/rv/home/rv/module/ApiConfig.java
+2
-0
ConfirmOrderActivity.java
.../rv/home/rv/module/ui/main/home/ConfirmOrderActivity.java
+9
-0
HomeFragment.java
...java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
+30
-0
OrderDataBean.java
...om/rv/home/rv/module/ui/main/home/bean/OrderDataBean.java
+9
-0
rentingcar_icon_service_orangeorange_news.png
...wable-xhdpi/rentingcar_icon_service_orangeorange_news.png
+0
-0
rv_act_confim_order.xml
module_home/src/main/res/layout/rv_act_confim_order.xml
+32
-0
strings.xml
module_home/src/main/res/values/strings.xml
+2
-0
TourismFragment.java
...tourism/src/main/java/com/rv/tourism/TourismFragment.java
+13
-5
TravelerConfirmOrderActivity.java
...va/com/rv/tourism/other/TravelerConfirmOrderActivity.java
+28
-3
activity_confirm_order_travel.xml
...ism/src/main/res/layout/activity_confirm_order_travel.xml
+31
-0
CalendarActivity.java
...rc/main/java/com/rv/plugin/calendar/CalendarActivity.java
+4
-3
PreRentDaysBean.java
...ain/java/com/rv/plugin/calendar/bean/PreRentDaysBean.java
+106
-0
WaitCouponFragment.java
...ain/java/com/xxrv/coupon/fragment/WaitCouponFragment.java
+18
-12
AndroidManifest.xml
plugin_im/src/main/AndroidManifest.xml
+2
-1
news.mp3
plugin_im/src/main/assets/news.mp3
+0
-0
ChatActivity.java
plugin_im/src/main/java/com/rv/im/ChatActivity.java
+45
-2
ConversationListActivity.java
..._im/src/main/java/com/rv/im/ConversationListActivity.java
+1
-1
CustomerListActivity.java
plugin_im/src/main/java/com/rv/im/CustomerListActivity.java
+110
-5
CustomerListAdapter.java
.../src/main/java/com/rv/im/adapter/CustomerListAdapter.java
+18
-2
MessageTypeEnum.java
plugin_im/src/main/java/com/rv/im/enums/MessageTypeEnum.java
+2
-1
NotificationMananger.java
...im/src/main/java/com/rv/im/util/NotificationMananger.java
+54
-0
TitleTextWindow.java
plugin_im/src/main/java/com/rv/im/view/TitleTextWindow.java
+190
-0
ListenerManager.java
plugin_im/src/main/java/com/rv/im/xmpp/ListenerManager.java
+26
-1
shap_header_toast_background.xml
...im/src/main/res/drawable/shap_header_toast_background.xml
+14
-0
header_toast.xml
plugin_im/src/main/res/layout/header_toast.xml
+87
-0
logo.png
plugin_im/src/main/res/mipmap-xhdpi/logo.png
+0
-0
MemberCenterActivity.java
...ber/src/main/java/com/rv.member/MemberCenterActivity.java
+3
-3
MemberOrderPostBodyBean.java
...main/java/com/rv.member/bean/MemberOrderPostBodyBean.java
+11
-1
MemberPresenter.java
...rc/main/java/com/rv.member/presenter/MemberPresenter.java
+2
-2
InviterPhoneDialog.java
.../src/main/java/com/rv.member/view/InviterPhoneDialog.java
+65
-0
MemberTopView.java
...ember/src/main/java/com/rv.member/view/MemberTopView.java
+22
-1
icon_member_close.png
..._member/src/main/res/drawable-xhdpi/icon_member_close.png
+0
-0
dialog_member_content_bg.xml
...member/src/main/res/drawable/dialog_member_content_bg.xml
+8
-0
shape_rv_bg_inviter_phone.xml
...ember/src/main/res/drawable/shape_rv_bg_inviter_phone.xml
+7
-0
dialog_inviter_phone.xml
plugin_member/src/main/res/layout/dialog_inviter_phone.xml
+66
-0
view_member_privilege.xml
plugin_member/src/main/res/layout/view_member_privilege.xml
+17
-1
No files found.
RvClient/build.gradle
View file @
18bb680b
...
@@ -8,8 +8,8 @@ android {
...
@@ -8,8 +8,8 @@ android {
minSdkVersion
rootProject
.
ext
.
minSdkVersion
minSdkVersion
rootProject
.
ext
.
minSdkVersion
targetSdkVersion
rootProject
.
ext
.
targetSdkVersion
targetSdkVersion
rootProject
.
ext
.
targetSdkVersion
flavorDimensions
"default"
flavorDimensions
"default"
versionCode
15
3
versionCode
15
0
versionName
"1.5.
3
"
versionName
"1.5.
0
"
multiDexEnabled
true
multiDexEnabled
true
...
@@ -79,6 +79,9 @@ android {
...
@@ -79,6 +79,9 @@ android {
if
(
variant
.
buildType
.
name
==
'release'
)
{
if
(
variant
.
buildType
.
name
==
'release'
)
{
def
productVersion
=
"Rv"
+
releaseTime
()
+
"V"
+
defaultConfig
.
versionName
+
"_Release_"
+
productFlavors
[
0
].
name
+
".apk"
;
def
productVersion
=
"Rv"
+
releaseTime
()
+
"V"
+
defaultConfig
.
versionName
+
"_Release_"
+
productFlavors
[
0
].
name
+
".apk"
;
outputFileName
=
productVersion
outputFileName
=
productVersion
}
else
if
(
variant
.
buildType
.
name
==
'debug'
){
def
productVersion
=
"Rv"
+
releaseTime
()
+
"V"
+
defaultConfig
.
versionName
+
"_Debug_"
+
productFlavors
[
0
].
name
+
".apk"
;
outputFileName
=
productVersion
}
}
}
}
}
}
...
...
RvClient/src/main/AndroidManifest.xml
View file @
18bb680b
...
@@ -85,6 +85,10 @@
...
@@ -85,6 +85,10 @@
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_OVERLAY_WINDOW"
/>
<supports-screens
<supports-screens
android:anyDensity=
"true"
android:anyDensity=
"true"
android:largeScreens=
"true"
android:largeScreens=
"true"
...
...
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
View file @
18bb680b
...
@@ -42,7 +42,6 @@ import com.ruiwenliu.wrapper.bean.UpdateTokenBean;
...
@@ -42,7 +42,6 @@ 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.UtilsManager
;
import
com.ruiwenliu.wrapper.util.UtilsManager
;
import
com.ruiwenliu.wrapper.util.glide.GlideApp
;
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
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
...
@@ -59,6 +58,11 @@ import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean;
...
@@ -59,6 +58,11 @@ import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean;
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.table.ChatMessage
;
import
com.rv.im.view.TitleTextWindow
;
import
com.rv.im.xmpp.ListenerManager
;
import
com.rv.im.xmpp.listener.ChatMessageListener
;
import
com.rv.plugin.calendar.bean.PreRentDaysBean
;
import
com.rv.rvmine.MineFragment
;
import
com.rv.rvmine.MineFragment
;
import
com.rv.share.WebViewActivity
;
import
com.rv.share.WebViewActivity
;
import
com.rv.share.view.PromotionDialog
;
import
com.rv.share.view.PromotionDialog
;
...
@@ -71,6 +75,7 @@ import com.rv.version.util.UpdateAppUtils;
...
@@ -71,6 +75,7 @@ import com.rv.version.util.UpdateAppUtils;
import
com.xxfc.discovery.DiscoveryFragment
;
import
com.xxfc.discovery.DiscoveryFragment
;
import
com.xxfc.discovery.api.DiscoveryApi
;
import
com.xxfc.discovery.api.DiscoveryApi
;
import
com.xxfc.discovery.bean.DiscoveryIMTokenBean
;
import
com.xxfc.discovery.bean.DiscoveryIMTokenBean
;
import
com.xxfc.rv.other.RvActivityLifecycleCallbacks
;
import
com.yuyife.okgo.OkGoUtil
;
import
com.yuyife.okgo.OkGoUtil
;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.EventBus
;
...
@@ -90,7 +95,7 @@ import cn.jpush.android.api.BasicPushNotificationBuilder;
...
@@ -90,7 +95,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
{
public
class
MainActivity
extends
BaseActivity
<
CommonPresenter
>
implements
DownListenerManager
.
DownListener
,
ChatMessageListener
{
private
boolean
hasGetVersionInfo
=
false
;
// 判断是否已经获取过版本信息
private
boolean
hasGetVersionInfo
=
false
;
// 判断是否已经获取过版本信息
...
@@ -158,9 +163,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -158,9 +163,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
AudioOrVideoController
.
init
(
getApplicationContext
(),
logoutListener
);
AudioOrVideoController
.
init
(
getApplicationContext
(),
logoutListener
);
EventBus
.
getDefault
().
register
(
this
);
EventBus
.
getDefault
().
register
(
this
);
DownListenerManager
.
getInstance
().
addDownListener
(
this
);
DownListenerManager
.
getInstance
().
addDownListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
}
}
@Override
@Override
protected
void
initView
(
Bundle
savedInstanceState
,
TitleView
titleView
,
Intent
intent
)
{
protected
void
initView
(
Bundle
savedInstanceState
,
TitleView
titleView
,
Intent
intent
)
{
updateAppUtils
=
UpdateAppUtils
.
from
(
MainActivity
.
this
);
updateAppUtils
=
UpdateAppUtils
.
from
(
MainActivity
.
this
);
...
@@ -220,8 +225,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -220,8 +225,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
getActivityPopup
();
getActivityPopup
();
checkVersion
();
checkVersion
();
checkToken
();
checkToken
();
getPreRentDays
();
}
}
@Override
@Override
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
switch
(
requestType
)
{
switch
(
requestType
)
{
...
@@ -278,6 +285,21 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -278,6 +285,21 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
initIm
();
initIm
();
}
}
break
;
break
;
case
6
:
PreRentDaysBean
daysBean
=
(
PreRentDaysBean
)
result
;
if
(
daysBean
!=
null
&&
daysBean
.
isRel
()
&&
daysBean
.
getData
()
!=
null
&&
daysBean
.
getData
().
size
()
>
0
)
{
PreRentDaysBean
.
Data
data
=
daysBean
.
getData
().
get
(
0
);
if
(
data
!=
null
)
{
try
{
int
value
=
Integer
.
parseInt
(
data
.
getParams
());
AppCookie
.
save
(
mActivity
,
AppCookie
.
KEY_PRERENT_DAYS
,
value
);
}
catch
(
Exception
e
)
{
showToast
(
"传入的预租车天数格式有误"
);
}
}
}
break
;
default
:
default
:
break
;
break
;
}
}
...
@@ -330,6 +352,13 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -330,6 +352,13 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
}
}
}
}
/*****
* 获取提前租车天数
*/
private
void
getPreRentDays
()
{
mPresenter
.
getData
(
6
,
ApiConfig
.
HTTP_URL_PRERENT_DAYS
,
PreRentDaysBean
.
class
,
false
);
}
private
void
postActivityPopup
(
int
id
)
{
private
void
postActivityPopup
(
int
id
)
{
if
(!
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
if
(!
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
...
@@ -550,6 +579,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -550,6 +579,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
public
void
onDestroy
()
{
public
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
DownListenerManager
.
getInstance
().
removeDownListener
(
this
);
DownListenerManager
.
getInstance
().
removeDownListener
(
this
);
ListenerManager
.
getInstance
().
removeChatMessageListener
(
this
);
destory
();
destory
();
// unRegisterUpdateReceiver();
// unRegisterUpdateReceiver();
if
(
netReceiver
!=
null
)
{
if
(
netReceiver
!=
null
)
{
...
@@ -702,4 +732,26 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -702,4 +732,26 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
i
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
i
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
startActivity
(
i
);
startActivity
(
i
);
}
}
@Override
public
void
onMessageSendStateChange
(
int
messageState
,
String
msgId
)
{
}
@Override
public
void
onNewMessage
(
String
fromUserId
,
ChatMessage
message
,
boolean
isGroupMsg
)
{
boolean
canShow
=
true
;
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
)
{
canShow
=
false
;
if
(
Settings
.
canDrawOverlays
(
this
))
{
canShow
=
true
;
}
}
if
(
canShow
&&
(
RvActivityLifecycleCallbacks
.
isAppBackground
()
||
!
RvActivityLifecycleCallbacks
.
isAppInChatView
()))
{
TitleTextWindow
view
=
new
TitleTextWindow
(
this
);
view
.
show
();
}
((
HomeFragment
)
mAdapter
.
getItem
(
0
)).
newsComing
();
((
TourismFragment
)
mAdapter
.
getItem
(
1
)).
newsComing
();
}
}
}
RvClient/src/main/java/com/xxfc/rv/RvClientApplication.java
View file @
18bb680b
...
@@ -31,6 +31,7 @@ import com.squareup.leakcanary.LeakCanary;
...
@@ -31,6 +31,7 @@ import com.squareup.leakcanary.LeakCanary;
import
com.tencent.bugly.crashreport.CrashReport
;
import
com.tencent.bugly.crashreport.CrashReport
;
import
com.umeng.commonsdk.UMConfigure
;
import
com.umeng.commonsdk.UMConfigure
;
import
com.umeng.socialize.PlatformConfig
;
import
com.umeng.socialize.PlatformConfig
;
import
com.xxfc.rv.other.RvActivityLifecycleCallbacks
;
import
com.yuyife.okgo.OkGoUtil
;
import
com.yuyife.okgo.OkGoUtil
;
import
java.util.Locale
;
import
java.util.Locale
;
...
@@ -125,6 +126,8 @@ public class RvClientApplication extends FrameApp {
...
@@ -125,6 +126,8 @@ public class RvClientApplication extends FrameApp {
}
}
LeakCanary.install(this);*/
LeakCanary.install(this);*/
/**********************************************/
/**********************************************/
registerActivityLifecycleCallbacks
(
new
RvActivityLifecycleCallbacks
());
}
}
...
...
RvClient/src/main/java/com/xxfc/rv/other/RvActivityLifecycleCallbacks.java
0 → 100644
View file @
18bb680b
package
com
.
xxfc
.
rv
.
other
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.os.Bundle
;
import
com.rv.im.CustomerListActivity
;
public
class
RvActivityLifecycleCallbacks
implements
Application
.
ActivityLifecycleCallbacks
{
private
static
int
ativiteCount
;
private
static
boolean
isInChatView
;
// app是否正在聊天模块
private
static
boolean
isSpecialCases
;
// 是否处于特殊情况,例如相机,图片选择
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
savedInstanceState
)
{
if
(
CustomerListActivity
.
class
.
getSimpleName
().
equals
(
activity
.
getClass
().
getSimpleName
()))
{
isInChatView
=
true
;
}
}
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
}
@Override
public
void
onActivityResumed
(
Activity
activity
)
{
ativiteCount
+=
1
;
}
@Override
public
void
onActivityPaused
(
Activity
activity
)
{
ativiteCount
-=
1
;
}
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
}
@Override
public
void
onActivitySaveInstanceState
(
Activity
activity
,
Bundle
outState
)
{
}
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
if
(
CustomerListActivity
.
class
.
getSimpleName
().
equals
(
activity
.
getClass
().
getSimpleName
()))
{
isInChatView
=
false
;
}
}
public
static
boolean
isAppBackground
()
{
return
ativiteCount
==
0
?
true
:
false
&&
!
isSpecialCases
;
}
public
static
boolean
isAppInChatView
()
{
return
isInChatView
;
}
public
static
boolean
isIsSpecialCases
()
{
return
isSpecialCases
;
}
public
static
void
setIsSpecialCases
(
boolean
isSpecialCases
)
{
RvActivityLifecycleCallbacks
.
isSpecialCases
=
isSpecialCases
;
}
}
RvFrame/src/main/res/drawable-xxhdpi/rv_rentingcar_icon_service_white_news.png
0 → 100644
View file @
18bb680b
2.49 KB
RvWrapper/src/main/java/com/ruiwenliu/wrapper/base/BaseBean.java
View file @
18bb680b
...
@@ -10,7 +10,7 @@ package com.ruiwenliu.wrapper.base;
...
@@ -10,7 +10,7 @@ package com.ruiwenliu.wrapper.base;
public
class
BaseBean
{
public
class
BaseBean
{
// public int code;
// public int code;
// public String message;
// public String message;
public
int
status
;
public
int
status
;
public
String
message
;
public
String
message
;
public
int
resultCode
;
public
int
resultCode
;
...
...
component_resource/src/main/res/drawable-xhdpi/common_journey_service_gray_news.png
0 → 100644
View file @
18bb680b
1.72 KB
component_utils/src/main/java/com/rv/component/utils/AppCookie.java
View file @
18bb680b
...
@@ -5,10 +5,15 @@ import android.content.SharedPreferences;
...
@@ -5,10 +5,15 @@ import android.content.SharedPreferences;
import
java.lang.ref.WeakReference
;
import
java.lang.ref.WeakReference
;
/*******
* 应用级别的cookie,不会随账号的切换而更改
*/
public
class
AppCookie
{
public
class
AppCookie
{
private
final
static
String
COOKIE_FILE
=
"app_cookie"
;
private
final
static
String
COOKIE_FILE
=
"app_cookie"
;
public
final
static
String
KEY_PRERENT_DAYS
=
"key_prerent_days"
;
// 提前租车天数的key
private
static
SharedPreferences
preferences
;
private
static
SharedPreferences
preferences
;
private
static
WeakReference
<
Context
>
weakReference
=
null
;
private
static
WeakReference
<
Context
>
weakReference
=
null
;
...
...
component_utils/src/main/java/com/rv/component/utils/Inc.java
View file @
18bb680b
This diff is collapsed.
Click to expand it.
module_camp/src/main/java/com/rv/camp/camp/CampDetailActivity.java
View file @
18bb680b
...
@@ -211,7 +211,7 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
...
@@ -211,7 +211,7 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
public
void
onViewClicked
(
View
view
)
{
public
void
onViewClicked
(
View
view
)
{
int
id
=
view
.
getId
();
int
id
=
view
.
getId
();
if
(
id
==
R
.
id
.
tv_scheduled_camp
)
{
if
(
id
==
R
.
id
.
tv_scheduled_camp
)
{
if
(
data
.
getData
()
!=
null
&&
data
.
getData
().
getPhone
()
!=
null
)
{
if
(
data
!=
null
&&
data
.
getData
()
!=
null
&&
data
.
getData
().
getPhone
()
!=
null
)
{
Intent
intent
=
new
Intent
(
Intent
.
ACTION_DIAL
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_DIAL
);
Uri
uri
=
Uri
.
parse
(
"tel:"
+
data
.
getData
().
getPhone
());
Uri
uri
=
Uri
.
parse
(
"tel:"
+
data
.
getData
().
getPhone
());
intent
.
setData
(
uri
);
intent
.
setData
(
uri
);
...
...
module_home/src/main/java/com/rv/home/rv/module/ApiConfig.java
View file @
18bb680b
...
@@ -166,4 +166,6 @@ public class ApiConfig {
...
@@ -166,4 +166,6 @@ public class ApiConfig {
* 获取价格日历
* 获取价格日历
*/
*/
public
static
String
HTTP_URL_CALENDAR_PRICE
=
RvFrameConfig
.
HOST
+
"/vehicle/vehicle_model/calendar_price/app/unauth/list/"
;
public
static
String
HTTP_URL_CALENDAR_PRICE
=
RvFrameConfig
.
HOST
+
"/vehicle/vehicle_model/calendar_price/app/unauth/list/"
;
public
static
String
HTTP_URL_PRERENT_DAYS
=
RvFrameConfig
.
HOST
+
"/api/app/cofig/app/unauth/types?types=999"
;
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/main/home/ConfirmOrderActivity.java
View file @
18bb680b
...
@@ -17,6 +17,7 @@ import android.view.View;
...
@@ -17,6 +17,7 @@ import android.view.View;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
android.view.WindowManager
;
import
android.view.WindowManager
;
import
android.widget.CheckBox
;
import
android.widget.CheckBox
;
import
android.widget.EditText
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.PopupWindow
;
import
android.widget.PopupWindow
;
...
@@ -150,6 +151,8 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
...
@@ -150,6 +151,8 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
TextView
tvCouponAmount
;
TextView
tvCouponAmount
;
@BindView
(
R2
.
id
.
rv_content_select
)
@BindView
(
R2
.
id
.
rv_content_select
)
FlowLayout
rvContentSelect
;
FlowLayout
rvContentSelect
;
@BindView
(
R2
.
id
.
edt_inviter_phone
)
EditText
edtInviterPhone
;
@BindView
(
R2
.
id
.
tv_mark
)
@BindView
(
R2
.
id
.
tv_mark
)
TextView
tvMark
;
TextView
tvMark
;
...
@@ -506,6 +509,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
...
@@ -506,6 +509,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
showToast
(
"请同意预定须知"
);
showToast
(
"请同意预定须知"
);
return
;
return
;
}
}
String
inviterPhone
=
edtInviterPhone
.
getText
().
toString
().
trim
()
;
if
(!
TextUtils
.
isEmpty
(
inviterPhone
)
&&
inviterPhone
.
length
()
!=
11
){
showToast
(
"请输入正确的邀请人手机号"
);
return
;
}
dataBean
.
setFacilitatePhone
(
inviterPhone
);
payType
=
1
;
payType
=
1
;
new
PaymentTypeSelection
(
mActivity
)
{
new
PaymentTypeSelection
(
mActivity
)
{
...
...
module_home/src/main/java/com/rv/home/rv/module/ui/main/home/HomeFragment.java
View file @
18bb680b
...
@@ -241,6 +241,8 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -241,6 +241,8 @@ 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
);
...
@@ -874,6 +876,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -874,6 +876,12 @@ 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
));
...
@@ -1247,6 +1255,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1247,6 +1255,11 @@ 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);
// }else {
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
// }
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
);
...
@@ -1259,6 +1272,11 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1259,6 +1272,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){
// travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange_news);
// }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
);
...
@@ -1381,6 +1399,18 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
...
@@ -1381,6 +1399,18 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
});
});
}
}
/******
* 新消息
*/
public
void
newsComing
()
{
// hasNewMessage = true ;
// 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);
// }
}
@Override
@Override
public
void
onDestroy
()
{
public
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
...
...
module_home/src/main/java/com/rv/home/rv/module/ui/main/home/bean/OrderDataBean.java
View file @
18bb680b
...
@@ -51,6 +51,7 @@ public class OrderDataBean implements Serializable{
...
@@ -51,6 +51,7 @@ public class OrderDataBean implements Serializable{
private
int
damageSafe
;
//是否购买免赔 1--是 0--否
private
int
damageSafe
;
//是否购买免赔 1--是 0--否
private
int
rentFreeDay
;
//是否使用出租免费天数 1--是 0--否
private
int
rentFreeDay
;
//是否使用出租免费天数 1--是 0--否
private
String
tickerNos
;
//优惠券ids,逗号分割
private
String
tickerNos
;
//优惠券ids,逗号分割
private
String
facilitatePhone
;
// 促成人手机号
private
List
<
String
>
accompanyStrs
;
//随车物品参数
private
List
<
String
>
accompanyStrs
;
//随车物品参数
public
int
getDayNum
()
{
public
int
getDayNum
()
{
...
@@ -199,6 +200,14 @@ public class OrderDataBean implements Serializable{
...
@@ -199,6 +200,14 @@ public class OrderDataBean implements Serializable{
this
.
accompanyStrs
=
accompanyStrs
;
this
.
accompanyStrs
=
accompanyStrs
;
}
}
public
String
getFacilitatePhone
()
{
return
facilitatePhone
;
}
public
void
setFacilitatePhone
(
String
facilitatePhone
)
{
this
.
facilitatePhone
=
facilitatePhone
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"OrderDataBean{"
+
return
"OrderDataBean{"
+
...
...
module_home/src/main/res/drawable-xhdpi/rentingcar_icon_service_orangeorange_news.png
0 → 100644
View file @
18bb680b
1.67 KB
module_home/src/main/res/layout/rv_act_confim_order.xml
View file @
18bb680b
...
@@ -790,6 +790,38 @@
...
@@ -790,6 +790,38 @@
android:textSize=
"@dimen/text_10"
/>
android:textSize=
"@dimen/text_10"
/>
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_15"
android:background=
"@color/colorWrite"
android:padding=
"@dimen/size_15"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_weight=
"1"
android:text=
"@string/rv_inviter_phone"
android:textColor=
"@color/textMain"
android:textSize=
"@dimen/text_16"
/>
<EditText
android:inputType=
"phone"
android:maxLength=
"11"
android:id=
"@+id/edt_inviter_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:background=
"@color/colorWrite"
android:gravity=
"center_vertical"
android:hint=
"请输入邀请人手机号"
android:textColor=
"@color/text_Gray"
android:textSize=
"@dimen/text_12"
/>
</RelativeLayout>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
...
...
module_home/src/main/res/values/strings.xml
View file @
18bb680b
...
@@ -93,6 +93,8 @@
...
@@ -93,6 +93,8 @@
<string
name=
"rv_passenger_security"
>
乘客座位保障
</string>
<string
name=
"rv_passenger_security"
>
乘客座位保障
</string>
<string
name=
"rv_personal_safety"
>
保人身安全
</string>
<string
name=
"rv_personal_safety"
>
保人身安全
</string>
<string
name=
"rv_reservation_know"
>
预定须知
</string>
<string
name=
"rv_reservation_know"
>
预定须知
</string>
<string
name=
"rv_inviter_phone"
>
内部邀请人
</string>
<string
name=
"rv_agreed_reservation_know"
>
同意预定须知和
</string>
<string
name=
"rv_agreed_reservation_know"
>
同意预定须知和
</string>
<string
name=
"rv_contract_agreement"
>
《合同协议》
</string>
<string
name=
"rv_contract_agreement"
>
《合同协议》
</string>
<string
name=
"rv_driving"
>
驾驶人
</string>
<string
name=
"rv_driving"
>
驾驶人
</string>
...
...
module_tourism/src/main/java/com/rv/tourism/TourismFragment.java
View file @
18bb680b
...
@@ -5,7 +5,6 @@ import android.content.ComponentName;
...
@@ -5,7 +5,6 @@ import android.content.ComponentName;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.graphics.Rect
;
import
android.graphics.Rect
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
...
@@ -28,10 +27,8 @@ import com.baidu.mapapi.search.geocode.GeoCodeResult;
...
@@ -28,10 +27,8 @@ import com.baidu.mapapi.search.geocode.GeoCodeResult;
import
com.baidu.mapapi.search.geocode.GeoCoder
;
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.base.utils.tools.android.IntentUtil
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.SPConstance
;
import
com.ruiwenliu.wrapper.browse.ActivityImageBrowseUrl
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
import
com.ruiwenliu.wrapper.base.BaseFragment
;
...
@@ -49,7 +46,6 @@ import com.rv.tourism.api.TourismApi;
...
@@ -49,7 +46,6 @@ import com.rv.tourism.api.TourismApi;
import
com.rv.tourism.bean.BeanPopularBrigade
;
import
com.rv.tourism.bean.BeanPopularBrigade
;
import
com.rv.tourism.bean.BeanPopularBrigadeAll
;
import
com.rv.tourism.bean.BeanPopularBrigadeAll
;
import
com.rv.tourism.bean.BeanTourAround
;
import
com.rv.tourism.bean.BeanTourAround
;
import
com.rv.tourism.bean.BeanTourDetail
;
import
com.rv.tourism.bean.BeanTourismBanner
;
import
com.rv.tourism.bean.BeanTourismBanner
;
import
com.rv.tourism.other.PopularTourListActivity
;
import
com.rv.tourism.other.PopularTourListActivity
;
...
@@ -67,7 +63,7 @@ import java.util.List;
...
@@ -67,7 +63,7 @@ import java.util.List;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
butterknife.OnClick
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Consumer
;
import
pub.devrel.easypermissions.AppSettingsDialog
;
/**
/**
* 旅游
* 旅游
...
@@ -93,6 +89,8 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -93,6 +89,8 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
LinearLayout
llLayoutPopularMore
;
LinearLayout
llLayoutPopularMore
;
@BindView
(
R2
.
id
.
refresh
)
@BindView
(
R2
.
id
.
refresh
)
SimpleRefreshLayout
mSimpleRefreshLayout
;
SimpleRefreshLayout
mSimpleRefreshLayout
;
@BindView
(
R2
.
id
.
travel_server_image
)
ImageView
ImgTravelServer
;
private
ArrayList
<
String
>
images
=
new
ArrayList
<>();
//图片(默认采用网络地址)
private
ArrayList
<
String
>
images
=
new
ArrayList
<>();
//图片(默认采用网络地址)
...
@@ -112,6 +110,8 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -112,6 +110,8 @@ 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
();
...
@@ -234,6 +234,9 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -234,6 +234,9 @@ 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
));
...
@@ -436,6 +439,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
...
@@ -436,6 +439,11 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
travelBanner
.
updateBannerStyle
(
BannerConfig
.
CIRCLE_INDICATOR
);
travelBanner
.
updateBannerStyle
(
BannerConfig
.
CIRCLE_INDICATOR
);
}
}
public
void
newsComing
()
{
// hasNewMessage = true;
// ImgTravelServer.setImageResource(R.drawable.common_journey_service_gray_news);
}
@Override
@Override
public
void
onDestroy
()
{
public
void
onDestroy
()
{
...
...
module_tourism/src/main/java/com/rv/tourism/other/TravelerConfirmOrderActivity.java
View file @
18bb680b
...
@@ -120,6 +120,8 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -120,6 +120,8 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
LinearLayout
llBottom
;
LinearLayout
llBottom
;
@BindView
(
R2
.
id
.
tv_coupon_amount
)
@BindView
(
R2
.
id
.
tv_coupon_amount
)
TextView
tvCouponAmount
;
TextView
tvCouponAmount
;
@BindView
(
R2
.
id
.
edt_inviter_phone
)
EditText
edtInviterPhone
;
private
static
final
int
SDK_ALI_PAY_FLAG
=
11
;
private
static
final
int
SDK_ALI_PAY_FLAG
=
11
;
private
BeanOrderParam
dataBean
;
private
BeanOrderParam
dataBean
;
...
@@ -143,6 +145,8 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -143,6 +145,8 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
private
double
couponAmount
=
0
;
//优惠券金额
private
double
couponAmount
=
0
;
//优惠券金额
private
String
status
=
"1"
;
// 优惠券状态
private
String
status
=
"1"
;
// 优惠券状态
private
String
inviterPhone
;
private
List
<
String
>
couponIdList
=
new
ArrayList
<>();
//选中优惠券
private
List
<
String
>
couponIdList
=
new
ArrayList
<>();
//选中优惠券
...
@@ -419,7 +423,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -419,7 +423,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
.
withSerializable
(
"selectCoupon"
,
JSON
.
toJSONString
(
selectCouponList
))
.
withSerializable
(
"selectCoupon"
,
JSON
.
toJSONString
(
selectCouponList
))
.
navigation
(
this
,
134
);
.
navigation
(
this
,
134
);
}
}
}
else
if
(
id
==
R
.
id
.
iv_item_insurance_information
)
{
}
else
if
(
id
==
R
.
id
.
iv_item_insurance_information
)
{
//保险说明
//保险说明
ARouter
.
getInstance
().
build
(
Constance
.
ACTIVITY_URL_WEBVIEW
)
ARouter
.
getInstance
().
build
(
Constance
.
ACTIVITY_URL_WEBVIEW
)
.
withString
(
"title"
,
"保险说明"
)
.
withString
(
"title"
,
"保险说明"
)
...
@@ -491,6 +495,17 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -491,6 +495,17 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
return
;
return
;
}
}
inviterPhone
=
edtInviterPhone
.
getText
().
toString
().
trim
();
if
(!
TextUtils
.
isEmpty
(
inviterPhone
)
&&
inviterPhone
.
length
()
!=
11
)
{
showToast
(
"请输入正确的邀请人手机号"
);
edtInviterPhone
.
setFocusable
(
true
);
edtInviterPhone
.
setFocusableInTouchMode
(
true
);
edtInviterPhone
.
requestFocus
();
getWindow
().
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_STATE_ALWAYS_VISIBLE
);
edtInviterPhone
.
setSelection
(
inviterPhone
.
length
());
return
;
}
payType
=
1
;
payType
=
1
;
new
PaymentTypeSelection
(
mActivity
)
{
new
PaymentTypeSelection
(
mActivity
)
{
@Override
@Override
...
@@ -537,7 +552,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -537,7 +552,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
Map
<
String
,
Object
>
headMap
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
headMap
=
new
LinkedHashMap
<>();
if
(
OkGoUtil
.
getToken
()
!=
null
)
if
(
OkGoUtil
.
getToken
()
!=
null
)
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
mPresenter
.
postBodyData
(
RvFrameConfig
.
ADMIN_POST
,
0
,
TourismApi
.
COMMIT_ORDER
,
BeanTourOrderResponse
.
class
,
new
Tourist
(
etMailbox
.
getText
().
toString
().
trim
(),
name
,
phone
,
dataBean
.
getEndAddr
(),
endTime
,
dataBean
.
getGoodId
(),
ids
,
dataBean
.
getSpePriceId
(),
dataBean
.
getStartAddr
(),
dataBean
.
getStartCompanyId
(),
startTime
,
dataBean
.
getSiteId
(),
isInsuranceType
,
couponIds
),
headMap
,
true
);
mPresenter
.
postBodyData
(
RvFrameConfig
.
ADMIN_POST
,
0
,
TourismApi
.
COMMIT_ORDER
,
BeanTourOrderResponse
.
class
,
new
Tourist
(
etMailbox
.
getText
().
toString
().
trim
(),
name
,
phone
,
dataBean
.
getEndAddr
(),
endTime
,
dataBean
.
getGoodId
(),
ids
,
dataBean
.
getSpePriceId
(),
dataBean
.
getStartAddr
(),
dataBean
.
getStartCompanyId
(),
startTime
,
dataBean
.
getSiteId
(),
isInsuranceType
,
couponIds
,
inviterPhone
),
headMap
,
true
);
}
}
...
@@ -739,8 +754,9 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -739,8 +754,9 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
private
String
siteId
;
private
String
siteId
;
private
int
hasInsure
;
private
int
hasInsure
;
private
String
tickerNos
;
private
String
tickerNos
;
private
String
facilitatePhone
;
public
Tourist
(
String
contactEmail
,
String
contactMan
,
String
contactPhone
,
String
endAddr
,
String
endTime
,
String
goodId
,
String
tourUserIds
,
String
spePriceId
,
String
startAddr
,
String
startCompanyId
,
String
startTime
,
String
siteId
,
int
hasInsure
,
String
tickerNos
)
{
public
Tourist
(
String
contactEmail
,
String
contactMan
,
String
contactPhone
,
String
endAddr
,
String
endTime
,
String
goodId
,
String
tourUserIds
,
String
spePriceId
,
String
startAddr
,
String
startCompanyId
,
String
startTime
,
String
siteId
,
int
hasInsure
,
String
tickerNos
,
String
facilitatePhone
)
{
this
.
contactEmail
=
contactEmail
;
this
.
contactEmail
=
contactEmail
;
this
.
contactMan
=
contactMan
;
this
.
contactMan
=
contactMan
;
this
.
contactPhone
=
contactPhone
;
this
.
contactPhone
=
contactPhone
;
...
@@ -755,6 +771,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -755,6 +771,7 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
this
.
siteId
=
siteId
;
this
.
siteId
=
siteId
;
this
.
hasInsure
=
hasInsure
;
this
.
hasInsure
=
hasInsure
;
this
.
tickerNos
=
tickerNos
;
this
.
tickerNos
=
tickerNos
;
this
.
facilitatePhone
=
facilitatePhone
;
}
}
public
String
getContactEmail
()
{
public
String
getContactEmail
()
{
...
@@ -868,6 +885,14 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
...
@@ -868,6 +885,14 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
public
void
setTickerNos
(
String
tickerNos
)
{
public
void
setTickerNos
(
String
tickerNos
)
{
this
.
tickerNos
=
tickerNos
;
this
.
tickerNos
=
tickerNos
;
}
}
public
String
getFacilitatePhone
()
{
return
facilitatePhone
;
}
public
void
setFacilitatePhone
(
String
facilitatePhone
)
{
this
.
facilitatePhone
=
facilitatePhone
;
}
}
}
public
class
payBody
{
public
class
payBody
{
...
...
module_tourism/src/main/res/layout/activity_confirm_order_travel.xml
View file @
18bb680b
...
@@ -457,6 +457,37 @@
...
@@ -457,6 +457,37 @@
android:src=
"@drawable/tourism_rv_common_icon_notice"
/>
android:src=
"@drawable/tourism_rv_common_icon_notice"
/>
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_15"
android:background=
"@color/colorWrite"
android:padding=
"@dimen/size_15"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_weight=
"1"
android:text=
"内部邀请人"
android:textColor=
"@color/textMain"
android:textSize=
"@dimen/text_16"
/>
<EditText
android:inputType=
"phone"
android:maxLength=
"11"
android:id=
"@+id/edt_inviter_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:background=
"@color/colorWrite"
android:gravity=
"center_vertical|right"
android:hint=
"请输入邀请人手机号"
android:textColor=
"@color/text_Gray"
android:textSize=
"@dimen/text_12"
/>
</RelativeLayout>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/size_40"
android:layout_height=
"@dimen/size_40"
...
...
plugin_calendar/src/main/java/com/rv/plugin/calendar/CalendarActivity.java
View file @
18bb680b
...
@@ -15,6 +15,8 @@ import com.ruiwenliu.wrapper.base.BaseBean;
...
@@ -15,6 +15,8 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import
com.ruiwenliu.wrapper.base.BaseStatusActivity
;
import
com.ruiwenliu.wrapper.base.BaseStatusActivity
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.rv.component.control.WheelView
;
import
com.rv.component.control.WheelView
;
import
com.rv.component.utils.AppCookie
;
import
com.rv.component.utils.Cookie
;
import
com.rv.component.utils.DateUtils
;
import
com.rv.component.utils.DateUtils
;
import
com.rv.component.utils.MyUtils
;
import
com.rv.component.utils.MyUtils
;
import
com.rv.plugin.calendar.bean.DateInfo
;
import
com.rv.plugin.calendar.bean.DateInfo
;
...
@@ -57,7 +59,7 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
...
@@ -57,7 +59,7 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
/**
/**
* 最大的日历期限
* 最大的日历期限
*/
*/
private
final
int
MAX_SPAN
=
30
;
private
int
MAX_SPAN
;
private
int
spanIndex
=
1
;
private
int
spanIndex
=
1
;
...
@@ -74,7 +76,6 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
...
@@ -74,7 +76,6 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
public
static
Intent
getIntent
(
Context
context
)
{
public
static
Intent
getIntent
(
Context
context
)
{
return
new
Intent
(
context
,
CalendarActivity
.
class
);
return
new
Intent
(
context
,
CalendarActivity
.
class
);
}
}
@Override
@Override
...
@@ -82,7 +83,7 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
...
@@ -82,7 +83,7 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
ButterKnife
.
bind
(
this
);
ButterKnife
.
bind
(
this
);
context
=
this
;
context
=
this
;
MAX_SPAN
=
AppCookie
.
getIntValue
(
context
,
AppCookie
.
KEY_PRERENT_DAYS
,
30
);
begDay
=
DateUtils
.
formatDate16
(
begDate
);
begDay
=
DateUtils
.
formatDate16
(
begDate
);
begTime
=
DateUtils
.
formatDate17
(
begDate
);
begTime
=
DateUtils
.
formatDate17
(
begDate
);
endDay
=
DateUtils
.
formatDate16
(
endDate
);
endDay
=
DateUtils
.
formatDate16
(
endDate
);
...
...
plugin_calendar/src/main/java/com/rv/plugin/calendar/bean/PreRentDaysBean.java
0 → 100644
View file @
18bb680b
package
com
.
rv
.
plugin
.
calendar
.
bean
;
import
android.text.Html
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
java.util.List
;
public
class
PreRentDaysBean
extends
BaseBean
{
private
boolean
rel
;
private
List
<
Data
>
data
;
public
boolean
isRel
()
{
return
rel
;
}
public
void
setRel
(
boolean
rel
)
{
this
.
rel
=
rel
;
}
public
List
<
Data
>
getData
()
{
return
data
;
}
public
void
setData
(
List
<
Data
>
data
)
{
this
.
data
=
data
;
}
public
class
Data
{
private
int
id
;
private
int
type
;
private
String
value
;
private
long
crtTime
;
private
long
updTime
;
private
int
isDel
;
private
String
title
;
private
String
params
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getType
()
{
return
type
;
}
public
void
setType
(
int
type
)
{
this
.
type
=
type
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
Html
.
fromHtml
(
value
).
toString
();
}
public
long
getCrtTime
()
{
return
crtTime
;
}
public
void
setCrtTime
(
long
crtTime
)
{
this
.
crtTime
=
crtTime
;
}
public
long
getUpdTime
()
{
return
updTime
;
}
public
void
setUpdTime
(
long
updTime
)
{
this
.
updTime
=
updTime
;
}
public
int
getIsDel
()
{
return
isDel
;
}
public
void
setIsDel
(
int
isDel
)
{
this
.
isDel
=
isDel
;
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
String
getParams
()
{
return
params
;
}
public
void
setParams
(
String
params
)
{
this
.
params
=
params
;
}
}
}
plugin_coupon/src/main/java/com/xxrv/coupon/fragment/WaitCouponFragment.java
View file @
18bb680b
package
com
.
xxrv
.
coupon
.
fragment
;
package
com
.
xxrv
.
coupon
.
fragment
;
import
android.content.ComponentName
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.RecyclerView
;
...
@@ -21,6 +24,7 @@ import com.yuyife.okgo.OkGoUtil;
...
@@ -21,6 +24,7 @@ import com.yuyife.okgo.OkGoUtil;
import
java.util.LinkedHashMap
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.Map
;
import
butterknife.BindView
;
import
butterknife.BindView
;
/**
/**
...
@@ -36,7 +40,7 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
...
@@ -36,7 +40,7 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
WaitCouponAdapter
mAdapter
;
WaitCouponAdapter
mAdapter
;
public
static
WaitCouponFragment
getInstance
(
int
type
)
{
public
static
WaitCouponFragment
getInstance
(
int
type
)
{
Bundle
bundl
=
new
Bundle
();
Bundle
bundl
=
new
Bundle
();
bundl
.
putInt
(
"type"
,
type
);
bundl
.
putInt
(
"type"
,
type
);
...
@@ -63,14 +67,16 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
...
@@ -63,14 +67,16 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
@Override
@Override
public
void
onItemClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
public
void
onItemClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
CouponBean
.
DataBean
bean
=
(
CouponBean
.
DataBean
)
adapter
.
getItem
(
position
);
CouponBean
.
DataBean
bean
=
(
CouponBean
.
DataBean
)
adapter
.
getItem
(
position
);
if
(
"0"
.
equals
(
bean
.
getChannel
())
||
"1"
.
equals
(
bean
.
getChannel
())){
//0-全平台;1-租车;2-旅游;3-营地
if
(
"0"
.
equals
(
bean
.
getChannel
())
||
"1"
.
equals
(
bean
.
getChannel
()))
{
//0-全平台;1-租车;2-旅游;3-营地
_mActivity
.
finish
();
Intent
intent
=
new
Intent
();
SwitchFragment
.
sChangeFragment
.
changge
(
0
);
intent
.
setComponent
(
new
ComponentName
(
getContext
(),
"com.xxfc.rv.MainActivity"
));
intent
.
putExtra
(
"to"
,
"home"
);
}
else
if
(
"2"
.
equals
(
bean
.
getChannel
())){
startActivity
(
intent
);
_mActivity
.
finish
();
}
else
if
(
"2"
.
equals
(
bean
.
getChannel
()))
{
SwitchFragment
.
sChangeFragment
.
changge
(
1
);
Intent
intent
=
new
Intent
();
intent
.
setComponent
(
new
ComponentName
(
getContext
(),
"com.xxfc.rv.MainActivity"
));
intent
.
putExtra
(
"to"
,
"travel"
);
startActivity
(
intent
);
}
}
}
}
});
});
...
@@ -91,7 +97,7 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
...
@@ -91,7 +97,7 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"type"
,
"0"
);
map
.
put
(
"type"
,
"0"
);
mPresenter
.
getData
(
RvFrameConfig
.
HOST
,
0
,
CouponApi
.
HTTP_URL_COUPON_LIST
,
CouponBean
.
class
,
map
,
headMap
,
false
);
mPresenter
.
getData
(
RvFrameConfig
.
HOST
,
0
,
CouponApi
.
HTTP_URL_COUPON_LIST
,
CouponBean
.
class
,
map
,
headMap
,
false
);
}
}
@Override
@Override
...
@@ -101,11 +107,11 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
...
@@ -101,11 +107,11 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
}
}
private
void
processData
(
CouponBean
bean
)
{
private
void
processData
(
CouponBean
bean
)
{
if
(
bean
!=
null
&&
bean
.
getData
()!=
null
&&
bean
.
getData
().
size
()
>
0
)
{
if
(
bean
!=
null
&&
bean
.
getData
()
!=
null
&&
bean
.
getData
().
size
()
>
0
)
{
mAdapter
.
getData
().
clear
();
mAdapter
.
getData
().
clear
();
mAdapter
.
addData
(
bean
.
getData
());
mAdapter
.
addData
(
bean
.
getData
());
mAdapter
.
notifyDataSetChanged
();
mAdapter
.
notifyDataSetChanged
();
}
else
{
}
else
{
mAdapter
.
setEmptyView
(
getEmptyView
(
rvContent
,
-
1
,
"暂无优惠券"
));
mAdapter
.
setEmptyView
(
getEmptyView
(
rvContent
,
-
1
,
"暂无优惠券"
));
mAdapter
.
notifyDataSetChanged
();
mAdapter
.
notifyDataSetChanged
();
}
}
...
...
plugin_im/src/main/AndroidManifest.xml
View file @
18bb680b
...
@@ -34,7 +34,8 @@
...
@@ -34,7 +34,8 @@
<service
android:name=
"com.rv.im.call.RecordService"
/>
<service
android:name=
"com.rv.im.call.RecordService"
/>
<activity
android:name=
"com.rv.im.CustomerListActivity"
></activity>
<activity
android:name=
"com.rv.im.CustomerListActivity"
android:launchMode=
"singleTask"
></activity>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
plugin_im/src/main/assets/news.mp3
0 → 100644
View file @
18bb680b
File added
plugin_im/src/main/java/com/rv/im/ChatActivity.java
View file @
18bb680b
...
@@ -33,12 +33,16 @@ import com.ruiwenliu.wrapper.base.BaseStatusActivity;
...
@@ -33,12 +33,16 @@ import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import
com.ruiwenliu.wrapper.base.presenter.CommonPresenter
;
import
com.ruiwenliu.wrapper.base.presenter.CommonPresenter
;
import
com.ruiwenliu.wrapper.util.permission.RxPermission
;
import
com.ruiwenliu.wrapper.util.permission.RxPermission
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.rv.component.utils.CacheEnum
;
import
com.rv.component.utils.RvCache
;
import
com.rv.im.adapter.ChatContentAdapter
;
import
com.rv.im.adapter.ChatContentAdapter
;
import
com.rv.im.audio.IMRecordController
;
import
com.rv.im.audio.IMRecordController
;
import
com.rv.im.audio.RecordListener
;
import
com.rv.im.audio.RecordListener
;
import
com.rv.im.audio_x.VoicePlayer
;
import
com.rv.im.audio_x.VoicePlayer
;
import
com.rv.im.bean.User
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
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.db.table.Customer
;
import
com.rv.im.enums.MessageStatusEnum
;
import
com.rv.im.enums.MessageStatusEnum
;
import
com.rv.im.enums.MessageTypeEnum
;
import
com.rv.im.enums.MessageTypeEnum
;
import
com.rv.im.mucfile.RvDownManager
;
import
com.rv.im.mucfile.RvDownManager
;
...
@@ -49,6 +53,7 @@ import com.rv.im.mvp.view.IChatView;
...
@@ -49,6 +53,7 @@ import com.rv.im.mvp.view.IChatView;
import
com.rv.im.photopicker.PhotoPickerActivity
;
import
com.rv.im.photopicker.PhotoPickerActivity
;
import
com.rv.im.util.FileUtils
;
import
com.rv.im.util.FileUtils
;
import
com.rv.im.util.InputManager
;
import
com.rv.im.util.InputManager
;
import
com.rv.im.util.RvImTimerTask
;
import
com.rv.im.video.ChatVideoPreviewActivity
;
import
com.rv.im.video.ChatVideoPreviewActivity
;
import
com.rv.im.view.ChatFaceView
;
import
com.rv.im.view.ChatFaceView
;
import
com.rv.im.xmpp.ListenerManager
;
import
com.rv.im.xmpp.ListenerManager
;
...
@@ -56,7 +61,10 @@ import com.rv.im.xmpp.listener.ChatMessageListener;
...
@@ -56,7 +61,10 @@ import com.rv.im.xmpp.listener.ChatMessageListener;
import
java.io.File
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Timer
;
import
pub.devrel.easypermissions.AppSettingsDialog
;
import
pub.devrel.easypermissions.AppSettingsDialog
;
...
@@ -82,6 +90,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -82,6 +90,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
private
String
targetUserId
;
private
String
targetUserId
;
private
String
targetName
;
private
String
targetName
;
private
int
customerStatus
;
private
Timer
timer
;
private
RvImTimerTask
timerTask
;
private
int
startPosition
;
private
int
startPosition
;
private
int
endPosition
;
private
int
endPosition
;
...
@@ -215,10 +227,11 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -215,10 +227,11 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
}
}
};
};
public
static
Intent
getIntent
(
Context
context
,
String
targetUserId
,
String
targetName
)
{
public
static
Intent
getIntent
(
Context
context
,
String
targetUserId
,
String
targetName
,
int
customerStatus
)
{
Intent
intent
=
new
Intent
(
context
,
ChatActivity
.
class
);
Intent
intent
=
new
Intent
(
context
,
ChatActivity
.
class
);
intent
.
putExtra
(
"targetUserId"
,
targetUserId
);
intent
.
putExtra
(
"targetUserId"
,
targetUserId
);
intent
.
putExtra
(
"targetName"
,
targetName
);
intent
.
putExtra
(
"targetName"
,
targetName
);
intent
.
putExtra
(
"customerStatus"
,
customerStatus
);
return
intent
;
return
intent
;
}
}
...
@@ -232,7 +245,9 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -232,7 +245,9 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
targetUserId
=
getIntent
().
getStringExtra
(
"targetUserId"
);
targetUserId
=
getIntent
().
getStringExtra
(
"targetUserId"
);
targetName
=
getIntent
().
getStringExtra
(
"targetName"
);
targetName
=
getIntent
().
getStringExtra
(
"targetName"
);
if
(!
TextUtils
.
isEmpty
(
targetName
))
titleView
.
setTitle
(
targetName
);
customerStatus
=
getIntent
().
getIntExtra
(
"customerStatus"
,
0
);
if
(!
TextUtils
.
isEmpty
(
targetName
))
titleView
.
setTitle
(
targetName
+
(
customerStatus
==
0
?
"(离线)"
:
"(在线)"
));
mInputManager
=
(
InputMethodManager
)
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
mInputManager
=
(
InputMethodManager
)
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
mLoginUserId
=
ImSetting
.
getUserId
();
mLoginUserId
=
ImSetting
.
getUserId
();
presenter
=
new
ChatPresenterImp
(
this
,
this
);
presenter
=
new
ChatPresenterImp
(
this
,
this
);
...
@@ -241,6 +256,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -241,6 +256,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
setMsgRead
(
targetUserId
);
ChatMessageServiceImp
.
getInstance
(
getApplicationContext
()).
setMsgRead
(
targetUserId
);
initWidget
();
initWidget
();
initListener
();
initListener
();
timer
=
new
Timer
();
timerTask
=
new
RvImTimerTask
(
timerListener
);
timer
.
schedule
(
timerTask
,
100
,
10000
);
}
}
@Override
@Override
...
@@ -258,6 +277,13 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -258,6 +277,13 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
@Override
@Override
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
if
(
requestType
==
1
)
{
User
user
=
(
User
)
result
;
if
(
user
!=
null
&&
user
.
getData
()
!=
null
)
{
if
(!
TextUtils
.
isEmpty
(
targetName
))
titleView
.
setTitle
(
targetName
+
(
user
.
getData
().
getOnlinestate
()
==
0
?
"(离线)"
:
"(在线)"
));
}
}
}
}
private
void
initWidget
()
{
private
void
initWidget
()
{
...
@@ -517,6 +543,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -517,6 +543,10 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
public
void
onDestroy
()
{
public
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
ListenerManager
.
getInstance
().
removeChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
removeChatMessageListener
(
this
);
if
(
timer
!=
null
)
timer
.
cancel
();
if
(
timerTask
!=
null
)
timerTask
.
cancel
();
}
}
private
void
getData
()
{
private
void
getData
()
{
...
@@ -711,4 +741,17 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
...
@@ -711,4 +741,17 @@ public class ChatActivity extends BaseStatusActivity<CommonPresenter> implements
}
}
presenter
.
sendVoice
(
filePath
,
timeLen
);
presenter
.
sendVoice
(
filePath
,
timeLen
);
}
}
private
RvImTimerTask
.
TimerListener
timerListener
=
()
->
runOnUiThread
(()
->
{
AppConfig
appConfig
=
(
AppConfig
)
RvCache
.
getInstance
().
get
(
CacheEnum
.
IM_CONFIG
);
if
(
appConfig
!=
null
&&
!
TextUtils
.
isEmpty
(
appConfig
.
USER_GET_URL
))
initFriendState
(
appConfig
.
USER_GET_URL
);
});
private
void
initFriendState
(
String
url
)
{
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"access_token"
,
ImSetting
.
getImToken
());
params
.
put
(
"userId"
,
targetUserId
);
mPresenter
.
getData
(
1
,
url
,
User
.
class
,
params
,
false
);
}
}
}
plugin_im/src/main/java/com/rv/im/ConversationListActivity.java
View file @
18bb680b
...
@@ -80,7 +80,7 @@ public class ConversationListActivity extends BaseStatusActivity<CommonPresenter
...
@@ -80,7 +80,7 @@ public class ConversationListActivity extends BaseStatusActivity<CommonPresenter
adapter
=
new
ChatConversationAdapter
(
conversations
);
adapter
=
new
ChatConversationAdapter
(
conversations
);
adapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
adapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
ChatConversation
conversation
=
conversations
.
get
(
position
);
ChatConversation
conversation
=
conversations
.
get
(
position
);
startActivityForResult
(
ChatActivity
.
getIntent
(
getApplicationContext
(),
conversation
.
getUserId
(),
conversation
.
getUserName
()),
1
);
startActivityForResult
(
ChatActivity
.
getIntent
(
getApplicationContext
(),
conversation
.
getUserId
(),
conversation
.
getUserName
()
,
0
),
1
);
});
});
recyclerView
.
setAdapter
(
adapter
);
recyclerView
.
setAdapter
(
adapter
);
...
...
plugin_im/src/main/java/com/rv/im/CustomerListActivity.java
View file @
18bb680b
package
com
.
rv
.
im
;
package
com
.
rv
.
im
;
import
android.app.AlertDialog
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.provider.Settings
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.RecyclerView
;
import
android.text.TextUtils
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.Toast
;
import
android.widget.Toast
;
...
@@ -14,20 +19,29 @@ import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
...
@@ -14,20 +19,29 @@ import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView
;
import
com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView
;
import
com.rv.component.utils.CacheEnum
;
import
com.rv.component.utils.RvCache
;
import
com.rv.im.adapter.CustomerListAdapter
;
import
com.rv.im.adapter.CustomerListAdapter
;
import
com.rv.im.bean.CustomersBean
;
import
com.rv.im.bean.CustomersBean
;
import
com.rv.im.bean.User
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.service.CustomerServiceImp
;
import
com.rv.im.db.service.CustomerServiceImp
;
import
com.rv.im.db.service.ICustomerService
;
import
com.rv.im.db.service.ICustomerService
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.db.table.Customer
;
import
com.rv.im.db.table.Customer
;
import
com.rv.im.util.RvImTimerTask
;
import
com.rv.im.util.ServiceUtils
;
import
com.rv.im.util.ServiceUtils
;
import
com.rv.im.xmpp.ListenerManager
;
import
com.rv.im.xmpp.ListenerManager
;
import
com.rv.im.xmpp.listener.ChatMessageListener
;
import
com.rv.im.xmpp.listener.ChatMessageListener
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
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
{
...
@@ -35,6 +49,10 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -35,6 +49,10 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
private
RecyclerView
recyclerView
;
private
RecyclerView
recyclerView
;
private
List
<
Customer
>
customers
=
new
ArrayList
<>();
private
List
<
Customer
>
customers
=
new
ArrayList
<>();
private
CustomerListAdapter
adapter
=
null
;
private
CustomerListAdapter
adapter
=
null
;
private
Timer
timer
;
private
RvImTimerTask
timerTask
;
private
Map
<
String
,
Integer
>
customerStatus
=
new
HashMap
<>();
private
int
testTime
=
0
;
private
int
testTime
=
0
;
...
@@ -43,12 +61,11 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -43,12 +61,11 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
return
R
.
layout
.
activity_customer_list
;
return
R
.
layout
.
activity_customer_list
;
}
}
@Override
@Override
protected
void
initView
(
Bundle
savedInstanceState
,
TitleView
titleView
,
Intent
intent
)
{
protected
void
initView
(
Bundle
savedInstanceState
,
TitleView
titleView
,
Intent
intent
)
{
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
titleView
.
setTitle
(
"客服列表"
);
titleView
.
setTitle
(
"客服列表"
);
timer
=
new
Timer
();
titleView
.
setImageResource
(
R
.
id
.
iv_title_right
,
R
.
drawable
.
ic_app_add
);
titleView
.
setImageResource
(
R
.
id
.
iv_title_right
,
R
.
drawable
.
ic_app_add
);
titleView
.
setChildClickListener
(
R
.
id
.
iv_title_right
,
v
->
{
titleView
.
setChildClickListener
(
R
.
id
.
iv_title_right
,
v
->
{
if
(!
BuildConfig
.
DEBUG
)
return
;
if
(!
BuildConfig
.
DEBUG
)
return
;
...
@@ -66,14 +83,16 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -66,14 +83,16 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
refreshLayout
=
findViewById
(
R
.
id
.
refresh
);
refreshLayout
=
findViewById
(
R
.
id
.
refresh
);
recyclerView
=
findViewById
(
R
.
id
.
recyclerView
);
recyclerView
=
findViewById
(
R
.
id
.
recyclerView
);
recyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
this
,
LinearLayout
.
VERTICAL
,
false
));
recyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
this
,
LinearLayout
.
VERTICAL
,
false
));
adapter
=
new
CustomerListAdapter
(
getApplicationContext
(),
customers
);
adapter
=
new
CustomerListAdapter
(
getApplicationContext
(),
customers
,
customerStatus
);
adapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
adapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
Customer
customer
=
customers
.
get
(
position
);
Customer
customer
=
customers
.
get
(
position
);
startActivityForResult
(
ChatActivity
.
getIntent
(
getApplicationContext
(),
customer
.
getImUserId
(),
customer
.
getName
()),
1
);
startActivityForResult
(
ChatActivity
.
getIntent
(
getApplicationContext
(),
customer
.
getImUserId
(),
customer
.
getName
(),
customerStatus
.
get
(
customer
.
getImUserId
())
==
null
?
0
:
customerStatus
.
get
(
customer
.
getImUserId
()).
intValue
()),
1
);
});
});
refreshLayout
.
setHeaderView
(
new
SimpleRefreshView
(
this
));
refreshLayout
.
setHeaderView
(
new
SimpleRefreshView
(
this
));
refreshLayout
.
setOnSimpleRefreshListener
(
this
);
refreshLayout
.
setOnSimpleRefreshListener
(
this
);
recyclerView
.
setAdapter
(
adapter
);
recyclerView
.
setAdapter
(
adapter
);
checkOverlayPermission
();
}
}
@Override
@Override
...
@@ -82,6 +101,26 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -82,6 +101,26 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
getCustomerList
();
getCustomerList
();
}
}
/********
* 检查滴房车是否能在其他应用上层显示
*/
private
void
checkOverlayPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
)
{
if
(!
Settings
.
canDrawOverlays
(
this
))
{
new
AlertDialog
.
Builder
(
this
).
setTitle
(
"提示"
)
.
setMessage
(
"允许在手机上层显示,实时获知新消息"
)
.
setNegativeButton
(
"下次再说"
,
(
dialogInterface
,
i
)
->
{
dialogInterface
.
dismiss
();
}).
setPositiveButton
(
"好的"
,
(
dialogInterface
,
i
)
->
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_OVERLAY_PERMISSION
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
startActivity
(
intent
);
}).
setCancelable
(
false
).
show
();
}
}
}
/******
/******
* 获取客服列表
* 获取客服列表
*/
*/
...
@@ -103,6 +142,10 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -103,6 +142,10 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
customers
.
clear
();
customers
.
clear
();
customers
.
addAll
(
lists
);
customers
.
addAll
(
lists
);
adapter
.
notifyDataSetChanged
();
adapter
.
notifyDataSetChanged
();
if
(
timerTask
==
null
)
{
timerTask
=
new
RvImTimerTask
(
timerListener
);
timer
.
schedule
(
timerTask
,
100
,
10000
);
}
}
else
{
}
else
{
mPresenter
.
getData
(
0
,
ImUrlConfig
.
HTTP_CUSTOMER_LIST_URL
,
CustomersBean
.
class
,
true
);
mPresenter
.
getData
(
0
,
ImUrlConfig
.
HTTP_CUSTOMER_LIST_URL
,
CustomersBean
.
class
,
true
);
}
}
...
@@ -122,8 +165,30 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -122,8 +165,30 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
customers
.
clear
();
customers
.
clear
();
customers
.
addAll
(
bean
.
getData
());
customers
.
addAll
(
bean
.
getData
());
adapter
.
notifyDataSetChanged
();
adapter
.
notifyDataSetChanged
();
if
(
timerTask
==
null
)
{
timerTask
=
new
RvImTimerTask
(
timerListener
);
timer
.
schedule
(
timerTask
,
100
,
10000
);
}
getCustomService
().
addCustomers
(
customers
);
getCustomService
().
addCustomers
(
customers
);
}
}
}
else
if
(
requestType
==
1
)
{
User
user
=
(
User
)
result
;
if
(
user
!=
null
&&
user
.
getData
()
!=
null
&&
customers
!=
null
)
{
int
position
=
0
;
if
(!
TextUtils
.
isEmpty
(
user
.
getData
().
getUserId
()))
{
customerStatus
.
remove
(
user
.
getData
().
getUserId
());
customerStatus
.
put
(
user
.
getData
().
getUserId
(),
user
.
getData
().
getOnlinestate
());
}
for
(
int
i
=
0
;
i
<
customers
.
size
();
i
++)
{
Customer
customer
=
customers
.
get
(
i
);
if
(!
TextUtils
.
isEmpty
(
user
.
getData
().
getUserId
())
&&
user
.
getData
().
getUserId
().
equals
(
customer
.
getImUserId
()))
{
position
=
i
;
break
;
}
}
adapter
.
notifyItemChanged
(
position
);
}
}
}
}
}
...
@@ -149,7 +214,25 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -149,7 +214,25 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
@Override
@Override
public
void
onNewMessage
(
String
fromUserId
,
ChatMessage
message
,
boolean
isGroupMsg
)
{
public
void
onNewMessage
(
String
fromUserId
,
ChatMessage
message
,
boolean
isGroupMsg
)
{
getCustomerList
();
if
(
customers
!=
null
&&
customers
.
size
()
>
0
)
{
for
(
Customer
customer
:
customers
)
{
if
(!
TextUtils
.
isEmpty
(
customer
.
getImUserId
())
&&
customer
.
getImUserId
().
equals
(
fromUserId
))
{
if
(
message
!=
null
)
customer
.
setLastMessageInfo
(
message
);
break
;
}
}
}
Collections
.
sort
(
customers
,
(
o1
,
o2
)
->
{
if
(
o1
.
getLastMsgTimes
()
>
o2
.
getLastMsgTimes
())
{
return
-
1
;
}
else
if
(
o1
.
getLastMsgTimes
()
==
o2
.
getLastMsgTimes
())
{
return
0
;
}
return
1
;
});
adapter
.
notifyDataSetChanged
();
}
}
@Override
@Override
...
@@ -164,5 +247,27 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
...
@@ -164,5 +247,27 @@ public class CustomerListActivity extends BaseStatusActivity<CommonPresenter> im
public
void
onDestroy
()
{
public
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
ListenerManager
.
getInstance
().
removeChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
removeChatMessageListener
(
this
);
if
(
timer
!=
null
)
timer
.
cancel
();
if
(
timerTask
!=
null
)
timerTask
.
cancel
();
}
private
RvImTimerTask
.
TimerListener
timerListener
=
()
->
runOnUiThread
(()
->
{
AppConfig
appConfig
=
(
AppConfig
)
RvCache
.
getInstance
().
get
(
CacheEnum
.
IM_CONFIG
);
if
(
appConfig
!=
null
&&
!
TextUtils
.
isEmpty
(
appConfig
.
USER_GET_URL
))
if
(
customers
!=
null
&&
customers
.
size
()
>
0
)
for
(
Customer
customer
:
customers
)
{
if
(
customer
!=
null
)
initFriendState
(
appConfig
.
USER_GET_URL
,
customer
);
}
});
private
void
initFriendState
(
String
url
,
Customer
customer
)
{
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"access_token"
,
ImSetting
.
getImToken
());
params
.
put
(
"userId"
,
customer
.
getImUserId
());
mPresenter
.
getData
(
1
,
url
,
User
.
class
,
params
,
false
);
}
}
}
}
plugin_im/src/main/java/com/rv/im/adapter/CustomerListAdapter.java
View file @
18bb680b
package
com
.
rv
.
im
.
adapter
;
package
com
.
rv
.
im
.
adapter
;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
...
@@ -11,24 +12,39 @@ import com.rv.im.db.table.Customer;
...
@@ -11,24 +12,39 @@ import com.rv.im.db.table.Customer;
import
com.rv.im.util.SmileyParser
;
import
com.rv.im.util.SmileyParser
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
public
class
CustomerListAdapter
extends
BaseQuickAdapter
<
Customer
,
BaseViewHolder
>
{
public
class
CustomerListAdapter
extends
BaseQuickAdapter
<
Customer
,
BaseViewHolder
>
{
private
SmileyParser
parser
;
private
SmileyParser
parser
;
public
CustomerListAdapter
(
Context
context
,
@Nullable
List
<
Customer
>
data
)
{
private
Map
<
String
,
Integer
>
customerStatus
;
public
CustomerListAdapter
(
Context
context
,
@Nullable
List
<
Customer
>
data
,
Map
<
String
,
Integer
>
map
)
{
super
(
R
.
layout
.
item_customer
,
data
);
super
(
R
.
layout
.
item_customer
,
data
);
this
.
parser
=
SmileyParser
.
getInstance
(
context
);
this
.
parser
=
SmileyParser
.
getInstance
(
context
);
this
.
customerStatus
=
map
;
}
}
@Override
@Override
protected
void
convert
(
BaseViewHolder
helper
,
Customer
item
)
{
protected
void
convert
(
BaseViewHolder
helper
,
Customer
item
)
{
if
(!
TextUtils
.
isEmpty
(
item
.
getName
()))
if
(!
TextUtils
.
isEmpty
(
item
.
getName
()))
helper
.
setText
(
R
.
id
.
tv_name
,
item
.
getName
());
helper
.
setText
(
R
.
id
.
tv_name
,
item
.
getName
());
helper
.
setText
(
R
.
id
.
tv_state
,
"在线"
);
if
(
customerStatus
.
get
(
item
.
getImUserId
())
!=
null
&&
customerStatus
.
get
(
item
.
getImUserId
())
==
1
)
{
helper
.
setText
(
R
.
id
.
tv_state
,
"在线"
);
helper
.
setTextColor
(
R
.
id
.
tv_state
,
Color
.
parseColor
(
"#FFB74B"
));
}
else
{
helper
.
setText
(
R
.
id
.
tv_state
,
"离线"
);
helper
.
setTextColor
(
R
.
id
.
tv_state
,
Color
.
parseColor
(
"#CCCCCC"
));
}
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, 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
{
helper
.
setText
(
R
.
id
.
tv_last_msg
,
" "
);
}
}
}
private
static
String
deleteHtml
(
String
msg
)
{
private
static
String
deleteHtml
(
String
msg
)
{
...
...
plugin_im/src/main/java/com/rv/im/enums/MessageTypeEnum.java
View file @
18bb680b
...
@@ -11,7 +11,8 @@ public enum MessageTypeEnum {
...
@@ -11,7 +11,8 @@ public enum MessageTypeEnum {
VOLTE_CALL
(
5
,
"语音通话"
),
VOLTE_CALL
(
5
,
"语音通话"
),
VIDEO_CALL
(
6
,
"视频通话"
),
VIDEO_CALL
(
6
,
"视频通话"
),
CANCEL
(
7
,
"撤销"
)
;
CANCEL
(
7
,
"撤销"
),
PING
(
8
,
"ping"
);
private
int
type
;
private
int
type
;
private
String
name
;
private
String
name
;
...
...
plugin_im/src/main/java/com/rv/im/util/NotificationMananger.java
0 → 100644
View file @
18bb680b
package
com
.
rv
.
im
.
util
;
import
android.app.Notification
;
import
android.app.NotificationChannel
;
import
android.app.NotificationManager
;
import
android.app.PendingIntent
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.os.Build
;
import
android.support.v4.app.NotificationCompat
;
import
com.rv.im.CustomerListActivity
;
import
com.rv.im.R
;
public
class
NotificationMananger
{
private
NotificationMananger
()
{
}
public
static
void
showNewsNotification
(
Context
context
,
String
fromId
)
{
NotificationManager
manager
=
(
NotificationManager
)
context
.
getSystemService
(
Context
.
NOTIFICATION_SERVICE
);
NotificationCompat
.
Builder
builder
;
//判断是否是8.0Android.O
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
NotificationChannel
chan1
=
new
NotificationChannel
(
"1"
,
"newChannel"
,
NotificationManager
.
IMPORTANCE_HIGH
);
manager
.
createNotificationChannel
(
chan1
);
builder
=
new
NotificationCompat
.
Builder
(
context
,
"1"
);
}
else
{
builder
=
new
NotificationCompat
.
Builder
(
context
);
}
//
// 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
)
.
setWhen
(
System
.
currentTimeMillis
())
.
setContentIntent
(
pendingIntent
)
.
setContentTitle
(
"滴房车"
)
.
setContentText
(
"您有新的消息"
)
.
setAutoCancel
(
true
)
.
setPriority
(
Notification
.
PRIORITY_DEFAULT
)
.
build
();
manager
.
notify
(
0
,
notification
);
}
}
plugin_im/src/main/java/com/rv/im/view/TitleTextWindow.java
0 → 100644
View file @
18bb680b
package
com
.
rv
.
im
.
view
;
import
android.animation.Animator
;
import
android.animation.AnimatorListenerAdapter
;
import
android.animation.ObjectAnimator
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.os.Build
;
import
android.os.Looper
;
import
android.os.Message
;
import
android.util.Log
;
import
android.view.Gravity
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.WindowManager
;
import
android.widget.LinearLayout
;
import
android.widget.RelativeLayout
;
import
com.rv.im.CustomerListActivity
;
import
com.rv.im.R
;
public
class
TitleTextWindow
implements
View
.
OnTouchListener
{
private
Context
mContext
;
private
WindowManager
wm
;
private
LinearLayout
linearLayout
;
private
int
downY
;
public
TitleTextWindow
(
Context
context
)
{
mContext
=
context
;
}
private
android
.
os
.
Handler
mHander
=
new
android
.
os
.
Handler
(
Looper
.
myLooper
())
{
@Override
public
void
handleMessage
(
Message
msg
)
{
super
.
handleMessage
(
msg
);
animDismiss
();
}
};
/**
* 动画,从顶部弹出
*/
private
void
animShow
()
{
//使用动画从顶部弹出
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
linearLayout
,
"translationY"
,
-
linearLayout
.
getMeasuredHeight
(),
0
);
animator
.
setDuration
(
600
);
animator
.
start
();
}
/**
* 动画,从顶部收回
*/
private
void
animDismiss
()
{
if
(
linearLayout
==
null
||
linearLayout
.
getParent
()
==
null
)
{
return
;
}
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
linearLayout
,
"translationY"
,
linearLayout
.
getTranslationY
(),
-
linearLayout
.
getMeasuredHeight
());
animator
.
setDuration
(
600
);
animator
.
start
();
animator
.
addListener
(
new
AnimatorListenerAdapter
()
{
@Override
public
void
onAnimationCancel
(
Animator
animation
)
{
super
.
onAnimationCancel
(
animation
);
}
@Override
public
void
onAnimationEnd
(
Animator
animation
)
{
super
.
onAnimationEnd
(
animation
);
//移除HeaderToast (一定要在动画结束的时候移除,不然下次进来的时候由于wm里边已经有控件了,所以会导致卡死)
if
(
null
!=
linearLayout
&&
null
!=
linearLayout
.
getParent
())
{
wm
.
removeView
(
linearLayout
);
}
}
@Override
public
void
onAnimationRepeat
(
Animator
animation
)
{
super
.
onAnimationRepeat
(
animation
);
}
@Override
public
void
onAnimationStart
(
Animator
animation
)
{
super
.
onAnimationStart
(
animation
);
}
@Override
public
void
onAnimationPause
(
Animator
animation
)
{
super
.
onAnimationPause
(
animation
);
}
@Override
public
void
onAnimationResume
(
Animator
animation
)
{
super
.
onAnimationResume
(
animation
);
}
});
}
/**
* 向外部暴露显示的方法
*/
public
void
show
()
{
createTitleView
();
animShow
();
//3S后自动关闭
mHander
.
sendEmptyMessageDelayed
(
20
,
2000
);
}
/**
* 向外部暴露关闭的方法
*/
public
void
dismiss
()
{
animDismiss
();
}
/**
* 视图创建方法
*/
private
void
createTitleView
()
{
//准备Window要添加的View
linearLayout
=
new
LinearLayout
(
mContext
);
final
LinearLayout
.
LayoutParams
layoutParams
=
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
,
LinearLayout
.
LayoutParams
.
WRAP_CONTENT
);
linearLayout
.
setLayoutParams
(
layoutParams
);
View
titleView
=
View
.
inflate
(
mContext
,
R
.
layout
.
header_toast
,
null
);
//这里是你弹窗的UI
RelativeLayout
header
=
titleView
.
findViewById
(
R
.
id
.
header_toast
);
header
.
setOnClickListener
(
v
->
{
// Intent intent = new Intent();
// intent.setComponent(new ComponentName(mContext, mContext.getClass()));
// intent.putExtra("to", "chat");
// mContext.startActivity(intent);
Intent
intent
=
new
Intent
(
mContext
,
CustomerListActivity
.
class
);
mContext
.
startActivity
(
intent
);
animDismiss
();
});
// 为titleView设置Touch事件
linearLayout
.
setOnTouchListener
(
this
);
linearLayout
.
addView
(
titleView
);
// 定义WindowManager 并且将View添加到WindowManagar中去
wm
=
(
WindowManager
)
mContext
.
getSystemService
(
Context
.
WINDOW_SERVICE
);
WindowManager
.
LayoutParams
wm_params
=
new
WindowManager
.
LayoutParams
();
wm_params
.
flags
=
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCH_MODAL
|
WindowManager
.
LayoutParams
.
FLAG_NOT_FOCUSABLE
|
WindowManager
.
LayoutParams
.
FLAG_FULLSCREEN
|
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_IN_SCREEN
;
//这里需要注意,因为不同系统版本策略不一,所以需要根据版本判断设置type,否则会引起崩溃。
if
(
Build
.
VERSION
.
SDK_INT
>
Build
.
VERSION_CODES
.
N_MR1
)
{
//大于android SDK 7.1.1
wm_params
.
type
=
WindowManager
.
LayoutParams
.
TYPE_APPLICATION_OVERLAY
;
}
else
{
wm_params
.
type
=
WindowManager
.
LayoutParams
.
TYPE_SYSTEM_ALERT
;
}
wm_params
.
gravity
=
Gravity
.
TOP
;
wm_params
.
x
=
0
;
wm_params
.
y
=
0
;
wm_params
.
format
=
-
3
;
// 会影响Toast中的布局消失的时候父控件和子控件消失的时机不一致,比如设置为-1之后就会不同步
wm_params
.
alpha
=
0.8f
;
linearLayout
.
measure
(
0
,
0
);
wm_params
.
height
=
linearLayout
.
getMeasuredHeight
();
wm
.
addView
(
linearLayout
,
wm_params
);
}
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
downY
=
(
int
)
event
.
getRawY
();
break
;
case
MotionEvent
.
ACTION_MOVE
:
int
moveY
=
(
int
)
event
.
getRawY
();
if
(
moveY
-
downY
<
0
)
{
//如果是向上滑动
linearLayout
.
setTranslationY
(
moveY
-
downY
);
}
break
;
case
MotionEvent
.
ACTION_UP
:
//达到一定比例后,松开手指将关闭弹窗
if
(
Math
.
abs
(
linearLayout
.
getTranslationY
())
>
linearLayout
.
getMeasuredHeight
()
/
1.5
)
{
Log
.
e
(
"TAG"
,
"回弹"
);
animDismiss
();
}
else
{
linearLayout
.
setTranslationY
(
0
);
}
break
;
default
:
break
;
}
return
true
;
}
}
\ No newline at end of file
plugin_im/src/main/java/com/rv/im/xmpp/ListenerManager.java
View file @
18bb680b
package
com
.
rv
.
im
.
xmpp
;
package
com
.
rv
.
im
.
xmpp
;
import
android.media.MediaPlayer
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.os.Looper
;
import
com.rv.im.ImSetting
;
import
com.rv.im.ImSetting
;
import
com.rv.im.R
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.service.ChatMessageServiceImp
;
import
com.rv.im.db.service.IChatMessageService
;
import
com.rv.im.db.service.IChatMessageService
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.db.table.ChatMessage
;
import
com.rv.im.util.NotificationMananger
;
import
com.rv.im.xmpp.listener.AuthStateListener
;
import
com.rv.im.xmpp.listener.AuthStateListener
;
import
com.rv.im.xmpp.listener.ChatMessageListener
;
import
com.rv.im.xmpp.listener.ChatMessageListener
;
...
@@ -18,6 +21,7 @@ public class ListenerManager {
...
@@ -18,6 +21,7 @@ public class ListenerManager {
/* 回调监听 */
/* 回调监听 */
private
List
<
AuthStateListener
>
mAuthStateListeners
=
new
ArrayList
<>();
private
List
<
AuthStateListener
>
mAuthStateListeners
=
new
ArrayList
<>();
private
List
<
ChatMessageListener
>
mChatMessageListeners
=
new
ArrayList
<>();
private
List
<
ChatMessageListener
>
mChatMessageListeners
=
new
ArrayList
<>();
private
Handler
mHandler
=
new
Handler
(
Looper
.
getMainLooper
());
private
Handler
mHandler
=
new
Handler
(
Looper
.
getMainLooper
());
private
ListenerManager
()
{
private
ListenerManager
()
{
...
@@ -97,7 +101,8 @@ public class ListenerManager {
...
@@ -97,7 +101,8 @@ public class ListenerManager {
* 新消息来临
* 新消息来临
*/
*/
public
void
notifyNewMesssage
(
final
ChatMessage
message
)
{
public
void
notifyNewMesssage
(
final
ChatMessage
message
)
{
NotificationMananger
.
showNewsNotification
(
ImSetting
.
getContext
(),
message
.
getFromId
());
bell
();
mHandler
.
post
(()
->
{
mHandler
.
post
(()
->
{
if
(
message
!=
null
)
{
if
(
message
!=
null
)
{
ChatMessageServiceImp
.
getInstance
(
ImSetting
.
getContext
()).
addMessage
(
message
);
// 数据库添加消息
ChatMessageServiceImp
.
getInstance
(
ImSetting
.
getContext
()).
addMessage
(
message
);
// 数据库添加消息
...
@@ -107,4 +112,24 @@ public class ListenerManager {
...
@@ -107,4 +112,24 @@ public class ListenerManager {
}
}
});
});
}
}
private
void
bell
()
{
MediaPlayer
mediaPlayer
=
MediaPlayer
.
create
(
ImSetting
.
getContext
(),
R
.
raw
.
msg
);
mediaPlayer
.
start
();
mediaPlayer
.
setOnCompletionListener
(
arg0
->
{
mediaPlayer
.
start
();
stopPlay
(
mediaPlayer
);
});
}
private
void
stopPlay
(
MediaPlayer
mediaPlayer
)
{
if
(
mediaPlayer
!=
null
)
{
try
{
mediaPlayer
.
stop
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
mediaPlayer
.
release
();
}
}
}
}
plugin_im/src/main/res/drawable/shap_header_toast_background.xml
0 → 100644
View file @
18bb680b
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<!-- 填充的颜色 -->
<solid
android:color=
"#FFFFFF"
/>
<corners
android:radius=
"5dp"
/>
<stroke
android:width=
"0.5dp"
android:color=
"#ebebeb"
/>
</shape>
\ No newline at end of file
plugin_im/src/main/res/layout/header_toast.xml
0 → 100644
View file @
18bb680b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/rl_rootview"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"2dp"
>
<RelativeLayout
android:id=
"@+id/header_toast"
android:background=
"@drawable/shap_header_toast_background"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingBottom=
"5dp"
android:paddingLeft=
"20dp"
android:paddingRight=
"20sp"
android:paddingTop=
"5dp"
android:layout_marginTop=
"@dimen/dp20"
>
<RelativeLayout
android:id=
"@+id/header_toast_re"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
>
<ImageView
android:src=
"@mipmap/logo"
android:id=
"@+id/header_toast_smallimg"
android:layout_width=
"20dp"
android:layout_height=
"20dp"
/>
<TextView
android:id=
"@+id/header_toast_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"5dp"
android:layout_toRightOf=
"@+id/header_toast_smallimg"
android:text=
"滴房车"
android:textColor=
"#797979"
android:textSize=
"10sp"
/>
<TextView
android:id=
"@+id/header_toast_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"5dp"
android:layout_toRightOf=
"@+id/header_toast_title"
android:text=
""
android:textColor=
"#999"
android:textSize=
"10sp"
/>
</RelativeLayout>
<TextView
android:id=
"@+id/header_toast_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@+id/header_toast_re"
android:layout_marginTop=
"5dp"
android:gravity=
"left"
android:text=
"您有新的消息"
android:textColor=
"#333"
android:textSize=
"15sp"
/>
<!--<ImageView-->
<!--android:id="@+id/header_toast_bigimg"-->
<!--android:layout_width="50dp"-->
<!--android:layout_height="50dp"-->
<!--android:layout_alignParentRight="true"-->
<!--android:layout_centerVertical="true"-->
<!--android:layout_marginLeft="12dp" />-->
<!--<TextView-->
<!--android:id="@+id/header_toast_content"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:text="1223333"-->
<!--android:layout_below="@+id/header_toast_name"-->
<!--android:layout_marginTop="5dp"-->
<!--android:textColor="#666"-->
<!--android:textSize="13sp" />-->
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
plugin_im/src/main/res/mipmap-xhdpi/logo.png
0 → 100644
View file @
18bb680b
2.56 KB
plugin_member/src/main/java/com/rv.member/MemberCenterActivity.java
View file @
18bb680b
...
@@ -260,7 +260,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
...
@@ -260,7 +260,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
private
int
payType
=
1
;
private
int
payType
=
1
;
private
PayListener
payListener
=
new
PayListener
()
{
private
PayListener
payListener
=
new
PayListener
()
{
@Override
@Override
public
void
pay
(
final
MemberListBean
.
MemberCard
card
)
{
public
void
pay
(
final
MemberListBean
.
MemberCard
card
,
final
String
phone
)
{
if
(!
isLogin
())
return
;
if
(!
isLogin
())
return
;
new
PaymentTypeSelection
(
MemberCenterActivity
.
this
)
{
new
PaymentTypeSelection
(
MemberCenterActivity
.
this
)
{
@Override
@Override
...
@@ -284,7 +284,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
...
@@ -284,7 +284,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
}
else
if
(
i
==
R
.
id
.
tv_pay_immediately
)
{
}
else
if
(
i
==
R
.
id
.
tv_pay_immediately
)
{
dismiss
();
dismiss
();
mPresenter
.
createOrder
(
card
,
2
);
mPresenter
.
createOrder
(
card
,
phone
,
2
);
}
}
}
}
},
R
.
id
.
iv_close
,
R
.
id
.
ll_item_wechat
,
R
.
id
.
ll_item_alipay
,
R
.
id
.
tv_pay_immediately
);
},
R
.
id
.
iv_close
,
R
.
id
.
ll_item_wechat
,
R
.
id
.
ll_item_alipay
,
R
.
id
.
tv_pay_immediately
);
...
@@ -309,7 +309,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
...
@@ -309,7 +309,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
public
interface
PayListener
{
public
interface
PayListener
{
void
pay
(
MemberListBean
.
MemberCard
card
);
void
pay
(
MemberListBean
.
MemberCard
card
,
String
phone
);
void
checkAgreement
(
boolean
hasAgree
);
void
checkAgreement
(
boolean
hasAgree
);
}
}
...
...
plugin_member/src/main/java/com/rv.member/bean/MemberOrderPostBodyBean.java
View file @
18bb680b
...
@@ -8,6 +8,7 @@ public class MemberOrderPostBodyBean {
...
@@ -8,6 +8,7 @@ public class MemberOrderPostBodyBean {
private
String
couponIds
;
private
String
couponIds
;
private
int
memberLevel
;
private
int
memberLevel
;
private
int
memberLevelId
;
private
int
memberLevelId
;
private
String
facilitatePhone
;
public
String
getCouponIds
()
{
public
String
getCouponIds
()
{
return
couponIds
;
return
couponIds
;
...
@@ -33,10 +34,19 @@ public class MemberOrderPostBodyBean {
...
@@ -33,10 +34,19 @@ public class MemberOrderPostBodyBean {
this
.
memberLevelId
=
memberLevelId
;
this
.
memberLevelId
=
memberLevelId
;
}
}
public
MemberOrderPostBodyBean
(
String
couponIds
,
int
memberLevel
,
int
memberLevelId
)
{
public
String
getFacilitatePhone
()
{
return
facilitatePhone
;
}
public
void
setFacilitatePhone
(
String
facilitatePhone
)
{
this
.
facilitatePhone
=
facilitatePhone
;
}
public
MemberOrderPostBodyBean
(
String
couponIds
,
int
memberLevel
,
int
memberLevelId
,
String
inviterPhone
)
{
this
.
couponIds
=
couponIds
;
this
.
couponIds
=
couponIds
;
this
.
memberLevel
=
memberLevel
;
this
.
memberLevel
=
memberLevel
;
this
.
memberLevelId
=
memberLevelId
;
this
.
memberLevelId
=
memberLevelId
;
this
.
facilitatePhone
=
inviterPhone
;
}
}
public
MemberOrderPostBodyBean
()
{
public
MemberOrderPostBodyBean
()
{
...
...
plugin_member/src/main/java/com/rv.member/presenter/MemberPresenter.java
View file @
18bb680b
...
@@ -52,9 +52,9 @@ public class MemberPresenter extends CommonPresenter {
...
@@ -52,9 +52,9 @@ public class MemberPresenter extends CommonPresenter {
}
}
}
}
public
void
createOrder
(
MemberListBean
.
MemberCard
card
,
int
position
)
{
public
void
createOrder
(
MemberListBean
.
MemberCard
card
,
String
phone
,
int
position
)
{
MemberOrderPostBodyBean
memberOrderPostBodyBean
=
new
MemberOrderPostBodyBean
(
""
,
card
.
getLevel
(),
card
.
getId
());
MemberOrderPostBodyBean
memberOrderPostBodyBean
=
new
MemberOrderPostBodyBean
(
""
,
card
.
getLevel
(),
card
.
getId
()
,
phone
);
Map
<
String
,
Object
>
headMap
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
headMap
=
new
LinkedHashMap
<>();
if
(
OkGoUtil
.
getToken
()
!=
null
)
if
(
OkGoUtil
.
getToken
()
!=
null
)
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
headMap
.
put
(
"Authorization"
,
OkGoUtil
.
getToken
());
...
...
plugin_member/src/main/java/com/rv.member/view/InviterPhoneDialog.java
0 → 100644
View file @
18bb680b
package
com
.
rv
.
member
.
view
;
import
android.content.Context
;
import
android.support.annotation.NonNull
;
import
android.text.TextUtils
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
android.widget.EditText
;
import
android.widget.ImageView
;
import
android.widget.Toast
;
import
com.ruiwenliu.wrapper.dialog.BaseDialog
;
import
com.ruiwenliu.wrapper.weight.ToastView
;
import
com.rv.member.R
;
public
class
InviterPhoneDialog
extends
BaseDialog
{
private
EditText
edtInviterPhone
;
private
Button
btnConfirm
;
private
ImageView
ivClose
;
public
InviterPhoneDialog
(
@NonNull
final
Context
context
,
String
phone
,
final
InputListener
listener
)
{
super
(
context
);
setDialogParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
,
Gravity
.
CENTER
);
edtInviterPhone
=
findViewById
(
R
.
id
.
edt_inviter_phone
);
ivClose
=
findViewById
(
R
.
id
.
iv_close
);
if
(!
TextUtils
.
isEmpty
(
phone
))
{
edtInviterPhone
.
setText
(
phone
);
edtInviterPhone
.
setSelection
(
phone
.
length
());
}
btnConfirm
=
findViewById
(
R
.
id
.
btn_confirm
);
ivClose
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
dismiss
();
}
});
btnConfirm
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
String
phone
=
edtInviterPhone
.
getText
().
toString
().
trim
();
if
(!
TextUtils
.
isEmpty
(
phone
)
&&
phone
.
length
()
!=
11
)
{
ToastView
.
getInstance
(
context
).
showToastContent
(
"请输入正确的手机号"
,
Toast
.
LENGTH_SHORT
);
return
;
}
if
(
listener
!=
null
)
{
listener
.
input
(
phone
);
}
dismiss
();
}
});
}
@Override
public
int
getViewLayout
()
{
return
R
.
layout
.
dialog_inviter_phone
;
}
public
interface
InputListener
{
void
input
(
String
phone
);
}
}
plugin_member/src/main/java/com/rv.member/view/MemberTopView.java
View file @
18bb680b
...
@@ -50,6 +50,9 @@ public class MemberTopView extends LinearLayout {
...
@@ -50,6 +50,9 @@ public class MemberTopView extends LinearLayout {
private
GridView
gridview
;
private
GridView
gridview
;
private
MemberListBean
bean
;
private
MemberListBean
bean
;
private
View
viewLine
;
private
View
viewLine
;
private
TextView
tvInviterPhone
;
private
String
inviterPhone
;
private
MemberListBean
.
MemberCard
selectCard
;
private
MemberListBean
.
MemberCard
selectCard
;
...
@@ -66,6 +69,8 @@ public class MemberTopView extends LinearLayout {
...
@@ -66,6 +69,8 @@ public class MemberTopView extends LinearLayout {
private
OnClickListener
clickListener
;
private
OnClickListener
clickListener
;
private
InviterPhoneDialog
dialog
;
public
MemberTopView
(
Context
context
)
{
public
MemberTopView
(
Context
context
)
{
super
(
context
);
super
(
context
);
}
}
...
@@ -109,6 +114,7 @@ public class MemberTopView extends LinearLayout {
...
@@ -109,6 +114,7 @@ public class MemberTopView extends LinearLayout {
imgFreeTop
=
view
.
findViewById
(
R
.
id
.
img_free_top
);
imgFreeTop
=
view
.
findViewById
(
R
.
id
.
img_free_top
);
tvFreeTop
=
view
.
findViewById
(
R
.
id
.
tv_free_top
);
tvFreeTop
=
view
.
findViewById
(
R
.
id
.
tv_free_top
);
viewLine
=
view
.
findViewById
(
R
.
id
.
view_line
);
viewLine
=
view
.
findViewById
(
R
.
id
.
view_line
);
tvInviterPhone
=
view
.
findViewById
(
R
.
id
.
tv_inviter_phone
);
if
(
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
if
(
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
unlogin_view
.
setVisibility
(
View
.
VISIBLE
);
unlogin_view
.
setVisibility
(
View
.
VISIBLE
);
logined_view
.
setVisibility
(
View
.
GONE
);
logined_view
.
setVisibility
(
View
.
GONE
);
...
@@ -119,6 +125,21 @@ public class MemberTopView extends LinearLayout {
...
@@ -119,6 +125,21 @@ public class MemberTopView extends LinearLayout {
}
}
}
}
tvInviterPhone
.
setOnClickListener
(
new
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
dialog
==
null
)
{
dialog
=
new
InviterPhoneDialog
(
getContext
(),
inviterPhone
,
new
InviterPhoneDialog
.
InputListener
()
{
@Override
public
void
input
(
String
phone
)
{
inviterPhone
=
phone
;
}
});
}
dialog
.
show
();
}
});
addView
(
view
);
addView
(
view
);
}
}
...
@@ -173,7 +194,7 @@ public class MemberTopView extends LinearLayout {
...
@@ -173,7 +194,7 @@ public class MemberTopView extends LinearLayout {
return
;
return
;
}
}
if
(
listener
!=
null
)
{
if
(
listener
!=
null
)
{
listener
.
pay
(
selectCard
);
listener
.
pay
(
selectCard
,
inviterPhone
);
}
}
}
}
});
});
...
...
plugin_member/src/main/res/drawable-xhdpi/icon_member_close.png
0 → 100644
View file @
18bb680b
385 Bytes
plugin_member/src/main/res/drawable/dialog_member_content_bg.xml
0 → 100644
View file @
18bb680b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<!--背景颜色-->
<solid
android:color=
"#ffffff"
/>
<!--设置圆角的角度-->
<corners
android:radius=
"10dp"
/>
</shape>
plugin_member/src/main/res/drawable/shape_rv_bg_inviter_phone.xml
0 → 100644
View file @
18bb680b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<!--背景颜色-->
<solid
android:color=
"#F2F2F2"
/>
<!--设置圆角的角度-->
<corners
android:radius=
"5dp"
/>
</shape>
plugin_member/src/main/res/layout/dialog_inviter_phone.xml
0 → 100644
View file @
18bb680b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/size_25"
android:layout_marginRight=
"@dimen/size_25"
android:background=
"@drawable/dialog_member_content_bg"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
android:paddingLeft=
"13dp"
android:paddingRight=
"13dp"
>
<ImageView
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_10"
android:id=
"@+id/iv_close"
android:layout_width=
"@dimen/size_20"
android:layout_height=
"@dimen/size_20"
android:layout_gravity=
"right"
android:layout_marginTop=
"3dp"
android:src=
"@drawable/icon_member_close"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:text=
"邀请人手机号"
android:textColor=
"#171413"
android:textStyle=
"bold"
android:textSize=
"@dimen/text_16"
/>
<EditText
android:id=
"@+id/edt_inviter_phone"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
android:layout_marginTop=
"@dimen/size_22"
android:background=
"@drawable/shape_rv_bg_inviter_phone"
android:gravity=
"left|center_vertical"
android:hint=
"请输入邀请人手机号"
android:inputType=
"phone"
android:maxLength=
"11"
android:paddingLeft=
"10dp"
android:paddingRight=
"10dp"
android:textColorHint=
"#CCCCCC"
android:textSize=
"@dimen/sp_14"
/>
<Button
android:id=
"@+id/btn_confirm"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
android:layout_marginTop=
"@dimen/size_15"
android:layout_marginBottom=
"@dimen/size_15"
android:background=
"@drawable/shape_rv_bg_shallow_dark_yellow_circle"
android:gravity=
"center"
android:text=
"确定"
android:textColor=
"@color/white"
android:textSize=
"@dimen/sp_16"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
plugin_member/src/main/res/layout/view_member_privilege.xml
View file @
18bb680b
...
@@ -148,6 +148,7 @@
...
@@ -148,6 +148,7 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"7dp"
android:layout_marginTop=
"7dp"
android:layout_marginLeft=
"@dimen/size_5"
android:layout_marginLeft=
"@dimen/size_5"
android:layout_marginRight=
"@dimen/size_15"
android:gravity=
"center_vertical|left"
android:gravity=
"center_vertical|left"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
...
@@ -162,13 +163,28 @@
...
@@ -162,13 +163,28 @@
<TextView
<TextView
android:id=
"@+id/tv_agreement"
android:id=
"@+id/tv_agreement"
android:layout_width=
"wrap_content"
android:layout_weight=
"1"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/size_30"
android:layout_height=
"@dimen/size_30"
android:gravity=
"center_vertical"
android:gravity=
"center_vertical"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:text=
"@string/tv_agreement"
android:text=
"@string/tv_agreement"
android:textSize=
"@dimen/sp_12"
/>
android:textSize=
"@dimen/sp_12"
/>
<TextView
android:inputType=
"phone"
android:maxLength=
"11"
android:id=
"@+id/tv_inviter_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:background=
"@color/colorWrite"
android:gravity=
"center_vertical"
android:text=
"内部邀请人"
android:textColor=
"@color/text_Gray"
android:textSize=
"@dimen/text_12"
/>
</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