Commit 1feba4b6 authored by wanglei's avatar wanglei

...

parent 1d992835
...@@ -3,6 +3,7 @@ package com.base.browserwhite.fcm ...@@ -3,6 +3,7 @@ package com.base.browserwhite.fcm
import android.util.Log import android.util.Log
import com.base.browserwhite.bean.ConstObject import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.utils.AppPreferences import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.TimeUtils import com.base.browserwhite.utils.TimeUtils
import com.base.browserwhite.utils.TimeUtils.formatTimeH import com.base.browserwhite.utils.TimeUtils.formatTimeH
...@@ -10,6 +11,7 @@ object NotificationHelp { ...@@ -10,6 +11,7 @@ object NotificationHelp {
private var currentNotificationIdIndex = -1 private var currentNotificationIdIndex = -1
private val TAG = "NotificationHelp"
fun getNotificationId(): Int { fun getNotificationId(): Int {
...@@ -38,10 +40,12 @@ object NotificationHelp { ...@@ -38,10 +40,12 @@ object NotificationHelp {
ConstObject.ID_NEWS -> { ConstObject.ID_NEWS -> {
canPush = canPushNews() canPush = canPushNews()
LogEx.logDebug(TAG, "ID_NEWS canPush=$canPush")
} }
ConstObject.ID_WEATHER -> { ConstObject.ID_WEATHER -> {
canPush = canPushWeather() canPush = canPushWeather()
LogEx.logDebug(TAG, "ID_WEATHER canPush=$canPush")
} }
ConstObject.ID_APP_PROCESS -> { ConstObject.ID_APP_PROCESS -> {
...@@ -55,7 +59,7 @@ object NotificationHelp { ...@@ -55,7 +59,7 @@ object NotificationHelp {
//天气 //天气
private fun canPushWeather(): Boolean { private fun canPushWeather(): Boolean {
val lastPushTime = AppPreferences.getInstance().getLong("last_notification_time", 0) val lastPushTime = AppPreferences.getInstance().getLong("last_weather_notification_time", 0)
return lastPushTime == 0L || System.currentTimeMillis() - lastPushTime > 3 * 60 * 60 * 1000 return lastPushTime == 0L || System.currentTimeMillis() - lastPushTime > 3 * 60 * 60 * 1000
} }
......
...@@ -25,6 +25,7 @@ object NotificationPushUtil { ...@@ -25,6 +25,7 @@ object NotificationPushUtil {
fun Context.sendNotificationWhere(setActionId: Int?, where: String) { fun Context.sendNotificationWhere(setActionId: Int?, where: String) {
Log.d("glc", "sendNotificationWhere where=$where") Log.d("glc", "sendNotificationWhere where=$where")
val actionId: Int = setActionId ?: NotificationHelp.getNotificationId() val actionId: Int = setActionId ?: NotificationHelp.getNotificationId()
Log.d("glc", "sendNotificationWhere actionId=$actionId")
if (MyApplication.PAUSED_VALUE == 1) { if (MyApplication.PAUSED_VALUE == 1) {
return return
} }
......
...@@ -128,6 +128,7 @@ object NotificationUiUtil { ...@@ -128,6 +128,7 @@ object NotificationUiUtil {
val weatherBean: WeatherBean = WeatherUtils.getWeatherEntity() ?: return val weatherBean: WeatherBean = WeatherUtils.getWeatherEntity() ?: return
if (weatherBean.list.isEmpty()) return if (weatherBean.list.isEmpty()) return
val subBean = weatherBean.list[0] val subBean = weatherBean.list[0]
val smallRemoteViews = RemoteViews(context.packageName, R.layout.notification_weather_small) val smallRemoteViews = RemoteViews(context.packageName, R.layout.notification_weather_small)
smallRemoteViews.setTextViewText(R.id.tv_city, weatherBean.city) smallRemoteViews.setTextViewText(R.id.tv_city, weatherBean.city)
...@@ -259,7 +260,9 @@ object NotificationUiUtil { ...@@ -259,7 +260,9 @@ object NotificationUiUtil {
notificationManager.notify(actionId, builder.build()) notificationManager.notify(actionId, builder.build())
AppPreferences.getInstance().put("last_notification_time", System.currentTimeMillis()) if (actionId == ID_WEATHER) {
AppPreferences.getInstance().put("last_weather_notification_time", System.currentTimeMillis())
}
if (actionId == ID_JUNK_CLEANER) { if (actionId == ID_JUNK_CLEANER) {
AppPreferences.getInstance().put("last_junk_notification_time", System.currentTimeMillis()) AppPreferences.getInstance().put("last_junk_notification_time", System.currentTimeMillis())
} }
......
...@@ -13,7 +13,6 @@ import com.base.browserwhite.ui.activity.BaseActivity ...@@ -13,7 +13,6 @@ import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.mediabrowser.MediaVideoDetailActivity import com.base.browserwhite.ui.activity.mediabrowser.MediaVideoDetailActivity
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import com.base.browserwhite.ui.views.PermissionDialog.showGerPermission
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.DownloadUtils.getDownloadJson import com.base.browserwhite.utils.DownloadUtils.getDownloadJson
import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean
...@@ -72,13 +71,13 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin ...@@ -72,13 +71,13 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
if (checkStorePermission()) { if (checkStorePermission()) {
initData() initData()
} else { } else {
showGerPermission( // showGerPermission(
desc = "This feature requires access to your storage to manage your downloads. We will not transfer your data to any third-party services. Please grant permission so that we can provide you with better services.", // desc = "This feature requires access to your storage to manage your downloads. We will not transfer your data to any third-party services. Please grant permission so that we can provide you with better services.",
deny = { finishToMain() }, allow = { // deny = { finishToMain() }, allow = {
requestStorePermission(launcher, result = { // requestStorePermission(launcher, result = {
if (it) initData() else finishToMain() // if (it) initData() else finishToMain()
}) // })
}) // })
} }
} }
......
...@@ -16,7 +16,6 @@ import com.base.browserwhite.databinding.ActivityMediaBrowserBinding ...@@ -16,7 +16,6 @@ import com.base.browserwhite.databinding.ActivityMediaBrowserBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.adapter.MediaAdapter import com.base.browserwhite.ui.adapter.MediaAdapter
import com.base.browserwhite.ui.fragment.FileFragment import com.base.browserwhite.ui.fragment.FileFragment
import com.base.browserwhite.ui.views.PermissionDialog.showGerPermission
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.IntentEx.installAokAction import com.base.browserwhite.utils.IntentEx.installAokAction
import com.base.browserwhite.utils.IntentEx.viewAudioAction import com.base.browserwhite.utils.IntentEx.viewAudioAction
...@@ -117,15 +116,15 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() { ...@@ -117,15 +116,15 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
binding.rv.adapter = adapter binding.rv.adapter = adapter
if (!checkStorePermission()) { // if (!checkStorePermission()) {
showGerPermission( // showGerPermission(
desc = "This feature requires access to your storage to scan your files and clean up junk files and unused APK files. We will not transmit your data to any third-party service. Please grant permission so that we can provide you with better service.", // desc = "This feature requires access to your storage to scan your files and clean up junk files and unused APK files. We will not transmit your data to any third-party service. Please grant permission so that we can provide you with better service.",
) { // ) {
requestStorePermission(launcher) { // requestStorePermission(launcher) {
if (!it) finishToMain() // if (!it) finishToMain()
} // }
} // }
} // }
// lifecycleScope.launch(Dispatchers.IO) { // lifecycleScope.launch(Dispatchers.IO) {
// delay(3000) // delay(3000)
......
...@@ -13,11 +13,9 @@ import com.base.browserwhite.ui.activity.MainActivity ...@@ -13,11 +13,9 @@ import com.base.browserwhite.ui.activity.MainActivity
import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity import com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity
import com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity import com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.ui.adapter.MediaAdapter import com.base.browserwhite.ui.adapter.MediaAdapter
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import com.base.browserwhite.ui.views.PermissionDialog.showGerPermission
import com.base.browserwhite.ui.views.PermissionDialog.showPermissionBottomSheet import com.base.browserwhite.ui.views.PermissionDialog.showPermissionBottomSheet
import com.base.browserwhite.ui.views.ProgressBean import com.base.browserwhite.ui.views.ProgressBean
import com.base.browserwhite.utils.IntentEx.shareAction import com.base.browserwhite.utils.IntentEx.shareAction
...@@ -85,49 +83,66 @@ class FileFragment : BaseFragment<FragmentFileBinding>() { ...@@ -85,49 +83,66 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
super.setListener() super.setListener()
binding.llPermission.setOnClickListener { binding.llPermission.setOnClickListener {
requireContext().showGerPermission( // requireContext().showGerPermission(
desc = "This feature requires access to your storage to scan your files and summarize your file types. We will not transfer your data to any third-party services. Please grant permission so that we can provide you with better services.", // desc = "This feature requires access to your storage to scan your files and summarize your file types. We will not transfer your data to any third-party services. Please grant permission so that we can provide you with better services.",
deny = {}, allow = { // deny = {}, allow = {
// val launcher = (requireActivity() as MainActivity).launcher
// requireContext().requestStorePermission(launcher) {
//
// }
// })
val launcher = (requireActivity() as MainActivity).launcher val launcher = (requireActivity() as MainActivity).launcher
requireContext().requestStorePermission(launcher) { requireContext().showPermissionBottomSheet(launcher) {
requireContext().requestStorePermission(launcher, result = {
}
}) })
}
} }
binding.tvClean.setOnClickListener { binding.tvClean.setOnClickListener {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java)) startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
} }
binding.llPicture.setOnClickListener { binding.llPicture.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Picture") putExtra("tittle", "Picture")
}) })
} }
}
binding.llVideo.setOnClickListener { binding.llVideo.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Video") putExtra("tittle", "Video")
}) })
} }
}
binding.llDocument.setOnClickListener { binding.llDocument.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Document") putExtra("tittle", "Document")
}) })
} }
}
binding.llApk.setOnClickListener { binding.llApk.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "APK") putExtra("tittle", "APK")
}) })
} }
}
binding.llMusic.setOnClickListener { binding.llMusic.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Music") putExtra("tittle", "Music")
}) })
} }
}
binding.llZip.setOnClickListener { binding.llZip.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Zip") putExtra("tittle", "Zip")
}) })
} }
}
binding.llDownload.setOnClickListener { binding.llDownload.setOnClickListener {
if (requireContext().checkStorePermission()) { if (requireContext().checkStorePermission()) {
...@@ -150,6 +165,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() { ...@@ -150,6 +165,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
} }
fun mediaPermission(jump: () -> Unit) {
if (requireContext().checkStorePermission()) {
jump.invoke()
return
}
val launcher = (requireActivity() as MainActivity).launcher
requireContext().showPermissionBottomSheet(launcher) {
requireContext().requestStorePermission(launcher, result = {
if (it) {
jump.invoke()
}
})
}
}
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
......
...@@ -20,6 +20,8 @@ import com.base.browserwhite.bean.ConstObject.BING ...@@ -20,6 +20,8 @@ import com.base.browserwhite.bean.ConstObject.BING
import com.base.browserwhite.bean.ConstObject.BOOKMARK import com.base.browserwhite.bean.ConstObject.BOOKMARK
import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
import com.base.browserwhite.bean.ConstObject.GOOGLE import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.ID_NEWS
import com.base.browserwhite.bean.ConstObject.ID_WEATHER
import com.base.browserwhite.bean.ConstObject.JUNK_CLEANER import com.base.browserwhite.bean.ConstObject.JUNK_CLEANER
import com.base.browserwhite.bean.ConstObject.NEWS import com.base.browserwhite.bean.ConstObject.NEWS
import com.base.browserwhite.bean.ConstObject.YAHOO import com.base.browserwhite.bean.ConstObject.YAHOO
...@@ -29,6 +31,9 @@ import com.base.browserwhite.bean.WebSiteBean ...@@ -29,6 +31,9 @@ import com.base.browserwhite.bean.WebSiteBean
import com.base.browserwhite.bean.defaultValue 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.fcm.NotificationHelp
import com.base.browserwhite.fcm.NotificationPushUtil
import com.base.browserwhite.fcm.NotificationPushUtil.sendNotificationWhere
import com.base.browserwhite.fcm.PackageBroadcastReceiver.Companion.registerPackageBroadcastReceiver import com.base.browserwhite.fcm.PackageBroadcastReceiver.Companion.registerPackageBroadcastReceiver
import com.base.browserwhite.help.Constants import com.base.browserwhite.help.Constants
import com.base.browserwhite.help.NewsUtils.requestNews import com.base.browserwhite.help.NewsUtils.requestNews
...@@ -360,6 +365,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -360,6 +365,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
// i++ // i++
// lastClickTime = System.currentTimeMillis() // lastClickTime = System.currentTimeMillis()
// requireContext().sendNotificationWhere(ID_WEATHER,"")
} }
binding.ivUp.setOnClickListener { binding.ivUp.setOnClickListener {
binding.rv.scrollToPosition(0) binding.rv.scrollToPosition(0)
......
...@@ -10,52 +10,51 @@ import android.view.View ...@@ -10,52 +10,51 @@ import android.view.View
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.databinding.DialogCameraPermissionAuthorizeBinding import com.base.browserwhite.databinding.DialogCameraPermissionAuthorizeBinding
import com.base.browserwhite.databinding.DialogPermissionStorageBottomBinding import com.base.browserwhite.databinding.DialogPermissionStorageBottomBinding
import com.base.browserwhite.databinding.DialogPermissonOpenBinding
import com.base.browserwhite.ui.views.PermissionDialog.showPermissionBottomSheet
import com.base.browserwhite.utils.ActivityLauncher import com.base.browserwhite.utils.ActivityLauncher
import com.base.browserwhite.utils.PermissionUtils.requestStorePermission import com.base.browserwhite.utils.PermissionUtils.requestStorePermission
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
object PermissionDialog { object PermissionDialog {
@SuppressLint("SetTextI18n")
fun Context.showGerPermission(
tittle: String? = null,
desc: String? = null,
denyText: String? = null,
allowText: String? = null,
deny: ((view: Dialog) -> Unit)? = null,
allow: ((view: Dialog) -> Unit)? = null
): Dialog {
val dialog = Dialog(this)
val binding = DialogPermissonOpenBinding.inflate(LayoutInflater.from(this))
dialog.requestWindowFeature(1)
dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.window!!.setLayout(-1, -1)
dialog.setCanceledOnTouchOutside(false)
dialog.setCancelable(false)
dialog.setContentView(binding.root)
val str = resources.getString(R.string.app_name)
tittle?.let { binding.tvTitle.text = it } // @SuppressLint("SetTextI18n")
desc?.let { binding.tvDesc.text = it } // fun Context.showGerPermission(
denyText?.let { binding.idDeny.text = it } // tittle: String? = null,
allowText?.let { binding.idTvAllow.text = it } // desc: String? = null,
// denyText: String? = null,
binding.idFullLottie.imageAssetsFolder = "permission_finger/images/" // allowText: String? = null,
binding.idFullLottie.setAnimation("permission_finger/data.json") // deny: ((view: Dialog) -> Unit)? = null,
binding.idFullLottie.playAnimation() // allow: ((view: Dialog) -> Unit)? = null
binding.idDeny.setOnClickListener { // ): Dialog {
dialog.dismiss() // val dialog = Dialog(this)
deny?.invoke(dialog) // val binding = DialogPermissonOpenBinding.inflate(LayoutInflater.from(this))
} // dialog.requestWindowFeature(1)
binding.idTvAllow.setOnClickListener { // dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.dismiss() // dialog.window!!.setLayout(-1, -1)
allow?.invoke(dialog) // dialog.setCanceledOnTouchOutside(false)
} // dialog.setCancelable(false)
dialog.show() // dialog.setContentView(binding.root)
return dialog // val str = resources.getString(R.string.app_name)
} //
// tittle?.let { binding.tvTitle.text = it }
// desc?.let { binding.tvDesc.text = it }
// denyText?.let { binding.idDeny.text = it }
// allowText?.let { binding.idTvAllow.text = it }
//
// binding.idFullLottie.imageAssetsFolder = "permission_finger/images/"
// binding.idFullLottie.setAnimation("permission_finger/data.json")
// binding.idFullLottie.playAnimation()
// binding.idDeny.setOnClickListener {
// dialog.dismiss()
// deny?.invoke(dialog)
// }
// binding.idTvAllow.setOnClickListener {
// dialog.dismiss()
// allow?.invoke(dialog)
// }
// dialog.show()
// return dialog
// }
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
fun Context.showPermissionBottomSheet(launcher: ActivityLauncher, agreeAction: () -> Unit) { fun Context.showPermissionBottomSheet(launcher: ActivityLauncher, agreeAction: () -> Unit) {
......
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