use of seemoo.fitbit.information.Alarm in project fitness-app by seemoo-lab.
the class UploadInteraction method execute.
/**
* {@inheritDoc}
* Enables notifications and starts the upload process corresponding to the upload type.
*
* @return True, if there is data to upload.
*/
@Override
boolean execute() {
commands.comEnableNotifications1();
switch(type) {
case // firmware
0:
typeCode = ConstantValues.TYPE_FIRMWARE;
if (dataIn == null) {
mainFragment.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
toast.setText("Error: No data to upload.");
toast.show();
}
});
failure = true;
Log.e(TAG, "Error: No data to upload.!");
return false;
}
String hex = Utilities.removeSpaces(dataIn);
sendingData.addAll(Encoding.slip(hex.toLowerCase()));
commands.comUploadInitialize(createExtra(hex));
break;
case // microdump
1:
typeCode = ConstantValues.TYPE_MICRODUMP_UPLOAD;
hex = Utilities.base64ToHex(dataIn);
sendingData.addAll(Encoding.slip(hex));
commands.comUploadInitialize(createExtra(hex));
break;
case // megadump
2:
typeCode = ConstantValues.TYPE_MEGADUMP_UPLOAD;
hex = Utilities.base64ToHex(dataIn);
sendingData.addAll(Encoding.slip(hex));
commands.comUploadInitialize(createExtra(hex));
break;
case // alarms
3:
typeCode = ConstantValues.TYPE_ALARMS;
if (position >= 0) {
selectDay();
setTimer(-1);
} else {
while (alarms.size() < 8) {
alarms.add(new Alarm(ConstantValues.EMPTY_ALARM));
}
String data = createData();
sendingData.addAll(Encoding.slip(data));
commands.comUploadInitialize(createExtra(data));
}
break;
default:
Log.e(TAG, "Error: Wrong upload type!");
}
transmissionActive = true;
answer = Utilities.hexStringToInt(typeCode) + 16;
return true;
}
Aggregations