5
0
mirror of https://github.com/cwinfo/envayasms.git synced 2025-04-18 22:07:30 +00:00

105 lines
3.2 KiB
Java
Executable File

package org.envaya.kalsms;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.view.Menu;
public class Prefs extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
PreferenceScreen screen = this.getPreferenceScreen();
int numPrefs = screen.getPreferenceCount();
for(int i=0; i < numPrefs;i++)
{
updatePrefSummary(screen.getPreference(i));
}
}
@Override
protected void onResume(){
super.onResume();
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
App app = App.getInstance(this.getApplication());
if (key.equals("outgoing_interval"))
{
app.setOutgoingMessageAlarm();
}
else if (key.equals("server_url"))
{
app.log("Server URL changed to: " + app.getDisplayString(app.getServerUrl()));
}
else if (key.equals("phone_number"))
{
app.log("Phone number changed to: " + app.getDisplayString(app.getPhoneNumber()));
}
else if (key.equals("password"))
{
app.log("Password changed");
}
updatePrefSummary(findPreference(key));
}
private void updatePrefSummary(Preference p)
{
if (p instanceof ListPreference) {
p.setSummary(((ListPreference)p).getEntry());
}
else if (p instanceof EditTextPreference) {
EditTextPreference textPref = (EditTextPreference)p;
String text = textPref.getText();
if (text.equals(""))
{
p.setSummary("(not set)");
}
else if (p.getKey().equals("password"))
{
p.setSummary("********");
}
else
{
p.setSummary(text);
}
}
}
// first time the Menu key is pressed
@Override
public boolean onCreateOptionsMenu(Menu menu) {
startActivity(new Intent(this, Prefs.class));
return (true);
}
// any other time the Menu key is pressed
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
startActivity(new Intent(this, Prefs.class));
return (true);
}
}