diff --git a/res/drawable-xhdpi/avatar_chat_mask_outgoing.png b/res/drawable-xhdpi/avatar_chat_mask_outgoing.png
new file mode 100644
index 000000000..7e471c425
Binary files /dev/null and b/res/drawable-xhdpi/avatar_chat_mask_outgoing.png differ
diff --git a/res/layout/chat_bubble.xml b/res/layout/chat_bubble.xml
index 1b0bc6601..ea91abc84 100644
--- a/res/layout/chat_bubble.xml
+++ b/res/layout/chat_bubble.xml
@@ -27,14 +27,33 @@
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/delete_message"
android:orientation="horizontal">
-
-
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java
index 924dc6de6..13d29ea46 100644
--- a/src/org/linphone/ChatFragment.java
+++ b/src/org/linphone/ChatFragment.java
@@ -950,6 +950,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
public Button fileTransferAction;
public ImageView messageStatus;
public ProgressBar messageSendingInProgress;
+ public ImageView contactPictureMask;
public ViewHolder(View view) {
id = view.getId();
@@ -965,6 +966,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
fileTransferAction = (Button) view.findViewById(R.id.file_transfer_action);
messageStatus = (ImageView) view.findViewById(R.id.status);
messageSendingInProgress = (ProgressBar) view.findViewById(R.id.inprogress);
+ contactPictureMask = (ImageView) view.findViewById(R.id.mask);
}
@Override
@@ -1191,6 +1193,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
Compatibility.setTextAppearance(holder.contactName, getActivity(), R.style.font3);
Compatibility.setTextAppearance(holder.fileTransferAction, getActivity(), R.style.font15);
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_confirm_delete_button);
+ holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask_outgoing);
} else {
if (isEditMode) {
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
@@ -1203,6 +1206,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
Compatibility.setTextAppearance(holder.contactName, getActivity(), R.style.font9);
Compatibility.setTextAppearance(holder.fileTransferAction, getActivity(), R.style.font8);
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_assistant_button);
+ holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask);
}
holder.bubbleLayout.setLayoutParams(layoutParams);
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index ba63febf7..93abf091f 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -1116,6 +1116,12 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
routeAudioToReceiver();
}
}
+ if (mIncallWakeLock != null && mIncallWakeLock.isHeld()) {
+ mIncallWakeLock.release();
+ Log.i("Last call ended: releasing incall (CPU only) wake lock");
+ } else {
+ Log.i("Last call ended: no incall (CPU only) wake lock were held");
+ }
}
}
if (state == State.CallUpdatedByRemote) {
diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java
index ce7c57762..60039a8ff 100644
--- a/src/org/linphone/LinphoneService.java
+++ b/src/org/linphone/LinphoneService.java
@@ -25,6 +25,7 @@ import org.linphone.compatibility.Compatibility;
import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCall.State;
+import org.linphone.core.LinphoneCallLog.CallStatus;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCore.GlobalState;
import org.linphone.core.LinphoneCore.RegistrationState;
@@ -213,6 +214,12 @@ public final class LinphoneService extends Service {
if (state == State.CallEnd || state == State.CallReleased || state == State.Error) {
destroyOverlay();
}
+
+ // Enable the following to have missed call notifications
+ /*if (state == State.CallEnd && call.getCallLog().getStatus() == CallStatus.Missed) {
+ Notification notif = Compatibility.createSimpleNotification(instance, "Missed call", LinphoneManager.getLc().getMissedCallsCount() + " missed call", mNotifContentIntent);
+ notifyWrapper(CUSTOM_NOTIF_ID, notif);
+ }*/
if (state == State.StreamsRunning) {
// Workaround bug current call seems to be updated after state changed to streams running