SettingsActivity.java

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