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

@@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.WorkerThread;
import androidx.core.util.Consumer;
import org.signal.core.util.Result;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.signal.storageservice.protos.groups.local.DecryptedGroup;
@@ -24,7 +25,6 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceMessageRequestResponseJob;
import org.thoughtcrime.securesms.jobs.ReportSpamJob;
import org.thoughtcrime.securesms.jobs.SendViewedReceiptJob;
import org.thoughtcrime.securesms.notifications.MarkReadReceiver;
import org.thoughtcrime.securesms.recipients.LiveRecipient;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.recipients.RecipientUtil;
@@ -38,6 +38,11 @@ import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executor;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.Single;
import io.reactivex.rxjava3.schedulers.Schedulers;
import kotlin.Unit;
public final class MessageRequestRepository {
private static final String TAG = Log.tag(MessageRequestRepository.class);
@@ -149,6 +154,19 @@ public final class MessageRequestRepository {
}
}
@SuppressWarnings("unchecked")
public @NonNull Single<Result<Unit, GroupChangeFailureReason>> acceptMessageRequest(@NonNull RecipientId recipientId, long threadId) {
//noinspection CodeBlock2Expr
return Single.<Result<Unit, GroupChangeFailureReason>>create(emitter -> {
acceptMessageRequest(
recipientId,
threadId,
() -> emitter.onSuccess(Result.success(Unit.INSTANCE)),
reason -> emitter.onSuccess(Result.failure(reason))
);
}).subscribeOn(Schedulers.io());
}
public void acceptMessageRequest(@NonNull RecipientId recipientId,
long threadId,
@NonNull Runnable onMessageRequestAccepted,
@@ -192,6 +210,19 @@ public final class MessageRequestRepository {
});
}
@SuppressWarnings("unchecked")
public @NonNull Single<Result<Unit, GroupChangeFailureReason>> deleteMessageRequest(@NonNull RecipientId recipientId, long threadId) {
//noinspection CodeBlock2Expr
return Single.<Result<Unit, GroupChangeFailureReason>>create(emitter -> {
deleteMessageRequest(
recipientId,
threadId,
() -> emitter.onSuccess(Result.success(Unit.INSTANCE)),
reason -> emitter.onSuccess(Result.failure(reason))
);
}).subscribeOn(Schedulers.io());
}
public void deleteMessageRequest(@NonNull RecipientId recipientId,
long threadId,
@NonNull Runnable onMessageRequestDeleted,
@@ -229,6 +260,18 @@ public final class MessageRequestRepository {
});
}
@SuppressWarnings("unchecked")
public @NonNull Single<Result<Unit, GroupChangeFailureReason>> blockMessageRequest(@NonNull RecipientId recipientId) {
//noinspection CodeBlock2Expr
return Single.<Result<Unit, GroupChangeFailureReason>>create(emitter -> {
blockMessageRequest(
recipientId,
() -> emitter.onSuccess(Result.success(Unit.INSTANCE)),
reason -> emitter.onSuccess(Result.failure(reason))
);
}).subscribeOn(Schedulers.io());
}
public void blockMessageRequest(@NonNull RecipientId recipientId,
@NonNull Runnable onMessageRequestBlocked,
@NonNull GroupChangeErrorCallback error)
@@ -252,6 +295,19 @@ public final class MessageRequestRepository {
});
}
@SuppressWarnings("unchecked")
public @NonNull Single<Result<Unit, GroupChangeFailureReason>> blockAndReportSpamMessageRequest(@NonNull RecipientId recipientId, long threadId) {
//noinspection CodeBlock2Expr
return Single.<Result<Unit, GroupChangeFailureReason>>create(emitter -> {
blockAndReportSpamMessageRequest(
recipientId,
threadId,
() -> emitter.onSuccess(Result.success(Unit.INSTANCE)),
reason -> emitter.onSuccess(Result.failure(reason))
);
}).subscribeOn(Schedulers.io());
}
public void blockAndReportSpamMessageRequest(@NonNull RecipientId recipientId,
long threadId,
@NonNull Runnable onMessageRequestBlocked,
@@ -278,6 +334,17 @@ public final class MessageRequestRepository {
});
}
@SuppressWarnings("unchecked")
public @NonNull Single<Result<Unit, GroupChangeFailureReason>> unblockAndAccept(@NonNull RecipientId recipientId) {
//noinspection CodeBlock2Expr
return Single.<Result<Unit, GroupChangeFailureReason>>create(emitter -> {
unblockAndAccept(
recipientId,
() -> emitter.onSuccess(Result.success(Unit.INSTANCE))
);
}).subscribeOn(Schedulers.io());
}
public void unblockAndAccept(@NonNull RecipientId recipientId, @NonNull Runnable onMessageRequestUnblocked) {
executor.execute(() -> {
Recipient recipient = Recipient.resolved(recipientId);

View File

@@ -43,6 +43,7 @@ public class MessageRequestsBottomView extends ConstraintLayout {
public MessageRequestsBottomView(Context context) {
super(context);
onFinishInflate();
}
public MessageRequestsBottomView(Context context, AttributeSet attrs) {