diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractGBFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractGBFragment.java index 6a77ae4d..8c2e770d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractGBFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractGBFragment.java @@ -43,7 +43,7 @@ public abstract class AbstractGBFragment extends Fragment { } protected void updateActivityTitle() { - FragmentActivity activity = (FragmentActivity) getActivity(); + FragmentActivity activity = getActivity(); if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) { if (getTitle() != null) { activity.setTitle(getTitle()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java index aca51f45..26ccfe0a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; * to set that listener in #onCreate, *not* in #onPostCreate, otherwise the value will * not be displayed. */ -public class AbstractSettingsActivity extends PreferenceActivity { +public abstract class AbstractSettingsActivity extends PreferenceActivity { private static final Logger LOG = LoggerFactory.getLogger(AbstractSettingsActivity.class); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java index 92f13307..fa0a719c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java @@ -27,7 +27,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Set; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index 784d1cb6..254bb177 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -569,7 +569,7 @@ public abstract class AbstractChartFragment extends AbstractGBFragment { @Override protected void onPostExecute(Object o) { super.onPostExecute(o); - FragmentActivity activity = (FragmentActivity) getActivity(); + FragmentActivity activity = getActivity(); if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) { renderCharts(); } else { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java index e90ee1e8..58f4848b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java @@ -10,9 +10,7 @@ import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.content.LocalBroadcastManager; -import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerTabStrip; -import android.support.v4.view.PagerTitleStrip; import android.support.v4.view.ViewPager; import android.support.v4.widget.SwipeRefreshLayout; import android.view.Menu; @@ -27,7 +25,6 @@ import android.widget.Toast; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java index 06c9758d..543ed42e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsHost.java @@ -7,9 +7,9 @@ import java.util.Date; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; public interface ChartsHost { - static final String DATE_PREV = ChartsActivity.class.getName().concat(".date_prev"); - static final String DATE_NEXT = ChartsActivity.class.getName().concat(".date_next"); - static final String REFRESH = ChartsActivity.class.getName().concat(".refresh"); + String DATE_PREV = ChartsActivity.class.getName().concat(".date_prev"); + String DATE_NEXT = ChartsActivity.class.getName().concat(".date_next"); + String REFRESH = ChartsActivity.class.getName().concat(".refresh"); GBDevice getDevice(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SingleEntryValueAnimator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SingleEntryValueAnimator.java index 2a48882d..3655f3ba 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SingleEntryValueAnimator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SingleEntryValueAnimator.java @@ -1,6 +1,5 @@ package nodomain.freeyourgadget.gadgetbridge.activities.charts; -import android.animation.Animator; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepUtils.java index 9926656d..58782bf8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/SleepUtils.java @@ -6,7 +6,7 @@ public class SleepUtils { public static final float Y_VALUE_DEEP_SLEEP = 0.01f; public static final float Y_VALUE_LIGHT_SLEEP = 0.016f; - public static final boolean isSleep(byte type) { + public static boolean isSleep(byte type) { return type == ActivityKind.TYPE_DEEP_SLEEP || type == ActivityKind.TYPE_LIGHT_SLEEP; } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java index cc60346f..55b197bb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java @@ -40,7 +40,7 @@ public class GBAlarmListAdapter extends ArrayAdapter { super(context, 0, new ArrayList()); this.mContext = context; - alarmList = new ArrayList(); + alarmList = new ArrayList<>(); for (String alarmString : preferencesAlarmListSet) { alarmList.add(new GBAlarm(alarmString)); @@ -50,7 +50,7 @@ public class GBAlarmListAdapter extends ArrayAdapter { } public void setAlarmList(Set preferencesAlarmListSet) { - alarmList = new ArrayList(); + alarmList = new ArrayList<>(); for (String alarmString : preferencesAlarmListSet) { alarmList.add(new GBAlarm(alarmString)); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/ActivityDatabaseHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/ActivityDatabaseHandler.java index ded7db21..d0263b57 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/ActivityDatabaseHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/ActivityDatabaseHandler.java @@ -202,7 +202,7 @@ public class ActivityDatabaseHandler extends SQLiteOpenHelper implements DBHandl if (timestamp_from < 0) { throw new IllegalArgumentException("negative timestamp_from"); } - ArrayList samples = new ArrayList(); + ArrayList samples = new ArrayList<>(); final String where = "(provider=" + provider.getID() + " and timestamp>=" + timestamp_from + " and timestamp<=" + timestamp_to + getWhereClauseFor(activityTypes, provider) + ")"; LOG.info("Activity query where: " + where); final String order = "timestamp"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java index b157d22f..28e5fcf8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java @@ -1,7 +1,6 @@ package nodomain.freeyourgadget.gadgetbridge.devices; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { public boolean allowFetchActivityData(GBDevice device) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/InstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/InstallHandler.java index c2d152da..1314dc0e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/InstallHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/InstallHandler.java @@ -13,7 +13,7 @@ public interface InstallHandler { * Returns true if this handler is able to install the element. * #validateInstallation may only be called if this method returned true. */ - public boolean isValid(); + boolean isValid(); /** * Checks whether the installation of the 'element' on the device is possible diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java index 6e9a495b..20c9d4af 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandCoordinator.java @@ -14,7 +14,6 @@ import java.util.Calendar; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandFWHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandFWHelper.java index c2d9cd0c..e3c0ece4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandFWHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandFWHelper.java @@ -45,6 +45,9 @@ public class MiBandFWHelper { public MiBandFWHelper(Uri uri, Context context) throws IOException { this.uri = uri; cr = context.getContentResolver(); + if (cr == null) { + throw new IOException("No content resolver"); + } String pebblePattern = ".*\\.(pbw|pbz|pbl)"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandService.java index 84a72732..6ce3e26e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandService.java @@ -4,9 +4,6 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; -import nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic; -import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService; - import static nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEDeviceSupport.BASE_UUID; public class MiBandService { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PBWReader.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PBWReader.java index 4e00aa13..4025ca08 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PBWReader.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PBWReader.java @@ -32,7 +32,7 @@ public class PBWReader { private static final HashMap appFileTypesMap; static { - appFileTypesMap = new HashMap(); + appFileTypesMap = new HashMap<>(); appFileTypesMap.put("application", PebbleProtocol.PUTBYTES_TYPE_BINARY); appFileTypesMap.put("resources", PebbleProtocol.PUTBYTES_TYPE_RESOURCES); appFileTypesMap.put("worker", PebbleProtocol.PUTBYTES_TYPE_WORKER); @@ -41,7 +41,7 @@ public class PBWReader { private static final HashMap fwFileTypesMap; static { - fwFileTypesMap = new HashMap(); + fwFileTypesMap = new HashMap<>(); fwFileTypesMap.put("firmware", PebbleProtocol.PUTBYTES_TYPE_FIRMWARE); fwFileTypesMap.put("resources", PebbleProtocol.PUTBYTES_TYPE_SYSRESOURCES); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java index 18ac6e76..80450f72 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/PebbleCoordinator.java @@ -9,7 +9,6 @@ import android.preference.PreferenceManager; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.activities.AppManagerActivity; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator; -import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/K9Receiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/K9Receiver.java index c8bf1cd9..281e0052 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/K9Receiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/K9Receiver.java @@ -55,17 +55,24 @@ public class K9Receiver extends BroadcastReceiver { * It should be the first one returned by the query in most cases, */ Cursor c = context.getContentResolver().query(k9Uri, messagesProjection, null, null, null); - c.moveToFirst(); - do { - String uri = c.getString(c.getColumnIndex("uri")); - if (uri.equals(uriWanted)) { - notificationSpec.sender = c.getString(c.getColumnIndex("senderAddress")); - notificationSpec.subject = c.getString(c.getColumnIndex("subject")); - notificationSpec.body = c.getString(c.getColumnIndex("preview")); - break; + try { + if (c != null) { + c.moveToFirst(); + do { + String uri = c.getString(c.getColumnIndex("uri")); + if (uri.equals(uriWanted)) { + notificationSpec.sender = c.getString(c.getColumnIndex("senderAddress")); + notificationSpec.subject = c.getString(c.getColumnIndex("subject")); + notificationSpec.body = c.getString(c.getColumnIndex("preview")); + break; + } + } while (c.moveToNext()); } - } while (c.moveToNext()); - c.close(); + } finally { + if (c != null) { + c.close(); + } + } GBApplication.deviceService().onNotification(notificationSpec); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBAlarm.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBAlarm.java index 93041fc1..bca028cd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBAlarm.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBAlarm.java @@ -190,7 +190,7 @@ public class GBAlarm implements Alarm { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(GBApplication.getContext()); Set preferencesAlarmListSet = sharedPrefs.getStringSet(PREF_MIBAND_ALARMS, new HashSet()); //the old Set cannot be updated in place see http://developer.android.com/reference/android/content/SharedPreferences.html#getStringSet%28java.lang.String,%20java.util.Set%3Cjava.lang.String%3E%29 - Set newPrefs = new HashSet(preferencesAlarmListSet); + Set newPrefs = new HashSet<>(preferencesAlarmListSet); Iterator iterator = newPrefs.iterator(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Alarm.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Alarm.java index d1ebb44c..01adde47 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Alarm.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Alarm.java @@ -5,14 +5,14 @@ import android.os.Parcelable; import java.util.Calendar; public interface Alarm extends Parcelable, Comparable { - 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; + byte ALARM_ONCE = 0; + byte ALARM_MON = 1; + byte ALARM_TUE = 2; + byte ALARM_WED = 4; + byte ALARM_THU = 8; + byte ALARM_FRI = 16; + byte ALARM_SAT = 32; + byte ALARM_SUN = 64; int getIndex(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java index 6a2c54d6..59a09f20 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceService.java @@ -9,52 +9,52 @@ import nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService; * */ public interface DeviceService extends EventHandler { - static final String PREFIX = "nodomain.freeyourgadget.gadgetbridge.devices"; + String PREFIX = "nodomain.freeyourgadget.gadgetbridge.devices"; - static final String ACTION_START = PREFIX + ".action.start"; - static final String ACTION_CONNECT = PREFIX + ".action.connect"; - static final String ACTION_NOTIFICATION = PREFIX + ".action.notification"; - static final String ACTION_NOTIFICATION_SMS = PREFIX + ".action.notification_sms"; - static final String ACTION_CALLSTATE = PREFIX + ".action.callstate"; - static final String ACTION_SETTIME = PREFIX + ".action.settime"; - static final String ACTION_SETMUSICINFO = PREFIX + ".action.setmusicinfo"; - static final String ACTION_REQUEST_DEVICEINFO = PREFIX + ".action.request_deviceinfo"; - static final String ACTION_REQUEST_APPINFO = PREFIX + ".action.request_appinfo"; - static final String ACTION_REQUEST_SCREENSHOT = PREFIX + ".action.request_screenshot"; - static final String ACTION_STARTAPP = PREFIX + ".action.startapp"; - static final String ACTION_DELETEAPP = PREFIX + ".action.deleteapp"; - static final String ACTION_INSTALL = PREFIX + ".action.install"; - static final String ACTION_REBOOT = PREFIX + ".action.reboot"; - static final String ACTION_FETCH_ACTIVITY_DATA = PREFIX + ".action.fetch_activity_data"; - static final String ACTION_DISCONNECT = PREFIX + ".action.disconnect"; - static final String ACTION_FIND_DEVICE = PREFIX + ".action.find_device"; - static final String ACTION_SET_ALARMS = PREFIX + ".action.set_alarms"; - static final String ACTION_ENABLE_REALTIME_STEPS = PREFIX + ".action.enable_realtime_steps"; - static final String ACTION_REALTIME_STEPS = PREFIX + ".action.realtime_steps"; + String ACTION_START = PREFIX + ".action.start"; + String ACTION_CONNECT = PREFIX + ".action.connect"; + String ACTION_NOTIFICATION = PREFIX + ".action.notification"; + String ACTION_NOTIFICATION_SMS = PREFIX + ".action.notification_sms"; + String ACTION_CALLSTATE = PREFIX + ".action.callstate"; + String ACTION_SETTIME = PREFIX + ".action.settime"; + String ACTION_SETMUSICINFO = PREFIX + ".action.setmusicinfo"; + String ACTION_REQUEST_DEVICEINFO = PREFIX + ".action.request_deviceinfo"; + String ACTION_REQUEST_APPINFO = PREFIX + ".action.request_appinfo"; + String ACTION_REQUEST_SCREENSHOT = PREFIX + ".action.request_screenshot"; + String ACTION_STARTAPP = PREFIX + ".action.startapp"; + String ACTION_DELETEAPP = PREFIX + ".action.deleteapp"; + String ACTION_INSTALL = PREFIX + ".action.install"; + String ACTION_REBOOT = PREFIX + ".action.reboot"; + String ACTION_FETCH_ACTIVITY_DATA = PREFIX + ".action.fetch_activity_data"; + String ACTION_DISCONNECT = PREFIX + ".action.disconnect"; + String ACTION_FIND_DEVICE = PREFIX + ".action.find_device"; + String ACTION_SET_ALARMS = PREFIX + ".action.set_alarms"; + String ACTION_ENABLE_REALTIME_STEPS = PREFIX + ".action.enable_realtime_steps"; + String ACTION_REALTIME_STEPS = PREFIX + ".action.realtime_steps"; - static final String EXTRA_DEVICE_ADDRESS = "device_address"; - static final String EXTRA_NOTIFICATION_BODY = "notification_body"; - static final String EXTRA_NOTIFICATION_ID = "notification_id"; - static final String EXTRA_NOTIFICATION_PHONENUMBER = "notification_phonenumber"; - static final String EXTRA_NOTIFICATION_SENDER = "notification_sender"; - static final String EXTRA_NOTIFICATION_SOURCENAME = "notification_sourcename"; - static final String EXTRA_NOTIFICATION_SUBJECT = "notification_subject"; - static final String EXTRA_NOTIFICATION_TITLE = "notification_title"; - static final String EXTRA_NOTIFICATION_TYPE = "notification_type"; - static final String EXTRA_FIND_START = "find_start"; - static final String EXTRA_CALL_COMMAND = "call_command"; - static final String EXTRA_CALL_PHONENUMBER = "call_phonenumber"; - static final String EXTRA_MUSIC_ARTIST = "music_artist"; - static final String EXTRA_MUSIC_ALBUM = "music_album"; - static final String EXTRA_MUSIC_TRACK = "music_track"; - static final String EXTRA_APP_UUID = "app_uuid"; - static final String EXTRA_APP_START = "app_start"; - static final String EXTRA_URI = "uri"; - static final String EXTRA_ALARMS = "alarms"; - static final String EXTRA_PERFORM_PAIR = "perform_pair"; - static final String EXTRA_ENABLE_REALTIME_STEPS = "enable_realtime_steps"; - static final String EXTRA_REALTIME_STEPS = "realtime_steps"; - static final String EXTRA_TIMESTAMP = "timestamp"; + String EXTRA_DEVICE_ADDRESS = "device_address"; + String EXTRA_NOTIFICATION_BODY = "notification_body"; + String EXTRA_NOTIFICATION_ID = "notification_id"; + String EXTRA_NOTIFICATION_PHONENUMBER = "notification_phonenumber"; + String EXTRA_NOTIFICATION_SENDER = "notification_sender"; + String EXTRA_NOTIFICATION_SOURCENAME = "notification_sourcename"; + String EXTRA_NOTIFICATION_SUBJECT = "notification_subject"; + String EXTRA_NOTIFICATION_TITLE = "notification_title"; + String EXTRA_NOTIFICATION_TYPE = "notification_type"; + String EXTRA_FIND_START = "find_start"; + String EXTRA_CALL_COMMAND = "call_command"; + String EXTRA_CALL_PHONENUMBER = "call_phonenumber"; + String EXTRA_MUSIC_ARTIST = "music_artist"; + String EXTRA_MUSIC_ALBUM = "music_album"; + String EXTRA_MUSIC_TRACK = "music_track"; + String EXTRA_APP_UUID = "app_uuid"; + String EXTRA_APP_START = "app_start"; + String EXTRA_URI = "uri"; + String EXTRA_ALARMS = "alarms"; + String EXTRA_PERFORM_PAIR = "perform_pair"; + String EXTRA_ENABLE_REALTIME_STEPS = "enable_realtime_steps"; + String EXTRA_REALTIME_STEPS = "realtime_steps"; + String EXTRA_TIMESTAMP = "timestamp"; void start(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/SummaryOfDay.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/SummaryOfDay.java index e656c382..009b94f1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/SummaryOfDay.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/SummaryOfDay.java @@ -1,12 +1,12 @@ package nodomain.freeyourgadget.gadgetbridge.model; public interface SummaryOfDay { - public byte getProvider(); + byte getProvider(); - public int getSteps(); + int getSteps(); - public int getDayStartWakeupTime(); + int getDayStartWakeupTime(); - public int getDayEndFallAsleepTime(); + int getDayEndFallAsleepTime(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java index ec2b8f20..f1d7f7b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/AbstractDeviceSupport.java @@ -248,7 +248,7 @@ public abstract class AbstractDeviceSupport implements DeviceSupport { GB.updateBatteryNotification(context.getString(R.string.notif_battery_low_percent, gbDevice.getName(), deviceEvent.level), deviceEvent.extendedInfoAvailable() ? context.getString(R.string.notif_battery_low_percent, gbDevice.getName(), deviceEvent.level) + "\n" + - context.getString(R.string.notif_battery_low_bigtext_last_charge_time, DateFormat.getDateTimeInstance().format(deviceEvent.lastChargeTime.getTime()).toString()) + + context.getString(R.string.notif_battery_low_bigtext_last_charge_time, DateFormat.getDateTimeInstance().format(deviceEvent.lastChargeTime.getTime())) + context.getString(R.string.notif_battery_low_bigtext_number_of_charges, deviceEvent.numCharges) : "" , context); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java index cd9718b4..b75b1c59 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/ServiceDeviceSupport.java @@ -21,7 +21,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand; */ public class ServiceDeviceSupport implements DeviceSupport { - static enum Flags { + enum Flags { THROTTLING, BUSY_CHECKING, } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BTLEOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BTLEOperation.java index f1c57d3d..03d1f923 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BTLEOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BTLEOperation.java @@ -3,5 +3,5 @@ package nodomain.freeyourgadget.gadgetbridge.service.btle; import java.io.IOException; public interface BTLEOperation { - public void perform() throws IOException; + void perform() throws IOException; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index 4c9ac90c..d97ac8c8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -30,7 +30,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; public final class BtLEQueue { private static final Logger LOG = LoggerFactory.getLogger(BtLEQueue.class); - private Object mGattMonitor = new Object(); + private final Object mGattMonitor = new Object(); private GBDevice mGbDevice; private BluetoothAdapter mBluetoothAdapter; private BluetoothGatt mBluetoothGatt; @@ -41,7 +41,7 @@ public final class BtLEQueue { private static final long MIN_MILLIS_BEFORE_RECONNECT = 1000 * 60 * 5; // 5 minutes - private volatile BlockingQueue mTransactions = new LinkedBlockingQueue(); + private volatile BlockingQueue mTransactions = new LinkedBlockingQueue<>(); private volatile boolean mDisposed; private volatile boolean mCrashed; private volatile boolean mAbortTransaction; @@ -460,7 +460,7 @@ public final class BtLEQueue { } } else { if (BtLEQueue.this.mWaitCharacteristic != null) { - LOG.error("checkWaitingCharacteristic: mismatched characteristic received: " + characteristic != null ? characteristic.getUuid().toString() : "(null)"); + LOG.error("checkWaitingCharacteristic: mismatched characteristic received: " + ((characteristic != null && characteristic.getUuid() != null) ? characteristic.getUuid().toString() : "(null)")); } } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/GattCallback.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/GattCallback.java index f5105b06..ec5afed5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/GattCallback.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/GattCallback.java @@ -73,7 +73,7 @@ public interface GattCallback { * @param status * @see BluetoothGattCallback#onDescriptorRead(BluetoothGatt, BluetoothGattDescriptor, int) */ - public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, + void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status); /** @@ -82,7 +82,7 @@ public interface GattCallback { * @param status * @see BluetoothGattCallback#onDescriptorWrite(BluetoothGatt, BluetoothGattDescriptor, int) */ - public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, + void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status); // // /** diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/NotifyAction.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/NotifyAction.java index 61543bb3..79773031 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/NotifyAction.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/actions/NotifyAction.java @@ -4,7 +4,6 @@ import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCallback; import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattDescriptor; -import android.bluetooth.BluetoothGattService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/DeviceInfo.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/DeviceInfo.java index 67d0845c..0b3e8c0e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/DeviceInfo.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/DeviceInfo.java @@ -4,8 +4,6 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.util.CheckSums; -import java.util.Locale; - public class DeviceInfo extends AbstractInfo { public final String deviceId; public final int profileVersion; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java index 00ec89a9..832957fd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/MiBandSupport.java @@ -9,8 +9,6 @@ import android.preference.PreferenceManager; import android.support.v4.content.LocalBroadcastManager; import android.widget.Toast; -import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandFWHelper; -import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,6 +26,7 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventVersionInf import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandDateConverter; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandFWHelper; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService; import nodomain.freeyourgadget.gadgetbridge.devices.miband.VibrationProfile; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.State; @@ -35,7 +34,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.Alarm; import nodomain.freeyourgadget.gadgetbridge.model.DeviceService; import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand; -import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEDeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic; @@ -43,6 +41,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.AbortTransactionAction; import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction; +import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WriteAction; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.operations.FetchActivityOperation; import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.operations.UpdateFirmwareOperation; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; @@ -712,7 +711,7 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { byte[] alarmCalBytes = MiBandDateConverter.calendarToRawBytes(alarm.getAlarmCal()); byte[] alarmMessage = new byte[]{ - (byte) MiBandService.COMMAND_SET_TIMER, + MiBandService.COMMAND_SET_TIMER, (byte) alarm.getIndex(), (byte) (alarm.isEnabled() ? 1 : 0), alarmCalBytes[0], diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/NotificationStrategy.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/NotificationStrategy.java index 34e538fb..1007f7ce 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/NotificationStrategy.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/NotificationStrategy.java @@ -1,15 +1,11 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.miband; -import android.bluetooth.BluetoothGattCharacteristic; - -import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService; import nodomain.freeyourgadget.gadgetbridge.devices.miband.VibrationProfile; import nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEAction; -import nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; public interface NotificationStrategy { - public void sendDefaultNotification(TransactionBuilder builder, BtLEAction extraAction); + void sendDefaultNotification(TransactionBuilder builder, BtLEAction extraAction); /** * Adds a custom notification to the given transaction builder @@ -22,5 +18,5 @@ public interface NotificationStrategy { * @param extraAction an extra action to be executed after every vibration and flash sequence. Allows to abort the repetition, for example. * @param builder */ - public void sendCustomNotification(VibrationProfile vibrationProfile, int flashTimes, int flashColour, int originalColour, long flashDuration, BtLEAction extraAction, TransactionBuilder builder); + void sendCustomNotification(VibrationProfile vibrationProfile, int flashTimes, int flashColour, int originalColour, long flashDuration, BtLEAction extraAction, TransactionBuilder builder); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java index 2f33b66c..2c1a2a40 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java @@ -1178,7 +1178,7 @@ public class PebbleProtocol extends GBDeviceProtocol { } private ArrayList> decodeDict(ByteBuffer buf) { - ArrayList> dict = new ArrayList>(); + ArrayList> dict = new ArrayList<>(); buf.order(ByteOrder.LITTLE_ENDIAN); byte dictSize = buf.get(); while (dictSize-- > 0) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java index 8a521679..fce01765 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/receivers/GBMusicControlReceiver.java @@ -69,9 +69,7 @@ public class GBMusicControlReceiver extends BroadcastReceiver { 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 (audioPlayer != null) { - upIntent.setPackage(audioPlayer); - } + upIntent.setPackage(audioPlayer); context.sendOrderedBroadcast(upIntent, null); } } diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationServiceTestCase.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationServiceTestCase.java index f32f6f9b..394ff8ba 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationServiceTestCase.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationServiceTestCase.java @@ -2,7 +2,6 @@ package nodomain.freeyourgadget.gadgetbridge.service; import android.content.Context; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.InOrder; diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/TestDeviceSupport.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/TestDeviceSupport.java index 2538af60..208af61b 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/TestDeviceSupport.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/service/TestDeviceSupport.java @@ -11,10 +11,8 @@ import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.Alarm; import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; -import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand; -import nodomain.freeyourgadget.gadgetbridge.model.NotificationType; import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec; -import nodomain.freeyourgadget.gadgetbridge.service.AbstractDeviceSupport; +import nodomain.freeyourgadget.gadgetbridge.model.ServiceCommand; public class TestDeviceSupport extends AbstractDeviceSupport {