Improved & fixed issues related to intent filters
This commit is contained in:
parent
89b4ab1c78
commit
79043262dd
3 changed files with 31 additions and 1 deletions
|
@ -57,6 +57,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
|
||||||
private boolean mIsTransfer;
|
private boolean mIsTransfer;
|
||||||
private CoreListenerStub mListener;
|
private CoreListenerStub mListener;
|
||||||
private boolean mInterfaceLoaded;
|
private boolean mInterfaceLoaded;
|
||||||
|
private String mAddressToCallOnLayoutReady;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -84,6 +85,10 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
|
||||||
fragmentContainer.addView(view, params);
|
fragmentContainer.addView(view, params);
|
||||||
initUI(view);
|
initUI(view);
|
||||||
mInterfaceLoaded = true;
|
mInterfaceLoaded = true;
|
||||||
|
if (mAddressToCallOnLayoutReady != null) {
|
||||||
|
mAddress.setText(mAddressToCallOnLayoutReady);
|
||||||
|
mAddressToCallOnLayoutReady = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -318,7 +323,11 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addressToCall != null) {
|
if (addressToCall != null) {
|
||||||
mAddress.setText(addressToCall);
|
if (mAddress != null) {
|
||||||
|
mAddress.setText(addressToCall);
|
||||||
|
} else {
|
||||||
|
mAddressToCallOnLayoutReady = addressToCall;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.linphone.LinphoneService;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
import org.linphone.assistant.MenuAssistantActivity;
|
import org.linphone.assistant.MenuAssistantActivity;
|
||||||
import org.linphone.chat.ChatActivity;
|
import org.linphone.chat.ChatActivity;
|
||||||
|
import org.linphone.contacts.ContactsActivity;
|
||||||
import org.linphone.history.HistoryActivity;
|
import org.linphone.history.HistoryActivity;
|
||||||
import org.linphone.settings.LinphonePreferences;
|
import org.linphone.settings.LinphonePreferences;
|
||||||
import org.linphone.utils.LinphoneUtils;
|
import org.linphone.utils.LinphoneUtils;
|
||||||
|
@ -74,6 +75,8 @@ public class LinphoneLauncherActivity extends Activity {
|
||||||
classToStart = ChatActivity.class;
|
classToStart = ChatActivity.class;
|
||||||
} else if (HistoryActivity.NAME.equals(activity)) {
|
} else if (HistoryActivity.NAME.equals(activity)) {
|
||||||
classToStart = HistoryActivity.class;
|
classToStart = HistoryActivity.class;
|
||||||
|
} else if (ContactsActivity.NAME.equals(activity)) {
|
||||||
|
classToStart = ContactsActivity.class;
|
||||||
} else {
|
} else {
|
||||||
classToStart = DialerActivity.class;
|
classToStart = DialerActivity.class;
|
||||||
}
|
}
|
||||||
|
@ -97,6 +100,7 @@ public class LinphoneLauncherActivity extends Activity {
|
||||||
}
|
}
|
||||||
intent.setAction(getIntent().getAction());
|
intent.setAction(getIntent().getAction());
|
||||||
intent.setType(getIntent().getType());
|
intent.setType(getIntent().getType());
|
||||||
|
intent.setData(getIntent().getData());
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,13 +28,17 @@ import android.view.View;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
import org.linphone.activities.MainActivity;
|
import org.linphone.activities.MainActivity;
|
||||||
|
import org.linphone.core.tools.Log;
|
||||||
|
|
||||||
public class ContactsActivity extends MainActivity {
|
public class ContactsActivity extends MainActivity {
|
||||||
|
public static final String NAME = "Contacts";
|
||||||
|
|
||||||
private boolean mEditOnClick;
|
private boolean mEditOnClick;
|
||||||
private String mEditSipUri, mEditDisplayName;
|
private String mEditSipUri, mEditDisplayName;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
getIntent().putExtra("Activity", NAME);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
mPermissionsToHave =
|
mPermissionsToHave =
|
||||||
|
@ -53,6 +57,10 @@ public class ContactsActivity extends MainActivity {
|
||||||
|
|
||||||
if (getIntent() != null && getIntent().getExtras() != null) {
|
if (getIntent() != null && getIntent().getExtras() != null) {
|
||||||
Bundle extras = getIntent().getExtras();
|
Bundle extras = getIntent().getExtras();
|
||||||
|
Uri uri = getIntent().getData();
|
||||||
|
if (uri != null) {
|
||||||
|
extras.putString("ContactUri", uri.toString());
|
||||||
|
}
|
||||||
handleIntentExtras(extras);
|
handleIntentExtras(extras);
|
||||||
} else if (getIntent() != null && getIntent().getData() != null) {
|
} else if (getIntent() != null && getIntent().getData() != null) {
|
||||||
Uri uri = getIntent().getData();
|
Uri uri = getIntent().getData();
|
||||||
|
@ -132,6 +140,7 @@ public class ContactsActivity extends MainActivity {
|
||||||
|
|
||||||
if (extras.containsKey("ContactUri")) {
|
if (extras.containsKey("ContactUri")) {
|
||||||
String uri = extras.getString("ContactUri");
|
String uri = extras.getString("ContactUri");
|
||||||
|
Log.i("[Contacts Activity] Found ContactUri " + uri);
|
||||||
Uri contactUri = Uri.parse(uri);
|
Uri contactUri = Uri.parse(uri);
|
||||||
String id = ContactsManager.getInstance().getAndroidContactIdFromUri(contactUri);
|
String id = ContactsManager.getInstance().getAndroidContactIdFromUri(contactUri);
|
||||||
|
|
||||||
|
@ -142,6 +151,7 @@ public class ContactsActivity extends MainActivity {
|
||||||
}
|
}
|
||||||
} else if (extras.containsKey("Contact")) {
|
} else if (extras.containsKey("Contact")) {
|
||||||
LinphoneContact contact = (LinphoneContact) extras.get("Contact");
|
LinphoneContact contact = (LinphoneContact) extras.get("Contact");
|
||||||
|
Log.i("[Contacts Activity] Found Contact " + contact);
|
||||||
if (extras.containsKey("Edit")) {
|
if (extras.containsKey("Edit")) {
|
||||||
showContactEdit(contact, extras, true);
|
showContactEdit(contact, extras, true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -151,6 +161,11 @@ public class ContactsActivity extends MainActivity {
|
||||||
mEditOnClick = extras.getBoolean("CreateOrEdit");
|
mEditOnClick = extras.getBoolean("CreateOrEdit");
|
||||||
mEditSipUri = extras.getString("SipUri", null);
|
mEditSipUri = extras.getString("SipUri", null);
|
||||||
mEditDisplayName = extras.getString("DisplayName", null);
|
mEditDisplayName = extras.getString("DisplayName", null);
|
||||||
|
Log.i(
|
||||||
|
"[Contacts Activity] CreateOrEdit with values "
|
||||||
|
+ mEditSipUri
|
||||||
|
+ " / "
|
||||||
|
+ mEditDisplayName);
|
||||||
|
|
||||||
Toast.makeText(this, R.string.toast_choose_contact_for_edition, Toast.LENGTH_LONG)
|
Toast.makeText(this, R.string.toast_choose_contact_for_edition, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
|
@ -179,6 +194,7 @@ public class ContactsActivity extends MainActivity {
|
||||||
Bundle extras = new Bundle();
|
Bundle extras = new Bundle();
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
extras.putSerializable("Contact", contact);
|
extras.putSerializable("Contact", contact);
|
||||||
|
Log.i("[Contacts Activity] Displaying Contact " + contact);
|
||||||
}
|
}
|
||||||
|
|
||||||
ContactDetailsFragment fragment = new ContactDetailsFragment();
|
ContactDetailsFragment fragment = new ContactDetailsFragment();
|
||||||
|
@ -193,6 +209,7 @@ public class ContactsActivity extends MainActivity {
|
||||||
private void showContactEdit(LinphoneContact contact, Bundle extras, boolean isChild) {
|
private void showContactEdit(LinphoneContact contact, Bundle extras, boolean isChild) {
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
extras.putSerializable("Contact", contact);
|
extras.putSerializable("Contact", contact);
|
||||||
|
Log.i("[Contacts Activity] Editing Contact " + contact);
|
||||||
}
|
}
|
||||||
if (mEditOnClick) {
|
if (mEditOnClick) {
|
||||||
mEditOnClick = false;
|
mEditOnClick = false;
|
||||||
|
|
Loading…
Reference in a new issue