Skip to content

Commit e89b6c6

Browse files
committed
Updated pf service. Check for dal hash. Send more broadcasts:
1 parent cc370a2 commit e89b6c6

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

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

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ public PartialFlashingBaseService() {
228228
}
229229

230230
public static final String BROADCAST_PROGRESS = "org.microbit.android.partialflashing.broadcast.BROADCAST_PROGRESS";
231+
public static final String BROADCAST_START = "org.microbit.android.partialflashing.broadcast.BROADCAST_START";
232+
public static final String BROADCAST_COMPLETE = "org.microbit.android.partialflashing.broadcast.BROADCAST_COMPLETE";
231233
public static final String EXTRA_PROGRESS = "org.microbit.android.partialflashing.extra.EXTRA_PROGRESS";
232234

233235
private void sendProgressBroadcast(final int progress) {
@@ -239,6 +241,24 @@ private void sendProgressBroadcast(final int progress) {
239241

240242
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
241243
}
244+
245+
private void sendProgressBroadcastStart() {
246+
247+
Log.v(TAG, "Sending progress broadcast start");
248+
249+
final Intent broadcast = new Intent(BROADCAST_START);
250+
251+
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
252+
}
253+
254+
private void sendProgressBroadcastComplete() {
255+
256+
Log.v(TAG, "Sending progress broadcast complete");
257+
258+
final Intent broadcast = new Intent(BROADCAST_COMPLETE);
259+
260+
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
261+
}
242262

243263
// Write to BLE Flash Characteristic
244264
public Boolean writePartialFlash(byte data[]){
@@ -267,6 +287,12 @@ public Boolean attemptPartialFlash(String filePath) {
267287
if (magicIndex > -1) {
268288

269289
Log.v(TAG, "Found PXT_MAGIC");
290+
291+
// Find DAL hash
292+
String hashes = hex.getDataFromIndex(magicIndex + 1);
293+
if!(hashes.substring(0, 8).equals(dalHash)) {
294+
return false;
295+
}
270296

271297
numOfLines = hex.numOfLines() - magicIndex;
272298
Log.v(TAG, "Total lines: " + numOfLines);
@@ -446,6 +472,8 @@ private boolean initialize(String deviceId) {
446472

447473
return true;
448474
}
475+
476+
public static final String BROADCAST_PF_FAILED = "org.microbit.android.partialflashing.broadcast.BROADCAST_PF_FAILED";
449477

450478
@Override
451479
protected void onHandleIntent(@Nullable Intent intent) {
@@ -462,9 +490,11 @@ protected void onHandleIntent(@Nullable Intent intent) {
462490
if(!attemptPartialFlash(filePath))
463491
{
464492
Log.v(TAG, "Partial Flashing not possible");
465-
}
466493

494+
final Intent broadcast = new Intent(BROADCAST_PF_FAILED);
467495

496+
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast);
497+
}
468498
}
469499

470500
/*

0 commit comments

Comments
 (0)