diff --git a/res/layout/status.xml b/res/layout/status.xml
index 356aa4c41..fab32ec51 100644
--- a/res/layout/status.xml
+++ b/res/layout/status.xml
@@ -216,19 +216,6 @@
android:adjustViewBounds="true"
android:visibility="gone"
android:layout_alignParentRight="true" />
-
-
diff --git a/res/values-FR/strings.xml b/res/values-FR/strings.xml
index 592f64ae7..172868bc6 100644
--- a/res/values-FR/strings.xml
+++ b/res/values-FR/strings.xml
@@ -372,4 +372,6 @@
Manqué
Émis
Reçu
+
+ Actif en arrière plan
diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index ca264ee07..96e14b649 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -32,7 +32,7 @@
false
true
- true
+ false
true
true
true
diff --git a/res/values/non_localizable_defaults.xml b/res/values/non_localizable_defaults.xml
index c74e03e9b..0f9820618 100644
--- a/res/values/non_localizable_defaults.xml
+++ b/res/values/non_localizable_defaults.xml
@@ -61,4 +61,5 @@
false
true
+ true
\ No newline at end of file
diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml
index 78ed6a0bc..71b2c25e0 100644
--- a/res/values/non_localizable_strings.xml
+++ b/res/values/non_localizable_strings.xml
@@ -92,6 +92,7 @@
none
srtp
zrtp
+ pref_background_mode_key
push_reg_id_key
push_sender_id_key
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7a16ad8eb..e27b7bf64 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -419,4 +419,6 @@
Missed
Outgoing
Incoming
+
+ Background mode
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index e75359ed2..6977ce381 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -283,6 +283,11 @@
android:title="@string/pref_debug"
android:defaultValue="@bool/pref_debug_default"/>
+
+
0) {
@@ -1360,7 +1365,11 @@ public class LinphoneActivity extends FragmentActivity implements
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (currentFragment == FragmentsAvailable.DIALER) {
- if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) {
+ boolean isBackgroundModeActive = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_background_mode_key), getResources().getBoolean(R.bool.pref_background_mode_default));
+ if (!isBackgroundModeActive) {
+ stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class));
+ finish();
+ } else if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) {
return true;
}
} else if (!isTablet()) {
diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java
index 77a4dc801..52f7d94a1 100644
--- a/src/org/linphone/StatusFragment.java
+++ b/src/org/linphone/StatusFragment.java
@@ -43,7 +43,6 @@ 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;
@@ -61,7 +60,7 @@ import android.widget.Toast;
public class StatusFragment extends Fragment {
private Handler mHandler = new Handler();
private Handler refreshHandler = new Handler();
- private TextView statusText, exit;
+ private TextView statusText;
private ImageView statusLed, callQuality, encryption, background;
private ListView sliderContentAccounts;
private TableLayout callStats;
@@ -98,17 +97,6 @@ public class StatusFragment extends Fragment {
});
sliderContentAccounts = (ListView) view.findViewById(R.id.accounts);
-
- exit = (TextView) view.findViewById(R.id.exit);
- exit.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if (LinphoneActivity.isInstanciated()) {
- LinphoneActivity.instance().exit();
- }
- return true;
- }
- });
// We create it once to not delay the first display
populateSliderContent();
@@ -330,7 +318,6 @@ public class StatusFragment extends Fragment {
refreshStatusItems(call, call.getCurrentParamsCopy().getVideoEnabled());
}
- exit.setVisibility(View.GONE);
statusText.setVisibility(View.GONE);
encryption.setVisibility(View.VISIBLE);
@@ -338,7 +325,6 @@ public class StatusFragment extends Fragment {
statusLed.setImageResource(R.drawable.led_connected);
statusText.setText(getString(R.string.status_connected));
} else {
- exit.setVisibility(View.VISIBLE);
statusText.setVisibility(View.VISIBLE);
background.setVisibility(View.VISIBLE);
encryption.setVisibility(View.GONE);