Commit 1feba4b6 authored by wanglei's avatar wanglei

...

parent 1d992835
......@@ -3,6 +3,7 @@ package com.base.browserwhite.fcm
import android.util.Log
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.TimeUtils
import com.base.browserwhite.utils.TimeUtils.formatTimeH
......@@ -10,6 +11,7 @@ object NotificationHelp {
private var currentNotificationIdIndex = -1
private val TAG = "NotificationHelp"
fun getNotificationId(): Int {
......@@ -38,10 +40,12 @@ object NotificationHelp {
ConstObject.ID_NEWS -> {
canPush = canPushNews()
LogEx.logDebug(TAG, "ID_NEWS canPush=$canPush")
}
ConstObject.ID_WEATHER -> {
canPush = canPushWeather()
LogEx.logDebug(TAG, "ID_WEATHER canPush=$canPush")
}
ConstObject.ID_APP_PROCESS -> {
......@@ -55,7 +59,7 @@ object NotificationHelp {
//天气
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
}
......
......@@ -25,6 +25,7 @@ object NotificationPushUtil {
fun Context.sendNotificationWhere(setActionId: Int?, where: String) {
Log.d("glc", "sendNotificationWhere where=$where")
val actionId: Int = setActionId ?: NotificationHelp.getNotificationId()
Log.d("glc", "sendNotificationWhere actionId=$actionId")
if (MyApplication.PAUSED_VALUE == 1) {
return
}
......
......@@ -128,6 +128,7 @@ object NotificationUiUtil {
val weatherBean: WeatherBean = WeatherUtils.getWeatherEntity() ?: return
if (weatherBean.list.isEmpty()) return
val subBean = weatherBean.list[0]
val smallRemoteViews = RemoteViews(context.packageName, R.layout.notification_weather_small)
smallRemoteViews.setTextViewText(R.id.tv_city, weatherBean.city)
......@@ -259,7 +260,9 @@ object NotificationUiUtil {
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) {
AppPreferences.getInstance().put("last_junk_notification_time", System.currentTimeMillis())
}
......
......@@ -13,7 +13,6 @@ import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.mediabrowser.MediaVideoDetailActivity
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
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.DownloadUtils.getDownloadJson
import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean
......@@ -72,13 +71,13 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
if (checkStorePermission()) {
initData()
} else {
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.",
deny = { finishToMain() }, allow = {
requestStorePermission(launcher, result = {
if (it) initData() else finishToMain()
})
})
// 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.",
// deny = { finishToMain() }, allow = {
// requestStorePermission(launcher, result = {
// if (it) initData() else finishToMain()
// })
// })
}
}
......
......@@ -16,7 +16,6 @@ import com.base.browserwhite.databinding.ActivityMediaBrowserBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.adapter.MediaAdapter
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.IntentEx.installAokAction
import com.base.browserwhite.utils.IntentEx.viewAudioAction
......@@ -117,15 +116,15 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
binding.rv.adapter = adapter
if (!checkStorePermission()) {
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.",
) {
requestStorePermission(launcher) {
if (!it) finishToMain()
}
}
}
// if (!checkStorePermission()) {
// 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.",
// ) {
// requestStorePermission(launcher) {
// if (!it) finishToMain()
// }
// }
// }
// lifecycleScope.launch(Dispatchers.IO) {
// delay(3000)
......
......@@ -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.download.WebDownloadManagerActivity
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.views.DialogViews.showDeleteTipDialog
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.ProgressBean
import com.base.browserwhite.utils.IntentEx.shareAction
......@@ -85,49 +83,66 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
super.setListener()
binding.llPermission.setOnClickListener {
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.",
deny = {}, allow = {
// 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.",
// deny = {}, allow = {
// val launcher = (requireActivity() as MainActivity).launcher
// requireContext().requestStorePermission(launcher) {
//
// }
// })
val launcher = (requireActivity() as MainActivity).launcher
requireContext().requestStorePermission(launcher) {
}
requireContext().showPermissionBottomSheet(launcher) {
requireContext().requestStorePermission(launcher, result = {
})
}
}
binding.tvClean.setOnClickListener {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
binding.llPicture.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Picture")
})
}
}
binding.llVideo.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Video")
})
}
}
binding.llDocument.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Document")
})
}
}
binding.llApk.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "APK")
})
}
}
binding.llMusic.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Music")
})
}
}
binding.llZip.setOnClickListener {
mediaPermission {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Zip")
})
}
}
binding.llDownload.setOnClickListener {
if (requireContext().checkStorePermission()) {
......@@ -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() {
super.onResume()
......
......@@ -20,6 +20,8 @@ import com.base.browserwhite.bean.ConstObject.BING
import com.base.browserwhite.bean.ConstObject.BOOKMARK
import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
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.NEWS
import com.base.browserwhite.bean.ConstObject.YAHOO
......@@ -29,6 +31,9 @@ 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.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.help.Constants
import com.base.browserwhite.help.NewsUtils.requestNews
......@@ -360,6 +365,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
// i++
// lastClickTime = System.currentTimeMillis()
// requireContext().sendNotificationWhere(ID_WEATHER,"")
}
binding.ivUp.setOnClickListener {
binding.rv.scrollToPosition(0)
......
......@@ -10,52 +10,51 @@ import android.view.View
import com.base.browserwhite.R
import com.base.browserwhite.databinding.DialogCameraPermissionAuthorizeBinding
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.PermissionUtils.requestStorePermission
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
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 }
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")
// 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 }
// 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")
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