mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 17:08:28 +00:00
Clean
This commit is contained in:
parent
9bd4a9e542
commit
4efe8fb040
@ -405,14 +405,16 @@ public class ConversationFragment extends Fragment
|
|||||||
}
|
}
|
||||||
menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage && hasText);
|
menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage && hasText);
|
||||||
|
|
||||||
boolean isGroupChat = recipient.isGroupRecipient(); // TODO: Figure out a better way of determining this
|
boolean isGroupChat = recipient.isGroupRecipient();
|
||||||
|
|
||||||
if (isGroupChat) {
|
if (isGroupChat) {
|
||||||
menu.findItem(R.id.menu_context_reply).setVisible(false);
|
menu.findItem(R.id.menu_context_reply).setVisible(false);
|
||||||
LokiAPIDatabase lokiAPIDatabase = DatabaseFactory.getLokiAPIDatabase(getContext());
|
LokiAPIDatabase lokiAPIDatabase = DatabaseFactory.getLokiAPIDatabase(getContext());
|
||||||
boolean isDeleteOptionVisible = recipient.getName().equals("Loki Public Chat") && messageRecords.size() == 1
|
boolean isLokiPublicChat = recipient.getName().equals("Loki Public Chat");
|
||||||
&& (((MessageRecord)messageRecords.toArray()[0]).isOutgoing()
|
int selectedMessageCount = messageRecords.size();
|
||||||
|| lokiAPIDatabase.isModerator(LokiGroupChatAPI.getPublicChatServerID(), LokiGroupChatAPI.getPublicChatServer()));
|
boolean isSentByUser = ((MessageRecord)messageRecords.toArray()[0]).isOutgoing();
|
||||||
|
boolean userCanModerate = lokiAPIDatabase.isModerator(LokiGroupChatAPI.getPublicChatServerID(), LokiGroupChatAPI.getPublicChatServer());
|
||||||
|
boolean isDeleteOptionVisible = isLokiPublicChat && selectedMessageCount == 1 && (isSentByUser || userCanModerate);
|
||||||
menu.findItem(R.id.menu_context_delete_message).setVisible(isDeleteOptionVisible);
|
menu.findItem(R.id.menu_context_delete_message).setVisible(isDeleteOptionVisible);
|
||||||
} else {
|
} else {
|
||||||
menu.findItem(R.id.menu_context_delete_message).setVisible(true);
|
menu.findItem(R.id.menu_context_delete_message).setVisible(true);
|
||||||
@ -500,6 +502,7 @@ public class ConversationFragment extends Fragment
|
|||||||
builder.setMessage(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_this_will_permanently_delete_all_n_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.setCancelable(true);
|
||||||
|
|
||||||
|
// Loki - The delete option is only visible to the user in a group chat if it's the Loki public chat
|
||||||
boolean isLokiPublicChat = this.recipient.isGroupRecipient();
|
boolean isLokiPublicChat = this.recipient.isGroupRecipient();
|
||||||
|
|
||||||
builder.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
|
||||||
@ -521,12 +524,12 @@ public class ConversationFragment extends Fragment
|
|||||||
LokiAPIDatabase lokiAPIDatabase = DatabaseFactory.getLokiAPIDatabase(getContext());
|
LokiAPIDatabase lokiAPIDatabase = DatabaseFactory.getLokiAPIDatabase(getContext());
|
||||||
LokiUserDatabase lokiUserDatabase = DatabaseFactory.getLokiUserDatabase(getContext());
|
LokiUserDatabase lokiUserDatabase = DatabaseFactory.getLokiUserDatabase(getContext());
|
||||||
byte[] userPrivateKey = IdentityKeyUtil.getIdentityKeyPair(getContext()).getPrivateKey().serialize();
|
byte[] userPrivateKey = IdentityKeyUtil.getIdentityKeyPair(getContext()).getPrivateKey().serialize();
|
||||||
|
boolean isSentByUser = messageRecord.isOutgoing();
|
||||||
Long serverID = DatabaseFactory.getLokiMessageDatabase(getContext()).getServerID(messageRecord.id);
|
Long serverID = DatabaseFactory.getLokiMessageDatabase(getContext()).getServerID(messageRecord.id);
|
||||||
|
|
||||||
if (serverID != null) {
|
if (serverID != null) {
|
||||||
new LokiGroupChatAPI(userHexEncodedPublicKey, userPrivateKey, lokiAPIDatabase, lokiUserDatabase)
|
new LokiGroupChatAPI(userHexEncodedPublicKey, userPrivateKey, lokiAPIDatabase, lokiUserDatabase)
|
||||||
.deleteMessage(serverID, LokiGroupChatAPI.getPublicChatServerID(), LokiGroupChatAPI.getPublicChatServer(), messageRecord.isOutgoing())
|
.deleteMessage(serverID, LokiGroupChatAPI.getPublicChatServerID(), LokiGroupChatAPI.getPublicChatServer(), isSentByUser)
|
||||||
.success(l -> {
|
.success(l -> {
|
||||||
@SuppressWarnings("unchecked") SettableFuture<Unit> f = (SettableFuture<Unit>) future[0];
|
@SuppressWarnings("unchecked") SettableFuture<Unit> f = (SettableFuture<Unit>) future[0];
|
||||||
f.set(Unit.INSTANCE);
|
f.set(Unit.INSTANCE);
|
||||||
@ -538,7 +541,7 @@ public class ConversationFragment extends Fragment
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@SuppressWarnings("unchecked") SettableFuture<Unit> f = (SettableFuture<Unit>) future[0];
|
@SuppressWarnings("unchecked") SettableFuture<Unit> f = (SettableFuture<Unit>) future[0];
|
||||||
f.setException(new Exception("Missing message server ID."));
|
f.setException(new Exception("Message server ID is null."));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -8,6 +8,8 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences
|
|||||||
import org.whispersystems.signalservice.loki.api.LokiAPIDatabaseProtocol
|
import org.whispersystems.signalservice.loki.api.LokiAPIDatabaseProtocol
|
||||||
import org.whispersystems.signalservice.loki.api.LokiAPITarget
|
import org.whispersystems.signalservice.loki.api.LokiAPITarget
|
||||||
|
|
||||||
|
// TODO: Clean this up a bit
|
||||||
|
|
||||||
class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiAPIDatabaseProtocol {
|
class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiAPIDatabaseProtocol {
|
||||||
|
|
||||||
private val userPublicKey get() = TextSecurePreferences.getLocalNumber(context)
|
private val userPublicKey get() = TextSecurePreferences.getLocalNumber(context)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user