diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index 70799ec88..a4080f11d 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -16,7 +16,7 @@ true true false - + true true true true diff --git a/src/org/linphone/ui/CallButton.java b/src/org/linphone/ui/CallButton.java index 918912036..7942b7b8d 100644 --- a/src/org/linphone/ui/CallButton.java +++ b/src/org/linphone/ui/CallButton.java @@ -20,6 +20,8 @@ package org.linphone.ui; import org.linphone.LinphoneManager; import org.linphone.R; +import org.linphone.core.CallDirection; +import org.linphone.core.LinphoneCallLog; import org.linphone.core.LinphoneCoreException; import android.content.Context; @@ -50,6 +52,23 @@ public class CallButton extends ImageView implements OnClickListener, AddressAwa if (!LinphoneManager.getInstance().acceptCallIfIncomingPending()) { if (mAddress.getText().length() > 0) { LinphoneManager.getInstance().newOutgoingCall(mAddress); + } else { + if (getContext().getResources().getBoolean(R.bool.call_last_log_if_adress_is_empty)) { + LinphoneCallLog[] logs = LinphoneManager.getLc().getCallLogs(); + LinphoneCallLog log = null; + for (int i = logs.length - 1; i >= 0; i--) { + if (logs[i].getDirection() == CallDirection.Outgoing) { + log = logs[i]; + break; + } + } + if (log == null) { + return; + } + mAddress.setText(log.getTo().asStringUriOnly()); + mAddress.setDisplayedName(log.getTo().getDisplayName()); + LinphoneManager.getInstance().newOutgoingCall(mAddress); + } } } } catch (LinphoneCoreException e) {