Big refactoring: move classes and packages around to get a better structure

- model package contains mostly shared interfaces (UI+service), not named GB*
- impl package contains implementations of those interfaces, named GB*
  the impl classes should not be used by the service (not completely done)
- the service classes should mostly use classes inside the service and deviceevents
  packages (tbd)

Every device now has two packages:
- devices/[device name] for UI related functionality
- service[device name] for lowlevel communication
live-activity-data
cpfeiffer 2015-08-03 23:09:49 +02:00
parent afc4c9efaa
commit 7c597b325a
117 changed files with 487 additions and 376 deletions

View File

@ -30,7 +30,7 @@
android:label="@string/app_name"
android:theme="@style/GadgetbridgeTheme">
<activity
android:name=".ControlCenter"
android:name=".activities.ControlCenter"
android:label="@string/title_activity_controlcenter">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@ -39,32 +39,32 @@
</intent-filter>
</activity>
<activity
android:name=".SettingsActivity"
android:name=".activities.SettingsActivity"
android:label="@string/title_activity_settings">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ControlCenter" />
android:value=".activities.ControlCenter" />
</activity>
<activity
android:name=".miband.MiBandPreferencesActivity"
android:name=".devices.miband.MiBandPreferencesActivity"
android:label="@string/preferences_miband_settings">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SettingsActivity" />
android:value=".activities.SettingsActivity" />
</activity>
<activity
android:name=".AppManagerActivity"
android:name=".activities.AppManagerActivity"
android:label="@string/title_activity_appmanager">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ControlCenter" />
android:value=".activities.ControlCenter" />
</activity>
<activity
android:name=".activities.FwAppInstallerActivity"
android:label="@string/title_activity_fw_app_insaller">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="nodomain.freeyourgadget.gadgetbridge.ControlCenter" />
android:value=".activities.ControlCenter" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
@ -164,7 +164,7 @@
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
<service android:name=".BluetoothCommunicationService" />
<service android:name=".service.BluetoothCommunicationService" />
<receiver
android:name=".externalevents.PhoneCallReceiver"
@ -223,14 +223,14 @@
</intent-filter>
</receiver>
<receiver
android:name=".GBMusicControlReceiver"
android:name=".service.receivers.GBMusicControlReceiver"
android:exported="false">
<intent-filter>
<action android:name="nodomain.freeyourgadget.gadgetbridge.musiccontrol" />
</intent-filter>
</receiver>
<receiver
android:name=".GBCallControlReceiver"
android:name=".service.receivers.GBCallControlReceiver"
android:exported="false">
<intent-filter>
<action android:name="nodomain.freeyourgadget.gadgetbridge.callcontrol" />
@ -238,40 +238,40 @@
</receiver>
<activity
android:name=".DebugActivity"
android:name=".activities.DebugActivity"
android:label="@string/title_activity_debug">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ControlCenter" />
android:value=".activities.ControlCenter" />
</activity>
<activity
android:name=".discovery.DiscoveryActivity"
android:name=".activities.DiscoveryActivity"
android:label="@string/title_activity_discovery">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ControlCenter" />
android:value=".activities.ControlCenter" />
</activity>
<activity
android:name=".activities.AndroidPairingActivity"
android:label="@string/title_activity_android_pairing"></activity>
<activity
android:name=".miband.MiBandPairingActivity"
android:name=".devices.miband.MiBandPairingActivity"
android:label="@string/title_activity_mi_band_pairing"></activity>
<activity
android:name=".activities.ChartsActivity"
android:name=".activities.charts.ChartsActivity"
android:label="@string/title_activity_charts"
android:parentActivityName=".ControlCenter">
android:parentActivityName=".activities.ControlCenter">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="nodomain.freeyourgadget.gadgetbridge.ControlCenter" />
android:value=".activities.ControlCenter" />
</activity>
<activity
android:name=".activities.ConfigureAlarms"
android:label="@string/title_activity_set_alarm"
android:parentActivityName=".SettingsActivity" >
android:parentActivityName=".activities.SettingsActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="nodomain.freeyourgadget.gadgetbridge.SettingsActivity" />
android:value=".activities.SettingsActivity" />
</activity>
<activity
android:name=".activities.AlarmDetails"

View File

@ -8,7 +8,7 @@ import android.view.MenuItem;
import android.widget.CheckBox;
import android.widget.TimePicker;
import nodomain.freeyourgadget.gadgetbridge.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.content.BroadcastReceiver;
@ -21,7 +21,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAppAdapter;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class AppManagerActivity extends Activity {

View File

@ -11,12 +11,12 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.adapter.GBAlarmListAdapter;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_MIBAND_ALARMS;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ALARMS;
public class ConfigureAlarms extends ListActivity {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.app.ProgressDialog;
@ -29,11 +29,16 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import nodomain.freeyourgadget.gadgetbridge.activities.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.activities.ConfigureAlarms;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.adapter.GBDeviceAdapter;
import nodomain.freeyourgadget.gadgetbridge.discovery.DiscoveryActivity;
import nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class ControlCenter extends Activity {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.app.NotificationManager;
@ -21,8 +21,13 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
@ -92,7 +97,7 @@ public class DebugActivity extends Activity {
Intent startIntent = new Intent(DebugActivity.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_CALLSTATE);
startIntent.putExtra("call_phonenumber", editContent.getText().toString());
startIntent.putExtra("call_command", GBCommand.CALL_INCOMING.ordinal());
startIntent.putExtra("call_command", ServiceCommand.CALL_INCOMING.ordinal());
startService(startIntent);
}
});
@ -103,7 +108,7 @@ public class DebugActivity extends Activity {
Intent startIntent = new Intent(DebugActivity.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_CALLSTATE);
startIntent.putExtra("call_phonenumber", editContent.getText().toString());
startIntent.putExtra("call_command", GBCommand.CALL_OUTGOING.ordinal());
startIntent.putExtra("call_command", ServiceCommand.CALL_OUTGOING.ordinal());
startService(startIntent);
}
});
@ -114,7 +119,7 @@ public class DebugActivity extends Activity {
public void onClick(View v) {
Intent startIntent = new Intent(DebugActivity.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_CALLSTATE);
startIntent.putExtra("call_command", GBCommand.CALL_START.ordinal());
startIntent.putExtra("call_command", ServiceCommand.CALL_START.ordinal());
startService(startIntent);
}
});
@ -124,7 +129,7 @@ public class DebugActivity extends Activity {
public void onClick(View v) {
Intent startIntent = new Intent(DebugActivity.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_CALLSTATE);
startIntent.putExtra("call_command", GBCommand.CALL_END.ordinal());
startIntent.putExtra("call_command", ServiceCommand.CALL_END.ordinal());
startService(startIntent);
}
});

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.discovery;
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
@ -24,10 +24,11 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.adapter.DeviceCandidateAdapter;
@ -93,7 +94,7 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
private ProgressBar progressView;
private BluetoothAdapter adapter;
private ArrayList<DeviceCandidate> deviceCandidates = new ArrayList<>();
private ArrayList<GBDeviceCandidate> deviceCandidates = new ArrayList<>();
private DeviceCandidateAdapter cadidateListAdapter;
private Button startButton;
private Scanning isScanning = Scanning.SCANNING_OFF;
@ -153,7 +154,7 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
if (restoredCandidates != null) {
deviceCandidates.clear();
for (Parcelable p : restoredCandidates) {
deviceCandidates.add((DeviceCandidate) p);
deviceCandidates.add((GBDeviceCandidate) p);
}
}
}
@ -174,7 +175,7 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
}
private void handleDeviceFound(BluetoothDevice device, short rssi) {
DeviceCandidate candidate = new DeviceCandidate(device, rssi);
GBDeviceCandidate candidate = new GBDeviceCandidate(device, rssi);
if (DeviceHelper.getInstance().isSupported(candidate)) {
int index = deviceCandidates.indexOf(candidate);
if (index >= 0) {
@ -314,7 +315,7 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
DeviceCandidate deviceCandidate = deviceCandidates.get(position);
GBDeviceCandidate deviceCandidate = deviceCandidates.get(position);
if (deviceCandidate == null) {
LOG.error("Device candidate clicked, but item not found");
return;

View File

@ -17,14 +17,13 @@ import android.widget.TextView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.miband.MiBandFWHelper;
import nodomain.freeyourgadget.gadgetbridge.pebble.PBWReader;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandFWHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.pebble.PBWReader;
public class FwAppInstallerActivity extends Activity {

View File

@ -1,11 +1,11 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractSettingsActivity;
import nodomain.freeyourgadget.gadgetbridge.miband.MiBandPreferencesActivity;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandPreferencesActivity;
public class SettingsActivity extends AbstractSettingsActivity {
@Override

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.activities;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.Context;
import android.graphics.Color;
@ -20,16 +20,15 @@ import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.charts.SleepUtils;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.database.DBAccess;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public abstract class AbstractChartFragment extends Fragment {
private static final Logger LOG = LoggerFactory.getLogger(ActivitySleepChartFragment.class);
@ -61,11 +60,11 @@ public abstract class AbstractChartFragment extends Fragment {
protected Integer getColorFor(int activityKind) {
switch (activityKind) {
case nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind.TYPE_DEEP_SLEEP:
case ActivityKind.TYPE_DEEP_SLEEP:
return akDeepSleep.color;
case nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind.TYPE_LIGHT_SLEEP:
case ActivityKind.TYPE_LIGHT_SLEEP:
return akLightSleep.color;
case nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind.TYPE_ACTIVITY:
case ActivityKind.TYPE_ACTIVITY:
return akActivity.color;
}
return akActivity.color;

View File

@ -1,7 +1,10 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityAmounts;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
public class ActivityAnalysis {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.activities;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -22,9 +22,9 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.activities;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -22,9 +22,9 @@ import org.slf4j.LoggerFactory;
import java.util.Locale;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
public class ChartsActivity extends FragmentActivity {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.Context;
import android.util.AttributeSet;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.graphics.Typeface;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.activities;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -28,13 +28,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityAmount;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityAmounts;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityAnalysis;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityAmounts;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;

View File

@ -1,4 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
public class SleepUtils {
public static final float Y_VALUE_DEEP_SLEEP = 0.01f;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.activities;
package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -33,12 +33,11 @@ import java.util.Calendar;
import java.util.List;
import java.util.Locale;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityAnalysis;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.miband.MiBandCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;

View File

@ -10,16 +10,16 @@ import android.widget.TextView;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
public class DeviceCandidateAdapter extends ArrayAdapter<DeviceCandidate> {
public class DeviceCandidateAdapter extends ArrayAdapter<GBDeviceCandidate> {
private final Context context;
public DeviceCandidateAdapter(Context context, List<DeviceCandidate> deviceCandidates) {
public DeviceCandidateAdapter(Context context, List<GBDeviceCandidate> deviceCandidates) {
super(context, 0, deviceCandidates);
this.context = context;
@ -27,7 +27,7 @@ public class DeviceCandidateAdapter extends ArrayAdapter<DeviceCandidate> {
@Override
public View getView(int position, View view, ViewGroup parent) {
DeviceCandidate device = getItem(position);
GBDeviceCandidate device = getItem(position);
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context
@ -57,7 +57,7 @@ public class DeviceCandidateAdapter extends ArrayAdapter<DeviceCandidate> {
return view;
}
private String formatDeviceCandidate(DeviceCandidate device) {
private String formatDeviceCandidate(GBDeviceCandidate device) {
if (device.getRssi() > GBDevice.RSSI_UNKNOWN) {
return context.getString(R.string.device_with_rssi, device.getName(), GB.formatRssi(device.getRssi()));
}

View File

@ -15,9 +15,10 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Set;
import nodomain.freeyourgadget.gadgetbridge.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.ConfigureAlarms;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
public class GBAlarmListAdapter extends ArrayAdapter<GBAlarm> {
@ -109,13 +110,13 @@ public class GBAlarmListAdapter extends ArrayAdapter<GBAlarm> {
Switch isEnabled = (Switch) view.findViewById(R.id.alarm_item_toggle);
TextView isSmartWakeup = (TextView) view.findViewById(R.id.alarm_smart_wakeup);
highlightDay((TextView) view.findViewById(R.id.alarm_item_sunday), alarm.getRepetition(GBAlarm.ALARM_SUN));
highlightDay((TextView) view.findViewById(R.id.alarm_item_monday), alarm.getRepetition(GBAlarm.ALARM_MON));
highlightDay((TextView) view.findViewById(R.id.alarm_item_tuesday), alarm.getRepetition(GBAlarm.ALARM_TUE));
highlightDay((TextView) view.findViewById(R.id.alarm_item_wednesday), alarm.getRepetition(GBAlarm.ALARM_WED));
highlightDay((TextView) view.findViewById(R.id.alarm_item_thursday), alarm.getRepetition(GBAlarm.ALARM_THU));
highlightDay((TextView) view.findViewById(R.id.alarm_item_friday), alarm.getRepetition(GBAlarm.ALARM_FRI));
highlightDay((TextView) view.findViewById(R.id.alarm_item_saturday), alarm.getRepetition(GBAlarm.ALARM_SAT));
highlightDay((TextView) view.findViewById(R.id.alarm_item_sunday), alarm.getRepetition(Alarm.ALARM_SUN));
highlightDay((TextView) view.findViewById(R.id.alarm_item_monday), alarm.getRepetition(Alarm.ALARM_MON));
highlightDay((TextView) view.findViewById(R.id.alarm_item_tuesday), alarm.getRepetition(Alarm.ALARM_TUE));
highlightDay((TextView) view.findViewById(R.id.alarm_item_wednesday), alarm.getRepetition(Alarm.ALARM_WED));
highlightDay((TextView) view.findViewById(R.id.alarm_item_thursday), alarm.getRepetition(Alarm.ALARM_THU));
highlightDay((TextView) view.findViewById(R.id.alarm_item_friday), alarm.getRepetition(Alarm.ALARM_FRI));
highlightDay((TextView) view.findViewById(R.id.alarm_item_saturday), alarm.getRepetition(Alarm.ALARM_SAT));
isEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override

View File

@ -11,7 +11,7 @@ import android.widget.TextView;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
public class GBDeviceAdapter extends ArrayAdapter<GBDevice> {

View File

@ -10,7 +10,7 @@ import android.widget.TextView;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.R;
public class GBDeviceAppAdapter extends ArrayAdapter<GBDeviceApp> {

View File

@ -12,13 +12,13 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBActivitySample;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBActivitySample;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.database.schema.ActivityDBCreationScript;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import static nodomain.freeyourgadget.gadgetbridge.database.DBConstants.DATABASE_NAME;
import static nodomain.freeyourgadget.gadgetbridge.database.DBConstants.KEY_INTENSITY;

View File

@ -4,7 +4,7 @@ import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;

View File

@ -7,7 +7,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public interface DBHandler {
public SQLiteOpenHelper getHelper();

View File

@ -1,6 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge.deviceevents;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
public class GBDeviceEventAppInfo extends GBDeviceEvent {
public GBDeviceApp apps[];

View File

@ -1,14 +1,15 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.devices;
import android.app.Activity;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public interface DeviceCoordinator {
String EXTRA_DEVICE_MAC_ADDRESS = "nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate.EXTRA_MAC_ADDRESS";
String EXTRA_DEVICE_MAC_ADDRESS = "nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate.EXTRA_MAC_ADDRESS";
boolean supports(DeviceCandidate candidate);
boolean supports(GBDeviceCandidate candidate);
boolean supports(GBDevice device);

View File

@ -1,10 +1,13 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.devices;
import android.net.Uri;
import java.util.ArrayList;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
/**
* Specifies all events that GadgetBridge intends to send to the gadget device.
* Implementations can decide to ignore events that they do not support.
@ -19,9 +22,9 @@ public interface EventHandler {
void onSetTime(long ts);
void onSetAlarms(ArrayList<GBAlarm> alarms);
void onSetAlarms(ArrayList<Alarm> alarms);
void onSetCallState(String number, String name, GBCommand command);
void onSetCallState(String number, String name, ServiceCommand command);
void onSetMusicInfo(String artist, String album, String track);

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.model;
package nodomain.freeyourgadget.gadgetbridge.devices;
public interface SampleProvider {
public static final byte PROVIDER_MIBAND = 0;

View File

@ -1,10 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.devices;
import android.app.Activity;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
public class UnknownDeviceCoordinator implements DeviceCoordinator {
private final UnknownSampleProvider sampleProvider;
@ -27,7 +29,7 @@ public class UnknownDeviceCoordinator implements DeviceCoordinator {
@Override
public byte getID() {
return SampleProvider.PROVIDER_UNKNOWN;
return PROVIDER_UNKNOWN;
}
}
@ -36,7 +38,7 @@ public class UnknownDeviceCoordinator implements DeviceCoordinator {
}
@Override
public boolean supports(DeviceCandidate candidate) {
public boolean supports(GBDeviceCandidate candidate) {
return false;
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.content.SharedPreferences;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.app.Activity;
import android.content.SharedPreferences;
@ -9,13 +9,13 @@ import org.slf4j.LoggerFactory;
import java.util.Calendar;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.activities.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class MiBandCoordinator implements DeviceCoordinator {
private static final Logger LOG = LoggerFactory.getLogger(MiBandCoordinator.class);
@ -26,7 +26,7 @@ public class MiBandCoordinator implements DeviceCoordinator {
}
@Override
public boolean supports(DeviceCandidate candidate) {
public boolean supports(GBDeviceCandidate candidate) {
return candidate.getMacAddress().toUpperCase().startsWith(MiBandService.MAC_ADDRESS_FILTER);
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.content.ContentResolver;
import android.content.Context;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
@ -8,8 +8,8 @@ import android.bluetooth.BluetoothGattDescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.btle.NotifyAction;
import nodomain.freeyourgadget.gadgetbridge.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.NotifyAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
/**
* Enables or disables notifications for a given GATT characteristic.

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.app.Activity;
import android.content.BroadcastReceiver;
@ -12,12 +12,12 @@ import android.support.v4.content.LocalBroadcastManager;
import android.widget.TextView;
import android.widget.Toast;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.discovery.DiscoveryActivity;
import nodomain.freeyourgadget.gadgetbridge.activities.DiscoveryActivity;
public class MiBandPairingActivity extends Activity {

View File

@ -1,30 +1,30 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.support.v4.content.LocalBroadcastManager;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractSettingsActivity;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_GENERIC;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_INCOMING_CALL;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_K9MAIL;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_PEBBLEMSG;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_SMS;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_MIBAND_ADDRESS;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_MIBAND_FITNESS_GOAL;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_MIBAND_WEARSIDE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_USER_ALIAS;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_USER_GENDER;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_USER_HEIGHT_CM;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_USER_WEIGHT_KG;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_USER_YEAR_OF_BIRTH;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.getNotificationPrefKey;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_GENERIC;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_INCOMING_CALL;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_K9MAIL;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_PEBBLEMSG;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_SMS;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ADDRESS;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_FITNESS_GOAL;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_WEARSIDE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_USER_ALIAS;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_USER_GENDER;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_USER_HEIGHT_CM;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_USER_WEIGHT_KG;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_USER_YEAR_OF_BIRTH;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefKey;
public class MiBandPreferencesActivity extends AbstractSettingsActivity {
@Override

View File

@ -1,7 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class MiBandSampleProvider implements SampleProvider {
public static final byte TYPE_DEEP_SLEEP = 5;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import java.util.HashMap;
import java.util.Map;

View File

@ -1,12 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.bluetooth.BluetoothGattCharacteristic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.btle.NotifyAction;
import nodomain.freeyourgadget.gadgetbridge.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.NotifyAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
public class MiBandTransactionBuilder extends TransactionBuilder {
private static final Logger LOG = LoggerFactory.getLogger(MiBandTransactionBuilder.class);

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
/**
* Created by UgoRaffaele on 30/01/2015.

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import android.content.Context;

View File

@ -1,7 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class MorpheuzSampleProvider implements SampleProvider {
// raw types

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import android.content.ContentResolver;
import android.content.Context;
@ -21,7 +21,8 @@ import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.service.pebble.PebbleProtocol;
public class PBWReader {
private static final Logger LOG = LoggerFactory.getLogger(PBWReader.class);

View File

@ -1,13 +1,13 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import android.app.Activity;
import nodomain.freeyourgadget.gadgetbridge.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.discovery.DeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.activities.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class PebbleCoordinator implements DeviceCoordinator {
private MorpheuzSampleProvider sampleProvider;
@ -18,7 +18,7 @@ public class PebbleCoordinator implements DeviceCoordinator {
}
@Override
public boolean supports(DeviceCandidate candidate) {
public boolean supports(GBDeviceCandidate candidate) {
return candidate.getName().startsWith("Pebble");
}

View File

@ -1,6 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class PebbleGadgetBridgeSampleProvider extends MorpheuzSampleProvider {
public PebbleGadgetBridgeSampleProvider() {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
public class PebbleInstallable {
final private byte type;

View File

@ -8,8 +8,8 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.ControlCenter;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter;
public class BluetoothStateChangeReceiver extends BroadcastReceiver {
@Override

View File

@ -12,7 +12,7 @@ import android.preference.PreferenceManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class K9Receiver extends BroadcastReceiver {

View File

@ -7,7 +7,7 @@ import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class MusicPlaybackReceiver extends BroadcastReceiver {
private static final Logger LOG = LoggerFactory.getLogger(MusicPlaybackReceiver.class);

View File

@ -17,7 +17,7 @@ import android.support.v4.content.LocalBroadcastManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class NotificationListener extends NotificationListenerService {

View File

@ -12,7 +12,7 @@ import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class PebbleReceiver extends BroadcastReceiver {

View File

@ -5,8 +5,8 @@ import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.GBCommand;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
public class PhoneCallReceiver extends BroadcastReceiver {
@ -39,25 +39,25 @@ public class PhoneCallReceiver extends BroadcastReceiver {
return;
}
GBCommand callCommand = null;
ServiceCommand callCommand = null;
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
mSavedNumber = number;
callCommand = GBCommand.CALL_INCOMING;
callCommand = ServiceCommand.CALL_INCOMING;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
if (mLastState == TelephonyManager.CALL_STATE_RINGING) {
callCommand = GBCommand.CALL_START;
callCommand = ServiceCommand.CALL_START;
} else {
callCommand = GBCommand.CALL_OUTGOING;
callCommand = ServiceCommand.CALL_OUTGOING;
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if (mLastState == TelephonyManager.CALL_STATE_RINGING) {
//missed call would be correct here
callCommand = GBCommand.CALL_END;
callCommand = ServiceCommand.CALL_END;
} else {
callCommand = GBCommand.CALL_END;
callCommand = ServiceCommand.CALL_END;
}
break;
}

View File

@ -9,7 +9,7 @@ import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.telephony.SmsMessage;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class SMSReceiver extends BroadcastReceiver {

View File

@ -9,7 +9,7 @@ import android.preference.PreferenceManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.BluetoothCommunicationService;
import nodomain.freeyourgadget.gadgetbridge.service.BluetoothCommunicationService;
public class TimeChangeReceiver extends BroadcastReceiver {

View File

@ -1,7 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.impl;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
public class GBActivitySample implements ActivitySample {
private final int timestamp;

View File

@ -1,8 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.impl;
import android.content.SharedPreferences;
import android.os.Parcel;
import android.os.Parcelable;
import android.preference.PreferenceManager;
import java.util.Calendar;
@ -10,10 +9,13 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.PREF_MIBAND_ALARMS;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ALARMS;
public class GBAlarm implements Parcelable, Comparable {
public class GBAlarm implements Alarm {
private int index;
private boolean enabled;
@ -22,15 +24,6 @@ public class GBAlarm implements Parcelable, Comparable {
private int hour;
private int minute;
public static final byte ALARM_ONCE = 0;
public static final byte ALARM_MON = 1;
public static final byte ALARM_TUE = 2;
public static final byte ALARM_WED = 4;
public static final byte ALARM_THU = 8;
public static final byte ALARM_FRI = 16;
public static final byte ALARM_SAT = 32;
public static final byte ALARM_SUN = 64;
public static final String[] DEFAULT_ALARMS = {"2,false,false,0,15,30", "1,false,false,96,8,0", "0,false,true,31,7,30"};
@ -95,19 +88,21 @@ public class GBAlarm implements Parcelable, Comparable {
}
@Override
public int compareTo(Object another) {
if (this.getIndex() < ((GBAlarm) another).getIndex()) {
public int compareTo(Alarm another) {
if (this.getIndex() < another.getIndex()) {
return -1;
} else if (this.getIndex() > ((GBAlarm) another).getIndex()) {
} else if (this.getIndex() > another.getIndex()) {
return 1;
}
return 0;
}
@Override
public int getIndex() {
return this.index;
}
@Override
public String getTime() {
return String.format("%02d", this.hour) + ":" + String.format("%02d", this.minute);
}
@ -120,6 +115,7 @@ public class GBAlarm implements Parcelable, Comparable {
return this.minute;
}
@Override
public Calendar getAlarmCal() {
Calendar alarm = Calendar.getInstance();
@ -133,18 +129,22 @@ public class GBAlarm implements Parcelable, Comparable {
return alarm;
}
@Override
public boolean isEnabled() {
return this.enabled;
}
@Override
public boolean isSmartWakeup() {
return this.smartWakeup;
}
@Override
public boolean getRepetition(int dow) {
return (this.repetition & dow) > 0;
}
@Override
public int getRepetitionMask() {
return this.repetition;
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.impl;
import android.content.Context;
import android.content.Intent;
@ -9,6 +9,10 @@ import android.support.v4.content.LocalBroadcastManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
public class GBDevice implements Parcelable {
public static final String ACTION_DEVICE_CHANGED
= "nodomain.freeyourgadget.gadgetbridge.gbdevice.action.device_changed";

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.impl;
import java.util.UUID;

View File

@ -1,26 +1,26 @@
package nodomain.freeyourgadget.gadgetbridge.discovery;
package nodomain.freeyourgadget.gadgetbridge.impl;
import android.bluetooth.BluetoothDevice;
import android.os.Parcel;
import android.os.Parcelable;
import nodomain.freeyourgadget.gadgetbridge.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
/**
*/
public class DeviceCandidate implements Parcelable {
public class GBDeviceCandidate implements Parcelable {
private BluetoothDevice device;
private short rssi;
private DeviceType deviceType = DeviceType.UNKNOWN;
public DeviceCandidate(BluetoothDevice device, short rssi) {
public GBDeviceCandidate(BluetoothDevice device, short rssi) {
this.device = device;
this.rssi = rssi;
}
private DeviceCandidate(Parcel in) {
private GBDeviceCandidate(Parcel in) {
device = in.readParcelable(getClass().getClassLoader());
rssi = (short) in.readInt();
deviceType = DeviceType.valueOf(in.readString());
@ -74,7 +74,7 @@ public class DeviceCandidate implements Parcelable {
return false;
}
DeviceCandidate that = (DeviceCandidate) o;
GBDeviceCandidate that = (GBDeviceCandidate) o;
return device.getAddress().equals(that.device.getAddress());
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.database;
package nodomain.freeyourgadget.gadgetbridge.impl;
import nodomain.freeyourgadget.gadgetbridge.model.SummaryOfDay;

View File

@ -1,7 +1,9 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.model;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
public class ActivityAmount {
private int activityKind;
private short percent;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.model;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,8 +1,8 @@
package nodomain.freeyourgadget.gadgetbridge.charts;
package nodomain.freeyourgadget.gadgetbridge.model;
import java.util.Arrays;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class ActivityKind {
public static final int TYPE_UNKNOWN = 0;

View File

@ -1,6 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge.model;
import nodomain.freeyourgadget.gadgetbridge.charts.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public interface ActivitySample {
/**

View File

@ -0,0 +1,30 @@
package nodomain.freeyourgadget.gadgetbridge.model;
import android.os.Parcelable;
import java.util.Calendar;
public interface Alarm extends Parcelable, Comparable<Alarm> {
public static final byte ALARM_ONCE = 0;
public static final byte ALARM_MON = 1;
public static final byte ALARM_TUE = 2;
public static final byte ALARM_WED = 4;
public static final byte ALARM_THU = 8;
public static final byte ALARM_FRI = 16;
public static final byte ALARM_SAT = 32;
public static final byte ALARM_SUN = 64;
int getIndex();
Calendar getAlarmCal();
String getTime();
boolean isEnabled();
boolean isSmartWakeup();
int getRepetitionMask();
boolean getRepetition(int dow);
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.model;
public enum DeviceType {
UNKNOWN,

View File

@ -1,6 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.model;
public enum GBCommand {
public enum ServiceCommand {
UNDEFINEND,

View File

@ -1,13 +1,14 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.devices.EventHandler;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes;
import nodomain.freeyourgadget.gadgetbridge.protocol.GBDeviceProtocol;
/**
* An abstract base class for all devices connected via Bluetooth
@ -134,7 +135,7 @@ public abstract class AbstractBTDeviceSupport extends AbstractDeviceSupport {
}
@Override
public void onSetCallState(String number, String name, GBCommand command) {
public void onSetCallState(String number, String name, ServiceCommand command) {
byte[] bytes = gbDeviceProtocol.encodeSetCallState(number, name, command);
sendToDevice(bytes);
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import android.app.Notification;
import android.app.NotificationManager;
@ -18,7 +18,13 @@ import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractChartFragment;
import nodomain.freeyourgadget.gadgetbridge.activities.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBCallControlReceiver;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBMusicControlReceiver;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.activities.charts.AbstractChartFragment;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppInfo;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventCallControl;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import android.app.NotificationManager;
import android.app.Service;
@ -24,9 +24,15 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.GBDevice.State;
import nodomain.freeyourgadget.gadgetbridge.miband.MiBandSupport;
import nodomain.freeyourgadget.gadgetbridge.pebble.PebbleSupport;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.State;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import nodomain.freeyourgadget.gadgetbridge.service.miband.MiBandSupport;
import nodomain.freeyourgadget.gadgetbridge.service.pebble.PebbleSupport;
public class BluetoothCommunicationService extends Service {
public static final String ACTION_START
@ -219,7 +225,7 @@ public class BluetoothCommunicationService extends Service {
break;
}
case ACTION_CALLSTATE:
GBCommand command = GBCommand.values()[intent.getIntExtra("call_command", 0)]; // UGLY
ServiceCommand command = ServiceCommand.values()[intent.getIntExtra("call_command", 0)]; // UGLY
String phoneNumber = intent.getStringExtra("call_phonenumber");
String callerName = null;
@ -270,7 +276,7 @@ public class BluetoothCommunicationService extends Service {
mStarted = true;
break;
case ACTION_SET_ALARMS:
ArrayList<GBAlarm> alarms = intent.getParcelableArrayListExtra("alarms");
ArrayList<Alarm> alarms = intent.getParcelableArrayListExtra("alarms");
mDeviceSupport.onSetAlarms(alarms);
break;
}

View File

@ -1,8 +1,11 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.devices.EventHandler;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
/**
* Provides the communication support for a specific device. Instances will <b>only</b>
* be used inside the BluetoothCommunicationService. Has hooks to manage the life cycle

View File

@ -1,7 +1,9 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public abstract class GBDeviceIoThread extends Thread {
protected final GBDevice gbDevice;
private final Context context;

View File

@ -1,8 +1,8 @@
package nodomain.freeyourgadget.gadgetbridge.protocol;
package nodomain.freeyourgadget.gadgetbridge.service;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.GBCommand;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
public abstract class GBDeviceProtocol {
@ -23,7 +23,7 @@ public abstract class GBDeviceProtocol {
return null;
}
public byte[] encodeSetCallState(String number, String name, GBCommand command) {
public byte[] encodeSetCallState(String number, String name, ServiceCommand command) {
return null;
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge;
package nodomain.freeyourgadget.gadgetbridge.service;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
@ -10,6 +10,10 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
/**
* Wraps another device support instance and supports busy-checking and throttling of events.
*/
@ -125,7 +129,7 @@ public class ServiceDeviceSupport implements DeviceSupport {
// No throttling for the other events
@Override
public void onSetCallState(String number, String name, GBCommand command) {
public void onSetCallState(String number, String name, ServiceCommand command) {
if (checkBusy("set call state")) {
return;
}
@ -229,7 +233,7 @@ public class ServiceDeviceSupport implements DeviceSupport {
}
@Override
public void onSetAlarms(ArrayList<GBAlarm> alarms) {
public void onSetAlarms(ArrayList<Alarm> alarms) {
if (checkBusy("set alarms")) {
return;
}

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
@ -15,7 +15,7 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.AbstractDeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.service.AbstractDeviceSupport;
/**
* Abstract base class for all devices connected through Bluetooth Low Energy (LE) aka

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@ -19,9 +19,9 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingQueue;
import nodomain.freeyourgadget.gadgetbridge.DeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.GBDevice.State;
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.State;
/**
* One queue/thread per connectable device.

View File

@ -1,9 +1,10 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.AbortTransactionAction;
/**
* A special action that is executed at the very front of the initialization

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import java.text.DateFormat;
import java.util.ArrayList;

View File

@ -1,10 +1,15 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle;
import android.bluetooth.BluetoothGattCharacteristic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.NotifyAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.ReadAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WaitAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction;
public class TransactionBuilder {
private static final Logger LOG = LoggerFactory.getLogger(TransactionBuilder.class);

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
@ -7,6 +7,9 @@ import android.bluetooth.BluetoothGattCharacteristic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
/**
* Enables or disables notifications for a given GATT characteristic.
* The result will be made available asynchronously through the

View File

@ -1,4 +1,6 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction;
/**
* An abstract non-BTLE action. It performs no bluetooth operation,

View File

@ -1,9 +1,11 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction;
/**
* Invokes a read operation on a given GATT characteristic.
* The result will be made available asynchronously through the

View File

@ -1,9 +1,9 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SetDeviceBusyAction extends PlainAction {
private final GBDevice device;

View File

@ -1,10 +1,9 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.btle.PlainAction;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SetDeviceStateAction extends PlainAction {
private final GBDevice device;

View File

@ -1,9 +1,9 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.content.Context;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
public class SetProgressAction extends PlainAction {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;

View File

@ -1,9 +1,11 @@
package nodomain.freeyourgadget.gadgetbridge.btle;
package nodomain.freeyourgadget.gadgetbridge.service.btle.actions;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction;
/**
* Invokes a write operation on a given GATT characteristic.
* The result status will be made available asynchronously through the

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.service.miband;
public class AbstractInfo {
protected byte[] mData;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.service.miband;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.service.miband;
import java.util.Locale;

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.miband;
package nodomain.freeyourgadget.gadgetbridge.service.miband;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
@ -20,42 +20,49 @@ import java.util.GregorianCalendar;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.GBCommand;
import nodomain.freeyourgadget.gadgetbridge.GBDevice.State;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.State;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.btle.AbortTransactionAction;
import nodomain.freeyourgadget.gadgetbridge.btle.AbstractBTLEDeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.btle.BtLEAction;
import nodomain.freeyourgadget.gadgetbridge.btle.SetDeviceBusyAction;
import nodomain.freeyourgadget.gadgetbridge.btle.SetProgressAction;
import nodomain.freeyourgadget.gadgetbridge.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandFWHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandTransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.VibrationProfile;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEDeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.AbortTransactionAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceBusyAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction;
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetProgressAction;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_FLASH_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_FLASH_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_FLASH_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_FLASH_ORIGINAL_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_PAUSE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.FLASH_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.FLASH_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.FLASH_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.FLASH_ORIGINAL_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_GENERIC;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_K9MAIL;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.ORIGIN_SMS;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_PAUSE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.getNotificationPrefIntValue;
import static nodomain.freeyourgadget.gadgetbridge.miband.MiBandConst.getNotificationPrefStringValue;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_FLASH_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_FLASH_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_FLASH_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_FLASH_ORIGINAL_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_PAUSE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.FLASH_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.FLASH_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.FLASH_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.FLASH_ORIGINAL_COLOUR;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_GENERIC;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_K9MAIL;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.ORIGIN_SMS;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_COUNT;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_DURATION;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_PAUSE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_PROFILE;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefIntValue;
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefStringValue;
public class MiBandSupport extends AbstractBTLEDeviceSupport {
@ -387,11 +394,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
}
@Override
public void onSetAlarms(ArrayList<GBAlarm> alarms) {
public void onSetAlarms(ArrayList<Alarm> alarms) {
try {
BluetoothGattCharacteristic characteristic = getCharacteristic(MiBandService.UUID_CHARACTERISTIC_CONTROL_POINT);
TransactionBuilder builder = performInitialized("Set alarm");
for (GBAlarm alarm : alarms) {
for (Alarm alarm : alarms) {
queueAlarm(alarm, builder, characteristic);
}
builder.queue(getQueue());
@ -459,8 +466,8 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
}
@Override
public void onSetCallState(String number, String name, GBCommand command) {
if (GBCommand.CALL_INCOMING.equals(command)) {
public void onSetCallState(String number, String name, ServiceCommand command) {
if (ServiceCommand.CALL_INCOMING.equals(command)) {
telephoneRinging = true;
AbortTransactionAction abortAction = new AbortTransactionAction() {
@Override
@ -469,7 +476,7 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
}
};
performPreferredNotification("incoming call", MiBandConst.ORIGIN_INCOMING_CALL, abortAction);
} else if (GBCommand.CALL_START.equals(command) || GBCommand.CALL_END.equals(command)) {
} else if (ServiceCommand.CALL_START.equals(command) || ServiceCommand.CALL_END.equals(command)) {
telephoneRinging = false;
}
}
@ -752,7 +759,7 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport {
* @param builder
* @param characteristic
*/
private void queueAlarm(GBAlarm alarm, TransactionBuilder builder, BluetoothGattCharacteristic characteristic) {
private void queueAlarm(Alarm alarm, TransactionBuilder builder, BluetoothGattCharacteristic characteristic) {
Calendar alarmCal = alarm.getAlarmCal();
byte[] alarmMessage = new byte[]{
(byte) MiBandService.COMMAND_SET_TIMER,

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.service.pebble;
import android.util.Pair;
@ -17,7 +17,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBException;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
public class GadgetbridgePblSupport {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.service.pebble;
import android.util.Pair;
@ -17,7 +17,8 @@ import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSleepMonitorResult;
import nodomain.freeyourgadget.gadgetbridge.model.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.pebble.MorpheuzSampleProvider;
public class MorpheuzSupport {

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.service.pebble;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@ -19,14 +19,16 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.zip.ZipInputStream;
import nodomain.freeyourgadget.gadgetbridge.GB;
import nodomain.freeyourgadget.gadgetbridge.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceIoThread;
import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.devices.pebble.PBWReader;
import nodomain.freeyourgadget.gadgetbridge.devices.pebble.PebbleInstallable;
import nodomain.freeyourgadget.gadgetbridge.service.GBDeviceIoThread;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppInfo;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppManagementResult;
import nodomain.freeyourgadget.gadgetbridge.protocol.GBDeviceProtocol;
import nodomain.freeyourgadget.gadgetbridge.service.GBDeviceProtocol;
public class PebbleIoThread extends GBDeviceIoThread {
private static final Logger LOG = LoggerFactory.getLogger(PebbleIoThread.class);

View File

@ -1,4 +1,4 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.service.pebble;
import android.util.Pair;
@ -13,8 +13,8 @@ import java.util.Random;
import java.util.SimpleTimeZone;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.GBCommand;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceApp;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppInfo;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventAppManagementResult;
@ -24,7 +24,7 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventMusicContr
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventScreenshot;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventVersionInfo;
import nodomain.freeyourgadget.gadgetbridge.protocol.GBDeviceProtocol;
import nodomain.freeyourgadget.gadgetbridge.service.GBDeviceProtocol;
public class PebbleProtocol extends GBDeviceProtocol {
@ -107,9 +107,9 @@ public class PebbleProtocol extends GBDeviceProtocol {
static final byte PUTBYTES_ABORT = 4;
static final byte PUTBYTES_COMPLETE = 5;
static final byte PUTBYTES_TYPE_FIRMWARE = 1;
static final byte PUTBYTES_TYPE_RECOVERY = 2;
static final byte PUTBYTES_TYPE_SYSRESOURCES = 3;
public static final byte PUTBYTES_TYPE_FIRMWARE = 1;
public static final byte PUTBYTES_TYPE_RECOVERY = 2;
public static final byte PUTBYTES_TYPE_SYSRESOURCES = 3;
public static final byte PUTBYTES_TYPE_RESOURCES = 4;
public static final byte PUTBYTES_TYPE_BINARY = 5;
static final byte PUTBYTES_TYPE_FILE = 6;
@ -287,7 +287,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
@Override
public byte[] encodeFindDevice(boolean start) {
return encodeSetCallState("Where are you?", "Gadgetbridge", start ? GBCommand.CALL_INCOMING : GBCommand.CALL_END);
return encodeSetCallState("Where are you?", "Gadgetbridge", start ? ServiceCommand.CALL_INCOMING : ServiceCommand.CALL_END);
}
private static byte[] encodeExtensibleNotification(int id, int timestamp, String title, String subtitle, String body, byte type) {
@ -450,7 +450,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
}
@Override
public byte[] encodeSetCallState(String number, String name, GBCommand command) {
public byte[] encodeSetCallState(String number, String name, ServiceCommand command) {
String[] parts = {number, name};
byte pebbleCmd;
switch (command) {

View File

@ -1,13 +1,13 @@
package nodomain.freeyourgadget.gadgetbridge.pebble;
package nodomain.freeyourgadget.gadgetbridge.service.pebble;
import android.net.Uri;
import java.util.ArrayList;
import nodomain.freeyourgadget.gadgetbridge.AbstractBTDeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.GBAlarm;
import nodomain.freeyourgadget.gadgetbridge.GBDeviceIoThread;
import nodomain.freeyourgadget.gadgetbridge.protocol.GBDeviceProtocol;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import nodomain.freeyourgadget.gadgetbridge.service.AbstractBTDeviceSupport;
import nodomain.freeyourgadget.gadgetbridge.service.GBDeviceIoThread;
import nodomain.freeyourgadget.gadgetbridge.service.GBDeviceProtocol;
public class PebbleSupport extends AbstractBTDeviceSupport {
@ -43,7 +43,7 @@ public class PebbleSupport extends AbstractBTDeviceSupport {
}
@Override
public void onSetAlarms(ArrayList<GBAlarm> alarms) {
public void onSetAlarms(ArrayList<Alarm> alarms) {
//nothing to do ATM
}
}

Some files were not shown because too many files have changed in this diff Show More