Commit bd92eeeb authored by wanglei's avatar wanglei

...

parent e1957e67
package com.base.browserwhite.bean package com.base.browserwhite.bean
import android.content.Context
import com.base.browserwhite.utils.AssetUtils.WebsiteJson import com.base.browserwhite.utils.AssetUtils.WebsiteJson
import com.base.browserwhite.utils.AssetUtils.readJsonFromAsset
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import org.json.JSONObject import org.json.JSONObject
...@@ -30,6 +28,13 @@ data class WebSiteBean( ...@@ -30,6 +28,13 @@ data class WebSiteBean(
) { ) {
var localIcon: Int = 0 var localIcon: Int = 0
var increase = false var increase = false
var isAdd: Boolean = false
}
fun defaultValue(name: String): Boolean {
val defaultWebSiteName =
arrayOf("Amazon", "Youtube", "ChatGPT", "Bing", "Twitter", "Wikipedia", "Facebook", "Ebay", "Tiktok", "Whatsapp")
return defaultWebSiteName.contains(name)
} }
val webCategoryBeanList by lazy { val webCategoryBeanList by lazy {
......
...@@ -38,7 +38,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -38,7 +38,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
if (currentFragment?.canGoBack() == true) { if (currentFragment?.canGoBack() == true) {
binding.ivLeft.setImageResource(R.mipmap.left_s) binding.ivLeft.setImageResource(R.mipmap.left_s)
} else { } else {
binding.ivLeft.setImageResource(R.mipmap.left_n) // binding.ivLeft.setImageResource(R.mipmap.left_n)
binding.ivLeft.setImageResource(R.mipmap.left_s)
} }
if (currentFragment?.canGoForward() == true) { if (currentFragment?.canGoForward() == true) {
binding.ivRight.setImageResource(R.mipmap.right_s) binding.ivRight.setImageResource(R.mipmap.right_s)
...@@ -59,9 +60,7 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -59,9 +60,7 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
} }
} }
binding.ivLeft.setOnClickListener { binding.ivLeft.setOnClickListener {
if (currentFragment?.canGoBack() == true) { onBackPressedDispatcher.onBackPressed()
currentFragment?.goBack()
}
} }
binding.ivRight.setOnClickListener { binding.ivRight.setOnClickListener {
if (currentFragment?.canGoForward() == true) { if (currentFragment?.canGoForward() == true) {
...@@ -80,7 +79,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -80,7 +79,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
transaction.commit() transaction.commit()
fragmentList.add(myFragment) fragmentList.add(myFragment)
currentFragment = myFragment currentFragment = myFragment
currentFragment?.onPageFinished = { currentFragment?.onPageFinished = { uriString ->
uriString?.let { binding.editWeb.setText(it) }
checkLeftRight() checkLeftRight()
} }
} }
......
...@@ -9,12 +9,13 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -9,12 +9,13 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.WebSiteBean import com.base.browserwhite.bean.WebSiteBean
import com.base.browserwhite.bean.defaultValue
import com.base.browserwhite.databinding.ItemWebsiteGrid2Binding import com.base.browserwhite.databinding.ItemWebsiteGrid2Binding
import com.base.browserwhite.databinding.ItemWebsiteGridBinding import com.base.browserwhite.databinding.ItemWebsiteGridBinding
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.XmlEx.inflate import com.base.browserwhite.utils.XmlEx.inflate
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.CircleCrop
class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit) : class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit) :
RecyclerView.Adapter<WebsiteAdapter.WebSiteViewHolder>() { RecyclerView.Adapter<WebsiteAdapter.WebSiteViewHolder>() {
...@@ -71,6 +72,18 @@ class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit ...@@ -71,6 +72,18 @@ class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit
val binding = ItemWebsiteGrid2Binding.bind(holder.itemView) val binding = ItemWebsiteGrid2Binding.bind(holder.itemView)
Glide.with(context).load(bean.icon_url).into(binding.iv) Glide.with(context).load(bean.icon_url).into(binding.iv)
binding.tvName.text = bean.name binding.tvName.text = bean.name
val isAdd = AppPreferences.getInstance().getBoolean("${bean.id}_${bean.name}", defaultValue(bean.name))
if (isAdd) {
binding.ivSelectAdd.setImageResource(R.mipmap.w_xuan)
} else {
binding.ivSelectAdd.setImageResource(R.mipmap.w_tianjia)
}
bean.isAdd = isAdd
binding.ivSelectAdd.setOnClickListener {
AppPreferences.getInstance().putBoolean("${bean.id}_${bean.name}", !bean.isAdd)
notifyItemChanged(position)
}
binding.root.setOnClickListener { binding.root.setOnClickListener {
click.invoke(bean) click.invoke(bean)
} }
......
...@@ -12,6 +12,7 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE ...@@ -12,6 +12,7 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.YAHOO import com.base.browserwhite.bean.ConstObject.YAHOO
import com.base.browserwhite.bean.ConstObject.YANDEX import com.base.browserwhite.bean.ConstObject.YANDEX
import com.base.browserwhite.bean.WebSiteBean import com.base.browserwhite.bean.WebSiteBean
import com.base.browserwhite.bean.defaultValue
import com.base.browserwhite.bean.webSiteGroupBeanList import com.base.browserwhite.bean.webSiteGroupBeanList
import com.base.browserwhite.databinding.FragmentHomeBinding import com.base.browserwhite.databinding.FragmentHomeBinding
import com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification import com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification
...@@ -36,24 +37,29 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -36,24 +37,29 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
override fun setView() { override fun setView() {
binding.rvWeb.layoutManager = GridLayoutManager(requireContext(), 4, LinearLayoutManager.VERTICAL, false) binding.rvWeb.layoutManager = GridLayoutManager(requireContext(), 4, LinearLayoutManager.VERTICAL, false)
websiteAdapter = WebsiteAdapter(0) { websiteAdapter = WebsiteAdapter(0) { bean ->
if (it.name == "Increase") { if (bean.name == "Increase") {
requireContext().startActivity(Intent(requireContext(), WevStoreActivity::class.java)) requireContext().startActivity(Intent(requireContext(), WevStoreActivity::class.java))
} else { } else {
requireContext().startActivity(Intent(requireContext(), WebBrowserActivity::class.java)) requireContext().startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply {
putExtra("uri", bean.url)
})
} }
} }
binding.rvWeb.adapter = websiteAdapter binding.rvWeb.adapter = websiteAdapter
itemTouchHelper = ItemTouchHelper(MyItemTouchHelperCallBack()) itemTouchHelper = ItemTouchHelper(MyItemTouchHelperCallBack())
itemTouchHelper.attachToRecyclerView(binding.rvWeb) itemTouchHelper.attachToRecyclerView(binding.rvWeb)
}
val defaultWebSiteName = override fun onResume() {
arrayOf("Amazon", "Youtube", "ChatGPT", "Bing", "Twitter", "Wikipedia", "Facebook", "Ebay", "Tiktok", "Whatsapp") super.onResume()
setWebSiteData()
}
private fun setWebSiteData() {
val recommendWebSite = webSiteGroupBeanList.flatMap { it.items }.filter { bean -> val recommendWebSite = webSiteGroupBeanList.flatMap { it.items }.filter { bean ->
val defaultValue = defaultWebSiteName.contains(bean.name) AppPreferences.getInstance().getBoolean("${bean.id}_${bean.name}", defaultValue(bean.name))
AppPreferences.getInstance().getBoolean("${bean.id}_${bean.name}", defaultValue)
} }
websiteAdapter.setData(recommendWebSite, WebSiteBean(name = "Increase").apply { websiteAdapter.setData(recommendWebSite, WebSiteBean(name = "Increase").apply {
localIcon = R.mipmap.increase localIcon = R.mipmap.increase
......
...@@ -20,7 +20,7 @@ class WebViewFragment(val uri: String) : BaseFragment<FragmentWebViewBinding>() ...@@ -20,7 +20,7 @@ class WebViewFragment(val uri: String) : BaseFragment<FragmentWebViewBinding>()
FragmentWebViewBinding.inflate(layoutInflater) FragmentWebViewBinding.inflate(layoutInflater)
} }
var onPageFinished: (() -> Unit)? = null var onPageFinished: ((uri:String?) -> Unit)? = null
override fun setView() { override fun setView() {
...@@ -91,7 +91,7 @@ class WebViewFragment(val uri: String) : BaseFragment<FragmentWebViewBinding>() ...@@ -91,7 +91,7 @@ class WebViewFragment(val uri: String) : BaseFragment<FragmentWebViewBinding>()
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url) super.onPageFinished(view, url)
onPageFinished?.invoke() onPageFinished?.invoke(url)
} }
} }
......
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="8dp"
android:layout_weight="1" android:layout_weight="1"
android:ellipsize="end"
android:singleLine="true"
android:text="Reddit" android:text="Reddit"
android:textSize="17sp" android:textSize="17sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment