Inline remote delete feature flag.
parent
3fcaddf2d3
commit
c80283dbcc
|
@ -665,53 +665,7 @@ public class ConversationFragment extends LoggingFragment {
|
||||||
|
|
||||||
private void handleDeleteMessages(final Set<ConversationMessage> conversationMessages) {
|
private void handleDeleteMessages(final Set<ConversationMessage> conversationMessages) {
|
||||||
Set<MessageRecord> messageRecords = Stream.of(conversationMessages).map(ConversationMessage::getMessageRecord).collect(Collectors.toSet());
|
Set<MessageRecord> messageRecords = Stream.of(conversationMessages).map(ConversationMessage::getMessageRecord).collect(Collectors.toSet());
|
||||||
if (FeatureFlags.remoteDelete()) {
|
buildRemoteDeleteConfirmationDialog(messageRecords).show();
|
||||||
buildRemoteDeleteConfirmationDialog(messageRecords).show();
|
|
||||||
} else {
|
|
||||||
buildLegacyDeleteConfirmationDialog(messageRecords).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private AlertDialog.Builder buildLegacyDeleteConfirmationDialog(Set<MessageRecord> messageRecords) {
|
|
||||||
int messagesCount = messageRecords.size();
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
|
||||||
|
|
||||||
builder.setIconAttribute(R.attr.dialog_alert_icon);
|
|
||||||
builder.setTitle(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_delete_selected_messages, messagesCount, messagesCount));
|
|
||||||
builder.setMessage(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_this_will_permanently_delete_all_n_selected_messages, messagesCount, messagesCount));
|
|
||||||
builder.setCancelable(true);
|
|
||||||
|
|
||||||
builder.setPositiveButton(R.string.delete, (dialog, which) -> {
|
|
||||||
new ProgressDialogAsyncTask<Void, Void, Void>(getActivity(),
|
|
||||||
R.string.ConversationFragment_deleting,
|
|
||||||
R.string.ConversationFragment_deleting_messages)
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... voids) {
|
|
||||||
for (MessageRecord messageRecord : messageRecords) {
|
|
||||||
boolean threadDeleted;
|
|
||||||
|
|
||||||
if (messageRecord.isMms()) {
|
|
||||||
threadDeleted = DatabaseFactory.getMmsDatabase(getActivity()).deleteMessage(messageRecord.getId());
|
|
||||||
} else {
|
|
||||||
threadDeleted = DatabaseFactory.getSmsDatabase(getActivity()).deleteMessage(messageRecord.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (threadDeleted) {
|
|
||||||
threadId = -1;
|
|
||||||
conversationViewModel.clearThreadId();
|
|
||||||
messageCountsViewModel.clearThreadId();
|
|
||||||
listener.setThreadId(threadId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setNegativeButton(android.R.string.cancel, null);
|
|
||||||
return builder;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private AlertDialog.Builder buildRemoteDeleteConfirmationDialog(Set<MessageRecord> messageRecords) {
|
private AlertDialog.Builder buildRemoteDeleteConfirmationDialog(Set<MessageRecord> messageRecords) {
|
||||||
|
|
|
@ -48,7 +48,6 @@ public final class FeatureFlags {
|
||||||
private static final long FETCH_INTERVAL = TimeUnit.HOURS.toMillis(2);
|
private static final long FETCH_INTERVAL = TimeUnit.HOURS.toMillis(2);
|
||||||
|
|
||||||
private static final String USERNAMES = "android.usernames";
|
private static final String USERNAMES = "android.usernames";
|
||||||
private static final String REMOTE_DELETE = "android.remoteDelete";
|
|
||||||
private static final String GROUPS_V2_CREATE_VERSION = "android.groupsv2.createVersion";
|
private static final String GROUPS_V2_CREATE_VERSION = "android.groupsv2.createVersion";
|
||||||
private static final String GROUPS_V2_JOIN_VERSION = "android.groupsv2.joinVersion";
|
private static final String GROUPS_V2_JOIN_VERSION = "android.groupsv2.joinVersion";
|
||||||
private static final String GROUPS_V2_LINKS_VERSION = "android.groupsv2.manageGroupLinksVersion";
|
private static final String GROUPS_V2_LINKS_VERSION = "android.groupsv2.manageGroupLinksVersion";
|
||||||
|
@ -66,7 +65,6 @@ public final class FeatureFlags {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private static final Set<String> REMOTE_CAPABLE = Sets.newHashSet(
|
private static final Set<String> REMOTE_CAPABLE = Sets.newHashSet(
|
||||||
REMOTE_DELETE,
|
|
||||||
GROUPS_V2_CREATE_VERSION,
|
GROUPS_V2_CREATE_VERSION,
|
||||||
GROUPS_V2_CAPACITY,
|
GROUPS_V2_CAPACITY,
|
||||||
GROUPS_V2_JOIN_VERSION,
|
GROUPS_V2_JOIN_VERSION,
|
||||||
|
@ -174,11 +172,6 @@ public final class FeatureFlags {
|
||||||
return getBoolean(USERNAMES, false);
|
return getBoolean(USERNAMES, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Send support for remotely deleting a message. */
|
|
||||||
public static boolean remoteDelete() {
|
|
||||||
return getBoolean(REMOTE_DELETE, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Attempt groups v2 creation. */
|
/** Attempt groups v2 creation. */
|
||||||
public static boolean groupsV2create() {
|
public static boolean groupsV2create() {
|
||||||
return getVersionFlag(GROUPS_V2_CREATE_VERSION) == VersionFlag.ON &&
|
return getVersionFlag(GROUPS_V2_CREATE_VERSION) == VersionFlag.ON &&
|
||||||
|
|
Loading…
Reference in New Issue