Fix some bugs

This commit is contained in:
Erwan Croze 2019-01-09 15:31:37 +01:00
parent e5c67e96b9
commit 4546ddb353
15 changed files with 127 additions and 81 deletions

View file

@ -2,8 +2,8 @@
<manifest package="org.linphone"
xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
android:versionCode="2002"
android:versionName="2.0.2">
android:versionCode="2004"
android:versionName="2.0.4">
<uses-sdk
android:minSdkVersion="26"

View file

@ -66,11 +66,11 @@
android:id="@+id/encryption"
android:layout_width="70dp"
android:layout_height="60dp"
android:layout_toLeftOf="@+id/pause"
android:layout_toStartOf="@+id/pause"
android:layout_toLeftOf="@+id/pause"
android:contentDescription="@string/content_description_encryption"
android:src="@drawable/security_button1_over"
android:visibility="visible"/>
android:visibility="visible" />
<ImageView
android:id="@+id/pause"
@ -171,15 +171,14 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:paddingTop="5dp"/>
android:paddingTop="5dp" />
<Chronometer
android:id="@+id/current_call_timer"
style="@style/font2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
android:layout_gravity="center" />
</LinearLayout>
<LinearLayout

View file

@ -184,12 +184,13 @@
</RelativeLayout>
<LinearLayout
android:id="@+id/messageLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp">
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp">
<TextView
android:id="@+id/message_date"
@ -201,7 +202,7 @@
android:gravity="right"
android:orientation="horizontal"
android:textColor="#595959"
android:textSize="8.3sp"/>
android:textSize="8.3sp" />
<LinearLayout
android:id="@+id/imdmLayout"
@ -219,7 +220,7 @@
android:layout_height="wrap_content"
android:paddingRight="3dp"
android:text="Displayed"
android:textSize="8.3sp"/>
android:textSize="8.3sp" />
<ImageView
android:id="@+id/imdmIcon"
@ -227,7 +228,7 @@
android:layout_height="8dp"
android:layout_marginTop="2dp"
android:scaleType="fitCenter"
android:src="@drawable/chat_read"/>
android:src="@drawable/chat_read" />
</LinearLayout>
</LinearLayout>

View file

@ -80,7 +80,7 @@
android:id="@+id/read_layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorH"
android:background="@color/colorF"
android:gravity="center"
android:orientation="horizontal">
@ -88,13 +88,13 @@
style="@style/font27"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/displayed"/>
android:text="@string/displayed" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/message_read"/>
android:src="@drawable/message_read" />
</LinearLayout>
@ -108,7 +108,7 @@
android:id="@+id/delivered_layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorH"
android:background="@color/colorF"
android:gravity="center"
android:orientation="horizontal">
@ -116,13 +116,13 @@
style="@style/font28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delivered"/>
android:text="@string/delivered" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/message_delivered"/>
android:src="@drawable/message_delivered" />
</LinearLayout>
@ -136,7 +136,7 @@
android:id="@+id/sent_layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorH"
android:background="@color/colorF"
android:gravity="center"
android:orientation="horizontal">
@ -144,14 +144,14 @@
style="@style/font28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sent"/>
android:text="@string/sent" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/message_delivered"
android:visibility="invisible"/>
android:visibility="invisible" />
</LinearLayout>
@ -165,7 +165,7 @@
android:id="@+id/undelivered_layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorH"
android:background="@color/colorF"
android:gravity="center"
android:orientation="horizontal">
@ -173,13 +173,13 @@
style="@style/font29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/error"/>
android:text="@string/error" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/message_undelivered"/>
android:src="@drawable/message_undelivered" />
</LinearLayout>

View file

@ -101,15 +101,15 @@
android:layout_height="25dp"
android:layout_alignBottom="@+id/sipUri"
android:layout_alignParentEnd="true"
android:layout_marginEnd="89dp"
android:layout_marginBottom="4dp"
android:layout_marginEnd="100dp"
android:background="@drawable/chat_list_indicator"
android:contentDescription="@string/content_description_unread_chat_message"
android:gravity="center"
android:maxLines="1"
android:textAlignment="center"
android:textColor="@color/colorH"
android:textSize="15sp"/>
android:textSize="15sp" />
<LinearLayout
android:id="@id/lastMessageLayout"
@ -123,8 +123,18 @@
android:layout_width="11dp"
android:layout_height="11dp"
android:layout_gravity="center_vertical|center_horizontal|center"
android:layout_marginEnd="5dp"
android:foregroundGravity="center"
android:src="@drawable/chat_read"
android:visibility="gone" />
<ImageView
android:id="@+id/filesharing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal|center"
android:foregroundGravity="center"
android:src="@drawable/chat_file_message"
android:visibility="gone"/>
<TextView
@ -134,26 +144,15 @@
android:textColor="#595959"
android:textSize="16.7sp"/>
<ImageView
android:id="@+id/filesharing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal|center"
android:layout_marginStart="5dp"
android:foregroundGravity="center"
android:src="@drawable/chat_file_message"
android:visibility="gone"/>
<TextView
android:id="@+id/lastMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="18dp"
android:layout_marginStart="5dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#aeaeae"
android:textSize="16.7sp"/>
android:textSize="16.7sp" />
</LinearLayout>

View file

@ -105,11 +105,12 @@
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:gravity="center_vertical"
android:lineSpacingExtra="13.3sp"
android:lines="1"
android:maxLines="1"
android:textColor="#000000"
android:textSize="20sp"/>
android:textSize="20sp" />
</RelativeLayout>
</RelativeLayout>

View file

@ -9,12 +9,14 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/videoSurface" />
<SurfaceView
android:id="@+id/videoCaptureSurface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
android:id="@+id/videoCaptureSurface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="29dp"
android:layout_marginBottom="189dp" />
</RelativeLayout>

View file

@ -9,12 +9,14 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/videoSurface" />
<SurfaceView
android:id="@+id/videoCaptureSurface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
android:id="@+id/videoCaptureSurface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="30dp"
android:layout_marginBottom="189dp" />
</RelativeLayout>

View file

@ -1008,6 +1008,7 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList
public void displayVideoCall(boolean display){
if(display) {
if (!isSpeakerEnabled) toggleSpeaker();
showStatusBar();
mControlsLayout.setVisibility(View.VISIBLE);
mActiveCallHeader.setVisibility(View.VISIBLE);
@ -1018,11 +1019,12 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList
switchCamera.setVisibility(View.VISIBLE);
}
} else {
if (isSpeakerEnabled) toggleSpeaker();
hideStatusBar();
mControlsLayout.setVisibility(View.GONE);
mActiveCallHeader.setVisibility(View.GONE);
switchCamera.setVisibility(View.GONE);
callsList.setVisibility(View.GONE);
callsList.setVisibility(View.INVISIBLE);
}
}

View file

@ -50,6 +50,7 @@ public class ChatBubbleViewHolder {
public ImageView imdmIcon;
public TextView imdmLabel;
public LinearLayout messageLayout;
public TextView messageText;
public TextView messageDate;
public ImageView messageImage;
@ -81,6 +82,7 @@ public class ChatBubbleViewHolder {
imdmIcon = view.findViewById(R.id.imdmIcon);
imdmLabel = view.findViewById(R.id.imdmText);
messageLayout = view.findViewById(R.id.messageLayout);
messageText = view.findViewById(R.id.message);
messageDate = view.findViewById(R.id.message_date);
messageImage = view.findViewById(R.id.image);

View file

@ -30,6 +30,7 @@ import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.media.ExifInterface;
import android.media.ThumbnailUtils;
import android.net.Uri;
@ -39,6 +40,7 @@ import android.provider.MediaStore;
import android.support.v4.content.FileProvider;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -307,6 +309,7 @@ public class ChatEventsAdapter extends ListSelectionAdapter {
Compatibility.setTextAppearance(holder.fileTransferAction, mContext, R.style.font15);
//holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_confirm_delete_button);
holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask_outgoing);
holder.messageLayout.setGravity(Gravity.LEFT);
} else {
for (LinphoneContact c : mParticipants) {
if (c != null && remoteSender!=null && c.hasAddress(remoteSender.asStringUriOnly())) {

View file

@ -99,7 +99,7 @@ public class ImdnFragment extends Fragment {
if (LinphoneActivity.instance().isTablet()) {
LinphoneActivity.instance().goToChat(mRoomUri, null);
} else {
LinphoneActivity.instance().onBackPressed();
LinphoneActivity.instance().popBackStack();
}
}
});

View file

@ -177,34 +177,36 @@ public class SearchContactsListAdapter extends BaseAdapter {
String domain = "";
ProxyConfig prx = LinphoneManager.getLc().getDefaultProxyConfig();
if (prx != null) domain = prx.getDomain();
SearchResult[] results = ContactsManager.getInstance().getMagicSearch().getContactListFromFilter(search, mOnlySipContact ? domain :"");
for (SearchResult sr : results) {
boolean found = false;
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(sr.getAddress());
if (contact == null) {
contact = new LinphoneContact();
if (sr.getFriend() != null) {
contact.setFriend(sr.getFriend());
contact.refresh();
}
}
if (sr.getAddress() != null || sr.getPhoneNumber() != null) {
for (ContactAddress ca : result) {
String normalizedPhoneNumber = (ca != null && ca.getPhoneNumber() != null && prx != null) ? prx.normalizePhoneNumber(ca.getPhoneNumber()) : null;
if ((sr.getAddress() != null && ca.getAddress() != null
&& ca.getAddress().asStringUriOnly().equals(sr.getAddress().asStringUriOnly()))
|| (sr.getPhoneNumber() != null && normalizedPhoneNumber != null
&& sr.getPhoneNumber().equals(normalizedPhoneNumber))) {
found = true;
break;
if (ContactsManager.getInstance() != null && ContactsManager.getInstance().getMagicSearch() != null) {
SearchResult[] results = ContactsManager.getInstance().getMagicSearch().getContactListFromFilter(search, mOnlySipContact ? domain : "");
for (SearchResult sr : results) {
boolean found = false;
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(sr.getAddress());
if (contact == null) {
contact = new LinphoneContact();
if (sr.getFriend() != null) {
contact.setFriend(sr.getFriend());
contact.refresh();
}
}
}
if (!found) {
result.add(new ContactAddress(contact,
(sr.getAddress() != null) ? sr.getAddress().asStringUriOnly() : "",
sr.getPhoneNumber(),
contact.isFriend()));
if (sr.getAddress() != null || sr.getPhoneNumber() != null) {
for (ContactAddress ca : result) {
String normalizedPhoneNumber = (ca != null && ca.getPhoneNumber() != null && prx != null) ? prx.normalizePhoneNumber(ca.getPhoneNumber()) : null;
if ((sr.getAddress() != null && ca.getAddress() != null
&& ca.getAddress().asStringUriOnly().equals(sr.getAddress().asStringUriOnly()))
|| (sr.getPhoneNumber() != null && normalizedPhoneNumber != null
&& sr.getPhoneNumber().equals(normalizedPhoneNumber))) {
found = true;
break;
}
}
}
if (!found) {
result.add(new ContactAddress(contact,
(sr.getAddress() != null) ? sr.getAddress().asStringUriOnly() : "",
sr.getPhoneNumber(),
contact.isFriend()));
}
}
}

View file

@ -41,11 +41,17 @@ import org.linphone.activities.LinphoneActivity;
import org.linphone.core.Address;
import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomListenerStub;
import org.linphone.core.ChatRoomSecurityLevel;
import org.linphone.core.Core;
import org.linphone.core.Factory;
import org.linphone.core.PresenceModel;
import org.linphone.core.ProxyConfig;
import org.linphone.core.ZrtpPeerStatus;
import org.linphone.mediastream.Log;
import static org.linphone.LinphoneUtils.getSecurityLevelForSipUri;
import static org.linphone.LinphoneUtils.getZrtpStatus;
public class HistoryDetailFragment extends Fragment implements OnClickListener {
private ImageView dialBack, chat, addToContacts, goToContact, back;
private View view;
@ -157,6 +163,34 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
if (lAddress != null) {
contactAddress.setText(lAddress.asStringUriOnly());
contact = ContactsManager.getInstance().findContactFromAddress(lAddress);
ProxyConfig prx = LinphoneManager.getLc().getDefaultProxyConfig();
Address ourUri = (prx != null) ? prx.getIdentityAddress() : null;
ChatRoomSecurityLevel securityLevel = getSecurityLevelForSipUri(LinphoneManager.getLc(), ourUri, contact.getFriend().getAddress());
if (securityLevel == ChatRoomSecurityLevel.Safe) {
contactPicture.setImageResource(R.drawable.avatar_medium_secure2);
} else if (securityLevel == ChatRoomSecurityLevel.Unsafe) {
contactPicture.setImageResource(R.drawable.avatar_medium_unsecure);
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
contactPicture.setImageResource(R.drawable.avatar_medium_secure1);
} else {
ZrtpPeerStatus zrtpStatus = getZrtpStatus(LinphoneManager.getLc(), contact.getFriend().getAddress().asStringUriOnly());
if (zrtpStatus == ZrtpPeerStatus.Valid) {
contactPicture.setImageResource(R.drawable.avatar_medium_secure2);
} else if (zrtpStatus == ZrtpPeerStatus.Invalid) {
contactPicture.setImageResource(R.drawable.avatar_medium_unsecure);
} else {
if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact != null && contact.getFriend() != null) {
PresenceModel presenceModel = contact.getFriend().getPresenceModel();
if (presenceModel != null) {
contactPicture.setImageResource(R.drawable.avatar_medium_secure1);
} else {
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
}
} else {
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
}
}
}
if (contact != null) {
contactName.setText(contact.getFullName());
//LinphoneUtils.setImagePictureFromUri(view.getContext(),contactPicture,contact.getPhotoUri(),contact.getThumbnailUri());

View file

@ -41,8 +41,7 @@ public class PhoneStateChangedReceiver extends BroadcastReceiver {
if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(extraState) || TelephonyManager.EXTRA_STATE_RINGING.equals(extraState)) {
LinphoneManager.getInstance().setCallGsmON(true);
Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
lc.pauseAllCalls();
LinphoneManager.getLcIfManagerNotDestroyedOrNull().pauseAllCalls();
} else if (TelephonyManager.EXTRA_STATE_IDLE.equals(extraState)) {
LinphoneManager.getInstance().setCallGsmON(false);
}