Search in sources :

Example 6 with Prefs

use of nodomain.freeyourgadget.gadgetbridge.util.Prefs in project Gadgetbridge by Freeyourgadget.

the class GBApplication method onCreate.

@Override
public void onCreate() {
    super.onCreate();
    if (lockHandler != null) {
        // guard against multiple invocations (robolectric)
        return;
    }
    sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    prefs = new Prefs(sharedPrefs);
    gbPrefs = new GBPrefs(prefs);
    // don't do anything here before we set up logging, otherwise
    // slf4j may be implicitly initialized before we properly configured it.
    setupLogging(isFileLoggingEnabled());
    if (getPrefsFileVersion() != CURRENT_PREFS_VERSION) {
        migratePrefs(getPrefsFileVersion());
    }
    setupExceptionHandler();
    GB.environment = GBEnvironment.createDeviceEnvironment();
    setupDatabase(this);
    deviceManager = new DeviceManager(this);
    deviceService = createDeviceService();
    loadBlackList();
    if (isRunningMarshmallowOrLater()) {
        notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    }
}
Also used : GBPrefs(nodomain.freeyourgadget.gadgetbridge.util.GBPrefs) DeviceManager(nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager) GBPrefs(nodomain.freeyourgadget.gadgetbridge.util.GBPrefs) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs)

Example 7 with Prefs

use of nodomain.freeyourgadget.gadgetbridge.util.Prefs in project Gadgetbridge by Freeyourgadget.

the class ConfigureAlarms method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_configure_alarms);
    device = getIntent().getParcelableExtra(GBDevice.EXTRA_DEVICE);
    Prefs prefs = GBApplication.getPrefs();
    preferencesAlarmListSet = prefs.getStringSet(PREF_MIBAND_ALARMS, new HashSet<String>());
    if (preferencesAlarmListSet.isEmpty()) {
        //initialize the preferences
        preferencesAlarmListSet = new HashSet<>(Arrays.asList(GBAlarm.DEFAULT_ALARMS));
        prefs.getPreferences().edit().putStringSet(PREF_MIBAND_ALARMS, preferencesAlarmListSet).apply();
    }
    mGBAlarmListAdapter = new GBAlarmListAdapter(this, preferencesAlarmListSet);
    ListView listView = (ListView) findViewById(R.id.alarm_list);
    listView.setAdapter(mGBAlarmListAdapter);
    updateAlarmsFromPrefs();
}
Also used : ListView(android.widget.ListView) GBAlarmListAdapter(nodomain.freeyourgadget.gadgetbridge.adapter.GBAlarmListAdapter) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs) HashSet(java.util.HashSet)

Example 8 with Prefs

use of nodomain.freeyourgadget.gadgetbridge.util.Prefs in project Gadgetbridge by Freeyourgadget.

the class ControlCenterv2 method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    if (GBApplication.isDarkThemeEnabled()) {
        setTheme(R.style.GadgetbridgeThemeDark_NoActionBar);
    } else {
        setTheme(R.style.GadgetbridgeTheme_NoActionBar);
    }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_controlcenterv2);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            launchDiscoveryActivity();
        }
    });
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.controlcenter_navigation_drawer_open, R.string.controlcenter_navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
    //end of material design boilerplate
    deviceManager = ((GBApplication) getApplication()).getDeviceManager();
    deviceListView = (RecyclerView) findViewById(R.id.deviceListView);
    deviceListView.setHasFixedSize(true);
    deviceListView.setLayoutManager(new LinearLayoutManager(this));
    background = (ImageView) findViewById(R.id.no_items_bg);
    deviceList = deviceManager.getDevices();
    mGBDeviceAdapter = new GBDeviceAdapterv2(this, deviceList);
    deviceListView.setAdapter(this.mGBDeviceAdapter);
    ItemTouchHelper swipeToDismissTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.LEFT, ItemTouchHelper.RIGHT) {

        @Override
        public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
            if (dX > 50)
                dX = 50;
            super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
        }

        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            GB.toast(getBaseContext(), "onMove", Toast.LENGTH_LONG, GB.ERROR);
            return false;
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            GB.toast(getBaseContext(), "onSwiped", Toast.LENGTH_LONG, GB.ERROR);
        }

        @Override
        public void onChildDrawOver(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
        }
    });
    //uncomment to enable fixed-swipe to reveal more actions
    //swipeToDismissTouchHelper.attachToRecyclerView(deviceListView);
    registerForContextMenu(deviceListView);
    IntentFilter filterLocal = new IntentFilter();
    filterLocal.addAction(GBApplication.ACTION_QUIT);
    filterLocal.addAction(DeviceManager.ACTION_DEVICES_CHANGED);
    LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, filterLocal);
    refreshPairedDevices();
    /*
         * Ask for permission to intercept notifications on first run.
         */
    Prefs prefs = GBApplication.getPrefs();
    if (prefs.getBoolean("firstrun", true)) {
        prefs.getPreferences().edit().putBoolean("firstrun", false).apply();
        Intent enableIntent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
        startActivity(enableIntent);
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        checkAndRequestPermissions();
    }
    ChangeLog cl = new ChangeLog(this);
    if (cl.isFirstRun()) {
        cl.getLogDialog().show();
    }
    GBApplication.deviceService().start();
    if (GB.isBluetoothEnabled() && deviceList.isEmpty() && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
        startActivity(new Intent(this, DiscoveryActivity.class));
    } else {
        GBApplication.deviceService().requestDeviceInfo();
    }
}
Also used : IntentFilter(android.content.IntentFilter) NavigationView(android.support.design.widget.NavigationView) Canvas(android.graphics.Canvas) ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) GBDeviceAdapterv2(nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAdapterv2) Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs) NavigationView(android.support.design.widget.NavigationView) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) FloatingActionButton(android.support.design.widget.FloatingActionButton) RecyclerView(android.support.v7.widget.RecyclerView) ChangeLog(de.cketti.library.changelog.ChangeLog) DrawerLayout(android.support.v4.widget.DrawerLayout) Toolbar(android.support.v7.widget.Toolbar)

Example 9 with Prefs

use of nodomain.freeyourgadget.gadgetbridge.util.Prefs in project Gadgetbridge by Freeyourgadget.

the class GBMusicControlReceiver method onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    GBDeviceEventMusicControl.Event musicCmd = GBDeviceEventMusicControl.Event.values()[intent.getIntExtra("event", 0)];
    int keyCode = -1;
    int volumeAdjust = AudioManager.ADJUST_LOWER;
    switch(musicCmd) {
        case NEXT:
            keyCode = KeyEvent.KEYCODE_MEDIA_NEXT;
            break;
        case PREVIOUS:
            keyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS;
            break;
        case PLAY:
            keyCode = KeyEvent.KEYCODE_MEDIA_PLAY;
            break;
        case PAUSE:
            keyCode = KeyEvent.KEYCODE_MEDIA_PAUSE;
            break;
        case PLAYPAUSE:
            keyCode = KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE;
            break;
        case VOLUMEUP:
            // change default and fall through, :P
            volumeAdjust = AudioManager.ADJUST_RAISE;
        case VOLUMEDOWN:
            AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, volumeAdjust, 0);
            break;
        default:
            return;
    }
    if (keyCode != -1) {
        Prefs prefs = GBApplication.getPrefs();
        String audioPlayer = prefs.getString("audio_player", "default");
        long eventtime = SystemClock.uptimeMillis();
        Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
        KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, keyCode, 0);
        downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
        if (!"default".equals(audioPlayer)) {
            downIntent.setPackage(audioPlayer);
        }
        context.sendOrderedBroadcast(downIntent, null);
        Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
        KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, keyCode, 0);
        upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
        if (!"default".equals(audioPlayer)) {
            upIntent.setPackage(audioPlayer);
        }
        context.sendOrderedBroadcast(upIntent, null);
    }
}
Also used : KeyEvent(android.view.KeyEvent) AudioManager(android.media.AudioManager) GBDeviceEventMusicControl(nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventMusicControl) Intent(android.content.Intent) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs)

Example 10 with Prefs

use of nodomain.freeyourgadget.gadgetbridge.util.Prefs in project Gadgetbridge by Freeyourgadget.

the class MiBandCoordinator method getConfiguredUserInfo.

/**
     * Returns the user info from the user configured data in the preferences.
     *
     * @param miBandAddress
     * @throws IllegalArgumentException when the user info can not be created
     */
public static UserInfo getConfiguredUserInfo(String miBandAddress) throws IllegalArgumentException {
    ActivityUser activityUser = new ActivityUser();
    Prefs prefs = GBApplication.getPrefs();
    UserInfo info = UserInfo.create(miBandAddress, prefs.getString(MiBandConst.PREF_USER_ALIAS, null), activityUser.getGender(), activityUser.getAge(), activityUser.getHeightCm(), activityUser.getWeightKg(), 0);
    return info;
}
Also used : ActivityUser(nodomain.freeyourgadget.gadgetbridge.model.ActivityUser) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs)

Aggregations

Prefs (nodomain.freeyourgadget.gadgetbridge.util.Prefs)31 Intent (android.content.Intent)6 IOException (java.io.IOException)5 BluetoothGattCharacteristic (android.bluetooth.BluetoothGattCharacteristic)3 PowerManager (android.os.PowerManager)3 GregorianCalendar (java.util.GregorianCalendar)3 HashSet (java.util.HashSet)3 Alarm (nodomain.freeyourgadget.gadgetbridge.model.Alarm)3 NotificationSpec (nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec)3 TransactionBuilder (nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder)3 Notification (android.app.Notification)2 PackageManager (android.content.pm.PackageManager)2 Criteria (android.location.Criteria)2 Location (android.location.Location)2 LocationManager (android.location.LocationManager)2 Bundle (android.os.Bundle)2 StatusBarNotification (android.service.notification.StatusBarNotification)2 ArrayList (java.util.ArrayList)2 Calendar (java.util.Calendar)2 VibrationProfile (nodomain.freeyourgadget.gadgetbridge.devices.miband.VibrationProfile)2