1010
1111package com.xtreak.notificationdictionary
1212
13+ import android.Manifest
1314import android.app.NotificationChannel
1415import android.app.NotificationManager
1516import android.app.ProgressDialog
@@ -24,8 +25,10 @@ import android.view.View
2425import android.view.inputmethod.EditorInfo
2526import android.widget.*
2627import android.widget.TextView.OnEditorActionListener
28+ import androidx.activity.result.contract.ActivityResultContracts
2729import androidx.appcompat.app.AlertDialog
2830import androidx.appcompat.app.AppCompatActivity
31+ import androidx.core.app.ActivityCompat
2932import androidx.core.view.MenuItemCompat
3033import androidx.recyclerview.widget.LinearLayoutManager
3134import androidx.recyclerview.widget.RecyclerView
@@ -46,6 +49,8 @@ class MainActivity : AppCompatActivity() {
4649
4750 private lateinit var progress_dialog: ProgressDialog
4851 private val CHANNEL_ID = " Dictionary"
52+ private val NOTIFICATION_REQUEST_CODE = 11
53+
4954
5055 override fun onCreate (savedInstanceState : Bundle ? ) {
5156 super .onCreate(savedInstanceState)
@@ -137,7 +142,11 @@ class MainActivity : AppCompatActivity() {
137142 done in my free time apart from my day job along with download costs for database files
138143 from CDN. If you find the app useful please leave a review in Play store and share the
139144 app with your friends. It will help and encourage me in maintaining the app and adding more features.
140- Thanks."""
145+
146+ Please grant notification permission since the app requires notification permission in
147+ Android 13+ to show meanings through notification.
148+ Thanks for your support.
149+ """
141150 )
142151 ), this
143152 )
@@ -146,6 +155,10 @@ class MainActivity : AppCompatActivity() {
146155 initialize_spinner(database_name)
147156 // show_changelog()
148157 onNewIntent(intent)
158+
159+ // Request notification permission in Android 33+
160+ // https://developer.android.com/develop/ui/views/notifications/notification-permission
161+ requestNotificationPermission()
149162 }
150163
151164 private fun setIMEAction () {
@@ -485,6 +498,19 @@ class MainActivity : AppCompatActivity() {
485498 }
486499 }
487500
501+ private fun requestNotificationPermission () {
502+ val notificationManager: NotificationManager =
503+ getSystemService(Context .NOTIFICATION_SERVICE ) as NotificationManager
504+
505+ if (Build .VERSION .SDK_INT >= 33 && ! notificationManager.areNotificationsEnabled()) {
506+ ActivityCompat .requestPermissions(
507+ this ,
508+ arrayOf(Manifest .permission.POST_NOTIFICATIONS ),
509+ NOTIFICATION_REQUEST_CODE
510+ )
511+ }
512+ }
513+
488514 fun sendMessage (view : View ) {
489515 val wordEdit = findViewById<EditText >(R .id.wordInput)
490516
0 commit comments