Search in sources :

Example 6 with Alarm

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;
}
Also used : Alarm(seemoo.fitbit.information.Alarm)

Aggregations

Alarm (seemoo.fitbit.information.Alarm)6 DialogInterface (android.content.DialogInterface)2 AlertDialog (android.support.v7.app.AlertDialog)2 DataPoint (com.jjoe64.graphview.series.DataPoint)2 Information (seemoo.fitbit.information.Information)2 InformationList (seemoo.fitbit.information.InformationList)2 TimePickerDialog (android.app.TimePickerDialog)1 ClipboardManager (android.content.ClipboardManager)1 Handler (android.os.Handler)1 View (android.view.View)1 AdapterView (android.widget.AdapterView)1 ListView (android.widget.ListView)1 TimePicker (android.widget.TimePicker)1 GraphView (com.jjoe64.graphview.GraphView)1 ArrayList (java.util.ArrayList)1 Calendar (java.util.Calendar)1 WorkActivity (seemoo.fitbit.activities.WorkActivity)1 InfoListItem (seemoo.fitbit.miscellaneous.InfoListItem)1