|
|
@@ -1,5 +1,7 @@
|
|
|
package com.adealink.weparty.push
|
|
|
|
|
|
+import android.Manifest
|
|
|
+import android.annotation.SuppressLint
|
|
|
import android.app.ActivityOptions
|
|
|
import android.app.Notification
|
|
|
import android.app.NotificationChannel
|
|
|
@@ -14,6 +16,7 @@ import android.os.Build
|
|
|
import android.widget.RemoteViews
|
|
|
import androidx.core.app.NotificationCompat
|
|
|
import androidx.core.app.NotificationManagerCompat
|
|
|
+import androidx.fragment.app.FragmentActivity
|
|
|
import com.adealink.frame.aab.util.getCompatColor
|
|
|
import com.adealink.frame.aab.util.getCompatDrawable
|
|
|
import com.adealink.frame.aab.util.getCompatString
|
|
|
@@ -32,7 +35,9 @@ import com.adealink.frame.util.PackageUtil
|
|
|
import com.adealink.weparty.AppModule
|
|
|
import com.adealink.weparty.R
|
|
|
import com.adealink.weparty.commonui.imageview.CircleDrawable
|
|
|
+import com.adealink.weparty.commonui.widget.CommonDialog
|
|
|
import com.adealink.weparty.module.profile.view.UserNameTextView
|
|
|
+import com.adealink.weparty.permission.PermissionUtils
|
|
|
import com.adealink.weparty.push.data.WeNextPushMessage
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
import kotlinx.coroutines.launch
|
|
|
@@ -190,4 +195,33 @@ object NotificationUtil {
|
|
|
R.drawable.notification_ic
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @SuppressLint("CheckResult")
|
|
|
+ fun requestPostNotificationPermission(activity: FragmentActivity) {
|
|
|
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (PermissionUtils.hasPermissions(activity, Manifest.permission.POST_NOTIFICATIONS)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ PermissionUtils.getRxPermissions(activity)
|
|
|
+ .request(Manifest.permission.POST_NOTIFICATIONS).subscribe { granted ->
|
|
|
+ if (!granted) {
|
|
|
+ CommonDialog.Builder()
|
|
|
+ .message(getCompatString(R.string.common_open_notification_tip))
|
|
|
+ .onPositive {
|
|
|
+ PermissionUtils.goNotificationSettingActivity(activity)
|
|
|
+ }
|
|
|
+ .positiveText(getCompatString(R.string.common_open))
|
|
|
+ .setShowDefaultCancel(true)
|
|
|
+ .dismissAfterClick(true)
|
|
|
+ .build()
|
|
|
+ .show(activity.supportFragmentManager, "POST_NOTIFICATIONS_PERMISSION_NO_GRANT")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|