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
91327705
Commit
91327705
authored
Oct 28, 2022
by
maxiaoliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加首页bannaer位置
parent
5bb4faff
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 @
91327705
package
com.zxhl.shop.activity;
import
android.annotation.SuppressLint;
import
android.content.Intent;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.widget.ImageView;
import
androidx.annotation.NonNull;
import
androidx.annotation.Nullable;
import
androidx.fragment.app.Fragment;
import
androidx.fragment.app.FragmentTransaction;
import
com.umeng.analytics.MobclickAgent;
import
com.umeng.socialize.UMShareAPI;
import
com.zxbw.modulemain.fragment.CashCheckFragment;
import
com.zxbw.modulemain.fragment.HomeFragment;
import
com.zxbw.modulemain.fragment.ShoppingMallFragment;
import
com.zxbw.modulemain.fragment.UserCenterFragment;
import
com.zxbw.modulemain.view.NavigationBottomView;
import
com.zxhl.cms.utils.ClipboardManagerUtil;
import
com.zxhl.shop.R;
import
com.zxhl.cms.AppContext;
import
com.zxhl.cms.common.Constant;
import
com.zxhl.cms.common.base.BaseActivity;
import
com.zxhl.cms.net.ApiClient;
import
com.zxhl.cms.net.RxSchedulers;
import
com.zxhl.cms.net.SettingPreference;
import
com.zxhl.cms.net.callback.BaseObserver;
import
com.zxhl.cms.net.model.uc.UserInfo;
import
com.zxhl.cms.utils.EventUtils;
import
com.zxhl.cms.utils.JumpUtils;
import
com.zxhl.cms.utils.RxBus;
import
com.zxhl.cms.utils.UserDataUtils;
import
com.zxhl.cms.utils.Utils;
import
com.zxhl.cms.widget.LoadingDialog;
import
java.util.ArrayList;
import
java.util.List;
import
io.reactivex.Observable;
import
io.reactivex.android.schedulers.AndroidSchedulers;
import
io.reactivex.functions.Consumer;
package
com.zxhl.shop.activity
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.os.Bundle
import
android.text.TextUtils
import
android.view.View
import
android.widget.ImageView
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.FragmentTransaction
import
com.bumptech.glide.Glide
import
com.umeng.analytics.MobclickAgent
import
com.umeng.socialize.UMShareAPI
import
com.zxbw.modulemain.fragment.CashCheckFragment
import
com.zxbw.modulemain.fragment.HomeFragment
import
com.zxbw.modulemain.fragment.ShoppingMallFragment
import
com.zxbw.modulemain.fragment.UserCenterFragment
import
com.zxbw.modulemain.view.NavigationBottomView
import
com.zxbw.modulemain.view.NavigationBottomView.NavifationCallback
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.ApiClient.homeApi
import
com.zxhl.cms.net.ApiClient.userInfoAPi
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.callback.BaseObserver
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.video.HomeAdEntity
import
com.zxhl.cms.utils.*
import
com.zxhl.cms.utils.ClipboardManagerUtil.getTbLink
import
com.zxhl.cms.utils.EventUtils.onEvent
import
com.zxhl.cms.utils.UserDataUtils.updateUserInfo
import
com.zxhl.cms.widget.LoadingDialog
import
com.zxhl.shop.R
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
java.util.*
/**
* Copyright @ 2018 Bitgoose All rights reserved.
...
...
@@ -51,249 +46,233 @@ import io.reactivex.functions.Consumer;
* @author: fuxin
* @date: 2019/3/15 下午2:19
*/
public
class
MainActivity
extends
BaseActivity
implements
NavigationBottomView
.
NavifationCallback
/*, IDialogCloseCallback, MemberContract.View*/
{
private
List
<
Fragment
>
fragments
=
new
ArrayList
<>();
private
NavigationBottomView
navigationView
;
private
LoadingDialog
mLoading
;
private
Observable
<
String
>
mRestartLoginObservable
;
private
Observable
<
Integer
>
mSwitchMainObservable
;
private
ImageView
adview
;
@Override
public
int
layoutID
()
{
return
R
.
layout
.
activity_main
;
class
MainActivity
:
BaseActivity
(),
NavifationCallback
/*, IDialogCloseCallback, MemberContract.View*/
{
private
val
fragments
:
MutableList
<
Fragment
>
=
ArrayList
()
private
var
navigationView
:
NavigationBottomView
?
=
null
private
var
mLoading
:
LoadingDialog
?
=
null
private
var
mRestartLoginObservable
:
Observable
<
String
>?
=
null
private
var
mSwitchMainObservable
:
Observable
<
Int
>?
=
null
private
var
adview
:
ImageView
?
=
null
override
fun
layoutID
():
Int
{
return
R
.
layout
.
activity_main
}
@Override
public
void
before
()
{
super
.
before
();
setStatusBarBackground
(
AppContext
.
get
().
getResources
().
getColor
(
R
.
color
.
transparent
));
override
fun
before
()
{
super
.
before
()
setStatusBarBackground
(
AppContext
.
get
().
resources
.
getColor
(
R
.
color
.
transparent
))
}
@SuppressLint
(
"CheckResult"
)
@Override
public
void
init
()
{
override
fun
init
()
{
mLoading
=
LoadingDialog
.
getLoadingDialog
(
this
,
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
false
,
false
);
navigationView
=
findViewById
(
R
.
id
.
id_activity_main_fragment_navigation
);
adview
=
findViewById
(
R
.
id
.
id_img_fly_ad
);
initListener
();
mRestartLoginObservable
=
RxBus
.
get
().
register
(
Constant
.
REFRESH_LOGIN_STATS
,
String
.
class
);
mRestartLoginObservable
.
observeOn
(
AndroidSchedulers
.
mainThread
()).
subscribe
(
new
Consumer
<
String
>()
{
@Override
public
void
accept
(
String
s
)
throws
Exception
{
JumpUtils
.
loginJump
();
this
,
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
false
,
false
)
getAdinfo
()
navigationView
=
findViewById
(
R
.
id
.
id_activity_main_fragment_navigation
)
adview
=
findViewById
(
R
.
id
.
id_img_fly_ad
)
adview
?.
setOnClickListener
{
if
(!
TextUtils
.
isEmpty
(
clickUrl
)){
onEvent
(
"ad_click"
,
""
+
clickid
)
JumpUtils
.
webJump
(
adName
,
clickUrl
)
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
}
});
initFragment
();
mSwitchMainObservable
=
RxBus
.
get
().
register
(
Constant
.
SWITCH_PAGE
,
Integer
.
class
);
mSwitchMainObservable
.
observeOn
(
AndroidSchedulers
.
mainThread
()).
subscribe
(
new
Consumer
<
Integer
>()
{
@Override
public
void
accept
(
Integer
s
)
throws
Exception
{
switchFragment
(
s
);
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
}
});
boolean
firstLoginApp
=
SettingPreference
.
getFirstLoginApp
();
}
initListener
()
mRestartLoginObservable
=
RxBus
.
get
().
register
(
Constant
.
REFRESH_LOGIN_STATS
,
String
::
class
.
java
)
mRestartLoginObservable
!!
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
JumpUtils
.
loginJump
()
})
{
}
initFragment
()
mSwitchMainObservable
=
RxBus
.
get
().
register
(
Constant
.
SWITCH_PAGE
,
Int
::
class
.
java
)
mSwitchMainObservable
!!
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
s
->
switchFragment
(
s
)
})
{
}
val
firstLoginApp
=
SettingPreference
.
getFirstLoginApp
()
if
(
firstLoginApp
)
{
UserInfo
userInfoData
=
SettingPreference
.
getUserInfoData
();
val
userInfoData
=
SettingPreference
.
getUserInfoData
()
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
;
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
if
(!
userInfoData
.
member
)
{
SettingPreference
.
setFirstLoginApp
()
;
JumpUtils
.
OpenMember
()
;
SettingPreference
.
setFirstLoginApp
()
JumpUtils
.
OpenMember
()
}
}
}
}
private
void
initListener
()
{
navigationView
.
setNavifationCallback
(
this
);
private
fun
initListener
()
{
navigationView
!!
.
setNavifationCallback
(
this
)
}
private
void
initFragment
()
{
fragments
.
add
(
new
HomeFragment
());
fragments
.
add
(
new
ShoppingMallFragment
());
fragments
.
add
(
new
CashCheckFragment
());
fragments
.
add
(
new
UserCenterFragment
());
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
for
(
Fragment
fragment
:
fragments
)
{
transaction
.
add
(
R
.
id
.
id_activity_main_fragment_layout
,
fragment
)
;
private
fun
initFragment
()
{
fragments
.
add
(
HomeFragment
())
fragments
.
add
(
ShoppingMallFragment
())
fragments
.
add
(
CashCheckFragment
())
fragments
.
add
(
UserCenterFragment
())
val
transaction
=
supportFragmentManager
.
beginTransaction
()
for
(
fragment
in
fragments
)
{
transaction
.
add
(
R
.
id
.
id_activity_main_fragment_layout
,
fragment
)
}
hideFragment
(
transaction
)
;
transaction
.
show
(
fragments
.
get
(
0
)).
commit
();
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"home"
);
hideFragment
(
transaction
)
transaction
.
show
(
fragments
[
0
]).
commit
()
onEvent
(
"tab_imp"
,
"home"
)
}
private
void
switchFragment
(
int
index
)
{
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
hideFragment
(
transaction
);
transaction
.
show
(
fragments
.
get
(
index
)).
commitAllowingStateLoss
();
getSupportFragmentManager
().
executePendingTransactions
();
private
fun
switchFragment
(
index
:
Int
)
{
getAdinfo
()
val
transaction
=
supportFragmentManager
.
beginTransaction
()
hideFragment
(
transaction
)
transaction
.
show
(
fragments
[
index
]).
commitAllowingStateLoss
()
supportFragmentManager
.
executePendingTransactions
()
}
private
void
switchFragment
(
Fragment
f
ragment
)
{
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
hideFragment
(
transaction
)
;
transaction
.
show
(
fragment
).
commit
()
;
private
fun
switchFragment
(
fragment
:
F
ragment
)
{
val
transaction
=
supportFragmentManager
.
beginTransaction
()
hideFragment
(
transaction
)
transaction
.
show
(
fragment
).
commit
()
}
private
void
hideFragment
(
FragmentTransaction
t
ransaction
)
{
for
(
Fragment
fragment
:
fragments
)
{
transaction
.
hide
(
fragment
)
;
private
fun
hideFragment
(
transaction
:
FragmentT
ransaction
)
{
for
(
fragment
in
fragments
)
{
transaction
.
hide
(
fragment
)
}
}
@Override
public
void
onClick
(
View
v
)
{
}
@Override
public
void
onNavigationClick
(
int
vId
)
{
override
fun
onClick
(
v
:
View
)
{}
override
fun
onNavigationClick
(
vId
:
Int
)
{
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_box
)
{
switchFragment
(
0
)
;
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"home"
);
switchFragment
(
0
)
onEvent
(
"tab_imp"
,
"home"
)
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_shop
)
{
switchFragment
(
1
)
;
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"shop"
);
switchFragment
(
1
)
onEvent
(
"tab_imp"
,
"shop"
)
}
else
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_cash
)
{
switchFragment
(
2
)
;
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"cash_check"
);
switchFragment
(
2
)
onEvent
(
"tab_imp"
,
"cash_check"
)
}
if
(
vId
==
com
.
zxbw
.
modulemain
.
R
.
id
.
id_view_navigation_bottom_user
)
{
switchFragment
(
3
)
;
EventUtils
.
INSTANCE
.
onEvent
(
"tab_imp"
,
"user"
);
switchFragment
(
3
)
onEvent
(
"tab_imp"
,
"user"
)
}
}
private
boolean
mPrepareExit
=
false
;
@Override
public
void
onBackPressed
()
{
exitBy2Click
();
private
var
mPrepareExit
=
false
override
fun
onBackPressed
()
{
exitBy2Click
()
}
private
void
exitBy2Click
()
{
private
fun
exitBy2Click
()
{
if
(!
mPrepareExit
)
{
mPrepareExit
=
true
;
// 准备退出
Utils
.
showToast
(
this
,
getResources
().
getString
(
R
.
string
.
nav_back_again_finish
));
navigationView
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
mPrepareExit
=
false
;
// 取消退出
}
},
1500
);
mPrepareExit
=
true
// 准备退出
Utils
.
showToast
(
this
,
resources
.
getString
(
R
.
string
.
nav_back_again_finish
))
navigationView
!!
.
postDelayed
({
mPrepareExit
=
false
// 取消退出
},
1500
)
}
else
{
EventUtils
.
INSTANCE
.
onEvent
(
"double_exit"
,
"双击退出"
);
exitActivity
()
;
onEvent
(
"double_exit"
,
"双击退出"
)
exitActivity
()
// closeApp();
}
}
private
void
exitActivity
()
{
Utils
.
onExit
(
this
)
;
private
fun
exitActivity
()
{
Utils
.
onExit
(
this
)
}
@Override
protected
void
onResume
()
{
super
.
onResume
();
MobclickAgent
.
onResume
(
this
);
UserInfo
userInfoData
=
SettingPreference
.
getUserInfoData
();
override
fun
onResume
()
{
super
.
onResume
()
MobclickAgent
.
onResume
(
this
)
val
userInfoData
=
SettingPreference
.
getUserInfoData
()
if
(
userInfoData
!=
null
&&
userInfoData
.
member
!=
null
)
{
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
;
Constant
.
Switch
.
isOpenVip
=
userInfoData
.
member
}
ClipboardManagerUtil
.
INSTANCE
.
getTbLink
(
this
);
getTbLink
(
this
)
}
@Override
protected
void
onPause
()
{
super
.
onPause
();
MobclickAgent
.
onPause
(
this
);
override
fun
onPause
()
{
super
.
onPause
()
MobclickAgent
.
onPause
(
this
)
}
private
void
deviceLogin
()
{
ApiClient
.
INSTANCE
.
getUserInfoAPi
().
deviceLogin
().
compose
(
RxSchedulers
.
observableIO2Main
()).
subscribe
(
new
BaseObserver
<
UserInfo
>()
{
@Override
public
void
onSuccess
(
UserInfo
result
)
{
if
(
result
!=
null
)
{
SettingPreference
.
saveToken
(
result
.
token
);
UserDataUtils
.
INSTANCE
.
updateUserInfo
(
null
);
private
fun
deviceLogin
()
{
userInfoAPi
.
deviceLogin
().
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
UserInfo
?>()
{
override
fun
onSuccess
(
result
:
UserInfo
?)
{
if
(
result
!=
null
)
{
SettingPreference
.
saveToken
(
result
.
token
)
updateUserInfo
(
null
)
}
}
}
@Override
public
void
onFailure
(
Throwable
e
,
String
code
,
String
errorMsg
)
{
override
fun
onFailure
(
e
:
Throwable
,
code
:
String
,
errorMsg
:
String
)
{}
}
});
})
}
private
void
closeApp
()
{
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
();
}
});
private
fun
closeApp
()
{
// homeApi.closeApp().compose(RxSchedulers.observableIO2Main())
// .subscribe(object : BaseObserver<Any?>() {
// override fun onSuccess(result: Any) {
// exitActivity()
// }
//
// override fun onFailure(e: Throwable, code: String, errorMsg: String) {
// exitActivity()
// }
// })
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
RxBus
.
get
().
unregister
(
Constant
.
REFRESH_LOGIN_STATS
,
mRestartLoginObservable
);
RxBus
.
get
().
unregister
(
Constant
.
SWITCH_PAGE
,
mSwitchMainObservable
);
override
fun
onDestroy
()
{
super
.
onDestroy
()
RxBus
.
get
().
unregister
(
Constant
.
REFRESH_LOGIN_STATS
,
mRestartLoginObservable
!!
)
RxBus
.
get
().
unregister
(
Constant
.
SWITCH_PAGE
,
mSwitchMainObservable
!!
)
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
try
{
UMShareAPI
.
get
(
this
).
onActivityResult
(
requestCode
,
resultCode
,
data
)
;
}
catch
(
Exception
e
)
{
UMShareAPI
.
get
(
this
).
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
catch
(
e
:
Exception
)
{
}
}
@SuppressLint
(
"MissingSuperCall"
)
@Override
protected
void
onSaveInstanceState
(
@NonNull
Bundle
outState
)
{
override
fun
onSaveInstanceState
(
outState
:
Bundle
)
{
// 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
()
{
ApiClient
.
INSTANCE
.
getHomeApi
().
closeApp
().
compose
(
RxSchedulers
.
observableIO2Main
()).
subscribe
(
new
BaseObserver
<
Object
>()
{
@Override
public
void
onSuccess
(
Object
result
)
{
exitActivity
();
}
override
fun
onFailure
(
e
:
Throwable
?,
code
:
String
?,
errorMsg
:
String
?)
{
@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 @
91327705
...
...
@@ -32,8 +32,7 @@
android:layout_above=
"@+id/id_activity_main_fragment_navigation"
android:layout_alignParentRight=
"true"
android:layout_marginRight=
"10dp"
android:layout_marginBottom=
"100dp"
android:src=
"@drawable/icon_head_defalt"
/>
android:layout_marginBottom=
"100dp"
/>
<View
...
...
app/version.properties
View file @
91327705
PACKAGE_NAME
=
com.zxhl.shop
VERSION_CODE
=
27
VERSION_NAME
=
1.2.6
\ No newline at end of file
VERSION_CODE
=
28
VERSION_NAME
=
1.2.7
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/common/NetConfig.java
View file @
91327705
...
...
@@ -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_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_HOME_AD_INFO
=
"app/v1/game/xiaoxiang/ads"
;
//首页广告信息
}
public
static
class
FlashSale
{
...
...
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
View file @
91327705
...
...
@@ -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.uc.UserInfo
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
io.reactivex.Observable
import
okhttp3.ResponseBody
...
...
@@ -416,4 +417,7 @@ interface IHomeApi {
@POST
(
NetConfig
.
QY
.
XX_GOODS_VIDEO_REWARD
)
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 @
91327705
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 @
91327705
...
...
@@ -3,6 +3,7 @@ package com.zxbw.modulemain.contract
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.HomeBannerEntity
import
com.zxhl.cms.net.model.video.HomeAdEntity
/**
* 主页
...
...
@@ -13,11 +14,13 @@ class HomeContract {
fun
setBannerList
(
result
:
List
<
HomeBannerEntity
>?)
fun
setTabList
(
list
:
List
<
TabEntity
>?)
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
fun
setAdBanner
(
result
:
List
<
HomeAdEntity
>?)
}
interface
Presenter
{
fun
getBannerList
()
fun
getTabList
()
fun
getFetchCard
()
fun
getAdInfo
()
}
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/fragment/HomeFragment.kt
View file @
91327705
...
...
@@ -5,11 +5,15 @@ import android.text.TextUtils
import
android.util.Log
import
android.view.View
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.adapter.HomeBannerAdapter
import
com.zxbw.modulemain.contract.HomeContract
import
com.zxbw.modulemain.presenter.HomePresenter
import
com.zxbw.modulemain.view.DialogUtils
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.common.FragmentAdapter
import
com.zxhl.cms.common.NetConfig
...
...
@@ -19,6 +23,8 @@ import com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.box.TabEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
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.UpdateCallback
import
com.zxhl.cms.utils.Utils
...
...
@@ -40,7 +46,7 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
override
fun
lazyLoad
()
{
super
.
lazyLoad
()
if
(
isInitial
&&
isVisible
)
{
mPresenter
?.
getAdInfo
()
}
}
...
...
@@ -49,10 +55,16 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
updateVersionManager
?.
checkUpdate
(
true
)
var
statusBarHeight
=
ScreenUtils
.
getStatusBarHeight
()
if
(
statusBarHeight
<=
0
)
{
statusBarHeight
=
40
;
statusBarHeight
=
40
}
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
)
id_rl_search_view
.
setOnClickListener
{
...
...
@@ -148,8 +160,8 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
}
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
if
(!
result
.
isNullOrEmpty
())
{
if
(
TextUtils
.
equals
(
SettingPreference
.
getifShowCoups
(),
"0"
))
{
if
(!
result
.
isNullOrEmpty
())
{
if
(
TextUtils
.
equals
(
SettingPreference
.
getifShowCoups
(),
"0"
))
{
DialogUtils
.
showifshowCoup
(
mActivity
,
result
,
View
.
OnClickListener
{
JumpUtils
.
RechargeJump
()
})
...
...
@@ -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
)
{
Log
.
e
(
"MXL"
,
"更新:"
+
boolean
)
if
(
Constant
.
Switch
.
isOpenVip
)
{
...
...
moduleMain/src/main/java/com/zxbw/modulemain/presenter/HomePresenter.kt
View file @
91327705
...
...
@@ -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.TbGoodsEntity
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.UserDataUtils
import
com.zxhl.cms.utils.Utils
...
...
@@ -44,9 +45,9 @@ class HomePresenter : HomeContract.Presenter {
var
entity
=
HomeBannerEntity
()
entity
.
bannerType
=
"hua_fei"
toMutableList
?.
add
(
0
,
entity
)
toMutableList
?.
removeAt
(
toMutableList
.
size
-
1
)
toMutableList
?.
removeAt
(
toMutableList
.
size
-
1
)
mView
.
setBannerList
(
toMutableList
?.
toList
())
}
else
{
}
else
{
mView
.
setBannerList
(
result
)
}
}
...
...
@@ -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 @
91327705
...
...
@@ -30,6 +30,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingBottom=
"8dp"
>
<com.zxbw.modulemain.view.WrapContentHeightViewPager
android:id=
"@+id/id_home_top_banner"
android:layout_width=
"match_parent"
...
...
@@ -45,6 +46,16 @@
tl:vpi_slider_checked_color=
"@color/white"
tl:vpi_slider_normal_color=
"#80ffffff"
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>
<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