mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-20 21:18:07 +00:00
Fix event in OneToOne chat room
This commit is contained in:
parent
11b656d602
commit
351138dabd
7 changed files with 94 additions and 65 deletions
|
|
@ -356,6 +356,12 @@ Vos amis pourront vous joindre plus facilement si vous associez votre compte à
|
|||
<string name="lime_encryption_entry_disabled">Désactivé</string>
|
||||
<string name="lime_encryption_entry_mandatory">Obligatoire</string>
|
||||
<string name="lime_encryption_entry_preferred">Préferré</string>
|
||||
<string name="security_level_degraded">Dégradation du niveau de sécurité</string>
|
||||
<string name="security_level_degraded_from">Dégradation du niveau de sécurité par %s</string>
|
||||
<string name="security_alert_multidevice">Multiples instances détectées</string>
|
||||
<string name="security_alert_multidevice_from">Multiples instances de %s</string>
|
||||
<string name="security_alert">Alerte de sécurité</string>
|
||||
<string name="security_alert_from">Alerte de sécurité par %s</string>
|
||||
<!--Network settings-->
|
||||
<string name="pref_network_title">Réseau</string>
|
||||
<string name="pref_wifi_only">Utiliser WiFi uniquement</string>
|
||||
|
|
|
|||
|
|
@ -214,8 +214,12 @@
|
|||
<string name="participant_removed">%s has left</string>
|
||||
<string name="device_added">new device for %s</string>
|
||||
<string name="device_removed">device for %s removed</string>
|
||||
<string name="security_alert_address">Security of chatroom have been compromised by %s</string>
|
||||
<string name="security_alert">Security of chatroom have been compromised</string>
|
||||
<string name="security_level_degraded">Degradation of security level</string>
|
||||
<string name="security_level_degraded_from">Degradation of security level from %s</string>
|
||||
<string name="security_alert_multidevice">Multidevice detected</string>
|
||||
<string name="security_alert_multidevice_from">Multidevice detected from %s</string>
|
||||
<string name="security_alert">Security alert</string>
|
||||
<string name="security_alert_from">Security alert from %s</string>
|
||||
<string name="subject_changed">new subject: %s</string>
|
||||
<string name="admin_set">%s is admin</string>
|
||||
<string name="admin_unset">%s is no longer admin</string>
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import android.content.pm.PackageManager;
|
|||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
|
@ -399,62 +400,84 @@ public class ChatEventsAdapter extends ListSelectionAdapter {
|
|||
holder.bubbleLayout.setLayoutParams(layoutParams);
|
||||
} else if (!isOneToOne) { // Event is not chat message
|
||||
holder.eventLayout.setVisibility(View.VISIBLE);
|
||||
|
||||
Address address = event.getParticipantAddress();
|
||||
String displayName = null;
|
||||
if (address != null) {
|
||||
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
|
||||
if (contact != null) {
|
||||
displayName = contact.getFullName();
|
||||
} else {
|
||||
displayName = LinphoneUtils.getAddressDisplayName(address);
|
||||
}
|
||||
}
|
||||
|
||||
switch (event.getType()) {
|
||||
case ConferenceCreated:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.conference_created));
|
||||
break;
|
||||
case ConferenceTerminated:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.conference_destroyed));
|
||||
break;
|
||||
case ConferenceParticipantAdded:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.participant_added).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantRemoved:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.participant_removed).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceSubjectChanged:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.subject_changed).replace("%s", event.getSubject()));
|
||||
break;
|
||||
case ConferenceParticipantSetAdmin:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.admin_set).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantUnsetAdmin:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.admin_unset).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantDeviceAdded:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.device_added).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantDeviceRemoved:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.device_removed).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceSecurityAlert:
|
||||
String message;
|
||||
if (event.getSecurityAlertFaultyDevice() != null && event.getSecurityAlertFaultyDevice().getUsername() != null ) {
|
||||
message = mContext.getString(R.string.security_alert_address).replace("%s", event.getSecurityAlertFaultyDevice().asStringUriOnly());
|
||||
} else {
|
||||
message = mContext.getString(R.string.security_alert);
|
||||
}
|
||||
holder.eventMessage.setText(message);
|
||||
break;
|
||||
case None:
|
||||
default:
|
||||
//TODO
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Address address = event.getParticipantAddress();
|
||||
String displayName = null;
|
||||
if (address != null) {
|
||||
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
|
||||
if (contact != null) {
|
||||
displayName = contact.getFullName();
|
||||
} else {
|
||||
displayName = LinphoneUtils.getAddressDisplayName(address);
|
||||
}
|
||||
}
|
||||
|
||||
holder.eventMessage.setTextColor(Color.BLACK);
|
||||
switch (event.getType()) {
|
||||
case ConferenceCreated:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.conference_created));
|
||||
break;
|
||||
case ConferenceTerminated:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.conference_destroyed));
|
||||
break;
|
||||
case ConferenceParticipantAdded:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.participant_added).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantRemoved:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.participant_removed).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceSubjectChanged:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.subject_changed).replace("%s", event.getSubject()));
|
||||
break;
|
||||
case ConferenceParticipantSetAdmin:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.admin_set).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantUnsetAdmin:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.admin_unset).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantDeviceAdded:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.device_added).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceParticipantDeviceRemoved:
|
||||
holder.eventMessage.setText(mContext.getString(R.string.device_removed).replace("%s", displayName));
|
||||
break;
|
||||
case ConferenceSecurityEvent:
|
||||
String message;
|
||||
holder.eventLayout.setVisibility(View.VISIBLE);
|
||||
switch (event.getSecurityEventType()) {
|
||||
case SecurityLevelDowngraded:
|
||||
message = mContext.getString(R.string.security_level_degraded);
|
||||
break;
|
||||
case MultideviceParticipantDetected:
|
||||
holder.eventMessage.setTextColor(Color.RED);
|
||||
if (event.getSecurityEventFaultyDevice() != null) {
|
||||
message = mContext.getString(R.string.security_alert_multidevice_from).replace("%s", event.getSecurityEventFaultyDevice().getUsername());
|
||||
} else {
|
||||
message = mContext.getString(R.string.security_alert_multidevice);
|
||||
}
|
||||
break;
|
||||
case ManInTheMiddleDetected:
|
||||
case LimeIdentityKeyChanged:
|
||||
holder.eventMessage.setTextColor(Color.RED);
|
||||
if (event.getSecurityEventFaultyDevice() != null) {
|
||||
message = mContext.getString(R.string.security_alert_from).replace("%s", event.getSecurityEventFaultyDevice().getUsername());
|
||||
} else {
|
||||
message = mContext.getString(R.string.security_alert);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
message = "";
|
||||
holder.eventLayout.setVisibility(View.GONE);
|
||||
}
|
||||
holder.eventMessage.setText(message);
|
||||
break;
|
||||
case None:
|
||||
default:
|
||||
//TODO
|
||||
break;
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -580,11 +580,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
|
||||
private void displayChatRoomHistory() {
|
||||
if (mChatRoom == null) return;
|
||||
if (mChatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt())) {
|
||||
mEventsAdapter = new ChatEventsAdapter(this, mSelectionHelper, mInflater, mChatRoom.getHistoryMessageEvents(0), mParticipants, true);
|
||||
} else {
|
||||
mEventsAdapter = new ChatEventsAdapter(this, mSelectionHelper, mInflater, mChatRoom.getHistoryEvents(0), mParticipants, false);
|
||||
}
|
||||
mEventsAdapter = new ChatEventsAdapter(this, mSelectionHelper, mInflater, mChatRoom.getHistoryEvents(0), mParticipants, mChatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt()));
|
||||
mSelectionHelper.setAdapter(mEventsAdapter);
|
||||
mChatEventsList.setAdapter(mEventsAdapter);
|
||||
}
|
||||
|
|
@ -946,7 +942,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onSecurityAlert(ChatRoom cr, EventLog event) {
|
||||
public void onSecurityEvent(ChatRoom cr, EventLog event) {
|
||||
mEventsAdapter.addToHistory(event);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onSecurityAlert(ChatRoom cr, EventLog eventLog) {
|
||||
public void onSecurityEvent(ChatRoom cr, EventLog eventLog) {
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 405da744b62e299d4324988de7bcdbf9779b21ac
|
||||
Subproject commit 125bdcc893a7636ec49745ab8f14b5d23d39f73d
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit d9d7f754d2ddc87eeb0b35bb05b482e78541f358
|
||||
Subproject commit 5460eefe4c196cc1159b3013ee3b7f8d31e0ae49
|
||||
Loading…
Add table
Reference in a new issue