Skip to content

Commit 58524cd

Browse files
committed
Add progress broadcast
1 parent b325203 commit 58524cd

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

src/main/java/org/microbit/android/partialflashing/PartialFlashingBaseService.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,12 @@ public abstract class PartialFlashingBaseService extends IntentService {
102102
@Override
103103
public void onCreate() {
104104
super.onCreate();
105+
106+
final IntentFilter intentFilter = new IntentFilter();
107+
intentFilter.addAction(PartialFlashingBaseService.BROADCAST_ACTION);
105108

106109
final LocalBroadcastManager manager = LocalBroadcastManager.getInstance(this);
110+
manager.registerReceiver(broadcastReceiver, intentFilter);
107111
}
108112

109113
// Various callback methods defined by the BLE API.
@@ -220,6 +224,27 @@ public PartialFlashingBaseService() {
220224
super(TAG);
221225
}
222226

227+
public static final String BROADCAST_PROGRESS = "org.microbit.android.partialflashing.broadcast.BROADCAST_PROGRESS";
228+
public static final String EXTRA_PROGRESS = "org.microbit.android.partialflashing.extra.EXTRA_PROGRESS";
229+
230+
private void sendProgressBroadcast(final int progress) {
231+
232+
Log.v(TAG, "Sending progress broadcast: " + progress + "%");
233+
234+
final Intent broadcast = new Intent(BROADCAST_PROGRESS);
235+
broadcast.putExtra(EXTRA_PROGRESS, progress);
236+
237+
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
238+
}
239+
240+
// private void sendErrorBroadcast(final int error) {
241+
//
242+
// final Intent broadcast = new Intent(BROADCAST_ERROR);
243+
//
244+
// broadcast.putExtra(EXTRA_DEVICE_ADDRESS, mDeviceAddress);
245+
// LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
246+
// }
247+
223248
// Write to BLE Flash Characteristic
224249
public Boolean writePartialFlash(byte data[]){
225250

@@ -319,7 +344,10 @@ public Boolean attemptPartialFlash(String filePath) {
319344
if(packetState == PACKET_STATE_RETRANSMIT) {
320345
lineCount = lineCount - 4;
321346
} else {
322-
// TODO update UI
347+
// send progress update
348+
Log.v(TAG, "LC: " + lineCount + ", NL: " + numOfLines);
349+
int percent = Math.round((float)100 * ((float)(lineCount) / (float)(numOfLines)));
350+
sendProgressBroadcast(percent);
323351
}
324352

325353
// Increment packet #
@@ -334,6 +362,7 @@ public Boolean attemptPartialFlash(String filePath) {
334362

335363
// Finished Writing
336364
Log.v(TAG, "Flash Complete");
365+
sendProgressBroadcast(100);
337366

338367
// Time execution
339368
long endTime = SystemClock.elapsedRealtime();

0 commit comments

Comments
 (0)