Advertisement
vmeansdev

Handler

May 29th, 2018
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.42 KB | None | 0 0
  1.  class GcmMessageHandler : IntentService("GcmMessageHandler") {
  2.  
  3.     var mes: String? = null
  4.     private var handler: Handler? = null
  5.  
  6.     override fun onCreate() {
  7.         super.onCreate()
  8.         handler = Handler()
  9.     }
  10.  
  11.     override fun onHandleIntent(intent: Intent) {
  12.         val extras = intent.extras
  13.         val gcm = GoogleCloudMessaging.getInstance(this)
  14.         // The getMessageType() intent parameter must be the intent you received
  15.         // in your BroadcastReceiver.
  16.         val messageType = gcm.getMessageType(intent)
  17.  
  18.         mes = extras.getString("title")
  19.         // showToast();
  20.         if (mes != null) {
  21.             if(extras.getString("category")!=null && extras.getString("category").equals("work",true)) {
  22.                 if(!extras.getBoolean("urgently"))
  23.                   mes = "Работа: ${extras.getString("title")}"
  24.                 else mes = "Работа (срочно): ${extras.getString("title")}"
  25.             } else if (extras.getString("category")!=null && extras.getString("category").equals("ads",true)){
  26.                 if(extras.getString("subcategory")!=null && extras.getString("subcategory").equals("svady",true)){
  27.                     // some handler here
  28.                 }
  29.             }
  30.             showNotification(mes!!, extras.getString("message"),extras.getString("category") ?: "",extras.getString("link") ?: "")
  31.             Log.i("GCM", "Received : ($messageType) ${extras.getString("title")} ${extras.getString("message")} category:${extras.getString("category")}")
  32.         }
  33.  
  34.         GcmBroadcastReceiver.completeWakefulIntent(intent)
  35.  
  36.     }
  37.  
  38.      fun showNotification(title: String, message: String,category: String?, link: String?) {
  39.         val mBuilder = NotificationCompat.Builder(this).setSmallIcon(R.mipmap.ic_launcher).setContentTitle(title).setContentText(message)
  40.  
  41.         val resultIntent = intentFor<MainActivity>()
  42.         resultIntent.putExtra("openNotifications", true)
  43.         resultIntent.putExtra("category",category)
  44.         resultIntent.putExtra("link",link)
  45.  
  46.         val resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT)
  47.         mBuilder.setContentIntent(resultPendingIntent)
  48.         mBuilder.setAutoCancel(true)
  49.  
  50.         val random = Random()
  51.         val mNotificationId = random.nextInt(9999-1000)+1000
  52.  
  53.         notificationManager.notify(mNotificationId, mBuilder.build())
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement