Add button in advanced settings to enable/disable "Doze Mode" Close #15
This commit is contained in:
parent
c7a377d0f9
commit
bc3bb94b7b
6 changed files with 59 additions and 11 deletions
|
@ -58,6 +58,7 @@
|
|||
<string name="first_launch_suceeded_once_key">first_launch_suceeded_once_key</string>
|
||||
|
||||
<string name="pref_wifi_only_key">pref_wifi_only_key</string>
|
||||
<string name="pref_doze_mode_key">pref_doze_mode_key</string>
|
||||
|
||||
<string name="pref_overlay_key">pref_overlay_key</string>
|
||||
<string name="pref_video_use_front_camera_key">pref_video_use_front_camera_key</string>
|
||||
|
|
|
@ -275,7 +275,6 @@
|
|||
<string name="pref_avpf">AVPF</string>
|
||||
<string name="pref_avpf_rr_interval"> AVPF regular RTCP interval in seconds (between 1 and 5)</string>
|
||||
<string name="pref_escape_plus">Replace + by 00</string>
|
||||
<string name="pref_friendlist_subscribe">Friendlist subscribe</string>
|
||||
<string name="pref_link_account">Link your account</string>
|
||||
<string name="pref_auth_userid">Auth userid</string>
|
||||
<string name="pref_help_auth_userid">Enter authentication userid (optional)</string>
|
||||
|
@ -362,6 +361,7 @@
|
|||
<!-- Network settings -->
|
||||
<string name="pref_network_title">Network</string>
|
||||
<string name="pref_wifi_only">Use WiFi only</string>
|
||||
<string name="pref_doze_mode">Doze mode</string>
|
||||
<string name="pref_stun_server">STUN / TURN server</string>
|
||||
<string name="pref_ice_enable">Enable ICE</string>
|
||||
<string name="pref_turn_enable">Enable TURN</string>
|
||||
|
@ -380,7 +380,9 @@
|
|||
|
||||
<!-- Advanced settings -->
|
||||
<string name="pref_advanced_title">Advanced</string>
|
||||
<string name="pref_debug_title">Debug</string>
|
||||
<string name="pref_debug">Debug</string>
|
||||
<string name="pref_friendlist_subscribe">Friendlist subscribe</string>
|
||||
<string name="pref_background_mode">Background mode</string>
|
||||
<string name="pref_animation_enable_title">Enable Animations</string>
|
||||
<string name="pref_service_notification">Enable service notification</string>
|
||||
|
|
|
@ -248,6 +248,11 @@
|
|||
android:key="@string/pref_wifi_only_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:title="@string/pref_doze_mode"
|
||||
android:key="@string/pref_doze_mode_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:title="@string/pref_stun_server"
|
||||
android:key="@string/pref_stun_server_key"
|
||||
|
@ -323,6 +328,16 @@
|
|||
<PreferenceScreen
|
||||
android:title="@string/pref_advanced_title">
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_debug_title">
|
||||
|
||||
<CheckBoxPreference
|
||||
android:title="@string/pref_debug"
|
||||
android:key="@string/pref_debug_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_advanced_title">
|
||||
|
||||
|
@ -331,11 +346,6 @@
|
|||
android:key="@string/pref_friendlist_subscribe_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:title="@string/pref_debug"
|
||||
android:key="@string/pref_debug_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:title="@string/pref_background_mode"
|
||||
android:key="@string/pref_background_mode_key"
|
||||
|
|
|
@ -684,7 +684,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
finally {
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||
dozeManager(false);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
|
@ -818,7 +818,9 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
|
||||
mDozeReceiver = new DozeReceiver();
|
||||
|
||||
if (mPrefs.isDozeModeEnabled()) {
|
||||
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
||||
}
|
||||
|
||||
updateNetworkReachability();
|
||||
|
||||
|
@ -889,9 +891,12 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
ConnectivityManager cm = (ConnectivityManager) mServiceContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
|
||||
|
||||
if (networkInfo == null || !networkInfo.isConnected() || dozeModeEnabled) {
|
||||
if (networkInfo == null || !networkInfo.isConnected()) {
|
||||
Log.i("No connectivity: setting network unreachable");
|
||||
mLc.setNetworkReachable(false);
|
||||
} else if (dozeModeEnabled) {
|
||||
Log.i("Doze Mode enabled: shutting down network");
|
||||
mLc.setNetworkReachable(false);
|
||||
}else if (networkInfo.isConnected()){
|
||||
manageTunnelServer(networkInfo);
|
||||
|
||||
|
@ -937,12 +942,23 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
}
|
||||
finally {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||
dozeManager(false);
|
||||
mLc = null;
|
||||
instance = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void dozeManager(boolean enable) {
|
||||
if (enable) {
|
||||
Log.i("[Doze Mode]: register");
|
||||
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
||||
} else {
|
||||
Log.i("[Doze Mode]: unregister");
|
||||
dozeModeEnabled = false;
|
||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ContactsManagerDestroy() {
|
||||
if (ContactsManager.getInstance() != null)
|
||||
ContactsManager.getInstance().destroy();
|
||||
|
|
|
@ -1468,6 +1468,14 @@ public class LinphonePreferences {
|
|||
return getConfig().getInt("app", "activation_code_length", 0);
|
||||
}
|
||||
|
||||
public boolean isDozeModeEnabled() {
|
||||
return getConfig().getBool("app", "doze_mode", true);
|
||||
}
|
||||
|
||||
public void enableDozeMode(boolean enable) {
|
||||
getConfig().setBool("app", "doze_mode", enable);
|
||||
}
|
||||
|
||||
public void disableFriendsStorage() {
|
||||
getConfig().setBool("misc", "store_friends", false);
|
||||
}
|
||||
|
|
|
@ -1009,6 +1009,8 @@ public class SettingsFragment extends PreferencesListFragment {
|
|||
private void initNetworkSettings() {
|
||||
((CheckBoxPreference) findPreference(getString(R.string.pref_wifi_only_key))).setChecked(mPrefs.isWifiOnlyEnabled());
|
||||
|
||||
((CheckBoxPreference) findPreference(getString(R.string.pref_doze_mode_key))).setChecked(mPrefs.isDozeModeEnabled());
|
||||
|
||||
// Disable UPnP if ICE si enabled, or disable ICE if UPnP is enabled
|
||||
CheckBoxPreference ice = (CheckBoxPreference) findPreference(getString(R.string.pref_ice_enable_key));
|
||||
CheckBoxPreference turn = (CheckBoxPreference) findPreference(getString(R.string.pref_turn_enable_key));
|
||||
|
@ -1049,6 +1051,15 @@ public class SettingsFragment extends PreferencesListFragment {
|
|||
}
|
||||
});
|
||||
|
||||
findPreference(getString(R.string.pref_doze_mode_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
mPrefs.enableDozeMode((Boolean) newValue);
|
||||
LinphoneManager.getInstance().dozeManager((Boolean) newValue);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
findPreference(getString(R.string.pref_stun_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
|
|
Loading…
Reference in a new issue