1
1
package org.xmtp.android.example
2
2
3
+ import android.Manifest
3
4
import android.accounts.AccountManager
4
5
import android.content.ClipData
5
6
import android.content.ClipboardManager
6
7
import android.content.Context
7
8
import android.content.Intent
9
+ import android.content.pm.PackageManager
8
10
import android.os.Bundle
9
11
import android.view.Menu
10
12
import android.view.MenuItem
11
13
import android.view.View
12
14
import android.widget.Toast
13
15
import androidx.activity.viewModels
14
16
import androidx.appcompat.app.AppCompatActivity
17
+ import androidx.core.app.ActivityCompat
18
+ import androidx.core.content.ContextCompat
15
19
import androidx.lifecycle.Lifecycle
16
20
import androidx.lifecycle.lifecycleScope
17
21
import androidx.lifecycle.repeatOnLifecycle
@@ -28,6 +32,7 @@ import org.xmtp.android.example.pushnotifications.PushNotificationTokenManager
28
32
import org.xmtp.android.example.utils.KeyUtil
29
33
import org.xmtp.android.library.Conversation
30
34
35
+
31
36
class MainActivity : AppCompatActivity (),
32
37
ConversationsClickListener {
33
38
@@ -37,10 +42,12 @@ class MainActivity : AppCompatActivity(),
37
42
private lateinit var adapter: ConversationsAdapter
38
43
private var bottomSheet: NewConversationBottomSheet ? = null
39
44
private var groupBottomSheet: NewGroupBottomSheet ? = null
45
+ private val REQUEST_CODE_POST_NOTIFICATIONS = 101
40
46
41
47
override fun onCreate (savedInstanceState : Bundle ? ) {
42
48
super .onCreate(savedInstanceState)
43
49
accountManager = AccountManager .get(this )
50
+ checkAndRequestPermissions()
44
51
PushNotificationTokenManager .init (this , " 10.0.2.2:8080" )
45
52
viewModel.setupPush()
46
53
@@ -208,4 +215,18 @@ class MainActivity : AppCompatActivity(),
208
215
NewGroupBottomSheet .TAG
209
216
)
210
217
}
218
+
219
+ private fun checkAndRequestPermissions () {
220
+ if (ContextCompat .checkSelfPermission(
221
+ this ,
222
+ Manifest .permission.POST_NOTIFICATIONS
223
+ ) != PackageManager .PERMISSION_GRANTED
224
+ ) {
225
+ ActivityCompat .requestPermissions(
226
+ this ,
227
+ arrayOf(Manifest .permission.POST_NOTIFICATIONS ),
228
+ REQUEST_CODE_POST_NOTIFICATIONS
229
+ )
230
+ }
231
+ }
211
232
}
0 commit comments