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_first_time_linphone_chat_storage">pref_first_time_linphone_chat_storage</string>
<string name="pref_sipaccount_key">pref_sipaccount_key</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_advanced_key">pref_advanced_key</string>
<string name="pref_manage_key">pref_manage_key</string> <string name="pref_manage_key">pref_manage_key</string>

View file

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

View file

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

View file

@ -67,11 +67,26 @@ public class SettingsFragment extends PreferencesListFragment {
private LinphonePreferences mPrefs; private LinphonePreferences mPrefs;
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
private LinphoneCoreListenerBase mListener; 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() { public SettingsFragment() {
super(R.xml.preferences); super(R.xml.preferences);
} }
public void closePreferenceScreen() {
if (currentPreferenceScreen != null) {
currentPreferenceScreen.getDialog().dismiss();
currentPreferenceScreen = null;
}
}
@Override @Override
public void onCreate(Bundle bundle) { public void onCreate(Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
@ -145,6 +160,15 @@ public class SettingsFragment extends PreferencesListFragment {
// Sets listener for each preference to update the matching value in linphonecore // Sets listener for each preference to update the matching value in linphonecore
private void setListeners() { 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(); setTunnelPreferencesListener();
setAudioPreferencesListener(); setAudioPreferencesListener();
setVideoPreferencesListener(); setVideoPreferencesListener();