Fixed issue 3948: settings popup not hidding when click on notif

This commit is contained in:
Sylvain Berfini 2017-06-26 14:03:15 +02:00
parent 142fa020c6
commit 89c317be26
4 changed files with 45 additions and 5 deletions

View file

@ -139,6 +139,10 @@
<string name="pref_first_time_linphone_chat_storage">pref_first_time_linphone_chat_storage</string>
<string name="pref_sipaccount_key">pref_sipaccount_key</string>
<string name="pref_audio_key">pref_audio_key</string>
<string name="pref_call_key">pref_call_key</string>
<string name="pref_chat_key">pref_chat_key</string>
<string name="pref_network_key">pref_network_key</string>
<string name="pref_advanced_key">pref_advanced_key</string>
<string name="pref_manage_key">pref_manage_key</string>

View file

@ -49,7 +49,8 @@
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_audio_title">
android:title="@string/pref_audio_title"
android:key="@string/pref_audio_key">
<PreferenceCategory
android:title="@string/pref_audio_title">
@ -176,7 +177,8 @@
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_call_title">
android:title="@string/pref_call_title"
android:key="@string/pref_call_key">
<PreferenceCategory
android:title="@string/pref_call_title">
@ -228,7 +230,8 @@
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_chat_title">
android:title="@string/pref_chat_title"
android:key="@string/pref_chat_key">
<PreferenceCategory
android:title="@string/pref_chat_title">
@ -250,7 +253,8 @@
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_network_title">
android:title="@string/pref_network_title"
android:key="@string/pref_network_key">
<PreferenceCategory
android:title="@string/pref_network_title">
@ -338,7 +342,8 @@
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_advanced_title">
android:title="@string/pref_advanced_title"
android:key="@string/pref_advanced_key">
<PreferenceCategory
android:title="@string/pref_debug_title">

View file

@ -29,6 +29,7 @@ import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.linphone.SettingsFragment;
import org.linphone.LinphoneManager.AddressType;
import org.linphone.assistant.AssistantActivity;
import org.linphone.assistant.RemoteProvisioningLoginActivity;
@ -1423,6 +1424,12 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (getCurrentFragment() == FragmentsAvailable.SETTINGS) {
if (fragment instanceof SettingsFragment) {
((SettingsFragment) fragment).closePreferenceScreen();
}
}
Bundle extras = intent.getExtras();
if (extras != null && extras.getBoolean("GoToChat", false)) {

View file

@ -67,10 +67,25 @@ public class SettingsFragment extends PreferencesListFragment {
private LinphonePreferences mPrefs;
private Handler mHandler = new Handler();
private LinphoneCoreListenerBase mListener;
private PreferenceScreen currentPreferenceScreen;
private Preference.OnPreferenceClickListener prefClickListener = new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
currentPreferenceScreen = (PreferenceScreen) preference;
return false;
}
};
public SettingsFragment() {
super(R.xml.preferences);
}
public void closePreferenceScreen() {
if (currentPreferenceScreen != null) {
currentPreferenceScreen.getDialog().dismiss();
currentPreferenceScreen = null;
}
}
@Override
public void onCreate(Bundle bundle) {
@ -145,6 +160,15 @@ public class SettingsFragment extends PreferencesListFragment {
// Sets listener for each preference to update the matching value in linphonecore
private void setListeners() {
findPreference(getString(R.string.pref_tunnel_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_audio_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_video_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_call_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_chat_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_network_key)).setOnPreferenceClickListener(prefClickListener);
findPreference(getString(R.string.pref_advanced_key)).setOnPreferenceClickListener(prefClickListener);
setTunnelPreferencesListener();
setAudioPreferencesListener();
setVideoPreferencesListener();