From ff0f422512cca80e31363dd5b9f2c6039ebb0a94 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Wed, 14 Nov 2018 10:35:32 +0100 Subject: [PATCH] Fix call transfert, conference and go to chat --- linphone.db | Bin 0 -> 159744 bytes .../linphone/activities/LinphoneActivity.java | 43 +++++++----------- .../org/linphone/call/CallActivity.java | 8 ++-- .../org/linphone/chat/GroupChatFragment.java | 1 - 4 files changed, 22 insertions(+), 30 deletions(-) create mode 100644 linphone.db diff --git a/linphone.db b/linphone.db new file mode 100644 index 0000000000000000000000000000000000000000..c6ba9acb2bee6226758ad8f0849085962045ebe4 GIT binary patch literal 159744 zcmeI*Piz}keh2UwQsRiVB|4jAXPr3F^E$4@jbw|GXvr=NhnB_)*EDHUR2(B%3`U%h zGg(=gJkPyD2*+{uf0yZh?bmtw z%~<;l{hMdL5BrvISIA$F)6_`f8#~XB6TeSUPX~Mj=nuq?|-Mvr3zi zS(E(bhd0e%Bh&C1U3F5sN>A=brv&lVE&kwDe+0a(WKg{ci7)Nj^Li6Mru8 zoL*D4r{!Y-)2ch~OV&8!ErbYJb`r= z@xy`-v-w5~qvIVWx=Gjks$L_v3x%AN$+IiaWVzPs)BL9&JJGM#G})@l_FtXQ1RaZeVjq;lyDl6? zH((I36GjPH7TDmj`L_nh@45DOxtHYF^{N!Ft5T~d4 z&vox?@307-$aW6*oyiSNGX{u7rCwGl1LP|knqukonr!J+jjY)_M`nXjQA|s2HdKW! zf`J*zN<-Pw=_09XCMjj}kLW%!aI0cAw?5L!7I`mITzxlFoLNYx?X|$EAY`MnCf&(w z=1OFq=G(3)k4<}%dRRD{++KzPaArvmMb|nMaON;^_mA7ax`$bcQbJ6Wru#2Nhs)2z zo-i(mqR8)6ogwIKkDMNShr#mIJ< zbT8fce$3M@Hl=U#c9cp}^9(LJP@GFsdo(AP$715$OQC{HJLD8w_xLkj5HDWj_avwB z%<95?8}T%qN%%Heo{q%C?8UH_GnL7y!#DJf`sG*Xmmf?{(y!xF|HdW0NIXnjPrOdQ z#R~!ufB*y_009U<00Izz00bcLeHO@%k8yh!=uPg8$MiFKT{GUPntI((YLB%m<$Co` z9~(EDM(swksjD{@m(}HRdS!7gy`?VB&Ck!Pb4q&a+MK#PzojiKFDnb`;`y;CcPq5G z^U+qSxm(#$^qRM_e5Bo$z+_Kb=C|j!7q=G{=gJG$uhF(Frsr0!FRjeYYpL|Lg{5oP zm1|26d0O70-5C4BK>K0X+{5=*(t72|&i(m~`>RhS)!P8OhVnISd0|UU%`IKOwnPh7 zw&s*&`gU<~Ve5K%VMSe9N}Zw+9iRG&OZ;8p{M1*88;SS7&ml(JAOHafKmY;|fB*y_ z009U<00JCW7~8wRhu*Mz?zsoK{~v!NdMmuRv36?U4SuxKmcV3BTL!uRk31aPTa5n! z?*HxQ|MZ9c@qz#ZAOHafKmY;|fB*y_009U<-~#5P$##AOHafKmY;|fB*y_0D+S$@D6{9i}Q<% z{AGS35^#4PaOf?yS*`Ap*8g%NX8-&@pZFa||KJ4y2tWV=5P$##AOHafKmY;|fWV0p z7$1xC@d$qZ--!z>Is^d-KmY;|fB*y_009U<00I!`60q<8BZ>d!5-;c%ydVGp2tWV= z5P$##AOHafKmY;|I1vJ|$Ts#-9tH#cxEG z#y7{VMw9#(i5LF!@cug$NW6%AE=m&roVS#%idL@Iwlzbml{LAc7?xhv8%oWRwH>Wy z^-4RtT9h&+iIg(8a}w#5lgtp}6esH{$>vMax>O|hi`jdb;-iD7rv|dyO%NiuR0l>(Kr%+9Y2nk^E*Z=kIoV%=&xh91rc6zZAAge@UIR(9)6* z&&0%^OFXC7RPCwxq@r7ztTe5<^Iq;05HMflRIk*@#0&n{&dj?yvNI3!ijc0!n>?70 z3*z!J|NL2aU;{_SDenvmT14$>#>^acT??OJbVjf%2(vhN)={FHbbYPrHFCR9$Vr(z zJ25x&*$0~vyLjrVcfs@)+he6{t$IPLW9T&WPwMdg_@_A2tkBYv*;6s`XUj*M9oBTI2F|DmcG5)T6BVUYTFg%v1xBogOl6KPyo&>38Ls)hXT$VChq=m6I^|=d*pnHd4`^IsPC||b{hekX(qru22ye_ z5*5Ttm-xMPcQVv#7QKs+?K0^NO6U7APrKNZzRlZFDoxEZxadG}E=}zwCYQ%z;@wN3 zf=oN;4vl#?{)`vIix>Gl$!Rx6$%+BqnArhP9ljOinRxqV(={!oGu@ zjQ@%gqEp<|?keI6^e5ck*0W(0 z%-wF4-VQ2{>DATPZO{uXUBMJ5tnGX1fb?lvc=m&IXyNw8t8-dwfVk7mcl5RRuOcsr zH*fOK-HW}mxVQ5#7uB%iqGvFL<+4YXGk3kaHKzQK<)5xmA@|1Zxk7WWTgaJqHAmXn zwNLUdqfC%IU32nxs&dZi+C=-8*YM8zYwb*o=gpS|aebZtMeD+Rc*EM=nx0Mlp*Kps z$_WaUN7&t@ZyWRjmQF)GA7`)^WjdS($ke%es?eGusu6PeqXmVfpfncvm2N&Ac;Pz73+M0EJwCFkhYS?J^l9TN<}lQp7Uy3X;x_K+z&oOXYo<>1{vzfgUPdkxUtda)9KbnvQCN2;>j-4Y?hb8 zAj3`=khJF~!^atDY`X?w^H1f#h7C2HIgbDPz^4VvZ}!^eZX3E*Q%$*|(;K@K`|bkA zjsIHAX88lnzd*FNF3etv32s2@n_+Pc$Qu+=%2re8?I?SlqQ~q_9J!q<+-5@_hHu1oE#aVhk{fq7#%!u+-%^d$8YzLi|d8 z&(OXX5A>LaE#cklJOyNK1de(&InuTG4;_K%lzXLr)xV^9Tgj|u-h@QhLgvjDw1#=c zyt}`5PU`-g>loOBT!WJM`TwCmZor8UfB*y_009U<00Izz00bZafsqlw{r|{>3Jrw- z1Rwwb2tWV=5P$##AOHaf3@w2B|Dow{A_O1+0SG_<0uX=z1Rwwb2tZ(D1aSX9GND34 zApijgKmY;|fB*y_009U<00Kh`oU+e6JM`%|5dsi^00bZa0SG_<0uX=z1Rwx`5fH%h z{}Bihng{_1KmY;|fB*y_009U<00Iy=rU0J*9}^I#LjVF0fB*y_009U<00Izz00c%r z0MGwNAV_E;1Rwwb2tWV=5P$##AOHafK;W1Hxc@&UAWnw>1Rwwb2tWV=5P$##AOHaf zjDP@s{(l65geF1&0uX=z1Rwwb2tWV=5P$##jwyiW|HlNx=@5Vb1Rwwb2tWV=5P$## zAOL|85Ww^Q5eO2R2muH{00Izz00bZa0SG_<0uVT+0G|IJ6A-6E00Izz00bZa0SG_< z0uX=z1V%sr&;LgtNN6GiAOHafKmY;|fB*y_009U<;FtpT^Z&D4l1u#K)XS6qdd56W zPJJ2w%lQ06dEzIrD`WpR{$FFsv45r+KKuAB;nn5kiNAVdN7w$WT(50whE^+UvbLku zEIIVxYEjCRB=TNXdPoA#BAE?BHl&=iS|YkSORU|7HcQHerdWEtCR=*de*2+f$ws|i zmF+Cs2K~m=8?vIRhGv@1L95<<$T?T9sx`Svvnh`?C#PvC7A;fN4Xtd~F-vq)Hnnoo z&}iYcx}|ULIvG`MN2fjX*VIr9OE2pUh4$N@W;VAzqNUQ(wTix@8N0Gmo?do)V`xvB zv|3t?s+*095}NEZN4IumrJ@gg?<}chJ)UQb1U-}*qz}BrMoVg>JA`ZQ@x2tD3y&(D||sM56d=WP5r8H z(vMJfYZL|2c+!qirai#z5f#+f&TtED>0aW;f_U{Rzjx14wkn#sC0FZev!cm#kehT8 zbshMV*32(uZs#P@l}u&`sVP;Byq77izMCn|ETq#(a=)0pmnl9Xccn+OgtUq#*?fs? z<~OqId1;O03nh}@%;l1qi!pKYD$nUPReNeaspys_D^08JyqCKwlv7=YF7MTdAin)J zfAF%?scl2oYO1U>8nUWbitp`Po(}mE?e4S=(fLFhEUimL+J&wz(qnen6Ap5BWjeS>30f6i2~R%OnQ>gS5dkn6{Y;Dw9#t9jIKHfbhfV1g_SP9tC@|} z%$k(Ec_Ah~cstC@*C#pUJ8cUln7o#Q`q2Z5XHe!Uo=W1}2uc)Cd2Lp$YNJ=<(7 zi(9xUS9H^&YjRK)Iw8!mp>Jt&qh8U=yQGxOKMEW&c8zv`J7LqlQEYregng)BNBoR5k1Y?uPG!D(MN%f@bl zZcXetFQvTs! z$ATRrPvvaF>*17awgDIeE=j&oe=W&g8%+Jrwcv$;2Be`_A9hyubZWtKre{6&^sLoe zI`@vpx-Q1V57I}P1c77!wS#j%6vT9zf4zgRb&zCj0h~ zS*O_OY}HkI@uwGK_Mm$uAapp+b{4s=OK!X3t_U37=6Yi0^l|B=Lha*1!~7rY<<0SG_<0uX=z1Rwwb2tWV=5EyZR)6v)Y)~5iGc=TM{ I{RrUy0q@J!T>t<8 literal 0 HcmV?d00001 diff --git a/src/android/org/linphone/activities/LinphoneActivity.java b/src/android/org/linphone/activities/LinphoneActivity.java index 6e10626d5..1e7439bc6 100644 --- a/src/android/org/linphone/activities/LinphoneActivity.java +++ b/src/android/org/linphone/activities/LinphoneActivity.java @@ -162,7 +162,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick private RelativeLayout sideMenuContent, quitLayout, defaultAccount; private ListView accountsList, sideMenuItemList; private ImageView menu; - private boolean doNotGoToCallActivity = false; private List sideMenuItems; private boolean callTransfer = false; private boolean isOnBackground = false; @@ -308,10 +307,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } mAlwaysChangingPhoneAngle = rotation; - Bundle extras = getIntent().getExtras(); - if (extras != null && extras.getBoolean("GoToChat", false)) { - onNewIntent(getIntent()); - } + onNewIntent(getIntent()); } private void initButtons() { @@ -1213,10 +1209,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } else if (resultCode == Activity.RESULT_FIRST_USER && requestCode == CALL_ACTIVITY) { getIntent().putExtra("PreviousActivity", CALL_ACTIVITY); callTransfer = data != null && data.getBooleanExtra("Transfer", false); - boolean chat = data != null && data.getBooleanExtra("chat", false); - if(chat){ - pendingFragmentTransaction = FragmentsAvailable.CHAT_LIST; - } if (LinphoneManager.getLc().getCallsNb() > 0) { initInCallMenuLayout(callTransfer); } else { @@ -1233,8 +1225,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick @Override protected void onPause() { - getIntent().putExtra("PreviousActivity", 0); - Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc != null) { lc.removeListener(mListener); @@ -1428,10 +1418,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick super.onRestoreInstanceState(savedInstanceState); } - public void disableGoToCall() { - doNotGoToCallActivity = true; - } - @Override protected void onResume() { super.onResume(); @@ -1469,7 +1455,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick //LinphoneManager.getInstance().changeStatusToOnline(); - if (getIntent().getIntExtra("PreviousActivity", 0) != CALL_ACTIVITY && !doNotGoToCallActivity) { + if (!getIntent().getBooleanExtra("DoNotGoToCallActivity", false)) { if (LinphoneManager.getLc().getCalls().length > 0) { Call call = LinphoneManager.getLc().getCalls()[0]; Call.State onCallStateChanged = call.getState(); @@ -1494,7 +1480,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick displayChat(null, null, intent.getStringExtra("fileShared")); intent.putExtra("fileShared", ""); } - doNotGoToCallActivity = false; isOnBackground = false; if (intent != null) { @@ -1544,13 +1529,17 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick Bundle extras = intent.getExtras(); if (extras != null && extras.getBoolean("GoToChat", false)) { String sipUri = extras.getString("ChatContactSipUri"); - doNotGoToCallActivity = true; - displayChat(sipUri, null, null); + intent.putExtra("DoNotGoToCallActivity", true); + if (sipUri == null) { + goToChatList(); + } else { + displayChat(sipUri, null, null); + } } else if (extras != null && extras.getBoolean("GoToHistory", false)) { - doNotGoToCallActivity = true; + intent.putExtra("DoNotGoToCallActivity", true); changeCurrentFragment(FragmentsAvailable.HISTORY_LIST, null); } else if (extras != null && extras.getBoolean("GoToInapp", false)) { - doNotGoToCallActivity = true; + intent.putExtra("DoNotGoToCallActivity", true); displayInapp(); } else if (extras != null && extras.getBoolean("Notification", false)) { if (LinphoneManager.getLc().getCallsNb() > 0) { @@ -1558,7 +1547,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick startIncallActivity(call); } }else if (extras != null && extras.getBoolean("StartCall", false)) { - boolean extraBool = extras.getBoolean("StartCall", false); if (CallActivity.isInstanciated()) { CallActivity.instance().startIncomingCallActivity(); } else { @@ -1566,17 +1554,19 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick goToDialerFragment(); //startActivity(new Intent(this, CallIncomingActivity.class)); } + } else if (extras != null && extras.getBoolean("Transfer", false)) { + intent.putExtra("DoNotGoToCallActivity", true); } else { DialerFragment dialerFragment = DialerFragment.instance(); if (dialerFragment != null) { if (extras != null && extras.containsKey("SipUriOrNumber")) { if (getResources().getBoolean(R.bool.automatically_start_intercepted_outgoing_gsm_call)) { - ((DialerFragment) dialerFragment).newOutgoingCall(extras.getString("SipUriOrNumber")); + dialerFragment.newOutgoingCall(extras.getString("SipUriOrNumber")); } else { - ((DialerFragment) dialerFragment).displayTextInAddressBar(extras.getString("SipUriOrNumber")); + dialerFragment.displayTextInAddressBar(extras.getString("SipUriOrNumber")); } } else { - ((DialerFragment) dialerFragment).newOutgoingCall(intent); + dialerFragment.newOutgoingCall(intent); } } else { if (extras != null && extras.containsKey("SipUriOrNumber")) { @@ -1586,7 +1576,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } if (LinphoneManager.getLc().getCalls().length > 0) { // If a call is ringing, start incomingcallactivity - Collection incoming = new ArrayList(); + Collection incoming = new ArrayList<>(); incoming.add(Call.State.IncomingReceived); if (LinphoneUtils.getCallsInState(LinphoneManager.getLc(), incoming).size() > 0) { if (CallActivity.isInstanciated()) { @@ -1597,6 +1587,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } } } + setIntent(intent); } public boolean isOnBackground() { diff --git a/src/android/org/linphone/call/CallActivity.java b/src/android/org/linphone/call/CallActivity.java index 3ffba5895..003b6d5b1 100644 --- a/src/android/org/linphone/call/CallActivity.java +++ b/src/android/org/linphone/call/CallActivity.java @@ -1127,15 +1127,17 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList private void goBackToDialerAndDisplayTransferButton() { Intent intent = new Intent(); + intent.setClass(this, LinphoneActivity.class); intent.putExtra("Transfer", true); - setResult(Activity.RESULT_FIRST_USER, intent); + startActivity(intent); finish(); } private void goToChatList() { Intent intent = new Intent(); - intent.putExtra("chat", true); - setResult(Activity.RESULT_FIRST_USER, intent); + intent.setClass(this, LinphoneActivity.class); + intent.putExtra("GoToChat", true); + startActivity(intent); finish(); } diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index f6aef816c..23d5159dc 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -689,7 +689,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con Intent chooserIntent = Intent.createChooser(galleryIntent, getString(R.string.image_picker_title)); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[]{})); - LinphoneActivity.instance().disableGoToCall(); startActivityForResult(chooserIntent, ADD_PHOTO); }