diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index aa23977..83784fc 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -162,4 +162,17 @@
)
return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * Banner
+ */
+ suspend fun obtainBanner(): String {
+ val paramObject = JSONObject()
+ paramObject.put("limit", 5)
+ paramObject.put("offset", 1)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.obtainBanner(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index aa23977..83784fc 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -162,4 +162,17 @@
)
return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * Banner
+ */
+ suspend fun obtainBanner(): String {
+ val paramObject = JSONObject()
+ paramObject.put("limit", 5)
+ paramObject.put("offset", 1)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.obtainBanner(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/WebsiteActivity.kt b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
new file mode 100644
index 0000000..a7c6195
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
@@ -0,0 +1,88 @@
+package com.casic.br.view
+
+import android.graphics.Bitmap
+import android.view.ViewGroup
+import android.webkit.WebView
+import android.widget.LinearLayout
+import com.casic.br.R
+import com.gyf.immersionbar.ImmersionBar
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.WebViewClient
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import kotlinx.android.synthetic.main.activity_web.*
+
+class WebsiteActivity : KotlinBaseActivity() {
+
+ private lateinit var agentWeb: AgentWeb
+ private lateinit var url: String
+
+ override fun initLayoutView(): Int = R.layout.activity_web
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = "北京市燃气集团有限责任公司"
+ }
+
+ override fun initData() {
+ url = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ containerView,
+ LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(url)
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOptionView.setOnClickListener {
+ agentWeb.webCreator.webView.loadUrl(url)
+ }
+ }
+
+ override fun onResume() {
+ agentWeb.webLifeCycle.onResume()
+ super.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index aa23977..83784fc 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -162,4 +162,17 @@
)
return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * Banner
+ */
+ suspend fun obtainBanner(): String {
+ val paramObject = JSONObject()
+ paramObject.put("limit", 5)
+ paramObject.put("offset", 1)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.obtainBanner(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/WebsiteActivity.kt b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
new file mode 100644
index 0000000..a7c6195
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
@@ -0,0 +1,88 @@
+package com.casic.br.view
+
+import android.graphics.Bitmap
+import android.view.ViewGroup
+import android.webkit.WebView
+import android.widget.LinearLayout
+import com.casic.br.R
+import com.gyf.immersionbar.ImmersionBar
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.WebViewClient
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import kotlinx.android.synthetic.main.activity_web.*
+
+class WebsiteActivity : KotlinBaseActivity() {
+
+ private lateinit var agentWeb: AgentWeb
+ private lateinit var url: String
+
+ override fun initLayoutView(): Int = R.layout.activity_web
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = "北京市燃气集团有限责任公司"
+ }
+
+ override fun initData() {
+ url = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ containerView,
+ LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(url)
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOptionView.setOnClickListener {
+ agentWeb.webCreator.webView.loadUrl(url)
+ }
+ }
+
+ override fun onResume() {
+ agentWeb.webLifeCycle.onResume()
+ super.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
new file mode 100644
index 0000000..908ed91
--- /dev/null
+++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.br.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.br.base.BaseApplication
+import com.casic.br.extensions.separateResponseCode
+import com.casic.br.extensions.toErrorMessage
+import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class BannerViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val listModel = MutableLiveData()
+
+ fun obtainBanner() = launch({
+ val response = RetrofitServiceManager.obtainBanner()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ listModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index aa23977..83784fc 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -162,4 +162,17 @@
)
return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * Banner
+ */
+ suspend fun obtainBanner(): String {
+ val paramObject = JSONObject()
+ paramObject.put("limit", 5)
+ paramObject.put("offset", 1)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.obtainBanner(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/WebsiteActivity.kt b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
new file mode 100644
index 0000000..a7c6195
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
@@ -0,0 +1,88 @@
+package com.casic.br.view
+
+import android.graphics.Bitmap
+import android.view.ViewGroup
+import android.webkit.WebView
+import android.widget.LinearLayout
+import com.casic.br.R
+import com.gyf.immersionbar.ImmersionBar
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.WebViewClient
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import kotlinx.android.synthetic.main.activity_web.*
+
+class WebsiteActivity : KotlinBaseActivity() {
+
+ private lateinit var agentWeb: AgentWeb
+ private lateinit var url: String
+
+ override fun initLayoutView(): Int = R.layout.activity_web
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = "北京市燃气集团有限责任公司"
+ }
+
+ override fun initData() {
+ url = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ containerView,
+ LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(url)
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOptionView.setOnClickListener {
+ agentWeb.webCreator.webView.loadUrl(url)
+ }
+ }
+
+ override fun onResume() {
+ agentWeb.webLifeCycle.onResume()
+ super.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
new file mode 100644
index 0000000..908ed91
--- /dev/null
+++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.br.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.br.base.BaseApplication
+import com.casic.br.extensions.separateResponseCode
+import com.casic.br.extensions.toErrorMessage
+import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class BannerViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val listModel = MutableLiveData()
+
+ fun obtainBanner() = launch({
+ val response = RetrofitServiceManager.obtainBanner()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ listModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_reload.xml b/app/src/main/res/drawable/ic_reload.xml
new file mode 100644
index 0000000..0cd7b0e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reload.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 5837c6e..f6ac707 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,4 +123,6 @@
//推送SDK
implementation 'com.getui:gtsdk:3.2.10.0' //个推SDK
implementation 'com.getui:gtc:3.1.9.0' //个推核心组件
+ //WebView
+ implementation 'com.just.agentweb:agentweb-androidx:4.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88090c0..ecbed59 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,7 @@
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 2cb3f45..8fc6c8c 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -1,5 +1,6 @@
package com.casic.br.fragment
+import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.casic.br.R
import com.casic.br.adapter.ConnectGridAdapter
@@ -11,9 +12,10 @@
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
import com.casic.br.view.MainActivity
+import com.casic.br.view.WebsiteActivity
+import com.casic.br.vm.BannerViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
@@ -27,6 +29,8 @@
class HomePageFragment : KotlinBaseFragment() {
+ private lateinit var bannerViewModel: BannerViewModel
+
override fun initLayoutView(): Int = R.layout.fragment_home
override fun setupTopBarLayout() {
@@ -34,38 +38,9 @@
}
override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = homeBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = CircleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@HomePageFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
+ bannerViewModel = ViewModelProvider(this)[BannerViewModel::class.java]
+ //初始化轮播图
+ initBanner()
val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE)
homeRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
@@ -89,6 +64,40 @@
})
}
+ private fun initBanner() {
+ bannerViewModel.obtainBanner()
+ bannerViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val banner = homeBannerView as Banner>
+ banner.apply {
+ setAdapter(object :
+ BannerImageAdapter(it.data.rows) {
+ override fun onBindView(
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.bannerPicture)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = CircleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@HomePageFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ requireContext().navigatePageTo(imageModel.skipUrl)
+ }
+ }
+ }
+ })
+ }
+
override fun observeRequestState() {
}
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
index 6caa727..e396c5f 100644
--- a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -28,24 +28,28 @@
override fun initData() {
//TODO 模拟数据
- val imageModels = ArrayList()
+ val imageModels = ArrayList()
for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+ val model = BannerImageModel.DataModel.RowsModel()
+ model.bannerName = "测试轮播图"
+ model.bannerPicture = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
imageModels.add(model)
}
- val banner = shopBannerView
- as Banner>
+ val banner = shopBannerView as Banner>
banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
+ setAdapter(object :
+ BannerImageAdapter(imageModels) {
override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ holder: BannerImageHolder,
+ data: BannerImageModel.DataModel.RowsModel,
+ position: Int,
+ size: Int
) {
Glide.with(holder.itemView)
- .load(data.imageLink)
+ .load(data.bannerPicture)
.placeholder(R.mipmap.load_image_error)
.into(holder.imageView)
}
@@ -56,7 +60,7 @@
//Banner点击事件
setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
+ "${imageModel.bannerName}被点击了".show(requireContext())
}
}
diff --git a/app/src/main/java/com/casic/br/model/BannerImageModel.java b/app/src/main/java/com/casic/br/model/BannerImageModel.java
index bd4ce3c..10c9417 100644
--- a/app/src/main/java/com/casic/br/model/BannerImageModel.java
+++ b/app/src/main/java/com/casic/br/model/BannerImageModel.java
@@ -1,32 +1,157 @@
package com.casic.br.model;
+import java.util.List;
+
public class BannerImageModel {
- private String imageLink;
- private String imageTitle;
- private String webPageLink;
+ private int code;
+ private DataModel data;
+ private String message;
+ private boolean success;
- public String getImageLink() {
- return imageLink;
+ public int getCode() {
+ return code;
}
- public void setImageLink(String imageLink) {
- this.imageLink = imageLink;
+ public void setCode(int code) {
+ this.code = code;
}
- public String getImageTitle() {
- return imageTitle;
+ public DataModel getData() {
+ return data;
}
- public void setImageTitle(String imageTitle) {
- this.imageTitle = imageTitle;
+ public void setData(DataModel data) {
+ this.data = data;
}
- public String getWebPageLink() {
- return webPageLink;
+ public String getMessage() {
+ return message;
}
- public void setWebPageLink(String webPageLink) {
- this.webPageLink = webPageLink;
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String bannerModule;
+ private String bannerModuleName;
+ private String bannerName;
+ private String bannerPicture;
+ private int bannerSort;
+ private String createTime;
+ private String id;
+ private String ids;
+ private String skipUrl;
+ private String updateTime;
+
+ public String getBannerModule() {
+ return bannerModule;
+ }
+
+ public void setBannerModule(String bannerModule) {
+ this.bannerModule = bannerModule;
+ }
+
+ public String getBannerModuleName() {
+ return bannerModuleName;
+ }
+
+ public void setBannerModuleName(String bannerModuleName) {
+ this.bannerModuleName = bannerModuleName;
+ }
+
+ public String getBannerName() {
+ return bannerName;
+ }
+
+ public void setBannerName(String bannerName) {
+ this.bannerName = bannerName;
+ }
+
+ public String getBannerPicture() {
+ return bannerPicture;
+ }
+
+ public void setBannerPicture(String bannerPicture) {
+ this.bannerPicture = bannerPicture;
+ }
+
+ public int getBannerSort() {
+ return bannerSort;
+ }
+
+ public void setBannerSort(int bannerSort) {
+ this.bannerSort = bannerSort;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIds() {
+ return ids;
+ }
+
+ public void setIds(String ids) {
+ this.ids = ids;
+ }
+
+ public String getSkipUrl() {
+ return skipUrl;
+ }
+
+ public void setSkipUrl(String skipUrl) {
+ this.skipUrl = skipUrl;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
index c4c92ee..be1986d 100644
--- a/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/utils/LocaleConstant.kt
@@ -62,7 +62,6 @@
* String
* =============================================================================================
* */
- const val PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"
const val PUSH_CLIENT_ID = "clientId"
const val COUNTRY_CODE = "86"
const val USER_IS_LOGIN = "isLogin"
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index f9b6036..1360cca 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -70,4 +70,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * Banner
+ */
+ @POST("/appBannerInfo/listPage")
+ suspend fun obtainBanner(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index aa23977..83784fc 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -162,4 +162,17 @@
)
return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * Banner
+ */
+ suspend fun obtainBanner(): String {
+ val paramObject = JSONObject()
+ paramObject.put("limit", 5)
+ paramObject.put("offset", 1)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.obtainBanner(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/WebsiteActivity.kt b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
new file mode 100644
index 0000000..a7c6195
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/WebsiteActivity.kt
@@ -0,0 +1,88 @@
+package com.casic.br.view
+
+import android.graphics.Bitmap
+import android.view.ViewGroup
+import android.webkit.WebView
+import android.widget.LinearLayout
+import com.casic.br.R
+import com.gyf.immersionbar.ImmersionBar
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.WebViewClient
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import kotlinx.android.synthetic.main.activity_web.*
+
+class WebsiteActivity : KotlinBaseActivity() {
+
+ private lateinit var agentWeb: AgentWeb
+ private lateinit var url: String
+
+ override fun initLayoutView(): Int = R.layout.activity_web
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = "北京市燃气集团有限责任公司"
+ }
+
+ override fun initData() {
+ url = intent.getStringExtra(Constant.INTENT_PARAM)!!
+ agentWeb = AgentWeb.with(this)
+ .setAgentWebParent(
+ containerView,
+ LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ )
+ .useDefaultIndicator()
+ .setWebViewClient(object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+
+ }
+ })
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .interceptUnkownUrl()
+ .createAgentWeb()
+ .ready()
+ .go(url)
+ val webView = agentWeb.webCreator.webView
+ webView.settings.useWideViewPort = true
+ webView.settings.builtInZoomControls = true
+ webView.settings.setSupportZoom(true)
+ webView.settings.displayZoomControls = false
+ webView.setInitialScale(4)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOptionView.setOnClickListener {
+ agentWeb.webCreator.webView.loadUrl(url)
+ }
+ }
+
+ override fun onResume() {
+ agentWeb.webLifeCycle.onResume()
+ super.onResume()
+ }
+
+ override fun onPause() {
+ agentWeb.webLifeCycle.onPause()
+ super.onPause()
+ }
+
+ override fun onDestroy() {
+ agentWeb.webLifeCycle.onDestroy()
+ super.onDestroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
new file mode 100644
index 0000000..908ed91
--- /dev/null
+++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.br.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.br.base.BaseApplication
+import com.casic.br.extensions.separateResponseCode
+import com.casic.br.extensions.toErrorMessage
+import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class BannerViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val listModel = MutableLiveData()
+
+ fun obtainBanner() = launch({
+ val response = RetrofitServiceManager.obtainBanner()
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ listModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_reload.xml b/app/src/main/res/drawable/ic_reload.xml
new file mode 100644
index 0000000..0cd7b0e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reload.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_web.xml b/app/src/main/res/layout/activity_web.xml
new file mode 100644
index 0000000..ebc39c1
--- /dev/null
+++ b/app/src/main/res/layout/activity_web.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file