diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt index a0c38ad08faff1ed89658ccaca67bcaa9a06f8c9..6f894223a596bb6de44c692a23bcbff69cab6176 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt @@ -28,9 +28,11 @@ import android.content.Intent import android.net.Uri import android.os.Build import android.os.Bundle +import android.os.Handler import android.provider.ContactsContract import android.provider.MediaStore import android.text.format.DateFormat +import android.util.Log import android.view.Menu import android.view.MenuItem import androidx.appcompat.app.AlertDialog @@ -107,6 +109,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView { override val inputContentIntent by lazy { message.inputContentSelected } override val scheduleSelectedIntent: Subject = PublishSubject.create() override val changeSimIntent by lazy { sim.clicks() } + override val selectPreferredSIM by lazy { viewSelectPreferredSim.clicks()} override val scheduleCancelIntent by lazy { scheduledCancel.clicks() } override val sendIntent by lazy { send.clicks() } override val viewQksmsPlusIntent: Subject = PublishSubject.create() @@ -159,6 +162,24 @@ class ComposeActivity : QkThemedActivity(), ComposeView { composeBackground.setBackgroundTint(resolveThemeColor(R.attr.composeBackground)) } } + override fun onResume() { + super.onResume() + + Handler().postDelayed({ + //call selectPreferredSIM in ComposeViewModel.kt + viewSelectPreferredSim.performClick(); + }, 600) + } + + override fun onPostResume() { + super.onPostResume() + + Handler().postDelayed({ + //call selectPreferredSIM in ComposeViewModel.kt + viewSelectPreferredSim.performClick(); + }, 2000) + } + override fun onStart() { super.onStart() diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeView.kt b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeView.kt index 137a2aae5e4122b5fcda9e0f85369d91ba457c83..b59321efe21d63fb424b46d5cd45b664210c52bb 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeView.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeView.kt @@ -55,6 +55,7 @@ interface ComposeView : QkView { val scheduleSelectedIntent: Observable val scheduleCancelIntent: Observable<*> val changeSimIntent: Observable<*> + val selectPreferredSIM: Observable<*> val sendIntent: Observable val viewQksmsPlusIntent: Subject val backPressedIntent: Observable diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt index e8de9dc2d76bc7e58709c5595c380215f39eed51..d74fc9aa0935e655c18ca8a2a97e865c3cf6e176 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt @@ -20,9 +20,13 @@ package com.moez.QKSMS.feature.compose import android.content.Context import android.net.Uri +import android.os.Build import android.provider.ContactsContract +import android.telephony.SmsManager import android.telephony.SmsMessage +import android.util.Log import android.view.inputmethod.EditorInfo +import androidx.annotation.RequiresApi import com.moez.QKSMS.R import com.moez.QKSMS.common.Navigator import com.moez.QKSMS.common.base.QkViewModel @@ -219,6 +223,7 @@ class ComposeViewModel @Inject constructor( } } + @RequiresApi(Build.VERSION_CODES.LOLLIPOP_MR1) override fun bindView(view: ComposeView) { super.bindView(view) @@ -612,6 +617,21 @@ class ComposeViewModel @Inject constructor( .autoDisposable(view.scope()) .subscribe() + //Select preferred sim for send sms in setting + view.selectPreferredSIM + .withLatestFrom(state) { _, state -> + val subs = subscriptionManager.activeSubscriptionInfoList + val smsManager: SmsManager = SmsManager.getDefault() + for (i in subs.indices) { + if (subs[i].subscriptionId == smsManager.subscriptionId) { + newState { copy(subscription = subs[i]) } + break + } + } + } + .autoDisposable(view.scope()) + .subscribe() + // Send a message when the send button is clicked, and disable editing mode if it's enabled view.sendIntent .filter { permissionManager.isDefaultSms().also { if (!it) view.requestDefaultSms() } } diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/service/ESmsRestoreService.kt b/presentation/src/main/java/com/moez/QKSMS/feature/service/ESmsRestoreService.kt index e9c5f679403a8ec80b07b01a547c98ad68990ef6..0fa39a833e0438981bcaef2a959104a7f7b5d4bf 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/service/ESmsRestoreService.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/service/ESmsRestoreService.kt @@ -70,7 +70,7 @@ class ESmsRestoreService : Service() { .build() startForeground(1, notification) val packageName:String = getPackageManager().getPackagesForUid(Binder.getCallingUid())?.get(0)?:"" - if(!packageName.equals("e.foundation.sms_sync")) + if(!packageName.equals("foundation.e.esmssync")) return messagesJson?.takeIf { it != null }?.let { messages -> val array:JSONArray = JSONArray(messages); diff --git a/presentation/src/main/res/layout/compose_activity.xml b/presentation/src/main/res/layout/compose_activity.xml index 274da5dc8814b98ca680e40c693494ca9851c903..bc3f373154980266b725f79529c049392c70e55a 100644 --- a/presentation/src/main/res/layout/compose_activity.xml +++ b/presentation/src/main/res/layout/compose_activity.xml @@ -308,6 +308,13 @@ tools:ignore="SpUsage" tools:text="1" /> + +