summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2014-05-09 08:47:06 +0000
committerBenny Prijono <bennylp@teluu.com>2014-05-09 08:47:06 +0000
commit5648a46772fac3d942e43ca1a264350b522f8f8f (patch)
treed87b93631269fd0085b02fdf345e9c17530364a8
parent57862f6079ff0d736499b15a4d59c61bca45fcf2 (diff)
Re #1768: Fixed problems with Java garbage collection on call and buddy object
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4840 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java3
-rw-r--r--pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java5
-rw-r--r--pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java13
3 files changed, 14 insertions, 7 deletions
diff --git a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
index 48e1bad3..aa749002 100644
--- a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
+++ b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
@@ -83,8 +83,6 @@ public class CallActivity extends Activity implements Handler.Callback {
} catch (Exception e) {
System.out.println(e);
}
-
- MainActivity.currentCall = null;
}
}
@@ -136,7 +134,6 @@ public class CallActivity extends Activity implements Handler.Callback {
} else if (ci.getState() == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED) {
buttonHangup.setText("OK");
call_state = "Call disconnected: " + ci.getLastReason();
- MainActivity.currentCall = null;
}
}
diff --git a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java
index d0ea68a7..89731839 100644
--- a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java
+++ b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java
@@ -173,9 +173,6 @@ public class MainActivity extends Activity implements Handler.Callback, MyAppObs
m2.sendToTarget();
}
- if (ci.getState() == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED)
- currentCall = null;
-
} else if (m.what == MSG_TYPE.BUDDY_STATE) {
MyBuddy buddy = (MyBuddy) m.obj;
@@ -339,7 +336,7 @@ public class MainActivity extends Activity implements Handler.Callback, MyAppObs
try {
call.makeCall(buddy_uri, prm);
} catch (Exception e) {
- currentCall = null;
+ call.delete();
return;
}
diff --git a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
index 24cea9b9..cb083ffc 100644
--- a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
+++ b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
@@ -48,6 +48,15 @@ class MyCall extends Call {
@Override
public void onCallState(OnCallStateParam prm) {
MyApp.observer.notifyCallState(this);
+ try {
+ CallInfo ci = getInfo();
+ if (ci.getState() == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED) {
+ this.delete();
+ MainActivity.currentCall = null;
+ }
+ } catch (Exception e) {
+ return;
+ }
}
@Override
@@ -100,6 +109,7 @@ class MyAccount extends Account {
try {
bud.create(this, bud_cfg);
} catch (Exception e) {
+ bud.delete();
bud = null;
}
@@ -116,10 +126,13 @@ class MyAccount extends Account {
public void delBuddy(MyBuddy buddy) {
buddyList.remove(buddy);
+ buddy.delete();
}
public void delBuddy(int index) {
+ MyBuddy bud = buddyList.get(index);
buddyList.remove(index);
+ bud.delete();
}
@Override