diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 09b2ae66..2acc6262 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,14 @@
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 c01680ad..59bbbb4f 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt
@@ -1,13 +1,17 @@
package com.simplemobiletools.smsmessenger.activities
+import android.app.Activity
import android.content.Intent
import android.os.Bundle
+import android.provider.Telephony
+import android.util.Log
import android.view.Menu
import android.view.MenuItem
import com.simplemobiletools.commons.extensions.appLaunched
import com.simplemobiletools.commons.extensions.checkAppSideloading
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
import com.simplemobiletools.commons.helpers.PERMISSION_READ_SMS
+import com.simplemobiletools.commons.helpers.isQPlus
import com.simplemobiletools.commons.models.FAQItem
import com.simplemobiletools.smsmessenger.BuildConfig
import com.simplemobiletools.smsmessenger.R
@@ -22,6 +26,7 @@ import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : SimpleActivity() {
private var storedTextColor = 0
+ private val MAKE_DEFAULT_APP_REQUEST = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -32,14 +37,13 @@ class MainActivity : SimpleActivity() {
return
}
- // while READ_SMS permission is mandatory, READ_CONTACTS is optional. If we don't have it, we just won't be able to show the contact name in some cases
- handlePermission(PERMISSION_READ_SMS) {
- if (it) {
- handlePermission(PERMISSION_READ_CONTACTS) {
- initMessenger()
- }
+ if (Telephony.Sms.getDefaultSmsPackage(this) != packageName) {
+ if (isQPlus()) {
+
} else {
- finish()
+ val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
+ intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
+ startActivityForResult(intent, MAKE_DEFAULT_APP_REQUEST)
}
}
}
@@ -70,10 +74,34 @@ class MainActivity : SimpleActivity() {
return true
}
+ override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
+ super.onActivityResult(requestCode, resultCode, resultData)
+ if (requestCode == MAKE_DEFAULT_APP_REQUEST) {
+ if (resultCode == Activity.RESULT_OK) {
+ askPermissions()
+ } else {
+ finish()
+ }
+ }
+ }
+
private fun storeStateVariables() {
storedTextColor = config.textColor
}
+ // while READ_SMS permission is mandatory, READ_CONTACTS is optional. If we don't have it, we just won't be able to show the contact name in some cases
+ private fun askPermissions() {
+ handlePermission(PERMISSION_READ_SMS) {
+ if (it) {
+ handlePermission(PERMISSION_READ_CONTACTS) {
+ initMessenger()
+ }
+ } else {
+ finish()
+ }
+ }
+ }
+
private fun initMessenger() {
storeStateVariables()
val messages = getMessages()
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewMessageActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewMessageActivity.kt
new file mode 100644
index 00000000..292edfa7
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewMessageActivity.kt
@@ -0,0 +1,23 @@
+package com.simplemobiletools.smsmessenger.activities
+
+import android.os.Bundle
+import com.simplemobiletools.commons.extensions.applyColorFilter
+import com.simplemobiletools.commons.extensions.onTextChangeListener
+import com.simplemobiletools.commons.extensions.value
+import com.simplemobiletools.smsmessenger.R
+import com.simplemobiletools.smsmessenger.adapters.ThreadAdapter
+import com.simplemobiletools.smsmessenger.extensions.config
+import com.simplemobiletools.smsmessenger.extensions.getMessages
+import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
+import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
+import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER
+import com.simplemobiletools.smsmessenger.models.ThreadDateTime
+import com.simplemobiletools.smsmessenger.models.ThreadItem
+import kotlinx.android.synthetic.main.activity_thread.*
+
+class NewMessageActivity : SimpleActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_new_message)
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt
new file mode 100644
index 00000000..854120a9
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt
@@ -0,0 +1,11 @@
+package com.simplemobiletools.smsmessenger.receivers
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+
+class MmsReceiver : BroadcastReceiver() {
+ override fun onReceive(context: Context, intent: Intent) {
+
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt
new file mode 100644
index 00000000..3f4cb950
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt
@@ -0,0 +1,11 @@
+package com.simplemobiletools.smsmessenger.receivers
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+
+class SmsReceiver : BroadcastReceiver() {
+ override fun onReceive(context: Context, intent: Intent) {
+
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt
new file mode 100644
index 00000000..f5a4d05b
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/services/HeadlessSmsSendService.kt
@@ -0,0 +1,11 @@
+package com.simplemobiletools.smsmessenger.services
+
+import android.app.Service
+import android.content.Intent
+import android.os.IBinder
+
+class HeadlessSmsSendService : Service() {
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+}
diff --git a/app/src/main/res/layout/activity_new_message.xml b/app/src/main/res/layout/activity_new_message.xml
new file mode 100644
index 00000000..ed3b386b
--- /dev/null
+++ b/app/src/main/res/layout/activity_new_message.xml
@@ -0,0 +1,7 @@
+
+
+
+