123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package nl.digitalthings.mebarista;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.Intent;
- import android.content.ServiceConnection;
- import android.content.SharedPreferences;
- import android.content.pm.PackageManager;
- import android.os.Bundle;
- import android.os.IBinder;
- import android.preference.PreferenceActivity;
- import android.preference.PreferenceManager;
- import android.util.Log;
- import java.util.Map;
- /**
- * Created by jan on 11/20/13.
- */
- public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
- private static final String TAG = "Settings";
- BaristaService mBoundService;
- private ServiceConnection mConnection = new ServiceConnection() {
- public void onServiceConnected(ComponentName className, IBinder service) {
- mBoundService = ((BaristaService.LocalBinder)service).getService();
- if( !mBoundService.legacy )
- addPreferencesFromResource(R.xml.preference);
- else
- addPreferencesFromResource(R.xml.preference_legacy);
- }
- public void onServiceDisconnected(ComponentName className) {
- mBoundService = null;
- }
- };
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
- bindService(new Intent(SettingsActivity.this,
- BaristaService.class), mConnection, Context.BIND_AUTO_CREATE);
- if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
- if( findPreference("pref_bt_ble_enabled") != null ) // .setEnabled(false);
- System.out.println( "jopiedopie" );
- }
- // this.getApplicationContext().getSharedPreferences( "zyx " ).
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- unbindService(mConnection);
- }
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- // handle the preference change here
- //showNotification(key, "changed" );
- // TODO: why is this here? should move to baristaservice
- System.out.println("Changed: " + key);
- String val = "";
- Map<String,?> keys = sharedPreferences.getAll();
- for( Map.Entry<String,?> entry : keys.entrySet( ) ) {
- if( entry.getKey().equals( key ) ) {
- String entry_type = entry.getValue().getClass().getName();
- System.out.println( "type of " + key + " is " + entry_type );
- // Do something
- if( entry_type.equals("java.lang.Integer") || entry_type.equals("java.lang.Long") )
- val = entry.getValue().toString();
- if( entry_type.equals( "java.lang.Float" ) ) {
- Float value = (Float)entry.getValue();
- val = "" + value.intValue();
- }
- if( entry_type.equals("java.lang.Boolean") )
- val = (Boolean)entry.getValue() ? "1" : "0";
- if( entry_type.equals( "java.lang.String" ) )
- val = entry.getValue( ).toString( );
- break;
- }
- }
- // publish the change to device
- String keystr = key.replace("pref_", "");
- if( ! ( keystr.startsWith( "bt_") || keystr.startsWith( "ui_" ) || keystr.startsWith( "support" ) ) ) {
- System.out.println("cmd set " + keystr + " " + val);
- // mBoundService.write(("cmd set " + keystr + " " + val + "\n")); // TODO: remove nl
- Intent i = new Intent(this, BaristaService.class);
- i.putExtra("action", "send" );
- i.putExtra("payload", "cmd set " + keystr + " " + val + "\n" );
- startService(i);
- }
- if( key.equals( "pref_bt_bt2_enabled" ) || key.equals( "pref_bt_ble_enabled" ) ) {
- // mBoundService.scan( );
- Log.i( TAG, "BT setting changed? Start scan");
- Intent i = new Intent(this, BaristaService.class);
- i.putExtra("action", "scan" );
- startService(i);
- }
- }
- }
|