Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.app.Notification
- import android.app.NotificationChannel
- import android.app.NotificationManager
- import android.app.PendingIntent
- import android.content.Context
- import android.content.Intent
- import android.os.Build
- import android.os.Handler
- import android.util.Log
- import android.widget.Toast
- import androidx.annotation.RequiresApi
- import androidx.core.app.NotificationCompat
- import androidx.work.Worker
- import androidx.work.WorkerParameters
- const val CHANNEL_ID = "id"
- const val CHANNEL_NAME = "ToastWorker"
- @RequiresApi(Build.VERSION_CODES.O)
- class ToastWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
- override fun doWork(): Result {
- val message = inputData.getString("message")
- val title = inputData.getString("title")
- val builder = getBuilder(title.toString(), message.toString(), applicationContext)
- notificationManager.notify(0, builder?.build())
- return Result.success()
- }
- private val notificationManager by lazy {
- context.getSystemService(Context.NOTIFICATION_SERVICE)
- as NotificationManager
- }
- private val vibrationPatternArr by lazy {
- longArrayOf(100, 200, 300, 400, 500, 400, 500, 200, 500)
- }
- init {
- val notificationChannel = NotificationChannel(
- CHANNEL_ID,
- CHANNEL_NAME,
- NotificationManager.IMPORTANCE_HIGH
- )
- notificationChannel.enableLights(true)
- notificationChannel.enableVibration(true)
- notificationChannel.vibrationPattern = vibrationPatternArr
- notificationManager.createNotificationChannel(notificationChannel)
- }
- companion object {
- fun getBuilder(title: String, content: String, context: Context): NotificationCompat.Builder? {
- val mainActivityIntent = Intent(context, MainActivity::class.java)
- val pendingIntent = PendingIntent.getActivity(context, 0, mainActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT)
- return NotificationCompat.Builder(
- context.applicationContext, CHANNEL_ID
- ).setContentTitle(title)
- .setContentText(content)
- .setContentIntent(pendingIntent)
- .setSmallIcon(R.mipmap.ic_launcher)
- .setAutoCancel(true)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment