PreferencesActivity.java :  » Client » juick-android » com » juick » Android Open Source

Android Open Source » Client » juick android 
juick android » com » juick » PreferencesActivity.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.juick;

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
import android.view.Menu;
import android.view.MenuItem;

/**
 *
 * @author ugnich
 */
public class PreferencesActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {

    public static final int MENUITEM_SIGNOUT = 1;
    private EditTextPreference prefNickname;
    private ListPreference prefRefresh;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);

        prefNickname = (EditTextPreference) getPreferenceScreen().findPreference("nick");
        prefRefresh = (ListPreference) getPreferenceScreen().findPreference("refresh");
    }

    @Override
    protected void onResume() {
        super.onResume();

        updateSummaries();
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        updateSummaries();
        if (key.equals("refresh")) {
            MainActivity.startCheckUpdates(this);
        }
    }

    private void updateSummaries() {
        SharedPreferences sp = getPreferenceScreen().getSharedPreferences();
        prefNickname.setSummary(sp.getString("nick", ""));
        String refresh = sp.getString("refresh", "5");
        String vals[] = getResources().getStringArray(R.array.prefsRefreshIntervalValues);
        int id = 1;
        for (int i = 0; i < vals.length; i++) {
            if (vals[i].equals(refresh)) {
                id = i;
            }
        }
        prefRefresh.setSummary(getResources().getStringArray(R.array.prefsRefreshIntervalTitles)[id]);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        if (menu.findItem(MENUITEM_SIGNOUT) == null) {
            menu.add(Menu.NONE, MENUITEM_SIGNOUT, Menu.NONE, R.string.Signout).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
        }
        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == MENUITEM_SIGNOUT) {
            SharedPreferences.Editor settingsEditor = getPreferenceScreen().getSharedPreferences().edit();
            settingsEditor.remove("nick");
            settingsEditor.remove("password");
            settingsEditor.commit();
            finish();
            return true;
        } else {
            return super.onOptionsItemSelected(item);
        }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.