#17220: fix service NullPointerException issue
Conflicts:
src/com/savoirfairelinux/sflphone/client/CallElementList.java
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
index faf8f72..23f3bfe 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
@@ -72,7 +72,7 @@
static final int ACCOUNT_CREATE_REQUEST = 1;
static final int ACCOUNT_EDIT_REQUEST = 2;
private SFLPhonePreferenceActivity sflphonePreferenceActivity;
- private ISipService service;
+ private ISipService service = null;
ArrayList<AccountDetail.PreferenceEntry> basicDetailKeys = null;
ArrayList<AccountDetail.PreferenceEntry> advancedDetailKeys = null;
@@ -106,6 +106,19 @@
Log.i(TAG, "Create Account Management Fragment");
+ /*
+ * FIXME if service cannot be obtained from SFLPhonePreferenceActivity,
+ * then get it from Application
+ */
+ service = sflphonePreferenceActivity.getSipService();
+ if (service == null) {
+ service = ((SFLphoneApplication)sflphonePreferenceActivity.getApplication()).getSipService();
+ if (service == null) {
+ Log.e(TAG, "onCreate() service=" + service);
+ }
+ }
+ Log.w(TAG, "onCreate() service=" + service);
+
setPreferenceScreen(getAccountListPreferenceScreen());
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver, new IntentFilter("accounts-changed"));
diff --git a/src/com/savoirfairelinux/sflphone/client/CallElementList.java b/src/com/savoirfairelinux/sflphone/client/CallElementList.java
index 961a027..4e68522 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallElementList.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallElementList.java
@@ -83,6 +83,7 @@
private CallElementAdapter mAdapter;
private String mCurFilter;
private SFLPhoneHome sflphoneHome;
+ private SFLphoneApplication sflphoneApplication;
private ISipService service;
private AccountSelectionButton mAccountSelectionButton;
private AccountList mAccountList;
@@ -303,6 +304,8 @@
Log.i(TAG, "On Long Click");
final CharSequence[] items = {"Hang up Call", "Send Message", "Add to Conference"};
final SipCall call = (SipCall) mAdapter.getItem(pos);
+ // FIXME
+ service = sflphoneApplication.getSipService();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Action to perform with " + call.mCallInfo.mDisplayName)
.setCancelable(true)
diff --git a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
index 5e590d3..d9f5c8b 100644
--- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
@@ -89,6 +89,7 @@
Activity mContext;
String mCurFilter;
private SFLPhoneHome sflphoneHome;
+ private SFLphoneApplication sflphoneApplication;
private ISipService service;
private AccountSelectionButton mAccountSelectionButton;
private AccountList mAccountList;
@@ -103,8 +104,9 @@
public void onAttach(Activity activity) {
super.onAttach(activity);
sflphoneHome = (SFLPhoneHome) activity;
- service = ((SFLphoneApplication) sflphoneHome.getApplication()).getSipService();
- mAccountList = ((SFLphoneApplication)sflphoneHome.getApplication()).getAccountList();
+ sflphoneApplication = (SFLphoneApplication) sflphoneHome.getApplication();
+ service = sflphoneApplication.getSipService();
+ mAccountList = sflphoneApplication.getAccountList();
Log.i(TAG, "onAttach() service=" + service + ", mAccountList=" + mAccountList);
}
@@ -228,6 +230,8 @@
// TODO getCallInstnace should be implemented in SipCallList
// final SipCall call = SipCall.getCallInstance(info);
final SipCall call = new SipCall(info);
+ // FIXME
+ service = sflphoneApplication.getSipService();
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("Action to perform with " + call.mCallInfo.mDisplayName)
.setCancelable(true)
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
index 5070bb3..0a17ff4 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
@@ -142,8 +142,8 @@
mBound = false;
}
- stopService(new Intent(this, SipService.class));
- serviceIsOn = false;
+// stopService(new Intent(this, SipService.class));
+// serviceIsOn = false;
super.onDestroy();
}