diff --git a/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/3.json b/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/3.json index 8042a22f..e752986f 100644 --- a/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/3.json +++ b/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/3.json @@ -2,11 +2,11 @@ "formatVersion": 1, "database": { "version": 3, - "identityHash": "dcde328ede1fdeacf08edfb4d8b834ae", + "identityHash": "fd4198e9af667e65ae56be8e9838d1ca", "entities": [ { "tableName": "scaleMeasurements", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `userId` INTEGER NOT NULL, `enabled` INTEGER NOT NULL, `datetime` INTEGER, `weight` REAL NOT NULL, `fat` REAL NOT NULL, `water` REAL NOT NULL, `muscle` REAL NOT NULL, `lbw` REAL NOT NULL, `waist` REAL NOT NULL, `hip` REAL NOT NULL, `bone` REAL NOT NULL, `chest` REAL NOT NULL, `thigh` REAL NOT NULL, `biceps` REAL NOT NULL, `neck` REAL NOT NULL, `comment` TEXT, FOREIGN KEY(`userId`) REFERENCES `scaleUsers`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `userId` INTEGER NOT NULL, `enabled` INTEGER NOT NULL, `datetime` INTEGER, `weight` REAL NOT NULL, `fat` REAL NOT NULL, `water` REAL NOT NULL, `muscle` REAL NOT NULL, `lbw` REAL NOT NULL, `waist` REAL NOT NULL, `hip` REAL NOT NULL, `bone` REAL NOT NULL, `chest` REAL NOT NULL, `thigh` REAL NOT NULL, `biceps` REAL NOT NULL, `neck` REAL NOT NULL, `caliper1` REAL NOT NULL, `caliper2` REAL NOT NULL, `caliper3` REAL NOT NULL, `comment` TEXT, FOREIGN KEY(`userId`) REFERENCES `scaleUsers`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )", "fields": [ { "fieldPath": "id", @@ -104,6 +104,24 @@ "affinity": "REAL", "notNull": true }, + { + "fieldPath": "caliper1", + "columnName": "caliper1", + "affinity": "REAL", + "notNull": true + }, + { + "fieldPath": "caliper2", + "columnName": "caliper2", + "affinity": "REAL", + "notNull": true + }, + { + "fieldPath": "caliper3", + "columnName": "caliper3", + "affinity": "REAL", + "notNull": true + }, { "fieldPath": "comment", "columnName": "comment", @@ -213,7 +231,7 @@ ], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"dcde328ede1fdeacf08edfb4d8b834ae\")" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"fd4198e9af667e65ae56be8e9838d1ca\")" ] } } \ No newline at end of file diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java b/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java index e0e23ad5..f26cd23c 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java @@ -85,6 +85,9 @@ public abstract class AppDatabase extends RoomDatabase { database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN thigh REAL NOT NULL DEFAULT 0"); database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN biceps REAL NOT NULL DEFAULT 0"); database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN neck REAL NOT NULL DEFAULT 0"); + database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN caliper1 REAL NOT NULL DEFAULT 0"); + database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN caliper2 REAL NOT NULL DEFAULT 0"); + database.execSQL("ALTER TABLE scaleMeasurements ADD COLUMN caliper3 REAL NOT NULL DEFAULT 0"); database.setTransactionSuccessful(); } diff --git a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java index a236ab4c..5ba0d08a 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java +++ b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java @@ -86,6 +86,15 @@ public class ScaleMeasurement implements Cloneable { @ColumnInfo(name = "neck") private float neck; @CsvColumn + @ColumnInfo(name = "caliper1") + private float caliper1; + @CsvColumn + @ColumnInfo(name = "caliper2") + private float caliper2; + @CsvColumn + @ColumnInfo(name = "caliper3") + private float caliper3; + @CsvColumn @ColumnInfo(name = "comment") private String comment; @@ -308,6 +317,30 @@ public class ScaleMeasurement implements Cloneable { this.neck = neck; } + public float getCaliper1() { + return caliper1; + } + + public void setCaliper1(float caliper1) { + this.caliper1 = caliper1; + } + + public float getCaliper2() { + return caliper2; + } + + public void setCaliper2(float caliper2) { + this.caliper2 = caliper2; + } + + public float getCaliper3() { + return caliper3; + } + + public void setCaliper3(float caliper3) { + this.caliper3 = caliper3; + } + public String getComment() { return comment; } @@ -345,14 +378,39 @@ public class ScaleMeasurement implements Cloneable { return waist / hip; } + public float getFatCaliper(ScaleUser scaleUser) { + float fat_caliper; + + float k0, k1, k2, ka; + + float s = caliper1 + caliper2 + caliper3; + + if (scaleUser.getGender().isMale()) { + k0 = 1.10938f; + k1 = 0.0008267f; + k2 = 0.0000016f; + ka = 0.0002574f; + } else { + k0 = 1.0994921f; + k1 = 0.0009929f; + k2 = 0.0000023f; + ka = 0.0001392f; + } + + // calipometrie formula by Jackson, Pollock: Generalized equations for predicting body density of women. In: British Journal of Nutrition. Nr.40, Oktober 1978, S.497–504 + fat_caliper = ((4.95f / (k0 - (k1*s) + (k2 * s*s) - (ka*scaleUser.getAge()))) - 4.5f) * 100.0f; + + return fat_caliper; + } + @Override public String toString() { return String.format( "ID: %d, USER_ID: %d, DATE_TIME: %s, WEIGHT: %.2f, FAT: %.2f, WATER: %.2f, " + "MUSCLE: %.2f, LBM: %.2f, WAIST: %.2f, HIP: %.2f, BONE: %.2f, CHEST: %.2f, " + - "THIGH: %.2f, ARM: %.2f, NECK: %.2f, COMMENT: %s", + "THIGH: %.2f, ARM: %.2f, NECK: %.2f, CALIPER1: %2.f, CALIPER2: %2.f, CALIPER3: %2.f, COMMENT: %s", id, userId, dateTime.toString(), weight, fat, water, - muscle, lbm, waist, hip, bone, chest, thigh, biceps, neck, comment); + muscle, lbm, waist, hip, bone, chest, thigh, biceps, neck, caliper1, caliper2, caliper3, comment); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper1MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper1MeasurementView.java new file mode 100644 index 00000000..4cfc6990 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper1MeasurementView.java @@ -0,0 +1,72 @@ +/* Copyright (C) 2018 olie.xdev +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see +*/ +package com.health.openscale.gui.views; + +import android.content.Context; +import android.graphics.Color; + +import com.health.openscale.R; +import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.health.openscale.core.evaluation.EvaluationResult; +import com.health.openscale.core.evaluation.EvaluationSheet; + +public class Caliper1MeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences + public static final String KEY = "caliper1"; + + public Caliper1MeasurementView(Context context) { + super(context, R.string.label_caliper1_female, R.drawable.ic_caliper1); + + if (getScaleUser().getGender().isMale()) { + setNameView(getResources().getText(R.string.label_caliper1_male)); + } + } + + @Override + public String getKey() { + return KEY; + } + + @Override + protected float getMeasurementValue(ScaleMeasurement measurement) { + return measurement.getCaliper1(); + } + + @Override + protected void setMeasurementValue(float value, ScaleMeasurement measurement) { + measurement.setCaliper1(value); + } + + @Override + public String getUnit() { + return "mm"; + } + + @Override + protected float getMaxValue() { + return 500; + } + + @Override + public int getColor() { + return Color.parseColor("#ba68c8"); + } + + @Override + protected EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value) { + return null; + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper2MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper2MeasurementView.java new file mode 100644 index 00000000..479b9f9f --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper2MeasurementView.java @@ -0,0 +1,72 @@ +/* Copyright (C) 2018 olie.xdev +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see +*/ +package com.health.openscale.gui.views; + +import android.content.Context; +import android.graphics.Color; + +import com.health.openscale.R; +import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.health.openscale.core.evaluation.EvaluationResult; +import com.health.openscale.core.evaluation.EvaluationSheet; + +public class Caliper2MeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences + public static final String KEY = "caliper2"; + + public Caliper2MeasurementView(Context context) { + super(context, R.string.label_caliper2_female, R.drawable.ic_caliper2); + + if (getScaleUser().getGender().isMale()) { + setNameView(getResources().getText(R.string.label_caliper2_male)); + } + } + + @Override + public String getKey() { + return KEY; + } + + @Override + protected float getMeasurementValue(ScaleMeasurement measurement) { + return measurement.getCaliper2(); + } + + @Override + protected void setMeasurementValue(float value, ScaleMeasurement measurement) { + measurement.setCaliper2(value); + } + + @Override + public String getUnit() { + return "mm"; + } + + @Override + protected float getMaxValue() { + return 500; + } + + @Override + public int getColor() { + return Color.parseColor("#ce93d8"); + } + + @Override + protected EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value) { + return null; + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper3MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper3MeasurementView.java new file mode 100644 index 00000000..a6919389 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/Caliper3MeasurementView.java @@ -0,0 +1,72 @@ +/* Copyright (C) 2018 olie.xdev +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see +*/ +package com.health.openscale.gui.views; + +import android.content.Context; +import android.graphics.Color; + +import com.health.openscale.R; +import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.health.openscale.core.evaluation.EvaluationResult; +import com.health.openscale.core.evaluation.EvaluationSheet; + +public class Caliper3MeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences + public static final String KEY = "caliper3"; + + public Caliper3MeasurementView(Context context) { + super(context, R.string.label_caliper3_female, R.drawable.ic_caliper3); + + if (getScaleUser().getGender().isMale()) { + setNameView(getResources().getText(R.string.label_caliper3_male)); + } + } + + @Override + public String getKey() { + return KEY; + } + + @Override + protected float getMeasurementValue(ScaleMeasurement measurement) { + return measurement.getCaliper3(); + } + + @Override + protected void setMeasurementValue(float value, ScaleMeasurement measurement) { + measurement.setCaliper3(value); + } + + @Override + public String getUnit() { + return "mm"; + } + + @Override + protected float getMaxValue() { + return 500; + } + + @Override + public int getColor() { + return Color.parseColor("#e1bee7"); + } + + @Override + protected EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value) { + return null; + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FatCaliperMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/FatCaliperMeasurementView.java new file mode 100644 index 00000000..c0904527 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/FatCaliperMeasurementView.java @@ -0,0 +1,73 @@ +/* Copyright (C) 2018 olie.xdev +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see +*/ +package com.health.openscale.gui.views; + +import android.content.Context; +import android.graphics.Color; + +import com.health.openscale.R; +import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.health.openscale.core.evaluation.EvaluationResult; +import com.health.openscale.core.evaluation.EvaluationSheet; + +public class FatCaliperMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences + public static final String KEY = "fat_caliper"; + + public FatCaliperMeasurementView(Context context) { + super(context, R.string.label_fat_caliper, R.drawable.ic_fat_caliper); + } + + @Override + public String getKey() { + return KEY; + } + + @Override + public boolean isEditable() { + return false; + } + + @Override + protected float getMeasurementValue(ScaleMeasurement measurement) { + return measurement.getFatCaliper(getScaleUser()); + } + + @Override + protected void setMeasurementValue(float value, ScaleMeasurement measurement) { + + } + + @Override + public String getUnit() { + return "%"; + } + + @Override + protected float getMaxValue() { + return 80; + } + + @Override + public int getColor() { + return Color.parseColor("#f3e5f5"); + } + + @Override + protected EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value) { + return null; + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java index 48396bd2..6b15a15b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java @@ -68,7 +68,7 @@ public abstract class FloatMeasurementView extends MeasurementView { private float userConvertedWeight; private EvaluationResult evaluationResult; - private final String nameText; + private String nameText; private Button incButton; private Button decButton; @@ -465,6 +465,13 @@ public abstract class FloatMeasurementView extends MeasurementView { } } + @Override + protected void setNameView(CharSequence text) { + super.setNameView(text); + + nameText = text.toString(); + } + @Override public void setExpand(boolean state) { final boolean show = state && isVisible() && evaluationResult != null; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java index 1274926a..bca0785f 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java @@ -120,6 +120,10 @@ public abstract class MeasurementView extends TableLayout { unsorted.add(new ThighMeasurementView(context)); unsorted.add(new BicepsMeasurementView(context)); unsorted.add(new NeckMeasurementView(context)); + unsorted.add(new FatCaliperMeasurementView(context)); + unsorted.add(new Caliper1MeasurementView(context)); + unsorted.add(new Caliper2MeasurementView(context)); + unsorted.add(new Caliper3MeasurementView(context)); unsorted.add(new BMRMeasurementView(context)); unsorted.add(new CommentMeasurementView(context)); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java index fe282e56..5db9c5ed 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java @@ -60,6 +60,9 @@ public class MeasurementViewSettings { case BicepsMeasurementView.KEY: case ThighMeasurementView.KEY: case NeckMeasurementView.KEY: + case Caliper1MeasurementView.KEY: + case Caliper2MeasurementView.KEY: + case Caliper3MeasurementView.KEY: defaultValue = false; break; default: @@ -80,6 +83,11 @@ public class MeasurementViewSettings { public boolean areDependenciesEnabled() { switch (key) { + case FatCaliperMeasurementView.KEY: + return isDependencyEnabled(Caliper1MeasurementView.KEY) + && isDependencyEnabled(Caliper2MeasurementView.KEY) + && isDependencyEnabled(Caliper3MeasurementView.KEY); + case BMIMeasurementView.KEY: case BMRMeasurementView.KEY: return isDependencyEnabled(WeightMeasurementView.KEY); diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-hdpi/ic_caliper1.png new file mode 100644 index 00000000..475416db Binary files /dev/null and b/android_app/app/src/main/res/drawable-hdpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-hdpi/ic_caliper2.png new file mode 100644 index 00000000..bc88a5bd Binary files /dev/null and b/android_app/app/src/main/res/drawable-hdpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-hdpi/ic_caliper3.png new file mode 100644 index 00000000..b90d9107 Binary files /dev/null and b/android_app/app/src/main/res/drawable-hdpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-hdpi/ic_fat_caliper.png new file mode 100644 index 00000000..bf247a63 Binary files /dev/null and b/android_app/app/src/main/res/drawable-hdpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-ldpi/ic_caliper1.png new file mode 100644 index 00000000..e4ce43ee Binary files /dev/null and b/android_app/app/src/main/res/drawable-ldpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-ldpi/ic_caliper2.png new file mode 100644 index 00000000..ce7d22f5 Binary files /dev/null and b/android_app/app/src/main/res/drawable-ldpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-ldpi/ic_caliper3.png new file mode 100644 index 00000000..b90be305 Binary files /dev/null and b/android_app/app/src/main/res/drawable-ldpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-ldpi/ic_fat_caliper.png new file mode 100644 index 00000000..b85bcac1 Binary files /dev/null and b/android_app/app/src/main/res/drawable-ldpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-mdpi/ic_caliper1.png new file mode 100644 index 00000000..b6662cf5 Binary files /dev/null and b/android_app/app/src/main/res/drawable-mdpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-mdpi/ic_caliper2.png new file mode 100644 index 00000000..e2a9b32e Binary files /dev/null and b/android_app/app/src/main/res/drawable-mdpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-mdpi/ic_caliper3.png new file mode 100644 index 00000000..f69a3681 Binary files /dev/null and b/android_app/app/src/main/res/drawable-mdpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-mdpi/ic_fat_caliper.png new file mode 100644 index 00000000..c63d10e1 Binary files /dev/null and b/android_app/app/src/main/res/drawable-mdpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper1.png new file mode 100644 index 00000000..536ade7a Binary files /dev/null and b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper2.png new file mode 100644 index 00000000..ec129615 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper3.png new file mode 100644 index 00000000..3d17d86e Binary files /dev/null and b/android_app/app/src/main/res/drawable-xhdpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-xhdpi/ic_fat_caliper.png new file mode 100644 index 00000000..52ee878b Binary files /dev/null and b/android_app/app/src/main/res/drawable-xhdpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper1.png new file mode 100644 index 00000000..b206daf7 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper2.png new file mode 100644 index 00000000..bfa069e3 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper3.png new file mode 100644 index 00000000..2810e1d9 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxhdpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_fat_caliper.png new file mode 100644 index 00000000..72ede516 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxhdpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper1.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper1.png new file mode 100644 index 00000000..e896cb64 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper1.png differ diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper2.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper2.png new file mode 100644 index 00000000..2836d5b4 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper2.png differ diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper3.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper3.png new file mode 100644 index 00000000..13055cf8 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper3.png differ diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_fat_caliper.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_fat_caliper.png new file mode 100644 index 00000000..1b374811 Binary files /dev/null and b/android_app/app/src/main/res/drawable-xxxhdpi/ic_fat_caliper.png differ diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml index 8354b035..3b113cc3 100644 --- a/android_app/app/src/main/res/values/strings.xml +++ b/android_app/app/src/main/res/values/strings.xml @@ -227,4 +227,11 @@ Thigh circumference Biceps circumference Neck circumference + Body fat caliper + Chest skinfold + Abdominal skinfold + Thigh skinfold + Triceps skinfold + Abdominal skinfold + Hip skinfold