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));