mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-22 00:44:26 +01:00
Handling Battery Service updates in CGMS service and activity
This commit is contained in:
@@ -35,17 +35,20 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.PopupMenu;
|
import android.widget.PopupMenu;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import no.nordicsemi.android.nrftoolbox.R;
|
import no.nordicsemi.android.nrftoolbox.R;
|
||||||
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
|
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
|
||||||
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
|
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
|
||||||
|
import no.nordicsemi.android.nrftoolbox.proximity.ProximityService;
|
||||||
|
|
||||||
public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMSBinder> implements PopupMenu.OnMenuItemClickListener {
|
public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMSBinder> implements PopupMenu.OnMenuItemClickListener {
|
||||||
private View mControlPanelStd;
|
private View mControlPanelStd;
|
||||||
private View mControlPanelAbort;
|
private View mControlPanelAbort;
|
||||||
private ListView mRecordsListView;
|
private ListView mRecordsListView;
|
||||||
|
private TextView mBatteryLevelView;
|
||||||
private CGMSRecordsAdapter mCgmsRecordsAdapter;
|
private CGMSRecordsAdapter mCgmsRecordsAdapter;
|
||||||
|
|
||||||
private CGMService.CGMSBinder mBinder;
|
private CGMService.CGMSBinder mBinder;
|
||||||
@@ -65,6 +68,7 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
mRecordsListView = findViewById(R.id.list);
|
mRecordsListView = findViewById(R.id.list);
|
||||||
mControlPanelStd = findViewById(R.id.cgms_control_std);
|
mControlPanelStd = findViewById(R.id.cgms_control_std);
|
||||||
mControlPanelAbort = findViewById(R.id.cgms_control_abort);
|
mControlPanelAbort = findViewById(R.id.cgms_control_abort);
|
||||||
|
mBatteryLevelView = findViewById(R.id.battery);
|
||||||
|
|
||||||
findViewById(R.id.action_last).setOnClickListener(v -> {
|
findViewById(R.id.action_last).setOnClickListener(v -> {
|
||||||
clearRecords();
|
clearRecords();
|
||||||
@@ -166,10 +170,15 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onBatteryLevelChanged(final BluetoothDevice device, final int value) {
|
||||||
|
mBatteryLevelView.setText(getString(R.string.battery, value));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDeviceDisconnected(final BluetoothDevice device) {
|
public void onDeviceDisconnected(final BluetoothDevice device) {
|
||||||
super.onDeviceDisconnected(device);
|
super.onDeviceDisconnected(device);
|
||||||
setOperationInProgress(false);
|
setOperationInProgress(false);
|
||||||
|
mBatteryLevelView.setText(R.string.not_available);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -181,6 +190,7 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
@Override
|
@Override
|
||||||
protected void setDefaultUI() {
|
protected void setDefaultUI() {
|
||||||
clearRecords();
|
clearRecords();
|
||||||
|
mBatteryLevelView.setText(R.string.not_available);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -217,6 +227,7 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
@Override
|
@Override
|
||||||
public void onReceive(final Context context, final Intent intent) {
|
public void onReceive(final Context context, final Intent intent) {
|
||||||
final String action = intent.getAction();
|
final String action = intent.getAction();
|
||||||
|
final BluetoothDevice device = intent.getParcelableExtra(ProximityService.EXTRA_DEVICE);
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case CGMService.BROADCAST_NEW_CGMS_VALUE: {
|
case CGMService.BROADCAST_NEW_CGMS_VALUE: {
|
||||||
@@ -237,6 +248,11 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
// Update GUI
|
// Update GUI
|
||||||
setOperationInProgress(true);
|
setOperationInProgress(true);
|
||||||
break;
|
break;
|
||||||
|
case CGMService.BROADCAST_BATTERY_LEVEL:
|
||||||
|
final int batteryLevel = intent.getIntExtra(CGMService.EXTRA_BATTERY_LEVEL, 0);
|
||||||
|
// Update GUI
|
||||||
|
onBatteryLevelChanged(device, batteryLevel);
|
||||||
|
break;
|
||||||
case CGMService.OPERATION_FAILED:
|
case CGMService.OPERATION_FAILED:
|
||||||
// Update GUI
|
// Update GUI
|
||||||
showToast(R.string.gls_operation_failed);
|
showToast(R.string.gls_operation_failed);
|
||||||
@@ -258,6 +274,7 @@ public class CGMSActivity extends BleProfileServiceReadyActivity<CGMService.CGMS
|
|||||||
intentFilter.addAction(CGMService.OPERATION_NOT_SUPPORTED);
|
intentFilter.addAction(CGMService.OPERATION_NOT_SUPPORTED);
|
||||||
intentFilter.addAction(CGMService.OPERATION_ABORTED);
|
intentFilter.addAction(CGMService.OPERATION_ABORTED);
|
||||||
intentFilter.addAction(CGMService.OPERATION_FAILED);
|
intentFilter.addAction(CGMService.OPERATION_FAILED);
|
||||||
|
intentFilter.addAction(CGMService.BROADCAST_BATTERY_LEVEL);
|
||||||
return intentFilter;
|
return intentFilter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
import android.support.v4.content.LocalBroadcastManager;
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
@@ -21,6 +22,10 @@ import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
|
|||||||
|
|
||||||
public class CGMService extends BleProfileService implements CGMSManagerCallbacks {
|
public class CGMService extends BleProfileService implements CGMSManagerCallbacks {
|
||||||
private static final String ACTION_DISCONNECT = "no.nordicsemi.android.nrftoolbox.cgms.ACTION_DISCONNECT";
|
private static final String ACTION_DISCONNECT = "no.nordicsemi.android.nrftoolbox.cgms.ACTION_DISCONNECT";
|
||||||
|
|
||||||
|
public static final String BROADCAST_BATTERY_LEVEL = "no.nordicsemi.android.nrftoolbox.BROADCAST_BATTERY_LEVEL";
|
||||||
|
public static final String EXTRA_BATTERY_LEVEL = "no.nordicsemi.android.nrftoolbox.EXTRA_BATTERY_LEVEL";
|
||||||
|
|
||||||
public static final String BROADCAST_NEW_CGMS_VALUE = "no.nordicsemi.android.nrftoolbox.cgms.BROADCAST_NEW_CGMS_VALUE";
|
public static final String BROADCAST_NEW_CGMS_VALUE = "no.nordicsemi.android.nrftoolbox.cgms.BROADCAST_NEW_CGMS_VALUE";
|
||||||
public static final String BROADCAST_DATA_SET_CLEAR = "no.nordicsemi.android.nrftoolbox.cgms.BROADCAST_DATA_SET_CLEAR";
|
public static final String BROADCAST_DATA_SET_CLEAR = "no.nordicsemi.android.nrftoolbox.cgms.BROADCAST_DATA_SET_CLEAR";
|
||||||
public static final String OPERATION_STARTED = "no.nordicsemi.android.nrftoolbox.cgms.OPERATION_STARTED";
|
public static final String OPERATION_STARTED = "no.nordicsemi.android.nrftoolbox.cgms.OPERATION_STARTED";
|
||||||
@@ -271,4 +276,12 @@ public class CGMService extends BleProfileService implements CGMSManagerCallback
|
|||||||
public void onNumberOfRecordsRequested(final BluetoothDevice device, int value) {
|
public void onNumberOfRecordsRequested(final BluetoothDevice device, int value) {
|
||||||
showToast(getResources().getQuantityString(R.plurals.gls_progress, value, value));
|
showToast(getResources().getQuantityString(R.plurals.gls_progress, value, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int batteryLevel) {
|
||||||
|
final Intent broadcast = new Intent(BROADCAST_BATTERY_LEVEL);
|
||||||
|
broadcast.putExtra(EXTRA_DEVICE, device);
|
||||||
|
broadcast.putExtra(EXTRA_BATTERY_LEVEL, batteryLevel);
|
||||||
|
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user