diff --git a/res/layout/status.xml b/res/layout/status.xml
index 9b7f5f2ed..356aa4c41 100644
--- a/res/layout/status.xml
+++ b/res/layout/status.xml
@@ -217,17 +217,18 @@
android:visibility="gone"
android:layout_alignParentRight="true" />
-
+ android:layout_centerVertical="true"
+ android:gravity="center_vertical"
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp"
+ android:text="@string/menu_exit"
+ android:textColor="@android:color/white"
+ android:textSize="18dp" />
diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index 389108b31..c9cd3f365 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -29,7 +29,7 @@
false
true
- false
+ true
true
true
true
diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java
index 8bfff5bae..c25e904e4 100644
--- a/src/org/linphone/LinphoneActivity.java
+++ b/src/org/linphone/LinphoneActivity.java
@@ -1375,7 +1375,7 @@ public class LinphoneActivity extends FragmentActivity implements
}
} else if (keyCode == KeyEvent.KEYCODE_MENU && statusFragment != null) {
if (event.getRepeatCount() < 1) {
- statusFragment.openOrCloseStatusBar();
+ statusFragment.openOrCloseStatusBar(true);
}
}
return super.onKeyDown(keyCode, event);
diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java
index 401becc39..77a4dc801 100644
--- a/src/org/linphone/StatusFragment.java
+++ b/src/org/linphone/StatusFragment.java
@@ -43,6 +43,7 @@ import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@@ -99,12 +100,13 @@ public class StatusFragment extends Fragment {
sliderContentAccounts = (ListView) view.findViewById(R.id.accounts);
exit = (TextView) view.findViewById(R.id.exit);
- exit.setOnClickListener(new OnClickListener() {
+ exit.setOnTouchListener(new View.OnTouchListener() {
@Override
- public void onClick(View v) {
+ public boolean onTouch(View v, MotionEvent event) {
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().exit();
}
+ return true;
}
});
@@ -135,7 +137,11 @@ public class StatusFragment extends Fragment {
}
public void openOrCloseStatusBar() {
- if (getResources().getBoolean(R.bool.lock_statusbar)) {
+ openOrCloseStatusBar(false);
+ }
+
+ public void openOrCloseStatusBar(boolean force) {
+ if (getResources().getBoolean(R.bool.lock_statusbar) && !force) {
return;
}
@@ -535,7 +541,9 @@ public class StatusFragment extends Fragment {
private List checkboxes;
AccountsListAdapter() {
- prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+ if (LinphoneActivity.isInstanciated()) {
+ prefs = PreferenceManager.getDefaultSharedPreferences(LinphoneActivity.instance());
+ }
checkboxes = new ArrayList();
}
@@ -612,7 +620,7 @@ public class StatusFragment extends Fragment {
isDefault.setChecked(false);
isDefault.setEnabled(true);
- if (prefs.getInt(getString(R.string.pref_default_account_key), 0) == position) {
+ if (prefs != null && prefs.getInt(getString(R.string.pref_default_account_key), 0) == position) {
isDefault.setChecked(true);
isDefault.setEnabled(false);
status.setImageResource(getStatusIconResource(lpc.getState(), true));