@@ -7,6 +7,7 @@ import android.app.NotificationManager
77import android.content.Context
88import android.content.Intent
99import android.content.pm.PackageManager
10+ import android.os.Build
1011import android.os.Bundle
1112import android.telephony.PhoneNumberUtils
1213import android.view.View
@@ -15,6 +16,8 @@ import android.widget.Toast
1516import androidx.activity.result.contract.ActivityResultContracts
1617import androidx.appcompat.app.AppCompatActivity
1718import androidx.core.app.ActivityCompat
19+ import androidx.core.app.NotificationCompat
20+ import androidx.core.app.NotificationManagerCompat
1821import androidx.lifecycle.MutableLiveData
1922import androidx.work.ExistingPeriodicWorkPolicy
2023import androidx.work.PeriodicWorkRequestBuilder
@@ -26,6 +29,7 @@ import com.google.android.material.switchmaterial.SwitchMaterial
2629import com.httpsms.services.StickyNotificationService
2730import com.httpsms.worker.HeartbeatWorker
2831import okhttp3.internal.format
32+ import okhttp3.internal.notify
2933import timber.log.Timber
3034import java.time.Instant
3135import java.time.ZoneId
@@ -37,9 +41,6 @@ import java.util.concurrent.TimeUnit
3741
3842
3943class MainActivity : AppCompatActivity () {
40- private val sentReceiver = SentReceiver ()
41- private val deliveredReceiver = DeliveredReceiver ()
42-
4344 override fun onCreate (savedInstanceState : Bundle ? ) {
4445 super .onCreate(savedInstanceState)
4546
@@ -224,7 +225,10 @@ class MainActivity : AppCompatActivity() {
224225 ) == PackageManager .PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(
225226 context,
226227 Manifest .permission.READ_PHONE_STATE
227- ) == PackageManager .PERMISSION_GRANTED
228+ ) == PackageManager .PERMISSION_GRANTED && (Build .VERSION .SDK_INT < 33 || ActivityCompat .checkSelfPermission(
229+ context,
230+ Manifest .permission.POST_NOTIFICATIONS
231+ ) == PackageManager .PERMISSION_GRANTED )
228232 ) {
229233 return true
230234 }
@@ -266,16 +270,20 @@ class MainActivity : AppCompatActivity() {
266270 }
267271 }
268272
269- requestPermissionLauncher.launch(
270- arrayOf(
271- Manifest .permission.SEND_SMS ,
272- Manifest .permission.RECEIVE_SMS ,
273- READ_PHONE_NUMBERS ,
274- Manifest .permission.READ_SMS ,
275- Manifest .permission.READ_PHONE_STATE
276- )
273+ var permissions = arrayOf(
274+ Manifest .permission.SEND_SMS ,
275+ Manifest .permission.RECEIVE_SMS ,
276+ READ_PHONE_NUMBERS ,
277+ Manifest .permission.READ_SMS ,
278+ Manifest .permission.READ_PHONE_STATE
277279 )
278280
281+ if (Build .VERSION .SDK_INT >= 33 ) {
282+ permissions + = Manifest .permission.POST_NOTIFICATIONS
283+ }
284+
285+ requestPermissionLauncher.launch(permissions)
286+
279287 Timber .d(" creating permissions launcher" )
280288 }
281289
@@ -304,6 +312,7 @@ class MainActivity : AppCompatActivity() {
304312 return @run
305313 }
306314 Toast .makeText(context, " Heartbeat Sent" , Toast .LENGTH_SHORT ).show()
315+
307316 setLastHeartbeatTimestamp(this )
308317 }
309318 }
0 commit comments