|
|
package application.helpers;
import java.text.SimpleDateFormat;
import application.res.Colors; import application.res.Text; import javafx.scene.layout.Border; import javafx.scene.layout.BorderStroke; import javafx.scene.layout.BorderStrokeStyle; import javafx.scene.layout.BorderWidths;
/** * Gathers some of the data structures an methods more widely used. * * @author Bianca * */ public class Utils { /** * Attributes of an activity summary row (10 in total) */ public static final String[] ACTIV_SUMM_ATTR = new String[] { "dateComponents", "activeEnergyBurned", "activeEnergyBurnedGoal", "activeEnergyBurnedUnit", "appleExerciseTime", "appleExerciseTimeGoal", "appleStandHours", "appleStandHoursGoal", "appleMoveMinutes", "appleMoveMinutesGoal" // appleMoveMinutes /-Goal couldn't be tested due to missing test data
};
/** * Attributes of a workout row (12 attributes +WorkoutEvents) Important: nested attributes need to be at the end of the array! */ public static final String[] workoutAttributes = new String[] { "workoutActivityType", "duration", "durationUnit", "totalDistance", "totalDistanceUnit", "totalEnergyBurned", "totalEnergyBurnedUnit", //"sourceName", left out because of privacy
"sourceVersion", "creationDate", "startDate", "endDate", "device", Text.TAG_NAME_WORKOUT_EVENT //, Text.TAG_NAME_META_DATA_ENTRY, Text.TAG_NAME_WORKOUT_ROUTE left out because of privacy
};
/** * Attributes of a record row (8 attributes + HRMetaList(+IBperMinute) * +MetaData) Important: nested attributes need to be at the end of the array! */ public static final String[] recordAttributes = new String[] { "type", "unit", "value", // "sourceName", left out because of privacy
"sourceVersion", "device", "creationDate", "startDate", "endDate",// Text.TAG_NAME_META_DATA_ENTRY, left out due to privacy
Text.TAG_NAME_HR_LIST };
/** * Attributes of a meta data entry (2 attributes in total) */ public static String[] META_DATA_ATTR = new String[] { "key", "value" };
/** * Attributes of a workout event entry (4 attributes in total) */ public static String[] WORKOUT_EVENT_ATTR = new String[] { "type", "date", "duration", "durationUnit" };
/** * Attributes of a workout route entry (6 attributes + MetaData) * (Currently excluded due to privacy) */ public static String[] WORKOUT_ROUTE_ATTR = new String[] { "sourceName", "sourceVersion", "device", "creationDate", "startDate", "endDate", Text.TAG_NAME_META_DATA_ENTRY };
/** * Attributes of a hr_list entry (only ib_per_minutes entries) */ public static String[] HR_LIST_ATTR = new String[] { Text.TAG_NAME_IB_PER_MINUTES };
/** * Attributes of a ib per mintes entry (2 attributes in total) */ public static String[] IB_PER_MINUTES_ATTR = new String[] { "bpm", "time" };
/** * This format is according to the format the date of birth is saved in the * health data */ public static final SimpleDateFormat formatDateOfBirth = new SimpleDateFormat("yyyy-MM-dd");
/** * Especially sub workouts / records start with something like 'HK...' and * aren't very readable for the user. This method tries to remove the * unnecessary parts to make it more readable. Based on https://developer.apple.com/documentation/healthkit/data_types
* * @param input The string to shorten * @return the shortened result */ public static String shortenHKStrings(String input) {
// Subclasses
// class HKCharacteristicType
// A type that represents data that does not typically change over time.
String res = input.replace("HKCharacteristicType", ""); // class HKQuantityType
// A type that identifies samples that store numerical values.
res = res.replace("HKQuantityType", ""); // class HKCategoryType
// A type that identifies samples that contain a value from a small set of possible values.
res = res.replace("HKCategoryType", ""); // class HKCorrelationType
// A type that identifies samples that group multiple subsamples.
res = res.replace("HKCorrelationType", ""); // class HKActivitySummaryType
// A type that identifies activity summary objects.
res = res.replace("HKActivitySummaryType", ""); // class HKAudiogramSampleType
// A type that identifies samples that contain audiogram data.
res = res.replace("HKAudiogramSampleType", ""); // class HKElectrocardiogramType
// A type that identifies samples containing electrocardiogram data.
res = res.replace("HKElectrocardiogramType", ""); // class HKSeriesType
// A type that indicates the data stored in a series sample.
res = res.replace("HKSeriesType", ""); // class HKClinicalType
// A type that identifies samples that contain clinical record data.
res = res.replace("HKClinicalType", ""); // class HKWorkoutType
// A type that identifies samples that store information about a workout.
res = res.replace("HKWorkoutType", ""); res = res.replace("HKWorkoutActivityType", ""); res = res.replace("Identifier", ""); return res; } public static Border darkBlueBorder = new Border(new BorderStroke(Colors.darkBlue, Colors.darkBlue, Colors.darkBlue, Colors.darkBlue, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, null, new BorderWidths(2), null)); public static Border redBorder = new Border(new BorderStroke(Colors.red, Colors.red, Colors.red, Colors.red, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, null, new BorderWidths(2), null)); public static Border darkGreyBorderBR = new Border(new BorderStroke(null, Colors.darkGrey, Colors.darkGrey, null, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, null, new BorderWidths(1), null));
}
|