Add rendering and handling for various disabled input states in CFv2.

This commit is contained in:
Cody Henthorne
2023-05-22 20:33:31 -04:00
committed by Nicholas
parent ad50c81a6b
commit 1099128513
17 changed files with 668 additions and 245 deletions

View File

@@ -4,11 +4,14 @@ import android.content.Context
import androidx.core.util.Consumer
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.schedulers.Schedulers
import org.signal.core.util.Result
import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.contacts.sync.ContactDiscovery
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.groups.GroupChangeBusyException
import org.thoughtcrime.securesms.groups.GroupChangeException
import org.thoughtcrime.securesms.groups.GroupChangeFailedException
import org.thoughtcrime.securesms.groups.GroupId
import org.thoughtcrime.securesms.groups.GroupManager
import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason
@@ -77,4 +80,22 @@ class GroupManagementRepository @JvmOverloads constructor(private val context: C
}
}.subscribeOn(Schedulers.io())
}
fun cancelJoinRequest(groupId: GroupId.V2): Single<Result<Unit, GroupChangeFailureReason>> {
return Single.create { emitter ->
try {
GroupManager.cancelJoinRequest(context, groupId)
emitter.onSuccess(Result.success(Unit))
} catch (gcfe: GroupChangeFailedException) {
Log.i(TAG, "Unable to cancel request", gcfe)
emitter.onSuccess(Result.failure(GroupChangeFailureReason.fromException(gcfe)))
} catch (ioe: IOException) {
Log.i(TAG, "Unable to cancel request", ioe)
emitter.onSuccess(Result.failure(GroupChangeFailureReason.fromException(ioe)))
} catch (gcbe: GroupChangeBusyException) {
Log.i(TAG, "Unable to cancel request", gcbe)
emitter.onSuccess(Result.failure(GroupChangeFailureReason.fromException(gcbe)))
}
}.subscribeOn(Schedulers.io())
}
}