Loading presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivityModule.kt +6 −6 Original line number Diff line number Diff line Loading @@ -42,13 +42,11 @@ class ComposeActivityModule { fun provideThreadId(activity: ComposeActivity): Long = activity.intent.extras?.getLong("threadId") ?: 0L @Provides @Named("address") fun provideAddress(activity: ComposeActivity): String { var address = "" @Named("addresses") fun provideAddresses(activity: ComposeActivity): List<String> { activity.intent.data?.let { val data = it.toString() address = when { var address = when { it.scheme?.startsWith("smsto") == true -> data.replace("smsto:", "") it.scheme?.startsWith("mmsto") == true -> data.replace("mmsto:", "") it.scheme?.startsWith("sms") == true -> data.replace("sms:", "") Loading @@ -58,9 +56,11 @@ class ComposeActivityModule { // The dialer app on Oreo sends a URL encoded string, make sure to decode it if (address.contains('%')) address = URLDecoder.decode(address, "UTF-8") return address.split(",") } return address return listOf() } @Provides Loading presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt +5 −5 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ import javax.inject.Named class ComposeViewModel @Inject constructor( @Named("query") private val query: String, @Named("threadId") private val threadId: Long, @Named("address") private val address: String, @Named("addresses") private val addresses: List<String>, @Named("text") private val sharedText: String, @Named("attachments") private val sharedAttachments: Attachments, private val contactRepo: ContactRepository, Loading @@ -96,7 +96,7 @@ class ComposeViewModel @Inject constructor( private val sendMessage: SendMessage, private val subscriptionManager: SubscriptionManagerCompat ) : QkViewModel<ComposeView, ComposeState>(ComposeState( editingMode = threadId == 0L && address.isBlank(), editingMode = threadId == 0L && addresses.isEmpty(), selectedConversation = threadId, query = query) ) { Loading @@ -109,7 +109,7 @@ class ComposeViewModel @Inject constructor( private val searchResults: Subject<List<Message>> = BehaviorSubject.create() private val searchSelection: Subject<Long> = BehaviorSubject.createDefault(-1) private var shouldShowContacts = threadId == 0L && address.isBlank() private var shouldShowContacts = threadId == 0L && addresses.isEmpty() init { val initialConversation = threadId.takeIf { it != 0L } Loading Loading @@ -160,8 +160,8 @@ class ComposeViewModel @Inject constructor( .filter { conversation -> conversation.isValid } .subscribe(conversation::onNext) if (address.isNotBlank()) { selectedChips.onNext(listOf(Chip(address))) if (addresses.isNotEmpty()) { selectedChips.onNext(addresses.map { address -> Chip(address) }) } disposables += chipsReducer Loading Loading
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivityModule.kt +6 −6 Original line number Diff line number Diff line Loading @@ -42,13 +42,11 @@ class ComposeActivityModule { fun provideThreadId(activity: ComposeActivity): Long = activity.intent.extras?.getLong("threadId") ?: 0L @Provides @Named("address") fun provideAddress(activity: ComposeActivity): String { var address = "" @Named("addresses") fun provideAddresses(activity: ComposeActivity): List<String> { activity.intent.data?.let { val data = it.toString() address = when { var address = when { it.scheme?.startsWith("smsto") == true -> data.replace("smsto:", "") it.scheme?.startsWith("mmsto") == true -> data.replace("mmsto:", "") it.scheme?.startsWith("sms") == true -> data.replace("sms:", "") Loading @@ -58,9 +56,11 @@ class ComposeActivityModule { // The dialer app on Oreo sends a URL encoded string, make sure to decode it if (address.contains('%')) address = URLDecoder.decode(address, "UTF-8") return address.split(",") } return address return listOf() } @Provides Loading
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt +5 −5 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ import javax.inject.Named class ComposeViewModel @Inject constructor( @Named("query") private val query: String, @Named("threadId") private val threadId: Long, @Named("address") private val address: String, @Named("addresses") private val addresses: List<String>, @Named("text") private val sharedText: String, @Named("attachments") private val sharedAttachments: Attachments, private val contactRepo: ContactRepository, Loading @@ -96,7 +96,7 @@ class ComposeViewModel @Inject constructor( private val sendMessage: SendMessage, private val subscriptionManager: SubscriptionManagerCompat ) : QkViewModel<ComposeView, ComposeState>(ComposeState( editingMode = threadId == 0L && address.isBlank(), editingMode = threadId == 0L && addresses.isEmpty(), selectedConversation = threadId, query = query) ) { Loading @@ -109,7 +109,7 @@ class ComposeViewModel @Inject constructor( private val searchResults: Subject<List<Message>> = BehaviorSubject.create() private val searchSelection: Subject<Long> = BehaviorSubject.createDefault(-1) private var shouldShowContacts = threadId == 0L && address.isBlank() private var shouldShowContacts = threadId == 0L && addresses.isEmpty() init { val initialConversation = threadId.takeIf { it != 0L } Loading Loading @@ -160,8 +160,8 @@ class ComposeViewModel @Inject constructor( .filter { conversation -> conversation.isValid } .subscribe(conversation::onNext) if (address.isNotBlank()) { selectedChips.onNext(listOf(Chip(address))) if (addresses.isNotEmpty()) { selectedChips.onNext(addresses.map { address -> Chip(address) }) } disposables += chipsReducer Loading