diff --git a/app/build.gradle b/app/build.gradle index c67d04f8..6f7fe592 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,5 +36,5 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.24.10' + implementation 'com.simplemobiletools:commons:5.24.11' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a74bfebd..b5bbe503 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" package="com.simplemobiletools.smsmessenger"> + diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index f0b18d67..5e0d0ab2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -1,14 +1,17 @@ package com.simplemobiletools.smsmessenger.activities import android.content.Intent +import android.database.Cursor import android.os.Bundle +import android.provider.Telephony import android.view.Menu import android.view.MenuItem -import com.simplemobiletools.commons.extensions.appLaunched -import com.simplemobiletools.commons.extensions.checkAppSideloading +import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.PERMISSION_READ_SMS import com.simplemobiletools.commons.models.FAQItem import com.simplemobiletools.smsmessenger.BuildConfig import com.simplemobiletools.smsmessenger.R +import com.simplemobiletools.smsmessenger.models.SMS class MainActivity : SimpleActivity() { @@ -20,6 +23,14 @@ class MainActivity : SimpleActivity() { if (checkAppSideloading()) { return } + + handlePermission(PERMISSION_READ_SMS) { + if (it) { + initMessenger() + } else { + finish() + } + } } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -36,6 +47,47 @@ class MainActivity : SimpleActivity() { return true } + private fun initMessenger() { + val sms = getSMSs() + } + + private fun getSMSs(): ArrayList { + val smss = ArrayList() + val uri = Telephony.Sms.CONTENT_URI + val projection = arrayOf( + Telephony.Sms._ID, + Telephony.Sms.SUBJECT, + Telephony.Sms.BODY, + Telephony.Sms.TYPE, + Telephony.Sms.ADDRESS, + Telephony.Sms.DATE, + Telephony.Sms.READ + ) + + var cursor: Cursor? = null + try { + cursor = contentResolver.query(uri, projection, null, null, null) + if (cursor?.moveToFirst() == true) { + do { + val id = cursor.getIntValue(Telephony.Sms._ID) + val subject = cursor.getStringValue(Telephony.Sms.SUBJECT) ?: "" + val body = cursor.getStringValue(Telephony.Sms.BODY) + val type = cursor.getIntValue(Telephony.Sms.TYPE) + val address = cursor.getStringValue(Telephony.Sms.ADDRESS) + val date = (cursor.getLongValue(Telephony.Sms.DATE) / 1000).toInt() + val read = cursor.getIntValue(Telephony.Sms.READ) == 1 + val sms = SMS(id, subject, body, type, address, date, read) + smss.add(sms) + } while (cursor.moveToNext()) + } + } catch (e: Exception) { + showErrorToast(e) + } finally { + cursor?.close() + } + return smss + } + private fun launchSettings() { startActivity(Intent(applicationContext, SettingsActivity::class.java)) } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt new file mode 100644 index 00000000..7baffd96 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt @@ -0,0 +1,3 @@ +package com.simplemobiletools.smsmessenger.models + +data class SMS(val id: Int, val subject: String, val body: String, val type: Int, val address: String, val date: Int, val read: Boolean)