Fixed call transfer

This commit is contained in:
Sylvain Berfini 2019-12-17 16:33:00 +01:00
parent fe2d8b16c2
commit 777359e29f
6 changed files with 33 additions and 8 deletions

View file

@ -633,6 +633,18 @@ public abstract class MainActivity extends LinphoneGenericActivity
} }
} }
public void newOutgoingCall(String to) {
if (LinphoneManager.getCore().getCallsNb() > 0) {
Intent intent = new Intent(this, DialerActivity.class);
intent.addFlags(
Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra("SipUri", to);
this.startActivity(intent);
} else {
LinphoneManager.getCallManager().newOutgoingCall(to, null);
}
}
private void addFlagsToIntent(Intent intent) { private void addFlagsToIntent(Intent intent) {
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
} }

View file

@ -929,7 +929,7 @@ public class CallActivity extends LinphoneGenericActivity
private void goBackToDialer() { private void goBackToDialer() {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClass(this, DialerActivity.class); intent.setClass(this, DialerActivity.class);
intent.putExtra("Transfer", false); intent.putExtra("isTransfer", false);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent); startActivity(intent);
} }
@ -937,7 +937,7 @@ public class CallActivity extends LinphoneGenericActivity
private void goBackToDialerAndDisplayTransferButton() { private void goBackToDialerAndDisplayTransferButton() {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClass(this, DialerActivity.class); intent.setClass(this, DialerActivity.class);
intent.putExtra("Transfer", true); intent.putExtra("isTransfer", true);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent); startActivity(intent);
} }

View file

@ -36,6 +36,7 @@ import android.widget.TableLayout;
import android.widget.TextView; import android.widget.TextView;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.MainActivity;
import org.linphone.contacts.views.ContactAvatar; import org.linphone.contacts.views.ContactAvatar;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
@ -304,7 +305,7 @@ public class ContactDetailsFragment extends Fragment implements ContactsUpdatedL
@Override @Override
public void onClick(View v) { public void onClick(View v) {
String tag = (String) v.getTag(); String tag = (String) v.getTag();
LinphoneManager.getCallManager().newOutgoingCall(tag, null); ((MainActivity) getActivity()).newOutgoingCall(tag);
} }
}); });
if (contactAddress != null) { if (contactAddress != null) {

View file

@ -116,13 +116,26 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
Manifest.permission.READ_CONTACTS Manifest.permission.READ_CONTACTS
}; };
mIsTransfer = false;
if (getIntent() != null) {
mIsTransfer = getIntent().getBooleanExtra("isTransfer", false);
}
handleIntentParams(getIntent()); handleIntentParams(getIntent());
} }
@Override @Override
protected void onNewIntent(Intent intent) { protected void onNewIntent(Intent intent) {
super.onNewIntent(intent); super.onNewIntent(intent);
handleIntentParams(intent); handleIntentParams(intent);
if (intent != null) {
mIsTransfer = intent.getBooleanExtra("isTransfer", mIsTransfer);
if (mAddress != null && intent.getStringExtra("SipUri") != null) {
mAddress.setText(intent.getStringExtra("SipUri"));
}
}
} }
@Override @Override
@ -207,9 +220,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
} }
}); });
mIsTransfer = false;
if (getIntent() != null) { if (getIntent() != null) {
mIsTransfer = getIntent().getBooleanExtra("Transfer", false);
mAddress.setText(getIntent().getStringExtra("SipUri")); mAddress.setText(getIntent().getStringExtra("SipUri"));
} }

View file

@ -33,6 +33,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.MainActivity;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.contacts.views.ContactAvatar; import org.linphone.contacts.views.ContactAvatar;
@ -80,7 +81,7 @@ public class HistoryDetailFragment extends Fragment {
new OnClickListener() { new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
LinphoneManager.getCallManager().newOutgoingCall(mSipUri, mDisplayName); ((MainActivity) getActivity()).newOutgoingCall(mSipUri);
} }
}); });

View file

@ -38,6 +38,7 @@ import java.util.List;
import org.linphone.LinphoneContext; import org.linphone.LinphoneContext;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.activities.MainActivity;
import org.linphone.call.views.LinphoneLinearLayoutManager; import org.linphone.call.views.LinphoneLinearLayoutManager;
import org.linphone.contacts.ContactsManager; import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.contacts.ContactsUpdatedListener;
@ -206,8 +207,7 @@ public class HistoryFragment extends Fragment
address = log.getToAddress(); address = log.getToAddress();
} }
if (address != null) { if (address != null) {
LinphoneManager.getCallManager() ((MainActivity) getActivity()).newOutgoingCall(address.asStringUriOnly());
.newOutgoingCall(address.asStringUriOnly(), null);
} }
} }
} }