diff options
Diffstat (limited to 'app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java')
-rw-r--r-- | app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java b/app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java index 31fdacc..f49f73a 100644 --- a/app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java +++ b/app/src/main/java/org/cyanogenmod/wundergroundcmweatherprovider/WUBasePreferenceActivity.java @@ -15,13 +15,70 @@ */ package org.cyanogenmod.wundergroundcmweatherprovider; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; import android.os.Bundle; +import android.preference.EditTextPreference; +import android.preference.Preference; import android.preference.PreferenceActivity; +import android.text.Editable; + +public class WUBasePreferenceActivity extends PreferenceActivity implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { + + private static final String CREATE_ACCOUNT_KEY = "create_account"; + private static final String API_KEY_KEY = "api_key"; + + private static final String WU_CREATE_ACCOUNT_URL = + "https://www.wunderground.com/weather/api/d/login.html"; + + private Preference mCreateAccountPreference; + private EditTextPreference mApiKeyPreference; -public class WUBasePreferenceActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WundergroundCMApplication.get(this).inject(this); + addPreferencesFromResource(R.xml.preferences); + + mCreateAccountPreference = findPreference(CREATE_ACCOUNT_KEY); + mApiKeyPreference = (EditTextPreference) findPreference(API_KEY_KEY); + mApiKeyPreference.setOnPreferenceChangeListener(this); + mCreateAccountPreference.setOnPreferenceClickListener(this); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object o) { + switch (preference.getKey()) { + case API_KEY_KEY: + Editable editText = mApiKeyPreference.getEditText().getText(); + if (editText != null) { + String text = editText.toString(); + SharedPreferences sharedPreferences = getSharedPreferences( + WundergroundModule.SHARED_PREFS_KEY, Context.MODE_PRIVATE); + sharedPreferences.edit().putString(WundergroundModule.API_KEY, text).commit(); + } + return true; + } + return false; + } + + @Override + public boolean onPreferenceClick(Preference preference) { + switch (preference.getKey()) { + case CREATE_ACCOUNT_KEY: + Intent createAccountIntent = new Intent(); + createAccountIntent.setAction(Intent.ACTION_VIEW); + createAccountIntent.setData(Uri.parse(WU_CREATE_ACCOUNT_URL)); + try { + startActivity(createAccountIntent); + } catch (ActivityNotFoundException e) { + e.printStackTrace(); + } + return true; + } + return false; } } |