android-ibc-forum

Unnamed repository; edit this file 'description' to name the repository.
git clone http://git.code.weiherhei.de/android-ibc-forum.git
Log | Files | Refs

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 }