Commit bd92eeeb authored by wanglei's avatar wanglei

...

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