SettingsActivity.java

 1package eu.siacs.conversations.ui;
 2
 3import java.util.Locale;
 4
 5import eu.siacs.conversations.entities.Account;
 6import android.content.SharedPreferences;
 7import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
 8import android.os.Bundle;
 9import android.preference.PreferenceManager;
10
11public class SettingsActivity extends XmppActivity implements
12		OnSharedPreferenceChangeListener {
13	@Override
14	protected void onCreate(Bundle savedInstanceState) {
15		super.onCreate(savedInstanceState);
16		getFragmentManager().beginTransaction()
17				.replace(android.R.id.content, new SettingsFragment()).commit();
18	}
19
20	@Override
21	void onBackendConnected() {
22
23	}
24
25	@Override
26	public void onStart() {
27		super.onStart();
28		PreferenceManager.getDefaultSharedPreferences(this)
29				.registerOnSharedPreferenceChangeListener(this);
30	}
31
32	@Override
33	public void onStop() {
34		super.onStop();
35		PreferenceManager.getDefaultSharedPreferences(this)
36				.unregisterOnSharedPreferenceChangeListener(this);
37	}
38
39	@Override
40	public void onSharedPreferenceChanged(SharedPreferences preferences,
41			String name) {
42		if (name.equals("resource")) {
43			String resource = preferences.getString("resource", "mobile")
44					.toLowerCase(Locale.US);
45			if (xmppConnectionServiceBound) {
46				for (Account account : xmppConnectionService.getAccounts()) {
47					account.setResource(resource);
48					if (!account.isOptionSet(Account.OPTION_DISABLED)) {
49						xmppConnectionService.reconnectAccount(account, false);
50					}
51				}
52			}
53		}
54	}
55
56}