Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
X
xxsq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王雪伟
xxsq
Commits
06cce02c
Commit
06cce02c
authored
Oct 28, 2022
by
maxiaoliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加首页bannaer位置
parent
317dbdaf
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
285 additions
and
229 deletions
+285
-229
MainActivity.kt
app/src/main/java/com/zxhl/shop/activity/MainActivity.kt
+198
-219
activity_main.xml
app/src/main/res/layout/activity_main.xml
+1
-2
version.properties
app/version.properties
+2
-2
NetConfig.java
cms/src/main/java/com/zxhl/cms/common/NetConfig.java
+1
-0
IHomeApi.kt
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
+4
-0
HomeBannerEntity.kt
...ain/java/com/zxhl/cms/net/model/video/HomeBannerEntity.kt
+9
-0
HomeContract.kt
...rc/main/java/com/zxbw/modulemain/contract/HomeContract.kt
+3
-0
HomeFragment.kt
...rc/main/java/com/zxbw/modulemain/fragment/HomeFragment.kt
+40
-4
HomePresenter.kt
.../main/java/com/zxbw/modulemain/presenter/HomePresenter.kt
+16
-2
fragment_layout_home.xml
moduleMain/src/main/res/layout/fragment_layout_home.xml
+11
-0
No files found.
app/src/main/java/com/zxhl/shop/activity/MainActivity.kt
View file @
06cce02c
package
com.zxhl.shop.activity;
package
com.zxhl.shop.activity
import
android.annotation.SuppressLint;
import
android.annotation.SuppressLint
import
android.content.Intent;
import
android.content.Intent
import
android.os.Bundle;
import
android.os.Bundle
import
android.util.Log;
import
android.text.TextUtils
import
android.view.View;
import
android.view.View
import
android.widget.ImageView;
import
android.widget.ImageView
import
androidx.fragment.app.Fragment
import
androidx.annotation.NonNull;
import
androidx.fragment.app.FragmentTransaction
import
androidx.annotation.Nullable;
import
com.bumptech.glide.Glide
import
androidx.fragment.app.Fragment;
import
com.umeng.analytics.MobclickAgent
import
androidx.fragment.app.FragmentTransaction;
import
com.umeng.socialize.UMShareAPI
import
com.zxbw.modulemain.fragment.CashCheckFragment
import
com.umeng.analytics.MobclickAgent;
import
com.zxbw.modulemain.fragment.HomeFragment
import
com.umeng.socialize.UMShareAPI;
import
com.zxbw.modulemain.fragment.ShoppingMallFragment
import
com.zxbw.modulemain.fragment.CashCheckFragment;
import
com.zxbw.modulemain.fragment.UserCenterFragment
import
com.zxbw.modulemain.fragment.HomeFragment;
import
com.zxbw.modulemain.view.NavigationBottomView
import
com.zxbw.modulemain.fragment.ShoppingMallFragment;
import
com.zxbw.modulemain.view.NavigationBottomView.NavifationCallback
import
com.zxbw.modulemain.fragment.UserCenterFragment;
import
com.zxhl.cms.AppContext
import
com.zxbw.modulemain.view.NavigationBottomView;
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.utils.ClipboardManagerUtil;
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.shop.R;
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.AppContext;
import
com.zxhl.cms.net.ApiClient.homeApi
import
com.zxhl.cms.common.Constant;
import
com.zxhl.cms.net.ApiClient.userInfoAPi
import
com.zxhl.cms.common.base.BaseActivity;
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.ApiClient;
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.RxSchedulers;
import
com.zxhl.cms.net.callback.BaseObserver
import
com.zxhl.cms.net.SettingPreference;
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.callback.BaseObserver;
import
com.zxhl.cms.net.model.video.HomeAdEntity
import
com.zxhl.cms.net.model.uc.UserInfo;
import
com.zxhl.cms.utils.*
import
com.zxhl.cms.utils.EventUtils;
import
com.zxhl.cms.utils.ClipboardManagerUtil.getTbLink
import
com.zxhl.cms.utils.JumpUtils;
import
com.zxhl.cms.utils.EventUtils.onEvent
import
com.zxhl.cms.utils.RxBus;
import
com.zxhl.cms.utils.UserDataUtils.updateUserInfo
import
com.zxhl.cms.utils.UserDataUtils;
import
com.zxhl.cms.widget.LoadingDialog
import
com.zxhl.cms.utils.Utils;
import
com.zxhl.shop.R
import
com.zxhl.cms.widget.LoadingDialog;
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
java.util.ArrayList;
import
java.util.*
import
java.util.List;
import
io.reactivex.Observable;
import
io.reactivex.android.schedulers.AndroidSchedulers;
import
io.reactivex.functions.Consumer;
/**
/**
* Copyright @ 2018 Bitgoose All rights reserved.
* Copyright @ 2018 Bitgoose All rights reserved.
...
@@ -51,249 +46,233 @@ import io.reactivex.functions.Consumer;
...
@@ -51,249 +46,233 @@ import io.reactivex.functions.Consumer;
* @author: fuxin
* @author: fuxin
* @date: 2019/3/15 下午2:19
* @date: 2019/3/15 下午2:19
*/
*/
public
class
MainActivity
extends
BaseActivity
implements
NavigationBottomView
.
NavifationCallback
/*, IDialogCloseCallback, MemberContract.View*/
{
class
MainActivity
:
BaseActivity
(),
NavifationCallback
/*, IDialogCloseCallback, MemberContract.View*/
{
private
List
<
Fragment
>
fragments
=
new
ArrayList
<>();
private
val
fragments
:
MutableList
<
Fragment
>
=
ArrayList
()
private
NavigationBottomView
navigationView
;
private
var
navigationView
:
NavigationBottomView
?
=
null
private
LoadingDialog
mLoading
;
private
var
mLoading
:
LoadingDialog
?
=
null
private
Observable
<
String
>
mRestartLoginObservable
;
private
var
mRestartLoginObservable
:
Observable
<
String
>?
=
null
private
Observable
<
Integer
>
mSwitchMainObservable
;
private
var
mSwitchMainObservable
:
Observable
<
Int
>?
=
null
private
ImageView
adview
;
private
var
adview
:
ImageView
?
=
null
@Override
override
fun
layoutID
():
Int
{
public
int
layoutID
()
{
return
R
.
layout
.
activity_main
return
R
.
layout
.
activity_main
;
}
}
@Override
override
fun
before
()
{
public
void
before
()
{
super
.
before
()
super
.
before
();
setStatusBarBackground
(
AppContext
.
get
().
resources
.
getColor
(
R
.
color
.
transparent
))
setStatusBarBackground
(
AppContext
.
get
().
getResources
().
getColor
(
R
.
color
.
transparent
));
}
}
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
@Override
override
fun
init
()
{
public
void
init
()
{
mLoading
=
LoadingDialog
.
getLoadingDialog
(
mLoading
=
LoadingDialog
.
getLoadingDialog
(
this
,
this
,
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
false
,
false
,
false
false
);
)
navigationView
=
findViewById
(
R
.
id
.
id_activity_main_fragment_navigation
);
getAdinfo
()
adview
=
findViewById
(
R
.
id
.
id_img_fly_ad
);
navigationView
=
findViewById
(
R
.
id
.
id_activity_main_fragment_navigation
)
initListener
();
adview
=
findViewById
(
R
.
id
.
id_img_fly_ad
)
mRestartLoginObservable
=
RxBus
.
get
().
register
(
Constant
.
REFRESH_LOGIN_STATS
,
String
.
class
);
adview
?.
setOnClickListener
{
mRestartLoginObservable
.
observeOn
(
AndroidSchedulers
.
mainThread
()).
subscribe
(
new
Consumer
<
String
>()
{
if
(!
TextUtils
.
isEmpty
(
clickUrl
)){
@Override
onEvent
(
"ad_click"
,
""
+
clickid
)
public
void
accept
(
String
s
)
throws
Exception
{
JumpUtils
.
webJump
(
adName
,
clickUrl
)
JumpUtils
.
loginJump
();
}
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
}
}
});
initListener
()
initFragment
();
mRestartLoginObservable
=
mSwitchMainObservable
=
RxBus
.
get
().
register
(
Constant
.
SWITCH_PAGE
,
Integer
.
class
);
RxBus
.
get
().
register
(
Constant
.
REFRESH_LOGIN_STATS
,
String
::
class
.
java
)
mSwitchMainObservable
.
observeOn
(
AndroidSchedulers
.
mainThread
()).
subscribe
(
new
Consumer
<
Integer
>()
{
mRestartLoginObservable
!!
.
observeOn
(
AndroidSchedulers
.
mainThread
())
@Override
.
subscribe
({
JumpUtils
.
loginJump
()
})
{
}
public
void
accept
(
Integer
s
)
throws
Exception
{
initFragment
()
switchFragment
(
s
);
mSwitchMainObservable
=
RxBus
.
get
().
register
(
Constant
.
SWITCH_PAGE
,
Int
::
class
.
java
)
}
mSwitchMainObservable
!!
.
observeOn
(
AndroidSchedulers
.
mainThread
())
},
new
Consumer
<
Throwable
>()
{
.
subscribe
({
s
->
switchFragment
(
s
)
})
{
}
@Override
val
firstLoginApp
=
SettingPreference
.
getFirstLoginApp
()
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
}
});
boolean
firstLoginApp
=
SettingPreference
.
getFirstLoginApp
();
if
(
firstLoginApp
)
{
if
(
firstLoginApp
)
{
UserInfo
userInfoData
=
SettingPreference
.
getUserInfoData
();
val
userInfoData
=
SettingPreference
.
getUserInfoData
()
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
;
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
if
(!
userInfoData
.
member
)
{
if
(!
userInfoData
.
member
)
{
SettingPreference
.
setFirstLoginApp
()
;
SettingPreference
.
setFirstLoginApp
()
JumpUtils
.
OpenMember
()
;
JumpUtils
.
OpenMember
()
}
}
}
}
}
}
}
}
private
void
initListener
()
{
private
fun
initListener
()
{
navigationView
.
setNavifationCallback
(
this
);
navigationView
!!
.
setNavifationCallback
(
this
)
}
}
private
void
initFragment
()
{
private
fun
initFragment
()
{
fragments
.
add
(
new
HomeFragment
());
fragments
.
add
(
HomeFragment
())
fragments
.
add
(
new
ShoppingMallFragment
());
fragments
.
add
(
ShoppingMallFragment
())
fragments
.
add
(
new
CashCheckFragment
());
fragments
.
add
(
CashCheckFragment
())
fragments
.
add
(
new
UserCenterFragment
());
fragments
.
add
(
UserCenterFragment
())
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
val
transaction
=
supportFragmentManager
.
beginTransaction
()
for
(
Fragment
fragment
:
fragments
)
{
for
(
fragment
in
fragments
)
{
transaction
.
add
(
R
.
id
.
id_activity_main_fragment_layout
,
fragment
)
;
transaction
.
add
(
R
.
id
.
id_activity_main_fragment_layout
,
fragment
)
}
}
hideFragment
(
transaction
)
;
hideFragment
(
transaction
)
transaction
.
show
(
fragments
.
get
(
0
)).
commit
();
transaction
.
show
(
fragments
[
0
]).
commit
()
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"home"
);
onEvent
(
"tab_imp"
,
"home"
)
}
}
private
void
switchFragment
(
int
index
)
{
private
fun
switchFragment
(
index
:
Int
)
{
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
getAdinfo
()
hideFragment
(
transaction
);
val
transaction
=
supportFragmentManager
.
beginTransaction
()
transaction
.
show
(
fragments
.
get
(
index
)).
commitAllowingStateLoss
();
hideFragment
(
transaction
)
getSupportFragmentManager
().
executePendingTransactions
();
transaction
.
show
(
fragments
[
index
]).
commitAllowingStateLoss
()
supportFragmentManager
.
executePendingTransactions
()
}
}
private
void
switchFragment
(
Fragment
f
ragment
)
{
private
fun
switchFragment
(
fragment
:
F
ragment
)
{
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
val
transaction
=
supportFragmentManager
.
beginTransaction
()
hideFragment
(
transaction
)
;
hideFragment
(
transaction
)
transaction
.
show
(
fragment
).
commit
()
;
transaction
.
show
(
fragment
).
commit
()
}
}
private
void
hideFragment
(
FragmentTransaction
t
ransaction
)
{
private
fun
hideFragment
(
transaction
:
FragmentT
ransaction
)
{
for
(
Fragment
fragment
:
fragments
)
{
for
(
fragment
in
fragments
)
{
transaction
.
hide
(
fragment
)
;
transaction
.
hide
(
fragment
)
}
}
}
}
@Override
override
fun
onClick
(
v
:
View
)
{}
public
void
onClick
(
View
v
)
{
override
fun
onNavigationClick
(
vId
:
Int
)
{
}
@Override
public
void
onNavigationClick
(
int
vId
)
{
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_box
)
{
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_box
)
{
switchFragment
(
0
)
;
switchFragment
(
0
)
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"home"
);
onEvent
(
"tab_imp"
,
"home"
)
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_shop
)
{
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_shop
)
{
switchFragment
(
1
)
;
switchFragment
(
1
)
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"shop"
);
onEvent
(
"tab_imp"
,
"shop"
)
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_cash
)
{
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_cash
)
{
switchFragment
(
2
)
;
switchFragment
(
2
)
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"cash_check"
);
onEvent
(
"tab_imp"
,
"cash_check"
)
}
}
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_user
)
{
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_user
)
{
switchFragment
(
3
)
;
switchFragment
(
3
)
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"user"
);
onEvent
(
"tab_imp"
,
"user"
)
}
}
}
}
private
boolean
mPrepareExit
=
false
;
private
var
mPrepareExit
=
false
override
fun
onBackPressed
()
{
@Override
exitBy2Click
()
public
void
onBackPressed
()
{
exitBy2Click
();
}
}
private
void
exitBy2Click
()
{
private
fun
exitBy2Click
()
{
if
(!
mPrepareExit
)
{
if
(!
mPrepareExit
)
{
mPrepareExit
=
true
;
// 准备退出
mPrepareExit
=
true
// 准备退出
Utils
.
showToast
(
this
,
getResources
().
getString
(
R
.
string
.
nav_back_again_finish
));
Utils
.
showToast
(
this
,
resources
.
getString
(
R
.
string
.
nav_back_again_finish
))
navigationView
.
postDelayed
(
new
Runnable
()
{
navigationView
!!
.
postDelayed
({
@Override
mPrepareExit
=
false
// 取消退出
public
void
run
()
{
},
1500
)
mPrepareExit
=
false
;
// 取消退出
}
},
1500
);
}
else
{
}
else
{
EventUtils
.
INSTANCE
.
onEvent
(
"double_exit"
,
"双击退出"
);
onEvent
(
"double_exit"
,
"双击退出"
)
exitActivity
()
;
exitActivity
()
// closeApp();
// closeApp();
}
}
}
}
private
void
exitActivity
()
{
private
fun
exitActivity
()
{
Utils
.
onExit
(
this
)
;
Utils
.
onExit
(
this
)
}
}
@Override
override
fun
onResume
()
{
protected
void
onResume
()
{
super
.
onResume
()
super
.
onResume
();
MobclickAgent
.
onResume
(
this
)
MobclickAgent
.
onResume
(
this
);
val
userInfoData
=
SettingPreference
.
getUserInfoData
()
UserInfo
userInfoData
=
SettingPreference
.
getUserInfoData
();
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
;
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
}
}
ClipboardManagerUtil
.
INSTANCE
.
getTbLink
(
this
);
getTbLink
(
this
)
}
}
override
fun
onPause
()
{
@Override
super
.
onPause
()
protected
void
onPause
()
{
MobclickAgent
.
onPause
(
this
)
super
.
onPause
();
MobclickAgent
.
onPause
(
this
);
}
}
private
void
deviceLogin
()
{
private
fun
deviceLogin
()
{
ApiClient
.
INSTANCE
.
getUserInfoAPi
().
deviceLogin
().
compose
(
RxSchedulers
.
observableIO2Main
()).
subscribe
(
new
BaseObserver
<
UserInfo
>()
{
userInfoAPi
.
deviceLogin
().
compose
(
RxSchedulers
.
observableIO2Main
())
@Override
.
subscribe
(
object
:
BaseObserver
<
UserInfo
?>()
{
public
void
onSuccess
(
UserInfo
result
)
{
if
(
result
!=
null
)
{
override
fun
onSuccess
(
result
:
UserInfo
?)
{
SettingPreference
.
saveToken
(
result
.
token
);
if
(
result
!=
null
)
{
UserDataUtils
.
INSTANCE
.
updateUserInfo
(
null
);
SettingPreference
.
saveToken
(
result
.
token
)
updateUserInfo
(
null
)
}
}
}
}
@Override
override
fun
onFailure
(
e
:
Throwable
,
code
:
String
,
errorMsg
:
String
)
{}
public
void
onFailure
(
Throwable
e
,
String
code
,
String
errorMsg
)
{
}
})
});
}
}
private
void
closeApp
()
{
private
fun
closeApp
()
{
ApiClient
.
INSTANCE
.
getHomeApi
().
closeApp
().
compose
(
RxSchedulers
.
observableIO2Main
()).
subscribe
(
new
BaseObserver
<
Object
>()
{
// homeApi.closeApp().compose(RxSchedulers.observableIO2Main())
@Override
// .subscribe(object : BaseObserver<Any?>() {
public
void
onSuccess
(
Object
result
)
{
// override fun onSuccess(result: Any) {
exitActivity
();
// exitActivity()
}
// }
//
@Override
// override fun onFailure(e: Throwable, code: String, errorMsg: String) {
public
void
onFailure
(
Throwable
e
,
String
code
,
String
errorMsg
)
{
// exitActivity()
exitActivity
();
// }
}
// })
});
}
}
@Override
override
fun
onDestroy
()
{
protected
void
onDestroy
()
{
super
.
onDestroy
()
super
.
onDestroy
();
RxBus
.
get
().
unregister
(
Constant
.
REFRESH_LOGIN_STATS
,
mRestartLoginObservable
!!
)
RxBus
.
get
().
unregister
(
Constant
.
REFRESH_LOGIN_STATS
,
mRestartLoginObservable
);
RxBus
.
get
().
unregister
(
Constant
.
SWITCH_PAGE
,
mSwitchMainObservable
!!
)
RxBus
.
get
().
unregister
(
Constant
.
SWITCH_PAGE
,
mSwitchMainObservable
);
}
}
@Override
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
try
{
try
{
UMShareAPI
.
get
(
this
).
onActivityResult
(
requestCode
,
resultCode
,
data
)
;
UMShareAPI
.
get
(
this
).
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
catch
(
Exception
e
)
{
}
catch
(
e
:
Exception
)
{
}
}
}
}
@SuppressLint
(
"MissingSuperCall"
)
@SuppressLint
(
"MissingSuperCall"
)
@Override
override
fun
onSaveInstanceState
(
outState
:
Bundle
)
{
protected
void
onSaveInstanceState
(
@NonNull
Bundle
outState
)
{
// super.onSaveInstanceState(outState);
// super.onSaveInstanceState(outState);
}
}
var
imgUrl
:
String
?
=
""
var
clickid
:
String
?
=
""
var
clickUrl
:
String
?
=
""
var
adName
:
String
?=
""
fun
getAdinfo
()
{
ApiClient
.
homeApi
.
getHomeAdInfo
().
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
List
<
HomeAdEntity
>>()
{
override
fun
onSuccess
(
result
:
List
<
HomeAdEntity
>?)
{
if
(!
result
.
isNullOrEmpty
())
{
for
(
item
in
result
)
{
if
(
item
.
slotName
.
equals
(
"flow"
))
{
imgUrl
=
item
.
imgUrl
clickid
=
item
.
id
clickUrl
=
item
.
url
adName
=
item
.
title
Glide
.
with
(
AppContext
.
get
()).
asGif
().
load
(
imgUrl
).
into
(
adview
!!
)
// Glide.with(this).load(imgUrl)
// .apply(RequestOptions.bitmapTransform(CircleCrop()))
// .into(id_img_banner!!)
}
}
}
}
private
void
getAdInfo
()
{
override
fun
onFailure
(
e
:
Throwable
?,
code
:
String
?,
errorMsg
:
String
?)
{
ApiClient
.
INSTANCE
.
getHomeApi
().
closeApp
().
compose
(
RxSchedulers
.
observableIO2Main
()).
subscribe
(
new
BaseObserver
<
Object
>()
{
@Override
public
void
onSuccess
(
Object
result
)
{
exitActivity
();
}
@Override
}
public
void
onFailure
(
Throwable
e
,
String
code
,
String
errorMsg
)
{
})
exitActivity
();
}
});
}
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_main.xml
View file @
06cce02c
...
@@ -32,8 +32,7 @@
...
@@ -32,8 +32,7 @@
android:layout_above=
"@+id/id_activity_main_fragment_navigation"
android:layout_above=
"@+id/id_activity_main_fragment_navigation"
android:layout_alignParentRight=
"true"
android:layout_alignParentRight=
"true"
android:layout_marginRight=
"10dp"
android:layout_marginRight=
"10dp"
android:layout_marginBottom=
"100dp"
android:layout_marginBottom=
"100dp"
/>
android:src=
"@drawable/icon_head_defalt"
/>
<View
<View
...
...
app/version.properties
View file @
06cce02c
PACKAGE_NAME
=
com.zxhl.shop
PACKAGE_NAME
=
com.zxhl.shop
VERSION_CODE
=
27
VERSION_CODE
=
28
VERSION_NAME
=
1.2.6
VERSION_NAME
=
1.2.7
\ No newline at end of file
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/common/NetConfig.java
View file @
06cce02c
...
@@ -284,6 +284,7 @@ public class NetConfig {
...
@@ -284,6 +284,7 @@ public class NetConfig {
public
static
final
String
XX_GOODS_FETCHALL_CARD
=
"app/v1/game/xiaoxiang/fetchAllCard"
;
//话费券列表
public
static
final
String
XX_GOODS_FETCHALL_CARD
=
"app/v1/game/xiaoxiang/fetchAllCard"
;
//话费券列表
public
static
final
String
XX_GOODS_VIDEO_AD_INFO
=
"app/v1/game/xiaoxiang/videoAdInfo"
;
//获取激励视频奖励信息
public
static
final
String
XX_GOODS_VIDEO_AD_INFO
=
"app/v1/game/xiaoxiang/videoAdInfo"
;
//获取激励视频奖励信息
public
static
final
String
XX_GOODS_VIDEO_REWARD
=
"app/v1/game/xiaoxiang/videoAward"
;
//激励视频播放以后调用保存话费券
public
static
final
String
XX_GOODS_VIDEO_REWARD
=
"app/v1/game/xiaoxiang/videoAward"
;
//激励视频播放以后调用保存话费券
public
static
final
String
XX_GOODS_HOME_AD_INFO
=
"app/v1/game/xiaoxiang/ads"
;
//首页广告信息
}
}
public
static
class
FlashSale
{
public
static
class
FlashSale
{
...
...
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
View file @
06cce02c
...
@@ -14,6 +14,7 @@ import com.zxhl.cms.net.model.qy.TbGoodsEntity
...
@@ -14,6 +14,7 @@ import com.zxhl.cms.net.model.qy.TbGoodsEntity
import
com.zxhl.cms.net.model.qy.SkillEntity
import
com.zxhl.cms.net.model.qy.SkillEntity
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.uc.VersionEntity
import
com.zxhl.cms.net.model.uc.VersionEntity
import
com.zxhl.cms.net.model.video.HomeAdEntity
import
com.zxhl.cms.net.model.video.VideoInfoEntity
import
com.zxhl.cms.net.model.video.VideoInfoEntity
import
io.reactivex.Observable
import
io.reactivex.Observable
import
okhttp3.ResponseBody
import
okhttp3.ResponseBody
...
@@ -416,4 +417,7 @@ interface IHomeApi {
...
@@ -416,4 +417,7 @@ interface IHomeApi {
@POST
(
NetConfig
.
QY
.
XX_GOODS_VIDEO_REWARD
)
@POST
(
NetConfig
.
QY
.
XX_GOODS_VIDEO_REWARD
)
fun
getVideoReward
():
Observable
<
Response
<
VideoInfoEntity
>>
fun
getVideoReward
():
Observable
<
Response
<
VideoInfoEntity
>>
@GET
(
NetConfig
.
QY
.
XX_GOODS_HOME_AD_INFO
)
fun
getHomeAdInfo
():
Observable
<
Response
<
List
<
HomeAdEntity
>>>
}
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/net/model/video/HomeBannerEntity.kt
0 → 100644
View file @
06cce02c
package
com.zxhl.cms.net.model.video
class
HomeAdEntity
{
var
id
:
String
?
=
""
var
title
:
String
?
=
""
var
imgUrl
:
String
?
=
""
var
url
:
String
?
=
""
var
slotName
:
String
?
=
""
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/contract/HomeContract.kt
View file @
06cce02c
...
@@ -3,6 +3,7 @@ package com.zxbw.modulemain.contract
...
@@ -3,6 +3,7 @@ package com.zxbw.modulemain.contract
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.video.HomeAdEntity
/**
/**
* 主页
* 主页
...
@@ -13,11 +14,13 @@ class HomeContract {
...
@@ -13,11 +14,13 @@ class HomeContract {
fun
setBannerList
(
result
:
List
<
HomeBannerEntity
>?)
fun
setBannerList
(
result
:
List
<
HomeBannerEntity
>?)
fun
setTabList
(
list
:
List
<
TabEntity
>?)
fun
setTabList
(
list
:
List
<
TabEntity
>?)
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
fun
setAdBanner
(
result
:
List
<
HomeAdEntity
>?)
}
}
interface
Presenter
{
interface
Presenter
{
fun
getBannerList
()
fun
getBannerList
()
fun
getTabList
()
fun
getTabList
()
fun
getFetchCard
()
fun
getFetchCard
()
fun
getAdInfo
()
}
}
}
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/fragment/HomeFragment.kt
View file @
06cce02c
...
@@ -5,11 +5,15 @@ import android.text.TextUtils
...
@@ -5,11 +5,15 @@ import android.text.TextUtils
import
android.util.Log
import
android.util.Log
import
android.view.View
import
android.view.View
import
androidx.viewpager.widget.ViewPager
import
androidx.viewpager.widget.ViewPager
import
com.bumptech.glide.Glide
import
com.bumptech.glide.load.resource.bitmap.CircleCrop
import
com.bumptech.glide.request.RequestOptions
import
com.zxbw.modulemain.R
import
com.zxbw.modulemain.R
import
com.zxbw.modulemain.adapter.HomeBannerAdapter
import
com.zxbw.modulemain.adapter.HomeBannerAdapter
import
com.zxbw.modulemain.contract.HomeContract
import
com.zxbw.modulemain.contract.HomeContract
import
com.zxbw.modulemain.presenter.HomePresenter
import
com.zxbw.modulemain.presenter.HomePresenter
import
com.zxbw.modulemain.view.DialogUtils
import
com.zxbw.modulemain.view.DialogUtils
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.common.FragmentAdapter
import
com.zxhl.cms.common.FragmentAdapter
import
com.zxhl.cms.common.NetConfig
import
com.zxhl.cms.common.NetConfig
...
@@ -19,6 +23,8 @@ import com.zxhl.cms.net.SettingPreference
...
@@ -19,6 +23,8 @@ import com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.video.HomeAdEntity
import
com.zxhl.cms.utils.EventUtils
import
com.zxhl.cms.utils.JumpUtils
import
com.zxhl.cms.utils.JumpUtils
import
com.zxhl.cms.utils.UpdateCallback
import
com.zxhl.cms.utils.UpdateCallback
import
com.zxhl.cms.utils.Utils
import
com.zxhl.cms.utils.Utils
...
@@ -40,7 +46,7 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
...
@@ -40,7 +46,7 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
override
fun
lazyLoad
()
{
override
fun
lazyLoad
()
{
super
.
lazyLoad
()
super
.
lazyLoad
()
if
(
isInitial
&&
isVisible
)
{
if
(
isInitial
&&
isVisible
)
{
mPresenter
?.
getAdInfo
()
}
}
}
}
...
@@ -49,10 +55,16 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
...
@@ -49,10 +55,16 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
updateVersionManager
?.
checkUpdate
(
true
)
updateVersionManager
?.
checkUpdate
(
true
)
var
statusBarHeight
=
ScreenUtils
.
getStatusBarHeight
()
var
statusBarHeight
=
ScreenUtils
.
getStatusBarHeight
()
if
(
statusBarHeight
<=
0
)
{
if
(
statusBarHeight
<=
0
)
{
statusBarHeight
=
40
;
statusBarHeight
=
40
}
}
id_title_sys_bar_view
.
layoutParams
.
height
=
statusBarHeight
id_title_sys_bar_view
.
layoutParams
.
height
=
statusBarHeight
id_img_banner
?.
setOnClickListener
{
if
(!
TextUtils
.
isEmpty
(
clickUrl
)){
EventUtils
.
onEvent
(
"ad_click"
,
""
+
clickid
)
JumpUtils
.
webJump
(
adName
,
clickUrl
)
}
}
mPresenter
=
HomePresenter
(
this
)
mPresenter
=
HomePresenter
(
this
)
id_rl_search_view
.
setOnClickListener
{
id_rl_search_view
.
setOnClickListener
{
...
@@ -148,8 +160,8 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
...
@@ -148,8 +160,8 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
}
}
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
if
(!
result
.
isNullOrEmpty
())
{
if
(!
result
.
isNullOrEmpty
())
{
if
(
TextUtils
.
equals
(
SettingPreference
.
getifShowCoups
(),
"0"
))
{
if
(
TextUtils
.
equals
(
SettingPreference
.
getifShowCoups
(),
"0"
))
{
DialogUtils
.
showifshowCoup
(
mActivity
,
result
,
View
.
OnClickListener
{
DialogUtils
.
showifshowCoup
(
mActivity
,
result
,
View
.
OnClickListener
{
JumpUtils
.
RechargeJump
()
JumpUtils
.
RechargeJump
()
})
})
...
@@ -159,6 +171,30 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
...
@@ -159,6 +171,30 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
}
}
var
imgUrl
:
String
?
=
""
var
clickid
:
String
?
=
""
var
clickUrl
:
String
?
=
""
var
adName
:
String
?=
""
override
fun
setAdBanner
(
result
:
List
<
HomeAdEntity
>?)
{
if
(!
result
.
isNullOrEmpty
())
{
for
(
item
in
result
)
{
if
(
item
.
slotName
.
equals
(
"banner"
))
{
imgUrl
=
item
.
imgUrl
clickid
=
item
.
id
clickUrl
=
item
.
url
adName
=
item
.
title
Glide
.
with
(
AppContext
.
get
()).
asGif
().
load
(
imgUrl
).
into
(
id_img_banner
!!
)
// Glide.with(this).load(imgUrl)
// .apply(RequestOptions.bitmapTransform(CircleCrop()))
// .into(id_img_banner!!)
}
}
}
}
override
fun
CheckUpate
(
boolean
:
Boolean
)
{
override
fun
CheckUpate
(
boolean
:
Boolean
)
{
Log
.
e
(
"MXL"
,
"更新:"
+
boolean
)
Log
.
e
(
"MXL"
,
"更新:"
+
boolean
)
if
(
Constant
.
Switch
.
isOpenVip
)
{
if
(
Constant
.
Switch
.
isOpenVip
)
{
...
...
moduleMain/src/main/java/com/zxbw/modulemain/presenter/HomePresenter.kt
View file @
06cce02c
...
@@ -18,6 +18,7 @@ import com.zxhl.cms.net.model.qy.HomeBannerEntity
...
@@ -18,6 +18,7 @@ import com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.qy.JgqQyEntity
import
com.zxhl.cms.net.model.qy.JgqQyEntity
import
com.zxhl.cms.net.model.qy.TbGoodsEntity
import
com.zxhl.cms.net.model.qy.TbGoodsEntity
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.video.HomeAdEntity
import
com.zxhl.cms.utils.EventUtils
import
com.zxhl.cms.utils.EventUtils
import
com.zxhl.cms.utils.UserDataUtils
import
com.zxhl.cms.utils.UserDataUtils
import
com.zxhl.cms.utils.Utils
import
com.zxhl.cms.utils.Utils
...
@@ -44,9 +45,9 @@ class HomePresenter : HomeContract.Presenter {
...
@@ -44,9 +45,9 @@ class HomePresenter : HomeContract.Presenter {
var
entity
=
HomeBannerEntity
()
var
entity
=
HomeBannerEntity
()
entity
.
bannerType
=
"hua_fei"
entity
.
bannerType
=
"hua_fei"
toMutableList
?.
add
(
0
,
entity
)
toMutableList
?.
add
(
0
,
entity
)
toMutableList
?.
removeAt
(
toMutableList
.
size
-
1
)
toMutableList
?.
removeAt
(
toMutableList
.
size
-
1
)
mView
.
setBannerList
(
toMutableList
?.
toList
())
mView
.
setBannerList
(
toMutableList
?.
toList
())
}
else
{
}
else
{
mView
.
setBannerList
(
result
)
mView
.
setBannerList
(
result
)
}
}
}
}
...
@@ -90,4 +91,17 @@ class HomePresenter : HomeContract.Presenter {
...
@@ -90,4 +91,17 @@ class HomePresenter : HomeContract.Presenter {
}
}
})
})
}
}
override
fun
getAdInfo
()
{
ApiClient
.
homeApi
.
getHomeAdInfo
().
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
List
<
HomeAdEntity
>>()
{
override
fun
onSuccess
(
result
:
List
<
HomeAdEntity
>?)
{
mView
.
setAdBanner
(
result
)
}
override
fun
onFailure
(
e
:
Throwable
?,
code
:
String
?,
errorMsg
:
String
?)
{
}
})
}
}
}
\ No newline at end of file
moduleMain/src/main/res/layout/fragment_layout_home.xml
View file @
06cce02c
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:paddingBottom=
"8dp"
>
android:paddingBottom=
"8dp"
>
<com.zxbw.modulemain.view.WrapContentHeightViewPager
<com.zxbw.modulemain.view.WrapContentHeightViewPager
android:id=
"@+id/id_home_top_banner"
android:id=
"@+id/id_home_top_banner"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -45,6 +46,16 @@
...
@@ -45,6 +46,16 @@
tl:vpi_slider_checked_color=
"@color/white"
tl:vpi_slider_checked_color=
"@color/white"
tl:vpi_slider_normal_color=
"#80ffffff"
tl:vpi_slider_normal_color=
"#80ffffff"
tl:vpi_slider_radius=
"3dp"
/>
tl:vpi_slider_radius=
"3dp"
/>
<ImageView
android:id=
"@+id/id_img_banner"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:layout_marginLeft=
"20dp"
android:layout_marginRight=
"20dp"
android:layout_below=
"@+id/id_home_top_banner"
android:adjustViewBounds=
"true"
/>
</RelativeLayout>
</RelativeLayout>
<androidx.appcompat.widget.Toolbar
<androidx.appcompat.widget.Toolbar
...
...
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