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="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_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_overlay_key">pref_overlay_key</string>
|
||||||
<string name="pref_video_use_front_camera_key">pref_video_use_front_camera_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">AVPF</string>
|
||||||
<string name="pref_avpf_rr_interval"> AVPF regular RTCP interval in seconds (between 1 and 5)</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_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_link_account">Link your account</string>
|
||||||
<string name="pref_auth_userid">Auth userid</string>
|
<string name="pref_auth_userid">Auth userid</string>
|
||||||
<string name="pref_help_auth_userid">Enter authentication userid (optional)</string>
|
<string name="pref_help_auth_userid">Enter authentication userid (optional)</string>
|
||||||
|
@ -362,6 +361,7 @@
|
||||||
<!-- Network settings -->
|
<!-- Network settings -->
|
||||||
<string name="pref_network_title">Network</string>
|
<string name="pref_network_title">Network</string>
|
||||||
<string name="pref_wifi_only">Use WiFi only</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_stun_server">STUN / TURN server</string>
|
||||||
<string name="pref_ice_enable">Enable ICE</string>
|
<string name="pref_ice_enable">Enable ICE</string>
|
||||||
<string name="pref_turn_enable">Enable TURN</string>
|
<string name="pref_turn_enable">Enable TURN</string>
|
||||||
|
@ -380,7 +380,9 @@
|
||||||
|
|
||||||
<!-- Advanced settings -->
|
<!-- Advanced settings -->
|
||||||
<string name="pref_advanced_title">Advanced</string>
|
<string name="pref_advanced_title">Advanced</string>
|
||||||
|
<string name="pref_debug_title">Debug</string>
|
||||||
<string name="pref_debug">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_background_mode">Background mode</string>
|
||||||
<string name="pref_animation_enable_title">Enable Animations</string>
|
<string name="pref_animation_enable_title">Enable Animations</string>
|
||||||
<string name="pref_service_notification">Enable service notification</string>
|
<string name="pref_service_notification">Enable service notification</string>
|
||||||
|
|
|
@ -248,6 +248,11 @@
|
||||||
android:key="@string/pref_wifi_only_key"
|
android:key="@string/pref_wifi_only_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_doze_mode"
|
||||||
|
android:key="@string/pref_doze_mode_key"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_stun_server"
|
android:title="@string/pref_stun_server"
|
||||||
android:key="@string/pref_stun_server_key"
|
android:key="@string/pref_stun_server_key"
|
||||||
|
@ -323,6 +328,16 @@
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_advanced_title">
|
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
|
<PreferenceCategory
|
||||||
android:title="@string/pref_advanced_title">
|
android:title="@string/pref_advanced_title">
|
||||||
|
|
||||||
|
@ -331,11 +346,6 @@
|
||||||
android:key="@string/pref_friendlist_subscribe_key"
|
android:key="@string/pref_friendlist_subscribe_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:title="@string/pref_debug"
|
|
||||||
android:key="@string/pref_debug_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_background_mode"
|
android:title="@string/pref_background_mode"
|
||||||
android:key="@string/pref_background_mode_key"
|
android:key="@string/pref_background_mode_key"
|
||||||
|
|
|
@ -684,7 +684,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
dozeManager(false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(e);
|
Log.e(e);
|
||||||
}
|
}
|
||||||
|
@ -818,7 +818,9 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
|
|
||||||
mDozeReceiver = new DozeReceiver();
|
mDozeReceiver = new DozeReceiver();
|
||||||
|
|
||||||
|
if (mPrefs.isDozeModeEnabled()) {
|
||||||
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
||||||
|
}
|
||||||
|
|
||||||
updateNetworkReachability();
|
updateNetworkReachability();
|
||||||
|
|
||||||
|
@ -889,9 +891,12 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
ConnectivityManager cm = (ConnectivityManager) mServiceContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) mServiceContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
|
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
|
||||||
|
|
||||||
if (networkInfo == null || !networkInfo.isConnected() || dozeModeEnabled) {
|
if (networkInfo == null || !networkInfo.isConnected()) {
|
||||||
Log.i("No connectivity: setting network unreachable");
|
Log.i("No connectivity: setting network unreachable");
|
||||||
mLc.setNetworkReachable(false);
|
mLc.setNetworkReachable(false);
|
||||||
|
} else if (dozeModeEnabled) {
|
||||||
|
Log.i("Doze Mode enabled: shutting down network");
|
||||||
|
mLc.setNetworkReachable(false);
|
||||||
}else if (networkInfo.isConnected()){
|
}else if (networkInfo.isConnected()){
|
||||||
manageTunnelServer(networkInfo);
|
manageTunnelServer(networkInfo);
|
||||||
|
|
||||||
|
@ -937,12 +942,23 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
dozeManager(false);
|
||||||
mLc = null;
|
mLc = null;
|
||||||
instance = 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() {
|
public static void ContactsManagerDestroy() {
|
||||||
if (ContactsManager.getInstance() != null)
|
if (ContactsManager.getInstance() != null)
|
||||||
ContactsManager.getInstance().destroy();
|
ContactsManager.getInstance().destroy();
|
||||||
|
|
|
@ -1468,6 +1468,14 @@ public class LinphonePreferences {
|
||||||
return getConfig().getInt("app", "activation_code_length", 0);
|
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() {
|
public void disableFriendsStorage() {
|
||||||
getConfig().setBool("misc", "store_friends", false);
|
getConfig().setBool("misc", "store_friends", false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1009,6 +1009,8 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
private void initNetworkSettings() {
|
private void initNetworkSettings() {
|
||||||
((CheckBoxPreference) findPreference(getString(R.string.pref_wifi_only_key))).setChecked(mPrefs.isWifiOnlyEnabled());
|
((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
|
// 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 ice = (CheckBoxPreference) findPreference(getString(R.string.pref_ice_enable_key));
|
||||||
CheckBoxPreference turn = (CheckBoxPreference) findPreference(getString(R.string.pref_turn_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() {
|
findPreference(getString(R.string.pref_stun_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
|
Loading…
Reference in a new issue