BleManager extracted to a standalone module

This commit is contained in:
Aleksander Nowakowski
2017-12-18 13:05:01 +01:00
parent 7b88d8300d
commit f25a902305
61 changed files with 294 additions and 2106 deletions

View File

@@ -23,7 +23,6 @@ package no.nordicsemi.android.nrftoolbox;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;

View File

@@ -28,8 +28,8 @@ import android.widget.TextView;
import java.util.Calendar;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileActivity;
// TODO The BPMActivity should be rewritten to use the service approach, like other do.

View File

@@ -31,10 +31,10 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.BloodPressureMeasurementParser;
import no.nordicsemi.android.nrftoolbox.parser.IntermediateCuffPressureParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
public class BPMManager extends BleManager<BPMManagerCallbacks> {
/** Blood Pressure service UUID */

View File

@@ -25,7 +25,7 @@ import android.bluetooth.BluetoothDevice;
import java.util.Calendar;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface BPMManagerCallbacks extends BleManagerCallbacks {
int UNIT_mmHG = 0;

View File

@@ -32,11 +32,11 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.CGMMeasurementParser;
import no.nordicsemi.android.nrftoolbox.parser.CGMSpecificOpsControlPointParser;
import no.nordicsemi.android.nrftoolbox.parser.RecordAccessControlPointParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.utility.DebugLogger;
public class CGMSManager extends BleManager<CGMSManagerCallbacks> {

View File

@@ -24,7 +24,7 @@ package no.nordicsemi.android.nrftoolbox.cgms;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface CGMSManagerCallbacks extends BleManagerCallbacks {
/**

View File

@@ -12,11 +12,11 @@ import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.util.SparseArray;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
public class CGMService extends BleProfileService implements CGMSManagerCallbacks {

View File

@@ -38,9 +38,9 @@ import java.util.Locale;
import java.util.UUID;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.csc.settings.SettingsActivity;
import no.nordicsemi.android.nrftoolbox.csc.settings.SettingsFragment;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
public class CSCActivity extends BleProfileServiceReadyActivity<CSCService.CSCBinder> {

View File

@@ -31,9 +31,9 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.CSCMeasurementParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
public class CSCManager extends BleManager<CSCManagerCallbacks> {
/** Cycling Speed and Cadence service UUID */

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.csc;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface CSCManagerCallbacks extends BleManagerCallbacks {
int NOT_AVAILABLE = -1;

View File

@@ -32,16 +32,16 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.csc.settings.SettingsFragment;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
public class CSCService extends BleProfileService implements CSCManagerCallbacks {
private static final String TAG = "CSCService";

View File

@@ -31,7 +31,6 @@ import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.CursorLoader;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.Loader;
import android.content.SharedPreferences;

View File

@@ -33,8 +33,8 @@ import android.widget.TextView;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileExpandableListActivity;
// TODO The GlucoseActivity should be rewritten to use the service approach, like other do.

View File

@@ -33,11 +33,11 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.GlucoseMeasurementContextParser;
import no.nordicsemi.android.nrftoolbox.parser.GlucoseMeasurementParser;
import no.nordicsemi.android.nrftoolbox.parser.RecordAccessControlPointParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.utility.DebugLogger;
@SuppressWarnings("unused")

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.gls;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface GlucoseManagerCallbacks extends BleManagerCallbacks {
void onOperationStarted(final BluetoothDevice device);

View File

@@ -35,9 +35,9 @@ import org.achartengine.GraphicalView;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileActivity;
/**

View File

@@ -30,11 +30,11 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.parser.BodySensorLocationParser;
import no.nordicsemi.android.nrftoolbox.parser.HeartRateMeasurementParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
/**
* HRSManager class performs BluetoothGatt operations for connection, service discovery, enabling notification and reading characteristics. All operations required to connect to device with BLE HR

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.hrs;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface HRSManagerCallbacks extends BleManagerCallbacks {

View File

@@ -37,9 +37,9 @@ import java.text.DecimalFormat;
import java.util.UUID;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.hts.settings.SettingsActivity;
import no.nordicsemi.android.nrftoolbox.hts.settings.SettingsFragment;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
/**

View File

@@ -30,9 +30,9 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.TemperatureMeasurementParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.utility.DebugLogger;
/**

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.hts;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
/**
* Interface {@link HTSManagerCallbacks} must be implemented by {@link HTSActivity} in order to receive callbacks from {@link HTSManager}

View File

@@ -33,11 +33,11 @@ import android.content.IntentFilter;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
public class HTSService extends BleProfileService implements HTSManagerCallbacks {

View File

@@ -1,146 +0,0 @@
/*
* Copyright (c) 2015, Nordic Semiconductor
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package no.nordicsemi.android.nrftoolbox.profile;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
/**
* DO NOT EDIT THIS FILE UNLESS NECESSARY!
* The BleManagerCallbacks should be overridden in your app and all the 'high level' callbacks should be added there.
* Keeping this file as is (and {@link BleManager} as well) will allow to quickly update it when an update is posted here.
* @see no.nordicsemi.android.nrftoolbox.rsc.RSCManagerCallbacks
*/
public interface BleManagerCallbacks {
/**
* Called when the Android device started connecting to given device.
* The {@link #onDeviceConnected(BluetoothDevice)} will be called when the device is connected,
* or {@link #onError(BluetoothDevice, String, int)} in case of error.
* @param device the device that got connected
*/
void onDeviceConnecting(final BluetoothDevice device);
/**
* Called when the device has been connected. This does not mean that the application may start communication.
* A service discovery will be handled automatically after this call. Service discovery
* may ends up with calling {@link #onServicesDiscovered(BluetoothDevice, boolean)} or
* {@link #onDeviceNotSupported(BluetoothDevice)} if required services have not been found.
* @param device the device that got connected
*/
void onDeviceConnected(final BluetoothDevice device);
/**
* Called when user initialized disconnection.
* @param device the device that gets disconnecting
*/
void onDeviceDisconnecting(final BluetoothDevice device);
/**
* Called when the device has disconnected (when the callback returned
* {@link BluetoothGattCallback#onConnectionStateChange(BluetoothGatt, int, int)} with state DISCONNECTED),
* but ONLY if the {@link BleManager#shouldAutoConnect()} method returned false for this device when it was connecting.
* Otherwise the {@link #onLinklossOccur(BluetoothDevice)} method will be called instead.
* @param device the device that got disconnected
*/
void onDeviceDisconnected(final BluetoothDevice device);
/**
* This callback is invoked when the Ble Manager lost connection to a device that has been connected
* with autoConnect option (see {@link BleManager#shouldAutoConnect()}.
* Otherwise a {@link #onDeviceDisconnected(BluetoothDevice)} method will be called on such event.
* @param device the device that got disconnected due to a link loss
*/
void onLinklossOccur(final BluetoothDevice device);
/**
* Called when service discovery has finished and primary services has been found.
* This method is not called if the primary, mandatory services were not found during service discovery.
* For example in the Blood Pressure Monitor, a Blood Pressure service is a primary service and
* Intermediate Cuff Pressure service is a optional secondary service.
* Existence of battery service is not notified by this call.
* <p>After successful service discovery the service will initialize all services.
* The {@link #onDeviceReady(BluetoothDevice)} method will be called when the initialization is complete.</p>
*
* @param device the device which services got disconnected
* @param optionalServicesFound
* if <code>true</code> the secondary services were also found on the device.
*/
void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound);
/**
* Method called when all initialization requests has been completed.
* @param device the device that get ready
*/
void onDeviceReady(final BluetoothDevice device);
/**
* This method should return true if Battery Level notifications should be enabled on the target device.
* If there is no Battery Service, or the Battery Level characteristic does not have NOTIFY property,
* this method will not be called for this device.
* <p>This method may return true only if an activity is bound to the service (to display the information
* to the user), always (e.g. if critical battery level is reported using notifications) or never, if
* such information is not important or the manager wants to control Battery Level notifications on its own.</p>
* @param device target device
* @return true to enabled battery level notifications after connecting to the device, false otherwise
*/
boolean shouldEnableBatteryLevelNotifications(final BluetoothDevice device);
/**
* Called when battery value has been received from the device.
*
* @param value
* the battery value in percent
* @param device the device frm which the battery value has changed
*/
void onBatteryValueReceived(final BluetoothDevice device, final int value);
/**
* Called when an {@link BluetoothGatt#GATT_INSUFFICIENT_AUTHENTICATION} error occurred and the device bond state is NOT_BONDED
* @param device the device that requires bonding
*/
void onBondingRequired(final BluetoothDevice device);
/**
* Called when the device has been successfully bonded.
* @param device the device that got bonded
*/
void onBonded(final BluetoothDevice device);
/**
* Called when a BLE error has occurred
*
* @param message
* the error message
* @param errorCode
* the error code
* @param device the device that caused an error
*/
void onError(final BluetoothDevice device, final String message, final int errorCode);
/**
* Called when service discovery has finished but the main services were not found on the device.
* @param device the device that failed to connect due to lack of required services
*/
void onDeviceNotSupported(final BluetoothDevice device);
}

View File

@@ -41,6 +41,8 @@ import android.widget.Toast;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LocalLogSession;
import no.nordicsemi.android.log.Logger;

View File

@@ -40,6 +40,8 @@ import android.widget.Toast;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LocalLogSession;
import no.nordicsemi.android.log.Logger;

View File

@@ -38,6 +38,9 @@ import android.support.annotation.StringRes;
import android.support.v4.content.LocalBroadcastManager;
import android.widget.Toast;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.ble.utils.ILogger;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LogContract;
import no.nordicsemi.android.log.Logger;

View File

@@ -48,6 +48,7 @@ import android.widget.Toast;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LocalLogSession;
import no.nordicsemi.android.log.Logger;

View File

@@ -1,43 +0,0 @@
/*
* Copyright (c) 2016, Nordic Semiconductor
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package no.nordicsemi.android.nrftoolbox.profile;
import android.support.annotation.StringRes;
public interface ILogger {
/**
* Logs the given message with given log level into the all managed devices' log session.
* @param level the log level
* @param message the message to be logged
*/
void log(final int level, final String message);
/**
* Logs the given message with given log level into the all managed devices' log session.
* @param level the log level
* @param messageRes string resource id
* @param params additional (optional) parameters used to fill the message
*/
void log(final int level, @StringRes final int messageRes, final Object... params);
}

View File

@@ -41,11 +41,11 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.ble.utils.ILogger;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LogContract;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.nrftoolbox.profile.ILogger;
public abstract class BleMulticonnectProfileService extends Service implements BleManagerCallbacks {
@SuppressWarnings("unused")

View File

@@ -48,13 +48,13 @@ import java.util.Collections;
import java.util.List;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManagerCallbacks;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LocalLogSession;
import no.nordicsemi.android.log.LogContract;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.AppHelpFragment;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.nrftoolbox.scanner.ScannerFragment;
import no.nordicsemi.android.nrftoolbox.utility.DebugLogger;

View File

@@ -30,9 +30,9 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.AlertLevelParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.utility.DebugLogger;
public class ProximityManager extends BleManager<ProximityManagerCallbacks> {

View File

@@ -21,7 +21,7 @@
*/
package no.nordicsemi.android.nrftoolbox.proximity;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface ProximityManagerCallbacks extends BleManagerCallbacks {
// No additional methods

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.proximity;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface ProximityServerManagerCallbacks extends BleManagerCallbacks {
void onAlarmTriggered(final BluetoothDevice device);

View File

@@ -34,9 +34,9 @@ import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.app.NotificationCompat;
import android.text.TextUtils;
import android.util.Log;
@@ -44,11 +44,11 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.LogContract;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.multiconnect.BleMulticonnectProfileService;
public class ProximityService extends BleMulticonnectProfileService implements ProximityManagerCallbacks, ProximityServerManagerCallbacks {

View File

@@ -31,9 +31,9 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.RSCMeasurementParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
public class RSCManager extends BleManager<RSCManagerCallbacks> {
private static final byte INSTANTANEOUS_STRIDE_LENGTH_PRESENT = 0x01; // 1 bit

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.rsc;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface RSCManagerCallbacks extends BleManagerCallbacks {
int NOT_AVAILABLE = -1;

View File

@@ -31,14 +31,14 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
public class RSCService extends BleProfileService implements RSCManagerCallbacks {

View File

@@ -49,7 +49,7 @@ public class DeviceListAdapter extends BaseAdapter {
private final ArrayList<ExtendedBluetoothDevice> mListValues = new ArrayList<>();
private final Context mContext;
public DeviceListAdapter(Context context) {
public DeviceListAdapter(final Context context) {
mContext = context;
}

View File

@@ -39,7 +39,6 @@ import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

View File

@@ -30,9 +30,9 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.parser.TemplateParser;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
/**
* Modify to template manager to match your requirements.

View File

@@ -23,7 +23,7 @@ package no.nordicsemi.android.nrftoolbox.template;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
/**
* Interface {@link TemplateManagerCallbacks} must be implemented by {@link TemplateActivity} in order to receive callbacks from {@link TemplateManager}

View File

@@ -30,14 +30,14 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
public class TemplateService extends BleProfileService implements TemplateManagerCallbacks {

View File

@@ -33,7 +33,6 @@ import android.app.PendingIntent;
import android.bluetooth.BluetoothDevice;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
@@ -89,8 +88,8 @@ import java.util.UUID;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.dfu.adapter.FileBrowserAppsAdapter;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
import no.nordicsemi.android.nrftoolbox.uart.database.DatabaseHelper;
import no.nordicsemi.android.nrftoolbox.uart.domain.Command;

View File

@@ -34,7 +34,6 @@ import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;

View File

@@ -36,7 +36,6 @@ import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.content.LocalBroadcastManager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -46,7 +45,6 @@ import android.widget.Button;
import android.widget.CursorAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import no.nordicsemi.android.log.ILogSession;
import no.nordicsemi.android.log.LogContract;

View File

@@ -33,8 +33,8 @@ import java.util.Deque;
import java.util.LinkedList;
import java.util.UUID;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
public class UARTManager extends BleManager<UARTManagerCallbacks> {
/** Nordic UART Service UUID */

View File

@@ -24,7 +24,7 @@ package no.nordicsemi.android.nrftoolbox.uart;
import android.bluetooth.BluetoothDevice;
import no.nordicsemi.android.nrftoolbox.profile.BleManagerCallbacks;
import no.nordicsemi.android.ble.BleManagerCallbacks;
public interface UARTManagerCallbacks extends BleManagerCallbacks {

View File

@@ -31,8 +31,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.annotation.NonNull;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.util.Log;
@@ -42,11 +42,11 @@ import com.google.android.gms.wearable.Node;
import com.google.android.gms.wearable.NodeApi;
import com.google.android.gms.wearable.Wearable;
import no.nordicsemi.android.ble.BleManager;
import no.nordicsemi.android.log.Logger;
import no.nordicsemi.android.nrftoolbox.FeaturesActivity;
import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.ToolboxApplication;
import no.nordicsemi.android.nrftoolbox.profile.BleManager;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.wearable.common.Constants;

View File

@@ -35,9 +35,9 @@ import com.google.android.gms.wearable.Wearable;
import java.util.ArrayList;
import no.nordicsemi.android.nrftoolbox.wearable.common.Constants;
import no.nordicsemi.android.nrftoolbox.uart.domain.Command;
import no.nordicsemi.android.nrftoolbox.uart.domain.UartConfiguration;
import no.nordicsemi.android.nrftoolbox.wearable.common.Constants;
public class UARTConfigurationSynchronizer {
private static final String WEAR_URI_PREFIX = "wear:"; // no / at the end as the path already has it

View File

@@ -22,35 +22,7 @@
package no.nordicsemi.android.nrftoolbox.utility;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
public class ParserUtils {
final private static char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
public static String parse(final BluetoothGattCharacteristic characteristic) {
return parse(characteristic.getValue());
}
public static String parse(final BluetoothGattDescriptor descriptor) {
return parse(descriptor.getValue());
}
public static String parse(final byte[] data) {
if (data == null || data.length == 0)
return "";
final char[] out = new char[data.length * 3 - 1];
for (int j = 0; j < data.length; j++) {
int v = data[j] & 0xFF;
out[j * 3] = HEX_ARRAY[v >>> 4];
out[j * 3 + 1] = HEX_ARRAY[v & 0x0F];
if (j != data.length - 1)
out[j * 3 + 2] = '-';
}
return "(0x) " + new String(out);
}
public class ParserUtils extends no.nordicsemi.android.ble.utils.ParserUtils {
public static String parseDebug(final byte[] data) {
if (data == null || data.length == 0)

View File

@@ -27,8 +27,8 @@ import android.content.Intent;
import com.google.android.gms.wearable.MessageEvent;
import com.google.android.gms.wearable.WearableListenerService;
import no.nordicsemi.android.nrftoolbox.wearable.common.Constants;
import no.nordicsemi.android.nrftoolbox.uart.UARTService;
import no.nordicsemi.android.nrftoolbox.wearable.common.Constants;
/**
* The main listener for messages from Wearable devices. There may be only one such service per application so it has to handle messages from all profiles.

View File

@@ -24,7 +24,6 @@ package no.nordicsemi.android.nrftoolbox.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Spinner;
public class ClosableSpinner extends android.support.v7.widget.AppCompatSpinner {
public ClosableSpinner(Context context, AttributeSet attrs) {

View File

@@ -24,7 +24,6 @@ package no.nordicsemi.android.nrftoolbox.widget;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
import no.nordicsemi.android.nrftoolbox.R;

View File

@@ -24,7 +24,6 @@ package no.nordicsemi.android.nrftoolbox.widget;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
import no.nordicsemi.android.nrftoolbox.R;