Configuration.java (2828B)
1 package de.mtbnews.android; 2 3 import android.content.Intent; 4 import android.content.SharedPreferences; 5 import android.content.SharedPreferences.OnSharedPreferenceChangeListener; 6 import android.os.Bundle; 7 import android.preference.PreferenceActivity; 8 import android.preference.PreferenceManager; 9 import android.widget.Toast; 10 import de.mtbnews.android.service.SubscriptionService; 11 12 /** 13 * Konfiguration anzeigen und verändern. Es wird die von Android angebotene 14 * {@link PreferenceActivity} benutzt. 15 * 16 * @author Jan Dankert 17 * 18 */ 19 public class Configuration extends PreferenceActivity 20 { 21 @Override 22 protected void onCreate(Bundle savedInstanceState) 23 { 24 // Bei der Konfiguration nicht das IBC-Theme, sondern das 25 // Standard-Android-Theme benutzen. 26 setTheme(R.style.Default); 27 28 // Erzeugt einen Listener, um auf Konfigurationsänderungen zu reagieren. 29 final OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() 30 { 31 public void onSharedPreferenceChanged(SharedPreferences prefs, String key) 32 { 33 if (key.equals("autostart_subscription_service")) 34 { 35 if (prefs.getBoolean("autostart_subscription_service", false)) 36 { 37 38 startService(new Intent(getApplicationContext(), SubscriptionService.class)); 39 Toast.makeText(Configuration.this, R.string.subscription_service_started, Toast.LENGTH_SHORT) 40 .show(); 41 } 42 else 43 { 44 stopService(new Intent(getApplicationContext(), SubscriptionService.class)); 45 Toast.makeText(Configuration.this, R.string.subscription_service_stopped, Toast.LENGTH_SHORT) 46 .show(); 47 } 48 } 49 50 // Wenn Intervall für Abodienst geändert, dann den Service neu 51 // starten. 52 if (key.equals("subscription_service_interval")) 53 { 54 if (prefs.getBoolean("autostart_subscription_service", false)) 55 { 56 // Restart 57 stopService(new Intent(getApplicationContext(), SubscriptionService.class)); 58 startService(new Intent(getApplicationContext(), SubscriptionService.class)); 59 Toast.makeText(Configuration.this, R.string.subscription_service_started, Toast.LENGTH_SHORT) 60 .show(); 61 } 62 } 63 64 // Theme geändert 65 if (key.equals("ibc_theme")) 66 { 67 final IBCApplication application = (IBCApplication) getApplication(); 68 if (prefs.getBoolean("ibc_theme", false)) 69 application.setTheme(R.style.IBC); 70 else 71 application.setTheme(android.R.style.Theme); 72 73 Toast.makeText(Configuration.this, R.string.theme_changed, Toast.LENGTH_SHORT).show(); 74 } 75 } 76 }; 77 78 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 79 80 // Den Listener setzen. 81 prefs.registerOnSharedPreferenceChangeListener(listener); 82 83 super.onCreate(savedInstanceState); 84 addPreferencesFromResource(R.xml.preferences); 85 } 86 }