From 5b5274e7988e7559be1748036310e349aa16fc8c Mon Sep 17 00:00:00 2001 From: OliE Date: Tue, 16 Jun 2020 09:55:10 +0200 Subject: [PATCH] Androidx refactoring (#587) - integration of Androidx navigation component - replaced obsoleted preferences with Androidx preferences - replaced png file with svg files - integration of DayNight theme - use of live data to have always up-to-date measurements --- .travis.yml | 4 + android_app/app/build.gradle | 20 +- .../openscale/gui/AddMeasurementTest.java | 53 ++- .../com/health/openscale/gui/AddUserTest.java | 17 +- .../openscale/gui/ScreenshotRecorder.java | 28 +- android_app/app/src/main/AndroidManifest.xml | 13 +- .../health/openscale/core/Application.java | 12 + .../com/health/openscale/core/OpenScale.java | 114 +++---- .../core/alarm/AlarmBackupHandler.java | 1 + .../core/database/ScaleMeasurementDAO.java | 20 +- .../health/openscale/gui/MainActivity.java | 308 ++++++++---------- .../gui/activities/BaseAppCompatActivity.java | 87 ----- .../gui/activities/SettingsActivity.java | 117 ------- .../gui/fragments/FragmentUpdateListener.java | 25 -- .../{fragments => graph}/GraphFragment.java | 74 ++--- .../BMIMeasurementView.java | 2 +- .../BMRMeasurementView.java | 2 +- .../BicepsMeasurementView.java | 2 +- .../BoneMeasurementView.java | 2 +- .../Caliper1MeasurementView.java | 2 +- .../Caliper2MeasurementView.java | 2 +- .../Caliper3MeasurementView.java | 2 +- .../CaloriesMeasurementView.java | 2 +- .../ChartActionBarView.java | 2 +- .../ChartMarkerView.java | 2 +- .../ChartMeasurementView.java | 20 +- .../ChestMeasurementView.java | 2 +- .../CommentMeasurementView.java | 2 +- .../DateMeasurementView.java | 2 +- .../FatCaliperMeasurementView.java | 2 +- .../FatMeasurementView.java | 5 +- .../FloatMeasurementView.java | 49 +-- .../HipMeasurementView.java | 2 +- .../LBMMeasurementView.java | 5 +- .../LinearGaugeView.java | 2 +- .../MeasurementEntryFragment.java} | 165 ++++------ .../MeasurementView.java | 16 +- .../MeasurementViewSettings.java | 2 +- .../MeasurementViewUpdateListener.java | 2 +- .../MuscleMeasurementView.java | 2 +- .../NeckMeasurementView.java | 2 +- .../TDEEMeasurementView.java | 2 +- .../ThighMeasurementView.java | 2 +- .../TimeMeasurementView.java | 2 +- .../UserMeasurementView.java | 2 +- .../VisceralFatMeasurementView.java | 2 +- .../WHRMeasurementView.java | 2 +- .../WHtRMeasurementView.java | 2 +- .../WaistMeasurementView.java | 2 +- .../WaterMeasurementView.java | 5 +- .../WeightMeasurementView.java | 2 +- .../OverviewFragment.java | 59 ++-- .../gui/preferences/AboutPreferences.java | 22 +- .../gui/preferences/BackupPreferences.java | 100 ++---- .../gui/preferences/BluetoothPreferences.java | 66 ++-- .../BluetoothSettingsFragment.java} | 77 +++-- .../gui/preferences/GeneralPreferences.java | 110 ++----- .../gui/preferences/GraphPreferences.java | 32 +- .../gui/preferences/MainPreferences.java | 147 +++++++++ .../MeasurementDetailPreferences.java | 52 +++ .../preferences/MeasurementPreferences.java | 288 +++++++--------- .../gui/preferences/ReminderPreferences.java | 103 ++---- .../gui/preferences/TimePreference.java | 89 +++++ .../gui/preferences/TimePreferenceDialog.java | 160 +++++---- .../UserSettingsFragment.java} | 128 ++++---- .../gui/preferences/UsersPreferences.java | 89 +++-- .../AppIntroActivity.java | 23 +- .../gui/slides/BluetoothIntroSlide.java | 15 +- .../gui/slides/SlideToNavigationAdapter.java | 73 +++++ .../openscale/gui/slides/UserIntroSlide.java | 6 +- .../StatisticsFragment.java | 65 ++-- .../{fragments => table}/TableFragment.java | 38 +-- .../health/openscale/gui/utils/ColorUtil.java | 2 +- .../openscale/gui/utils/PermissionHelper.java | 83 ++--- .../openscale/gui/widget/WidgetConfigure.java | 7 +- .../openscale/gui/widget/WidgetProvider.java | 9 +- .../main/res/drawable-hdpi/appwidget_bg.9.png | Bin 6647 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_add.png | Bin 214 -> 0 bytes .../src/main/res/drawable-hdpi/ic_biceps.png | Bin 963 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 1137 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 650 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 813 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 901 -> 0 bytes .../drawable-hdpi/ic_bluetooth_disabled.png | Bin 1054 -> 0 bytes .../drawable-hdpi/ic_bluetooth_searching.png | Bin 740 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_bmi.png | Bin 605 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_bmr.png | Bin 607 -> 0 bytes .../src/main/res/drawable-hdpi/ic_bone.png | Bin 501 -> 0 bytes .../main/res/drawable-hdpi/ic_caliper1.png | Bin 1043 -> 0 bytes .../main/res/drawable-hdpi/ic_caliper2.png | Bin 1066 -> 0 bytes .../main/res/drawable-hdpi/ic_caliper3.png | Bin 1069 -> 0 bytes .../main/res/drawable-hdpi/ic_calories.png | Bin 983 -> 0 bytes .../src/main/res/drawable-hdpi/ic_chest.png | Bin 943 -> 0 bytes .../src/main/res/drawable-hdpi/ic_comment.png | Bin 516 -> 0 bytes .../main/res/drawable-hdpi/ic_daysleft.png | Bin 893 -> 0 bytes .../src/main/res/drawable-hdpi/ic_delete.png | Bin 251 -> 0 bytes .../main/res/drawable-hdpi/ic_difference.png | Bin 858 -> 0 bytes .../main/res/drawable-hdpi/ic_editable.png | Bin 450 -> 0 bytes .../src/main/res/drawable-hdpi/ic_expand.png | Bin 427 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_fat.png | Bin 791 -> 0 bytes .../main/res/drawable-hdpi/ic_fat_caliper.png | Bin 891 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_hip.png | Bin 942 -> 0 bytes .../main/res/drawable-hdpi/ic_lastmonth.png | Bin 746 -> 0 bytes .../main/res/drawable-hdpi/ic_lastweek.png | Bin 630 -> 0 bytes .../drawable-hdpi/ic_launcher_openscale.png | Bin 3049 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 3660 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 3501 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_lbm.png | Bin 954 -> 0 bytes .../src/main/res/drawable-hdpi/ic_muscle.png | Bin 708 -> 0 bytes .../src/main/res/drawable-hdpi/ic_neck.png | Bin 634 -> 0 bytes .../src/main/res/drawable-hdpi/ic_options.png | Bin 168 -> 0 bytes .../drawable-hdpi/ic_preference_donate.png | Bin 349 -> 0 bytes .../drawable-hdpi/ic_preferences_about.png | Bin 460 -> 0 bytes .../drawable-hdpi/ic_preferences_backup.png | Bin 702 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 328 -> 0 bytes .../drawable-hdpi/ic_preferences_graph.png | Bin 514 -> 0 bytes .../res/drawable-hdpi/ic_preferences_help.png | Bin 536 -> 0 bytes .../res/drawable-hdpi/ic_preferences_home.png | Bin 435 -> 0 bytes .../ic_preferences_measurement.png | Bin 528 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 514 -> 0 bytes .../drawable-hdpi/ic_preferences_reminder.png | Bin 461 -> 0 bytes .../drawable-hdpi/ic_preferences_settings.png | Bin 593 -> 0 bytes .../ic_preferences_statistics.png | Bin 392 -> 0 bytes .../drawable-hdpi/ic_preferences_table.png | Bin 477 -> 0 bytes .../drawable-hdpi/ic_preferences_users.png | Bin 621 -> 0 bytes .../src/main/res/drawable-hdpi/ic_save.png | Bin 411 -> 0 bytes .../src/main/res/drawable-hdpi/ic_show.png | Bin 625 -> 0 bytes .../main/res/drawable-hdpi/ic_slide_group.png | Bin 862 -> 0 bytes .../res/drawable-hdpi/ic_slide_opensource.png | Bin 1033 -> 0 bytes .../res/drawable-hdpi/ic_slide_privacy.png | Bin 1072 -> 0 bytes .../res/drawable-hdpi/ic_slide_support.png | Bin 756 -> 0 bytes .../src/main/res/drawable-hdpi/ic_target.png | Bin 1297 -> 0 bytes .../src/main/res/drawable-hdpi/ic_tdee.png | Bin 911 -> 0 bytes .../src/main/res/drawable-hdpi/ic_thigh.png | Bin 1039 -> 0 bytes .../src/main/res/drawable-hdpi/ic_user.png | Bin 567 -> 0 bytes .../res/drawable-hdpi/ic_visceral_fat.png | Bin 795 -> 0 bytes .../src/main/res/drawable-hdpi/ic_waist.png | Bin 834 -> 0 bytes .../src/main/res/drawable-hdpi/ic_water.png | Bin 620 -> 0 bytes .../src/main/res/drawable-hdpi/ic_weight.png | Bin 508 -> 0 bytes .../app/src/main/res/drawable-hdpi/ic_whr.png | Bin 433 -> 0 bytes .../src/main/res/drawable-hdpi/ic_whtr.png | Bin 955 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_add.png | Bin 146 -> 0 bytes .../src/main/res/drawable-ldpi/ic_biceps.png | Bin 448 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 560 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 373 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 509 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 476 -> 0 bytes .../drawable-ldpi/ic_bluetooth_disabled.png | Bin 598 -> 0 bytes .../drawable-ldpi/ic_bluetooth_searching.png | Bin 399 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_bmi.png | Bin 321 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_bmr.png | Bin 339 -> 0 bytes .../src/main/res/drawable-ldpi/ic_bone.png | Bin 310 -> 0 bytes .../main/res/drawable-ldpi/ic_caliper1.png | Bin 481 -> 0 bytes .../main/res/drawable-ldpi/ic_caliper2.png | Bin 489 -> 0 bytes .../main/res/drawable-ldpi/ic_caliper3.png | Bin 494 -> 0 bytes .../main/res/drawable-ldpi/ic_calories.png | Bin 440 -> 0 bytes .../src/main/res/drawable-ldpi/ic_chest.png | Bin 432 -> 0 bytes .../src/main/res/drawable-ldpi/ic_comment.png | Bin 343 -> 0 bytes .../main/res/drawable-ldpi/ic_daysleft.png | Bin 435 -> 0 bytes .../src/main/res/drawable-ldpi/ic_delete.png | Bin 205 -> 0 bytes .../main/res/drawable-ldpi/ic_difference.png | Bin 464 -> 0 bytes .../main/res/drawable-ldpi/ic_editable.png | Bin 261 -> 0 bytes .../src/main/res/drawable-ldpi/ic_expand.png | Bin 282 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_fat.png | Bin 363 -> 0 bytes .../main/res/drawable-ldpi/ic_fat_caliper.png | Bin 431 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_hip.png | Bin 438 -> 0 bytes .../main/res/drawable-ldpi/ic_lastmonth.png | Bin 406 -> 0 bytes .../main/res/drawable-ldpi/ic_lastweek.png | Bin 343 -> 0 bytes .../drawable-ldpi/ic_launcher_openscale.png | Bin 405 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 452 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 450 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_lbm.png | Bin 367 -> 0 bytes .../src/main/res/drawable-ldpi/ic_muscle.png | Bin 367 -> 0 bytes .../src/main/res/drawable-ldpi/ic_neck.png | Bin 312 -> 0 bytes .../src/main/res/drawable-ldpi/ic_options.png | Bin 154 -> 0 bytes .../drawable-ldpi/ic_preference_donate.png | Bin 222 -> 0 bytes .../drawable-ldpi/ic_preferences_about.png | Bin 253 -> 0 bytes .../drawable-ldpi/ic_preferences_backup.png | Bin 314 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 178 -> 0 bytes .../drawable-ldpi/ic_preferences_graph.png | Bin 278 -> 0 bytes .../res/drawable-ldpi/ic_preferences_help.png | Bin 287 -> 0 bytes .../res/drawable-ldpi/ic_preferences_home.png | Bin 261 -> 0 bytes .../ic_preferences_measurement.png | Bin 263 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 278 -> 0 bytes .../drawable-ldpi/ic_preferences_reminder.png | Bin 260 -> 0 bytes .../drawable-ldpi/ic_preferences_settings.png | Bin 310 -> 0 bytes .../ic_preferences_statistics.png | Bin 241 -> 0 bytes .../drawable-ldpi/ic_preferences_table.png | Bin 243 -> 0 bytes .../drawable-ldpi/ic_preferences_users.png | Bin 311 -> 0 bytes .../src/main/res/drawable-ldpi/ic_save.png | Bin 280 -> 0 bytes .../src/main/res/drawable-ldpi/ic_show.png | Bin 320 -> 0 bytes .../main/res/drawable-ldpi/ic_slide_group.png | Bin 426 -> 0 bytes .../res/drawable-ldpi/ic_slide_opensource.png | Bin 475 -> 0 bytes .../res/drawable-ldpi/ic_slide_privacy.png | Bin 482 -> 0 bytes .../res/drawable-ldpi/ic_slide_support.png | Bin 338 -> 0 bytes .../src/main/res/drawable-ldpi/ic_target.png | Bin 577 -> 0 bytes .../src/main/res/drawable-ldpi/ic_tdee.png | Bin 434 -> 0 bytes .../src/main/res/drawable-ldpi/ic_thigh.png | Bin 467 -> 0 bytes .../src/main/res/drawable-ldpi/ic_user.png | Bin 314 -> 0 bytes .../res/drawable-ldpi/ic_visceral_fat.png | Bin 405 -> 0 bytes .../src/main/res/drawable-ldpi/ic_waist.png | Bin 404 -> 0 bytes .../src/main/res/drawable-ldpi/ic_water.png | Bin 330 -> 0 bytes .../src/main/res/drawable-ldpi/ic_weight.png | Bin 282 -> 0 bytes .../app/src/main/res/drawable-ldpi/ic_whr.png | Bin 259 -> 0 bytes .../src/main/res/drawable-ldpi/ic_whtr.png | Bin 482 -> 0 bytes .../main/res/drawable-mdpi/appwidget_bg.9.png | Bin 6494 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_add.png | Bin 129 -> 0 bytes .../src/main/res/drawable-mdpi/ic_biceps.png | Bin 581 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 679 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 495 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 652 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 603 -> 0 bytes .../drawable-mdpi/ic_bluetooth_disabled.png | Bin 777 -> 0 bytes .../drawable-mdpi/ic_bluetooth_searching.png | Bin 567 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_bmi.png | Bin 437 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_bmr.png | Bin 458 -> 0 bytes .../src/main/res/drawable-mdpi/ic_bone.png | Bin 382 -> 0 bytes .../main/res/drawable-mdpi/ic_caliper1.png | Bin 661 -> 0 bytes .../main/res/drawable-mdpi/ic_caliper2.png | Bin 674 -> 0 bytes .../main/res/drawable-mdpi/ic_caliper3.png | Bin 693 -> 0 bytes .../main/res/drawable-mdpi/ic_calories.png | Bin 605 -> 0 bytes .../src/main/res/drawable-mdpi/ic_chest.png | Bin 588 -> 0 bytes .../src/main/res/drawable-mdpi/ic_comment.png | Bin 412 -> 0 bytes .../main/res/drawable-mdpi/ic_daysleft.png | Bin 583 -> 0 bytes .../src/main/res/drawable-mdpi/ic_delete.png | Bin 171 -> 0 bytes .../main/res/drawable-mdpi/ic_difference.png | Bin 598 -> 0 bytes .../main/res/drawable-mdpi/ic_editable.png | Bin 320 -> 0 bytes .../src/main/res/drawable-mdpi/ic_expand.png | Bin 272 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_fat.png | Bin 478 -> 0 bytes .../main/res/drawable-mdpi/ic_fat_caliper.png | Bin 580 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_hip.png | Bin 577 -> 0 bytes .../main/res/drawable-mdpi/ic_lastmonth.png | Bin 523 -> 0 bytes .../main/res/drawable-mdpi/ic_lastweek.png | Bin 461 -> 0 bytes .../drawable-mdpi/ic_launcher_openscale.png | Bin 2244 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 2539 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 2460 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_lbm.png | Bin 548 -> 0 bytes .../src/main/res/drawable-mdpi/ic_muscle.png | Bin 469 -> 0 bytes .../src/main/res/drawable-mdpi/ic_neck.png | Bin 427 -> 0 bytes .../src/main/res/drawable-mdpi/ic_options.png | Bin 133 -> 0 bytes .../drawable-mdpi/ic_preference_donate.png | Bin 253 -> 0 bytes .../drawable-mdpi/ic_preferences_about.png | Bin 333 -> 0 bytes .../drawable-mdpi/ic_preferences_backup.png | Bin 462 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 206 -> 0 bytes .../drawable-mdpi/ic_preferences_graph.png | Bin 354 -> 0 bytes .../res/drawable-mdpi/ic_preferences_help.png | Bin 398 -> 0 bytes .../res/drawable-mdpi/ic_preferences_home.png | Bin 308 -> 0 bytes .../ic_preferences_measurement.png | Bin 343 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 354 -> 0 bytes .../drawable-mdpi/ic_preferences_reminder.png | Bin 332 -> 0 bytes .../drawable-mdpi/ic_preferences_settings.png | Bin 409 -> 0 bytes .../ic_preferences_statistics.png | Bin 293 -> 0 bytes .../drawable-mdpi/ic_preferences_table.png | Bin 358 -> 0 bytes .../drawable-mdpi/ic_preferences_users.png | Bin 397 -> 0 bytes .../src/main/res/drawable-mdpi/ic_save.png | Bin 243 -> 0 bytes .../src/main/res/drawable-mdpi/ic_show.png | Bin 407 -> 0 bytes .../main/res/drawable-mdpi/ic_slide_group.png | Bin 561 -> 0 bytes .../res/drawable-mdpi/ic_slide_opensource.png | Bin 641 -> 0 bytes .../res/drawable-mdpi/ic_slide_privacy.png | Bin 667 -> 0 bytes .../res/drawable-mdpi/ic_slide_support.png | Bin 503 -> 0 bytes .../src/main/res/drawable-mdpi/ic_target.png | Bin 835 -> 0 bytes .../src/main/res/drawable-mdpi/ic_tdee.png | Bin 612 -> 0 bytes .../src/main/res/drawable-mdpi/ic_thigh.png | Bin 625 -> 0 bytes .../src/main/res/drawable-mdpi/ic_user.png | Bin 394 -> 0 bytes .../res/drawable-mdpi/ic_visceral_fat.png | Bin 524 -> 0 bytes .../src/main/res/drawable-mdpi/ic_waist.png | Bin 569 -> 0 bytes .../src/main/res/drawable-mdpi/ic_water.png | Bin 422 -> 0 bytes .../src/main/res/drawable-mdpi/ic_weight.png | Bin 367 -> 0 bytes .../app/src/main/res/drawable-mdpi/ic_whr.png | Bin 341 -> 0 bytes .../src/main/res/drawable-mdpi/ic_whtr.png | Bin 621 -> 0 bytes .../main/res/drawable-nodpi/chart_marker.png | Bin 2984 -> 0 bytes .../res/drawable-xhdpi/appwidget_bg.9.png | Bin 6955 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_add.png | Bin 166 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_biceps.png | Bin 1350 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 1496 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 1101 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 991 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 1132 -> 0 bytes .../drawable-xhdpi/ic_bluetooth_disabled.png | Bin 1337 -> 0 bytes .../drawable-xhdpi/ic_bluetooth_searching.png | Bin 980 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_bmi.png | Bin 803 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_bmr.png | Bin 818 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_bone.png | Bin 716 -> 0 bytes .../main/res/drawable-xhdpi/ic_caliper1.png | Bin 1381 -> 0 bytes .../main/res/drawable-xhdpi/ic_caliper2.png | Bin 1435 -> 0 bytes .../main/res/drawable-xhdpi/ic_caliper3.png | Bin 1431 -> 0 bytes .../main/res/drawable-xhdpi/ic_calories.png | Bin 1397 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_chest.png | Bin 1282 -> 0 bytes .../main/res/drawable-xhdpi/ic_comment.png | Bin 685 -> 0 bytes .../main/res/drawable-xhdpi/ic_daysleft.png | Bin 1224 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_delete.png | Bin 248 -> 0 bytes .../main/res/drawable-xhdpi/ic_difference.png | Bin 1163 -> 0 bytes .../main/res/drawable-xhdpi/ic_editable.png | Bin 575 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_expand.png | Bin 506 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_fat.png | Bin 1058 -> 0 bytes .../res/drawable-xhdpi/ic_fat_caliper.png | Bin 1186 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_hip.png | Bin 1348 -> 0 bytes .../main/res/drawable-xhdpi/ic_lastmonth.png | Bin 1006 -> 0 bytes .../main/res/drawable-xhdpi/ic_lastweek.png | Bin 821 -> 0 bytes .../drawable-xhdpi/ic_launcher_openscale.png | Bin 5075 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 5713 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 5545 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_lbm.png | Bin 1445 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_muscle.png | Bin 989 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_neck.png | Bin 856 -> 0 bytes .../main/res/drawable-xhdpi/ic_options.png | Bin 158 -> 0 bytes .../drawable-xhdpi/ic_preference_donate.png | Bin 431 -> 0 bytes .../drawable-xhdpi/ic_preferences_about.png | Bin 649 -> 0 bytes .../drawable-xhdpi/ic_preferences_backup.png | Bin 1020 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 806 -> 0 bytes .../drawable-xhdpi/ic_preferences_graph.png | Bin 661 -> 0 bytes .../drawable-xhdpi/ic_preferences_help.png | Bin 780 -> 0 bytes .../drawable-xhdpi/ic_preferences_home.png | Bin 548 -> 0 bytes .../ic_preferences_measurement.png | Bin 794 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 661 -> 0 bytes .../ic_preferences_reminder.png | Bin 581 -> 0 bytes .../ic_preferences_settings.png | Bin 815 -> 0 bytes .../ic_preferences_statistics.png | Bin 543 -> 0 bytes .../drawable-xhdpi/ic_preferences_table.png | Bin 587 -> 0 bytes .../drawable-xhdpi/ic_preferences_users.png | Bin 809 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_save.png | Bin 408 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_show.png | Bin 755 -> 0 bytes .../res/drawable-xhdpi/ic_slide_group.png | Bin 1221 -> 0 bytes .../drawable-xhdpi/ic_slide_opensource.png | Bin 1356 -> 0 bytes .../res/drawable-xhdpi/ic_slide_privacy.png | Bin 1573 -> 0 bytes .../res/drawable-xhdpi/ic_slide_support.png | Bin 1071 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_target.png | Bin 1728 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_tdee.png | Bin 1255 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_thigh.png | Bin 1466 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_user.png | Bin 780 -> 0 bytes .../res/drawable-xhdpi/ic_visceral_fat.png | Bin 1173 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_waist.png | Bin 1204 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_water.png | Bin 823 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_weight.png | Bin 690 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_whr.png | Bin 511 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_whtr.png | Bin 1325 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_add.png | Bin 227 -> 0 bytes .../main/res/drawable-xxhdpi/ic_biceps.png | Bin 2151 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 1967 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 1341 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 1219 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 1583 -> 0 bytes .../drawable-xxhdpi/ic_bluetooth_disabled.png | Bin 1748 -> 0 bytes .../ic_bluetooth_searching.png | Bin 1573 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_bmi.png | Bin 1140 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_bmr.png | Bin 1149 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_bone.png | Bin 1005 -> 0 bytes .../main/res/drawable-xxhdpi/ic_caliper1.png | Bin 2098 -> 0 bytes .../main/res/drawable-xxhdpi/ic_caliper2.png | Bin 2157 -> 0 bytes .../main/res/drawable-xxhdpi/ic_caliper3.png | Bin 2198 -> 0 bytes .../main/res/drawable-xxhdpi/ic_calories.png | Bin 2217 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_chest.png | Bin 2032 -> 0 bytes .../main/res/drawable-xxhdpi/ic_comment.png | Bin 833 -> 0 bytes .../main/res/drawable-xxhdpi/ic_daysleft.png | Bin 1855 -> 0 bytes .../main/res/drawable-xxhdpi/ic_delete.png | Bin 352 -> 0 bytes .../res/drawable-xxhdpi/ic_difference.png | Bin 1622 -> 0 bytes .../main/res/drawable-xxhdpi/ic_editable.png | Bin 880 -> 0 bytes .../main/res/drawable-xxhdpi/ic_expand.png | Bin 734 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_fat.png | Bin 1626 -> 0 bytes .../res/drawable-xxhdpi/ic_fat_caliper.png | Bin 1805 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_hip.png | Bin 2079 -> 0 bytes .../main/res/drawable-xxhdpi/ic_lastmonth.png | Bin 1421 -> 0 bytes .../main/res/drawable-xxhdpi/ic_lastweek.png | Bin 1166 -> 0 bytes .../drawable-xxhdpi/ic_launcher_openscale.png | Bin 7045 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 8043 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 7763 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_lbm.png | Bin 2558 -> 0 bytes .../main/res/drawable-xxhdpi/ic_muscle.png | Bin 1534 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_neck.png | Bin 1382 -> 0 bytes .../main/res/drawable-xxhdpi/ic_options.png | Bin 187 -> 0 bytes .../drawable-xxhdpi/ic_preference_donate.png | Bin 595 -> 0 bytes .../drawable-xxhdpi/ic_preferences_about.png | Bin 1013 -> 0 bytes .../drawable-xxhdpi/ic_preferences_backup.png | Bin 1624 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 1178 -> 0 bytes .../drawable-xxhdpi/ic_preferences_graph.png | Bin 1072 -> 0 bytes .../drawable-xxhdpi/ic_preferences_help.png | Bin 1137 -> 0 bytes .../drawable-xxhdpi/ic_preferences_home.png | Bin 800 -> 0 bytes .../ic_preferences_measurement.png | Bin 1248 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 1072 -> 0 bytes .../ic_preferences_reminder.png | Bin 821 -> 0 bytes .../ic_preferences_settings.png | Bin 1385 -> 0 bytes .../ic_preferences_statistics.png | Bin 755 -> 0 bytes .../drawable-xxhdpi/ic_preferences_table.png | Bin 698 -> 0 bytes .../drawable-xxhdpi/ic_preferences_users.png | Bin 1325 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_save.png | Bin 599 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_show.png | Bin 1197 -> 0 bytes .../res/drawable-xxhdpi/ic_slide_group.png | Bin 1923 -> 0 bytes .../drawable-xxhdpi/ic_slide_opensource.png | Bin 2080 -> 0 bytes .../res/drawable-xxhdpi/ic_slide_privacy.png | Bin 2409 -> 0 bytes .../res/drawable-xxhdpi/ic_slide_support.png | Bin 1577 -> 0 bytes .../main/res/drawable-xxhdpi/ic_target.png | Bin 2765 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_tdee.png | Bin 1894 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_thigh.png | Bin 2379 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_user.png | Bin 1113 -> 0 bytes .../res/drawable-xxhdpi/ic_visceral_fat.png | Bin 1665 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_waist.png | Bin 1739 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_water.png | Bin 1250 -> 0 bytes .../main/res/drawable-xxhdpi/ic_weight.png | Bin 1013 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_whr.png | Bin 778 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_whtr.png | Bin 1997 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_add.png | Bin 272 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_biceps.png | Bin 2905 -> 0 bytes .../ic_bluetooth_connection_lost.png | Bin 2603 -> 0 bytes .../ic_bluetooth_connection_success.png | Bin 1673 -> 0 bytes .../ic_bluetooth_device_not_supported.png | Bin 1472 -> 0 bytes .../ic_bluetooth_device_supported.png | Bin 2061 -> 0 bytes .../ic_bluetooth_disabled.png | Bin 2014 -> 0 bytes .../ic_bluetooth_searching.png | Bin 2265 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_bmi.png | Bin 1442 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_bmr.png | Bin 1558 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_bone.png | Bin 1348 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_caliper1.png | Bin 2837 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_caliper2.png | Bin 2960 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_caliper3.png | Bin 2977 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_calories.png | Bin 2998 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_chest.png | Bin 2840 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_comment.png | Bin 1116 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_daysleft.png | Bin 2478 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_delete.png | Bin 434 -> 0 bytes .../res/drawable-xxxhdpi/ic_difference.png | Bin 2194 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_editable.png | Bin 1137 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_expand.png | Bin 918 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_fat.png | Bin 2080 -> 0 bytes .../res/drawable-xxxhdpi/ic_fat_caliper.png | Bin 2414 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_hip.png | Bin 2870 -> 0 bytes .../res/drawable-xxxhdpi/ic_lastmonth.png | Bin 1822 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_lastweek.png | Bin 1479 -> 0 bytes .../ic_launcher_openscale.png | Bin 11047 -> 0 bytes .../ic_launcher_openscale_light.png | Bin 12064 -> 0 bytes .../ic_launcher_openscale_pro.png | Bin 11758 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_lbm.png | Bin 3633 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_muscle.png | Bin 2003 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_neck.png | Bin 1957 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_options.png | Bin 216 -> 0 bytes .../drawable-xxxhdpi/ic_preference_donate.png | Bin 837 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_about.png | Bin 1299 -> 0 bytes .../ic_preferences_backup.png | Bin 2246 -> 0 bytes .../ic_preferences_bluetooth.png | Bin 1914 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_graph.png | Bin 1444 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_help.png | Bin 1557 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_home.png | Bin 1035 -> 0 bytes .../ic_preferences_measurement.png | Bin 1721 -> 0 bytes .../ic_preferences_nav_graph.png | Bin 1444 -> 0 bytes .../ic_preferences_reminder.png | Bin 1034 -> 0 bytes .../ic_preferences_settings.png | Bin 1920 -> 0 bytes .../ic_preferences_statistics.png | Bin 1041 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_table.png | Bin 879 -> 0 bytes .../drawable-xxxhdpi/ic_preferences_users.png | Bin 1710 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_save.png | Bin 779 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_show.png | Bin 1667 -> 0 bytes .../res/drawable-xxxhdpi/ic_slide_group.png | Bin 2579 -> 0 bytes .../drawable-xxxhdpi/ic_slide_opensource.png | Bin 2870 -> 0 bytes .../res/drawable-xxxhdpi/ic_slide_privacy.png | Bin 3252 -> 0 bytes .../res/drawable-xxxhdpi/ic_slide_support.png | Bin 2084 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_target.png | Bin 3713 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_tdee.png | Bin 2522 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_thigh.png | Bin 3216 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_user.png | Bin 1513 -> 0 bytes .../res/drawable-xxxhdpi/ic_visceral_fat.png | Bin 2092 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_waist.png | Bin 2337 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_water.png | Bin 1668 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_weight.png | Bin 1397 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_whr.png | Bin 1024 -> 0 bytes .../src/main/res/drawable-xxxhdpi/ic_whtr.png | Bin 2713 -> 0 bytes .../src/main/res/drawable/appwidget_bg.xml | 13 + .../src/main/res/drawable/chart_marker.xml | 13 + .../app/src/main/res/drawable/ic_add.xml | 5 + .../app/src/main/res/drawable/ic_biceps.xml | 6 + .../drawable/ic_bluetooth_connection_lost.xml | 67 ++++ .../ic_bluetooth_connection_success.xml | 22 ++ .../ic_bluetooth_device_not_supported.xml | 5 + .../ic_bluetooth_device_supported.xml | 5 + .../res/drawable/ic_bluetooth_disabled.xml | 9 + .../res/drawable/ic_bluetooth_searching.xml | 9 + .../app/src/main/res/drawable/ic_bmi.xml | 9 + .../app/src/main/res/drawable/ic_bmr.xml | 6 + .../app/src/main/res/drawable/ic_bone.xml | 12 + .../app/src/main/res/drawable/ic_caliper1.xml | 20 ++ .../app/src/main/res/drawable/ic_caliper2.xml | 20 ++ .../app/src/main/res/drawable/ic_caliper3.xml | 20 ++ .../app/src/main/res/drawable/ic_calories.xml | 10 + .../src/main/res/drawable/ic_chart_marker.xml | 13 + .../app/src/main/res/drawable/ic_chest.xml | 18 + .../app/src/main/res/drawable/ic_comment.xml | 9 + .../app/src/main/res/drawable/ic_daysleft.xml | 30 ++ .../app/src/main/res/drawable/ic_delete.xml | 10 + .../src/main/res/drawable/ic_difference.xml | 18 + .../app/src/main/res/drawable/ic_editable.xml | 10 + .../app/src/main/res/drawable/ic_expand.xml | 12 + .../app/src/main/res/drawable/ic_fat.xml | 9 + .../src/main/res/drawable/ic_fat_caliper.xml | 4 + .../app/src/main/res/drawable/ic_hip.xml | 12 + .../src/main/res/drawable/ic_lastmonth.xml | 21 ++ .../app/src/main/res/drawable/ic_lastweek.xml | 15 + .../res/drawable/ic_launcher_openscale.xml | 28 ++ .../drawable/ic_launcher_openscale_light.xml | 42 +++ .../drawable/ic_launcher_openscale_pro.xml | 68 ++++ .../app/src/main/res/drawable/ic_lbm.xml | 10 + .../app/src/main/res/drawable/ic_muscle.xml | 21 ++ .../app/src/main/res/drawable/ic_neck.xml | 21 ++ .../app/src/main/res/drawable/ic_options.xml | 10 + .../res/drawable/ic_preference_donate.xml | 5 + .../res/drawable/ic_preferences_about.xml | 5 + .../res/drawable/ic_preferences_backup.xml | 15 + .../res/drawable/ic_preferences_bluetooth.xml | 54 +++ .../res/drawable/ic_preferences_graph.xml | 12 + .../main/res/drawable/ic_preferences_help.xml | 10 + .../main/res/drawable/ic_preferences_home.xml | 10 + .../drawable/ic_preferences_measurement.xml | 12 + .../res/drawable/ic_preferences_nav_graph.xml | 12 + .../res/drawable/ic_preferences_reminder.xml | 15 + .../res/drawable/ic_preferences_settings.xml | 10 + .../drawable/ic_preferences_statistics.xml | 12 + .../res/drawable/ic_preferences_table.xml | 6 + .../res/drawable/ic_preferences_users.xml | 27 ++ .../app/src/main/res/drawable/ic_reorder.xml | 11 + .../app/src/main/res/drawable/ic_save.xml | 10 + .../app/src/main/res/drawable/ic_show.xml | 10 + .../src/main/res/drawable/ic_slide_group.xml | 4 + .../main/res/drawable/ic_slide_opensource.xml | 9 + .../main/res/drawable/ic_slide_privacy.xml | 18 + .../main/res/drawable/ic_slide_support.xml | 5 + .../app/src/main/res/drawable/ic_target.xml | 9 + .../app/src/main/res/drawable/ic_tdee.xml | 15 + .../app/src/main/res/drawable/ic_thigh.xml | 18 + .../app/src/main/res/drawable/ic_user.xml | 18 + .../src/main/res/drawable/ic_visceral_fat.xml | 4 + .../app/src/main/res/drawable/ic_waist.xml | 9 + .../app/src/main/res/drawable/ic_water.xml | 9 + .../app/src/main/res/drawable/ic_weight.xml | 9 + .../app/src/main/res/drawable/ic_whr.xml | 12 + .../app/src/main/res/drawable/ic_whtr.xml | 27 ++ .../app/src/main/res/layout/activity_main.xml | 34 +- .../res/layout/activity_slidetonavigation.xml | 27 ++ .../src/main/res/layout/chart_markerview.xml | 6 +- ...ngs.xml => fragment_bluetoothsettings.xml} | 10 - ...y_dataentry.xml => fragment_dataentry.xml} | 10 - .../src/main/res/layout/fragment_graph.xml | 19 +- .../src/main/res/layout/fragment_overview.xml | 16 +- .../main/res/layout/fragment_statistics.xml | 16 +- ...settings.xml => fragment_usersettings.xml} | 10 - .../measurement_preferences_widget_layout.xml | 19 -- .../src/main/res/layout/preference_info.xml | 19 ++ .../layout/preference_measurement_order.xml | 86 +++++ .../main/res/layout/preference_timepicker.xml | 9 + .../app/src/main/res/layout/spinner_item.xml | 14 +- .../app/src/main/res/layout/widget.xml | 5 +- .../app/src/main/res/menu/drawer_view.xml | 2 +- .../main/res/navigation/mobile_navigation.xml | 206 ++++++++++++ .../main/res/navigation/slide_navigation.xml | 22 ++ .../app/src/main/res/values-ar/strings.xml | 1 - .../app/src/main/res/values-ca/strings.xml | 1 - .../app/src/main/res/values-da/strings.xml | 1 - .../app/src/main/res/values-de/strings.xml | 1 - .../app/src/main/res/values-el/strings.xml | 1 - .../app/src/main/res/values-es/strings.xml | 1 - .../app/src/main/res/values-fr/strings.xml | 1 - .../app/src/main/res/values-gl/strings.xml | 1 - .../app/src/main/res/values-hr/strings.xml | 1 - .../app/src/main/res/values-hu/strings.xml | 1 - .../app/src/main/res/values-it/strings.xml | 1 - .../app/src/main/res/values-iw/strings.xml | 1 - .../app/src/main/res/values-ja/strings.xml | 1 - .../app/src/main/res/values-ko/strings.xml | 1 - .../app/src/main/res/values-nb/strings.xml | 1 - .../app/src/main/res/values-nl/strings.xml | 1 - .../app/src/main/res/values-pl/strings.xml | 1 - .../app/src/main/res/values-ru/strings.xml | 1 - .../app/src/main/res/values-sk/strings.xml | 1 - .../app/src/main/res/values-sl/strings.xml | 1 - .../app/src/main/res/values-sv/strings.xml | 1 - .../app/src/main/res/values-tr/strings.xml | 1 - .../app/src/main/res/values-uk/strings.xml | 1 - .../app/src/main/res/values-vi/strings.xml | 1 - .../src/main/res/values-zh-rTW/strings.xml | 1 - .../app/src/main/res/values/strings.xml | 1 - .../app/src/main/res/values/styles.xml | 22 +- .../src/main/res/xml/about_preferences.xml | 2 +- .../src/main/res/xml/backup_preferences.xml | 4 +- .../src/main/res/xml/general_preferences.xml | 5 +- ...r_preferences.xml => main_preferences.xml} | 36 +- .../xml/measurement_detail_preferences.xml | 3 + .../main/res/xml/measurement_preferences.xml | 2 +- .../src/main/res/xml/reminder_preferences.xml | 11 +- android_app/build.gradle | 3 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- 586 files changed, 2977 insertions(+), 1764 deletions(-) delete mode 100644 android_app/app/src/main/java/com/health/openscale/gui/activities/BaseAppCompatActivity.java delete mode 100644 android_app/app/src/main/java/com/health/openscale/gui/activities/SettingsActivity.java delete mode 100644 android_app/app/src/main/java/com/health/openscale/gui/fragments/FragmentUpdateListener.java rename android_app/app/src/main/java/com/health/openscale/gui/{fragments => graph}/GraphFragment.java (87%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/BMIMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/BMRMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/BicepsMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/BoneMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/Caliper1MeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/Caliper2MeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/Caliper3MeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/CaloriesMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/ChartActionBarView.java (99%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/ChartMarkerView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/ChartMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/ChestMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/CommentMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/DateMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/FatCaliperMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/FatMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/FloatMeasurementView.java (95%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/HipMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/LBMMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/LinearGaugeView.java (99%) rename android_app/app/src/main/java/com/health/openscale/gui/{activities/DataEntryActivity.java => measurement/MeasurementEntryFragment.java} (75%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/MeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/MeasurementViewSettings.java (99%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/MeasurementViewUpdateListener.java (94%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/MuscleMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/NeckMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/TDEEMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/ThighMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/TimeMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/UserMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/VisceralFatMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/WHRMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/WHtRMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/WaistMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/WaterMeasurementView.java (97%) rename android_app/app/src/main/java/com/health/openscale/gui/{views => measurement}/WeightMeasurementView.java (98%) rename android_app/app/src/main/java/com/health/openscale/gui/{fragments => overview}/OverviewFragment.java (89%) rename android_app/app/src/main/java/com/health/openscale/gui/{activities/BluetoothSettingsActivity.java => preferences/BluetoothSettingsFragment.java} (87%) create mode 100644 android_app/app/src/main/java/com/health/openscale/gui/preferences/MainPreferences.java create mode 100644 android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementDetailPreferences.java create mode 100644 android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreference.java rename android_app/app/src/main/java/com/health/openscale/gui/{activities/UserSettingsActivity.java => preferences/UserSettingsFragment.java} (83%) rename android_app/app/src/main/java/com/health/openscale/gui/{activities => slides}/AppIntroActivity.java (70%) create mode 100644 android_app/app/src/main/java/com/health/openscale/gui/slides/SlideToNavigationAdapter.java rename android_app/app/src/main/java/com/health/openscale/gui/{fragments => statistic}/StatisticsFragment.java (88%) rename android_app/app/src/main/java/com/health/openscale/gui/{fragments => table}/TableFragment.java (89%) delete mode 100644 android_app/app/src/main/res/drawable-hdpi/appwidget_bg.9.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_whtr.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_whtr.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/appwidget_bg.9.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_whtr.png delete mode 100644 android_app/app/src/main/res/drawable-nodpi/chart_marker.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/appwidget_bg.9.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_whtr.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_whtr.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_add.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_biceps.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_lost.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_success.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_device_not_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_device_supported.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_disabled.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_searching.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bmi.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bmr.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_bone.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper1.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper2.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_caliper3.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_calories.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_chest.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_comment.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_daysleft.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_delete.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_difference.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_editable.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_expand.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_fat_caliper.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_hip.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_lastmonth.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_lastweek.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale_light.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale_pro.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_lbm.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_muscle.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_neck.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_options.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preference_donate.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_about.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_backup.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_bluetooth.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_help.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_home.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_measurement.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_nav_graph.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_reminder.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_settings.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_statistics.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_table.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_users.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_save.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_show.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_group.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_opensource.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_privacy.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_support.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_target.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_tdee.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_thigh.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_user.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_visceral_fat.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_waist.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_water.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_weight.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_whr.png delete mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_whtr.png create mode 100644 android_app/app/src/main/res/drawable/appwidget_bg.xml create mode 100644 android_app/app/src/main/res/drawable/chart_marker.xml create mode 100644 android_app/app/src/main/res/drawable/ic_add.xml create mode 100644 android_app/app/src/main/res/drawable/ic_biceps.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_connection_lost.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_connection_success.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_device_not_supported.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_device_supported.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_disabled.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bluetooth_searching.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bmi.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bmr.xml create mode 100644 android_app/app/src/main/res/drawable/ic_bone.xml create mode 100644 android_app/app/src/main/res/drawable/ic_caliper1.xml create mode 100644 android_app/app/src/main/res/drawable/ic_caliper2.xml create mode 100644 android_app/app/src/main/res/drawable/ic_caliper3.xml create mode 100644 android_app/app/src/main/res/drawable/ic_calories.xml create mode 100644 android_app/app/src/main/res/drawable/ic_chart_marker.xml create mode 100644 android_app/app/src/main/res/drawable/ic_chest.xml create mode 100644 android_app/app/src/main/res/drawable/ic_comment.xml create mode 100644 android_app/app/src/main/res/drawable/ic_daysleft.xml create mode 100644 android_app/app/src/main/res/drawable/ic_delete.xml create mode 100644 android_app/app/src/main/res/drawable/ic_difference.xml create mode 100644 android_app/app/src/main/res/drawable/ic_editable.xml create mode 100644 android_app/app/src/main/res/drawable/ic_expand.xml create mode 100644 android_app/app/src/main/res/drawable/ic_fat.xml create mode 100644 android_app/app/src/main/res/drawable/ic_fat_caliper.xml create mode 100644 android_app/app/src/main/res/drawable/ic_hip.xml create mode 100644 android_app/app/src/main/res/drawable/ic_lastmonth.xml create mode 100644 android_app/app/src/main/res/drawable/ic_lastweek.xml create mode 100644 android_app/app/src/main/res/drawable/ic_launcher_openscale.xml create mode 100644 android_app/app/src/main/res/drawable/ic_launcher_openscale_light.xml create mode 100644 android_app/app/src/main/res/drawable/ic_launcher_openscale_pro.xml create mode 100644 android_app/app/src/main/res/drawable/ic_lbm.xml create mode 100644 android_app/app/src/main/res/drawable/ic_muscle.xml create mode 100644 android_app/app/src/main/res/drawable/ic_neck.xml create mode 100644 android_app/app/src/main/res/drawable/ic_options.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preference_donate.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_about.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_backup.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_bluetooth.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_graph.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_help.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_home.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_measurement.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_nav_graph.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_reminder.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_settings.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_statistics.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_table.xml create mode 100644 android_app/app/src/main/res/drawable/ic_preferences_users.xml create mode 100644 android_app/app/src/main/res/drawable/ic_reorder.xml create mode 100644 android_app/app/src/main/res/drawable/ic_save.xml create mode 100644 android_app/app/src/main/res/drawable/ic_show.xml create mode 100644 android_app/app/src/main/res/drawable/ic_slide_group.xml create mode 100644 android_app/app/src/main/res/drawable/ic_slide_opensource.xml create mode 100644 android_app/app/src/main/res/drawable/ic_slide_privacy.xml create mode 100644 android_app/app/src/main/res/drawable/ic_slide_support.xml create mode 100644 android_app/app/src/main/res/drawable/ic_target.xml create mode 100644 android_app/app/src/main/res/drawable/ic_tdee.xml create mode 100644 android_app/app/src/main/res/drawable/ic_thigh.xml create mode 100644 android_app/app/src/main/res/drawable/ic_user.xml create mode 100644 android_app/app/src/main/res/drawable/ic_visceral_fat.xml create mode 100644 android_app/app/src/main/res/drawable/ic_waist.xml create mode 100644 android_app/app/src/main/res/drawable/ic_water.xml create mode 100644 android_app/app/src/main/res/drawable/ic_weight.xml create mode 100644 android_app/app/src/main/res/drawable/ic_whr.xml create mode 100644 android_app/app/src/main/res/drawable/ic_whtr.xml create mode 100644 android_app/app/src/main/res/layout/activity_slidetonavigation.xml rename android_app/app/src/main/res/layout/{activity_bluetoothsettings.xml => fragment_bluetoothsettings.xml} (71%) rename android_app/app/src/main/res/layout/{activity_dataentry.xml => fragment_dataentry.xml} (82%) rename android_app/app/src/main/res/layout/{activity_usersettings.xml => fragment_usersettings.xml} (95%) delete mode 100644 android_app/app/src/main/res/layout/measurement_preferences_widget_layout.xml create mode 100644 android_app/app/src/main/res/layout/preference_info.xml create mode 100644 android_app/app/src/main/res/layout/preference_measurement_order.xml create mode 100644 android_app/app/src/main/res/layout/preference_timepicker.xml create mode 100644 android_app/app/src/main/res/navigation/mobile_navigation.xml create mode 100644 android_app/app/src/main/res/navigation/slide_navigation.xml rename android_app/app/src/main/res/xml/{header_preferences.xml => main_preferences.xml} (50%) create mode 100644 android_app/app/src/main/res/xml/measurement_detail_preferences.xml diff --git a/.travis.yml b/.travis.yml index 93ac265c..31ea52d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,10 @@ branches: except: - /^travis-.*-build$/ +before_install: + - yes | sdkmanager "platforms;android-29" + - yes | sdkmanager "platform-tools" + before_script: - sed -i -r -e 's/applicationId "[^"]+/\0.'${DEV}'/' diff --git a/android_app/app/build.gradle b/android_app/app/build.gradle index 2e92d284..fe5ebf45 100644 --- a/android_app/app/build.gradle +++ b/android_app/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: "androidx.navigation.safeargs" android { compileSdkVersion 29 @@ -119,21 +120,28 @@ android { } dependencies { - implementation 'com.google.android.material:material:1.2.0-alpha06' + implementation 'com.google.android.material:material:1.3.0-alpha01' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.navigation:navigation-fragment:2.3.0-rc01' + implementation 'androidx.navigation:navigation-ui:2.3.0-rc01' + implementation "android.arch.lifecycle:extensions:1.1.1" + annotationProcessor "android.arch.lifecycle:compiler:1.1.1" + // MPAndroidChart implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' // Simple CSV - implementation 'com.j256.simplecsv:simplecsv:2.3' + implementation 'com.j256.simplecsv:simplecsv:2.6' // Blessed Android - implementation 'com.github.weliem:blessed-android:1.15' + implementation 'com.github.weliem:blessed-android:1.18' // CustomActivityOnCrash implementation 'cat.ereza:customactivityoncrash:2.2.0' // AppIntro - implementation 'com.github.AppIntro:AppIntro:6.0.0-alpha3' - implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.71' + implementation 'com.github.AppIntro:AppIntro:6.0.0' + implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.72' // Room implementation 'androidx.room:room-runtime:2.2.5' annotationProcessor 'androidx.room:room-compiler:2.2.5' @@ -141,7 +149,7 @@ dependencies { // Timber implementation 'com.jakewharton.timber:timber:4.7.1' // Local unit tests - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13' // Instrumented unit tests androidTestImplementation 'androidx.annotation:annotation:1.1.0' androidTestImplementation 'androidx.test.ext:junit:1.1.1' diff --git a/android_app/app/src/androidTest/java/com/health/openscale/gui/AddMeasurementTest.java b/android_app/app/src/androidTest/java/com/health/openscale/gui/AddMeasurementTest.java index 7b240af8..08565732 100644 --- a/android_app/app/src/androidTest/java/com/health/openscale/gui/AddMeasurementTest.java +++ b/android_app/app/src/androidTest/java/com/health/openscale/gui/AddMeasurementTest.java @@ -22,31 +22,36 @@ import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; +import androidx.test.espresso.contrib.PickerActions; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.Converters; -import com.health.openscale.gui.activities.BaseAppCompatActivity; -import com.health.openscale.gui.views.BicepsMeasurementView; -import com.health.openscale.gui.views.BoneMeasurementView; -import com.health.openscale.gui.views.Caliper1MeasurementView; -import com.health.openscale.gui.views.Caliper2MeasurementView; -import com.health.openscale.gui.views.Caliper3MeasurementView; -import com.health.openscale.gui.views.ChestMeasurementView; -import com.health.openscale.gui.views.CommentMeasurementView; -import com.health.openscale.gui.views.DateMeasurementView; -import com.health.openscale.gui.views.FatMeasurementView; -import com.health.openscale.gui.views.HipMeasurementView; -import com.health.openscale.gui.views.LBMMeasurementView; -import com.health.openscale.gui.views.MuscleMeasurementView; -import com.health.openscale.gui.views.NeckMeasurementView; -import com.health.openscale.gui.views.ThighMeasurementView; -import com.health.openscale.gui.views.TimeMeasurementView; -import com.health.openscale.gui.views.VisceralFatMeasurementView; -import com.health.openscale.gui.views.WaistMeasurementView; -import com.health.openscale.gui.views.WaterMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; +import com.health.openscale.gui.measurement.BicepsMeasurementView; +import com.health.openscale.gui.measurement.BoneMeasurementView; +import com.health.openscale.gui.measurement.Caliper1MeasurementView; +import com.health.openscale.gui.measurement.Caliper2MeasurementView; +import com.health.openscale.gui.measurement.Caliper3MeasurementView; +import com.health.openscale.gui.measurement.ChestMeasurementView; +import com.health.openscale.gui.measurement.CommentMeasurementView; +import com.health.openscale.gui.measurement.DateMeasurementView; +import com.health.openscale.gui.measurement.FatMeasurementView; +import com.health.openscale.gui.measurement.HipMeasurementView; +import com.health.openscale.gui.measurement.LBMMeasurementView; +import com.health.openscale.gui.measurement.MuscleMeasurementView; +import com.health.openscale.gui.measurement.NeckMeasurementView; +import com.health.openscale.gui.measurement.ThighMeasurementView; +import com.health.openscale.gui.measurement.TimeMeasurementView; +import com.health.openscale.gui.measurement.VisceralFatMeasurementView; +import com.health.openscale.gui.measurement.WaistMeasurementView; +import com.health.openscale.gui.measurement.WaterMeasurementView; +import com.health.openscale.gui.measurement.WeightMeasurementView; import org.hamcrest.Matchers; import org.junit.AfterClass; @@ -58,12 +63,6 @@ import org.junit.runner.RunWith; import java.util.Calendar; import java.util.List; -import androidx.test.espresso.contrib.PickerActions; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.filters.LargeTest; -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.rule.ActivityTestRule; - import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.action.ViewActions.replaceText; @@ -97,7 +96,7 @@ public class AddMeasurementTest { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); prefs.edit() .putBoolean("firstStart", false) - .putString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, "en") + .putString(MainActivity.PREFERENCE_LANGUAGE, "en") .putBoolean(VisceralFatMeasurementView.KEY + "Enable", true) .putBoolean(LBMMeasurementView.KEY + "Enable", true) .putBoolean(BoneMeasurementView.KEY + "Enable", true) diff --git a/android_app/app/src/androidTest/java/com/health/openscale/gui/AddUserTest.java b/android_app/app/src/androidTest/java/com/health/openscale/gui/AddUserTest.java index 57167bfb..7ee87ccc 100644 --- a/android_app/app/src/androidTest/java/com/health/openscale/gui/AddUserTest.java +++ b/android_app/app/src/androidTest/java/com/health/openscale/gui/AddUserTest.java @@ -23,10 +23,16 @@ import android.view.ViewGroup; import android.view.ViewParent; import android.widget.DatePicker; +import androidx.test.espresso.ViewInteraction; +import androidx.test.espresso.contrib.PickerActions; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.BaseAppCompatActivity; import org.hamcrest.Description; import org.hamcrest.Matcher; @@ -40,13 +46,6 @@ import org.junit.runner.RunWith; import java.util.Calendar; -import androidx.test.espresso.ViewInteraction; -import androidx.test.espresso.contrib.PickerActions; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.filters.LargeTest; -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.rule.ActivityTestRule; - import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.action.ViewActions.closeSoftKeyboard; @@ -75,7 +74,7 @@ public class AddUserTest { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); prefs.edit() .putBoolean("firstStart", true) - .putString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, "en") + .putString(MainActivity.PREFERENCE_LANGUAGE, "en") .commit(); } diff --git a/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java b/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java index 44f9909a..f5119f5b 100644 --- a/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java +++ b/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java @@ -22,12 +22,20 @@ import android.graphics.Bitmap; import android.preference.PreferenceManager; import android.view.Gravity; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.rule.ActivityTestRule; +import androidx.test.rule.GrantPermissionRule; +import androidx.test.runner.screenshot.BasicScreenCaptureProcessor; +import androidx.test.runner.screenshot.ScreenCapture; +import androidx.test.runner.screenshot.Screenshot; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.CsvHelper; -import com.health.openscale.gui.activities.BaseAppCompatActivity; import org.junit.Before; import org.junit.Rule; @@ -44,14 +52,6 @@ import java.util.Calendar; import java.util.List; import java.util.Locale; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.filters.LargeTest; -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.rule.ActivityTestRule; -import androidx.test.rule.GrantPermissionRule; -import androidx.test.runner.screenshot.BasicScreenCaptureProcessor; -import androidx.test.runner.screenshot.ScreenCapture; -import androidx.test.runner.screenshot.Screenshot; import timber.log.Timber; import static android.os.Environment.DIRECTORY_PICTURES; @@ -107,23 +107,23 @@ public class ScreenshotRecorder { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - String language = prefs.getString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, "default"); + String language = prefs.getString(MainActivity.PREFERENCE_LANGUAGE, "default"); prefs.edit() .remove("lastFragmentId") - .putString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, "en") + .putString(MainActivity.PREFERENCE_LANGUAGE, "en") .commit(); screenshotRecorder(); prefs.edit() .remove("lastFragmentId") - .putString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, "de") + .putString(MainActivity.PREFERENCE_LANGUAGE, "de") .commit(); screenshotRecorder(); // Restore language setting prefs.edit() - .putString(BaseAppCompatActivity.PREFERENCE_LANGUAGE, language) + .putString(MainActivity.PREFERENCE_LANGUAGE, language) .commit(); } @@ -230,7 +230,7 @@ public class ScreenshotRecorder { List scaleMeasurementList = getTestMeasurements(); for (ScaleMeasurement measurement : scaleMeasurementList) { - openScale.addScaleData(measurement, true); + openScale.addScaleMeasurement(measurement, true); } } diff --git a/android_app/app/src/main/AndroidManifest.xml b/android_app/app/src/main/AndroidManifest.xml index a775fedc..12ae3269 100644 --- a/android_app/app/src/main/AndroidManifest.xml +++ b/android_app/app/src/main/AndroidManifest.xml @@ -22,24 +22,23 @@ + android:theme="@style/AppTheme" > + android:label="@string/app_name" + android:theme="@style/AppTheme.NoActionBar"> - - - - - + + diff --git a/android_app/app/src/main/java/com/health/openscale/core/Application.java b/android_app/app/src/main/java/com/health/openscale/core/Application.java index cb006941..529162f0 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/Application.java +++ b/android_app/app/src/main/java/com/health/openscale/core/Application.java @@ -16,6 +16,11 @@ package com.health.openscale.core; +import android.content.SharedPreferences; + +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; + import com.health.openscale.BuildConfig; import timber.log.Timber; @@ -39,6 +44,13 @@ public class Application extends android.app.Application { Timber.plant(new TimberLogAdapter()); + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + String prefTheme = sharedPreferences.getString("app_theme", "Light"); + + if (prefTheme.equals("Dark")) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + } + // Create OpenScale instance OpenScale.createInstance(getApplicationContext()); diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 002c6f06..6b9e13e0 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -32,7 +32,7 @@ import android.text.format.DateFormat; import android.widget.Toast; import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; +import androidx.lifecycle.LiveData; import androidx.room.Room; import androidx.room.RoomDatabase; import androidx.sqlite.db.SupportSQLiteDatabase; @@ -51,11 +51,10 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.Converters; import com.health.openscale.core.utils.CsvHelper; -import com.health.openscale.gui.fragments.FragmentUpdateListener; -import com.health.openscale.gui.views.FatMeasurementView; -import com.health.openscale.gui.views.LBMMeasurementView; -import com.health.openscale.gui.views.MeasurementViewSettings; -import com.health.openscale.gui.views.WaterMeasurementView; +import com.health.openscale.gui.measurement.FatMeasurementView; +import com.health.openscale.gui.measurement.LBMMeasurementView; +import com.health.openscale.gui.measurement.MeasurementViewSettings; +import com.health.openscale.gui.measurement.WaterMeasurementView; import com.health.openscale.gui.widget.WidgetProvider; import java.io.BufferedReader; @@ -94,17 +93,13 @@ public class OpenScale { private Context context; - private ArrayList fragmentList; - private OpenScale(Context context) { this.context = context; alarmHandler = new AlarmHandler(); btDeviceDriver = null; - fragmentList = new ArrayList<>(); + scaleMeasurementList = new ArrayList<>(); reopenDatabase(false); - - updateScaleData(); } public static void createInstance(Context context) { @@ -232,41 +227,51 @@ public class OpenScale { selectedScaleUser = null; } - public List getScaleMeasurementList() { - if (!scaleMeasurementList.isEmpty()) { - if (scaleMeasurementList.get(0).getUserId() != getSelectedScaleUserId()) { - scaleMeasurementList = measurementDAO.getAll(getSelectedScaleUserId()); - } + public boolean isScaleMeasurementListEmpty() { + if (measurementDAO.getCount(getSelectedScaleUserId()) == 0) { + return true; } - return scaleMeasurementList; + return false; } - public ScaleMeasurement getLatestScaleMeasurement(int userId) { + public ScaleMeasurement getLastScaleMeasurement() { + return measurementDAO.getLatest(getSelectedScaleUserId()); + } + + public ScaleMeasurement getLastScaleMeasurement(int userId) { return measurementDAO.getLatest(userId); } - public ScaleMeasurement[] getTupleScaleData(int id) + public ScaleMeasurement getFirstScaleMeasurement() { + return measurementDAO.getFirst(getSelectedScaleUserId()); + } + + public List getScaleMeasurementList() { + return measurementDAO.getAll(getSelectedScaleUserId()); + } + + public ScaleMeasurement[] getTupleOfScaleMeasurement(int id) { - ScaleMeasurement[] tupleScaleData = new ScaleMeasurement[3]; + ScaleMeasurement[] tupleScaleMeasurement = new ScaleMeasurement[3]; - tupleScaleData[0] = null; - tupleScaleData[1] = measurementDAO.get(id); - tupleScaleData[2] = null; + tupleScaleMeasurement[0] = null; + tupleScaleMeasurement[1] = measurementDAO.get(id); + tupleScaleMeasurement[2] = null; - if (tupleScaleData[1] != null) { - tupleScaleData[0] = measurementDAO.getPrevious(id, tupleScaleData[1].getUserId()); - tupleScaleData[2] = measurementDAO.getNext(id, tupleScaleData[1].getUserId()); + if (tupleScaleMeasurement[1] != null) { + tupleScaleMeasurement[0] = measurementDAO.getPrevious(id, tupleScaleMeasurement[1].getUserId()); + tupleScaleMeasurement[2] = measurementDAO.getNext(id, tupleScaleMeasurement[1].getUserId()); } - return tupleScaleData; + return tupleScaleMeasurement; } - public int addScaleData(final ScaleMeasurement scaleMeasurement) { - return addScaleData(scaleMeasurement, false); + public int addScaleMeasurement(final ScaleMeasurement scaleMeasurement) { + return addScaleMeasurement(scaleMeasurement, false); } - public int addScaleData(final ScaleMeasurement scaleMeasurement, boolean silent) { + public int addScaleMeasurement(final ScaleMeasurement scaleMeasurement, boolean silent) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); if (scaleMeasurement.getUserId() == -1) { @@ -325,7 +330,6 @@ public class OpenScale { syncInsertMeasurement(scaleMeasurement); alarmHandler.entryChanged(context, scaleMeasurement); - updateScaleData(); triggerWidgetUpdate(); } else { Timber.d("to be added measurement is thrown away because measurement with the same date and time already exist"); @@ -377,22 +381,18 @@ public class OpenScale { return getSelectedScaleUser().getId(); } - public void updateScaleData(ScaleMeasurement scaleMeasurement) { + public void updateScaleMeasurement(ScaleMeasurement scaleMeasurement) { Timber.d("Update measurement: %s", scaleMeasurement); measurementDAO.update(scaleMeasurement); alarmHandler.entryChanged(context, scaleMeasurement); syncUpdateMeasurement(scaleMeasurement); - updateScaleData(); triggerWidgetUpdate(); } - public void deleteScaleData(int id) - { + public void deleteScaleMeasurement(int id) { syncDeleteMeasurement(measurementDAO.get(id).getDateTime()); measurementDAO.delete(id); - - updateScaleData(); } public String getFilenameFromUriMayThrow(Uri uri) { @@ -438,7 +438,6 @@ public class OpenScale { if (!getScaleUserList().isEmpty()) { selectScaleUser(getScaleUserList().get(0).getId()); - updateScaleData(); } } catch (SQLiteDatabaseCorruptException e) { copyFile(Uri.fromFile(tmpExportFile), Uri.fromFile(exportFile)); @@ -491,7 +490,6 @@ public class OpenScale { } measurementDAO.insertAll(csvScaleMeasurementList); - updateScaleData(); runUiToastMsg(context.getString(R.string.info_data_imported) + " " + filename); } catch (IOException | ParseException e) { runUiToastMsg(context.getString(R.string.error_importing) + ": " + e.getMessage()); @@ -510,13 +508,11 @@ public class OpenScale { return false; } - public void clearScaleData(int userId) { + public void clearScaleMeasurements(int userId) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); prefs.edit().putInt("uniqueNumber", 0x00).apply(); syncClearMeasurements(); measurementDAO.deleteAll(userId); - - updateScaleData(); } public int[] getCountsOfMonth(int year) { @@ -538,7 +534,7 @@ public class OpenScale { return numOfMonth; } - public List getScaleDataOfStartDate(int year, int month, int day) { + public List getScaleMeasurementOfStartDate(int year, int month, int day) { int selectedUserId = getSelectedScaleUserId(); Calendar startCalender = Calendar.getInstance(); @@ -549,7 +545,7 @@ public class OpenScale { return measurementDAO.getAllInRange(startCalender.getTime(), endCalender.getTime(), selectedUserId); } - public List getScaleDataOfDay(int year, int month, int day) { + public List getScaleMeasurementOfDay(int year, int month, int day) { int selectedUserId = getSelectedScaleUserId(); Calendar startCalender = Calendar.getInstance(); @@ -562,7 +558,7 @@ public class OpenScale { return measurementDAO.getAllInRange(startCalender.getTime(), endCalender.getTime(), selectedUserId); } - public List getScaleDataOfMonth(int year, int month) { + public List getScaleMeasurementOfMonth(int year, int month) { int selectedUserId = getSelectedScaleUserId(); Calendar startCalender = Calendar.getInstance(); @@ -575,7 +571,7 @@ public class OpenScale { return measurementDAO.getAllInRange(startCalender.getTime(), endCalender.getTime(), selectedUserId); } - public List getScaleDataOfYear(int year) { + public List getScaleMeasurementOfYear(int year) { int selectedUserId = getSelectedScaleUserId(); Calendar startCalender = Calendar.getInstance(); @@ -625,32 +621,10 @@ public class OpenScale { return true; } - public void registerFragment(FragmentUpdateListener fragment) { - fragmentList.add(fragment); - + public LiveData> getScaleMeasurementsLiveData() { int selectedUserId = getSelectedScaleUserId(); - scaleMeasurementList = measurementDAO.getAll(selectedUserId); - - fragment.updateOnView(scaleMeasurementList); - } - - public void unregisterFragment(FragmentUpdateListener fragment) { - fragmentList.remove(fragment); - } - - public void updateScaleData() { - int selectedUserId = getSelectedScaleUserId(); - - scaleMeasurementList = measurementDAO.getAll(selectedUserId); - - for (FragmentUpdateListener fragment : fragmentList) { - if (fragment != null) { - if (((Fragment)fragment).isAdded()) { - fragment.updateOnView(scaleMeasurementList); - } - } - } + return measurementDAO.getAllAsLiveData(selectedUserId); } // As getScaleUserList(), but as a Cursor for export via a Content Provider. diff --git a/android_app/app/src/main/java/com/health/openscale/core/alarm/AlarmBackupHandler.java b/android_app/app/src/main/java/com/health/openscale/core/alarm/AlarmBackupHandler.java index 69780530..d2880147 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/alarm/AlarmBackupHandler.java +++ b/android_app/app/src/main/java/com/health/openscale/core/alarm/AlarmBackupHandler.java @@ -91,6 +91,7 @@ public class AlarmBackupHandler SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + // TODO to disable in the AndroidManfiest the requestLegacyExternalStorage on SDK >= 29 we need store the files on shared storages File exportDir = new File(Environment.getExternalStorageDirectory(), prefs.getString("exportDir", "openScale Backup")); if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java index c02fcb86..48a3c3a7 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleMeasurementDAO.java @@ -18,17 +18,18 @@ package com.health.openscale.core.database; import android.database.Cursor; -import com.health.openscale.core.datatypes.ScaleMeasurement; - -import java.util.Date; -import java.util.List; - +import androidx.lifecycle.LiveData; import androidx.room.Dao; import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; import androidx.room.Update; +import com.health.openscale.core.datatypes.ScaleMeasurement; + +import java.util.Date; +import java.util.List; + @Dao public interface ScaleMeasurementDAO { @Query("SELECT * FROM scaleMeasurements WHERE datetime = :datetime AND userId = :userId") @@ -43,15 +44,24 @@ public interface ScaleMeasurementDAO { @Query("SELECT * FROM scaleMeasurements WHERE datetime > (SELECT datetime FROM scaleMeasurements WHERE id = :id) AND userId = :userId AND enabled = 1 LIMIT 0,1") ScaleMeasurement getNext(int id, int userId); + @Query("SELECT count(id) FROM scaleMeasurements WHERE userId = :userId AND enabled = 1") + long getCount(int userId); + @Query("SELECT * FROM scaleMeasurements WHERE userId = :userId AND enabled = 1 ORDER BY datetime DESC") List getAll(int userId); + @Query("SELECT * FROM scaleMeasurements WHERE userId = :userId AND enabled = 1 ORDER BY datetime DESC") + LiveData> getAllAsLiveData(int userId); + @Query("SELECT * FROM scaleMeasurements WHERE datetime >= :startYear AND datetime < :endYear AND userId = :userId AND enabled = 1 ORDER BY datetime DESC") List getAllInRange(Date startYear, Date endYear, int userId); @Query("SELECT * FROM scaleMeasurements WHERE userId = :userId AND enabled = 1 ORDER BY datetime DESC LIMIT 1") ScaleMeasurement getLatest(int userId); + @Query("SELECT * FROM scaleMeasurements WHERE userId = :userId AND enabled = 1 ORDER BY datetime ASC LIMIT 1") + ScaleMeasurement getFirst(int userId); + @Insert (onConflict = OnConflictStrategy.IGNORE) long insert(ScaleMeasurement measurement); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java index 5e505403..a1b86408 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/MainActivity.java @@ -20,6 +20,7 @@ import android.app.AlertDialog; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothManager; import android.content.ActivityNotFoundException; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -30,49 +31,50 @@ import android.os.Handler; import android.os.Message; import android.preference.PreferenceManager; import android.text.Html; +import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.core.content.FileProvider; import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.navigation.NavigationView; import com.health.openscale.BuildConfig; +import com.health.openscale.MobileNavigationDirections; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.bluetooth.BluetoothCommunication; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.AppIntroActivity; -import com.health.openscale.gui.activities.BaseAppCompatActivity; -import com.health.openscale.gui.activities.BluetoothSettingsActivity; -import com.health.openscale.gui.activities.DataEntryActivity; -import com.health.openscale.gui.activities.SettingsActivity; -import com.health.openscale.gui.fragments.GraphFragment; -import com.health.openscale.gui.fragments.OverviewFragment; -import com.health.openscale.gui.fragments.StatisticsFragment; -import com.health.openscale.gui.fragments.TableFragment; +import com.health.openscale.gui.measurement.MeasurementEntryFragment; +import com.health.openscale.gui.preferences.BluetoothSettingsFragment; +import com.health.openscale.gui.preferences.UserSettingsFragment; +import com.health.openscale.gui.slides.AppIntroActivity; import java.io.File; -import java.util.List; +import java.util.Locale; import cat.ereza.customactivityoncrash.config.CaocConfig; import timber.log.Timber; -public class MainActivity extends BaseAppCompatActivity +public class MainActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener{ + public static final String PREFERENCE_LANGUAGE = "language"; + private static Locale systemDefaultLocale = null; private SharedPreferences prefs; private static boolean firstAppStart = true; private static boolean valueOfCountModified = false; @@ -82,14 +84,53 @@ public class MainActivity extends BaseAppCompatActivity private static final int IMPORT_DATA_REQUEST = 100; private static final int EXPORT_DATA_REQUEST = 101; private static final int ENABLE_BLUETOOTH_REQUEST = 102; + private static final int APPINTRO_REQUEST = 103; + private AppBarConfiguration mAppBarConfiguration; private DrawerLayout drawerLayout; - private NavigationView navDrawer; - private BottomNavigationView navBottomDrawer; - private ActionBarDrawerToggle drawerToggle; + private NavController navController; + private NavigationView navigationView; + private BottomNavigationView navigationBottomView; private boolean settingsActivityRunning = false; + public static Context createBaseContext(Context context) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + String language = prefs.getString(PREFERENCE_LANGUAGE, ""); + if (language.isEmpty() || language.equals("default")) { + if (systemDefaultLocale != null) { + Locale.setDefault(systemDefaultLocale); + systemDefaultLocale = null; + } + return context; + } + + if (systemDefaultLocale == null) { + systemDefaultLocale = Locale.getDefault(); + } + + Locale locale; + String[] localeParts = TextUtils.split(language, "-"); + if (localeParts.length == 2) { + locale = new Locale(localeParts[0], localeParts[1]); + } + else { + locale = new Locale(localeParts[0]); + } + Locale.setDefault(locale); + + Configuration config = context.getResources().getConfiguration(); + config.setLocale(locale); + + return context.createConfigurationContext(config); + } + + @Override + protected void attachBaseContext(Context context) { + super.attachBaseContext(createBaseContext(context)); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -107,51 +148,79 @@ public class MainActivity extends BaseAppCompatActivity Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onSupportNavigateUp(); + } + }); // Find our drawer view drawerLayout = findViewById(R.id.drawer_layout); // Find our drawer view - navDrawer = findViewById(R.id.navigation_view); + navigationView = findViewById(R.id.navigation_view); + navigationBottomView = findViewById(R.id.navigation_bottom_view); - navBottomDrawer = findViewById(R.id.navigation_bottom_view); - navBottomDrawer.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + // Passing each menu ID as a set of Ids because each + // menu should be considered as top level destinations. + mAppBarConfiguration = new AppBarConfiguration.Builder( + R.id.nav_overview, R.id.nav_graph, R.id.nav_table, R.id.nav_statistic, R.id.nav_main_preferences) + .setOpenableLayout(drawerLayout) + .build(); + navController = Navigation.findNavController(this, R.id.nav_host_fragment); + NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); + NavigationUI.setupWithNavController(navigationView, navController); + NavigationUI.setupWithNavController(navigationBottomView, navController); + + navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { - selectDrawerItem(item.getItemId()); + switch (item.getItemId()) { + case R.id.nav_donation: + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=H5KSTQA6TKTE4&source=url"))); + drawerLayout.closeDrawers(); + return true; + case R.id.nav_help: + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/oliexdev/openScale/wiki"))); + drawerLayout.closeDrawers(); + return true; + } + + prefs.edit().putInt("lastFragmentId", item.getItemId()).apply(); + NavigationUI.onNavDestinationSelected(item, navController); + + // Close the navigation drawer + drawerLayout.closeDrawers(); + return true; } }); - //Create Drawer Toggle - drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open_drawer, R.string.close_drawer){ + navigationBottomView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + prefs.edit().putInt("lastFragmentId", item.getItemId()).apply(); + NavigationUI.onNavDestinationSelected(item, navController); + return true; + } + }); - }; - - drawerLayout.addDrawerListener(drawerToggle); - - // Setup drawer view - setupDrawerContent(navDrawer); - - selectDrawerItem(prefs.getInt("lastFragmentId", R.id.nav_overview)); - - navBottomDrawer.setSelectedItemId(prefs.getInt("lastFragmentId", R.id.nav_overview)); + navigationBottomView.setSelectedItemId(prefs.getInt("lastFragmentId", R.id.nav_overview)); if (BuildConfig.BUILD_TYPE == "light") { - ImageView launcherIcon = navDrawer.getHeaderView(0).findViewById(R.id.profileImageView); + ImageView launcherIcon = navigationView.getHeaderView(0).findViewById(R.id.profileImageView); launcherIcon.setImageResource(R.drawable.ic_launcher_openscale_light); - navDrawer.getMenu().findItem(R.id.nav_donation).setVisible(false); + navigationView.getMenu().findItem(R.id.nav_donation).setVisible(false); } else if (BuildConfig.BUILD_TYPE == "pro") { - ImageView launcherIcon = navDrawer.getHeaderView(0).findViewById(R.id.profileImageView); + ImageView launcherIcon = navigationView.getHeaderView(0).findViewById(R.id.profileImageView); launcherIcon.setImageResource(R.drawable.ic_launcher_openscale_pro); - navDrawer.getMenu().findItem(R.id.nav_donation).setVisible(false); + navigationView.getMenu().findItem(R.id.nav_donation).setVisible(false); } if (prefs.getBoolean("firstStart", true)) { Intent appIntroIntent = new Intent(this, AppIntroActivity.class); - startActivity(appIntroIntent); + startActivityForResult(appIntroIntent, APPINTRO_REQUEST); prefs.edit().putBoolean("firstStart", false).apply(); } @@ -193,6 +262,13 @@ public class MainActivity extends BaseAppCompatActivity } } + @Override + public boolean onSupportNavigateUp() { + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); + return NavigationUI.navigateUp(navController, mAppBarConfiguration) + || super.onSupportNavigateUp(); + } + @Override public void onResume() { super.onResume(); @@ -264,106 +340,6 @@ public class MainActivity extends BaseAppCompatActivity dialog.show(); } - private void setupDrawerContent(NavigationView navigationView) { - navigationView.setNavigationItemSelectedListener( - - new NavigationView.OnNavigationItemSelectedListener() { - @Override - public boolean onNavigationItemSelected(MenuItem menuItem) { - selectDrawerItem(menuItem.getItemId()); - navBottomDrawer.setSelectedItemId(menuItem.getItemId()); - return true; - - } - - }); - } - - private void selectDrawerItem(int menuItemId) { - // Create a new fragment and specify the fragment to show based on nav item clicked - Class fragmentClass; - String fragmentTitle; - - switch (menuItemId) { - default: - case R.id.nav_overview: - fragmentClass = OverviewFragment.class; - fragmentTitle = getResources().getString(R.string.title_overview); - break; - case R.id.nav_graph: - fragmentClass = GraphFragment.class; - fragmentTitle = getResources().getString(R.string.title_graph); - break; - case R.id.nav_table: - fragmentClass = TableFragment.class; - fragmentTitle = getResources().getString(R.string.title_table); - break; - case R.id.nav_statistic: - fragmentClass = StatisticsFragment.class; - fragmentTitle = getResources().getString(R.string.title_statistics); - break; - case R.id.nav_settings: - drawerLayout.closeDrawer(navDrawer, false); - Intent settingsIntent = new Intent(this, SettingsActivity.class); - settingsActivityRunning = true; - startActivity(settingsIntent); - return; - case R.id.nav_donation: - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=H5KSTQA6TKTE4&source=url"))); - drawerLayout.closeDrawers(); - return; - case R.id.nav_help: - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/oliexdev/openScale/wiki"))); - drawerLayout.closeDrawers(); - return; - } - - prefs.edit().putInt("lastFragmentId", menuItemId).apply(); - - FragmentManager fragmentManager = getSupportFragmentManager(); - - // Make sure that any pending transaction completes so that added fragments are - // actually added and won't get added again (may happen during activity creation - // when this method is called twice). - fragmentManager.executePendingTransactions(); - - FragmentTransaction transaction = fragmentManager.beginTransaction(); - final String tag = String.valueOf(menuItemId); - - boolean found = false; - for (Fragment fragment : fragmentManager.getFragments()) { - if (fragment.getTag().equals(tag)) { - // Show selected fragment if already added - transaction.show(fragment); - found = true; - } - else if (!fragment.isHidden()) { - // Hide currently shown fragment - transaction.hide(fragment); - } - } - - // If fragment isn't found then add it - if (!found) { - try { - transaction.add(R.id.fragment_content, (Fragment) fragmentClass.newInstance(), tag); - } catch (Exception e) { - Timber.e(e, "Failed to add fragment %s", tag); - } - } - - transaction.commit(); - - // Set action bar title - setTitle(fragmentTitle); - - // Set checked item - navDrawer.setCheckedItem(menuItemId); - - // Close the navigation drawer - drawerLayout.closeDrawers(); - } - private void showNoSelectedUserDialog() { AlertDialog.Builder infoDialog = new AlertDialog.Builder(this); @@ -374,11 +350,6 @@ public class MainActivity extends BaseAppCompatActivity @Override public boolean onOptionsItemSelected(MenuItem item) { - - if (drawerToggle.onOptionsItemSelected(item)) { - return true; - } - switch (item.getItemId()) { case android.R.id.home: drawerLayout.openDrawer(GravityCompat.START); @@ -389,9 +360,10 @@ public class MainActivity extends BaseAppCompatActivity return true; } - Intent intent = new Intent(getApplicationContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.ADD_MEASUREMENT_REQUEST); - startActivity(intent); + MobileNavigationDirections.ActionNavMobileNavigationToNavDataentry action = MobileNavigationDirections.actionNavMobileNavigationToNavDataentry(); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.ADD); + action.setTitle(getString(R.string.label_add_measurement)); + Navigation.findNavController(this, R.id.nav_host_fragment).navigate(action); return true; case R.id.action_bluetooth_status: if (OpenScale.getInstance().disconnectFromBluetoothDevice()) { @@ -439,19 +411,7 @@ public class MainActivity extends BaseAppCompatActivity setBluetoothStatusIcon(bluetoothStatusIcon); } - return true; - } - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - drawerToggle.syncState(); - } - - @Override - public void onConfigurationChanged(Configuration newConfig){ - super.onConfigurationChanged(newConfig); - drawerToggle.onConfigurationChanged(newConfig); + return super.onCreateOptionsMenu(menu); } private void invokeConnectToBluetoothDevice() { @@ -478,9 +438,9 @@ public class MainActivity extends BaseAppCompatActivity } String deviceName = prefs.getString( - BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""); + BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""); String hwAddress = prefs.getString( - BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, ""); + BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, ""); if (!BluetoothAdapter.checkBluetoothAddress(hwAddress)) { setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost); @@ -519,15 +479,13 @@ public class MainActivity extends BaseAppCompatActivity OpenScale openScale = OpenScale.getInstance(); if (prefs.getBoolean("mergeWithLastMeasurement", true)) { - List scaleMeasurementList = openScale.getScaleMeasurementList(); - - if (!scaleMeasurementList.isEmpty()) { - ScaleMeasurement lastMeasurement = scaleMeasurementList.get(0); + if (!openScale.isScaleMeasurementListEmpty()) { + ScaleMeasurement lastMeasurement = openScale.getLastScaleMeasurement(); scaleBtData.merge(lastMeasurement); } } - openScale.addScaleData(scaleBtData, true); + openScale.addScaleMeasurement(scaleBtData, true); break; case INIT_PROCESS: setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_success); @@ -715,6 +673,8 @@ public class MainActivity extends BaseAppCompatActivity public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); + OpenScale openScale = OpenScale.getInstance(); + if (requestCode == ENABLE_BLUETOOTH_REQUEST) { if (resultCode == RESULT_OK) { invokeConnectToBluetoothDevice(); @@ -725,11 +685,19 @@ public class MainActivity extends BaseAppCompatActivity return; } + if (requestCode == APPINTRO_REQUEST) { + if (openScale.getSelectedScaleUserId() == -1) { + MobileNavigationDirections.ActionNavMobileNavigationToNavUsersettings action = MobileNavigationDirections.actionNavMobileNavigationToNavUsersettings(); + action.setMode(UserSettingsFragment.USER_SETTING_MODE.ADD); + action.setTitle(getString(R.string.label_add_user)); + Navigation.findNavController(this, R.id.nav_host_fragment).navigate(action); + } + } + if (resultCode != RESULT_OK || data == null) { return; } - OpenScale openScale = OpenScale.getInstance(); switch (requestCode) { case IMPORT_DATA_REQUEST: diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/BaseAppCompatActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/BaseAppCompatActivity.java deleted file mode 100644 index 64558493..00000000 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/BaseAppCompatActivity.java +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (C) 2018 Erik Johansson -* -* 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.activities; - -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.Configuration; -import android.os.Bundle; -import android.preference.PreferenceManager; -import androidx.appcompat.app.AppCompatActivity; -import android.text.TextUtils; - -import com.health.openscale.R; - -import java.util.Locale; - -public class BaseAppCompatActivity extends AppCompatActivity { - public static final String PREFERENCE_APP_THEME = "app_theme"; - public static final String PREFERENCE_LANGUAGE = "language"; - - private static Locale systemDefaultLocale = null; - - public static Context createBaseContext(Context context) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - - String language = prefs.getString(PREFERENCE_LANGUAGE, ""); - if (language.isEmpty() || language.equals("default")) { - if (systemDefaultLocale != null) { - Locale.setDefault(systemDefaultLocale); - systemDefaultLocale = null; - } - return context; - } - - if (systemDefaultLocale == null) { - systemDefaultLocale = Locale.getDefault(); - } - - Locale locale; - String[] localeParts = TextUtils.split(language, "-"); - if (localeParts.length == 2) { - locale = new Locale(localeParts[0], localeParts[1]); - } - else { - locale = new Locale(localeParts[0]); - } - Locale.setDefault(locale); - - Configuration config = context.getResources().getConfiguration(); - config.setLocale(locale); - - return context.createConfigurationContext(config); - } - - public static void applyTheme(Context context) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - - if (prefs.getString(PREFERENCE_APP_THEME, "").equals("Dark")) { - context.setTheme(R.style.AppTheme_Dark); - } - } - - @Override - protected void attachBaseContext(Context context) { - super.attachBaseContext(createBaseContext(context)); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - applyTheme(this); - super.onCreate(savedInstanceState); - } -} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/SettingsActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/SettingsActivity.java deleted file mode 100644 index 78681de0..00000000 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/SettingsActivity.java +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright (C) 2014 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.activities; - -import android.app.Fragment; -import android.content.Context; -import android.content.SharedPreferences; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.preference.PreferenceActivity; -import android.preference.PreferenceManager; - -import com.health.openscale.R; -import com.health.openscale.gui.preferences.BackupPreferences; -import com.health.openscale.gui.preferences.BluetoothPreferences; -import com.health.openscale.gui.utils.ColorUtil; -import com.health.openscale.gui.utils.PermissionHelper; - -import java.util.ArrayList; -import java.util.List; - -public class SettingsActivity extends PreferenceActivity - implements SharedPreferences.OnSharedPreferenceChangeListener { - private static List fragments = new ArrayList<>(); - private Fragment currentFragment; - - @Override - protected void attachBaseContext(Context context) { - super.attachBaseContext(BaseAppCompatActivity.createBaseContext(context)); - if (!fragments.isEmpty()) { - invalidateHeaders(); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - BaseAppCompatActivity.applyTheme(this); - super.onCreate(savedInstanceState); - } - - @Override - public void onResume() { - super.onResume(); - PreferenceManager.getDefaultSharedPreferences(this) - .registerOnSharedPreferenceChangeListener(this); - - } - - @Override - public void onPause() { - PreferenceManager.getDefaultSharedPreferences(this) - .unregisterOnSharedPreferenceChangeListener(this); - super.onPause(); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { - if (key.equals(BaseAppCompatActivity.PREFERENCE_APP_THEME) - || key.equals(BaseAppCompatActivity.PREFERENCE_LANGUAGE)) { - recreate(); - } - } - - @Override - public void onBuildHeaders(List
target) { - loadHeadersFromResource(R.xml.header_preferences, target); - - int tintColor = ColorUtil.getTextColor(this); - - fragments.clear(); - for (Header header : target) { - Drawable icon = getResources().getDrawable(header.iconRes); - icon.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN); - - fragments.add(header.fragment); - } - } - - @Override - protected boolean isValidFragment(String fragmentName) { - return fragments.contains(fragmentName); - } - - @Override - public void onAttachFragment(Fragment fragment) { - currentFragment = fragment; - super.onAttachFragment(fragment); - } - - @Override - public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { - // TODO HACK to call RequestPermissionResult(...) in PreferenceFragment otherwise API level > 23 is required - switch(requestCode) { - case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE: - case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE: - BackupPreferences backupPreferences = (BackupPreferences)currentFragment; - backupPreferences.onMyOwnRequestPermissionsResult(requestCode, permissions, grantResults); - break; - } - - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - } -} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/FragmentUpdateListener.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/FragmentUpdateListener.java deleted file mode 100644 index adde37f4..00000000 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/FragmentUpdateListener.java +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (C) 2014 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.fragments; - -import com.health.openscale.core.datatypes.ScaleMeasurement; - -import java.util.List; - -public interface FragmentUpdateListener { - void updateOnView(List scaleMeasurementList); -} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java similarity index 87% rename from android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java rename to android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java index 823ddd96..9a9880c4 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/graph/GraphFragment.java @@ -14,11 +14,10 @@ * along with this program. If not, see */ -package com.health.openscale.gui.fragments; +package com.health.openscale.gui.graph; import android.app.AlertDialog; import android.content.DialogInterface; -import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -34,6 +33,8 @@ import android.widget.TextView; import android.widget.Toast; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.navigation.Navigation; import com.github.mikephil.charting.charts.BarChart; import com.github.mikephil.charting.components.AxisBase; @@ -51,10 +52,10 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; -import com.health.openscale.gui.activities.DataEntryActivity; +import com.health.openscale.gui.measurement.ChartActionBarView; +import com.health.openscale.gui.measurement.ChartMeasurementView; +import com.health.openscale.gui.measurement.MeasurementEntryFragment; import com.health.openscale.gui.utils.ColorUtil; -import com.health.openscale.gui.views.ChartActionBarView; -import com.health.openscale.gui.views.ChartMeasurementView; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -62,7 +63,7 @@ import java.util.Calendar; import java.util.List; import java.util.Locale; -public class GraphFragment extends Fragment implements FragmentUpdateListener { +public class GraphFragment extends Fragment { private View graphView; private ChartMeasurementView chartView; private ChartActionBarView chartActionBarView; @@ -97,10 +98,9 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { openScale = OpenScale.getInstance(); if (savedInstanceState == null) { - List scaleMeasurementList = openScale.getScaleMeasurementList(); - if (!scaleMeasurementList.isEmpty()) { - calYears.setTime(scaleMeasurementList.get(0).getDateTime()); - calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime()); + if (!openScale.isScaleMeasurementListEmpty()) { + calYears.setTime(openScale.getLastScaleMeasurement().getDateTime()); + calLastSelected.setTime(openScale.getLastScaleMeasurement().getDateTime()); } } else { @@ -128,7 +128,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { XAxis chartTopxAxis = chartTop.getXAxis(); chartTopxAxis.setPosition(XAxis.XAxisPosition.BOTTOM); chartTopxAxis.setDrawGridLines(false); - chartTopxAxis.setTextColor(ColorUtil.getTextColor(graphView.getContext())); + chartTopxAxis.setTextColor(ColorUtil.getTintColor(graphView.getContext())); chartTopxAxis.setValueFormatter(new ValueFormatter() { private final SimpleDateFormat mFormat = new SimpleDateFormat("MMM", Locale.getDefault()); @@ -167,7 +167,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR))); List scaleMeasurementList = - OpenScale.getInstance().getScaleDataOfYear(calYears.get(Calendar.YEAR)); + OpenScale.getInstance().getScaleMeasurementOfYear(calYears.get(Calendar.YEAR)); if (!scaleMeasurementList.isEmpty()) { calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime()); } @@ -182,7 +182,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR))); List scaleMeasurementList = - OpenScale.getInstance().getScaleDataOfYear(calYears.get(Calendar.YEAR)); + OpenScale.getInstance().getScaleMeasurementOfYear(calYears.get(Calendar.YEAR)); if (!scaleMeasurementList.isEmpty()) { calLastSelected.setTime(scaleMeasurementList.get(scaleMeasurementList.size() - 1).getDateTime()); } @@ -255,12 +255,10 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { showMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - int id = markedMeasurement.getId(); - - Intent intent = new Intent(graphView.getContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_ID, id); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.VIEW_MEASUREMENT_REQUEST); - startActivity(intent); + GraphFragmentDirections.ActionNavGraphToNavDataentry action = GraphFragmentDirections.actionNavGraphToNavDataentry(); + action.setMeasurementId(markedMeasurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.VIEW); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); @@ -268,12 +266,10 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { editMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - int id = markedMeasurement.getId(); - - Intent intent = new Intent(graphView.getContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_ID, id); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.EDIT_MEASUREMENT_REQUEST); - startActivity(intent); + GraphFragmentDirections.ActionNavGraphToNavDataentry action = GraphFragmentDirections.actionNavGraphToNavDataentry(); + action.setMeasurementId(markedMeasurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.EDIT); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); deleteMenu = graphView.findViewById(R.id.deleteMenu); @@ -284,17 +280,16 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { } }); - openScale.registerFragment(this); + OpenScale.getInstance().getScaleMeasurementsLiveData().observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List scaleMeasurements) { + generateGraphs(); + } + }); return graphView; } - @Override - public void onDestroyView() { - OpenScale.getInstance().unregisterFragment(this); - super.onDestroyView(); - } - @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); @@ -303,12 +298,6 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { outState.putLong(CAL_LAST_SELECTED_KEY, calLastSelected.getTimeInMillis()); } - @Override - public void updateOnView(List scaleMeasurementList) - { - generateGraphs(); - } - private void generateColumnData() { int[] numOfMonth = openScale.getCountsOfMonth(calYears.get(Calendar.YEAR)); @@ -345,14 +334,13 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { int firstYear = selectedYear; int lastYear = selectedYear; - List scaleMeasurementList = openScale.getScaleMeasurementList(); - if (!scaleMeasurementList.isEmpty()) { + if (!openScale.isScaleMeasurementListEmpty()) { Calendar cal = Calendar.getInstance(); - cal.setTime(scaleMeasurementList.get(scaleMeasurementList.size() - 1).getDateTime()); + cal.setTime(openScale.getFirstScaleMeasurement().getDateTime()); firstYear = cal.get(Calendar.YEAR); - cal.setTime(scaleMeasurementList.get(0).getDateTime()); + cal.setTime(openScale.getLastScaleMeasurement().getDateTime()); lastYear = cal.get(Calendar.YEAR); } btnLeftYear.setEnabled(selectedYear > firstYear); @@ -464,7 +452,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { } private void doDeleteMeasurement() { - OpenScale.getInstance().deleteScaleData(markedMeasurement.getId()); + OpenScale.getInstance().deleteScaleMeasurement(markedMeasurement.getId()); Toast.makeText(graphView.getContext(), getResources().getString(R.string.info_data_deleted), Toast.LENGTH_SHORT).show(); showMenu.setVisibility(View.GONE); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BMIMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/BMIMeasurementView.java index bfeca00d..cfe4a570 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BMIMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BMRMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/BMRMeasurementView.java index 5d28c611..56e0e187 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BMRMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BicepsMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BicepsMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/BicepsMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/BicepsMeasurementView.java index 25909d4a..9175fd0a 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BicepsMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BicepsMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BoneMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/BoneMeasurementView.java index cd13ec14..eb6f8ab8 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/BoneMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; 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/measurement/Caliper1MeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/Caliper1MeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/Caliper1MeasurementView.java index 7952e19c..3dbe35dc 100644 --- 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/measurement/Caliper1MeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; 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/measurement/Caliper2MeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/Caliper2MeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/Caliper2MeasurementView.java index 3909749a..16bb9451 100644 --- 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/measurement/Caliper2MeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; 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/measurement/Caliper3MeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/Caliper3MeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/Caliper3MeasurementView.java index 0f64ceb6..482feaba 100644 --- 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/measurement/Caliper3MeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/CaloriesMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/CaloriesMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/CaloriesMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/CaloriesMeasurementView.java index 9c7d8316..50ad2cc3 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/CaloriesMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/CaloriesMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartActionBarView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartActionBarView.java similarity index 99% rename from android_app/app/src/main/java/com/health/openscale/gui/views/ChartActionBarView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartActionBarView.java index 050a2567..07162eaf 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartActionBarView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartActionBarView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.content.SharedPreferences; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartMarkerView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMarkerView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/ChartMarkerView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMarkerView.java index 4378e81c..e39e4d07 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartMarkerView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMarkerView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.annotation.SuppressLint; import android.content.Context; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/ChartMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMeasurementView.java index 89fd13f8..6df1c01b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/ChartMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChartMeasurementView.java @@ -14,7 +14,7 @@ * along with this program. If not, see */ -package com.health.openscale.gui.views; +package com.health.openscale.gui.measurement; import android.content.Context; import android.content.SharedPreferences; @@ -105,7 +105,7 @@ public class ChartMeasurementView extends LineChart { isRollingChart = rollingChart; if (isRollingChart) { - ScaleMeasurement lastMeasurement = openScale.getLatestScaleMeasurement(openScale.getSelectedScaleUserId()); + ScaleMeasurement lastMeasurement = openScale.getLastScaleMeasurement(); if (lastMeasurement != null) { Calendar lastMeasurementCalender = Calendar.getInstance(); @@ -128,7 +128,7 @@ public class ChartMeasurementView extends LineChart { throw new IllegalArgumentException("view mode not implemented"); } - setMeasurementList(openScale.getScaleDataOfStartDate(lastMeasurementCalender.get(Calendar.YEAR), lastMeasurementCalender.get(Calendar.MONTH), lastMeasurementCalender.get(Calendar.DAY_OF_MONTH))); + setMeasurementList(openScale.getScaleMeasurementOfStartDate(lastMeasurementCalender.get(Calendar.YEAR), lastMeasurementCalender.get(Calendar.MONTH), lastMeasurementCalender.get(Calendar.DAY_OF_MONTH))); } } else { setMeasurementList(openScale.getScaleMeasurementList()); @@ -144,7 +144,7 @@ public class ChartMeasurementView extends LineChart { public void setViewRange(int year, final ViewMode mode) { progressBar.setVisibility(VISIBLE); - setMeasurementList(openScale.getScaleDataOfYear(year)); + setMeasurementList(openScale.getScaleMeasurementOfYear(year)); setViewMode(mode); refresh(); @@ -152,7 +152,7 @@ public class ChartMeasurementView extends LineChart { public void setViewRange(int year, int month, final ViewMode mode) { progressBar.setVisibility(VISIBLE); - setMeasurementList(openScale.getScaleDataOfMonth(year, month)); + setMeasurementList(openScale.getScaleMeasurementOfMonth(year, month)); setViewMode(mode); refresh(); @@ -191,14 +191,14 @@ public class ChartMeasurementView extends LineChart { getLegend().setEnabled(prefs.getBoolean("legendEnable", true)); getLegend().setWordWrapEnabled(true); getLegend().setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER); - getLegend().setTextColor(ColorUtil.getTextColor(getContext())); + getLegend().setTextColor(ColorUtil.getTintColor(getContext())); getDescription().setEnabled(false); getAxisLeft().setEnabled(true); getAxisRight().setEnabled(true); - getAxisLeft().setTextColor(ColorUtil.getTextColor(getContext())); - getAxisRight().setTextColor(ColorUtil.getTextColor(getContext())); + getAxisLeft().setTextColor(ColorUtil.getTintColor(getContext())); + getAxisRight().setTextColor(ColorUtil.getTintColor(getContext())); getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); - getXAxis().setTextColor(ColorUtil.getTextColor(getContext())); + getXAxis().setTextColor(ColorUtil.getTintColor(getContext())); setOnChartGestureListener(new OnChartGestureListener() { @Override @@ -643,7 +643,7 @@ public class ChartMeasurementView extends LineChart { measurementLine.setLineWidth(1.5f); measurementLine.setValueTextSize(10.0f); measurementLine.setColor(measurementView.getColor()); - measurementLine.setValueTextColor(ColorUtil.getTextColor(getContext())); + measurementLine.setValueTextColor(ColorUtil.getTintColor(getContext())); measurementLine.setCircleColor(measurementView.getColor()); measurementLine.setAxisDependency(measurementView.getSettings().isOnRightAxis() ? YAxis.AxisDependency.RIGHT : YAxis.AxisDependency.LEFT); measurementLine.setHighlightEnabled(true); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/ChestMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChestMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/ChestMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/ChestMeasurementView.java index 748ee80e..6575219d 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/ChestMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ChestMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/CommentMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/CommentMeasurementView.java index f731f75f..1b2baaba 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/CommentMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.os.Bundle; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/DateMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/DateMeasurementView.java index 79833f6e..252c0ff5 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/DateMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.app.DatePickerDialog; import android.content.Context; 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/measurement/FatCaliperMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/FatCaliperMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/FatCaliperMeasurementView.java index 272c9266..cb5d31d8 100644 --- 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/measurement/FatCaliperMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/FatMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/FatMeasurementView.java index a4fc46a9..45ccd5a2 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/FatMeasurementView.java @@ -13,11 +13,12 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; -import android.preference.ListPreference; + +import androidx.preference.ListPreference; import com.health.openscale.R; import com.health.openscale.core.bodymetric.EstimatedFatMetric; 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/measurement/FloatMeasurementView.java similarity index 95% rename from android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/FloatMeasurementView.java index c0d4941c..4ee8da18 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/measurement/FloatMeasurementView.java @@ -14,23 +14,15 @@ * along with this program. If not, see */ -package com.health.openscale.gui.views; +package com.health.openscale.gui.measurement; -import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.res.Resources; -import android.database.DataSetObserver; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.preference.CheckBoxPreference; -import android.preference.ListPreference; -import android.preference.Preference; -import android.preference.PreferenceScreen; -import android.preference.SwitchPreference; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ForegroundColorSpan; @@ -40,11 +32,18 @@ import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.ListAdapter; import android.widget.TableRow; import android.widget.TextView; +import androidx.preference.CheckBoxPreference; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; +import androidx.preference.PreferenceViewHolder; +import androidx.preference.SwitchPreference; + import com.health.openscale.R; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.evaluation.EvaluationResult; @@ -525,15 +524,19 @@ public abstract class FloatMeasurementView extends MeasurementView { private class ListPreferenceWithNeutralButton extends ListPreference { ListPreferenceWithNeutralButton(Context context) { super(context); + + setWidgetLayoutResource(R.layout.preference_info); } @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { - super.onPrepareDialogBuilder(builder); + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); - builder.setNeutralButton(R.string.label_help, new DialogInterface.OnClickListener() { + ImageView helpView = (ImageView)holder.findViewById(R.id.helpView); + + helpView.setOnClickListener(new OnClickListener() { @Override - public void onClick(DialogInterface dialog, int which) { + public void onClick(View v) { getContext().startActivity(new Intent( Intent.ACTION_VIEW, Uri.parse("https://github.com/oliexdev/openScale/wiki/Body-metric-estimations"))); @@ -577,6 +580,8 @@ public abstract class FloatMeasurementView extends MeasurementView { formula.setPersistent(true); formula.setDefaultValue(settings.getEstimationFormula()); prepareEstimationFormulaPreference(formula); + formula.setEnabled(estimate.isChecked()); + formula.setSummary(formula.getEntries()[formula.findIndexOfValue(settings.getEstimationFormula())]); formula.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -590,16 +595,18 @@ public abstract class FloatMeasurementView extends MeasurementView { } }); - final ListAdapter adapter = screen.getRootAdapter(); - adapter.registerDataSetObserver(new DataSetObserver() { + estimate.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override - public void onChanged() { - adapter.unregisterDataSetObserver(this); - - formula.setDependency(estimate.getKey()); - formula.setSummary(formula.getEntry()); + public boolean onPreferenceChange(Preference preference, Object newValue) { + if ((Boolean)newValue == true) { + formula.setEnabled(true); + } else { + formula.setEnabled(false); + } + return true; } }); + screen.addPreference(formula); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/HipMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/HipMeasurementView.java index 36e18fe1..c79f8bb2 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/HipMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/LBMMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/LBMMeasurementView.java index 7d25488b..4928adaf 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/LBMMeasurementView.java @@ -13,11 +13,12 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; -import android.preference.ListPreference; + +import androidx.preference.ListPreference; import com.health.openscale.R; import com.health.openscale.core.bodymetric.EstimatedLBMMetric; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/LinearGaugeView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/LinearGaugeView.java similarity index 99% rename from android_app/app/src/main/java/com/health/openscale/gui/views/LinearGaugeView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/LinearGaugeView.java index f8ccb47b..866505f4 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/LinearGaugeView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/LinearGaugeView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Canvas; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementEntryFragment.java similarity index 75% rename from android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementEntryFragment.java index 896c62d1..eb6ef489 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementEntryFragment.java @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.activities; +package com.health.openscale.gui.measurement; import android.app.AlertDialog; import android.content.Context; @@ -23,41 +23,35 @@ import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.preference.PreferenceManager; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TableLayout; import android.widget.TextView; import android.widget.Toast; -import androidx.appcompat.widget.Toolbar; import androidx.core.graphics.drawable.DrawableCompat; +import androidx.fragment.app.Fragment; +import androidx.navigation.Navigation; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; -import com.health.openscale.gui.views.DateMeasurementView; -import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.MeasurementViewUpdateListener; -import com.health.openscale.gui.views.TimeMeasurementView; -import com.health.openscale.gui.views.UserMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; import java.text.DateFormat; import java.util.Date; import java.util.List; -public class DataEntryActivity extends BaseAppCompatActivity { - public static final String EXTRA_ID = "id"; - public static final String EXTRA_MODE = "mode"; +public class MeasurementEntryFragment extends Fragment { + public enum DATA_ENTRY_MODE {ADD, EDIT, VIEW}; private static final String PREF_EXPAND = "expandEvaluator"; - public static final int ADD_MEASUREMENT_REQUEST = 0; - public static final int EDIT_MEASUREMENT_REQUEST = 1; - public static final int VIEW_MEASUREMENT_REQUEST = 2; + private DATA_ENTRY_MODE mode = DATA_ENTRY_MODE.ADD; private MeasurementView.MeasurementViewMode measurementViewMode; @@ -80,26 +74,21 @@ public class DataEntryActivity extends BaseAppCompatActivity { private Context context; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.fragment_dataentry, container, false); - setContentView(R.layout.activity_dataentry); + setHasOptionsMenu(true); - Toolbar toolbar = findViewById(R.id.dataEntryToolbar); - setSupportActionBar(toolbar); + context = getContext(); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - context = this; - - TableLayout tableLayoutDataEntry = findViewById(R.id.tableLayoutDataEntry); + TableLayout tableLayoutDataEntry = root.findViewById(R.id.tableLayoutDataEntry); dataEntryMeasurements = MeasurementView.getMeasurementList( context, MeasurementView.DateTimeOrder.LAST); - txtDataNr = findViewById(R.id.txtDataNr); - btnLeft = findViewById(R.id.btnLeft); - btnRight = findViewById(R.id.btnRight); + txtDataNr = root.findViewById(R.id.txtDataNr); + btnLeft = root.findViewById(R.id.btnLeft); + btnRight = root.findViewById(R.id.btnRight); btnLeft.setVisibility(View.INVISIBLE); btnRight.setVisibility(View.INVISIBLE); @@ -117,25 +106,32 @@ public class DataEntryActivity extends BaseAppCompatActivity { } }); - int mode = getIntent().getExtras().getInt(EXTRA_MODE); MeasurementView.MeasurementViewMode measurementMode = MeasurementView.MeasurementViewMode.ADD; - if (mode == ADD_MEASUREMENT_REQUEST) { - measurementMode = MeasurementView.MeasurementViewMode.ADD; - } - else if (mode == VIEW_MEASUREMENT_REQUEST){ - measurementMode = MeasurementView.MeasurementViewMode.VIEW; + mode = MeasurementEntryFragmentArgs.fromBundle(getArguments()).getMode(); + + switch (mode) { + case ADD: + measurementMode = MeasurementView.MeasurementViewMode.ADD; + break; + case EDIT: + break; + case VIEW: + measurementMode = MeasurementView.MeasurementViewMode.VIEW; + break; } for (MeasurementView measurement : dataEntryMeasurements) { measurement.setEditMode(measurementMode); } - updateOnView(); + int id = MeasurementEntryFragmentArgs.fromBundle(getArguments()).getMeasurementId(); + + updateOnView(id); onMeasurementViewUpdateListener updateListener = new onMeasurementViewUpdateListener(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - final boolean expand = mode == ADD_MEASUREMENT_REQUEST + final boolean expand = mode == DATA_ENTRY_MODE.ADD ? false : prefs.getBoolean(PREF_EXPAND, false); for (MeasurementView measurement : dataEntryMeasurements) { @@ -143,29 +139,13 @@ public class DataEntryActivity extends BaseAppCompatActivity { measurement.setOnUpdateListener(updateListener); measurement.setExpand(expand); } + + return root; } @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - - for (MeasurementView measurement : dataEntryMeasurements) { - measurement.restoreState(savedInstanceState); - } - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - - for (MeasurementView measurement : dataEntryMeasurements) { - measurement.saveState(outState); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); inflater.inflate(R.menu.dataentry_menu, menu); // Apply a tint to all icons in the toolbar @@ -196,18 +176,20 @@ public class DataEntryActivity extends BaseAppCompatActivity { expandButton = menu.findItem(R.id.expandButton); deleteButton = menu.findItem(R.id.deleteButton); - int mode = getIntent().getExtras().getInt(EXTRA_MODE); // Hide/show icons as appropriate for the view mode - if (mode == ADD_MEASUREMENT_REQUEST) { - setViewMode(MeasurementView.MeasurementViewMode.ADD); - } - else if (mode == VIEW_MEASUREMENT_REQUEST){ - setViewMode(MeasurementView.MeasurementViewMode.VIEW); - } else if (mode == EDIT_MEASUREMENT_REQUEST) { - setViewMode(MeasurementView.MeasurementViewMode.EDIT); + switch (mode) { + case ADD: + setViewMode(MeasurementView.MeasurementViewMode.ADD); + break; + case EDIT: + setViewMode(MeasurementView.MeasurementViewMode.EDIT); + break; + case VIEW: + setViewMode(MeasurementView.MeasurementViewMode.VIEW); + break; } - return super.onCreateOptionsMenu(menu); + super.onCreateOptionsMenu(menu, inflater); } @Override @@ -220,7 +202,7 @@ public class DataEntryActivity extends BaseAppCompatActivity { setViewMode(MeasurementView.MeasurementViewMode.VIEW); } else { - finish(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigateUp(); } return true; @@ -241,36 +223,11 @@ public class DataEntryActivity extends BaseAppCompatActivity { case R.id.deleteButton: deleteMeasurement(); return true; - - // Override the default behaviour in order to return to the correct fragment - // (e.g. the table view) and not always go to the overview. - case android.R.id.home: - onBackPressed(); - return true; } return super.onOptionsItemSelected(item); } - @Override - public void onBackPressed() { - if (measurementViewMode == MeasurementView.MeasurementViewMode.EDIT) { - setViewMode(MeasurementView.MeasurementViewMode.VIEW); - if (isDirty) { - scaleMeasurement = null; - } - updateOnView(); - } - else { - super.onBackPressed(); - } - } - - private void updateOnView() { - int id = 0; - if (getIntent().hasExtra(EXTRA_ID)) { - id = getIntent().getExtras().getInt(EXTRA_ID); - } - + private void updateOnView(int id) { if (scaleMeasurement == null || scaleMeasurement.getId() != id) { isDirty = false; scaleMeasurement = null; @@ -283,7 +240,7 @@ public class DataEntryActivity extends BaseAppCompatActivity { if (id > 0) { // Show selected scale data if (scaleMeasurement == null) { - ScaleMeasurement[] tupleScaleData = openScale.getTupleScaleData(id); + ScaleMeasurement[] tupleScaleData = openScale.getTupleOfScaleMeasurement(id); previousMeasurement = tupleScaleData[0]; scaleMeasurement = tupleScaleData[1].clone(); nextMeasurement = tupleScaleData[2]; @@ -292,14 +249,14 @@ public class DataEntryActivity extends BaseAppCompatActivity { btnRight.setEnabled(nextMeasurement != null); } } else { - if (openScale.getScaleMeasurementList().isEmpty()) { + if (openScale.isScaleMeasurementListEmpty()) { // Show default values scaleMeasurement = new ScaleMeasurement(); scaleMeasurement.setWeight(openScale.getSelectedScaleUser().getInitialWeight()); } else { // Show the last scale data as default - scaleMeasurement = openScale.getScaleMeasurementList().get(0).clone(); + scaleMeasurement = openScale.getLastScaleMeasurement().clone(); scaleMeasurement.setId(0); scaleMeasurement.setDateTime(new Date()); scaleMeasurement.setComment(""); @@ -332,8 +289,6 @@ public class DataEntryActivity extends BaseAppCompatActivity { switch (viewMode) { case VIEW: - getSupportActionBar().setTitle(""); - saveButton.setVisible(false); editButton.setVisible(true); expandButton.setVisible(true); @@ -348,8 +303,6 @@ public class DataEntryActivity extends BaseAppCompatActivity { dateTimeVisibility = View.GONE; break; case EDIT: - getSupportActionBar().setTitle(""); - saveButton.setVisible(true); editButton.setVisible(false); expandButton.setVisible(true); @@ -362,8 +315,6 @@ public class DataEntryActivity extends BaseAppCompatActivity { btnRight.setEnabled(false); break; case ADD: - getSupportActionBar().setTitle(R.string.label_add_measurement); - saveButton.setVisible(true); editButton.setVisible(false); expandButton.setVisible(false); @@ -392,10 +343,10 @@ public class DataEntryActivity extends BaseAppCompatActivity { } if (scaleMeasurement.getId() > 0) { - openScale.updateScaleData(scaleMeasurement); + openScale.updateScaleMeasurement(scaleMeasurement); } else { - openScale.addScaleData(scaleMeasurement); + openScale.addScaleMeasurement(scaleMeasurement); } isDirty = false; } @@ -428,12 +379,12 @@ public class DataEntryActivity extends BaseAppCompatActivity { } private void doDeleteMeasurement() { - OpenScale.getInstance().deleteScaleData(scaleMeasurement.getId()); + OpenScale.getInstance().deleteScaleMeasurement(scaleMeasurement.getId()); Toast.makeText(context, getResources().getString(R.string.info_data_deleted), Toast.LENGTH_SHORT).show(); final boolean hasNext = moveLeft() || moveRight(); if (!hasNext) { - finish(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigateUp(); } else if (measurementViewMode == MeasurementView.MeasurementViewMode.EDIT) { setViewMode(MeasurementView.MeasurementViewMode.VIEW); @@ -442,8 +393,7 @@ public class DataEntryActivity extends BaseAppCompatActivity { private boolean moveLeft() { if (previousMeasurement != null) { - getIntent().putExtra(EXTRA_ID, previousMeasurement.getId()); - updateOnView(); + updateOnView(previousMeasurement.getId()); return true; } @@ -452,8 +402,7 @@ public class DataEntryActivity extends BaseAppCompatActivity { private boolean moveRight() { if (nextMeasurement != null) { - getIntent().putExtra(EXTRA_ID, nextMeasurement.getId()); - updateOnView(); + updateOnView(nextMeasurement.getId()); return true; } 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/measurement/MeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementView.java index 6c340e4d..cd13d5ea 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/measurement/MeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.app.AlertDialog; import android.content.Context; @@ -24,8 +24,6 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; -import android.preference.PreferenceManager; -import android.preference.PreferenceScreen; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.util.TypedValue; @@ -42,6 +40,8 @@ import android.widget.TableRow; import android.widget.TextView; import androidx.core.content.ContextCompat; +import androidx.preference.PreferenceManager; +import androidx.preference.PreferenceScreen; import com.health.openscale.R; import com.health.openscale.core.OpenScale; @@ -53,10 +53,10 @@ import com.health.openscale.gui.utils.ColorUtil; import java.util.ArrayList; import java.util.List; -import static com.health.openscale.gui.views.MeasurementView.MeasurementViewMode.ADD; -import static com.health.openscale.gui.views.MeasurementView.MeasurementViewMode.EDIT; -import static com.health.openscale.gui.views.MeasurementView.MeasurementViewMode.STATISTIC; -import static com.health.openscale.gui.views.MeasurementView.MeasurementViewMode.VIEW; +import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.ADD; +import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.EDIT; +import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.STATISTIC; +import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.VIEW; public abstract class MeasurementView extends TableLayout { public enum MeasurementViewMode {VIEW, EDIT, ADD, STATISTIC} @@ -349,7 +349,7 @@ public abstract class MeasurementView extends TableLayout { } public int getForegroundColor() { - return ColorUtil.getTextColor(getContext()); + return ColorUtil.getTintColor(getContext()); } public int getIndicatorColor() { 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/measurement/MeasurementViewSettings.java similarity index 99% rename from android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementViewSettings.java index b2256203..608a177f 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/measurement/MeasurementViewSettings.java @@ -14,7 +14,7 @@ * along with this program. If not, see */ -package com.health.openscale.gui.views; +package com.health.openscale.gui.measurement; import android.content.SharedPreferences; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewUpdateListener.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementViewUpdateListener.java similarity index 94% rename from android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewUpdateListener.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementViewUpdateListener.java index 63362419..c5807302 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewUpdateListener.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementViewUpdateListener.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; public interface MeasurementViewUpdateListener { void onMeasurementViewUpdate(MeasurementView view); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MuscleMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/MuscleMeasurementView.java index cbb8cd3f..08a72951 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MuscleMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/NeckMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/NeckMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/NeckMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/NeckMeasurementView.java index c6488ad4..7ca9ab4d 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/NeckMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/NeckMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/TDEEMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/TDEEMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/TDEEMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/TDEEMeasurementView.java index 38b0970f..a9f5072b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/TDEEMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/TDEEMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/ThighMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ThighMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/ThighMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/ThighMeasurementView.java index d3c44509..b401bdb0 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/ThighMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/ThighMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/TimeMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/TimeMeasurementView.java index 1a98aa8a..6f2662fe 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/TimeMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.os.Bundle; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/UserMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/UserMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/UserMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/UserMeasurementView.java index b96ea368..66e3799a 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/UserMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/UserMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.os.Bundle; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/VisceralFatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/VisceralFatMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/VisceralFatMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/VisceralFatMeasurementView.java index d0b41b33..02635e35 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/VisceralFatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/VisceralFatMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WHRMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/WHRMeasurementView.java index 928631af..c413be28 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WHRMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WHtRMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/WHtRMeasurementView.java index 363833bf..ac5cb9c6 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WHtRMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WaistMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/WaistMeasurementView.java index 50160a08..2da45796 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WaistMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WaterMeasurementView.java similarity index 97% rename from android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/WaterMeasurementView.java index 3107de41..be3b4e00 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WaterMeasurementView.java @@ -13,11 +13,12 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; -import android.preference.ListPreference; + +import androidx.preference.ListPreference; import com.health.openscale.R; import com.health.openscale.core.bodymetric.EstimatedWaterMetric; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WeightMeasurementView.java similarity index 98% rename from android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/measurement/WeightMeasurementView.java index 111e5278..cad45f5b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/WeightMeasurementView.java @@ -13,7 +13,7 @@ * 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; +package com.health.openscale.gui.measurement; import android.content.Context; import android.graphics.Color; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java similarity index 89% rename from android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java rename to android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java index ef7496a4..0b830229 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java @@ -13,11 +13,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.fragments; +package com.health.openscale.gui.overview; import android.app.AlertDialog; import android.content.DialogInterface; -import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; @@ -36,6 +35,8 @@ import android.widget.TextView; import android.widget.Toast; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.navigation.Navigation; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.highlight.Highlight; @@ -44,16 +45,16 @@ import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.DataEntryActivity; +import com.health.openscale.gui.measurement.ChartActionBarView; +import com.health.openscale.gui.measurement.ChartMeasurementView; +import com.health.openscale.gui.measurement.MeasurementEntryFragment; +import com.health.openscale.gui.measurement.MeasurementView; import com.health.openscale.gui.utils.ColorUtil; -import com.health.openscale.gui.views.ChartActionBarView; -import com.health.openscale.gui.views.ChartMeasurementView; -import com.health.openscale.gui.views.MeasurementView; import java.util.ArrayList; import java.util.List; -public class OverviewFragment extends Fragment implements FragmentUpdateListener { +public class OverviewFragment extends Fragment { private View overviewView; private TextView txtTitleUser; @@ -219,12 +220,10 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener showEntry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - int id = markedMeasurement.getId(); - - Intent intent = new Intent(overviewView.getContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_ID, id); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.VIEW_MEASUREMENT_REQUEST); - startActivity(intent); + OverviewFragmentDirections.ActionNavOverviewToNavDataentry action = OverviewFragmentDirections.actionNavOverviewToNavDataentry(); + action.setMeasurementId(markedMeasurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.VIEW); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); @@ -232,12 +231,10 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener editEntry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - int id = markedMeasurement.getId(); - - Intent intent = new Intent(overviewView.getContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_ID, id); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.EDIT_MEASUREMENT_REQUEST); - startActivity(intent); + OverviewFragmentDirections.ActionNavOverviewToNavDataentry action = OverviewFragmentDirections.actionNavOverviewToNavDataentry(); + action.setMeasurementId(markedMeasurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.EDIT); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); deleteEntry = overviewView.findViewById(R.id.deleteEntry); @@ -252,20 +249,18 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener editEntry.setEnabled(false); deleteEntry.setEnabled(false); - OpenScale.getInstance().registerFragment(this); - chartView.animateY(700); + OpenScale.getInstance().getScaleMeasurementsLiveData().observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List scaleMeasurements) { + updateOnView(scaleMeasurements); + } + }); + return overviewView; } - @Override - public void onDestroyView() { - OpenScale.getInstance().unregisterFragment(this); - super.onDestroyView(); - } - - @Override public void updateOnView(List scaleMeasurementList) { if (scaleMeasurementList.isEmpty()) { markedMeasurement = new ScaleMeasurement(); @@ -286,7 +281,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener } private void updateMesurementViews(ScaleMeasurement selectedMeasurement) { - ScaleMeasurement[] tupleScaleData = OpenScale.getInstance().getTupleScaleData(selectedMeasurement.getId()); + ScaleMeasurement[] tupleScaleData = OpenScale.getInstance().getTupleOfScaleMeasurement(selectedMeasurement.getId()); ScaleMeasurement prevScaleMeasurement = tupleScaleData[0]; for (MeasurementView measurement : lastMeasurementViews) { @@ -364,7 +359,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener ScaleUser scaleUser = scaleUserList.get(position); openScale.selectScaleUser(scaleUser.getId()); - openScale.updateScaleData(); + updateOnView(openScale.getScaleMeasurementList()); } } @@ -402,7 +397,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener } private void doDeleteMeasurement() { - OpenScale.getInstance().deleteScaleData(markedMeasurement.getId()); + OpenScale.getInstance().deleteScaleMeasurement(markedMeasurement.getId()); Toast.makeText(overviewView.getContext(), getResources().getString(R.string.info_data_deleted), Toast.LENGTH_SHORT).show(); showEntry.setEnabled(false); @@ -412,7 +407,5 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener showEntry.setColorFilter(ColorUtil.COLOR_GRAY); editEntry.setColorFilter(ColorUtil.COLOR_GRAY); deleteEntry.setColorFilter(ColorUtil.COLOR_GRAY); - - updateOnView(OpenScale.getInstance().getScaleMeasurementList()); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/AboutPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/AboutPreferences.java index f7a21cf1..9fd2bdd0 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/AboutPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/AboutPreferences.java @@ -19,10 +19,13 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.preference.CheckBoxPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; import com.health.openscale.BuildConfig; import com.health.openscale.R; @@ -39,7 +42,7 @@ import timber.log.Timber; import static android.app.Activity.RESULT_OK; -public class AboutPreferences extends PreferenceFragment { +public class AboutPreferences extends PreferenceFragmentCompat { private static final String KEY_APP_VERSION = "pref_app_version"; private static final String KEY_DEBUG_LOG = "debug_log"; @@ -96,10 +99,10 @@ public class AboutPreferences extends PreferenceFragment { } @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.about_preferences, rootKey); - addPreferencesFromResource(R.xml.about_preferences); + setHasOptionsMenu(true); findPreference(KEY_APP_VERSION).setSummary( String.format("v%s (%d)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)); @@ -160,4 +163,9 @@ public class AboutPreferences extends PreferenceFragment { debugLog.setChecked(getEnabledFileDebugTree() != null); } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BackupPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BackupPreferences.java index 4e2a33c6..3425a854 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BackupPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BackupPreferences.java @@ -21,15 +21,15 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.EditTextPreference; -import android.preference.ListPreference; -import android.preference.MultiSelectListPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.PreferenceGroup; +import android.view.Menu; +import android.view.MenuInflater; import android.widget.Toast; +import androidx.fragment.app.Fragment; +import androidx.preference.CheckBoxPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.alarm.AlarmBackupHandler; @@ -37,13 +37,10 @@ import com.health.openscale.core.alarm.ReminderBootReceiver; import com.health.openscale.gui.utils.PermissionHelper; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; import static android.app.Activity.RESULT_OK; -public class BackupPreferences extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { +public class BackupPreferences extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String PREFERENCE_KEY_IMPORT_BACKUP = "importBackup"; private static final String PREFERENCE_KEY_EXPORT_BACKUP = "exportBackup"; private static final String PREFERENCE_KEY_AUTO_BACKUP = "autoBackup"; @@ -58,11 +55,15 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe private boolean isAutoBackupAskForPermission; - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + private Fragment fragment; - addPreferencesFromResource(R.xml.backup_preferences); + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.backup_preferences, rootKey); + + setHasOptionsMenu(true); + + fragment = this; importBackup = (Preference) findPreference(PREFERENCE_KEY_IMPORT_BACKUP); importBackup.setOnPreferenceClickListener(new onClickListenerImportBackup()); @@ -73,7 +74,6 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe autoBackup = (CheckBoxPreference) findPreference(PREFERENCE_KEY_AUTO_BACKUP); autoBackup.setOnPreferenceClickListener(new onClickListenerAutoBackup()); - initSummary(getPreferenceScreen()); updateBackupPreferences(); } @@ -115,59 +115,9 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - updatePrefSummary(findPreference(key)); updateBackupPreferences(); } - private void initSummary(Preference p) { - if (p instanceof PreferenceGroup) { - PreferenceGroup pGrp = (PreferenceGroup) p; - for (int i = 0; i < pGrp.getPreferenceCount(); i++) { - initSummary(pGrp.getPreference(i)); - } - } else { - updatePrefSummary(p); - } - } - - private void updatePrefSummary(Preference p) - { - if (p instanceof ListPreference) - { - ListPreference listPref = (ListPreference) p; - p.setSummary(listPref.getEntry()); - } - - if (p instanceof EditTextPreference) - { - EditTextPreference editTextPref = (EditTextPreference) p; - if (p.getTitle().toString().contains("assword")) - { - p.setSummary("******"); - } - else - { - p.setSummary(editTextPref.getText()); - } - } - - if (p instanceof MultiSelectListPreference) - { - MultiSelectListPreference editMultiListPref = (MultiSelectListPreference) p; - - CharSequence[] entries = editMultiListPref.getEntries(); - CharSequence[] entryValues = editMultiListPref.getEntryValues(); - List currentEntries = new ArrayList<>(); - Set currentEntryValues = editMultiListPref.getValues(); - - for (int i = 0; i < entries.length; i++) - { - if (currentEntryValues.contains(entryValues[i].toString())) currentEntries.add(entries[i].toString()); - } - - p.setSummary(currentEntries.toString()); - } - } private class onClickListenerAutoBackup implements Preference.OnPreferenceClickListener { @Override @@ -175,7 +125,7 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe if (autoBackup.isChecked()) { isAutoBackupAskForPermission = true; - PermissionHelper.requestWritePermission(getActivity()); + PermissionHelper.requestWritePermission(fragment); } return true; @@ -185,7 +135,7 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe private class onClickListenerImportBackup implements Preference.OnPreferenceClickListener { @Override public boolean onPreferenceClick(Preference preference) { - if (PermissionHelper.requestReadPermission(getActivity())) { + if (PermissionHelper.requestReadPermission(fragment)) { importBackup(); } @@ -196,7 +146,7 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe private class onClickListenerExportBackup implements Preference.OnPreferenceClickListener { @Override public boolean onPreferenceClick(Preference preference) { - if (PermissionHelper.requestWritePermission(getActivity())) { + if (PermissionHelper.requestWritePermission(fragment)) { exportBackup(); } @@ -265,13 +215,14 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe return true; } - public void onMyOwnRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + @Override + public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { importBackup(); } else { - Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show(); + Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show(); } break; case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE: @@ -287,9 +238,14 @@ public class BackupPreferences extends PreferenceFragment implements SharedPrefe autoBackup.setChecked(false); } - Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show(); + Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show(); } break; } } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java index d41e1048..89196874 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothPreferences.java @@ -15,18 +15,26 @@ */ package com.health.openscale.gui.preferences; -import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.widget.BaseAdapter; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.Observer; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; import com.health.openscale.R; -import com.health.openscale.gui.activities.BluetoothSettingsActivity; -public class BluetoothPreferences extends PreferenceFragment { +public class BluetoothPreferences extends PreferenceFragmentCompat { private static final String PREFERENCE_KEY_BLUETOOTH_SCANNER = "btScanner"; private Preference btScanner; @@ -41,42 +49,50 @@ public class BluetoothPreferences extends PreferenceFragment { private String getCurrentDeviceName() { SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); return formatDeviceName( - prefs.getString(BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""), - prefs.getString(BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, "")); - } - - private void updateBtScannerSummary() { - // Set summary text and trigger data set changed to make UI update - btScanner.setSummary(getCurrentDeviceName()); - ((BaseAdapter)getPreferenceScreen().getRootAdapter()).notifyDataSetChanged(); + prefs.getString(BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""), + prefs.getString(BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, "")); } @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.bluetooth_preferences, rootKey); - addPreferencesFromResource(R.xml.bluetooth_preferences); + setHasOptionsMenu(true); btScanner = (Preference) findPreference(PREFERENCE_KEY_BLUETOOTH_SCANNER); btScanner.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - Intent intent = new Intent(preference.getContext(), BluetoothSettingsActivity.class); - startActivityForResult(intent, BluetoothSettingsActivity.GET_SCALE_REQUEST); + NavDirections action = BluetoothPreferencesDirections.actionNavBluetoothPreferencesToNavBluetoothSettings(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); return true; } }); - updateBtScannerSummary(); + btScanner.setSummary(getCurrentDeviceName()); } @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { - if (requestCode == BluetoothSettingsActivity.GET_SCALE_REQUEST) { - updateBtScannerSummary(); - } + View view = super.onCreateView(inflater, container, savedInstanceState); + + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).getCurrentBackStackEntry().getSavedStateHandle().getLiveData("update", false).observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(Boolean aBoolean) { + if (aBoolean) { + btScanner.setSummary(getCurrentDeviceName()); + } + } + }); + + return view; + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/BluetoothSettingsActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java similarity index 87% rename from android_app/app/src/main/java/com/health/openscale/gui/activities/BluetoothSettingsActivity.java rename to android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java index 9c804f26..8c3c4330 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/BluetoothSettingsActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/BluetoothSettingsFragment.java @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.activities; +package com.health.openscale.gui.preferences; import android.app.Activity; import android.app.AlertDialog; @@ -37,15 +37,19 @@ import android.text.Spanned; import android.text.style.ForegroundColorSpan; import android.text.style.RelativeSizeSpan; import android.view.Gravity; -import android.view.MenuItem; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; -import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +import androidx.navigation.Navigation; import com.health.openscale.R; import com.health.openscale.core.OpenScale; @@ -62,11 +66,9 @@ import java.util.Map; import timber.log.Timber; -public class BluetoothSettingsActivity extends BaseAppCompatActivity { +public class BluetoothSettingsFragment extends Fragment { private Context context; - public static final int GET_SCALE_REQUEST = 150; - public static final String PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME = "btDeviceName"; public static final String PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS = "btHwAddress"; @@ -79,40 +81,39 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { private BluetoothCentral central; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.fragment_bluetoothsettings, container, false); - setContentView(R.layout.activity_bluetoothsettings); - context = this; + setHasOptionsMenu(true); - deviceListView = findViewById(R.id.deviceListView); - txtSearching = findViewById(R.id.txtSearching); - progressBar = findViewById(R.id.progressBar); - Toolbar toolbar = findViewById(R.id.bluetoothSettingToolbar); - setSupportActionBar(toolbar); + context = getContext(); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setTitle(R.string.label_bluetooth_title); + deviceListView = root.findViewById(R.id.deviceListView); + txtSearching = root.findViewById(R.id.txtSearching); + progressBar = root.findViewById(R.id.progressBar); + return root; + } + + @Override + public void onPause() { + stopBluetoothDiscovery(); + super.onPause(); + } + + @Override + public void onResume() { if (PermissionHelper.requestBluetoothPermission(this)) { if (PermissionHelper.requestLocationServicePermission(this)) { startBluetoothDiscovery(); } } + super.onResume(); } @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - // Override the default behaviour in order to return to the correct fragment - // (e.g. the table view) and not always go to the overview. - case android.R.id.home: - stopBluetoothDiscovery(); - onBackPressed(); - return true; - } - - return super.onOptionsItemSelected(item); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); } private static final String formatDeviceName(String name, String address) { @@ -137,7 +138,7 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { deviceListView.removeAllViews(); foundDevices.clear(); - central = new BluetoothCentral(getApplicationContext(), bluetoothCentralCallback, new Handler(Looper.getMainLooper())); + central = new BluetoothCentral(getContext(), bluetoothCentralCallback, new Handler(Looper.getMainLooper())); central.scanForPeripherals(); txtSearching.setVisibility(View.VISIBLE); @@ -191,10 +192,10 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { return; } - BluetoothDeviceView deviceView = new BluetoothDeviceView(this); + BluetoothDeviceView deviceView = new BluetoothDeviceView(getContext()); deviceView.setDeviceName(formatDeviceName(bleScanResult.getDevice())); - BluetoothCommunication btDevice = BluetoothFactory.createDeviceDriver(this, device.getName()); + BluetoothCommunication btDevice = BluetoothFactory.createDeviceDriver(getContext(), device.getName()); if (btDevice != null) { Timber.d("Found supported device %s (driver: %s)", formatDeviceName(device), btDevice.driverName()); @@ -225,7 +226,7 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { } private void getDebugInfo(final BluetoothDevice device) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle("Fetching info") .setMessage("Please wait while we fetch extended info from your scale...") .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @@ -323,7 +324,7 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { public void setIcon(int resId) { deviceIcon.setImageResource(resId); - int tintColor = ColorUtil.getTextColor(getApplicationContext()); + int tintColor = ColorUtil.getTintColor(getContext()); deviceIcon.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN); } @@ -355,8 +356,8 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { Timber.d("Saved Bluetooth device " + device.getName() + " with address " + device.getAddress()); stopBluetoothDiscovery(); - setResult(GET_SCALE_REQUEST); - finish(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).getPreviousBackStackEntry().getSavedStateHandle().set("update", true); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigateUp(); } } @@ -368,9 +369,6 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { startBluetoothDiscovery(); } } - else { - onBackPressed(); - } } super.onActivityResult(requestCode, resultCode, data); @@ -385,8 +383,7 @@ public class BluetoothSettingsActivity extends BaseAppCompatActivity { startBluetoothDiscovery(); } } else { - Toast.makeText(this, R.string.permission_not_granted, Toast.LENGTH_SHORT).show(); - onBackPressed(); + Toast.makeText(getContext(), R.string.permission_not_granted, Toast.LENGTH_SHORT).show(); } break; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/GeneralPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/GeneralPreferences.java index 56638138..62ed8716 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/GeneralPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/GeneralPreferences.java @@ -15,97 +15,49 @@ */ package com.health.openscale.gui.preferences; -import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.EditTextPreference; -import android.preference.ListPreference; -import android.preference.MultiSelectListPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.PreferenceGroup; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; import com.health.openscale.R; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -public class GeneralPreferences extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { +public class GeneralPreferences extends PreferenceFragmentCompat { @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.general_preferences, rootKey); - addPreferencesFromResource(R.xml.general_preferences); + setHasOptionsMenu(true); - initSummary(getPreferenceScreen()); - } - - private void initSummary(Preference p) { - if (p instanceof PreferenceGroup) { - PreferenceGroup pGrp = (PreferenceGroup) p; - for (int i = 0; i < pGrp.getPreferenceCount(); i++) { - initSummary(pGrp.getPreference(i)); + final ListPreference prefTheme = findPreference("app_theme"); + prefTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (newValue.equals("Dark")) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + } else { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + } + return true; } - } else { - updatePrefSummary(p); - } - } + }); - private void updatePrefSummary(Preference p) - { - if (p instanceof ListPreference) - { - ListPreference listPref = (ListPreference) p; - p.setSummary(listPref.getEntry()); - } - - if (p instanceof EditTextPreference) - { - EditTextPreference editTextPref = (EditTextPreference) p; - if (p.getTitle().toString().contains("assword")) - { - p.setSummary("******"); + final ListPreference prefLanguage = findPreference("language"); + prefLanguage.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + getActivity().recreate(); + return true; } - else - { - p.setSummary(editTextPref.getText()); - } - } - - if (p instanceof MultiSelectListPreference) - { - MultiSelectListPreference editMultiListPref = (MultiSelectListPreference) p; - - CharSequence[] entries = editMultiListPref.getEntries(); - CharSequence[] entryValues = editMultiListPref.getEntryValues(); - List currentEntries = new ArrayList<>(); - Set currentEntryValues = editMultiListPref.getValues(); - - for (int i = 0; i < entries.length; i++) - { - if (currentEntryValues.contains(entryValues[i].toString())) currentEntries.add(entries[i].toString()); - } - - p.setSummary(currentEntries.toString()); - } + }); } @Override - public void onResume() - { - super.onResume(); - getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); - } - - @Override - public void onPause() - { - getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); - super.onPause(); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - updatePrefSummary(findPreference(key)); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/GraphPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/GraphPreferences.java index e043147c..f96d3193 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/GraphPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/GraphPreferences.java @@ -15,23 +15,23 @@ */ package com.health.openscale.gui.preferences; -import android.content.SharedPreferences; -import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; -import android.preference.PreferenceFragment; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.preference.PreferenceFragmentCompat; import com.health.openscale.R; -import com.health.openscale.core.OpenScale; -public class GraphPreferences extends PreferenceFragment implements OnSharedPreferenceChangeListener { +public class GraphPreferences extends PreferenceFragmentCompat { private static final String PREFERENCE_KEY_REGRESSION_LINE_ORDER = "regressionLineOrder"; @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.graph_preferences, rootKey); - addPreferencesFromResource(R.xml.graph_preferences); + setHasOptionsMenu(true); // TODO replaced it with sliding average /*EditTextPreference regressionLineOrder = @@ -49,19 +49,7 @@ public class GraphPreferences extends PreferenceFragment implements OnSharedPref } @Override - public void onResume() { - super.onResume(); - getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); - } - - @Override - public void onPause() { - super.onPause(); - getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - OpenScale.getInstance().updateScaleData(); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MainPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MainPreferences.java new file mode 100644 index 00000000..633dd371 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MainPreferences.java @@ -0,0 +1,147 @@ +/* Copyright (C) 2020 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.preferences; + +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.util.TypedValue; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.core.content.ContextCompat; +import androidx.core.graphics.drawable.DrawableCompat; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceGroup; + +import com.health.openscale.R; + +public class MainPreferences extends PreferenceFragmentCompat { + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.main_preferences, rootKey); + + setHasOptionsMenu(true); + + TypedValue typedValue = new TypedValue(); + getContext().getTheme().resolveAttribute(R.attr.colorControlNormal, typedValue, true); + int color = ContextCompat.getColor(getContext(), typedValue.resourceId); + + tintIcons(getPreferenceScreen(), color); + + final Preference prefBackup = findPreference("backup"); + prefBackup.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavBackupPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefBluetooth = findPreference("bluetooth"); + prefBluetooth.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavBluetoothPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefGeneral = findPreference("general"); + prefGeneral.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavGeneralPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefGraph = findPreference("graph"); + prefGraph.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavGraphPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefMeasurements = findPreference("measurements"); + prefMeasurements.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavMeasurementPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefReminder = findPreference("reminder"); + prefReminder.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavReminderPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefUsers = findPreference("users"); + prefUsers.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavUserPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + + final Preference prefAbout = findPreference("about"); + prefAbout.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + NavDirections action = MainPreferencesDirections.actionNavMainPreferencesToNavAboutPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); + return true; + } + }); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } + + private static void tintIcons(Preference preference, int color) { + if (preference instanceof PreferenceGroup) { + PreferenceGroup group = ((PreferenceGroup) preference); + for (int i = 0; i < group.getPreferenceCount(); i++) { + tintIcons(group.getPreference(i), color); + } + } else { + Drawable icon = preference.getIcon(); + if (icon != null) { + DrawableCompat.setTint(icon, color); + } + } + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementDetailPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementDetailPreferences.java new file mode 100644 index 00000000..e1ce54c2 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementDetailPreferences.java @@ -0,0 +1,52 @@ +/* Copyright (C) 2014 olie.xdev +* Copyright (C) 2018 Erik Johansson +* +* 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.preferences; + +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceScreen; + +import com.health.openscale.R; +import com.health.openscale.gui.measurement.MeasurementView; + +public class MeasurementDetailPreferences extends PreferenceFragmentCompat { + + private static MeasurementView measurementView; + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.measurement_detail_preferences, rootKey); + + setHasOptionsMenu(true); + + final PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity()); + measurementView.prepareExtraPreferencesScreen(screen); + setPreferenceScreen(screen); + } + + public static void setMeasurementView(MeasurementView view) { + measurementView = view; + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java index 7e9d87d8..2a301710 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java @@ -17,42 +17,42 @@ package com.health.openscale.gui.preferences; import android.app.AlertDialog; -import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.content.SharedPreferences; -import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.database.DataSetObserver; -import android.graphics.Color; import android.graphics.Point; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceCategory; -import android.preference.PreferenceFragment; -import android.preference.PreferenceGroup; -import android.preference.PreferenceManager; -import android.preference.PreferenceScreen; -import android.util.TypedValue; import android.view.DragEvent; import android.view.GestureDetector; +import android.view.Menu; +import android.view.MenuInflater; import android.view.MotionEvent; import android.view.View; import android.widget.CompoundButton; -import android.widget.ListAdapter; +import android.widget.ImageView; import android.widget.Switch; +import android.widget.TextView; import android.widget.Toast; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; +import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceGroup; +import androidx.preference.PreferenceManager; +import androidx.preference.PreferenceViewHolder; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; -import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; +import com.health.openscale.gui.measurement.MeasurementView; +import com.health.openscale.gui.measurement.WeightMeasurementView; import java.util.ArrayList; import java.util.List; -public class MeasurementPreferences extends PreferenceFragment implements OnSharedPreferenceChangeListener { +public class MeasurementPreferences extends PreferenceFragmentCompat { private static final String PREFERENCE_KEY_DELETE_ALL = "deleteAll"; private static final String PREFERENCE_KEY_RESET_ORDER = "resetOrder"; private static final String PREFERENCE_KEY_MEASUREMENTS = "measurements"; @@ -60,10 +60,10 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar private PreferenceCategory measurementCategory; @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.measurement_preferences, rootKey); - addPreferencesFromResource(R.xml.measurement_preferences); + setHasOptionsMenu(true); Preference deleteAll = findPreference(PREFERENCE_KEY_DELETE_ALL); deleteAll.setOnPreferenceClickListener(new onClickListenerDeleteAll()); @@ -93,39 +93,11 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar for (MeasurementView measurement : measurementViews) { Preference preference = new MeasurementOrderPreference( getActivity(), measurementCategory, measurement); - preference.setKey(measurement.getSettings().getEnabledKey()); - preference.setDefaultValue(measurement.getSettings().isEnabledIgnoringDependencies()); - preference.setPersistent(true); - preference.setEnabled(measurement.getSettings().areDependenciesEnabled()); - - Drawable icon = measurement.getIcon(); - icon.setColorFilter(measurement.getForegroundColor(), PorterDuff.Mode.SRC_IN); - preference.setIcon(icon); - - preference.setTitle(measurement.getName()); - preference.setSummary(measurement.getPreferenceSummary()); measurementCategory.addPreference(preference); } } - @Override - public void onResume() { - super.onResume(); - getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); - } - - @Override - public void onPause() { - super.onPause(); - getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - OpenScale.getInstance().updateScaleData(); - } - private class onClickListenerDeleteAll implements Preference.OnPreferenceClickListener { @Override public boolean onPreferenceClick(Preference preference) { @@ -139,7 +111,7 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar OpenScale openScale = OpenScale.getInstance(); int selectedUserId = openScale.getSelectedScaleUserId(); - openScale.clearScaleData(selectedUserId); + openScale.clearScaleMeasurements(selectedUserId); Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.info_data_all_deleted), Toast.LENGTH_SHORT).show(); } @@ -165,7 +137,12 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar GestureDetector gestureDetector; View boundView; - Switch measurementSwitch; + ImageView iconView; + TextView textView; + TextView summaryView; + Switch switchView; + ImageView reorderView; + ImageView settingsView; MeasurementOrderPreference(Context context, PreferenceGroup parent, MeasurementView measurementView) { super(context); @@ -175,7 +152,7 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar gestureDetector = new GestureDetector(getContext(), this); gestureDetector.setIsLongpressEnabled(true); - setWidgetLayoutResource(R.layout.measurement_preferences_widget_layout); + setLayoutResource(R.layout.preference_measurement_order); } @Override @@ -184,44 +161,74 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar } @Override - protected void onBindView(View view) { - super.onBindView(view); - boundView = view; + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + boundView = holder.itemView; + + textView = (TextView)holder.findViewById(R.id.textView); + summaryView = (TextView)holder.findViewById(R.id.summaryView); + iconView = (ImageView)holder.findViewById(R.id.iconView); + switchView = (Switch)holder.findViewById(R.id.switchView); + reorderView = (ImageView)holder.findViewById(R.id.reorderView); + settingsView = (ImageView)holder.findViewById(R.id.settingsView); + + textView.setText(measurement.getName()); + summaryView.setText(measurement.getPreferenceSummary()); + Drawable icon = measurement.getIcon(); + icon.setColorFilter(measurement.getForegroundColor(), PorterDuff.Mode.SRC_IN); + iconView.setImageDrawable(icon); + + switchView.setChecked(measurement.getSettings().isEnabledIgnoringDependencies()); + + setKey(measurement.getSettings().getEnabledKey()); + setDefaultValue(measurement.getSettings().isEnabledIgnoringDependencies()); + setPersistent(true); + + setEnableView(measurement.getSettings().areDependenciesEnabled() && switchView.isChecked()); - measurementSwitch = view.findViewById(R.id.measurement_switch); if (measurement instanceof WeightMeasurementView) { - measurementSwitch.setVisibility(View.INVISIBLE); + switchView.setVisibility(View.INVISIBLE); + } else { + switchView.setVisibility(View.VISIBLE); } - else { - measurementSwitch.setChecked(measurement.getSettings().isEnabledIgnoringDependencies()); - measurementSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + switchView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (buttonView.isPressed()) { persistBoolean(isChecked); + setEnableView(isChecked); + for (int i = 0; i < getParent().getPreferenceCount(); ++i) { - MeasurementOrderPreference preference = - (MeasurementOrderPreference) getParent().getPreference(i); + MeasurementOrderPreference preference = (MeasurementOrderPreference) getParent().getPreference(i); preference.setEnabled(preference.measurement.getSettings().areDependenciesEnabled()); } } - }); - } + } + }); - if (!measurement.hasExtraPreferences()) { - view.findViewById(R.id.measurement_switch_separator).setVisibility(View.GONE); - } - - TypedValue outValue = new TypedValue(); - getActivity().getTheme().resolveAttribute(R.attr.selectableItemBackground, outValue, true); - boundView.setBackgroundResource(outValue.resourceId); - - view.setOnTouchListener(new View.OnTouchListener() { + boundView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } }); - view.setOnDragListener(new onDragListener()); + + boundView.setOnDragListener(new onDragListener()); + } + + private void setEnableView(boolean status) { + if(status) { + textView.setEnabled(true); + summaryView.setEnabled(true); + reorderView.setEnabled(true); + settingsView.setEnabled(true); + } else { + textView.setEnabled(false); + summaryView.setEnabled(false); + reorderView.setEnabled(false); + settingsView.setEnabled(false); + } } @Override @@ -239,8 +246,8 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar boundView.setPressed(false); if (!measurement.hasExtraPreferences()) { - if (measurementSwitch.getVisibility() == View.VISIBLE) { - measurementSwitch.toggle(); + if (switchView.getVisibility() == View.VISIBLE) { + switchView.toggle(); } return true; } @@ -250,40 +257,11 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar return true; } - final PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity()); + // HACK to pass an object using navigation controller + MeasurementDetailPreferences.setMeasurementView(measurement); - // Register as an observer so that the loop to getItem() below will find the new - // preference screen added at the end. The add is done on another thread so we must - // wait for it to complete. - final ListAdapter adapter = getPreferenceScreen().getRootAdapter(); - adapter.registerDataSetObserver(new DataSetObserver() { - @Override - public void onChanged() { - adapter.unregisterDataSetObserver(this); - - // Simulate a click to have the preference screen open - for (int i = adapter.getCount() - 1; i >= 0; --i) { - if (adapter.getItem(i) == screen) { - getPreferenceScreen().onItemClick(null, null, i, 0); - break; - } - } - - // Remove the preference when the dialog is dismissed - Dialog dialog = screen.getDialog(); - dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - screen.onDismiss(dialog); - getPreferenceScreen().removePreference(screen); - setSummary(measurement.getPreferenceSummary()); - } - }); - } - }); - - getPreferenceScreen().addPreference(screen); - measurement.prepareExtraPreferencesScreen(screen); + NavDirections action = MeasurementPreferencesDirections.actionNavMeasurementPreferencesToNavMeasurementDetailPreferences(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); return true; } @@ -323,84 +301,44 @@ public class MeasurementPreferences extends PreferenceFragment implements OnShar } private class onDragListener implements View.OnDragListener { - Drawable background = null; - // background may be set to null, thus the extra boolean - boolean hasBackground = false; - - private MeasurementOrderPreference castLocalState(DragEvent event) { - return (MeasurementOrderPreference) event.getLocalState(); - } - - private boolean isDraggedView(View view, DragEvent event) { - return castLocalState(event).boundView == view; - } - - private void setTemporaryBackgroundColor(View view, int color) { - if (!hasBackground) { - background = view.getBackground(); - hasBackground = true; - view.setBackgroundColor(color); - } - } - - private void restoreBackground(View view) { - if (hasBackground) { - view.setBackground(background); - background = null; - hasBackground = false; - } - } - @Override public boolean onDrag(View view, DragEvent event) { switch (event.getAction()) { - case DragEvent.ACTION_DRAG_STARTED: - break; - case DragEvent.ACTION_DRAG_ENTERED: - if (!isDraggedView(view, event)) { - setTemporaryBackgroundColor(view, Color.LTGRAY); - } - break; - case DragEvent.ACTION_DRAG_EXITED: - if (!isDraggedView(view, event)) { - restoreBackground(view); - } - break; case DragEvent.ACTION_DROP: - MeasurementOrderPreference draggedPref = castLocalState(event); - PreferenceGroup group = draggedPref.getParent(); - - ArrayList preferences = new ArrayList<>(); - for (int i = 0; i < group.getPreferenceCount(); ++i) { - MeasurementOrderPreference pref = (MeasurementOrderPreference) group.getPreference(i); - // Add all preferences except the dragged one - if (pref != draggedPref) { - preferences.add(pref); - } - // When we find the view that is the drop target use add(index, ...). - // This will add the dragged preference before the drop if dragged upwards, - // and after if dragged downwards. - if (pref.boundView == view) { - preferences.add(i, draggedPref); - } - } + MeasurementOrderPreference draggedPref = (MeasurementOrderPreference) event.getLocalState(); ArrayList measurementViews = new ArrayList<>(); - // Re-add all preferences in the new order - group.removeAll(); - for (MeasurementOrderPreference p : preferences) { - p.setOrder(DEFAULT_ORDER); - group.addPreference(p); - measurementViews.add(p.measurement); + for (int i = 0; i < measurementCategory.getPreferenceCount(); i++) { + MeasurementOrderPreference pref = (MeasurementOrderPreference) measurementCategory.getPreference(i); + + if (pref != draggedPref) { + measurementViews.add(pref.measurement); + } + + if (pref.boundView == view) { + measurementViews.add(draggedPref.measurement); + } } + + measurementCategory.removeAll(); + + for (MeasurementView measurement : measurementViews) { + Preference preference = new MeasurementOrderPreference( + getActivity(), measurementCategory, measurement); + + measurementCategory.addPreference(preference); + } + MeasurementView.saveMeasurementViewsOrder(getContext(), measurementViews); break; - case DragEvent.ACTION_DRAG_ENDED: - restoreBackground(view); - break; } return true; } } } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java index 21f82958..925ad636 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java @@ -19,23 +19,20 @@ import android.content.ComponentName; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.EditTextPreference; -import android.preference.ListPreference; -import android.preference.MultiSelectListPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.PreferenceGroup; +import android.view.Menu; +import android.view.MenuInflater; + +import androidx.fragment.app.DialogFragment; +import androidx.preference.CheckBoxPreference; +import androidx.preference.MultiSelectListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; import com.health.openscale.R; import com.health.openscale.core.alarm.AlarmHandler; import com.health.openscale.core.alarm.ReminderBootReceiver; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -public class ReminderPreferences extends PreferenceFragment +public class ReminderPreferences extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { public static final String PREFERENCE_KEY_REMINDER_NOTIFY_TEXT = "reminderNotifyText"; @@ -46,31 +43,38 @@ public class ReminderPreferences extends PreferenceFragment private CheckBoxPreference reminderEnable; @Override - public void onCreate(Bundle savedInstanceState) - { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.reminder_preferences, rootKey); - addPreferencesFromResource(R.xml.reminder_preferences); + setHasOptionsMenu(true); reminderEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_REMINDER_ENABLE); + final MultiSelectListPreference prefDays = findPreference("reminderWeekdays"); + + prefDays.setSummaryProvider(new Preference.SummaryProvider() { + @Override + public CharSequence provideSummary(MultiSelectListPreference preference) { + return preference.getValues().toString(); + } + }); + updateAlarmPreferences(); - initSummary(getPreferenceScreen()); } - private void initSummary(Preference p) - { - if (p instanceof PreferenceGroup) - { - PreferenceGroup pGrp = (PreferenceGroup) p; - for (int i = 0; i < pGrp.getPreferenceCount(); i++) - { - initSummary(pGrp.getPreference(i)); - } + @Override + public void onDisplayPreferenceDialog(Preference preference) { + DialogFragment dialogFragment = null; + + if (preference instanceof TimePreference) { + dialogFragment = TimePreferenceDialog.newInstance(preference.getKey()); } - else - { - updatePrefSummary(p); + + if (dialogFragment != null) { + dialogFragment.setTargetFragment(this, 0); + dialogFragment.show(getParentFragmentManager(), "timePreferenceDialog"); + } else { + super.onDisplayPreferenceDialog(preference); } } @@ -91,7 +95,6 @@ public class ReminderPreferences extends PreferenceFragment @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - updatePrefSummary(findPreference(key)); updateAlarmPreferences(); } @@ -115,43 +118,9 @@ public class ReminderPreferences extends PreferenceFragment } } - private void updatePrefSummary(Preference p) - { - if (p instanceof ListPreference) - { - ListPreference listPref = (ListPreference) p; - p.setSummary(listPref.getEntry()); - } - - if (p instanceof EditTextPreference) - { - EditTextPreference editTextPref = (EditTextPreference) p; - if (p.getTitle().toString().contains("assword")) - { - p.setSummary("******"); - } - else - { - p.setSummary(editTextPref.getText()); - } - } - - if (p instanceof MultiSelectListPreference) - { - MultiSelectListPreference editMultiListPref = (MultiSelectListPreference) p; - - CharSequence[] entries = editMultiListPref.getEntries(); - CharSequence[] entryValues = editMultiListPref.getEntryValues(); - List currentEntries = new ArrayList<>(); - Set currentEntryValues = editMultiListPref.getValues(); - - for (int i = 0; i < entries.length; i++) - { - if (currentEntryValues.contains(entryValues[i].toString())) currentEntries.add(entries[i].toString()); - } - - p.setSummary(currentEntries.toString()); - } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreference.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreference.java new file mode 100644 index 00000000..e4539043 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreference.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2020 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.preferences; + +import android.content.Context; +import android.content.res.TypedArray; +import android.text.format.DateFormat; +import android.util.AttributeSet; + +import androidx.preference.DialogPreference; + +import com.health.openscale.R; + +import java.util.Calendar; + +public class TimePreference extends DialogPreference { + + private long timeInMillis; + + public TimePreference(Context context) { + this(context, null); + } + + public TimePreference(Context context, AttributeSet attrs) { + this(context, attrs, R.attr.preferenceStyle); + } + + public TimePreference(Context context, AttributeSet attrs, int defStyleAttr) { + this(context, attrs, defStyleAttr, defStyleAttr); + } + + public TimePreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + + } + + public long getTimeInMillis() { + return timeInMillis; + } + + public void setTimeInMillis(long timeInMillis) { + this.timeInMillis = timeInMillis; + + persistLong(this.timeInMillis); + } + + @Override + protected Object onGetDefaultValue(TypedArray a, int index) { + Calendar defaultTime = Calendar.getInstance(); + defaultTime.set(Calendar.HOUR_OF_DAY, 16); + defaultTime.set(Calendar.MINUTE, 0); + + return defaultTime.getTimeInMillis(); + } + + @Override + public int getDialogLayoutResource() { + return R.layout.preference_timepicker; + } + + + @Override + protected void onSetInitialValue(boolean restore, Object defaultValue) { + setTimeInMillis(restore ? getPersistedLong(timeInMillis) : (long) defaultValue); + } + + @Override + public CharSequence getSummary() { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeInMillis); + + return (DateFormat.getTimeFormat(getContext()).format(calendar.getTime())); + } + +} \ No newline at end of file diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreferenceDialog.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreferenceDialog.java index afff6987..039b35f6 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreferenceDialog.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/TimePreferenceDialog.java @@ -1,112 +1,100 @@ -/* Copyright (C) 2014 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 -*/ +/* + * Copyright (C) 2020 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.preferences; -import android.content.Context; -import android.content.res.TypedArray; -import android.preference.DialogPreference; +import android.os.Build; +import android.os.Bundle; import android.text.format.DateFormat; -import android.util.AttributeSet; import android.view.View; import android.widget.TimePicker; +import androidx.preference.DialogPreference; +import androidx.preference.PreferenceDialogFragmentCompat; + import com.health.openscale.R; import java.util.Calendar; -public class TimePreferenceDialog extends DialogPreference { +public class TimePreferenceDialog extends PreferenceDialogFragmentCompat { private Calendar calendar; - private TimePicker picker = null; + private TimePicker timePicker; - public TimePreferenceDialog(Context context) { - this(context, null); + public static TimePreferenceDialog newInstance(String key) { + final TimePreferenceDialog fragment = new TimePreferenceDialog(); + final Bundle b = new Bundle(1); + b.putString(ARG_KEY, key); + fragment.setArguments(b); + + return fragment; } - public TimePreferenceDialog(Context context, AttributeSet attrs) { - this(context, attrs, android.R.attr.dialogPreferenceStyle); - } + @Override + protected void onBindDialogView(View view) { + super.onBindDialogView(view); - public TimePreferenceDialog(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - setPositiveButtonText(R.string.label_ok); - setNegativeButtonText(R.string.label_cancel); - setDialogTitle(null); + timePicker = view.findViewById(R.id.timePicker); calendar = Calendar.getInstance(); + + Long timeInMillis = null; + DialogPreference preference = getPreference(); + + if (preference instanceof TimePreference) { + TimePreference timePreference = (TimePreference) preference; + timeInMillis = timePreference.getTimeInMillis(); + } + + if (timeInMillis != null) { + calendar.setTimeInMillis(timeInMillis); + boolean is24hour = DateFormat.is24HourFormat(getContext()); + + timePicker.setIs24HourView(is24hour); + timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY)); + timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE)); + } } @Override - protected View onCreateDialogView() { - picker = new TimePicker(getContext()); - picker.setIs24HourView(android.text.format.DateFormat.is24HourFormat(getContext())); - return picker; - } - - @Override - protected void onBindDialogView(View v) { - super.onBindDialogView(v); - picker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY)); - picker.setCurrentMinute(calendar.get(Calendar.MINUTE)); - } - - @Override - protected void onDialogClosed(boolean positiveResult) { - super.onDialogClosed(positiveResult); - + public void onDialogClosed(boolean positiveResult) { if (positiveResult) { - calendar.set(Calendar.HOUR_OF_DAY, picker.getCurrentHour()); - calendar.set(Calendar.MINUTE, picker.getCurrentMinute()); + int hours; + int minutes; - setSummary(getSummary()); - if (callChangeListener(calendar.getTimeInMillis())) { - persistLong(calendar.getTimeInMillis()); - notifyChanged(); - } - } - } - - @Override - protected Object onGetDefaultValue(TypedArray a, int index) { - return (a.getString(index)); - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - - if (restoreValue) { - if (defaultValue == null) { - calendar.setTimeInMillis(getPersistedLong(System.currentTimeMillis())); + if (Build.VERSION.SDK_INT >= 23) { + hours = timePicker.getHour(); + minutes = timePicker.getMinute(); } else { - calendar.setTimeInMillis(Long.parseLong(getPersistedString((String) defaultValue))); + hours = timePicker.getCurrentHour(); + minutes = timePicker.getCurrentMinute(); } - } else { - if (defaultValue == null) { - calendar.setTimeInMillis(System.currentTimeMillis()); - } else { - calendar.setTimeInMillis(Long.parseLong((String) defaultValue)); - } - } - setSummary(getSummary()); - } - @Override - public CharSequence getSummary() { - if (calendar == null) { - return null; + calendar.set(Calendar.HOUR_OF_DAY, hours); + calendar.set(Calendar.MINUTE, minutes); + + long timeInMillis = calendar.getTimeInMillis(); + + DialogPreference preference = getPreference(); + if (preference instanceof TimePreference) { + TimePreference timePreference = ((TimePreference) preference); + if (timePreference.callChangeListener(timeInMillis)) { + timePreference.setTimeInMillis(timeInMillis); + timePreference.setSummary(DateFormat.getTimeFormat(getContext()).format(calendar.getTime())); + } + } } - return DateFormat.getTimeFormat(getContext()).format(calendar.getTime()); } -} \ No newline at end of file +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/UserSettingsFragment.java similarity index 83% rename from android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java rename to android_app/app/src/main/java/com/health/openscale/gui/preferences/UserSettingsFragment.java index abcd142e..e1346247 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/UserSettingsFragment.java @@ -13,28 +13,31 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.activities; +package com.health.openscale.gui.preferences; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.content.Context; import android.content.DialogInterface; -import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; -import androidx.core.graphics.drawable.DrawableCompat; -import androidx.appcompat.widget.Toolbar; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.DatePicker; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.Spinner; import android.widget.Toast; +import androidx.core.graphics.drawable.DrawableCompat; +import androidx.fragment.app.Fragment; +import androidx.navigation.Navigation; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleUser; @@ -45,12 +48,10 @@ import java.util.Calendar; import java.util.Date; import java.util.List; -public class UserSettingsActivity extends BaseAppCompatActivity { - public static final String EXTRA_ID = "id"; - public static final String EXTRA_MODE = "mode"; +public class UserSettingsFragment extends Fragment { + public enum USER_SETTING_MODE {ADD, EDIT}; - public static final int ADD_USER_REQUEST = 0; - public static final int EDIT_USER_REQUEST = 1; + private USER_SETTING_MODE mode = USER_SETTING_MODE.ADD; private Date birthday = new Date(); private Date goal_date = new Date(); @@ -71,29 +72,29 @@ public class UserSettingsActivity extends BaseAppCompatActivity { private Context context; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.fragment_usersettings, container, false); + context = getContext(); - setContentView(R.layout.activity_usersettings); - context = this; + setHasOptionsMenu(true); - Toolbar toolbar = findViewById(R.id.userEntryToolbar); - setSupportActionBar(toolbar); + if (getArguments() != null) { + mode = UserSettingsFragmentArgs.fromBundle(getArguments()).getMode(); + } else { + mode = USER_SETTING_MODE.ADD; + } - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setTitle(R.string.label_add_user); + txtUserName = root.findViewById(R.id.txtUserName); + txtBodyHeight = root.findViewById(R.id.txtBodyHeight); + radioScaleUnit = root.findViewById(R.id.groupScaleUnit); + radioGender = root.findViewById(R.id.groupGender); + radioMeasurementUnit = root.findViewById(R.id.groupMeasureUnit); + spinnerActivityLevel = root.findViewById(R.id.spinnerActivityLevel); + txtInitialWeight = root.findViewById(R.id.txtInitialWeight); + txtGoalWeight = root.findViewById(R.id.txtGoalWeight); - txtUserName = findViewById(R.id.txtUserName); - txtBodyHeight = findViewById(R.id.txtBodyHeight); - radioScaleUnit = findViewById(R.id.groupScaleUnit); - radioGender = findViewById(R.id.groupGender); - radioMeasurementUnit = findViewById(R.id.groupMeasureUnit); - spinnerActivityLevel = findViewById(R.id.spinnerActivityLevel); - txtInitialWeight = findViewById(R.id.txtInitialWeight); - txtGoalWeight = findViewById(R.id.txtGoalWeight); - - txtBirthday = findViewById(R.id.txtBirthday); - txtGoalDate = findViewById(R.id.txtGoalDate); + txtBirthday = root.findViewById(R.id.txtBirthday); + txtGoalDate = root.findViewById(R.id.txtGoalDate); txtBodyHeight.setHint(getResources().getString(R.string.info_enter_value_in) + " " + Converters.MeasureUnit.CM.toString()); txtInitialWeight.setHint(getResources().getString(R.string.info_enter_value_in) + " " + Converters.WeightUnit.KG.toString()); @@ -175,11 +176,13 @@ public class UserSettingsActivity extends BaseAppCompatActivity { txtBodyHeight.setHint(getResources().getString(R.string.info_enter_value_in) + " " + measure_unit.toString()); } }); + + return root; } @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); inflater.inflate(R.menu.userentry_menu, menu); // Apply a tint to all icons in the toolbar @@ -203,15 +206,17 @@ public class UserSettingsActivity extends BaseAppCompatActivity { MenuItem deleteButton = menu.findItem(R.id.deleteButton); - if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) { - editMode(); - deleteButton.setVisible(true); - } - else { - deleteButton.setVisible(false); + switch (mode) { + case ADD: + deleteButton.setVisible(false); + break; + case EDIT: + editMode(); + deleteButton.setVisible(true); + break; } - return super.onCreateOptionsMenu(menu); + super.onCreateOptionsMenu(menu, inflater); } @Override @@ -219,22 +224,18 @@ public class UserSettingsActivity extends BaseAppCompatActivity { switch (item.getItemId()) { case R.id.saveButton: if (saveUserData()) { - Intent returnIntent = new Intent(); - setResult(RESULT_OK, returnIntent); - - finish(); + if (getActivity().findViewById(R.id.nav_host_fragment) != null){ + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).getPreviousBackStackEntry().getSavedStateHandle().set("update", true); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigateUp(); + } else { + getActivity().finish(); + } } return true; case R.id.deleteButton: deleteUser(); return true; - - // Override the default behaviour in order to return to the correct fragment - // (e.g. the table view) and not always go to the overview. - case android.R.id.home: - onBackPressed(); - return true; } return super.onOptionsItemSelected(item); @@ -242,14 +243,12 @@ public class UserSettingsActivity extends BaseAppCompatActivity { private void editMode() { - int id = getIntent().getExtras().getInt(EXTRA_ID); + int id = UserSettingsFragmentArgs.fromBundle(getArguments()).getUserId(); OpenScale openScale = OpenScale.getInstance(); ScaleUser scaleUser = openScale.getScaleUser(id); - getSupportActionBar().setTitle(scaleUser.getUserName()); - birthday = scaleUser.getBirthday(); goal_date = scaleUser.getGoalDate(); @@ -354,12 +353,12 @@ public class UserSettingsActivity extends BaseAppCompatActivity { deleteAllDialog.setPositiveButton(getResources().getString(R.string.label_yes), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - int userId = getIntent().getExtras().getInt(EXTRA_ID); + int userId = UserSettingsFragmentArgs.fromBundle(getArguments()).getUserId(); OpenScale openScale = OpenScale.getInstance(); boolean isSelected = openScale.getSelectedScaleUserId() == userId; - openScale.clearScaleData(userId); + openScale.clearScaleMeasurements(userId); openScale.deleteScaleUser(userId); if (isSelected) { @@ -373,12 +372,8 @@ public class UserSettingsActivity extends BaseAppCompatActivity { openScale.selectScaleUser(lastUserId); } - openScale.updateScaleData(); - - Intent returnIntent = new Intent(); - setResult(RESULT_OK, returnIntent); - - finish(); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).getPreviousBackStackEntry().getSavedStateHandle().set("update", true); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigateUp(); } }); @@ -451,17 +446,18 @@ public class UserSettingsActivity extends BaseAppCompatActivity { scaleUser.setGoalWeight(Converters.toKilogram(goal_weight, scale_unit)); scaleUser.setGoalDate(goal_date); - if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) { - int id = getIntent().getExtras().getInt(EXTRA_ID); - scaleUser.setId(id); - openScale.updateScaleUser(scaleUser); - } else { - int id = openScale.addScaleUser(scaleUser); - scaleUser.setId(id); + switch (mode) { + case ADD: + int id = openScale.addScaleUser(scaleUser); + scaleUser.setId(id); + break; + case EDIT: + scaleUser.setId(UserSettingsFragmentArgs.fromBundle(getArguments()).getUserId()); + openScale.updateScaleUser(scaleUser); + break; } openScale.selectScaleUser(scaleUser.getId()); - openScale.updateScaleData(); return true; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/UsersPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/UsersPreferences.java index 6bb98b24..450fd51e 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/UsersPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/UsersPreferences.java @@ -17,41 +17,49 @@ package com.health.openscale.gui.preferences; import android.content.Context; -import android.content.Intent; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceCategory; -import android.preference.PreferenceFragment; import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.RadioButton; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.Observer; +import androidx.navigation.Navigation; +import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceViewHolder; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.UserSettingsActivity; -import static android.app.Activity.RESULT_OK; - -public class UsersPreferences extends PreferenceFragment { +public class UsersPreferences extends PreferenceFragmentCompat { private static final String PREFERENCE_KEY_ADD_USER = "addUser"; private static final String PREFERENCE_KEY_USERS = "users"; private PreferenceCategory users; @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.users_preferences, rootKey); - addPreferencesFromResource(R.xml.users_preferences); + setHasOptionsMenu(true); Preference addUser = findPreference(PREFERENCE_KEY_ADD_USER); addUser.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - Intent intent = new Intent(preference.getContext(), UserSettingsActivity.class); - intent.putExtra(UserSettingsActivity.EXTRA_MODE, UserSettingsActivity.ADD_USER_REQUEST); - startActivityForResult(intent, UserSettingsActivity.ADD_USER_REQUEST); + UsersPreferencesDirections.ActionNavUserPreferencesToNavUsersettings action = UsersPreferencesDirections.actionNavUserPreferencesToNavUsersettings(); + action.setMode(UserSettingsFragment.USER_SETTING_MODE.ADD); + action.setTitle(getString(R.string.label_add_user)); + + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); return true; } }); @@ -60,6 +68,24 @@ public class UsersPreferences extends PreferenceFragment { updateUserPreferences(); } + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + + View view = super.onCreateView(inflater, container, savedInstanceState); + + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).getCurrentBackStackEntry().getSavedStateHandle().getLiveData("update", false).observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(Boolean aBoolean) { + if (aBoolean) { + updateUserPreferences(); + } + } + }); + + return view; + } + private void updateUserPreferences() { users.removeAll(); for (ScaleUser scaleUser : OpenScale.getInstance().getScaleUserList()) { @@ -67,17 +93,6 @@ public class UsersPreferences extends PreferenceFragment { } } - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode != RESULT_OK) { - return; - } - if (requestCode == UserSettingsActivity.ADD_USER_REQUEST - || requestCode == UserSettingsActivity.EDIT_USER_REQUEST) { - updateUserPreferences(); - } - } - class UserPreference extends Preference { PreferenceCategory preferenceCategory; ScaleUser scaleUser; @@ -94,24 +109,25 @@ public class UsersPreferences extends PreferenceFragment { } @Override - protected void onBindView(View view) { - super.onBindView(view); + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); - view.setOnClickListener(new View.OnClickListener() { + holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(getActivity(), UserSettingsActivity.class); - intent.putExtra(UserSettingsActivity.EXTRA_MODE, UserSettingsActivity.EDIT_USER_REQUEST); - intent.putExtra(UserSettingsActivity.EXTRA_ID, scaleUser.getId()); - startActivityForResult(intent, UserSettingsActivity.EDIT_USER_REQUEST); + UsersPreferencesDirections.ActionNavUserPreferencesToNavUsersettings action = UsersPreferencesDirections.actionNavUserPreferencesToNavUsersettings(); + action.setMode(UserSettingsFragment.USER_SETTING_MODE.EDIT); + action.setTitle(scaleUser.getUserName()); + action.setUserId(scaleUser.getId()); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); TypedValue outValue = new TypedValue(); getActivity().getTheme().resolveAttribute(R.attr.selectableItemBackground, outValue, true); - view.setBackgroundResource(outValue.resourceId); + holder.itemView.setBackgroundResource(outValue.resourceId); - radioButton = view.findViewById(R.id.user_radio_button); + radioButton = holder.itemView.findViewById(R.id.user_radio_button); radioButton.setChecked(scaleUser.getId() == OpenScale.getInstance().getSelectedScaleUserId()); radioButton.setOnClickListener(new View.OnClickListener() { @@ -132,4 +148,9 @@ public class UsersPreferences extends PreferenceFragment { radioButton.setChecked(checked); } } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/AppIntroActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/slides/AppIntroActivity.java similarity index 70% rename from android_app/app/src/main/java/com/health/openscale/gui/activities/AppIntroActivity.java rename to android_app/app/src/main/java/com/health/openscale/gui/slides/AppIntroActivity.java index 439bd574..09a9d8df 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/AppIntroActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/slides/AppIntroActivity.java @@ -13,24 +13,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.activities; +package com.health.openscale.gui.slides; -import android.content.Intent; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import com.github.paolorotolo.appintro.AppIntro; +import com.github.appintro.AppIntro; import com.health.openscale.R; -import com.health.openscale.core.OpenScale; -import com.health.openscale.gui.slides.BluetoothIntroSlide; -import com.health.openscale.gui.slides.MetricsIntroSlide; -import com.health.openscale.gui.slides.OpenSourceIntroSlide; -import com.health.openscale.gui.slides.PrivacyIntroSlide; -import com.health.openscale.gui.slides.SupportIntroSlide; -import com.health.openscale.gui.slides.UserIntroSlide; -import com.health.openscale.gui.slides.WelcomeIntroSlide; public class AppIntroActivity extends AppIntro { @Override @@ -54,14 +45,12 @@ public class AppIntroActivity extends AppIntro { public void onSkipPressed(Fragment currentFragment) { super.onSkipPressed(currentFragment); finish(); - checkUserCreation(); } @Override public void onDonePressed(Fragment currentFragment) { super.onDonePressed(currentFragment); finish(); - checkUserCreation(); } @Override @@ -76,12 +65,4 @@ public class AppIntroActivity extends AppIntro { setWizardMode(true); } } - - private void checkUserCreation() { - if (OpenScale.getInstance().getSelectedScaleUserId() == -1) { - Intent intent = new Intent(this, UserSettingsActivity.class); - intent.putExtra(UserSettingsActivity.EXTRA_MODE, UserSettingsActivity.ADD_USER_REQUEST); - startActivity(intent); - } - } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/slides/BluetoothIntroSlide.java b/android_app/app/src/main/java/com/health/openscale/gui/slides/BluetoothIntroSlide.java index e09ec3a2..63704c40 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/slides/BluetoothIntroSlide.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/slides/BluetoothIntroSlide.java @@ -29,7 +29,7 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.health.openscale.R; -import com.health.openscale.gui.activities.BluetoothSettingsActivity; +import com.health.openscale.gui.preferences.BluetoothSettingsFragment; public class BluetoothIntroSlide extends Fragment { private static final String ARG_LAYOUT_RES_ID = "layoutResId"; @@ -70,8 +70,9 @@ public class BluetoothIntroSlide extends Fragment { btnSearchScale.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Intent intent = new Intent(getContext(), BluetoothSettingsActivity.class); - startActivityForResult(intent, BluetoothSettingsActivity.GET_SCALE_REQUEST); + Intent intent = new Intent(getContext(), SlideToNavigationAdapter.class); + intent.putExtra(SlideToNavigationAdapter.EXTRA_MODE, SlideToNavigationAdapter.EXTRA_BLUETOOTH_SETTING_MODE); + startActivityForResult(intent, 100); } }); @@ -80,9 +81,7 @@ public class BluetoothIntroSlide extends Fragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == BluetoothSettingsActivity.GET_SCALE_REQUEST) { - txtFoundDevice.setText(getCurrentDeviceName()); - } + txtFoundDevice.setText(getCurrentDeviceName()); } private final String formatDeviceName(String name, String address) { @@ -95,7 +94,7 @@ public class BluetoothIntroSlide extends Fragment { private String getCurrentDeviceName() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); return formatDeviceName( - prefs.getString(BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""), - prefs.getString(BluetoothSettingsActivity.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, "")); + prefs.getString(BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_DEVICE_NAME, ""), + prefs.getString(BluetoothSettingsFragment.PREFERENCE_KEY_BLUETOOTH_HW_ADDRESS, "")); } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/slides/SlideToNavigationAdapter.java b/android_app/app/src/main/java/com/health/openscale/gui/slides/SlideToNavigationAdapter.java new file mode 100644 index 00000000..2be129b5 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/slides/SlideToNavigationAdapter.java @@ -0,0 +1,73 @@ +/* Copyright (C) 2020 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.slides; + +import android.os.Bundle; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; + +import com.health.openscale.R; +import com.health.openscale.SlideNavigationDirections; + +// TODO HACK to access from AppIntro activity to MainActivity fragments until AppIntro support native Androidx navigation component +public class SlideToNavigationAdapter extends AppCompatActivity { + public static String EXTRA_MODE = "mode"; + public static final int EXTRA_USER_SETTING_MODE = 100; + public static final int EXTRA_BLUETOOTH_SETTING_MODE = 200; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_slidetonavigation); + + // Set a Toolbar to replace the ActionBar. + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + int mode = getIntent().getExtras().getInt(EXTRA_MODE); + + NavDirections action = null; + + switch (mode) { + case EXTRA_USER_SETTING_MODE: + action = SlideNavigationDirections.actionNavSlideNavigationToNavUsersettings(); + setTitle(R.string.label_add_user); + break; + case EXTRA_BLUETOOTH_SETTING_MODE: + action = SlideNavigationDirections.actionNavSlideNavigationToNavBluetoothsettings(); + setTitle(R.string.label_bluetooth_title); + break; + } + + if (action != null) { + Navigation.findNavController(this, R.id.nav_slide_navigation).navigate(action); + } + } +} diff --git a/android_app/app/src/main/java/com/health/openscale/gui/slides/UserIntroSlide.java b/android_app/app/src/main/java/com/health/openscale/gui/slides/UserIntroSlide.java index 4cef57ec..8fef6747 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/slides/UserIntroSlide.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/slides/UserIntroSlide.java @@ -33,7 +33,6 @@ import androidx.fragment.app.Fragment; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.UserSettingsActivity; import java.util.List; @@ -83,8 +82,8 @@ public class UserIntroSlide extends Fragment{ @Override public void onClick(View view) { - Intent intent = new Intent(getContext(), UserSettingsActivity.class); - intent.putExtra(UserSettingsActivity.EXTRA_MODE, UserSettingsActivity.ADD_USER_REQUEST); + Intent intent = new Intent(getContext(), SlideToNavigationAdapter.class); + intent.putExtra(SlideToNavigationAdapter.EXTRA_MODE, SlideToNavigationAdapter.EXTRA_USER_SETTING_MODE); startActivityForResult(intent, 100); } } @@ -96,6 +95,7 @@ public class UserIntroSlide extends Fragment{ updateTableUsers(); } + private void updateTableUsers() { tblUsers.removeAllViews(); tblUsers.setStretchAllColumns(true); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java similarity index 88% rename from android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java rename to android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java index cbf562a9..533bea0b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/statistic/StatisticsFragment.java @@ -14,7 +14,7 @@ * along with this program. If not, see */ -package com.health.openscale.gui.fragments; +package com.health.openscale.gui.statistic; import android.os.Bundle; import android.preference.PreferenceManager; @@ -22,10 +22,10 @@ import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; import android.widget.TextView; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; import com.github.mikephil.charting.charts.RadarChart; import com.github.mikephil.charting.components.Legend; @@ -42,24 +42,24 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.Converters; import com.health.openscale.core.utils.DateTimeHelpers; +import com.health.openscale.gui.measurement.BMIMeasurementView; +import com.health.openscale.gui.measurement.BoneMeasurementView; +import com.health.openscale.gui.measurement.ChartMarkerView; +import com.health.openscale.gui.measurement.FatMeasurementView; +import com.health.openscale.gui.measurement.FloatMeasurementView; +import com.health.openscale.gui.measurement.MeasurementView; +import com.health.openscale.gui.measurement.MeasurementViewSettings; +import com.health.openscale.gui.measurement.MuscleMeasurementView; +import com.health.openscale.gui.measurement.WaterMeasurementView; +import com.health.openscale.gui.measurement.WeightMeasurementView; import com.health.openscale.gui.utils.ColorUtil; -import com.health.openscale.gui.views.BMIMeasurementView; -import com.health.openscale.gui.views.BoneMeasurementView; -import com.health.openscale.gui.views.ChartMarkerView; -import com.health.openscale.gui.views.FatMeasurementView; -import com.health.openscale.gui.views.FloatMeasurementView; -import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.MeasurementViewSettings; -import com.health.openscale.gui.views.MuscleMeasurementView; -import com.health.openscale.gui.views.WaterMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; import java.text.DateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; -public class StatisticsFragment extends Fragment implements FragmentUpdateListener { +public class StatisticsFragment extends Fragment { private View statisticsView; @@ -83,24 +83,19 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { statisticsView = inflater.inflate(R.layout.fragment_statistics, container, false); - for (int id : new int[]{R.id.imageGoalWeight, R.id.imageGoalDiff, R.id.imageDayLeft}) { - ImageView image = statisticsView.findViewById(id); - image.setColorFilter(ColorUtil.getTextColor(statisticsView.getContext())); - } - txtGoalWeight = statisticsView.findViewById(R.id.txtGoalWeight); - txtGoalWeight.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtGoalWeight.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); txtGoalDiff = statisticsView.findViewById(R.id.txtGoalDiff); - txtGoalDiff.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtGoalDiff.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); txtGoalDayLeft = statisticsView.findViewById(R.id.txtGoalDayLeft); - txtGoalDayLeft.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtGoalDayLeft.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); txtLabelGoalWeight = statisticsView.findViewById(R.id.txtLabelGoalWeight); - txtLabelGoalWeight.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtLabelGoalWeight.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); txtLabelGoalDiff = statisticsView.findViewById(R.id.txtLabelGoalDiff); - txtLabelGoalDiff.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtLabelGoalDiff.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); txtLabelDayLeft = statisticsView.findViewById(R.id.txtLabelDayLeft); - txtLabelDayLeft.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + txtLabelDayLeft.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); viewMeasurementsStatistics = new ArrayList<>(); @@ -122,13 +117,13 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen MarkerView mv = new ChartMarkerView(statisticsView.getContext(), R.layout.chart_markerview); radarChartWeek = statisticsView.findViewById(R.id.radarPastWeek); - radarChartWeek.getXAxis().setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + radarChartWeek.getXAxis().setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); radarChartWeek.getDescription().setEnabled(false); radarChartWeek.getYAxis().setEnabled(false); radarChartWeek.setExtraTopOffset(10); radarChartWeek.setRotationEnabled(false); Legend weekLegend = radarChartWeek.getLegend(); - weekLegend.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + weekLegend.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); weekLegend.setWordWrapEnabled(true); weekLegend.setExtra(legendEntriesWeek); weekLegend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER); @@ -136,31 +131,29 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen radarChartWeek.setMarker(mv); radarChartMonth = statisticsView.findViewById(R.id.radarPastMonth); - radarChartMonth.getXAxis().setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + radarChartMonth.getXAxis().setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); radarChartMonth.getDescription().setEnabled(false); radarChartMonth.getYAxis().setEnabled(false); radarChartMonth.setExtraTopOffset(10); radarChartMonth.setRotationEnabled(false); Legend monthLegend = radarChartMonth.getLegend(); - monthLegend.setTextColor(ColorUtil.getTextColor(statisticsView.getContext())); + monthLegend.setTextColor(ColorUtil.getTintColor(statisticsView.getContext())); monthLegend.setWordWrapEnabled(true); monthLegend.setExtra(legendEntriesWeek); monthLegend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER); mv.setChartView(radarChartMonth); radarChartMonth.setMarker(mv); - OpenScale.getInstance().registerFragment(this); + OpenScale.getInstance().getScaleMeasurementsLiveData().observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List scaleMeasurements) { + updateOnView(scaleMeasurements); + } + }); return statisticsView; } - @Override - public void onDestroyView() { - OpenScale.getInstance().unregisterFragment(this); - super.onDestroyView(); - } - - @Override public void updateOnView(List scaleMeasurementList) { currentScaleUser = OpenScale.getInstance().getSelectedScaleUser(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java similarity index 89% rename from android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java rename to android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java index 872cc010..540e60d1 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/table/TableFragment.java @@ -13,9 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see */ -package com.health.openscale.gui.fragments; +package com.health.openscale.gui.table; -import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.text.SpannableStringBuilder; @@ -29,6 +28,8 @@ import android.widget.TableRow; import android.widget.TextView; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.navigation.Navigation; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -36,10 +37,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; -import com.health.openscale.gui.activities.DataEntryActivity; +import com.health.openscale.gui.measurement.MeasurementEntryFragment; +import com.health.openscale.gui.measurement.MeasurementView; +import com.health.openscale.gui.measurement.UserMeasurementView; import com.health.openscale.gui.utils.ColorUtil; -import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.UserMeasurementView; import java.util.ArrayList; import java.util.Calendar; @@ -48,7 +49,7 @@ import java.util.List; import static android.util.TypedValue.COMPLEX_UNIT_DIP; -public class TableFragment extends Fragment implements FragmentUpdateListener { +public class TableFragment extends Fragment { private View tableView; private LinearLayout tableHeaderView; @@ -87,18 +88,16 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { measurement.setUpdateViews(false); } - OpenScale.getInstance().registerFragment(this); + OpenScale.getInstance().getScaleMeasurementsLiveData().observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List scaleMeasurements) { + updateOnView(scaleMeasurements); + } + }); return tableView; } - @Override - public void onDestroyView() { - OpenScale.getInstance().unregisterFragment(this); - super.onDestroyView(); - } - - @Override public void updateOnView(List scaleMeasurementList) { tableHeaderView.removeAllViews(); @@ -111,9 +110,10 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { continue; } + ImageView headerIcon = new ImageView(tableView.getContext()); headerIcon.setImageDrawable(measurement.getIcon()); - headerIcon.setColorFilter(ColorUtil.getTextColor(tableView.getContext())); + headerIcon.setColorFilter(ColorUtil.getTintColor(tableView.getContext())); headerIcon.setLayoutParams(new TableRow.LayoutParams(0, iconHeight, 1)); headerIcon.setScaleType(ImageView.ScaleType.CENTER_INSIDE); @@ -255,10 +255,10 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { row.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(getContext(), DataEntryActivity.class); - intent.putExtra(DataEntryActivity.EXTRA_ID, measurement.getId()); - intent.putExtra(DataEntryActivity.EXTRA_MODE, DataEntryActivity.VIEW_MEASUREMENT_REQUEST); - startActivity(intent); + TableFragmentDirections.ActionNavTableToNavDataentry action = TableFragmentDirections.actionNavTableToNavDataentry(); + action.setMeasurementId(measurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.VIEW); + Navigation.findNavController(getActivity(), R.id.nav_host_fragment).navigate(action); } }); } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java b/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java index 3468d8b0..f83cb7be 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java @@ -32,7 +32,7 @@ public class ColorUtil { public static final int COLOR_BLACK = Color.parseColor("#000000"); public static final int[] COLORS = new int[]{COLOR_BLUE, COLOR_VIOLET, COLOR_GREEN, COLOR_ORANGE, COLOR_RED}; - public static int getTextColor(Context context) { + public static int getTintColor(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); if (prefs.getString("app_theme", "").equals("Dark")) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java b/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java index 8d01ba21..321e2a77 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/utils/PermissionHelper.java @@ -16,10 +16,8 @@ package com.health.openscale.gui.utils; import android.Manifest; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; -import android.app.Fragment; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothManager; import android.content.Context; @@ -27,12 +25,13 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.location.LocationManager; +import android.os.Build; import android.provider.Settings; import android.widget.Toast; -import com.health.openscale.R; +import androidx.fragment.app.Fragment; -import androidx.core.app.ActivityCompat; +import com.health.openscale.R; import static android.content.Context.LOCATION_SERVICE; @@ -43,53 +42,55 @@ public class PermissionHelper { public final static int ENABLE_BLUETOOTH_REQUEST = 5; - public static boolean requestBluetoothPermission(final Activity activity) { - final BluetoothManager bluetoothManager = (BluetoothManager) activity.getSystemService(Context.BLUETOOTH_SERVICE); + public static boolean requestBluetoothPermission(final Fragment fragment) { + final BluetoothManager bluetoothManager = (BluetoothManager) fragment.getActivity().getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter btAdapter = bluetoothManager.getAdapter(); if (btAdapter == null || !btAdapter.isEnabled()) { - Toast.makeText(activity, "Bluetooth " + activity.getResources().getString(R.string.info_is_not_enable), Toast.LENGTH_SHORT).show(); + Toast.makeText(fragment.getContext(), "Bluetooth " + fragment.getContext().getResources().getString(R.string.info_is_not_enable), Toast.LENGTH_SHORT).show(); if (btAdapter != null) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); - activity.startActivityForResult(enableBtIntent, ENABLE_BLUETOOTH_REQUEST); + fragment.getActivity().startActivityForResult(enableBtIntent, ENABLE_BLUETOOTH_REQUEST); } return false; } // Check if Bluetooth 4.x is available - if (!activity.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { - Toast.makeText(activity, "Bluetooth 4.x " + activity.getResources().getString(R.string.info_is_not_available), Toast.LENGTH_SHORT).show(); + if (!fragment.getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(fragment.getContext(), "Bluetooth 4.x " + fragment.getContext().getResources().getString(R.string.info_is_not_available), Toast.LENGTH_SHORT).show(); return false; } - if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - AlertDialog.Builder builder = new AlertDialog.Builder(activity); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (fragment.getContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getActivity()); - builder.setMessage(R.string.permission_bluetooth_info) - .setTitle(R.string.permission_bluetooth_info_title) - .setIcon(R.drawable.ic_preferences_about) - .setPositiveButton(R.string.label_ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); - } - }); + builder.setMessage(R.string.permission_bluetooth_info) + .setTitle(R.string.permission_bluetooth_info_title) + .setIcon(R.drawable.ic_preferences_about) + .setPositiveButton(R.string.label_ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + fragment.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); + } + }); - Dialog alertDialog = builder.create(); - alertDialog.setCanceledOnTouchOutside(false); - alertDialog.show(); - return false; + Dialog alertDialog = builder.create(); + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.show(); + return false; + } } return true; } - public static boolean requestLocationServicePermission(final Activity activity) { - LocationManager locationManager = (LocationManager) activity.getSystemService(LOCATION_SERVICE); + public static boolean requestLocationServicePermission(final Fragment fragment) { + LocationManager locationManager = (LocationManager) fragment.getActivity().getSystemService(LOCATION_SERVICE); if (!(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))) { - AlertDialog.Builder builder = new AlertDialog.Builder(activity); + AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getContext()); builder.setTitle(R.string.permission_bluetooth_info_title); builder.setIcon(R.drawable.ic_preferences_about); builder.setMessage(R.string.permission_location_service_info); @@ -97,7 +98,7 @@ public class PermissionHelper { public void onClick(DialogInterface dialogInterface, int i) { // Show location settings when the user acknowledges the alert dialog Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); - activity.startActivity(intent); + fragment.getActivity().startActivity(intent); } }); @@ -110,21 +111,25 @@ public class PermissionHelper { return true; } - public static boolean requestReadPermission(final Activity activity) { - if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_READ_STORAGE); - } else { - return true; + public static boolean requestReadPermission(final Fragment fragment) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (fragment.getContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + fragment.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_READ_STORAGE); + } else { + return true; + } } return false; } - public static boolean requestWritePermission(final Activity activity) { - if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE); - } else { - return true; + public static boolean requestWritePermission(final Fragment fragment) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (fragment.getContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + fragment.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE); + } else { + return true; + } } return false; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetConfigure.java b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetConfigure.java index 539088d6..80cfd502 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetConfigure.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetConfigure.java @@ -25,16 +25,17 @@ import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TableRow; +import androidx.appcompat.app.AppCompatActivity; + import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleUser; -import com.health.openscale.gui.activities.BaseAppCompatActivity; -import com.health.openscale.gui.views.MeasurementView; +import com.health.openscale.gui.measurement.MeasurementView; import java.util.ArrayList; import java.util.List; -public class WidgetConfigure extends BaseAppCompatActivity { +public class WidgetConfigure extends AppCompatActivity { private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @Override diff --git a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java index 72540d90..3fc7cb2e 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java @@ -33,8 +33,7 @@ import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.gui.MainActivity; -import com.health.openscale.gui.activities.BaseAppCompatActivity; -import com.health.openscale.gui.views.MeasurementView; +import com.health.openscale.gui.measurement.MeasurementView; import java.text.DateFormat; import java.util.List; @@ -55,7 +54,7 @@ public class WidgetProvider extends AppWidgetProvider { private void updateWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { // Make sure we use the correct language - context = BaseAppCompatActivity.createBaseContext(context); + context = MainActivity.createBaseContext(context); final int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH); @@ -80,9 +79,9 @@ public class WidgetProvider extends AppWidgetProvider { } OpenScale openScale = OpenScale.getInstance(); - ScaleMeasurement latest = openScale.getLatestScaleMeasurement(userId); + ScaleMeasurement latest = openScale.getLastScaleMeasurement(userId); if (latest != null) { - ScaleMeasurement previous = openScale.getTupleScaleData(latest.getId())[0]; + ScaleMeasurement previous = openScale.getTupleOfScaleMeasurement(latest.getId())[0]; measurementView.loadFrom(latest, previous); } diff --git a/android_app/app/src/main/res/drawable-hdpi/appwidget_bg.9.png b/android_app/app/src/main/res/drawable-hdpi/appwidget_bg.9.png deleted file mode 100644 index ae6cec22c97001fb64cffe53c536e3e889a80f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6647 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 diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_add.png b/android_app/app/src/main/res/drawable-hdpi/ic_add.png deleted file mode 100644 index c0c2e16d3bfef8cc77659f31ee9fe87c8c8a11e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6T^Rm@;DWu&Cj&*gJzX3_ zB3j>GbL47J5MaHKU$TBrq+G7m%`GcjIjo*ZaQxkV$#p+Jb1;M8U!MMK`eUHTaGcJAfg zGrvkaoZXI`o@ko#?ewu(dnzyY_O$ANbe-;~&(fUJ*%38IU}}Yj-H(4cKxZ*{y85}S Ib4q9e05M!t)&Kwi diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_biceps.png b/android_app/app/src/main/res/drawable-hdpi/ic_biceps.png deleted file mode 100644 index a40b2a1afe0db32e852d13e20135843720e0c3a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmV;!13dhRP)K!uz7N+1bW4Goma=M2V*#6 z(i!0y>_k@`yUloL^63PT5Ah~WtzmZ)_Ti{jkUAOfif#E-r2peMrNX8&^RK z;eD)ic&88=vbuodUc4d-Xd@+HNPI{hP7=GYq_S}f?k?!O4TGXC4HO)+48t}0@4$CB zX1rlPt}5t!9K+&x@d(!8RXmNQI6Y%KfG=wJnkF>sHe&BOgnBlD%hGROn(RFhE4K)Z zc@{I0&2Ax%omG4t#A8Cm5dqiCv0xCNVrr(nKatvrSz-kaVL=UFvqh%&5UF>06NF}9 zD`w{Ob>S^h+sfF82kZFTCgRBs+}Z@8dYC0LXrm~++v?b_#@bRcZbbCv6tw#s7vgPv zEcB)pwvY3;6CV|vWIFy3L70u5|B5T|6`{OiIJ4luKA{^QVBQ20>KAnmyrZ#`+)O+t zisu@fRmHAN+}DcW5^-4oi^Wx?npRZ90-^L{*dz+(B3yyxA}+QR^tBjYkH1XCmy%jG zfgYht!$L;(B{GAKJTX>784t+B@-m^Sd3USHLZ?Woy&`^=W;+ky+8Pdyp8yh5L}gfm z5s_IdRJm@i6y+dqmF5X~--^3LAeVCNvgpKoA-?N{SpJR|acOq0w#?uzv3$$%RHkp8 zSfSTNsp%1kuuBx!{fTf#dX7c6IP;9+6A|DW@Upml{0mt^aF6)MqTAs#TqsVC=ZF=8 z6VsRX;DkiBoJf6-Z$;MZ5t=oUN1zDWld~1+eZE-cdz*DQ5x7AF_!6;7Ps(4-mZ2mr lc_ZSW|Gz*t&TjRj{{UQ^$23}1B{l#6002ovPDHLkV1ni5$F2YX diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_lost.png b/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_lost.png deleted file mode 100644 index f7ea294552c2240eed6b6517aa772910bd1c4dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)L3(2|LM~gmzuA-30};(xRmZyZN_oejYUI zbIG5{Bn!S%^5*@%?~}<(-Wy=ZCZ)XSdEQOW^IjY_3jo9jGA5Y$E@pneTrQvZKY-ee zi0GYawYo4&$S6SoKuW1aDP?HXs6hZg02V8i%JDG8JwZ~+c(GWFhC%thf70{3=SBu{ zT{lKVOO|CVNhu!=n76HGGxLXoqB?>~rP4vuG?$op62KIIW!H6Q1LS>AM6Uy29VMlF zekhRd`%Px9Yh5#jVVo3IJc5sG7v z34lNKxtRIcd_F%G3e-kTOiVlmprWIM5Z|nGL9y$kA4-wG3bfOhle(n%P(^ zcB9{1fj|IItyZU$Qp*5#P(-xO%n|(kO9V6jLPT2tX0=$j)?3) z;Y1gO5c9Te-wHa%K%h3N(P-rH@7L6=6%5134T1qe>}Ant^!nJ?SQbFF+ZZA$E2W+u z6cY;6M%C-}qX4dSxO~a7toc+b^+%ZOp>}&Bs(0wVZEI`m&d`}*id@&7H4Nh{fQLF= zXXc-kQn_?GeRPopdxMI_ z;-q01pX0v^xa#}!hB{S!U=vN|go6Tk}olf_~5K$VyYdQwNLNb{=83fZ61OUlovdYYdH#axu z=jP@D9j*Y}z6*20ah&&pVt_7dsNEdLSsf%yYd#SjPb3m&1})r+XM3NBUJ8Q&Mh|LZ zJ_s8yN|3LVdU+TO&}R(=Y0O+BqFc=TZYq^JJ#5}zK^?JBsV;vt00000NkvXXu0mjf D|0N$c diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_success.png b/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_connection_success.png deleted file mode 100644 index a48cd523c2b429accb8793a328fb204e37c68f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P))2YQgaZQDsoLX%0N(#^plVSD2w?9bI(rH{DhLADC=;^+`~_OTLO~F~yD~7#f=QzV z%;x}|0EY@{GZu6gXm~|Wfkh?vrwfv{Ed_NDi@Faa3hHq;khJe8sJML!mqYm6D1>>M*jOlYb zKUH!Xz-Uaz*MMg|phA&Y7+@6`=!Urge3xQ}M$SF5Yf6h6aNDSHEIHqRK?`$T65QA= zh^hxLM_%q1;A$RB8rw$UQ3GWzU|`?q;~aHKa{JX`YsVF%oxnR*J*!ss9omcet0#Y} zN??}kr|m`pOd0R)dAXke9SRHppC$2CK};G=VAiOSo^>CA%YjilUr(#XGi`$mMFLD1 zwbt+#b1wmmE0`voM?_1>Nr3Uf9UBcGvSm^ou)hP^!Zw0A)t$i{k6jCF+=R&xF8N56r2UI-(d z_?LY13PIi6_x%5HGr`|-o^h0Ih`$qFgZY5rD5_$0QBOYV*;R;m0%1| kbr=Qorc#UtD&=cB14PR$-ufD{H2?qr07*qoM6N<$g1X!lOaK4? diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_device_not_supported.png b/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_device_not_supported.png deleted file mode 100644 index 0504bd9fd6846d26a286ab13303a5cd248fc5e0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)A|}nK@WmAC4nMdJc!^)S}DC%@M0hov-`YcaWd|1W@poP33;>o=C|+v zX6Ee@DwAf0H|yCoe)uLYisLQ(VSE?m|DNzUlBqK0W|ap zk|bI4JntxV?CtH{noK66tZRv=)$Mi<=gnnxbar@xJy|3Jo;P-Ip` z9Ys--nctfe5mAeXPE!XFomT0mtblT4%9WyOKUD~%lv<7B_`nuMhnlu7di!D34(9?D z$z)TcMD!T5?FV2XUnWplnM@0UV3&xV<_s6gmkGqoR{>mdfl*3@889y~r}HcX>U27v zh-e+a?=mpVe4ClOhI>a!`GkmCCX^6jXucum)=;cy)U z{{cZfh~U9f5qnVo0WY4ss+iJCFS7K;6bp6zrY_9AqkV6=fOsXu-oj;MtrB_ z&CHt*FT?HxNEvHuYp;b6Kg#9ujkL7@z)D+yhz0=cQ%XHrU0uEP-$7cCWm)rSQN08K zJwWvu1f)dm3aV5p?)v)rDMQo)lY<@!s#dFGK@b#Mt=7WI%F5}O^`u@~DfKWZDil<$ zR>!22MP@!qL?T^St{2ZknP(L7wMr5z!?g zdXofYSyp3b{bK<4^r5(@$TO79X5Sm2TI~FMdlZhO*hgY6JP90TwQfU9k=W!rW^ zDfJXUb|+nGHk(%+$9YLaV_J#Iz`#Jkb=}Y1_KF1pfO5G!%FM5r`K*R|XIYlT%*S_9 z9|6<>ocy~1k&sf(=JWY4arTJ~0)XY^lyi)3*<2VOQ>l*!J8yg#k8;wSh zh|Wh$c~3-zTrRhnw07bS)oQijE*Jn9W#(eo!?Rl?>X7gIBaY(~0i267pPAn&r3w=h z6K~`05xYZS7$PbG&^N0P(WW+@VRQJu+T zGNGO63}(L0%!l+85j~ljn)<%mx;R1V diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_disabled.png b/android_app/app/src/main/res/drawable-hdpi/ic_bluetooth_disabled.png deleted file mode 100644 index 90dcedb18d0157f3a3cd183085c9ff1dbd9fa6b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 zcmV+(1mXLMP)_7~+17u7`LE{eHAkHY>1-n@C1EM!L9pa%s{3UMaseP_x;5 zLMe5j%z(`7#c}-p%z%_q=jP|<_W*no$MK6Lp+1V^cxP&$-QC@%0DJ-9Du6|1ZchPK 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 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 deleted file mode 100644 index b90d910729da4350279c509e6413a0fb6d47f0aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069 zcmV+|1k(G7P)i_@SnPCx)dzsCYqYAm=y+HNTij~H$+ikl%Z_} zM&v~l6-5yi2|+&(9AQ<2?2 z4CkDg=bib_ywCH0o;l+jJ9J<+PR3stI)-x}G0wtQC}R5_=Z_Yd3HUZ6Q?>zIH5!B- ziUfvmBNkyt?AsTAj~Hg-KwNxn)_*#F!60rMNkZ!*ncp#~GBy`WMv}}elE2(Ek_*>E z4|WM;-Wp{t;6=%4PaS1077ET<;78nx-q9k{i7(Y^&Y&KYS!4@#Qz96rRsjM$J6 z{wItCnO^LV3%?ZmI`M|u6Wc0;eJk`}6D~L!LT{_pocl8p&tRo=Vt-~pAYK)0}t25hOIIYRNXJDrkv1hhJrd!HQWjlm*m=;NuWR?qll-quR ziB0C8hu@-Ye>;SpkH-Jv_4rvXwht>Z+lAPJEke}g#Qwl%cudH3Iqr!zds>lMAZgB{ zv9AZKBnL0BMsV<6Y*c$n^+JC%|F?O3*6p}&;ydTT-?BBydVMj?tjA7l3!IZ7B>jdT0ZkL`kFjrmh?(q zZpIoX3Og-?GImM}`w}ySQn$c1bTu>Xm%_HE#l%lbx-&iNe?d5{0l}f)!?~4b=Sl_M z%0>$;laBJ{7G%Z?kx}5j%Gf4B#n%caPzdr-#VYBwjjaw&lHTox7G&V^XnRm?#h7D3 zwEIs8mK?LB1E@*PYb5WV(*~itB=M_*o!1aU?ko2@E3lxOYB+91+_ zJA}w8@ONCeM3>=0+ARrSwF2lCBJuFrGliT~2y)&GW3bq8wJqEAncaLrGRi0`^=7+T z#a~|C)GLyXOx75S@Nq_9P!P>BiGH0eHXZLqQUih>ty3E)$48Q7K14e9M#3~tZRTE& zv*Y+2A)E`mhH*_cm7_D8cORyf1EuWWS$SZFaNK$F`&`hTDpq7R{aUO0RJ z2XWvBoF@p?QyJ0n-S?@Zq!}KT%8tEwHj*#hU<$4j>Z>wc98yP{E;Rh+khk4J)^Aq^ z7E2{*tF|3iG@9rd;nG(c9}tT6liDPbqYHPdy&@HYgKrevqZ(}(UVn@evhPIU52(FI nL8gj{g1>YN!Lvgsfg9p~f2?W4?xUJ#00000NkvXXu0mjf9VPI& diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_calories.png b/android_app/app/src/main/res/drawable-hdpi/ic_calories.png deleted file mode 100644 index 4b6a734d019f609233b57c6eb30ea619aede8d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmV;|11S87P)lRA!+(S zt+B)s(=S4OP}K^t2H}H{n53bWHc}dbE*eW>Z75-MVnnHy8BA+r+VSBz*W8Xf?R$o# ziOfHl+sdyiM;$e&{XtxhEu>^B-2*GE#8l$lk{rCijC30KPg_ASw-h;MWG9{di z=P@6vuoAPd2kuV$d*McWT+r_BLg91qW-cK(6$_G)3bx^MA^UUKUnsc=?}->03Jo|D z?_j!6JPViNbv%ag>9SK2!PhVck7FTrD`@jze1{piWS|>&h|KB{>hxe4u21XDn38FC zfnmf@S!B-yq0}wHjZcf%IuIS$Q@AS!8-@F_30;Nb@c|A=`xOz4*BPel!$k!fa5^p$ zg|Huo;tf#_I?~xC=*_Tw5I!6Zp~WH_Hi|T#fp>*+^F+466ZkR1_IcPhmymSHIq9!c zDD<1CMNMhlk0UefwhC3VP!{R_h)C1vY5y7#Lr)DdItnjgJ)Xt+Sd%_i;d_x7{|Y5h zjkn+{p~g2NUfM*aR26C#jrI&to3@Iw(2dzbm5yY0D22x3L`CJI-#izfazv&ja!eFOeT56r_WLZvzQY0#xdh_R%#4xtt?jkcw8+r$9ai2c$X zYjB)!^9C$0)iKnEWAJ5KmlL7YA`^?EQ6x-fx@>1?Fc5$LAk7j43QVm7Zu1viNoZmDj-K4K0o85sO0)jYUbWZ}_RZpUND0m4mti%GK?58`%Q zf>%YLj}iY5HsS#>8JtkfvMG2}1n{oJ%3XZ_2uASV<1ZsqJuM}k0iRHXq%wTgeTtpKerLp$mVx}L$FJjVPi>*0R&_9lU@LJBiB@P^M!0y4z zctWhemb^n3*n+)yGL3n6L3a=%RUO|EGdg$$#=FJa#h2XG=Y=P%{h!Eez^`?LjtG}5 z)74=tJ>6nTWQs~c$3?{aL3mveyRg1u;QP~4h7nPSm0=>;tR!>-+k{8llK1>cv2G~QjVGIxgnkoeVaDpceE{$EK&FlN@nDI3 z%t|0GCA1(;ehYgF@_Y4G{I_v9jgezL{-`5#UPRulc&H#B$vbw5c`?ZxO(T^q&Kx=6B7HbBCs|3PNBqVF0p+2zUPtXm>3Y_Qs^zEK_i376hmqu(WJ zp&UPp$uA=(v`J*&&7!Dk<1^eg=zOUn6Ym_0Zr^4KR%C8JF_^w30Q*7JOwje)4cZmD<{$eAs$8~vZp+?uXQ+A~q7X{j(DniqEL4@?G zFCW(?;+^12aZVQSXo>!6@m*mVMM9HeYxd)<8Y81Rzj~iYgsQM;<=et>_!o9sr_L0* R9XkL3002ovPDHLkV1k;W#c%)s diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_comment.png b/android_app/app/src/main/res/drawable-hdpi/ic_comment.png deleted file mode 100644 index 9964abab440f9b0bde26644405bb187c49b410b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)`)1qA1q3 z+K5 zd_cG2_8vF-4u5%6gGk&Sz!c{3Ni#UoLOZz7!NH0p-UMs5TZsYRDwO$$>8RhW!C@-w z#NSXS>K}+Flt342qYA}*#NLvHeqdjoP~%e8IH5RYvCz?YLJ17r^mamPCeP56)j^@M ze~vvR3;e{1QH5fTn@rh?&Dc1DA#kSg>`B{2JX` zSKbjdYwHQY?A}5XQZ~SLDZ6emDGMp|U>ut3l4y37HBP8y@X5Iw7Yhdbj>q!fR%UP- zhewFD3H$Nec%}SG{-5xz5o2tGF)oiO)Ww~I%=rTI7a7do*?ybL*=dS7y(3D-1>Ej` zK86>;uHRuP5#tN);eLU2bD6<2Tf6+#7o5f0;QET*`MeU^SPd3`jk`g=gELjhWSr8g zkkoJETGcWcR}wN$)%YSYjVFQ3XB?_aCSx8iv5b@d6W|ZMBjrKcBVu6y0000B@}fKx*!taW93sp zD3m^lg#{{2#T=iLJ)*j4^j~IP*N|6X`O=TW*x0_X?j?DJKt>2T=vX4 z(;q(A``c^%zdzr%_F8N2it<>3+pqywV-1#N&;G=5e2ovYak`H+dcuu(4!@$&<2Z@u zac#m=#eOX6SI8I+ln~Kwyo)RGSayFySs@kd!c>8H79XLGTX6->!}+)r8}SGZ;opMq z6lSvPdKodx@LGZFFFcM~37$*v1Wq}7#}4;OGAec;bv}SqC4>~Q2HzGqXRxxHV+F4i zoF2;N+u<(k>|%4fvyZQVJGu#~C&tsbvy1)G%&vj)4t57|0-xe-JS*aCc_;GqngQ3q zj&AC)BC+4pgMBF+OvqpC(PzN~ZAyqIvW12v=qhX#spAaZONh6ZARAQBV*H%>zmrd1 zpqczmJ)l;Nm`bj%FOE zh@HtvmzE@2jHfd(ImaK^t4p0K;6V{CbvTlctu84j$A#FZx!VnqKK9|lQ%J%NhSMkyJaPh947Alek~!@2+mB;2u%cM@7lmAU?l)LJeOgqViAQTlx?)BKn=2 zXLlbQh~rC%@^M52;<&lfLsbNAExWH3{0GW&6>(hc{s~QBU1C3mpEUn;n} T)_#pT00000NkvXXu0mjfz|*Nu diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_delete.png b/android_app/app/src/main/res/drawable-hdpi/ic_delete.png deleted file mode 100644 index 723ec0a1d085f5640b6c609fe81ae904954b0f25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6T^Rm@;DWu&Cj&(`c)B=- zM6|x0zLA&7kjGU%#DRbI0g*G!8tb2YTezE7f^~`Z#08d8F6`Tc#T|e7dx={AclF|G z7AQT#^;_%!V?^!E{mix>G;HjT2uU=Yj5xg8Z0b2dnb^DQ4^)2R&C2v!VYz4jn<-Pu zw{Y!o3SQb_y?&>;iXt~>q{j&-Co!Q-6DG8_===+NF>}JxSr_*>P3M|;#@Oyn!^BUK yIV{`eEjXdEm+{*Hs|(Bp%;yf6-cWZD)K|P{6}kEBejT9O89ZJ6T-G@yGywpTdtlN4 diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_difference.png b/android_app/app/src/main/res/drawable-hdpi/ic_difference.png deleted file mode 100644 index 6501a94f652ed656900fa775f8d5054cf3c38305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)u?8F;vjx#5PKOmVj5%EJ<<|p499R)I^TsG@NFNz z>q^NtVsk03uufZ`dn%o-$IEyJn^MwESX7Se3bIzlqUyQ^MkSVi4+1YFkpWEn==W3l-|7^baw*@<_Wv zg}-X@ZAd=7T*vo{dCaw+@g82o4s64udUbR5VCr)w=g>(B4u}zV#Yl^Jp2gfENmhv0 z{T%MZ*^J*Pz7!95Pt3ySgN>t^jr&*4@fyF!lg~p~z^lU~yJ!HPi4xF6#%C0#a3r0- zB%ZTto4`Dpg6>)Zpk3+yO{JK5ygn$*7|x_lPGC(7psG5BHB#wW@o>J75^Zk*R8^-O zH;_t&ItRsD_>p>*>VOJ$j%H#9Qt3JIT280)+f%aphX8saUB9^|b{>0jFlBYh_MyB= zIiSVVDXdndsyc<;Ca+QsXlJ^1%OXINqAu;O-YC>LkO|DG)DP%VoWyA{$hX7_Fo&P; zov6}B@JhPAfT?oFGy1Dj*sc1j)DLK9=~|Qak4oc0o&6b@!uqMy59s3|fle0Niyc^v zCl>*F3Wso?s8Kn49(QZLBRJf_6=HufhZn^vJSCokRrnLXCZ8^z!7sQb-J1|wP`Dc3 zG=#XoW(+6q11WxxwXBi-I3&;q%KqBYJE+y4@%TqIYu z?W}3xS|>JIH;Qk#2~o2~)BRKUO4OpRsO<0J`?jEEyHc!8$Hd#!v^@0iJ|4#9Z9t~P z$Kk>d5VOAl}XI7$zI zw!gsi0+#`d-$S6?CZ-R#iop0ivWc1pDls4j*aKQ^p;k0eJ81!Oz-C}91ANDT-qOHi zfvVSRU~Vl2wJ(j?@F4yIRc}nqdIahL_i7N!7ElXWsOHV7Spdq)Gta<~B&HC7QBj2m z)H^UCiOHaMf-2s#YH}fCiIV5{oeA5iyd*%)BK7ZqZp*lrrD#@(zf+=m40QfmjP55O ztS8NcIR&~TG0O=sXVRFZgqUtgjOo#KfOBcg9Pnj`xyJod6w7P^%#Ac=2KY>X>6gSz zC&1h`6Xp&Wki<+i6J`?lFvQ#ggOV74S3}GbFfNV35c3EOr-3m66@ihoFpYwWz-XG7 sMnEMS7+p{a7_))V0i|}DOhDE#KjCk+uFJK68vpl@UoY}43c-_tPqT2G*9p}$DCiExTl#TF5Z@XXsCp`Q3-Wp=!8;?V4^^b zvDi)**YP{SH75HItRFNIY#1J)>p=@t{Qo34!SbL*BBv?N@LV9sBEI0b4?^dCh|%!} zEjL4VbW}p!sD!$aM<|;Hbs~2f)T>Y(m)QQt+!di3@->f8uO!$PzB{`$S=!roDIBncc?A=J VMM0-!4TAsx002ovPDHLkV1i2bzB>Q_ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_fat.png b/android_app/app/src/main/res/drawable-hdpi/ic_fat.png deleted file mode 100644 index c40d5d0e44d8319f7b9089e397e1fe674cb1d910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)Z*ZN|N|i z1S;Ml62cNmP<-<-D0=Dk8uUyMk+XtMLC2nvA)afvFgW$4b`q;&+_J4>*i( z@YDSuG#;;DIUdIme488ni3`FaS8{y^MqnhyB=M&)4Zq?eyoX=zgj_vF;{)8lcUYBk za+5LHeRbqqNG=Z=V0L(L3#?jjqeAMOdk$ob1UZHt3f6MUt&&y2_lQWTG7TA zMOx^|@l0{p$6`W@IGo*T>A%^yCX(iFIo^eZB0aRjc`UAo%&o9kaM2~Atcup9cGvAI zk)JKFN0btqakVM`9vFpBlh7GaNo>vihiCs(k%Oc7Lga#GVQk6VkN8?7=w-43_*r!> z>lGI>{81u1UWmeLt?+3xF${Z!6;6x$?KM$v5m(1HA`Is@nM@x(##x-gakUBo7T{_j zZt&KM2(7?UJS;BK?mAf;+6qyRG*)%ZLQfJYLxJn9A~$pnu&7FOqN^1LRCk7Mh50y8 zU?+BqyXA8?`?U&mh=;{8Jli+9L_FlG%t!U@7+$3RLvf`3uZ?EohW=&k5QcEq_z(Dr V=i_}VdfWg2002ovPDHLkV1goudFcQE 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 deleted file mode 100644 index bf247a63ec5adb160cc3c979a7fb739b28fb162e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 891 zcmV->1BCpEP)zw0xdha=Z z*l_k*-?zU1`S!Q|-`cxk>@X2GU>c5MbPU(-7_;#`ig@kEt^Fc18T&Fa<@Fa9^@Gr} zk-#YK!EHDk$Nr4>J;O|#iorKzt)B=k`v^BXR!nY#u{dP(L%sb22wW#F@6 zs<5>Syx(UoV7*kd)BDWDJfT<%{Dft=vR`Bd@SS?i`4?MpQ?Cg&2Jme(+>7&T=BMG)jMVn%Q(~@A*ya3-HU2ZON&3SD z9&1MEX-Qk|XkarDZ)6Lui{pc;Ggzwn1R+zag%Zf;9+Dn?9j=lz=bdJ(<05Zni{B?? zY8(E*6WQE)p-#&CV}f){ZV|(9bT}%AS1U}ySJCH)urmj69V)6HU4hehS(}P}f9Ci= zI}Q=E@OSikNyyyYLZRm8>{S{UcpWYhj-CZ}X!1-OU_T_H!Z1u8s3LFq>XF|7R z;5kWi+UdGe1m(`#$ZrWNFR#bfH`4&2Kjrj~9^=J7TaOaf{H$Udf0S_(eE; zRmPhP+^+h~A-_h1uN&vQb2`Oh9L$KE!mB#yIb(&qS5<@^Ge!6Sb)wf~;D0oF9#-fn RfsFtF002ovPDHLkV1m!{t1bWl diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_hip.png b/android_app/app/src/main/res/drawable-hdpi/ic_hip.png deleted file mode 100644 index 7561bbfb4cf40c09292983255f9f8db8f5d3837d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 942 zcmV;f15x~mP)RaF=V@ZVD_&?16OYn>p#hQYc}jN$|uG#ZC!NOU1+ zT;i}X#&O}oXq*xkE{wxQ6B83PYT`mM#+b;kFcB4S3dR=45}XRu2=ZKf=hEBy;GQ?s ze{yo)`_6a1^FQZ))1?~k;qDB*D%^whRZ2%?7@CW7+or>EoK~fjLufZnXqyhb*j1&J zLudx}wM~aHbXO_m5bDFPZPN)GeN{?TgnDrbws(NgcHu*_+aYvzdVbOYLR(P7vUUiq z!U25L0YV?*A6(k1ff~NU`yC)t-~)V{Y&VTdP{&OjBy>x%xw4hTFNkoTm7)7Y8daDr z!vDEu$;`nhUe45Ci#3_Lui#G=(KZ?Pi>p1enMIjcmTcdbyWkiMW5X1XDXBkgs>%>69($_w>&aeUhA znZqf}!0&kRe;`xfCD8>;F9b)ICa=cL;u;6i+%MSQVG=#KP*i{wm@j4}_KVu{MOv@}KjSC-nDqCQNOxhTXv9uRV*m@W2#c{G?ORWF$3($>i;0o672o4> z(XyT=ocweQrjz6}bd7K@9c*hFo3Tl}u6IPwHCVo(9xTDv;yQ=%b{Yk`F%SJXIX$Oq zjK45~AJTK!f7{@B;;>^_n(QCaSt_ouJcjT*F3P%tJgi7IhZ^j+xU6_(60XH+QD@eR zu&m=VT-64VYw&rpwHNQEJyr|nuH%aGg4>hu)JcYB;a1_$b-W>7RWADRrf~;ehvO#c z%uVy_%ECvIaN1!Eci}G4lI#>8eN|X4f@BnTCL4{=o%VjHEPPaiZxsebwCr=_uJ2;u ztUH9`R$&Yemj#a{VGjE7rD(Dm^-E`^xotAO!xH`$Z)rkanI^BokBCI}hv@!#N^>)l z>^EE{^X6hd-xazd`mkc9E0Fo-)8^AF6088mlu zL4;%qlY4I5NJ)N-;uJbu2z3%Et|k#i$dBRz5gixLv$D>z*V=3Ew%Nz0zU{T1^?knU z-Se#P_xWy$wGI#Q1iNea=BW(_@Dz8kw!t{2;UoG|_DchC{>a35ht53bK?Q;4VQ^+_ zVFN%5GWWwUyAhzFCC6&1+MM=0=Qixa%*^;-1uqzhe@em>eJ_i!BQw_9hFMsad2kRf zsswp1Ecx=1K<#*$6Q{FEoOgL!HW@wmFE#cSM=+%%OcLjikQ|9_qqiu|Mg6m&5BD(w zWAP`pqyn6%;-6>7;+*N&E@a%uXb-CRpUDI2!)c65fe*p1I$#pp8RsVIKzEMsnMwr8 zenW{~;W9qpCrr%otEC6HE__pqFe=BdyRAl`(OA_WL|T)g)l#LX4z)xB4XBddvRhcw zB9K#QXIzNBQ?W5#fAV#c zSE#Z;_k@%CQ)+BHev8-Xmb4dF@i*pU>$d=sf%ySTJP)q44-0s-*F3TTZD;xZU`1fq*oZv@_AzBDyZWF7GoJs z;&ja5PJ{Tgb~_xi31t~+cK4dO@Afa-XN%1mq0c{Zck<@Xq zh*4QUgQ3?0!6zuMN=eyz91hP5%?{6x1+he>aYE~3z4UUHALj}DkA!P%CYCnc& z#d(U)&~d?1-%|n${*&#;oT}r1;@giN+1rY_R8M%EvB|IDR2yJssN+)h7yWRBkeFEH Q!2kdN07*qoM6N<$f)>Lb{r~^~ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale.png b/android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale.png deleted file mode 100644 index 5f6dfa7a8b3ce8df46e4ab21ae961fdc6cdd1b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3049 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 diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale_light.png b/android_app/app/src/main/res/drawable-hdpi/ic_launcher_openscale_light.png deleted file mode 100644 index e4e8ad3afc61a2d1839c40955c9a165ec84ca6df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 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 diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_muscle.png b/android_app/app/src/main/res/drawable-hdpi/ic_muscle.png deleted file mode 100644 index ec9125f6e220cf760894bb8be8610db6c19dfc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)<*>DH325MK44l$fULo0jKS*&>OH1Z6J}4!d?zO1T?F+8 zcEsNts!S;$IS`&0E3=$02uElyW}xgk3fHP|PtYE51+ zJ#el9%mwty%j|#ZgR2!_PRY5!)dwP~CAwd6?JA9F{vixl%Y!48haL_yeX24K#V3h4i8Jl=Yz?Ig@V|hWV;%y0FdDP?tIaB&`PF qV^f=O`kdRbI6;er4+9NF8~p*`tvWjbzqgYB0000vh2#SH)kb2Ik=k%^J~SWS?eqEUyIuLb>eQ!mUgwYsxpMuZT__!-v34gJ(o9s2g~hX&f$Ahv8lYx06^+AMTuw5j0eX!o7~QLs4*+Nm z9wnKEr5x-r4o7fs6D=8FYVabBu_Wbyb=Zf~1=`-=U4i!9K$Ukj$WpnAnOiw;2RF%D0ccgCzT0tb`rY9e1ZhG&@|>yg#rZPf2;KfW#@ z>9(PED1nvx&%>8*mC6qp=IB&}-j-tr&w#xPp1uE5yx1A&%ZB0F1|C z%ohHqjtCFza$$j;!eZ~nfhw>BD}+q^KscWE0`RrMaV^3`;hk!Z`Bq~MKHxU);~B|k1|%Oc%$NbB*pj^6T^Rm@;DWu&Cj&)dJzX3_ zB3j>G+0DhE$m4Rc@Z;gl@$bGhS^S6yy2D(iDB118#NgAq(&A- OV(@hJb6Mw<&;$U3B0z5d diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preference_donate.png b/android_app/app/src/main/res/drawable-hdpi/ic_preference_donate.png deleted file mode 100644 index ba04c87108a375d21071cc8ccb3cdfe7223e21b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)K~zYI?bW|Z#6S?o@z05kXCwFr5o~PiwX#zzZEP&;ZN(=LuCVY4 zEba*uZG08&Y!n0$5jhpX#>65UavU+2OVSAUgOFurcfOOEWx`lP)EZ%LT;<%v2!Ki| z1K7spfUS$wCKBi%l9VUHTUf_<$3~stYkk2xXb1ZY&V&7?4&W#RxzF(}$-ZQ{C`eHc zzQcO~D+9hK$xUkEu|%@Dn#Zdo%N|Z8WouOHxRsS7#zTP3HU*i)KCbZ92kK#`DM+d| z_HY*93>c!up% zqlNLiGRU^R3$xV;%jMt6(i{%L<|??yG1jwE@Vp}FzmO>^ zPo3C7k!u}iI0|QBhzl&nc$lFT&b;C5qJc*-Z!v;{#tmN;jNr24hOg@!Lw|5a{$%F3 zjaN8P{pgb;<=x%#8~d63T@` zA`4>B- z?^US51w6$iT*e)|Ya?M5CgMlTK!5BLiW*Q@;4^YKm~NVj%^03yKA~rdeT@qIgTHVE zn}h-hCAFF$!&lr)pAJE`gV7z85Tm|TU>kO!+jk`HjbE`k|6)ebYK+iK&neu%V|-~N zVP`SF=<2SM7shE!?7$;QJRV9 zySRv#7*lwVO;Cfg|07`u_6x~gLl^ukqg$r?_oaOQX~~sB=cU35>d`%&J&aa(At3Q!p|-cyxkQ%7J5@LoWnq&`R&-7*XSe7^dlCM!+o*j#VNSe z`!%6Dbvg}eG(T7qFbgMyI$I^E5DQ))7CJ~!Qzxj%P=;e-;TJJoIKd7)$Iz7HbrA-d kQ0$*YhO4QO+QNf>0m0dU%+GBiSO5S307*qoM6N<$g4|9*LjV8( diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preferences_bluetooth.png b/android_app/app/src/main/res/drawable-hdpi/ic_preferences_bluetooth.png deleted file mode 100644 index 081832a03e69540ac636cec77b0b936e0b1b9984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{5%P)_NuE9PIZQqFN86<|eA^PP>%^^%1hxI9Zip_T8ISWI03SRr z#^2O%-74Ozx&mH}H|*4;AzT5vv%2=7+O&{*49E_zH8yG%AS=8{3Me`Coj a4)6~+3%Fy(quUAq0000O0!x?PFD~xwSpoO=1hgOEg8p*q`2U~Cgry5v~&oz)Y za6{PnYi!3z6Sr$1hhcodNE*zraRsD9ID~nu#_4=QR`OF1F5n|3uv9_54d>#zi9!6y zCzZKq0<+jrwxa|~_!&vR;cHn^Sq0sAiVg9*3Olh5(>NJL3dmQ`#Bba~KaL8QCXfBN zf&+Mi$5p$?S8xeWFoRoIz+Ifh3!$Q3jN&jpRS}m73}7#g;ChTb$8p>dX3RYLun!;p zMV<=u;u;PLElM$mNul3kcqv?_|3Vhm6wV9QB)B6TA=ARS3<@n=7JfwX6fH#q>=MqS zk&8bP+Lz)OE{h~H7|$hK#qL~eQ5Xe<%hV1{e6NUiEr+O`z)JA|zd9-KP|07*qoM6N<$ Ef@HPQPXGV_ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preferences_help.png b/android_app/app/src/main/res/drawable-hdpi/ic_preferences_help.png deleted file mode 100644 index 98b05242c1e31d3b5fc60dc01dbd2276d5501e4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)7b|f+L&LkUFzFsM6%92EbE&l)|WGDZE zvXPH67HU=^8Vy;D~8OIl? zK;}@KV@`M)Kc!2ZjsH^_ZY#Vl6@k?uxSA2{4by8_i*>jjvE3QXNO%sw@gQ%_kjL-= zi%YR3QZI~VG~2@SXahU(7LPLIAGnRFQtZ3b2g@^>hj@=&r1Bce5McotZL#(KG*}LI z@s!jc!xh9bS~!Exp<7eIy@JX1opr)lsTm(*5HC6j7UB*1Y9?4Do$rns+>NQRr_LB$8~|OJ~#!s`eYX9>Z4yqFOEpHKOs%jsrbKx!~Sxa aW&8#J@P+;}<-pef0000u2&vN~Apyn0#~%<$qadg$0!kj_=24uZT!y(ixz|E*!G<&Itl8`A zz0VBS3ALEV3shHxs~VU2LJNl&Bwv_#jmAzi7cHe8=PD<`}*St;ux#N}wa=_=9J{oIJ-5%*D-I1qN*~ z#}j

nhyF02V4poWy(F6Xtn}yo;-#^MuHJcgsaqgGp>AV&WnV9ts!XO^gB_WO=bB zqXFU6b8&q~_#d5%OEZJAk=CLq{7i6p93;4I%p|y*XBq4XAI5NsX#wj+&ui$#Xo_|P d`zibt#Xks0MsD^OikJWZ002ovPDHLkV1o6`z)%1H diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preferences_measurement.png b/android_app/app/src/main/res/drawable-hdpi/ic_preferences_measurement.png deleted file mode 100644 index 01e63fa1b3a472a9c1c2afc5370f32999ac9aa79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)(AG3!6B8mEEj-93putL1JXS0GKA^RffcRY=bD{&S&PuH1xg(c+mX_BpzcM?%*CSOKU$R&2wrl-iF~T z2Cxzfu>&u07O$nhx?Q4br}R`Dj$l{9rvtn24qGw#w~yU4-baveX~P<5AmIo1d~FtI S@R|<*0000O0!x?PFD~xwSpoO=1hgOEg8p*q`2U~Cgry5v~&oz)Y za6{PnYi!3z6Sr$1hhcodNE*zraRsD9ID~nu#_4=QR`OF1F5n|3uv9_54d>#zi9!6y zCzZKq0<+jrwxa|~_!&vR;cHn^Sq0sAiVg9*3Olh5(>NJL3dmQ`#Bba~KaL8QCXfBN zf&+Mi$5p$?S8xeWFoRoIz+Ifh3!$Q3jN&jpRS}m73}7#g;ChTb$8p>dX3RYLun!;p zMV<=u;u;PLElM$mNul3kcqv?_|3Vhm6wV9QB)B6TA=ARS3<@n=7JfwX6fH#q>=MqS zk&8bP+Lz)OE{h~H7|$hK#qL~eQ5Xe<%hV1{e6NUiEr+O`z)JA|zd9-KP|07*qoM6N<$ Ef@HPQPXGV_ diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preferences_reminder.png b/android_app/app/src/main/res/drawable-hdpi/ic_preferences_reminder.png deleted file mode 100644 index fe5117e0d12c2b06830696bce2cbe67ad1757fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)Ocf-D`;sSZ;sEP;_|N{nVGE0? z*mU@+R>Ap&$0_`?OnfI#poM+OBwhX|dHY-j?0!ycw^~qo)VKw!V7w^U7HD9*MA8_0 zlomKZt;+&?sAQ+8>lP!hrMSVf9k`XECa0~2-pt*5OyE-|a*RMD<43;u!!@q02{*ALnePnQU*QybbYde-6X3U z;TRTIIj{6<_cb zyYK-UV!;D^PmEu{XW4~!i*pu)p z7FxMh(Gk%W{Av{iT*Hq00000NkvXXu0mjf%6}5B diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_preferences_statistics.png b/android_app/app/src/main/res/drawable-hdpi/ic_preferences_statistics.png deleted file mode 100644 index 530fbf7c452937de69c5ae8a6af2327b77d1ef70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAk1P)LDGgeXLV0_~Pmwh)Cxp`?{~ z0F8J76g&b#qF)t>Ke0il(J1CyCd`Z#rV%H(nanrmo_o)o`|*!2P{2K|a?&qCB`0yH zG~_4_8tdRRV;&{+3AO_+68Ph|j2~o;sEBiHpgVy(5uz<6zmnyk6?<64K?-LgJkRi) zCY0u23F~!oQ?;`klra5G!B5C4(2m=L^Oc0N2W%yYe0NQk@stp2SxISgJw{I*MSF3S zrk&+r2jw~nl(C&fNORDFQ%q*$PT>Sy7zoi6*RK8KP7HoXKEw=mF^Wyxg>OYHU<|Vu z3hzX>{-!2UE70Zr(!>i~V;FPT4~-O16>ZH3UPK$$AM)Z36htGMj&)GOqMze!MAgvo mucIK^aMM%*eeR8t)8NCn}AxslgYl5XNos7R zT*8J08)QY6(pXrClq5D7)F_5#nv#XdB}QRfX1@6>p66>G@4WBK*C?mnzVrP5?{m(1 z&NERWpN4E|~~ zW2GFdGqe7M*9GtA?H^Sp<2uUtgv|+;rl=n~Ml&`p2b+U=Xo$x8&>nwbnUJz}Jc!s7 zY{yI78_8h{1`V%4H>RU4gFnMmyhyOZQ_aH99OD(7#JK`)WoCV`$U%{TZmbq+lE?4H z9Yb|#$}`@G9|Z>1#Z=^R6&%3|9Kz0+vSD(jU~?-Dk6`>pG@4>vm{?2ny;!BVF5iT1 z`jW$)P92;|h>k=*Ak3no=#S%a0oN~?VZ9M-!_nlWHHqGrG0-X0rpS2(k5Q@jnR==izN-#vJP`N^r9g|3^XSQ_y@3vS6A^AeV3Qr980W_6)$GLS3M@+CT8Po47d*$s=@sMPRsh7a7pK800000NkvXX Hu0mjfrC1)j diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_save.png b/android_app/app/src/main/res/drawable-hdpi/ic_save.png deleted file mode 100644 index 7c6e79d399d26f8a38bfcafe7c634ec12b49f23e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)UqK~z|U?bkg@#6TFv@!yJth3p+Xf(YWe3Mz{rf?C*#cnA;R+Is{$ zMGG4dY{WtoKfxP#2}?oH!hlOQo6SzLA4MK`$?(p+&-}wAnGB^$6Z3w6d`Iv(W+*2J?zD(>Hm(JsUx%d#N((_(O8ZN z^JrfOs9^!|2elVZ4igBb;)!7cwJGT>YgGdif!+%tMcshvQ4CBYw`3(yH;o)nw}(25 z?(rJ6=dhT^EDz8pwzY4*tGGZl#5B*6?Igg!4R%9KLxG-gozj1Ww-Dn{pr;ID9z%>r z?kx)in$IvMXv+x&s$o5)e*?22#(9?P44Vo0Eu4g!CVhv#GS*gci3hwyxtiX7J2K7H z(7$6)JXW%jpAG;faaq%j(o2|8%zoFZZ@lBKVBb=uz%LvHh=oTmioE~;002ovPDHLk FV1nC4uKNH0 diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_show.png b/android_app/app/src/main/res/drawable-hdpi/ic_show.png deleted file mode 100644 index 549b775a7878343f121d46d3f044fb654a499ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)U$V% z#8Pej*C=*G8+ih-AVk5A{}8QNi<#BS=FZ$JE8Tv{WbbCb^UXIiXU;uK2OV^9xH!^g z{0R(UFn-^_8h*B^TN}N&jh9$LBQcinB652V!^mko!FI+(YHZlnzye8vr|=Zv-D0+yv$yNWyLE{W~Nl#tx1`0sI! zS{N2qoD!SI*%~?{k(<(4iF0Mqhp!ot)e}3MC?9Z7pGtKd#!0W+IhP#K!GDC9}D|ubuj#qFS7%TAKR&eK< z#G~d4*{xc_=&?<%-o$_!1)C-t`d zNj;O{zAy0VB=yzQE=^agWU9dJ7j9FTnc}s-SE2bdWrk3s7BazWLa{4iOel)?ak1sM zQQ@7H(yJ_tgmS);5t%PBRff@u#VzAZ4IOY^cmbxw)`be(Qxe-F98+#*zTsTi#JTok zP-s7r2`BV8v;Nko5uxJuCnNYIv>zK8P7+;0e&lXR-LWI&S++r|i&J=n%>x+OjIl%i z!$>QR;TE1_F=Jvea&E?$+GzK0P@mB1HdntUB=fH}bvx*wgG0k_V7y&yDjqMT00000 LNkvXXu0mjfcC91C diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_slide_group.png b/android_app/app/src/main/res/drawable-hdpi/ic_slide_group.png deleted file mode 100644 index 52dd6daf3269228feebbc34deb0d31c10db52d1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)4Evc4O91$yq_|co{qKF&@FV%=|f`NXz0h z#%9Ln;vsCuXV`!%1`Aq%FEInJV;7zjCfAxcM=`wtL6@gkI1lgP34D$&Tr2$S=Kg^3 z_z`OdEi?^B@N62d!U5&neGCra!8Cpb-(yOKQxVnZp{IkUSP zzhiP5@4?a>-gunCEri|gtFhob1MB8-{3P7C2v_14Jes-Ji<@fj_u_uy8}?yp4rw*M z$&6dDNz_C=2cD0g@tT2+vlEZy@F(L>u@k5yVwZtkbq#v(K;~Wr52K2I@Q$dDMIzm+ z@oAc`rg66BR^SA#%iJ4>t@t9#eL5}Bjg5E%e~HZXdq|t;x^CQytMEL&6}8nXJm)!K zA@_+)e&}rWXNX$qO9|MRI8~{sD(J*pxJMizt`~*49V^q@+=zEYO)O4tITW;Ei#VQi ziet$^tQQ%*P?W?8Y{u>Iej?VA_;o2u+D;8lBj77 zi0Q}0!dklOa2ATaPZb?CNG&)lzcb2W4UUPeBM%)(OI<*qe4`v^Cl3P)z*?Ox$Y7=^-gViDU&A|VgkvJ!=kpr}yC`EBw`a<9|{1THZ20%6kZ{mDJbrj1Axz3VOKpWS>bMf$5A;Ds)hPCl!Jf9uc z5>>f4jynoDb0&WVHpIi40>d+~KlI<%9Im6WQB@|!74WVN{r6ydJltPkcwgxLiOC)G zrb@k08}}CQJ`lRwS~cQ51%?Y^d`H@;zOWbX#{Ja=yt`wZ(o${vUj>F!V*If{cSnp< z3v~0^V_MSoQ}(U*#aPnQ%5Ud%!FVZAt}EcZG{&9qwDgC6QeX&=s1o1?sY}S{R)u^U4;OOg zcH}8i^PRKnv;yNUtg0=#v?jZ|Hox)&%VtbhHG~UcgsPS;FC>{=TeyDAnOmE`q>$^e z(BG$4oS%=$9m*>9=*q@FASH? z^=+w5X~Jk#h2O11Ql78+bRYEL)TWTX+7}643!RM(vJp}(%;&QO4LUuLD{sy-6Kk^Z zssrSr4ji}D793xjpQvY^D(Ntg5?b!!wqst*FIKgxP3QWIZYiU;RVUQ>QWWPy;zOm* zWGqqj%g6D$>h0DS*uNFJo5D5+!XfF!28HwRp%Z)NrJald_cYjT);WTUFia{5->S|~ zC7r=!)j@Ep^b*5P)|on5QcE$fKgAm6g-uge(1`y4T3Ip~Q|9gq00000NkvXXu0mjf D<5u&e diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_slide_privacy.png b/android_app/app/src/main/res/drawable-hdpi/ic_slide_privacy.png deleted file mode 100644 index 1792caef6db1a201788104afa9ad5324646374d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmV-01kd}4P)2c?-)(qS2r-Q7TbOD7z7*RA?6o(xQuW zfe3mr!?!L_20?UrXvm~qBz!Q)f{H93tTB@$vdIw}(x|i=A+j_kJw2@TalSduIh}Fz z{9&=b^X;|Q{(oz)wf5eJ;b8<8 zPQw^HhM%%;KRPkS@qcWDZY!o%2H(%+7kaeLZq8n<9AzQpe( zgGcbS@XqwqZNp92Skl{w8?#U9KA&Tcl=ObfIo4ufnLwL?*n(NuiJok?;S&)fFd6sY zKAev~u`2r>z&Px}TPZ(g-&wdW?N7l}T!^nQr=Ewlrj#)nSK{gHE539G9>@5S?szQE zzQVIx@l@Iv-Nbx#73K?9_p7?P7cXIMBO{5qB5rz1=7wki*2G9&T1v0LyoTU zWwfQvka4VpKEotjKS=M~4={%qUvZzDo| zs>g}_*-orue7rd0^wbcVXyB2gjE-!7&i3@2vo4|CB74S(gA-g;$9PeR%Y=4jdqJHs z*JQh0oWnctLnA_)#1dVNk8nU78=585Q`1+ArT7CM;@X^lKzXPQ>JM-b_u_q#-pg>C z$e=O`FWijF^ZAShgzgaDeir}a9DnDW4Y67T^d%w|_T*PxRHL^-^(0s;D{6G7idfk# zu1hm=j#Zk#x%dm83lCl)yw>aJ*qDs-YGiVaPPej_F@ue^1?*&P+ z&*0ldBa9G7mHGMm#k9R_C`Q^;t8OuHwkUf2;s!G6e{3woy9OrC6KQju#+&n?7_E8< zd@c=~E$(O)e6PBFlrbUOMPgrTOIexYK5gP->S7Gmr=gEU(Q6Y2v*HfF8Mmf%iC`@! zzyy)86};`}yV;P@F0R8z@Jo^*isv(;q8HiKCoYA>cC#eM92UzpaKui>WF6>NMuKwwuDf|bOK?w2zJmtgy0000YaLz;VY zU%7W+f7opHUh7}`Kj-YT*E)y)Q6FBwcAUl(rtvTCV**>yS%Ke)t>Jq=xYH5qG`7VW zRbdl;LUEpU18e5suffeK__y%hd}2oMGzh<8Kh~lb%keJ0#>4P=f)8{2!I&%J0lvaJ z!R?J$`|*4DJjJKw#O%$fKaB1Q!h0~83%WU4b}^ITQx4rYl3Q=@Y=<{66UNaBf$~^{ zZ-VnES`jD1Rt-jj^EU?ahKpgCs4`Gq)D`JUFV`RjI&dbq7qZFMV`2uYY7`_mccRt9 zUoGvs0r)Zo<8=hf&=IX(Wc%@p0@lamxdsAekE~u~Yp*L{Wel!05U^2PkA7tVug2id zHi>~hqJOP`$1!-RO=6%c`o{&O6PeO!+Ad^k|60J0F<4*5xfR$D{STBfZxKJM?NDnL zI&nKRY=I?GvK(xKpdl$4XM4#=Oy0%IEfn(#eu=d|$r~0+x9z(Y3L2NT%YWYTx1@}} zuLWZENjdb*a!$iijk9Y3#SBWd)9`%Ghoow7`vQpBA!YZmY6u0X@cIY4nG%fx^Pyy z)1NmYB#-x%s)C|Y-L#?#&N6%-oN1*L)l|GKrI;!7SMco*pDZQJ^+DMb^hsZ}e_`Vs zJ{!YU4Bx(m5|g0^m!xCiqnvF>I_Zu8pO&IS>8+Xl6Jbmp mXG}A(6ZfKh&`u%G2c7{%lFfVP<2>U400007- diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_target.png b/android_app/app/src/main/res/drawable-hdpi/ic_target.png deleted file mode 100644 index 3a41ee4bab8de4e581707d357c85b4e04f2c63ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1297 zcmV+s1@8KZP)4oRaF$ne|KiCqgmQx#-3xtSWQ6&F<6e`BVUcFV2KfC zK~x4wVnSbx=w(Dj6iE@;hl(Z`G{um_A|kSv_M!-C%17yp^uV-nRGP=_!&=+D?z-ok znS1-ghI`juYoGsKd#$zCIXV6x#sGEtdjR+cI06)gX@8yCZ>*HS*}w{5GtjLM_Tx|B z9pHZ8f{e9h1HHg&l@OT-v;!woNTiK^;9X#fTW>CKTy^%BL!=IP6*-RZknezXz#^d0 z=+*+~1M`7Lfo~nT8&z+fArr=rzy{!!EHX2IE@QMaVW&gkO5{i$(*JG136j0}FK|=Z zLd#U4prn?RNhAr^l78fwWR?<-=nJv~6QCM6OGizH-l9s#Tw`{z85o(MQ;T@81Na>n zG>i8F9|LQEan5d9xn#y55nljy0izOhmK&X+#xY>A+BE<_mqP~NIaTbY^q58gZ<@sp z125>VFG7y14wwu)p=<0wJlp{MqIQRr*-t<+dJt#|!Ubyhml_4+fG>6Kl>{;?fj@|GwGBC@@xWe3 zCJ$@{jw1J=#ZJ{-8wAg&;4P=vs`BH=m0f&fC5s<1I{IS$P&sSja&h^1Y#gw?+ATJa#nnz@=YY;L7o2_ z$-IE+Ms8t=js;1#0@4FpJgoBfoO~A1OC7+aDsKRuC+^m-_q58lIQdLsH3y{KOj4Yv z@;)R`E!I%nb{sRm3&87W3M)nvUkYw_YlV$(4T8|8^r)f5`^4VJ;|5^2BeDm$$C0rQ zJwRz&^Nr5k7X($nK^3lW%9DtmSe-x$BnDb2Zul+cAYM+YX_JUWwy5P7i7RA zI@g~;Dh&&f`zv_adoJ7(+q_{tF%H(cxg7FN7LH{Lr7`6(4yoiJ_;*vB>L5oR)=Yex z371?iaJ8GO0v;zGUmucvtB{tW1pKz-CP^^8IHul37h=v?9f|9r;caZ2FPd^8Iwhs7KO1?ITs% zI10RsB+IbiQ*tO&BQ9@4GOd~7OzZ)E0=`DxT(={Q*|6~+#-qsAr7iR-00000NkvXX Hu0mjf3N}$g diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_tdee.png b/android_app/app/src/main/res/drawable-hdpi/ic_tdee.png deleted file mode 100644 index 1b59d83c409e92e93c8a091f8bbd5ecbd6b08db0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 911 zcmV;A191F_P)&G>%X_oIkzS>$K|*aTX7w(zeMF-^g<~qf%<%@|A?j{c?RvGCQ!G;%pvZGpADO)f__a;b}aD zbq&aD?;-O&)(o-TrP}E8bq0&-YsrHx$mIIHquNiamiJkl#4+)N?H7;eObarj)G5)$ zQu4Vs!#)fBWSXc7FDIXa{}-8DbxK?*_R$J9jhjqUbxM4ed>?}HPym- z2i_f!__U}mi|I2LGq_LOqzU8_8>CGCbpeM(9lJCm?#-(1;FuU8E*aspC6i45^=C>r z3|A-Hr8S~Obi^e1!w{zee`~%+)@IoJESmcn_%$WVX{6JlQ7FBmx7)6L^4<}Sg?P{604)=>ARw0J6Z9T+>Vp^qCAx;O~iy(5D z>V#3?1Mv!{BaZJ6=LG49LtMGhm&8EcgxEDHM!8>>MT;6ZG330CnaAt6A^k4!IX=dh zLhj$h-kKJ#V>aUs|D7O?h^Oml=FJSnq&PPn)a-@TKVo_A%1xA`P(L<_yWfgy#S*Sp lRr*Eoa_Vp*bGk|Je*r?jR5V~0$_W4f002ovPDHLkV1i1ks4oBj diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_thigh.png b/android_app/app/src/main/res/drawable-hdpi/ic_thigh.png deleted file mode 100644 index 7be1029fbf7420b1fdbb9e9ebb85e4adb0fcbcc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1039 zcmV+q1n~QbP)OOsP3bzRqJ0)Fz)ScI_u^0Nz{(7s7Tk)T zac&VopW+w%jW6*A-o=mj3%yvJY|p|o$@Xi!h28iV|KL3w!o}0Qu%U{ex5cRUpaaKa z6bI0k?kh1D-B>7Qaxe|-nEXyhAM6vS*>M3XpvvUe6 z?W*xwjB6Eiwg`-Q@RL}wj-34`VI_`;K$jPf;K};PiF9#)L5`C}&MTaN*NW+GDM}=g z^yfGxFF~`|8MoCz3^a-Gad%#V4fsld5oKVNh}dV&v}2>#RqN|0ri4dD2Oo*G?!!H}OVq_Bw1~q0Sj;bL9~ODysB7mT!eQ-EnO-@9+MH1vXbipF+%tNtMQ$f_VyfNI#S<#V(I%*`wuv! z7D01_)0HqPinFK0dbiF%%rdcCw~GViSlNGva9k~d8cozLcZwqo+>B>MvaMz9Tk)m{ zg14u(ZrqXX$7T3%mY`u1jyfntST5=_vHPYw(={ZUe%w+fW|s+PpO2wwIR3)}c(Ckw zJr3idGNJ>xVH%E2_*R4gsqbN2TV}IW9Kol=>)0=j&Lio*bPc7p(wbkAUT}H_PrLBJ zHR*Y7>N`}yIU;6jKVHic)R{#S9P1aO$ZXvp4;>TsZOdDsoQ3 zL+RyLr03^F;@ps7+aP@N43Q_tL@KHY-NHxOs@N?R+jlHo|16+sk$;pcjzL6N9n7bCH-5J4NkkIF(Nb$)?@pnpIV zu@igoC)n61n#x861<`=u2Z%*b(ukH~?$wAvEoN5CWp6Sw$u9W9Y4*KW(m*t4?UF1(AwvgBR+A zwzMEJG}nJ2)Y=Rq@!)w}m}#1>L%oP zbqv^uqd0`UF~)@>@))+pbv=B=cYGA)pgFw2GyGgF(I4f?T&lGLKG*;N002ovPDHLk FV1lG`3G4s> diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_visceral_fat.png b/android_app/app/src/main/res/drawable-hdpi/ic_visceral_fat.png deleted file mode 100644 index 53727cdb7753249e8b37423eb9295493a5e5fcdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP)w7Tvp~6}Lo5)TZ4C5r2fF3&eG3 zrMI^&2~tWdEHtsPuwubZ5D^iUY!DP_rPYdt9Wi6^oF{X7`rgh=XXdw=>3PpN{q(%& z)(n1W0iFU&fft@_7d;z+XQspjhPFsiK49p-CIG0fOlmQii?rLCK3`AE`5L5T0sWSqcs|IR2GJ#(quSx&< zk&wE5=Gl-{wy3Xf6Yw2)&HUFCuyBd%$XpKT=e&7#7RZ`@y|V?GGcLwO^#dnjFfQr? zPymklV739XF&NDtrOA6Gq0i;O7vMK=+XuA-xC{IPI*?I{%3Q>EH;uppU^TE8cm_-W zSAhoLS`tb(x51b?$0?1>kon#hfq8EPDj;C$VYJT}0tL%nP2QkS3Z;%DD)u&-6vQged4&^D5PyM7c0q=lsz=m=<(4~6M zd|s~rlS8gNv&em{?C7=julXFV05bz@t^}hw2pmGTe_xc1DeHQh6ur`>nNK=rCV}PwTH6{#YW7gIKqtTnE{!89mPmCsy+#0_HkGGX$dRwH|BRq%z~W%u~rB4VLN`tg&h`i z5f0`2eeDdKh7;J>VL@-;6lRWP@C*18Gdd(@28QusGtz`6edmkMwiW9}^<9jKZ3P ziiLPiiOTh(h(F-cbPTr!ii0Q*OVpUZ* zkd6+tz}+qaa9h=aFeK~pJ_+T6r99f%xPy}3z#JK(aH4F5;lo? z`iS@xyRjCxYrje)PS}HZJB6GUrSYaR^5~OsIerqw{cB<)K8$;DMGD=EAF*HLtKZbq z$|WM!TqE+-5U$FF?ZbO`SLCg=n1x@Pt!8zqA1vvcgH?D-y!L}4XpX2y+Ee1qek-#0 zt61Xy*?chltZpU-cH!eHQit#nb~YnS62B>{dLk$4qv7;>7R7ilTV&|(dn9O2`kU2A zQ0*8V?~$Nmd7oT-SQIpz_rH1~r|z#|;n$C4z0q3qQA6>%fgc21a8w!i2I#!^3?#HLi+&5AJZio(FH1}7t; zTuO8SKT86oXS`+gh>|<)=#j-o(apFm%DGlyzN&C3alVPe*ErhHuL}b>g+EIGoyiN> z%1y<6TxwGP9xw4hwDS6~I}Vt&dhg+K3o&z5!$Z|q)dSi845c(AI)WAjnZ=cmAZhIs zjkMkZNImYGdxmaQ+1suG91|t?E(@PG6QZ1Yh39x%)bW3Yhm~s)!+2x>0000R zT#3e)O>gd%ItKf7zy+L&@;SU#F5SrA(p|@~Xlz5#2*0CeJNQxu67HLQ@EtZb@yLH3 z2@e_sN#o&uFmw3SBG9^WiKjGZ5hldt7$9x?v}M~+$@2)PLZ!pC3qU2$_#8N)IJ9Q& z`UW(@Ja#Fs(4`D8#-2+diGgyIYs$MTK$DH#6`;x$s=C{>r3p~zvRoY&H0iXkLQ5H8 zh&n9*<=j6(LymxEYCyMuh7?_P65kcK#he;pzK_KYz)*DBVjl~+Ng^%ua8_~IKAst7 y7Z>}AFJG@R!@x^?3rP>F_^ADV9UpKnfcybf=i@x}>g|UB0000i#%B7%-&@a$Y#yc`s3hP7tA>n+ewJo>d9JmE)3G?5;6EMhGKND?W z!RBF($3k+qLMAHJDoW;t@R|>S=M<3_U_|&Cxb`j6BHWoiPzQP`LOsdpQ@~C&6&Wmq zP^6kZWaf&Dtx#NQ?jn^YlSN3AYGjpZ7-X^vIZ2%WQ+aU&93|vs6+&vQZ{HL+jwfjU zvKnweaJAdO#BLo{Or++J;1{#;rQcIt8Uu&G53uwo6P3CUnNJ%bv_#J=Nm#6FKjfWC z$b>JUu7orHc89!C37M#bOjJT9Dj^eFCzR9=+3*#4j`vSR_fslYz&k;Qc?z5XufQ8{ bnYZX4bmyUU1oQ9L00000NkvXXu0mjftqiy# diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_whtr.png b/android_app/app/src/main/res/drawable-hdpi/ic_whtr.png deleted file mode 100644 index 26231dcef516b6fca62499c0fd27b77fb9a12583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmV;s14R6ZP)RJGL%KjW!-uFS6oR5iD6=bOH%Ka^s0_h~94|2zVPu%uRGQg*J*;z@Gv_;({Y^7( z{bBQ+v-W@Q{XhGxz1BJ(?YJK6@E-2Nj0SEW`V;1yFrGrE)V{`XCEg4?iTxR82v<+G zn1vN$^7d$n`$h%lZ!DNhL60;D8Y=K+H}F2_bHMmLjt{yK=#G81v7op3uh3igF2Onhu<_SM4_aDMD zI0|!(?Oxt)OBFMiAf_XB=veG*;SFF_g?%_x(1!_P4vAN=Jb^oiS1RnkrHHvQVSx@- zU=IFF;4T&Uuxx)mMbP^R3+xn*xiL}vUg7Xdu}3)iYTfw|99g&?6#1(SOR^`vBIOB1 z-kT;Ie@SK=#c3F68u+gEr+opZ8_Vi#ZG$LBwpR2Vz$JBJ1`;O!8K>gqL@@_(uI42D zr3edMSf8-KEx0yOOa~9(Vv$0ccz2e?Tx5LQ`4vBw27Qj1_%>0@R^j-Y61czP?4qFZ zD_DWgO12xYtcTsX2DkUXf2SyDq@?x~yj>cwP{fU*ZBNbQYcMO@=~O`-EY1bJRWLr7 z*;bdx58?8{A}g`IV$yx$I9EmHw)TUFSNgM8vdCCz@py^+2d)#jYgV?4Rrziiu9|?D zygjA{_tp&9B7$4pX`7Fi3iss z1z<-*e!E%sRxUQ?_;YbS?kMqA73S!}Puh2=gG=*4O+|hYLn4_H@#RzTA-K83%X8Cf zqO3hBasG396;wvQh{APPAWqDUqJqe=N%&ZfVeuic{=W)p!_lJ9+a>Df92@a;;eHz) z7H%-5g5WF>yL!S@3Yrl97u1G2L7kTSDMOv0@}C4lBFOD4*mmO^K4cWY;T2>=+dR@nn$_?h+-)4iT5u;)#s+vB>(n@Ep#}c=u;wXJ+%? dlg;rj{sG%i4a)@`Hvs?u002ovPDHLkV1oUw!@>Xn diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_add.png b/android_app/app/src/main/res/drawable-ldpi/ic_add.png deleted file mode 100644 index 241f12a323b79ad9b53135dd048dfbb5482db862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v_czPZ!4! zi{9h}iJcGr|NqYh#O4dy9NGW<|6kuQ!Ah+wS85BJp;GaJMk_{NUY!N{3p&LOjEoK) oUGYq*DZ%6#2lJ}bi3_cfa+8++f}o)x`ZWY;(s0i=uP^UczWOZpJ?B2}bDn$ddEc7$ za1YmT3SaQ8NT{_Tatjqq;umh>1U|HB;y-3_tdN_-k^Kst46)8EH-sDe6@t^4!2*V* zmMo*5lj@T7qWxBQ9_vNi%|)j1J>oueVI2>#St9g1)^|9Mf#7>mLLS5tj+gAsWzUDO zh)NyXCFC`9N2QnO#Ya5C78>F958mQZD@RS-kE*1bn#FCL$vEA3T1Q66`=D$Tqg|3YT#Qe{nQ;UHDuOx*}{XqS~U`;Sij_ zh}{$3kdC@iiNw`#u^jPe2(RL2LAVF!q=BqTy?fmhs^S^02k}9;JS$E7mYqxa8f|#5 qS% diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_connection_lost.png b/android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_connection_lost.png deleted file mode 100644 index 26d4823897df24ee208dd2deaba4ad93c74e7887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)a}B+L}Ua(6wHVd;wIO^Nth%v#?#$*&-=LNy$dU( zwGOq`H&^)zs|<-AYOU}7H^}$>jUWitbG-Mo*0)xII-QPTS=PaDIBaLYBH$D7AP+VJ zg<&`XzKY1jIF1i}-``02zE38Tv%rT0wiI&)a$R?97{+zr061@1)?R9|Nuf~q27FHH z(;}iWK>*cibz~TZtCV^TG~+ma0TclX@PKo`vtF-vMJXleyK~g3JkL8;sZ^c-tvRz& zyY+f~XA!bAQ95S1T)qapNkR6y-R_MnNG=E<48yUA{G8SzvRSLuih2IbXj#2ATyh*|xN@T8r`jU2Eh0~WFTh6;c_kuSrfKdktj01Z2!i!Ejy<3Wc>R9= zDli6)N~KauL=Kfw7fjRK7m-3HNNc^8e0LLg30!tvcRcOKaeP84btZ}UPAN6X1dT?c zBCrXxqbO?Gw*5QhI}W@DP64-V+kU(lZSJwP)}<(lMvmhgrOra&WK!O-ZTtQr1paRA yOtx+R$}#~WB0G&nV>hQy?p~zy19dxFJWvC+n0000KP)7!axv)w*>-$hN@_I6BE-!?|4|^jW-%@OwecW3FIIY zqW2s=FZ@>qLc7W&P1Ap8zMYxfsdE7XR=`8ZFK7Y*y!(~~pj8wc14H1( z!2Iskra&T}40r}23we{{3b>Zu)b8F!KtpS{Di_7Zv2!kR&Q(l;b-km*#Eljo)qx7| z3S|0DfXR{4e)|L5sT~%&*RO=#HOSTI4KR~7DQvcZw1E!=%=ozu{`gaK0Arw91i4^$ z?C(HR`dS(FOoRJn*>r&~?UoqbkBEmnm6oNT%ftHFAKLOc3&1_-{$z*&1%Dsk65}X; TlrQ(K00000NkvXXu0mjfuYI2+ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_device_not_supported.png b/android_app/app/src/main/res/drawable-ldpi/ic_bluetooth_device_not_supported.png deleted file mode 100644 index 9cc1812cfe32eb0800a0d64292798f2268270880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmVEF(E2Yl+ zazVXd=75=pp4>_)#l0YA4w5AKm?X)i);jTI*T>9iqgX^90hn5AFWP1zas%M^F|*pp z#BuymM7BgU8xDt?2J9CR{UxH)3byWoQS(7-omguxh-fAvTVu>Tj^le_7=DVP=#_Ks z8-UYl?~IxAPLK~a9*@JaEYAVFu6xXEyhg`hX_}^ap1(83ylF$cAOOg+Y_Q+&zXCV| za1}+-e7Riiefhw*(Wk&GMRs?S|GmIUEj`0A2vN0`LI9Er6c@rbSUa zpG+oScDr5Pd@pE2oO2rh)B5WGEC5@rzjw^p|DY_(2F|(9O-S9W0Pj8tGq%GQc1vo=-&{V zgOEQUHcI?2)>>|L_Y<`U-C*{rX7%x^x-n;EDn=iFE4 z+$z;+W3YbO^;ESHghGgav3Z_90-mngGZ86*&|LzX9IL5QqsCg@u*9r3ul76BAL%X=86^@(N<0 zFrKTqL>7}*&{11l^iJdH5#gC?Qg!B>?W}$ zj4{WhQc3mu{co#uiTOrro#=Er&N2}Zy)ec+UJL4UIu0}M3L^~3j)QBbef3yQ_!Tcy+$0AbKYH(sqfncQnco4p3E;?aoIABzP2%*4xPyE?A1<;n9*^I&+wF64`lXJv)>&rm z;_qO?5$o)XBdv9snRjQ9BLF9}^<|Z_e?Xq+F*CmhaARH_zzD!dL~aB43ZNn)dr{Z| zWQ@s;$Kyi)Wg^-akxICQY&Lrlz@=GQ5s{DK@3a6hGXY3hYY$VY)P1e>C{!>vnM`^B z3Pki2z`?A|-MO;`$aUS{%v@GVRhJAi2jBvLt$MxwoSE;EogcLahyI|VX8dOLXNE=cp2=Yra4>ou2?%p&rJ3IT|nc1C)34$*epf@R|l_UsG zFh484lZQH3oDj1b5eIlM>*fwV;0pbQj4o1t#=~hDiHN@uu^bU!OIXUwi1?QJxP)OH zb7fW)_VVT{^oxx8c%SwUJkB%E()VVx#0vWb?0ecrsW0)gi0$GR&YJpF;hk~0u1m%y zo~Qj0H|Vs1{lrr4ZKQ8)WW6v(s;a7Pel52VahLX^)ZO~t)b~vpZ8em3jwiXljTdQu z!XH$lkhfEsUBW8#@EfP2kevcD>G{u%KmY5pxw|DK{WWL>XK4@p{~=$ghg$m)87hBq tlV}*)0@MyN1zv*=(Vcx_I%v=q@(+e!G3N@@dHDbU002ovPDHLkV1oLiuigLv diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_bmi.png b/android_app/app/src/main/res/drawable-ldpi/ic_bmi.png deleted file mode 100644 index ce0ee6e5b0060f7c2a25d2128374b05712e11854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl;P)M(hhKf zJ2Wxt-=8@g7L2<1j(yq}Tj-P+zTp<{W#&of%z|bbkETlzUND8x$Q60`K`+5pT*~B~ z>Bl{mZ)a diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_bmr.png b/android_app/app/src/main/res/drawable-ldpi/ic_bmr.png deleted file mode 100644 index a497d1ab37a7d392860b6503a952208947dd1c55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmV-Z0j&OsP)*83cpiKkyQ~ps1{2zJ+y|S(v(SIhXgG_nhzW(Y1(z9l{Ol;W|vLXEfG=y~yB}FopS8au7KcNPWItXQ9v*q*@Y|KT32Rz|5*dnN)AC(vf ln8h|;3JMKiU-F^56@PfeF*tL7I^+NV002ovPDHLkV1f=?kHi1~ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_bone.png b/android_app/app/src/main/res/drawable-ldpi/ic_bone.png deleted file mode 100644 index 2f925ae86b24aa44fd18f3d66795310878c5a970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)V2wl#l?O=!4#d#bj?x?~M*06!&mU*|KvRuhuZNEzt_{vB| zGI3&F6Ou`Zq{1N{@e}=f6J2pv9-@x+|07}g6g=Yt*9xDQKU1JsG!=Kufz 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 deleted file mode 100644 index e4ce43eebc97ecc6dd28bd212543386a62021634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)i}4=!lkm=rw-I;HP)%eHexr;HXvZSF!Wh~L+}Y?$+zDvF8=S+h zcHtXVR08#Qh7%dFF*z 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 deleted file mode 100644 index ce7d22f565ad752a86604c2781d17559b2f19788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmVDLE;X5&WHIhpNG6TsGAxiCqA8nMNhv9k z8lq$&b}U@VLb0JJnm!iHq{K=I(NGo?a>*r(Yc7j(zIx~FD>M8z?{iM){Qu8$E^nQ` zV=Q)JDQ@Fyt)O9pAUcLcNl=I7csGc=0a$=9n2FIig7HHoX~0A58ERq~UFgS*{~?)@ zBzN!w-I)F_M3-;|6Y&~1l6Yk)ZXT|pu@=cX{6+x6py9n1e(3mSWqAB=g14%_@;sa7~Ou z8LRLa)2faJJiy*kU~?)?N_!(N;t`gm?=<#T6Lz7mhU#KGDcIE~pU2ibZ$f1RCX1!) z5N|FfEy1`v|H|({ycO$0G^iiWiJ2*4g(&Vb(UH~Z-z{p=gDt4XJ#2taSeSurxPp&j z$HrhiUZS-mR*w_7i;-|S)w@MukBb2;Vn^QO0uJCX9^)oji2qR&HmCY2+*cbdSSyzJ fgIJ9oQ9FMCaA00Nk}wAw00000NkvXXu0mjf^v=@a 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 deleted file mode 100644 index b90be305f510b1506d7fd9bbcb58e06dd11dcf2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmVYn{>>p`j5gi!By#FDY zl_dA@6Wy3Q8lp=$iy3%>n@PN(5VrzXQCEqi4S&#s<=Bkrc#0orDvKSDzKk7$Iy}cg zbY)_@m{cEL;uqfH92R36J`{;g;0CJFZo=#Q%^kF2HkRTjzGt!BV`(k(2I_u!gX zhaxuO3+9v@wRnUBg}|vZKZ zMWZ;%*6g{2Dy+rieE$}=xl;(Dkw1WkveKhO|DAPPoMUSS*`F^o^>LwjnS#6%V(kEiIxPqbh#66RCd z7QEOAbO{^S4A>)F$4p9FkC80UfdH%p^auW6rH1ymWKNlmN;nmwgZPE}v8UtoPL4Xm z!6D3{0}rFXbG*R^JkD?m>ac|?XpPpEFpDDEa1*O2gywbR-ir=O+m3F>MM3h0h9pBD zMYCjP6+Edja2E@>hzr|};4F>?=pDX=)Awk=R6sAID|Fq_YCrzws;Z3Q79OA+ZKk7$ zw^&S_U(MGLS1^e$HST&O-)gMttQBYSk|%HuO*oIQ;c7YsIW8H+=P2|H$8ZC8a%jZ0 i8r63bA15oZ50M0|+r-cy90bjsbq57W{X{_= z`vYnaO&h0NL2sCYvO>$$277JpR!%p=7Z&SdziXYf&)R!K*ZI+{Fo#2|{)Kcm^j5># z7#7f}(84t=;yro|vnW>ZnUw7+u<)o>@0apVc)=asPQs_ z*Bg=^Vx}RUxi3&x(b0tn&SDzJA@DWyqtLC89^T?v%Pg|@MS(P;HqLB17|(Z!{($0PSdp`ZAHr+71DJ8y$Sn)c_i&^Js< zCw3g4h7{@>Y;{D8J{M|*{oDT?(2JR$r&dcB_rPH685^hkR>3)z{^@@1sK${r$~D|C z67Pg$bnr3k9Wm+L(RAo_>^gZ()*Cu}90l)5ufmsHs3V>5-SCg_r1(HaPkL%r!f)d_ aKKuckAVHnOX diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_comment.png b/android_app/app/src/main/res/drawable-ldpi/ic_comment.png deleted file mode 100644 index 3eb8c892d2a0da65c0cf12eda18d04ba8880e0e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)n@sG_WqT>ntc>xp(QHV!@BhT)<8wXtNBI-O)Y{BSEiuQv?lSEE3ehTc?he^fuZqYGt4UTttFy^QL&&4tEpY1*8d7pEh_dSPn z^kV@#ILBZ7#Am#SoKDo0xvv9jDB=RE_=GupkFjEmAEP@>hI8)!g+ux{Evbk zlZ1AhVK;VFLIz*)@J?(Xa`!Nk6xzfo+7j`GSh+LJLK1_KJdu*CMd%BjXQRM5mTRe6 zrjbGxudt4rdkXd9IwL&v?<(X>h1?K+WRMl!Aq_V;!3HKHw=9mZRHd673c?V+O$a^` zKE(z-#~j diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_delete.png b/android_app/app/src/main/res/drawable-ldpi/ic_delete.png deleted file mode 100644 index dd7e82a8f5e3dcef41a380e377cf0e64e06b650b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v}}NPZ!4! zi{7`F_Hr^g3LO17Up_P@iCLV(tl(+}_qIg}*C&Z~#4s-B?NF0G@o3j%%}33g&(7}o zuX1>M=BKo6NBA~hxxe9{A=A48{;=;dbJ7l*LOkX|qMsX?rp=}C`W!JETX41R$U+I4%c)B;_@;OXk;vd$@?2>@m3 BPoV$+ diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_difference.png b/android_app/app/src/main/res/drawable-ldpi/ic_difference.png deleted file mode 100644 index f9d4305ef231442d94859669b72d0c566e308a6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)Z$ftxXZg>~r10_N~8Y&yeQ3li|n0=Xj3C_=;<=DmhTYM~o~3K7}b< ziE+IhbQ+Ivp=~`?j?uWqFWkkM6x4&WxQHh>UIJ?1A%4XC7EYqx6$_(yj~Tqib=<)c z4oA#1?nPO9aR^(n9(}MHFR>=cJdxaLGVEx8JK3i^uKNc2uu1WXU*HlRB=BcAR#Ngp zh7Z_Q5^w~=F&-<4LD7YAZ0NAJgxLgCsa(;*|5jJYdJVf2-)#h&6)o?^H~d`=JfQgB zn#wygkK5SU36S9`epdk6Z4sB_tUN#muv_sUSE4=GkC}gFA7e&^q|k`~0000J5+n zes=yz;Mn30CzTwPLsimN4*2!S-{k#07nnzYmd*(V^%W$1=-Pq%I&=YQR!IUz#mo5_?H7)(= z_C6@3`8EfW{eOk%o<$wPzVA*c9ACimcaw+UDT5VFG7REBGN1lx&@2G@g2B_(&t;uc GLK6TOh-MW4 diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_expand.png b/android_app/app/src/main/res/drawable-ldpi/ic_expand.png deleted file mode 100644 index ca2294783a1af674652895074dcd2b896139a4c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v~0wo-U3d z7QK6~82ULm3a~xkuT*2=jXUV4&^DQ2`vZY%YB2|;D|n=9x0IBqsZA5G^2pHmCisXu zU%d9%{+T|{?$`f+bB3?*%ZJ9mrsa|=zkX~oliP5}NHxNZz57sLU-X{DAHj+lqK5j9 zOgCv2r83?Q+Sh-#YU-C##eY5;hkYu}Xx({exo~qHNAA9rnHk}q|8Vm9TwJ?y^T`jb zr7d4tj<*CC3iWli d6?RoH%&U={)$(P_DxlXGJYD@<);T3K0RXd>bnpNG diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_fat.png b/android_app/app/src/main/res/drawable-ldpi/ic_fat.png deleted file mode 100644 index 89f321705090c1d2eded2d9bfa350ab726ea0301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmV-x0hIoUP)78EG`4UM$#*=Iov$%g2`^>2Cp_W?Be3>;aT#PSha>D| z0B?jYU^KxUPAVjM#wKQ^FMprl5=(fifM`y-`~l3PCy{=>nF>4VM;*EX+X^ccl8}DL zbqs~SoZuq^(E-NF0|{!RvtDN)gho{7!k9usMxt9RX2kxXd;(g@JB++~N^<}J002ov JPDHLkV1h--miGVv 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 deleted file mode 100644 index b85bcac1e18df90ab41b6a7a42d47d701e36593c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)9UBtzlq9L7RjSmm2y>gAL~!JU(3W-uz4t51;dX&iS0f zQ*f|aF@`~G;%7BeLk*y5loFtTOZZ$v-5&Mh2hQOb9-^aONHgByZoP$h-NHAVJq+Y@ zg1p8rEaKGvfSzL>C-Dg{QNiV$uNUiRs|LA(T|5;bmvI8ysmtz+_bArzEDveJM@(W) zY-|ken7}=}MPsJsD!$}FkFb$3mJ)bMtp7#ob_7K%iwtjMA${WLiaB^s8mWxyn86Ny z;|b1W%}ruM_wy|#-NqY?<11EizMAnSK8W!0I)XcCq)iO%^D$i_)PdalCX9;pzZbdu zQw!o|vKkhnRz#4^2SJFLFQ(@U;x4}90gl%K_^TDX!jjm;EIR7}5dWigTtf>UW2;^W Z`~gksNZeUk_oDy+002ovPDHLkV1j}#zxMzD diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_hip.png b/android_app/app/src/main/res/drawable-ldpi/ic_hip.png deleted file mode 100644 index f3594b6fb5042cafd90350ebc6c1458da4d5ba0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)pnLe-251#`&jO8Nu?^57#;Oi$_=pPyeJHZ%{esJx zkS}_SJuDT9enjTu6xSoyiZ@zDqw2aP(ZIXxBb(8Ee8=uNK)d*b+j-D9HqdttP#-q& zgfujGfO)*c4ID}Pbb!O~bfXJbaRod0gohcZ3%4Q{0@w^aO99NXjz<_qe}LV=GzRco zde#>Tn;TKb1Xl1YYGyFlDNTP1>v$z?>~Cr5dUBAS(0)ccQ&F>xMhzWk8|_J32)Ff6&BpQ)N$%u&B&o!hv@`+(0$evc}i);T(kIXXcvI&gsQfR{sq z#n^oL7>H^7LObRI_6-*q{9Kk$34=Jtrwq=$h>g~V=eR^0I$ITbf)D7DJe#T1*>A~m zZt7}sF`+UBG8*p$$C-|bc%4z)EQ+;{$9QX}cauzYbcb223jhEB07*qoM6N<$f(*^E AI{*Lx diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_lastweek.png b/android_app/app/src/main/res/drawable-ldpi/ic_lastweek.png deleted file mode 100644 index d38f60ebdbacbc5d371d1c9cc3272d973feb8b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)U2v@kl6fRK5S?DM01hat|M?3UylcEmx zFo&%aNvzGl>?eA^M7>tK8t(TPSLx5TFryfb6D{>95%zvh)SUqwB-Z^H!wBwD_)3=O z6_bhe3SKfK`1+2DQpGYB@}RyFqDGkJG>55_5jC+^1Qm%UFo@m1ikeu*TLG8()?(^K plf*<(4bx>eb)^;${^MV}{{-XnVu->n)>{Ao002ovPDHLkV1hG;jz$0g diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale.png b/android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale.png deleted file mode 100644 index 2eb78d065f5295309f31a58ab62e9b34e9ed2e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmV;G0c!q7zoAt2&PL{N(~K?ot6Z0;G0Z!az>hAGaOIWrth4^Mxrhwk^b(xx}$61`m+NXysu ztTe%cwDEG7XMf3)pY&<+&V(F|u_2wpY!@36@YS65!vU`z-R0r)2{wE`{>=WzKb*gq zLepWO7^=hX8PjJI=9ib;9*^1RI-c%qvsT`+H~R#ScQJw9yg&7j-AC`(I{Cu4%`Fnx zx%kCVdyoFfOHzTl5qf=C1qt+q>+>@fi>ulvlRgRtlAxCeQ1og z|Dzcj6a|`=L=Ykt_VKE_2VP!I0Ii`?Fns+7=F-mQYQ^KG00000NkvXXu0mjfTYIv- diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale_light.png b/android_app/app/src/main/res/drawable-ldpi/ic_launcher_openscale_light.png deleted file mode 100644 index f024cd73c194c11ff8946e7f1218cae3346ad23b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)a9rTFLS5GEy=_T#gbrpt7L(<~i&A6)s)9fFy=HZ+Y=~-BOY8kN0wzQFD-ID@A2gRJvMISRHOH}I}+H&>#DpWN36Dbls;v1{1j_0;N=8iIEGsww)x8S z#V-K#x_3C!UZa>DusJRvb}?FbS%L*5h;GL2!81S{7N0mQhRg(FE3Gj^Xc#`LAb{O{ uwZ9wf=f#sZ@cAJpzV!c_cuiH+AO8aCIN}Q*4KJ?%00008y{#PK9~p=5e%9T493iznRE8CI5(ihVzb$6?YAutcfOX!AOS9s1l}S^ z*^>PzMxk3UaDm#O|Ne#l+{mPb8b3Ubl#?OO1_>O{bWHW~F-wC5&RjT!BtEad;>nvW z{#?Ed-9rc{1UbXTh+7vIDa(@iqenPdALs7P8?0QaiKDl;I}+H+iya;GuJ=RgA0Juo zpTGs@Cg1r`)x`5xa4WFh9Cl}z1r8)Z+}~q1owS3CWE})J1<8ycGC2OErB$EOX#a16JCaBO#* zrFYL@bv2i28fFh4@gPO$_Aq+*bP84=L6Ai31Z-^$ZEgY(J0(JSjYWX2;j;(@*!Abz sU;2~%(+6+h?ICxo{{L^{i5SzTzX)97w}OV07*qoM6N<$f?8U^egFUf diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_lbm.png b/android_app/app/src/main/res/drawable-ldpi/ic_lbm.png deleted file mode 100644 index e6726f21c5c90467253f14cf43f4845f4417f8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmV-#0g(QQP)2P}TM<9;P4d-QY+wnSvHT9@ zmvYpEiD(+fjU+oQxW-3G4E8aFW~@~b$UzK*f1~(;$ABN=qyol!;R(_KIw*zfo+|(V N002ovPDHLkV1m&co{|6n diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_muscle.png b/android_app/app/src/main/res/drawable-ldpi/ic_muscle.png deleted file mode 100644 index 04d66a81ec864a19c50521380bab1665895be90b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmV-#0g(QQP)v&8I=S}}Km_{1AVQem~&3)m^{?`ag6#D z5ZTMj2VfBw;rC=OI!Qx#!58NI4rx;=2&QC{{f-IQ*YR&n<49tozXAC;Pwh(ZKxhB} N002ovPDHLkV1iexn4bUu diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_neck.png b/android_app/app/src/main/res/drawable-ldpi/ic_neck.png deleted file mode 100644 index 32371264d598123cea1419eb8af4abe6f8426e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v}~}o-U3d z7QIg|?e%hY6kvVezgMbLAi!Yd)?n?oDrUEiC{5j_S;NMC|HQpx*TOdlt`Tw62?_eq zEWml>k>3NUZ&_QeFms=_G;TNEe0smrUvtyRor|7HxJ5sf*t@W|S7>tNp8iR}orj{g zd}vB7xyZe?ldtdMe>Kw^hkcsPZ65S3XlD@#K6k&aEKG|r6s@Z~oRW}<pEeZ76%1!zi5gZ~ St;`2HkHOQ`&t;ucLK6U?=vGhw diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_about.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_about.png deleted file mode 100644 index 17da8d23a2b94ce7ab3f7297c5375b8eb44aa209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v}}!o-U3d z8WX2pGR$&v6ls0f-!7$Sqdj{9?-8reBcVGuSecy^3iZG3>U_ZD;_ML9pm6P4*|MGd z>Wh2r=OoQAetvH5&X|mZ4%5DcqHHTpR~*y-_QOfvDiQZaUyCU%pgim-mTU(;`C@PpqZH%ZvXZv$ucI!lA@gK1Y5%=pXkO8kR#gb&+fw%CFb zP1;gzt^zJ00rL{SA7m-qe%Jo_o$7PC3mUA_COqJdymI-3wT1Y`-pc>(qO%QJTt(O! zx+281^$oj2_dJq5{G;a|M_$3)#pUc9{?GCbJScZ-#{uvA7gVxl91h{jc+A0_al|t6 zMRoV(S%uR~WLCIrym{QNi`nL(ptXfxQiW9Z##GG?qn?+46J@^t@K{{=sr^LloFv)z z8*7#S=O|0e|C-aPo%4{VJmO$tQyzyF`-YZwg&7>vS7ki>#{Njk#35(*kuspy89ZJ6 KT-G@yGywn((ts@h diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_bluetooth.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_bluetooth.png deleted file mode 100644 index bd59ba521183195b707d895e1c625a7e740bae6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v}~GPZ!4! zjfuSz9Jv|{cvzNyO}xj-U%TJ^{>3BB(>M4YaZps*ynEq<>CDq~t6r4f-0H<*aOCP? zZC5dd>HoSmYMn}po+>n1X2z~J-2a-cvYt**Qc4t<}iL?9neHD4`AF;Yc Y-c?j{pJwd(5}=g~p00i_>zopr09Nioe*gdg diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_graph.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_graph.png deleted file mode 100644 index 65d8f7c1450a73ca0a0d6f889579eebd6ac6abe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v~0Qo-U3d z8WVdj7c8bN&z-`n5GgpoEp_C=_axJlE~`ztghVs647})geQ^kCJN+@UHtf@!qXtvU(e4{gBct>|QHXW^h=+ z_Ku_d-S)&AdWCJ4Zi;aaMSkDl*_@t}5WXeaKX3AhxJPy$<(7Fz9E%qEru18Io>0AG z=#SleO5Z($H9p+yU|BC=ZuNbG#zo%kkwU-sJ^wf3hNawsx8EbeA6*IU-@5AHe*1M( ikL;0}o50X3H9dsjaQn8@37M=(=3EbjfW^i-=t9nexdD=l&FM^4d$BKhb0zsps;S;+V<-~nsDMMwLlTfezfmr1n$>w6q>Ncfq> z+REoM7Rd9*KVo*TmwEM2`1;hs{```li!YKo+hz7!9O0RL#ECn-;`D}&gwELku1CUV zE^EtZztSyX_RlgyHljKF7=PTxqnz`YcOT`j+$VJW|8>4kToP@!jhZe4eZk=A>gTe~ HDWM4fCT41> diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_measurement.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_measurement.png deleted file mode 100644 index 5d0b2b3a7117f24b45efb2baca262da62876e8b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v}}ko-U3d z8WZz9sg5{*L?Kq~WH!-BCvd>dy z&LfW7H|`wP&MSA{UfBQG;TOka(Xbg08AYGe?=?Lf{ork+eO;|mrQ>(@PM|*+JYD@< J);T3K0RUFnXhQ%1 diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_nav_graph.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_nav_graph.png deleted file mode 100644 index 65d8f7c1450a73ca0a0d6f889579eebd6ac6abe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v~0Qo-U3d z8WVdj7%0|4+;0|2f9pPB zrTdn>Vr_Rj)AAi$bNje#9_lVkH<_My*l6=^m%@|>DcnI^nqR$66~_TR!QkoY=d#Wz Gp$PzcJ81L( diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_settings.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_settings.png deleted file mode 100644 index 57e4889cb71d258dd84653795d1a34106edbff37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v~0Uo-U3d z8WU45*?KuUO0+&yH}5om#K+<&{(z}PU~7r6m|0j@)J<-|EgLs)C}kEiOHz(_A;-h< zP9f=0yp9dC_}>Qx#_4J2c;5S*{x6lF`?vazsd{u~_=aY^dj&%O89x6w!s?d#*ifs) zXr1!MTM}718LE5RYxg9#StL*$7(Kq$MDBGF4Gp3?XkLEr8DILbG+l7 z+={sZvqk6pvAdJ^Yw`k-Bdo_P-BO)5v)%A|wADWTG5ef2BaUM%R}zJmWpn}|eGU(^@vH5>Ox1wCkr zy|TVg{&d@{=-A(q-wJo7I?tN0ur*g@>qbZ81WTzIEFW4YCjIpJc$eGfW8Bn&W6S@) nn(8j`c>AG{r6v#d{bR7bCAI$CIZk(=iy1s!{an^LB{Ts50I_3K diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_preferences_table.png b/android_app/app/src/main/res/drawable-ldpi/ic_preferences_table.png deleted file mode 100644 index 14fe7902687b20e726e8ed5a2586c72fb4618b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kwj^(N7l!{JxM1({$v}}6o-U3d z8WX3U*UxSWlxX{Se`dSx8V=uBTrO1!i}+`igyw zw>((Dw%*+4j`*F2k2qf}Toz+i;Q77ExaZ%)!Xx_MUL?tV19 zyZ*_bQy*&k6(0y|ZwWXmR2ounjLDZpM*hys2F_J|5Ct%2@k(_ p%gVl&P@zB9QEOK!o`eZ<{69o z)Rq-=c%M0PbAH&PVgTe~ HDWM4fWut>f diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_save.png b/android_app/app/src/main/res/drawable-ldpi/ic_save.png deleted file mode 100644 index ef8863f68ff4c3b9e65bde018fb16f9e73e6278e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v}~_o-U3d z7QJUL8TvUn3a~x!PfBwBtYzES#oM}%lhHHmJXkqN=fjLly-7b7`K{>hXTBr*b<5sXu|{`J-a_dgw~{o<_HSEL zxX~wT+v`ciA=~z3i|jgBtXg-lbXi^Z%GlczKOfj%^nT;cUGDjcH`hvjnR>)tVryZA bR1QPPTD{~c%|-=4k1=?<`njxgN@xNAuY7eI diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_show.png b/android_app/app/src/main/res/drawable-ldpi/ic_show.png deleted file mode 100644 index 4e0a595c99083d07955bb1c40cb82e6b3ac947b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r#fqxpnf`p$2 zfG$7~Ifepk2yPDTEjr7j9%+JmGxPTC+Z$Fk)*A2@_OXZUz@~V{6XwehpW*}G4f&3f z1tM(XHW`>9{27n%G);8zLO4{Vh6o>wGW z_{xe!sL1{4#x+yy6P;Fk{3jYs7V^?lhJp7J>@u)%)_ax`wQ;X*b`iDI?4J6|-6{XM zTC8J|G|iR99!8EblIxghy#F!Y{587DR~*T_TC^g&$~D;uf~j&nUM#U9D-=IMqG3)m SQc5NO0000LNvOk`^?%6Pyv>B78+P!dtw=8s;#AQ=w}e2N()=DxuK|UZH_2SS|!h4IIZGT*nXG!0(K; zQm8$KMYQlO3}7iySin0R(HUjDmwwDk#h}{8MXdTi>4YeMGYN7TYI(?D85oOjpxT$;C#JBo-P(!5f7nl`1 U?w=FO@c;k-07*qoM6N<$fVK~y-6ebi4&RZ$cL@SpFMSy7G32SU`OKVXB9ut7vnpjbE;k|636 zM1}NF5n+R~FC35exnK{@T5IpS&%WoJF7-Hw zVO&BVw(u42@fN?zghsL6hY76VF`AgiN9@6q&>o<>Llcf+7N2mnlL^=GIl4PqiU+WO zDeT{+NbY|foo@3#$GhFytwFc6gJ%_S8ozO>L&DyOI-JRKAK_JvsU@}Fj+jDkjc*bU z8yLcLAvW;_|Ii9DR&rEZ;TO`e8>jCK}T`!8ej}44S zPsd-|4`6R_eevP%xK|dbFfI*xS-M9hW<%S=%}zxsw4`@uv_>11{#>gR{sRLxRCZJ- R?%)6b002ovPDHLkV1n_}()IuV diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_slide_privacy.png b/android_app/app/src/main/res/drawable-ldpi/ic_slide_privacy.png deleted file mode 100644 index ff9de10143d95f7b99370af6f45163d4a99b829f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)y#MNms96hugY zYh%rVYb}LS6cj=Q4PseDNk3jm!o`L_{0AC}-a?9o=e+VL_g?S|hkKv%{ho8r^W|L1 zu?=VOHsVa=O2s)ka0J6Rhk4uyZX8GP46|rpZF8exOrnV|c!_VgivG~dV+wmQgoD_D z8<=f18jI&DF5oa$a1S%VoeJF^EMPj`;jXOFSO|{A70b{OnuV-RTY>OhcK1T0Waj7xET zB&|f{L_g4lpQvSgOlIlPXT%cl7#ZFVDSH~ed(7>t6;xESN_48Doq!TrSvyuic!YVZJmZ~(XQ3McVB z;va6|erTGlCPmne2|S6>r|>3X9KCoNnyS@V$7w9#rsP{ardbMZOX$RP$UtP)EV(O%0O~fD}24djN zu#1J!D=>JNG@&Bhgw623O`4|9jgy?^+bOO*sa}k%9zA#1XoVc( z4Lg`b1{Ks$4%Z@^j-E2AIBGyv@e#wVD&Q+zXj9L`Y!R-p-{r~c;Z8chmALX;m&RV2 z$21r;P)Kqo2{zyi>hK9)0&FVwVlvKSA&z1|fOXm+T*WQS?55Iw zn1dDgiQo8z##}&e+(a9ChHoHNV>g;nk8GT^<$o`($X734H#F$538IYH``Oz=>T$2f+Scq5VAf!fG{lB^;>^j$IjSK!E0$Y72%GqHXkhw zW;o0&)|T>W3d8T97(Gpusf^7 zDQUPXy9=6#ySRo;7%Ry>RON4W7U87ypZS5$k|28|4*#-0iJ^1?lc5zq P00000NkvXXu0mjfCgcyf diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_tdee.png b/android_app/app/src/main/res/drawable-ldpi/ic_tdee.png deleted file mode 100644 index becbf610c4cb260edbde060d31d0d7d9d1f781c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0ZsmiP)K~y-6ebc*2T|pGa@t-1i9zYNjkK{apokvBq5iB$ou~AZZDMWn+ zEkwayOx{8evC$$;8X=9MDPsr(l4^S?y%aOboPGA*A51Z8t@+Oy=35kN6o zD<(_MwCDp)@EbcA!vOj)j4k}aIT}TPqj=~qcF|pNSuFzpp_xx+c*H^lURem=rl zI?H146ukwIRXkxf7vIKN8u)}I%%H0T@&g^YTn)FFsCY>WY9QztQ54om_XjvGrnUwSKE(!xQm-q)A3LdY%y2cfo1q9n5{_l_^da`T1lNwe8W^p zeh57gv?+{DsU`*6*9uy`h@GtGa$UkNE@3WBoC~&3^|1s(Fzu;e;w()xVsJi*Z3sVF zrq9AyW%)!i!nU5x#4|UYu`JmT;>s=+wR! zu^ZhUK@O%}1$_;M+wdEoS^}NHEPnK21Z)27T^SpD=qk7^n%ahaxL6m~8BOB}e)S0S zN<5LBZ3gRbry+O~HsNL)qvLoZ-p~KAAP#1G&I z)#)taLuR^^%(iA3Kk-?tL>HGc$-5@H*Yn07}#u4KjnW9c|AdRJg1OB^c%002ov JPDHLkV1ihr)(!vw diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_user.png b/android_app/app/src/main/res/drawable-ldpi/ic_user.png deleted file mode 100644 index 0ba453dd51a4e0f3a416d5321ab5ca45c0bfb6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v~0!o-U3d z7QJ(?oY!&<6gmEpU%0cSM}Unj&Qa;4Z~@!9mh_3g^*-@*zFVaC(B>8+V>&+vwB!E>t)V>#+@EDa?5iaX1`3! z-O6}2#bI-Nx-?~=kVpp_>WxI)kUH KpUXO@geCwT3xY=g diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_visceral_fat.png b/android_app/app/src/main/res/drawable-ldpi/ic_visceral_fat.png deleted file mode 100644 index 767df8c2a237adda97208d90aa0375521327edb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmV;G0c!qw5LA->Z5>u{Q7*jgtAHw21@E z;vDnuh5W==#8q663fsVQZc!CIT%kEEq>DB#V^KZEEzE_p7ADIeUvY%-i05z<-=MqC z;rJGnBG8{m%9nEyu1IILk50fJ@F@?fNVn5OEy`&}d==v#*uoyp@E^-XuBzeSCg*NG z%IRPQ-{OBgfVDE%nSK+F;d?+}7mEY=8LV0a%WkSIHDw1&*opE#6y%?xlAp-R`HgKX z;03?%ShTZr6y2hUDcnnK&?{M-=_8J@UY1b99iEgw+;OS@N+FqMq$}>}_tPNcP-^C( zH7y-zJK_nPV09Eo9`+?5Ywv+%YT%#rz~ATFZu@ez&EJU;ubjganovmV#(l$ZtEQ6R7cXqkR-gQ;{!7%rpIp;fPW`4Yb7SQ;D z{3*1RS{TM|g^+ffluOt~cliE*ri5{bFR}l03LW?s7P~NuW#sXcv;l@z=15qfj@28O#?z zVi2f~&Fg4I8W{}XbJ#44{m|v()3auZ0 zu@P(~fevtvxd2U44^~94S1@n!vfEIH9~j4m=y}t)6ImjKTHN3i-?0=nE@}~DWx7bx yPr)t)&vfGQ6`_uYhPj=o6YYRz9*OnKekd#;8MOetS z6j}L`HFa2UEoM#~w{zys_0+GanP0(RNdI>0d3`!j3I0{Ew=C$ zPyEcN>b0g2uo4q4ahd_@s`OQrI2*?+JY`y(s{?(+aZ-4>?+nm;-Q<*THxEK*?@QY% zFwu0vSxh>@FxK(d080J{GkA%K*Vw=sHih0PAV&j0`b07*qoM6N<$f)KcnT>t<8 diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_weight.png b/android_app/app/src/main/res/drawable-ldpi/ic_weight.png deleted file mode 100644 index 203698232222b9bc54ddfc4bcb85f2a80453eebd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0prIZ)lmQsNq@23R4N46Ag9v5WSrc!#GVr0+P;I{p$bna^m3Zk6l> zT}JH*sHsjs(-xrVSv$)0q5hzAZ*$0X3rL1Nt`a6KV!;I_shF{$W(ngnfX2xoXIt$# g{PeZv!(QX|2eATVV3c8i$^ZZW07*qoM6N<$f_g50UjP6A diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_whr.png b/android_app/app/src/main/res/drawable-ldpi/ic_whr.png deleted file mode 100644 index dc646db606257bbce1b857163aa6fb3870743535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7l!{JxM1({$v}}Eo-U3d z7QJsT8D=>-inKn|zbF#v&Qi#`ZKaM+&QaDEL3e_!!WE935_!ZW(wVgMtf-tuar_Y@ zc0J=cmVab+I7iC4f*h5yvl+}u9pc`DJ?%#%*&S$4;6SPb+7gQu&X%Q~lo FCIFeoX%+wg diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_whtr.png b/android_app/app/src/main/res/drawable-ldpi/ic_whtr.png deleted file mode 100644 index 830cac3cf863e8c19ce102c975f308e24f1cc6a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)0AQS~H zHPn*3YeAb+ThNe%LfOlZLsSYnnAOmWLPRh0kXD%bG~Dx}+mGKP2_CrIbH4Z9@4e^k z@~`Z|7$$Hyuo}+b3Of9!451NYIOT-^Bj-w^Kj!)sv7hMj*@tB`s zuN355o?r*IW!NTMFN|5dz^S<9Hijbx-vV32Ni0>ovVjw%w720{fJ+#_fo$UtMzCB# zvW!pF07*qoM6N<$f`Itf-v9sr diff --git a/android_app/app/src/main/res/drawable-mdpi/appwidget_bg.9.png b/android_app/app/src/main/res/drawable-mdpi/appwidget_bg.9.png deleted file mode 100644 index da8f77e3321bb29fae50c3224f2d30428eeec735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6494 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 T$V0M<00000NkvXXu0mjfyuSSt diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_connection_lost.png b/android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_connection_lost.png deleted file mode 100644 index c2fb4ab65539ae043e7c5870f572193641088dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)>XU%S)`sA@lOBxx-d zi^YXp0D$4);dj7A;5*PALYOti#Le}3y?!Qy@Ceuotf=Z(6h+IeyrfmLS>F3WRh4}GH>44GH|k!c_sihx9bwHmTIp8V{sgR z%F^dbvN7ft@H^GoBO+b7v{?hyYBdfaya3Ya?orhR@BN8?0$6JYLI|@!53rtES_isS z^+~Io$M{nNJYMaSfOOYN~p^U5Jb^4}r5O^SiC)wgD2zWT{j-ngpy}^(WU` zoy=j&7By>VXy{uf5fDV=TBTB%$(Y;KKRLJgjsV7(Iqfj8K|Nbrt`m(@X#O&1JAF%*nV zHJHFe#a$HzmBj~GeF$Gc3@b3hO9WNgXX)!_{xggxL%(t)HPX&>m8^kBmzjY#T>dLgNry^C1!qT9)# zsrJbDYQSVJ=%CYA3{Xl6V4)R;b!^9^OJ|>HLQ()zF7`J1Ha+-`OTKpgSw~U;(=O(p z!`PDE9vYu?@5RNS`oUUhcY3Ga#YSZQ+~S*b^M(lf^nxJ1HILif>q*reB;e3OWfcXFb002ovPDHLkV1lfBAdwX`-n z1C>j)y956KwT-c`Fh(?Yg;&5uV|6h$#>CF#8Wch{VAyBDE-riQGTv);cjmqKneUrl zOE5IYajpv?J_GQSQVr8MVd@w&<$0caDuCAdO1s_OF@)Iv1?Y4-mzjA#2!cJwac&#L zJ~L6W1Tga@02csk2_arSMjQ{|UQufy=sn_d&%H{GS051SwI-Onx zP!7W;L^N0jpfqV(>nbz%02Ba>iKr%}?037}v%}%=77@Ko_8BQKQBo`xKQi-vIP!;S z$ukw0C>f1L+m>a0$%@|y007r@D*$>#bPm8I2!aRAX7htdtnpDnMA2Zjgb;5GH{)gn zuIpBa=p7a%ikp#=OhBUk0sbkD-ZNJakWnJnbt|#t6K1xSqau20vg1<$iLy+H=sq(a zME&#md;p*pLNe#%1VC$DjU^uw(XN#8AnBLS=f4uskMJ|~fLsB1p0~Yj&7TMo;{0qj z+XHYdY?@(Fu3i$d0`PtR8-SNt$wPY%;70h~BBDE39FPTO?!_;y6@YEqf$#fI0Nl)4 z82~Ou$(2&Jl(J7mwGi@)nU5n!qn!+_T>6oMvF!QmL@_W>F#uSh+TPf8_ mHd>Z-m~1=EU&Y$wY4#UW;4~rz+DTjh0000WV diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_device_supported.png b/android_app/app/src/main/res/drawable-mdpi/ic_bluetooth_device_supported.png deleted file mode 100644 index 9166ca06cf65392e294517990ffa248ea4ba0ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)mu^-zXNiifVEIaA)w#ypALl7j_UwGM4n_>_NmwF znToov9{YlNpi8UeWh+IrQU@=rU1s6Z(8f?z)xUaYyG+i;+*?F z8jWrN{Rt#Z(|ff5fL5#Z(L;WCNJm62O%-Xa8;!;yu;`C=oOADk069q8zvLM3N^8CU z66f3%V3WPI9ROG3IR0FurHT$G(d+fjS!*|d6TldVe9HRf2Ea9A%$G8aN*~OOE6Sxb zuw$)lSBcjGCJ<}w4fe)0iGfn8bS#Gg0BEiM0;Al~5$D`oNNwdm01%NS;0>@alllYP zG{$_WY_2Mqrs*>9){F1vQoH!=Dl=m(AWhR{rPKy+5*Rq=?&i{Ws4-(DKtz_5QXMb8 zZLMts``Z#lQNPZNrGS~Sl$vNb9Bu(y{&NnvPzy+sWI-vl={qkq(Re&Q+H5vo0x{r# zRb$MvT0k7f1K@d;xQ`dW<(&9h$-RRkGR8d0vg~|~L(hbW7XkoQR#vvFibBOp0Rizi pMEpkQ2zlB zg3yzh%nD*H+RSACg5H!~Y(W&YwM7xzqD8O@q8CBzLD7r5v{*_PGp~ouE;ZecwC^Q( z-^}y=@??9V2!iVy0vKcV zI*v2T%u_)SoNXp#<~zoiATfZ5b^=HPXk+I4zVCN8(EW;zt}*6DB7l@~RtS+{<|P1W zA;e@oC(L{az;u)j20@T-3IG7tb?2D*9DwDxlXN=$3BcnBu-w|(dLF>XD8FWm$u$K4 zKrWYi6?dYw&i42BuXc2FTmWzn07|7&7l7T7?6u zP71(70PW1YB!uYA<#Hct^`ctEO62qTgJBp>645pQtIT{+DK$PeHs&lWEZk-0)7IKd zz2;2;0AP$c4&W((b^yynl$BCW4-XG-DHe;JN~zC{^i2T(ptU{(;91;B5^bWbf{6YS zk&V(eA{tG&;+q4aNAwcF_BG`+Gf!!)vrTWV(Z$##^P2IM^Xi;z*n#i+C#CKX@_8|dlbQfyOpg%a3CeFyfrv6;7|vI&hhaExt<3-^pgboJ>Os~4f*?2o;1Qxl z#LT@?%J=bcsZ{DKfbUUScjEs87-RM@^8|pc02Up`Ii-|(6Bo6#wCpIAO3wl8i%P2~ zKdy1D_0hTjDdiU;8Ue5)Ud`XcF73z1)v zP9zOUS_MXniU^qF+?IiEx3*~h@4y6bY|neZjSN&nMd**Kd)jW|U2Ur7M*!?>2%&o0@xaC)ER{)cF^@v5z zqAS2hpx5I2fx9k$!D1d}3RqAj67lxQ!7l^ffY&Z}+Tz~i3OJGH5&Sc7(bg{kU(LVi z^2W_qms)gk2;of9@5p^5>D2D4l9Hb3^zUZZQ{|b};Ze>Jy~mmn7z8$en#)a&=w&PT zyaQ$xx!H`s05Ik9lOoUN!5=%&8u_2;3Q@Xum@fbwv2z&M2Hp{kYbS8n4&Ktp`QeZrfB*-; zt)krKRze6r3&ihA8Vez86%{D+Pc98FBhZjEUKTD%e*t*ae43m!tm^;(002ovPDHLk FV1hZ;0NDTl diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_bmi.png b/android_app/app/src/main/res/drawable-mdpi/ic_bmi.png deleted file mode 100644 index 17df7081036dcdfb6b69167bebc72f0f36bd57d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmV;m0ZRUfP)af+yGd&ePA!5ultDu{nAD;U8s=d7IlOEB`AX4$E`|p#oOj>lT+Y4kafbgM zVJ}1w;6XVo7|*OSC~DhjL;MXULI`>= zT2j-A$>2-;Y4Nb=z_ZNx3%YR=H}DYinfu{FkfWj#mC|B+aT{eNHAT#Yv(1WQi0|PA zRxySFRG>B*Elaz(i+(ibX#m&oJoqA3f?vYrY+<&+JG4jfXX%-3NQ@QZ7R_$$ir z3E%90km=yX;J>gFT;!(?HuoEIdk!8*bKAsItVQE${D_)L{Ioxc1vE+T{R8eq{ypwt z9kXc7^U(%zKKOmSl}2*@z=c^@Ymwt#mu;i5<1utE@Jp6WNkuQa0hoM zSI5>C1IeW&A|3n(f(Qu*$E=n>5-xFR=%S!phw~MlPUo6%jTYZW&-3|yKMxOw z8~!(yWITc;%%Zpy!-GD-_fc@v_*WzRBUQT z2dQ~CnxSpS_Y^*b=e;b6*2YdGDB}=6WBdf;U37in1D&j}_)v1S3XEYT8hR!_f->$) zZd$Rxw(bd17B5*#6Z}!&vIJM zqdBzXf8{wGWZ1+5Y~b}Z6o9+(B%9adcS8@H1Jb`suHtK}v;Y7A07*qoM6N<$f;_{{ AXaE2J diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_bone.png b/android_app/app/src/main/res/drawable-mdpi/ic_bone.png deleted file mode 100644 index 2b3d329d3c9f5503247380e29e2fc3746e403d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)iN*`iP@qCVA)?w*%#6rhW_M=RNlr5J=j1#8EkF6Af+u|92&EpFzcGzEf9(=n49^gGIzSRXD;Ql}HI?BbAconM& zHK%w+KhAKK7EhY-z8tr5yaT?M2Pa&?JXUbrfbS&XNoP>N97dx558=HZ#6mQ-iH)dH zswkkQc`GU?N8eT9%2G!WCoS**>k&GZ27?(a3g4C?;eNM^0JmvoysY`jZI`oY;5Z(; z#A`BM#jh^#-K;pAcfb$w;03JVCZXn4ct)8UykHU&ZE6Ox;;rIR^OHN(%LXOkTl0no cEae4%03E%VBUm?oU;qFB07*qoM6N<$g85^j7ytkO 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 deleted file mode 100644 index b6662cf51fc01b6fc5ac52d7b3fa78e1fef239b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wTcPWi ziP`vwm;d1ZN32A9oUdr;&fr7v0Vh$9D`>%#?n-bRpD--$HQ0sT-4T3&RF<{f5iE~^ zc!p;5=&EzYU)VHan$$5Zc!V!qO;idK@EzCiKq}KmY(TI74cZdhyM+EZzk%^$t(a9Rc%kPDL)DC_C`TVW4JK_kgE<(T z@vp%h+%1*hxHPGgu|n#iAJ`sAnxv22o;x=&Pb%p-C00p87;nkQs&F*q_v3jPOE5mp zGTaE=w_vw2AG|-F;I`i@Ir)Vm3F;*lE6PLA6MOLr>q{gUg@;lHb%uL*jxmMZ zvK(Wu6mLs7RY_C*w`dW&Yq(Ue(`UuWQT#4$zj0$;`SoO3^%*U@bggK4GIg$IJ=S!typZON7l)dyG3=brC5-}5`?+!8I9 z>6nQRc=-?Zzm=6}j8%uq)&%c^_c)0P)Sw;{Tg$<5d_=$4_rOkcYz^@FQd-uu23TIY z;Tf)?T}zEi{^HJdOqMF99*^+3rH+cpNPNXL)JkdkfOY8bzu@hpN_m0qn2iR!4o4TI z^yQ^9PGR1k9IOhUs@N~UCG^DR&|N~;oL#pFtN}BMfj8BBQ&U~VB(y~*JPjt_a0at5 zIAh-fcX6+ngX2=Cj=>74ioRoOIH{6;c4Kbc!dxk(=M)(wm2r7f=Bx}ylDOT;bXl5#BFwJ|`Sc z$(=vLo~GHd97C`KZ;Ci5le#)96L3fxf~Rx3dNI5DOZloU0^AFGBFYA-1Yr=~N$*tL$wwQgGnJN z#SSU0`BCu+TVzIgoA?gHG--$(35S1@?ovbc4e*B%`P=NJA2X_`?4%97&Hw-a07*qo IM6N<$g4obEga7~l 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 deleted file mode 100644 index f69a36815c4047a97add8e9630a60c3e20345ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)E z?{|LZoZt8Re9w7?8n}IlWq5*n?-Bn-+lan=o@3=;CZCAMIErSRMK@Xot3Vr`Vsfq< zu^S%^M)Ea+md%5atZWUqjSdVOXzbDj6HWTg4^;)!J9DYn+J4Tn{8uDU2SXwK2Me~)W z>c9fjVI*!Pl9xDv<@lr!--xUDt5$(F(W&#WL8#~ze$FC0#mDX|J(sXbQ2M7Dqhw_s z{-Llp21j!L?|h%ZSD2m8*SL_r7m03TIr(V(i!1)$p+f{!efSPDa5Is1;?qR8Joel7$ds6X#4TGknOILuUpQpDT1%# zH4=|UtDvVxNRZ%uK4#&vkY&Z1^86M!ER-;{l(=3{P-&NI z+Gc{kUklDUtQQjOOJuXs_gg}*IReDLqc>3_TDlVx#1FkQ6Q9GPQt-z(rC)7x6KTCr z;lV_CQm6|tCA;;v`*o~KB-N}QzX)2(qoNBxDU9+V`JRczLJhxX!ME91(U6le`Hj5! b!{VXWL072=GmC)W00000NkvXXu0mjfR2NQa diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_calories.png b/android_app/app/src/main/res/drawable-mdpi/ic_calories.png deleted file mode 100644 index d20a1be93e65fdb263ff0490d198de2abc9a0b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)nQ@ui8_}pSGGk*TDdVzmFR8&sO$o)U zELc#ovLFj77Gh(=Laan`NhEA!A-B{tLhj>!H(0#?Q-gE9vtc7ooxao8_dd`6eV+IK z@*gFTLnCT&7d04&@92x=s4PQF`9viTvH+fE2G(b#Gb^4#fSIiXow1^x25F@c0N0Pt{jKh?~ zIVc_UXx^fH(4UjQ%49_zTZDy=Q(=1|&tnWGW3ZUKYBXaKs>+iUJ1{<3(kfQOGTcda z)uKt{^*Oz3z(Vv-9p1()v7`E7HlF2ron)!F$vabLT{tKk>v3FUQwVJp8O5F0SVEvf zY|}#DHK4hyNZ~i7FVR4;D98H!KGa|jw&pu%N{YipIB*~P#CH94WmIC7$nT;U^D|;` r)?oz>qdT9$xi=Oh z!+s3m3#M8GbjIheCVOhQfDRn0N2M3t6;5<6N;9lu7Bg7N&?8hZ6gND_WCgMmJ-A)6 zz8CJdk!UzdRXnI;89Ukts)|l5*6|TX6UP9uEhNlhY>s32P{#x=C5|y%+XBH2JWA|g zOl0_m{=_kY?+ud7G$9zrv&7zw+5A*3$5D@aYUqplbdqQd@9`R+;@X** za|0c?izC7%8Nn&lzC{-Ij>K5FhwZr&mf}fo;bDcODOT_{N{)4*J2%SD^(CR2MmP|q z6>4eH9E2-c#Vch>JV2-XulO9@kgTHKg-z;YV| zYXyCyi_(kK5eerL!XjQaAV?3oDrxo9(JxdmSK`ZYB1#eIVWuRrEv=vndxUvJ7+yt8 zm#o3#M4!XXGJ8f=33lPD@Q1Nd2)>B(4H8cZmvP+Yith;b aX#Nj=qgx2rr!!>$0000X9g+xPjr&-a|?IS=Hpi3gN28u!=; z-exm2t{yXa3`(?z1=(l~a~R5_DJ0)QYgy(jv0qqz_X?!X9o}z$J?56}w;h-Mi30ElrPt}QhjiO`ex2UXW z2hC_pY5a)ydVon8ou(N|&AinB=lM7fnE$^Fw3>7WPQIKdb`u#I`i^>A5H`+^;;NBn-M7k6Q0t5^*4 zSB(6{D5h!2z83Ku0LxjKm$l++kM}hGO8-zZj&Om_dc~h*BY$wpy3djT00001VIEPs0bn^NHk$B&V<~oyLUHXKRBGroNwkk zk2^Dqc1xgshdpwIVk>UTY5fiM$1^kSFd1D;s(Sdg{=VB+mh4Uotq7PfJ z8mrJ1wnz9I+^Lw4fFEb~)S&g_Ge?s6`h4l@%hNWfp7JSMGysi{{ z4Za6qu*wGdVts3weK~f8y`#bgz}0ZRT_rdi4o*)Fry|;=s~N|-1__+T2ecQkAB%BI zy30nOUCNt1Mf8U8VS|E`^5O@c7R)}{Xafbta2?G>v`Pu}wNB?koxB%lE=c!JdcZtP z#{3uqSW<&OHS_T$g16MMs~xek5;P4*}9!9F!_(33oDUXTml_sxebiqP5Ob1d37;_GfH^(iL{j819GS#RUkIqg!fB zbI>VurD>^yEfm|$_K^S3FP&ln`xYoLEWaW<8-!_`lX`3|6mcAn7?k;fb@>z^() z(m$6hSGn3aL++|p)3;f1o7=)w8W@=V$WD+h^5g%rL-E_i2=#>T3@QwI&$o!E{*rK9 Q1GJ05)78&qol`;+0CtK!H2?qr diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_difference.png b/android_app/app/src/main/res/drawable-mdpi/ic_difference.png deleted file mode 100644 index 451a2d3d3334180feafdc20f3cf015decbadf4a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)hp#wr$8f@qO{Krq^fijAO!NF)Z-M&nz-Kne>(ieP-87Bd@`W%lkh_`zX!cFug~ zd}rs()HIL9=*L`~!`H%m9qs7EI&|P}{T~8cz^VAY9M>XIMz|KOasD?x;bE--;lh|j zC)T4U66f&?AMpaO@e;41O+!tPydjcw=ANt35{Z7|Ek@(wjOY!1M4tuGe=46r4FfnG z$KPWnd6H4Qk3p71zheF2K9*vOP@);E!d|SwoW#OBZsS(sdl$x{qC*uNI)w71@E}?d zk8uq91;s51AA~xNN2ipURDd1$ApA=h!Qrw1XM|clFL6o*7{c+~c%Kp#ZTN!C*o}8W z^E3)j%sxX>MKA8;#=|&T5nu=>ibTSu8AVH$VH^6eGv{<3moX?bR1w>;4L5N~XiWGf zG~Y@b%$&~(Td;^>94S$74}U7`Sv^MX#jZqv{;1-5Ld7_qCf4LJRu^iRm1ra8$H^(- zjA=(VZWI>xRFKc$vudd$(YLJ8N>RrZ;h1QIs!}uzaB;San?dQB@xM@YdbSEbzDqbI z_XwBHBCNnXOi1@hDQZH43}RCC2AITEVVgI)A;DHWX@a!O9$`}%dAD$n&Xzp0X&lIx kBf|ieRY`0T6F3Qf0nodoX`rVs@&Et;07*qoM6N<$f?|gUyZ`_I diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_editable.png b/android_app/app/src/main/res/drawable-mdpi/ic_editable.png deleted file mode 100644 index 9ef982c0b9c8b12e7b29a6f6520a8e79268449ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)rExXo6)iJfm+yz z`>{~O#sxUBm=qE+lXLInLYf4=pL4i`?#=+;xI)pP3l35Kd!Dh_6~2XWEl}c4N0Y4K zvmsDon2Ro9RN=ECKe_lz1$?wbc2n^cyw#8|tXJPx@m{?@O~w0o)V%BZB$w!=;LCWO zf;UZ)bPC+I;HAk`-AKjzcnaXZx%jl5*YV99{2_pkv7L$+xDVnxsdx`J0ldUs4n7Lv zgB<)ii0`N33nqWP2!4=?!$lB3%fSWlqg*@^IGzV@3!Kc0&kAJkJQ6tX3jYHU0>U)6 SPgmgp0000wHbgxLU>u~i zToP9Tc*_C5%(WmYFS)yTK0(Ftuo@AyryKK;z~2`5K|8Ur*v#(4eWn!n#`~T4e}&@< ztwt2TV(L6PVzNu==6_V&%&k4oGOn8*@ZppJ_8A0Un4^;eeo7B(=TEAh6bUeB^nz12edz+Xs8S##Ftv67PpF83W|n?d&FqC2O zf0Apm7jEOA@)*M{crM>vX*AJFc#pS*NYCOfj^Q%86JFtb0rF)$!>F|nc`acHPvqaZ zUNkX){aC>)wqc;cXDr~|1`>2e0>SrG{x|)V{C>B_ST7pbBA=v^+l}D1v;pEeX7B>1 zYili7ER^79SZuS_)JmfbRl*Iq4d0OqR08cdfsQ2imNPgY7pVk3;Q_7};`^8J6;HoE UgJG=V?EnA(07*qoM6N<$f+vUCcK`qY 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 deleted file mode 100644 index c63d10e19c257fd8fd43fcbe0f20a28a4165f9a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)7ztEYv6jL5WWk(F8GZwK#KCmc7|*vOiodXU>^_ z=FI(PZj<`49lP)yAEx0yDGuUyJU`IeNb;5Vh8tLm2l$DuMg=Hg6suz0j()T>f_#ru zmLrWIt3)f_;t`tbb#9u%nbX*UPf|HvVyxakdDwsnJjSq8rcoTn+?kR$OGIGCje=B~k+{h( zT&v>Wjv>6r3s90ebu*4iDk|fIB#a&C#HmQ2yTZQ>19C=5Z#W&RaJU}!vte6~r(qii z+dLHGb`v;INxl%T@m%!|Js*U9*d~?nmQ<=D-o$% Snz5z;00001r;P)nTgTtn2GF$6e(n3CC$PH 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 ajsG7-;K1YLZK$CD0000_!dd<8T1337jt6 zithusj(l!{;9F6Tb2t?50c^xQ^hKg#RO1b{pttZhz~xbC4^Bw*AK^W6=*Jy2;%m%z z#s35B`c;dXu@0xO5N%k7o!BD@ToToO!fkZobb!~OJ_}kf67OQPBg4Z09K~78j`3AE z7VUV2OZX5Ni!cXQur`M?v8W$IQPn%tO4d6*j@1ZOD6Y%|Ws=7RxL9?z_C3>M=^%nSD0 zCBcsdcq1;O0qt2V>b82G)%U_cK0000Ij};674Or4z1g$PhBh}9r@R7&tN1GjJv?}OxC3Be8QXW$p~VKYeXl#tvC zz|ZK%*Sz1yND0Y3S>Db>ZeA@Fyw;+gO0SMF*xE;18>SPfH^;gjxTNTNhs7Prgm1 z+Q`6NDIFJrWL|35Kvg)L$IlGh$&%$DnM7MF0=R--8MrN-_+5~Uw<>_^Qm@ z*CnGRBr$?NN$slV&Z`mvxF00zxFqFGS1AEJR=72d)s86@BO%rS13Qa=pBd1W00000 LNkvXXu0mjfU`Nv2 diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_neck.png b/android_app/app/src/main/res/drawable-mdpi/ic_neck.png deleted file mode 100644 index ea48ba7f56e60ce315d20207cef076a1b738aa22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP)6ZnG3tN?k<8^H@a z7y9)Tmv|HTJ#6AnT7WEzY6TR8srrb~nD7&hn<=s*CqW4Z!qT1L+coY&sQf8@rv=En z!4&$jk-$|Wm(-tJJi`ZJN*-tEhNI?vd^VuH?tKokg0I`C2-X}43s--(6g5>0;T8I@ zU(*+`fI*z&yWn{Z4}?7^;|I3l_ljWOPho@qVKH(~gb`lHE-62$8^Xg|jD3$LaRvN` VGrb8zI^F;P002ovPDHLkV1mrXxPAZt diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_options.png b/android_app/app/src/main/res/drawable-mdpi/ic_options.png deleted file mode 100644 index c608c4c065f2e3c6bd2968f59d7a3761825a0b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt^uo-U3d z9-YYv60D0Gf(~>X`|qDyJaa|L0}TcF1@1;h3Z{oP&N7uc$;|)3)yT@Bzhu#uKDSRA c5=;yXiwc>!cD?(*4rmI4r>mdKI;Vst0LZ;63Mai?sCOG=cqP^)Z)h>v?dqn1#o-=WhcRlK6JW?mTB#^h$a^IXySEmLI$SUGiP^pcMkv2!V&s-3qGQaW}i93x-Z0`k& zXhcuDf@i#AcaHrc9#GA&g4YsJFPOp$R;$S5kCMXj3o7-YD?j`Smz zp@D6Ab~G`x_%{y21@i1K8l=PNLJe0YQLZPN*G-~)fof4OJxpWy1a^b{SSuZ-Y5a`y f6F!1{CFA@Jjs8dmpWj3?00000NkvXXu0mjf`;3hU diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_backup.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_backup.png deleted file mode 100644 index 67c82a790278e5fa4c55b16d5e6af9bab86d241a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)QdJ6gHwCN1%)yxcVRL1-fw- zo1ucYcz^+H#4EhRCy_y`$Ynpa;5lv;sw>%b8W+>oF6_)^@C9?Yn|J7`Z_t5#c!}R4 z;T0*bg2Q4WD)@-gs9_S1u-H)0gahamQ~O*zRMO`SG3!2@5y6)8ttxh64zqZIH}w`; zli>#*=4r&CRM?MSBJ^b}l+l7=9L0t;JYT|A+{Be6JXa|AAU5kHhO+aLNPJ9$Tg7-1 zEvM!0=qzCnmseq}rQ88L#y7O#H4fq_F2MP0(6om98b;Bc7KX$^-9vlvA$o911UZ8j zm`E!yg7?Y#EbVq?%?hkT7mkZ?3v3hHd0R|rx7b*J09GDS^35b)E&u=k07*qoM6N<$ Ef@IvyT>t<8 diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_bluetooth.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_bluetooth.png deleted file mode 100644 index 327131ed0c42748b4991fa68684014c8dad0b7b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt`5o-U3d z7QIU+d2=-w@VK};mR#;FFM9uX{X@48!s0?4iL->4w}TUk>!A_=oeN7h7!Re z%z6wfMHg9ptc&Dvi4jrUW-+tI^rsx7+NG=Rfr3k-j1BqM7;Hb*yJzFufZip$@1IjI z7Cpl6^ZDo#_j5V?p6u6ZJpN6Yea2`187_{q{3p)@>{{Hh?-I~C44$rjF6*2UngFAb BOe+8Y diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_graph.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_graph.png deleted file mode 100644 index 963e6046dae57d4423e6b7ea780531d99948ce19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)3bzt8)8zt8u1dm*pBXn_>k>LB-H22YK3 zPVdAk-eKUMahf2vhlyEChaM2WK@UbTo2XOX zHG^B+#TTjQT*5?9AH;DqWC@!A7b^**F^>)GVG6xyLJnJaLtnz#m(@I0@DiLXVhm?t z$VrkI3yk9u1zh=lpfxODw;K6V-~!tLHwW8ri1V=0p90qr?o$10mqPxCRE5TBaijcs zemST$x-pb2Heeq|0q1a!hk%E15Y8PT3(?)q2N=FJA{5-f0{{R307*qoM6N<$f^74V AZU6uP diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_help.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_help.png deleted file mode 100644 index dfefc0a06b41f284ff3657b9ad861f1db7ab7315..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)o-7Y3G@*>`7W-k}{0tl}4%(SG79M$+V> za_+(gzT*jBB3T17XyFIe(U}r;;V@cHrm7Nk9AiJ;`G+kWB+NBTM5|T&ojAf~=@`YI zz&y{!+JD4pniQVL{O`+?r(N58y7Jk-z;Er)r0!jzzkHWawT;5!5b_HdGk4dL=bJPZhSYZLQ94i&pAhRhqlR=vvsV$e%2BEnJM3vI{JvB3GxHyahY6`}+_u+t6VTHPp00i_>zopr E02B#+$p8QV diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_measurement.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_measurement.png deleted file mode 100644 index d775ebacdd8b1e7a9df731990138f7b0b6fe2fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)J~VdyJ^G)B=9@EY)pHPoX6o0!7| pMkH&lLgu%R^o%QP#W?>pJ^>NmKRNyl+eQEY002ovPDHLkV1nL=l}!Ku diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_nav_graph.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_nav_graph.png deleted file mode 100644 index 963e6046dae57d4423e6b7ea780531d99948ce19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)3bzt8)8zt8u1dm*pBXn_>k>LB-H22YK3 zPVdAk-eKUMahf2vhlyEChaM2WK@UbTo2XOX zHG^B+#TTjQT*5?9AH;DqWC@!A7b^**F^>)GVG6xyLJnJaLtnz#m(@I0@DiLXVhm?t z$VrkI3yk9u1zh=lpfxODw;K6V-~!tLHwW8ri1V=0p90qr?o$10mqPxCRE5TBaijcs zemST$x-pb2Heeq|0q1a!hk%E15Y8PT3(?)q2N=FJA{5-f0{{R307*qoM6N<$f^74V AZU6uP diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_reminder.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_reminder.png deleted file mode 100644 index 970e65026b4881217ee68239ab0c8fa72f9435d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmV-S0ki&zP)#FMJ2Q6IU1~YzR4!5|7$plMC z@qzomui>R&uz;&5pT|2qV2neI0=XBsI1ccMXLJMCPoo=luo*__m5i{B4ZPwwF614I zgZr@L_B@6`lb`!ZFc_80+=N+75b7O$Mv7eVqT-po>#{RSBw=NVdFvtk-CgI)gVX*0mRR(8fxWxPW$^ e#9#TZG57{t&r3T0R1yyW0000;hijP=GxCQhFHx=44)Z;e__<<4BCVVYMgDc=yc<%5ST@ReP&N%&Wxp13kzEmrI*@oMRC$a1?P4(VOV{ za3K3|#}Q!>XSZ(~h$!<>58@PU!SA6dOlz1x39GjewlN&_3YPIML?wK{QkcoEc{`2r z>_MuRjc2#VN4ZBf_GP2Y6Mv?%E4hamyo$Oci&=pitUpGJkt=-#00000NkvXXu0mjf DxDT&C diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_statistics.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_statistics.png deleted file mode 100644 index e74764c8653e793a84135a4a5404750b71def67e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmV+=0owkFP)9U+;71XfGI3~V=r2Uz*wCMFb=N_tXj7Y{rJ*nA zC$u^G3!bnq&dkNc5W(191;d(QhF&b?gz8ztO@S_cP^{UShCDG+vW zihUdg?kdtpxP_F#F8VmaFsCgS7f2bL;20k{zMG1gGMM5$Iya;K6XSTeoG_?HeTLVl z+N&h^Mh$Ox3MFta`QcQ83tVC=;_A4@jrm*bMRBmV z;0=hlISS%X3JxNIKbs&5LRBhMN;h%%QiuVUPQJ_G{mCK8Nir;_z4V z`gn@8T^vWeRS1iPMkkT^jYr%>S}n=c3V6UhsyK+uDn9WRX`7f$xOO0Izp;b$L`yU6 z4CgpQGt>#zFu-f1rI}^{*EmEe)Csob7kC?KX{J=bSbo+?onVAvqNSN}dW2^bgE<$P z%mhBbDn5_}tvrJj?1#FHIx4ur7q$YwlaI9_e|!~OX6T_SA4xab-d|(vCj1|av4@WQ z@;b>5(x;qeiW!b@ffi09vo8N&FOimJ8W|R`U^)zc0D9|90N4PNh5!Hn07*qoM6N<$ Ef`vSiBme*a diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_preferences_users.png b/android_app/app/src/main/res/drawable-mdpi/ic_preferences_users.png deleted file mode 100644 index b9e86d279dbef3d84ef019e7b0a613d6262826bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmV;80doF{P)Xd6qNzdde>7+KE{^ae?61fvV*wv9fOGsyFE-(O zW`rU(6269&@K>{KjbSinoRK8fkL%>T?)B}=>z{CuiS1wlC5)#9Ml*?<(PA2Vz$BiM z*w9OXGVbGrYEEJm%Q(oyj?h+!5sKJKx+>#O_!ZpYqk8npXk#%dUt$W!!Am%e#ibow z<8LaCo3O>GJRQ6f!!crtJ@nk!>)zYQMM_OcZG#m?Y1SDrcO@VbLaYTsL+AzBiD rQ*Ha-!v4lOzN+b<9Y5mir%>fHCyZ^3jL{Sv00000NkvXXu0mjf)WNs; diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_save.png b/android_app/app/src/main/res/drawable-mdpi/ic_save.png deleted file mode 100644 index 90625810880e21aa2eef67a1c98c7e389f038847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt^DJY5_^ zJUZV_Hsm{Gz~d^vB0S;6vC4q=4BHpnw8(5n_RY5_Z@9W*J&bpJQuWyf^qp?A2 z1>1`T&4_f-3+E-|nrsfQIy7Nv1LuxC>}GDwPpcWc*Z*5KV)x z7=OoTRwqua%gj!hJei+4OF3Gb;cM5LV9)u1taEtYYkaF)vE|d$DyH(WOIJ9M21JKP3p00i_>zopr05;cQJ^%m! diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_show.png b/android_app/app/src/main/res/drawable-mdpi/ic_show.png deleted file mode 100644 index ef2a3498af226fa3f4366a680b4f0c75a6e40544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmV;I0cie-P)43rh(QW8sD+*wGSb5q>tf-jleWWMj4Gw0lMhI{;L%uJzqgqL`ZrN~|4 z45#?{w~MdfExu!1h%3Cov%3_Y#V)RE3Qxv0cEVeWB@B`RAFzsML<`+S*T-V1coQdy zX``m0%|!nhjZFN$&^gRuA48m@6FKN5zQf7l>xpQrIu=oIlIsNbs^D$^zQD(VXg>I1 z!d(QnQ1A}mL3UON#z}4z-)Y{GwL%xI;Ikvz3$C4TH>#t%g~LSH4Q?(LIrryJK1zJ= zvRyRrB@u7d?0hTHe^R)nRF9;en0m40`G|I*^J6@&X$aMG-*LB5@dMkc!8kRRaiAJ# zrNZCv8c$0_rnzDd@j^AOpG58wUn52Z-#z{l`~p}2uPQ02VlMyy002ovPDHLkV1h~_ BxPkxx diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_slide_group.png b/android_app/app/src/main/res/drawable-mdpi/ic_slide_group.png deleted file mode 100644 index 89fad028804a5959f008580053a9bd8767cdfcf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)|WK~zYIwbsjTO;HpE@ZY_?B#25xsd}|qk;bqZ?}33Bi-;JIh#>v| z8pcL~FcHPTBVxn|V-g0qjhg5U1COB)(SdhdgS{K)o}OOkXnm7&_WIV^-#+_Wd*|?< zQ7VwT3ae2^70;(ipc5A`iU%>a3A3>uZwf4O96B(B{tRwS+DIV8%pbIq}|xm1v3M<*4Nls0lt1Jng~UF|rb$XRsb`u>`yD8Lc@4T4QdPu%+)X z9}jUDw&S8d9o3IJar{h^&&RBoQ^H-WO>pP24NhWXs&FVi58-qZfpa(*-_w3=#;Gz! zgzXu_Vth%gq8)=+n8;a%E0`mk5%{LDWjCN!!A-o5tprR6fq4?b4;9GZO!BJMpTZ zKs^fdq=|}fMI1=PI`F=r0O17h#JWVRt&C$CqG?a^AgktRR$`xUu!>?Z);1u^gDJ&C zecr3lmptgr3btg#M)6Cr9|9Q0J^UzGH#z(UMrvFSL77r&00000NkvXXu0mjfL_YoB diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_slide_opensource.png b/android_app/app/src/main/res/drawable-mdpi/ic_slide_opensource.png deleted file mode 100644 index aee10d5fd3f67585b47602915a3fc75d5f5318a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)J zLSYuNclirg2!&E8B#Rj#GvhKF#%1Mo%`L{_{9c}!p6B)ATc_uFzrXMI_q^wv-}#+7 zf5sTJVmc-U_X54RjJGx9$i;kI#8>pkcpani`wK2$-rpo{#_34VheMcyQbtq4TpY%8 z{J<$`wpB3`5Ahkh(OAPDYQmoI^hAzajK@>F^p{f(%*U(9(K0wV6u0mWv;HA@1+(!U zH!&m|*dVR>ivLJn!RpAhzCx6wvb$D;xjDw4a9!H`5-f`^wpKB$M3>*?`2fqS=$C}9 z4Ngk6J+wf)CB*lzH^%+oHWhdpP{wh%gR=#~3HXFd7?$CO1@}=-#RSfyqdt;6FAy!2 z)^V3~qAU0+os%Z93_0k-qc`pw zF{v!Gv%DHy5!OY{Up?)vw3ZDy;u#^{n&GwuHzP;iAnjdemRuBu138AB5u29brb>6f zjvW2L&@UbwIDzk2HHg1~j+{iD5zAstnpjZ5glj<9XVChW&XX;*jf z5HF&bZzB`*Vm6*)0CyvJ9S&k&R1J-|jB^-@Bpa|Ci}41lM(*Z0nlKG5IE_Ah#rX(Y zMk6l7T5s64gl|*C8ijI#&Io)G>oK8{abQB&oQ&Od=1FiHtrgY_SQ=8Ou-+QJza=PE zsV<9!xQ-c8-`-)n)Xb`=R7oXV!wqQ&W}yRD^El>7(11laf#HzjSc3Zhk)Ui-lhM^k zM>VE@o&>M(2xlX3O}szA;8@Oio4ixHr8nby8&>CW%qAGdc>IWG7H_4>Ur0w&lqM;Q z0)B??&q@h~q=pV+?g;0pA?5k5i|?U~O+yqiC#%o)pbsl>PrCM5ER5>EhrE=CF^d+7 zyBa0>7=^8PjoR47?#$XQyq8$CJ>GYXSbvEr647lbFJ#%YAWg=Vc;1ql*@KyA&e#u2 z4Sz3DM~`%~S7Hy=%Jd_yzIHhTk3#F|Pms002ovPDHLkV1j#5 BFLwX{ diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_slide_support.png b/android_app/app/src/main/res/drawable-mdpi/ic_slide_support.png deleted file mode 100644 index e13a6efb7cf4f476285046787385dabf2dc304bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV tW0!O{|BCf0Y^7ow?nptZC6>gUJK?Y{_sa=E;NZo{)u$2&M zK|yBFMUvQuTWU8!7j>njQFu`pSW$sq6kVyL5UG`>mFs4SS&A9erWZ4(^K^P$9e6os z{?GrJnP;AvId7YD%RtbTSs-7S6v$chmSJ?8ZqvSwz;Kj1%eG-#Fbtj4z2} za3~k9Zx|Vl*;s@JF|DzFZNqpECX|Fh*p8nvqDrn7Y52?k^ZzC8PTmUzeh3qr$6SIw z+*)8=_&ql~F7iGy1DJ#LBJV5G@QOTHCmzOym7xy&j17hHJH;ixjfYq?RZgEM zlELjbEIP50!(yfo)pf8ss;KW}VsuQw=ZRPR-h7VAz-ZxmDV zX>li8)m646Bfcc{8M$XVQEtc8b7y8QE-akR7Y%n>+{s&ou@3xz_Y3~Y3}PVl9J#L` zY)q%u6=)(#uY4rt_@LBBigEiZ?p4=!DP!@msFnoZU9eIov0zXGlNXYs6*tiQ(4SB(%CbxJ7jAEb;l= zB0i-(qSMFa+9dI(V6`~?ALr|!k{iSrzFqz8Jt?|-C*Bhkc;ajZ&H&u!$THNTZax42 N002ovPDHLkV1g^Ck-h)` diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_tdee.png b/android_app/app/src/main/res/drawable-mdpi/ic_tdee.png deleted file mode 100644 index 389b8c76d45cf4d612858bd88db04142efbd10d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)+{n-rmT|NZp^C*sxFsLD8ai;z-w;77CX&XQ zlT@*SSsX%l6Y*HLj)&wQ)8h-j4f;^D+q*Q4u-0UO%}F2hcBWNTU$d zi?3if;{=R}T&_EhMe&^XHB_)9>g1orn|WWuV@$U-A$8!MNPInhr}0+Ynnu`*eQ*)G zGo(9KdtMw1xSZKLhJ_6{hA*PO6!B5iM`uQ)Q$CSX=z=%6k|Dt+5u&>dPB1CLSc)0Z zCYs@JL3{=q*RjtDaizLSI4yYoKjK7TEs3s}L%sJo@s_03kNwzMzgQLJU1{Qdndj%M z4&kNx#U9b1rmU^dA?r(McjC?_eziy#6h$*pFft&TVYA!PirYzJv5^7du~-%@w^6uq z*oB9p!3~RBc_Bw06ycf^)mUbz52x`}6lLw9*(^mN_i}ZMH(@k=KgA1t5GU*reP$qi y-@qAsD{-bFdPOUl#w!uqA9$DMM#MjmEdBt$!j$(4PO&Kf0000C&%=h*eYDbExb;#HoQY8_Tmnn;wzf46xE6MPb|SXEJQn2 zrxj*ViDl?O3u_hK^^Bfzedqs|QY{!5&w9`0)5iuFHVsx`f^0{YN{A+cpy42k!*DSc-#Pdqw3IFMI(42@zE z^4@`+VnRmKcPXk;?q7GH^rFFWY%=jJs1~zcf%W2|l?q(Lp=|IEI}c=;((_<_00000 LNkvXXu0mjf&FUi# diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_user.png b/android_app/app/src/main/res/drawable-mdpi/ic_user.png deleted file mode 100644 index bb2a33a0b67b8bd8c37bd73f0e2800f87959ee90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmV;50d@X~P)p*5ed<##3mAw#U>PcmL+@UjGTRvr#P8+p8w3ebB1gcu!SqUCceZb`XlBC z)q@H?Q+$N(Jb;xzc+<r2~L+2vF?+Ahp?r z4um)T-G|ngsxHExr2Y~o17jWB7A1AZCbFjZJ@po{h>@HT$oZb|NB7;Ir?H}K^+oO|Bv%bn1x zelha1JAtnT;CRHR12P?JU1_4S79xKWw}-*kq%U-`u%0U|!n1DSH$LKNmBA+Nm8|E= z%X)qY8@Po1c#kK844MI1EP*fSwIlaD!`E>D5AhD)F)_$wCLr?#c-ASso^ME_+`$*T zkfv_CX=)ZmfoJ7PS0bJpCp>Ff@5gD-b3U>f(j~0?Bk&LPJ!gaeRt8`I O0000=G`P)?dtk$Yu9G+}c6Cjh-<@Rh zEXkV~f;>&!t_qf`MUEwDWJ%_Qp|GfF+tNU=L6jYQ!x%boSWp8~=ty%t_=LVBmx%(& z>cn>od+I5xkm0qUx+$zm4(%nnjygWWINfZ5>!M7nu~t;u`4Zh~OlqRVY{LuXD_xEU zI8?{?DlX2I;GwwDyEHhU67=DW*x^u7(N_3AAR65Wj)}M7k*MuS(W}0Q${WBM(S3Ia zipElcrJ{e;B&dk{a3lS9C+Dr$WOkKIi86kUr+6h=O|R%*%v;1+ZJfT05DVku={yTYpTIW2=f zj|RWRuNso^7??kzsi?hy-{l*AP}98xqv3gjpZHcoFdDz)1y|wO#3O9i5M1{9IPLx{ zUxvPqs{Mn>vK9OY13&5Ruoc=V@OH`;SE30Ybniq1uW?o)SWFQ#a2!qgf>#&}JDSAj z0{D>%7jy(C1&~YpE$IJ>;Z%55kFj3>%V!TmRpD{XVjbUc9n!`cX38et0YDYa#L?;h Qz5oCK07*qoM6N<$f=f5HK>z>% diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_weight.png b/android_app/app/src/main/res/drawable-mdpi/ic_weight.png deleted file mode 100644 index b7637926eba5e6d00430762c7c00d690b0af7055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmV-#0g(QQP);)Z8lTQGq8~g*GuV=UCKgeOMhqykJeitR16nblSv8=t86<|Q z{i)nVh99h@*sj1_@NA^2DNm+WD(8n$Q1uj#6#_=yXXq;Ls_5bregUD+cJjVPi>3eo N002ovPDHLkV1oBMoRAo z;;$uvR1m_S;0lW16q@aBGrOU#Z*s)Wd~@E(OfpM4Z9L%-`z6*T^NL~AOX{M<#N0wu z(f7a5#&cBi5vA;614mfRjDO%Dgq3Mw;P33SHHb_l*71NhoaQt?i@APeb1Ayy7P?r* zHg0k<*D<#e*=DMsg$`=ijU5)zk4z00d6KN48O`h1L2pX)5xtPq^CVfp2^!c-Y(C;X z)--TDKCzSu9^$iP^AT6r!rC-Jw?gA_CN`G(R8*#{;5}+)f;-&KQc#+?U@rJ&m^d~; n_Ngf15??s?^PAn2_^f;b9r`*sLvyfe00000NkvXXu0mjf1{{{- diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_whtr.png b/android_app/app/src/main/res/drawable-mdpi/ic_whtr.png deleted file mode 100644 index 2500b9999a1fabbcdbe5fa02a26444d13c024015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)5XNos7R zT*8J08)QY6(pXrClq5D7)F_5#nv#XdB}QRfX1@6>p66>G@4WBK*C?mnzVrP5?{m(1 z&NERWpN4E|~~ zW2GFdGqe7M*9GtA?H^Sp<2uUtgv|+;rl=n~Ml&`p2b+U=Xo$x8&>nwbnUJz}Jc!s7 zY{yI78_8h{1`V%4H>RU4gFnMmyhyOZQ_aH99OD(7#JK`)WoCV`$U%{TZmbq+lE?4H z9Yb|#$}`@G9|Z>1#Z=^R6&%3|9Kz0+vSD(jU~?-Dk6`>pG@4>vm{?2ny;!BVF5iT1 z`jW$)P92;|h>k=*Ak3no=#S%a0oN~?VZ9M-!_nlWHHqGrG0-X0rpS2(k5Q@jnR==izN-#vJP`N^r9g|3^XSQ_y@3vS6A^AeV3Qr980W_6)$GLS3M@+CT8Po47d*$s=@sMPRsh7a7pK800000NkvXX Hu0mjfrC1)j diff --git a/android_app/app/src/main/res/drawable-nodpi/chart_marker.png b/android_app/app/src/main/res/drawable-nodpi/chart_marker.png deleted file mode 100644 index 88852fbfff1d4130f38b1750f49da3b6cf1303ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2984 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 diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_searching.png b/android_app/app/src/main/res/drawable-xhdpi/ic_bluetooth_searching.png deleted file mode 100644 index 435c295fcc8c56baf40196c0fdd0f7c48314e009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 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 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 deleted file mode 100644 index ec1296157b00c5cffb7fafa8379a7f06a3474ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmV;M1!Ve(P)993 z#0O(UP2>R{4Dk|^8t+D;Mu|pD3`QQbi8mk;V>DiZK~K??76hSEidI126tMMS?af{@ zXZAj`dzzj;_$QN`Gqcv3fA*ernc46^5>W;$0a}4R;2&T$Frk#B(%>b8xZOH|+7j~e zLLJbHdjWmG-@p|mV^;u`z)wVEzXZkscLF)pzYmyNB94hzPDC;X)TpsJn2Y!x@s%Ni z8cc$ZI%KXv9C{0I`ruLX!zV=KTY>5rxq2WoNSwUUNJPFDm{D3f=`aRy%5VX1m6lF= ztRf=67dWl7bkf0&`HKf@;_?BoQ3a4pJOhf2UwJ1z8at-(ESUTRup^SHAQAWQfY>m2K*U}9RY3# z`WFKSmEOOIU-+Otuodcd1DExe{PbY*(AclQJfK3!)B-y(w^bFej{G+<%X8ia%tdqo zXQw4^*ZI0_2Ob251+v2}@*l?N?E%j6od0@j5pSejKvK*PTNb$1(whM6Rx-_);kN^L z7kCzU2)HPL!y?SZd&7?T&m;SL4QBlxR-%t%#{KgU$NvR00K~N&fsIiXk10y#aGC|^ znEx9vQjMJnyiNWYcr7pjiQmgGo!GZ^0rv&-%mrH1*mu5}aUt-Y`hO#`4QyPFY=z0H z?+e6P8!Xw*z(y9SUdw^8z{S99@~hds!MMg6pkVVnlBzvy6u=r zEySm|_jez#*+K9m%!ksLM8Lk=c_syUfUlMAJux!P$T@ljQexkP)K#J0?GBx#YW$

+CnsM3e#d zBh_VE=&QsYPo3$&`arh}$@Fo$IrZCEq#g5@dQNWRI%Q*nhx{C(BJp?N`~vcumHiV{ zs~z)yB&zFuQHE@v?aIy`l5d~MV|(+37vzPdkzDk^uVfw-(0Vl;9O+T)n88M#sk@v<5_ zKyhCsuf{wJ8()3&>(0a&7#S$(R3El)aqsgnNK^^sb^}-SgM2+^ZrXx*8Z-{ucKuO_ zl*O(yY#VSJ$@iU8F^`cwz!Sum7aF617m#fk>hA+4*@CMqf%(9>$aZQapLiE?bKra9 zT!;AtLmMlRr#lV_*;UBCo`?96{kC@@N7g({LTa5PhYB6%Dg2z=Mh4kxh31HB>&QP3 z8<>lH_H-#9N8Xa}+~Us{{YVmWHfU@{$>CG002ovPDHLkV1ikKrn~?E 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 deleted file mode 100644 index 3d17d86e6971548117f72dcbd55cd3fe970f379c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1431 zcmV;I1!($-P)Y`oHK1U=jLqdkLTXq=bYcU zcjsT40zVOv{Q{T@ECagL^8>(~9C1v86{5MSWZN~54b9~bkbomvMIv>ypdZv z>9L-O{C?n++|o%0JLaz(t&a0Yz(*nQB2g&p4*X6V0pFtn9rNw>C6c^~a>i~DoC6#o zegI)>2JU2xB`h#weiN_+s0A8u59DLuv|;o&5=(vnOEJk+DcLOG5bi;=A(=QW%8<-` z@z5zpI1%_$k=meS7a}BeE%XWIAbNlmDf%k|S_9jIz}#W62VPZVI*>{;#9ZL7Kz0;Z z5IkQA{G;stMfQacDg$4k?IGZjp^~2$bRIhU6<7omD4lX(59YEe0=AI-Ca&@9w+eF* z?ZBC7$=h|lZY{urz_>tnyhZ-K7`uJI8J_*$U=3nj+5sfR{IE3u*IIVdfxSv+GiLa0 z1>OOk10DiqCvaGSIe2f_G5>jFeQ&_5|HDf3am=`XKCvJ7loiY$dv z_3SfbvsPKUZGn#lqq~XKx~AIZ^A-nGbw`B)l$UpR^z+yR#kouVcQ2K}+;C%HSAMp!wnvW!sFI z)IvOpdwqxT{Ul3&66T~VPa}pJ`n}sBpQd~tCFaga-|h4hRg=EBT-k2(v?)TW*j<6$ zL7*f?_c!Ig)E3%zI~)CZ4`7M1f7e6*IOc?H2hK~-->P&g>||0)lmR=C>M||#YwhvS z?*w|)|Jg|HDR!&Vt$rK9!H)T>JUVybI^|<)3cDGYC%2jyz3ob8plY>a{*Od;y)W{R z<?2*~)yuEmA)kO*5uY3ibjl#2;?gDlNXRZi*7YJ}AK7pF59G+2g&9aa9v2bx#(5gQO>QHDEVaS5+)l3rzCt$oF=T)2 lK|YE+iBz>CdYwKd@gIfHXDU>XoiYFb002ovPDHLkV1l+$r!D{h diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_calories.png b/android_app/app/src/main/res/drawable-xhdpi/ic_calories.png deleted file mode 100644 index 49eda818db9727b69d57af4d89c19ddf8e40df4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 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 Tc$}lm00000NkvXXu0mjf6AD2( diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_daysleft.png b/android_app/app/src/main/res/drawable-xhdpi/ic_daysleft.png deleted file mode 100644 index 5ec7d7d74f5b50a8410c1c9aa6e2657bd67abdb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 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 diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_fat.png b/android_app/app/src/main/res/drawable-xhdpi/ic_fat.png deleted file mode 100644 index fc98a06d0dcff6df312c3434e8e244f2b61bb640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmV+-1l{|IP)*+*1_5@z2aoyKIYSx7!CvBO+|2O}43r7sNx5rcKm~ zB2iCo5R!%$qW^;84a$aUBobZ_MMzMJ5KXjfZ0)KDrB>K%Sp@Cc?&x}P?%3JM?C9)n zJG04rlV7s;&bjAz?){x}?zwkq(4awsT9TP2Jvl7GQk;R)(Sqjm`!EjUH~fh2F@XG3 zUp(0fEW~PDjFni9ldIG*gdTL`BkaJzY7MDo03>Cp2YfO$W&>?b$ALtr*{nD5%Hxb%`9xf zUrFh^SR?$sKr=e=wD5blNUY#JMRND1z6(-&UK-Ph*+p_Wti^ljoqyu~WJ^^n!6!*c zFD|JdyB61?DYaX1y>PPvt5RQUYB!}ZYbxly6kjA8_F(a`8sCl|gik(b{0bFVhAp_O zsBZ%vH@3=iuo(}C7=R0t%!ZGNHRgt;d@Pd2HF!1Y1h0rdSvk?v z>xlEkLcLVzSRz*F{aRTx2|g5GY;jija}&1J)THXzCNk)iM0y%EJ!Qd(qD|QROhyD& zn<#^45QD0V^O;)FN23LrH-jx$6bOi5+TBMeoHbH;h_$2eTuz6uloIhuaLaz6?n)my92Xw zVsjW#9~{DVkvhA@mCi|`UMpn;xvct{0Njqp#0jq-x8Suha(U@McGUO)nJH{XJ}V-* z+I!7SrZn&3k@HkS(@ z^beRYbkvGrwJP}@jH+Wd8`t8u@4_$PUomK#@YBs{c<50Ycan=91n?D z^Vj1>Jc@Pl6L|+`w6I<~w){cdBu#E^G&dbPWygb zJfU2UYoU*%ljy^u66HnKZYI;oE% z+ix`P%;w|!$mh$VfHDygG3&#wQuuL7~TPh^*$n)xdtV zuubBH-pBCB<`zLl^G@m*Q?XL*?Z$2_D?*;M=KqD$3-}BZzKwX%M=En;q#sCp=>;1YNqslUmDE~6DrsqwZwZW zb4}eDWi@|!bKDQ&nJCsK;VsM(WH3v7EACQ#Q%xb({LR8vXa%QXZxr)KwZwPfVI1G$ zS~Z$~U8?~rcuoEu-zU7GiS1Y@Ju9K2_ z=T)3_SeVv9yk{3TupKXSV)1`qlCcIC96p-$5$p5hIyR&6pdhVT;%n9Rz(b0-*{LN3n%LldG9}8 z{*j;5EH5h2#&rr)g`2J|f*fuT`r&DvB=w)izhw;cS(RH`4gdfE07*qoM6N<$g0|`~ AO#lD@ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_hip.png b/android_app/app/src/main/res/drawable-xhdpi/ic_hip.png deleted file mode 100644 index ca1da507a187d221569f2fcf27e20f29b2e4c7d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcmV-K1-tr*P)%Y)K|b5aOF(@N{0+uE1=J-KO8g)&*V-}QoQGUeoCPL(csSlZ7Jmc!*ggRc4i?-iT6$SvuO$D0i#CJStFx-u+em%!sBcd z#zRK1zlKKn;(*!kps(O8bg(J`TWf5T5AHA<2Jp;5?li%EU%?uq9yn^Y-0mazg$ZrX z!6;umf^7LbsX#jl>0`ixoQ(3pLS)MnF|IuBEOZ|_u=N0ceU_OrYA?rv(jUCE72G(Lk2~7oyj)f%4+i8G_=~5Gvvh z0>9ezcV_r-72Un)mFfm|!Sp?FrL`UC6&gTGw;NRpTq-$?f=c4Rk`e{9>YGq(S`J(h zvUOKf;7x+sXY@A+yiUXe=#nP-s0eIXvoZsN0KJWs{TT8$@c$CCZ zU~)C4bHMW?%etCEc23jhzP_CDFaqEmIw%@uP%N(kSjCn54Avq@G|8G)HeZFO=jxu7vFbGaO#xHi8v;I0OG& znG-yoX-P9#o)p*ReC_0hiSO;yS_u=(BcpMkS#CJb>J!bCoaG zfVb>JV|W0))^4nUBIhCc2qq>~eKUeCYn`pr2Cxt9?p0*32f3v_0DNuNSzpbCXg^H= zU%Ae3LNkue**Bt1mj#EBEBz38oy{oY%7P;BGxB5;uJd2M`$^0w>sWFC0000brBsapmM@IJoBK0Jt74f5NHsZ`sGvl`$Y z6dp>N|Ir4x!8!OVV}dE%(g6SZHrzjPZkSEhb zoYvy+$K|-7&G^oeMl8X(C1qnwU{49T0bJK+>|1z6b_`Bo1Xt&bZ;FU^-MGnlz&v-jyY#d|J^+g3d?YQAh z9LpGgNqBID+<77NWF#|)H}FT){}~oVW6N^%i`vqNV>!Nx`hLe|%!$UH&e7je`q)Ch*~XFU4-D7ljJ*VIhZEgZopmW4eqg z4y+X7`;h{=G(&=~SX=R9Z$?;7;6#D{y|)e*|CPb>T15GQ02x zLj5zwWT(bdao`wUh+17dSC^pY&&0j%K+nH{mTzDLch7_&9bhDJ-LeWT68@j+8T5Pz c^}GXr1Nl}ffmDfRh5!Hn07*qoM6N<$f_7=#!2kdN diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_lastweek.png b/android_app/app/src/main/res/drawable-xhdpi/ic_lastweek.png deleted file mode 100644 index 208c2eb16fd3a4f0ecdb1d5de852dc6dde83488f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmV-51Iqk~P)+6dxoCfVGfUiRGA5(zk|}xLLxl4{I{&9>E!{b8rv?_%x?}M_aBRTQMiUhpIk_NHk8;A)H z*!4C9T#Fnvd}!#KXDR+|N5CMSVS{%u8^5*D`C9oEvs& z!mKD8%j&^7GSgJ0d`%`F40QMT$41794+oPI7*He%TXC}_Vclf@9 z-#lUQ)+4NOjwfh4iGbI!6k)&mDZ>$AmDx5rl|nP|b+ljMheW&`dj@u5LbQJrwu?#7 z2?71s674tYySyamgn;eBP76*7=bx!ic?x}mZP9*7oP+1B!Zi@C*)CQ{g z2iD`0X#XjE`>G682-wqLSC;!Vq!zGR{bR&^oK4K%jA5P3l|gO2-!Y8siANb@$10%_00000NkvXXu0mjfz~O&Y diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_launcher_openscale.png b/android_app/app/src/main/res/drawable-xhdpi/ic_launcher_openscale.png deleted file mode 100644 index 88f596889bb2010815300faa14a66f240cfb41e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5075 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 diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_lbm.png b/android_app/app/src/main/res/drawable-xhdpi/ic_lbm.png deleted file mode 100644 index 0d21f7230d16a73a229dd8bdf5c6277088145477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1445 zcmV;W1zP%vP))eldXM#o;V!G;v4uY?!zj)j&;}(yOsHU%KRLx-paPN!w_77e~3qai7!{?2V(n9 z)-~c}JcaLXSra?QSS-XdV)V;6v@$;iPv9{u!|$HC!xhH=z$iTfj^^n7yF)rJ8VJfZ-?u|@QGz?AfCqV9q#=xuEdeWpzq*rtixnUTN+bUxdtBgIYy^?Jd z8gMQi#o!Ke{cwTsel@C5o+vc?6=sOM-j2WFSzIl7G*M{wL^;@3%KD)~Q8*1h+!W(m zuoyRJuNFH>SXW`XcTv{;6< z#h`IGN(#^{{2JqN75WQhx(Z`sxegZI_QGqJt*sjO#N%D8?FXz-#$eV*jj5K)|Y(mU-Sf-xKG%X6k+4_t!N(Yr|~(JJAcsf{wj z%L9HPy?S#opkL)bQI~hi!QRIID+jw#3fd^?GGDJ`|*gB_USe(TAzeb(%2nUjH+Tejw#oK%J_WgVE?480o+z- zxJnwl@k&AKt}PuZiF26HVXYLHmU5`2cu@P^r!)LiqI!hr_)TSe367H}5UTW-T61(U z^m?htM0U@>bCQq8%X`KrqDgv?1=71*jxvZO?bj0&dcI-yt**v$u{3q~?!+HFk7IX$d%@XR@T|IbLc z|Mr9Za@P8v|9AiQ`v2EjdsDxT!rK_dV9hKCtoir^jpo>hfm(?UKy&c1{qU{v24>aB zHEkV-aorPW;APCL53O25cm(rsC3Z_s;swm8i7~4s_)P$A67haLCZs2^vL4K|mSCsu zc<;wjOiEAU(HdBj+9VD5k_eT1Gxi1^sDZajS7VPf;4@91$20ax++LVBsq5t9{fVZ} zQyKd{++3J9sXOFD<$mZJc{t-#;2z-?B8N*q1K(D|$94$g+Z3b``&c#A}lkxeoBz!+!Y`ghJQA!_< z_cMTFI0Gl)yM+C>RE zROVwCzl!YLUjlxve0a2v|fHmUj5$##)8phch6*i;!w*RmQJ&2JqTJfT$e4baRQ>xO1_){8i zmFQh>mEQ_~x;%2Xs!mN>2M!Nq?2V?ac2%94tZ4eI%-AQzD%Gy4P`OWp)9Q?UOAWk9 z-6Q{$Zxb6!Z+6&risPh1MvqBPVgfgat-<%2ziqR>*gK?@J2e>>TOjkq(dkf4d_6T2 zuSic~hba6GdCd~XqNz+>wB!0O>O3_W5r+`}D-DWMlh;L!RIC04L}D;+4ZtZ+00000 LNkvXXu0mjfnM2)o diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_neck.png b/android_app/app/src/main/res/drawable-xhdpi/ic_neck.png deleted file mode 100644 index 799adbae8662687fd294b89bb9a47020098b9293..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmV-e1E>6nP)hr~A(o&SnNVV6AZ8$jtMqyds>~ zhGXJI6r$`2oWt!{g^!a#v-?>;16zgBOOx#RG6s}&;Jn`1Z~lM%$Aca1p3LKy?fI`AO&icb1dhTQjW(uM8meue1fg(z|Y-bt6clK9P1|vl8IDpr1|3Ct@2G7Uf zsdW8_xA2KL>RZMCHa%h_IEvk3GHv#Qd>CelDmE!y?c!VewCGRsuviR>?_fQC>Cb_Q zqI*6j;(L>b^$J6=` z@V@B!YIreudlK)7w|l060Ru5bRHhaFJC(MJ5qho2qiZoWIXDpAA`&(ean{PXZWSFO iKPxIKDk>^&T>b%I*}({)(;pOZtR<~V|n8QB>aHk{|ZD9kL@->kG6Xgq_btDnm{r-UW| Dz-Kwl diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preference_donate.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preference_donate.png deleted file mode 100644 index 150134a87e2b93f2bdd70cafd4b6214a876b130c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)^1woJ?7Iu!?642d@4K_}Mx{!{ zw2fxa=86V&#v&>k;7z2QSE+_&oM|2YCT{TqgY7Ebhl7m5>2{6Lb^z?9ihRQdyvHJb z1@BMM6|?wI5Ppx53{Mx10^dyD@H~@eICwtANrvYEn?ZjpFF+nmc>c00^u!F$qi$RV z5XYD-8)8l}%;Ahb$9Ie?X&;zHUH0<(hp$TbJ#VpueKaya>XJEAihA)0yD69($feni$Z;bSh|JsiYFLur-Asc9zCc zM8Tk-{s)PVPEdRlLK;C6QV6zMSjI$96a$h(<2$jq8=bxGV{YOuesE#t%y%C1y5~$m zJT~Gm4qzv?VQqQr8>aCBk1&ea9JcGC3s>dIVRM9jCocGVQt46+)WBfg07wsKcrZsGk^bS12gJ*GA7L;r z-r-8nKZbTV8btLSn<5Q%NSCos{4FWrN8oP&t_OngNJFc^MBr~Y!R}!2VG9BXee5Y> zdmxz3Vd#W3Gm>V&tC4!4kG>){1cEm?0@#Zq<@Sdhdar|ad!q8bFXb@wPmriA9J*WJ zGxRZ=NHgCudRh=bZ_u7h@H`M4YC!-8gZ8roV}W45_#e?qP{O{TKbGJDK9&VV3^p-< zQ~p#-^B7H}S@32+8Wfj|@}d(bgZ?dP@%npkPV3U~7nyVnXH^yr%`8aHS0lBlOcc#3 z$sVgyrkA9JW3!6VNfEcKrDgel`7l{VoAj{cc@tK9Bc4-d&tuSo8#x16z%^`bWIWFa jul77&KAbaF_&omw^y2RaI%Vj&00000NkvXXu0mjfGm;|? diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_backup.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_backup.png deleted file mode 100644 index 3669c8d3426738b59eb7e61a0e02a7bf4d7b8282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmV2j%L}|g|f>G7Ad8vU9_@#h$MTcraMVR zWmf{Hj6%9$f=CfTC0#5OLd2qc=;lL24^brD#?m>$+T)7LlO(V1rE z4;#L7zP;D_@4eT5t##^@;}D#IQ!xh3Xu_}>b33pB-{V_+idFb=FZMxQ)$?#%hpTXQ z8e5IE*q8=?!=Kob>qp=~9D`9wc09&m4PM7f*s?D&w_-a!!>lye7c}Aqyojz*CooBVrvzYCpz zffXX4S7TQV+ucx$KqdBw>uKwWvHyc&7frgS<$*v`8G(s-O5EK*;Wk`fMqrhwdTVeq zM)s4_p}0&)aJERrH3@7MQkjcZ{Dk-MC@#_S!ZcDu`kZw33!V@a@nn2ny`VA(JFzs! z@o2$hT#eEA3qOmfua@C(p^!sGQCo{o@NkvWuX1e{>T<{DilZvS5RoBARE!4fPC~_4 zSK*)@3zFP&yjNztRp_@rP+4jxB$?OnX33l`0-HoO>kE!WyGXy&)A2IV%I(DccqU0r zFBTO+I7)ObWBWkh1#$oFcv7VBd$3+q+Nt8&UKBxjK(Vk@9MQaFw+vT^yXy^FgqkXk zxL)^S_A;I;9*Ps#jfaF(wu(BiO;p9FaidT~v#15NQus$Ws$ysJb3;3FgN^yVIp=nv zRUAn*CW`iHp~wkaMbYWZu>%LE!+Antujbk-MHhWKj>9{m*MM6@MO`T5T}q$~4LDN7 z4bg`0PN&7mED}kqz|5~;nw#&q5d)9|H`(gJaBLwZ4ArbxwuMK5_+)&C8m+&_<3%8b)u|t&V zXN62>D$fry@JEu^B5Fg6NJvXXENsvJm-KX3qj4$jO%iX5&#W?BBLb{WeB`!^@5A*X qM_hzQ?7J207c`3C?i5#A6aN4;Xxg=Thr>+(00001KIqEP)ZaEy&`od9D|BTgh(FmFiKdIjsw7)ZBs=W@1}utt@68O!8G6vtthKmUETG%%;^pNf zX^Yd^f*?QuK+p3~DV6;<0ZS25%2pzF5;{bL>2&I~5m74u5xqE$Z4(i*+05HnI;^!Q zgg|TU%XROIDJcF3A+6H^002pn(BW{H19HxhbDnGxz&S_8SV@Es;!z@2QZOEmk8W;m z^5^+{4q2A{WQ@J816eErLv0~1-NJ?1>?O-rK-}gT(=M*DA zDMbJP#@N@vU{H!g5CrW+2q8}P_V!957-J}JA{dUms6KzO;V7|8boNDJ4oN zpEt#8T#SMs_{A7o8SnLa(ChVHG{tLVVHlo;VOX02=NuYiK0gWha5#Lwi5v<$z*_rh zr{qbJXy;sssJITQYr+_V`}_N+J0Xwb*jj5>yew`>r4+846Ncg0L--pPp>r-u({!As zX+EZu0!pbv#C+`T?hbBmZ{Iri_v}g26cF);G3LCH$3^mLG2)z~)>;6Ri_!gmI5;?n ztEq~j2#=4CRb%pMIre=&C$AI082etV2~8T4+`=$?Ry}fyp4SQBoPR5h5kel-uCJ_t zi;IhKr_;%wg%Cg~l~-3+(>joDw+mU8ozG^oKcIwwQVOrHuiJIqhlhs)Yb`3J5E0jc zRPO~)@Z1=)eP@h_-lk4wT|FR#pmXlu+>)vS+P336xfu~cAP54SOeT%-wid7rIRHTC k;VJ8lQVK$dt*__50c7EP8#}nbE&u=k07*qoM6N<$f|E^dSO5S3 diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_graph.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_graph.png deleted file mode 100644 index 0965cae3482ce8ec4d1c36c95f19cd9f2a63cb40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wg8ecw6feV%jv z|L1w%=XuY8R#Y286fhw}z8ofDnBrfCn1Y9B!voZ3EuaZ!k;iE?Wi6l@FQfBz)R65O z*oW`9iH~T2>!{3td;{KKbtIxL1J1u#Aw)b|$abOB_}t+3fra=K9hDO>&}$%vS(qLj zKVW%@eNYADa30U_4qve@=95~$DqO@#)Tb0M505bd{r|=r*QVM{I z=vTzA-fk$DfsHs5osUE}s#1`T!)Lq~qTf@-C)E^8LnpT4Nc6zby^xQ=EgZrYTuSgu zH3bWVR=Hh>ss-1Cc`b(up~t_%CSd_~^&&V?z$8j{`Ny&H@HVduvDt2O}5czu{t&96g9v6_qF}zo$f$yI(EM}lt=;3ip6e{6MY`k5Fx&x0Ah*F_ghI!q|?%An$nXrOQz_tQ8IRtECIN63%~Xu$fR6p$LlHBf_}3HB->rE!eH vj|5w#@LE>RRwL{?c@%PZA>)sP614pR8R~sw`BiMz00000NkvXXu0mjf)P^bj diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_help.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_help.png deleted file mode 100644 index 3f7488ce965f6a7be27ce49f2af3344e3463f537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)Mc{K~z|U#n)Ynl~oi6@ZUM=;H3D1FWF!zsN-uIco9TOiBSq(2&Rq* zLSMjdAb8=0f_P&{fg*i?!0J*VQc9rU6Q!@i`vPJTK#*f7m={ z_WG~2_UyIS+H2R8$0V%7YAnQS=nC22=*I;d#g`bUU^^GD;vgQPQF1)Q;aKRfF%Em$ z9QR{CHem(k$5;__ALHj1{v+%|cU9-TINxIE+i+3_HLS$R7X6c$QP%lV+z!RN=nJD& zQNvd0EHrm-agov-+zN#Y(oQ@p7T{vbB3>Sf_!7ycjuhBdVsa>q3&Vr>p@aNVe7i6)$IgHFB7U!`ONEEx z_}{}?tieAW+b`F%_zZ2Zsq?k1@Zy1h0!soKIyn$&Y z^m>E;C)vTOx`1vep3ORN8na63K3+gw);PRUaRH-cS+icsg8q`aJ@Fl=<7)gdv*H3; zaSZ=f;5U6;sY@3S>0mrBG<}^RD?~S?B2gBja9!$vMpe{n_8S{{vJ@9xCheFZ=YAgo zA80GZq^7fhQ_6QgGo>2xtL#t}p@#3ZT}Gs|coc#UOB#DymV$4U)af(CbqsrzZ%CTh z7NZPu8xm4sIpqbmWH1GngLoNBM!@-U*<0bK@R5rpxMt+r@~c=>R(U$UF>()+uN60~ zPoWDtJ=@dl0d`2;)UYudhg5%@9+Y0txu_D`PS5k^w%#$!=lTDrkM9rYG*%w~0000< KMNUMnLSTZR26Ht4 diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_home.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_home.png deleted file mode 100644 index 1f872e303008231e707df67bf2680023e6a98029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)^T=&kM_s-qif1Tdb`sJP5mufmj>FCwvPV$M(Dh>_-VN@jCn=9LF!b zLJ=FopTv!qplC^Kd<4MzJC<0VnVtKe4ZY zyhG9!jbmFL0!sK`dQG-NYSKv@YlgfF7lM2Y>zk-iRB7Ie=xsD{A#O$D9V}{syo>?d zi&_t{vR=Ykl})OHq3Qd$R!t@k8qL5)R}@ zUdG|5UH-@s@rTdGi$@rq1p%9JGyEIf(w-WiR6wri z2xz;2TBl$b8)~c-|5I;JWpvM?p`m8EH0PJ<*c($PocYq&Rxj@hmQ)k|>)7<8ua3~K m(#2DaKJ~}(3F!kn_=`WIV0`}q@3-{;0000p(wtV@%1nS%RVS_#8X&HU7j7G?%QIi68MR#tqhix9~Hb zt>MV6qC=j*B8)AunIfp~!sguf7#6DC?i$i?ESBK4oZpK*BLCGk{0+SrB~ma6(?m@? zkPciY7?>hb_W{yMtq9}LOxfeQKfL`aaZ00M3iT8JTiY91g*nFQBKFrqG*p| zL@jUIL~h?r?+7`qs@w`uSVgqr;T&%lvRn~GxKXI&Hc^Q8ihg(VWWwg3PC07*qoM6N<$g3eZS#{d8T diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_nav_graph.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_nav_graph.png deleted file mode 100644 index 0965cae3482ce8ec4d1c36c95f19cd9f2a63cb40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wg8ecw6feV%jv z|L1w%=XuY8R#Y286fhw}z8ofDnBrfCn1Y9B!voZ3EuaZ!k;iE?Wi6l@FQfBz)R65O z*oW`9iH~T2>!{3td;{KKbtIxL1J1u#Aw)b|$abOB_}t+3fra=K9hDO>&}$%vS(qLj zKVW%@eNYADa30U_4qve@=95~$DqO@#)Tb0M505bd{r|=r*QVM{I z=vTzA-fk$DfsHs5osUE}s#1`T!)Lq~qTf@-C)E^8LnpT4Nc6zby^xQ=EgZrYTuSgu zH3bWVR=Hh>ss-1Cc`b(up~t_%CSd_~^&&V?z$8j{`Ny&H@HVduvDt2O}5czu{t&96g9v6_qF}zo$f$yI(EM}lt=;3ip6e{6MY`k5Fx&x0Ah*F_ghI!q|?%An$nXrOQz_tQ8IRtECIN63%~Xu$fR6p$LlHBf_}3HB->rE!eH vj|5w#@LE>RRwL{?c@%PZA>)sP614pR8R~sw`BiMz00000NkvXXu0mjf)P^bj diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_reminder.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_reminder.png deleted file mode 100644 index d1701e6d0d45667eb45de4ec782002f02a043cbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)0u@MpM0t$i%{saC2 zJ|Kl+A%caScBTy&>}=dr#zF-P4QQiad;}XIQG9@AE$&3`E_1WFyX(Cl472m?Idi@_ zXC9YqjN&yu;M_8HSs23{Ug1by=hc`;GqhjWk;8u^<=ez;mSHu6AHs&zcop{L5YTQr zgpD!78g^qK#eKnI#I}k-Z0QhuPJCfi)UiIrEx@$abTzQOjcejKE=TzGb_Hi5{6LsH z%{_=I-HLa3lj7#_4BI-ae#!qaex|sm_?qS4o`K(z8t%k6CU79EV0Hx=c#CzCoj-}& zlG5!DbGKw5CZLHI*p(8w3HMeIe5p-p-E?)#MC=-sAmDH$Gv7n%zTpry$I`b9KI2Kq z#zCx&*h~@6KvAucbq^GUN-Z^*!OMaI@0Dyy{42p&LBWMsO-z+ug1iDw>%6fRYD z9~JRdhG<09?~-_J{{)GI@FtD$T0g3^+EUe0Z3iJFbv>+glWX5|&pmfY?l;*l>-Roq zt?%BO;W2}KIE!|!v-ljB4;$>9B@}Q!j$;;Ua?RqW)D4AmYjoqeektTDa0CYm`C&{~ z#F@mOxf){~zQ^BKzy!A7)0FL~@Y#{Ny?8Wz7E*Q;*ELPP9w+eVC{ZCh?*mtBE4kBlx0B zdQ}G4EgIyqLjSbj`7wNe4{=dN@yoF%ix|tzJXzSR%pAKj=bBa;9v6*uLa#`I%ED$_+RaMpZVT$I!qust!aI1bk6kymJcVoUNrM7D#?n)T#Ao08^fKMv*!xe zl!#90C8E>*O+<$^B%*HgqvAQi<4vh}QSWFsqT;&4XoKjJL5I;%Twmee=r9`TalFEa zFC^y~@s*4bUrIapKd$8mEb&_2!AKt_9gGW7De)F|RmgXxuEeC8e_r=C?Dw8KDLQ{c tA-_W0mP(Xw%m0iS!Ite}?YD&I`9JEJ=2p?<=*<8C002ovPDHLkV1nnqG`B;W;TkwVk6}vg{6`mJ9ai$ zijfV<(vBKd<1=d|`O3nKk9;}$l67n zC0H1Q_hSf`ak?O`ujKvlGU60Tg!moY$Ewhmgm?284((D6XM!{~181=moA9kBb~s$W zMsn9?U;sa`I@e#8fmkF+V;12-Tvfc_ri~Z_TX1bA#EGkdm8xfdv105!PF9h}WS|vV z9&d3RUrO2{9F5?wU4+lECx$48eRx(e9=!-}W9JkM?7*#+rR^Su9)384&giwgxU3mv6r}s^|Gqz zU@s1b`%zrUlXiZ|`ef&PPl52c3RBZTf*0Kx*r50m%#;EA&A=|%e_@kYfuR=0u&iP6 h4#s9lcMks$eglXrXUB5!F@gX9002ovPDHLkV1jJk_bLDY diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_table.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_table.png deleted file mode 100644 index 94826c8ab921cc248074a9e8aadcc2db4d5c809e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)PZ<%k- znM;pR!V+x6tS;~U9XCsOg5kDc1Gf^%Yw-q86P)e1fiIDGCEItp;CCshozvLgfz!ak zM7)aWa)(9!I(jZ(c4U4H&Lr|SVFkt#oPM0d=SaMq7qAcCn&b7@jkAfxhj1I06Pz)e z$Jf-J?)0fbPx1gKnV~1dRBv2Bvir}Mw&UV6PyjWtM$-nM;Wye7Gu@#YyP81eSdZb ZKLAs^anuNKT>$_9002ovPDHLkV1jtS3q1e; diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_users.png b/android_app/app/src/main/res/drawable-xhdpi/ic_preferences_users.png deleted file mode 100644 index 54fc47639fc3e64113c91b25b0fd276c86c803b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 zcmV+^1J?YBP)-c`D;d~cn2su#P>&FYZ=zA-SzKqXmIB!+Ru@cOW z7?u)vtpGUJK}5x8HCEQZy_XV5Tj}q3rvRRf?`jx5fv50i4eVcHQ)*ypLgrJUlcmy+ z5y|?jfzpq6g(0Ri+oL=p8E#hKGInD)o-453B{Zk6ql4U}v`Lr~>QqSj%+Il#m;ru| zH-$@TUuM5YNUlx^^yTjDD;eEv>=3^3*vx(dx8na}xu^J) za9shjT)38J3eBb}^7TSL=&nOx3Fam1Z)3zMW~p#R&k?4kDgxVD&brD^Dl7Bk2bnRE z$ooPIZq@o;;TC)~t~X+H>!m@N-4b~NpI~dEJB0nodOLo8Py}FlC*TJ`pd)!mAV=Vi zyPMG^p;fo!rcg?k+hDrzcd~aov;JR(wjtIlwAY>Z62C>V!|;JHIrn0c(5SZHVtltd nt{)Y~@{b~Ricpf)YsKxXlxYJM|q}+zWjh zU5SG2qCYO;A{9iEm^-;QlfpePt4_XqPm`Jc3^IqH3TPu)6G>6X#y5K;1d|uY2I-h$DVI8$IZ-8H48WZ0000_crVg-^$6 z^mib7IQxWC=o)SDyYaR};dy(H1IioPzcCxPM^Sj*Zu>KTMvRqs6AV0nOW2EUOv|i0 zdv-bdPsG=2tQe{IUHBFZcn$LdJ{RD6&}SVxIu*Y@DE zOPz=x!m(hCek_eTor+gM$Jbi$YdDN2(ii-eT_4iA-roqudWk8K1kMK?4)}M>&%=xV zaGq!XX~shFiG8-6_-*2=>ZKgF)<%4D68SH2B^a}TE&og4Y0%N2R2G|YxB&NHj@w&+ z+c%u}T?L#BVo{FYSAhFC$L%f{duOWz9u#zv?_25xxb+;jt6=Q=L&S-#G8qH>%-xrw zV>}I^->Y+T=C`Ct97Rv={z3un#oYbs0^B~_8Scle;$`%5j$4yTWINt-Ov-Vu24gm` zxm||mg3bn{#;h6h+9WaDLiRlv^GrMOq~$u=N?dQjpCr}!$5OSa<5Bi3|K{OlFjlyg zAT@K*E#uLs(-t@$jM0xJMV+q`Yo{AhSJ{d9Xgj^81OG@XUUWlqLmJQRuuy#1)Umx& z@k3Z4zNP#wHD$f}ZK4zQHI|Q5{19dt+fDr~C2s1QG1|u}?~Ky1N;A4} z5+6$x{sAYX6O1uKP1+OOlQ#B6MgPEE?9qCC2%)S`H3J)@1Ku9Yl@7z24|hNL`*8OW lzLpffLWK$yDpVMs_ywmltBJ>xRp$Tz002ovPDHLkV1h{5YO(+T diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_slide_group.png b/android_app/app/src/main/res/drawable-xhdpi/ic_slide_group.png deleted file mode 100644 index 7748325d7478c84994ffd8ccd848a0808113546f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1221 zcmV;$1UmbPP)-(B=r(SQCLD6VL~ENS|VM{(k!F2K(jP4r83Ra!`h$od73%rJD+E? zhxvmXX6<$Puf6wLd+$%W(TyWQOBeWT!_~L|!;)+>KF8bmvI}B11sCE2RMNlS@Dg@UkQDF*f;lxG9VpKr4R6>L&PF zgRM%o^wyF=&%|IXDQTa_60wDbmoYAzKwJ7=ID4lj|19I&59sD%i();avHnp$hd=Rldnlt^1B>< zf>-bto<^T)C%wfHU%|3Oa4e>ZHd#r@Wf+}gcQzq`yOXbxIoVT5_62TDT&~B`BwvAE zc_(wy!0ZkJ^ujx7{K_QjAF)cu|5U3WaE9IpQ!E^ z>ll443ObLT;*nCpGuroYE%e6A$!4+t?(=nGi`2raV&(c}f`#}K=XPRnLkf6L2V?!j zi!19IlhMBuy*u!I(%qaVki-3H{JKuKj208VC@(xi?C-6j3uNep+mgXLaaQDUF*c-t zn?zw%#O$mTb+bsU+}~+zdoGFfxTu3fH;4(HrhSE4FhLxyyTx_p5Jurw?FYv86m(Bc zwh@DJHn$|AJ24{#>VqkG9pB;)@%q{#w#!Xv5_*X!A^ zAXgNN#RRq0Qxu#ljXY?kii7Hj62yw)aj`w77d2=kfonv^Slb|}M)0wyuZarYuZkux zP%P`RdWucJQt`>A&@H!U0&QYOx^nh2WcRHibx=5glhg0khUqkppVIH3npz1(6Ug@C z-iGNkj_j&js0OmH5)(0|hTci(w^EW+BgkSrpmsMpok-v%^}op!x#u5kY!PquLYOXQ zrq(Jo3u98OLT5qQFLVDJbSH4E(Vf7tMn_+#YvC2~&h1K6e>kX#qWyiJ_;1pqaggm7 jZ}bJ?Lqj*Z(UtfY0h1bX8zk^N00000NkvXXu0mjfn`>Aw diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_slide_opensource.png b/android_app/app/src/main/res/drawable-xhdpi/ic_slide_opensource.png deleted file mode 100644 index c86cc074d83cfd8e1101e3c8a3337c808c096f5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1356 zcmV-S1+)5zP)<2=D=^xd_6N`nbb77Z>x<%a0;`G{ z_$=Vl9M1OxF9OSf3nDaXFrV5c;6M(oR^ZY?2fqe03Dwa6umzZ(LU+EWF&NPP6SyaZ z?tjPtuLQ)$fUQ7XAsl#^0c`WM)z?d;SZGRtcLIVx0oSJtHVTV@p94PM_F{2D2J=Q# z=o8@lLPZ*Z=}ew$Z@P+X3?JXd6Zx3K5lE%`__ zz)2ys17*dFF)zx1FC?DhKy?(MC189}kpql_I^Z|5alM|)umO7+yW?y`7ZZ13e@Y9& zj6TF(asF@EMK-=2!NGd6Z-1N|Pw0p`V4>FvvFTlniERS2$Xup_o5()ht`ttHF*(s8 z>?Lpl_z|-_SEbP3EqWVu;HV7TolyK{$&@{O|Qv&o#N1REh=#lG14m`E( z$!Qf1efYk#56~{xE*q2Dw&%18N3C4|(wmf%rkuSQ9e7R>lt|(67KgFhSia+-bOLCK|VYp@k{_W0kL?odCB7wwK2w43u;;^d5%#TOyFP~g(_$ZWfYyM?_kG)am^~{N zW&$UK+y^WRv8%v-L-jGV>&1SM@Fn}kK=8*g|2;cl5%#(}f_cNbe65!8E(h%{;prJs z29w`tk#z!dDwhazF?FX-qR)VN-uQOu-|V2fS$NyMzInjs0bj>(&sHa4CX@dc9>!#n zz0!A$gXXou>-DsT13o%Q@Y&=-8RpbMQ(eqIy{4Va}e=rl=Q zuXTjq_F_)6i;iWOxiF4dNs>5S=yAs}r_M_Y7M%lT0~e>@&%iyYv+yrU*dmKw3Eg1; O0000kOK~!jg&Dnd5UPToE@ZT;}+SS$y*h00^A{ayyEJVBUMTsa;1ICDv z1Qj1VVvI__w`dR(t3ewdF_@SrL5#6c(TIr#LQ=FzrA0xJWs4Rx4W)`$Kr6Jn{ruyc z$-Uq0-F{!Yx3njj%=gWlIgdMY9&?6+14rULn8KFV=IJ$58#TUf!DSTgr_lg~;D+yb%0S^k>c@SHK;(G=u^-X&lU}<}B7ru%&VXU!s zTztvhEo*n-`&ijnGln-~4em}JGx7h%AmQPbME)1n;XC*k&ckzC@Q=^=dmGGthx5f3 zzN0bsXM7aLwa{CHx8UQ+dtJ)XOWB52;L;i9M{ou{E4F!B|5v^VXSS?cg`er)o#~`; z6;9WFq@^qetiXskE~{}XcG!Ds@4=N=JOusY#Mi&4h0c!Tu{wDcg=VF|yIL4Mh1-Oo zo;(cE8Q|okaa+=C@_FYV1%`==OR|3e-x6DXC!U;z;05j%#=8b{#nBwc2ZaZG-XH?| z6V^8g?{l!=N#Tmu3s1Ftm_-LGFPV?m3j@RfbwT`LTE30~d>4MpJAL;Z4@Y%Wf=AoI$WO`>olRD&9Yvh;0fKq!Y3) zKK?X=ccB!ec8J1Pf$cfQ;0Qccqw}}yUy%Jjn#gSmY|4H-`@2NBa17@RU|#OWlPzD6`JqHk8Un0#5po7d$3qg8JRznTr<#j2yU0ng0waq+c! z__qW5LT8HvuL<*nx9Q;_aaElatQ5&usZEx%e-i$nGS0PTHtr@Y5*Pg`{cj8lL~*w# z?$@2%o8fih+Sn7uSOlFb9vw=F{W0-`G_QrmT-EtLLe!AzDfjXCebU*9v$_(#z$-`F4C-7kx)odNf{+d5N!uAG%Ipx&`x_)7Iy8ih4u^H*$Ar?r$N z4&Y;Ks7XJL1MxhHAuPu|Li5TvhmF`DlICC$OzjtFi4OgvV1$mU`}V^z>R1ncEbwWC9hGWxaGY|8jhu6JDp4zOM|$pny9}@G3a|zYr*8U7{)h= zhzr6#KqDTLhX<>|{OhLak=U5|!mdpwW)d$d?|^+VZ!#%=zzkT2&%sBEqsVSt(`1>R zvsLl!9>jIZztStFX_#!6O^S1v@9{%&Kd!iUHX~Ung#K!GXwKr^-pOi?TX0w|{%}m| pIMdk?LS+_c+CoN!sbx7?O6oXfI?dQjf1G#cop@_sAMGT0R0B*`V8jjTvxpc^n&{XI1U@oHcJG7&*EMYe@D z+6D}0B;ppv2FTW#d>*jGGnxbBpCaN8_fbdkp?hE^Fh2TSjclXma|~VpTn=1{99Vb2 z%8@(ZD_}G55wZ;}l;jwr7?>1s3StycMf}7M=5X2zSOy#?+wvcbh;%o6J)L5gbK3xP ziUx2-vr=?VN5X1FM&ef39H#tDZzy?y70PHMa*!?bMPk2yA+1AV{RPNPT^O~&z`c>& zJ@8EB?@7e*rxLdLxjW#0^#nERG0gLHCGUi2RG#vt5Lo zCu{2g@V;^~J)qMMC{=p9kpo*_JVBCtF*f;Yi6{3p%h5oka0qB?=(GoRs=+=*&Ou|5 zPuu4mffK|lUMq!|ryM;MaI#qG>_ql<8uBBZHgzN)N=+6j{X}GJ0{k8c{=wd3{fX0w zAg5@6=#bz#U5GagY29iv0aZbn0dJzDU_@(}F=tuqi-nwbFSupmQC`^WoZz z6!P;Gd42yZ35>B@+16~MNvhL2yq$?t=u+S`LuVASdYasJB&&3I%pmWNQy$66fL6vh z^OgM#u5+2{9BCMhS90r(s3Xal--NsqX!ztqX^CFx(S}?nd$V2V7S-9=Fj}hQHyZL{ zC4Z0Fm*1lv`FR2I0JmEN6$U8zTGzQR>Npl~x>XtZmsJyBKXGbsb`J8-DcP;YSpAjm zIz!%8$v<8l3E5PSaBtHPM1UTBq zft*D$8ciS$o&Ka05}%=RY_#;{?h-o^F!-8yCOdhu{K(E-aJf>89>n4H7elTO=?8{9 zU&+4(nNe3ED+mzSp?>@6Y$dQJ`rQh6CWU-czt-Kry54*5Ffhz*f*sAGJXt6 z&lg3+PbgUxaEsxi5cpHsTjR`8e(rLeLsX{~djUSo@sJ=Zm8;x%0vH#tpR4rV2Gz_5o~~HbDmGlEge4@4vku)z)<@rrh&BXmfep&% z9^ec^uYh=$R3U+*7B(wK_XGwUMx63iM>hW5kQF^iep@(7`2Bi@(pwYIVU$ujggp}g zHxpNso$do%aZ%@*fPN3+w4@5D`~{(xb5)Ao2$BV`YT#!i%ne79GL1IK zC#VI)*{^HA0v86xX@cCyPIpBbd5~zJldy>?y62KC#rW+o@FNm|EO`}jai!IhbhWOO zjN5gBGO9$jRvNAVK1q2Hi}(g4lTE`o;;>nTdWFn_Wop3VNMR`#`XL|v)&f5uE8yDq zz`IC@uJx(Zz!;J>*Ew||4{{*&_NYKs=2RmOx#@L*U?sKF_)KUGtS7nr%aNFTD$oIV z#~W`I_MMa&%}G|QT|zgW#`{R#0tv&qU|fw93+grV7ABI+C|y2MMEJhQg)YdOnjcon zu(Q<$qYrl2tU#j5L%_w@wNQ|pXDCvs_?YCEPrYUQ%0{E(YNRrq7A8xOJHR!6mi@LK z$;bXv3`H_Ws~(!A{ej%f_4!a_v*R+mZC(3nW}N2>$}O W-w~3-XJ&o?0000Ioh4q?|JB_2l+Iw*jf3)a7fc5AZOX6L46hAZ|a1a~uAg;l<2II%! zD%^vY(BDAL&sc}#pB`#EKQ;w>yMA$J)z8R>!_g zGq5$$JE+Y`EKUY}rrz?eV|;}KpTvR|ea53N(SH^zMiZP)AZ@Q|9925OED=_R@ck%# zyVOtOB<8dl&}af5s?PE$`5_#rk!*$W>fLFV79lo2fkC`1;`?hNK6i>s@kLJl6K#&2 zseWUxZPu}w3#IMGipU?r!~!yUld-2X2`00(&S?%Sp0hL}U&Q(;(sSbZ>|@>sm*X~( zn+%AfJ!}0qQ;__2+>rZz6!QwoA`ZKLOu#Q`(Keb{zEkUG=u6~0R*qtGv?BkV zNW(kDvP9O7ax@#G75TE(&yZ!YgW^!E45N`RYyAux5}6NFAP=LHugdyxUn28`DpG`5 z;(nWtHhIht7n-v8H2M9yvclT2e7^0$bK>IP3AznmPxr$WSdGaA1?6*_PTFof-GS~S zwecs^W-){}3kum%l6=~>6x5v=?#wuG!V&eH{|i2^{X9VA*;#^B1e3+`?^e$Gdxbj| z)x8Rr!&fyyr*(dDnS-aWQxvS)CI6*JB1<7Hm&`3IOoYm3jE&_-V4SF)Wmr^JAil*< zqx9J?a{OZz=<|?atGrl&youuOFs5#kqQ|h`_E#Wpt@B7e!>&Zh(h_o7S%1vP6D96U z(WVk|npuC$$Y)o|X`;eBMHFr4s~r*rFcDvi)Fj1z+-meXP>PF0t~4!aQ!z<|>Ya@S ztv773%>|TYXk`6PEI(b`9h&WsP6$)t0i)-}v7 z!_Q7tlJ6D~v5*U8SgF2B*QfPLTrcjtmy}_gU;^Gq^q&?b|F$PUq^qg#Z54&qvBqWU z-R2zbRKFT+=WMIQ<3hTzi$tfQxI>&5nZDm}ckOR$YTu44cm-X7AJzNdX4RzL8Rp^L zoQ|VLJ~%GX;WO79_4!h^w0)x7*9p3CGv3BuIoa>2E*SiaZV{hP<&+JHTipiSE1qAQ zJ#^0(>H8~&D+_t6KTgIMJD(`>1~xsih(73A;63`vb5RSOlC66q@`Lpc#0@ zU zcZE&t!D=)CzYZf1)*1QyD9C{`fWyGY5%Dt>eVbA3!jou$7DmJmB)rk(A@fc~2D~$5 z-V~Gre*v$B%-hZ>SbYcEf&P#=-vE9`F(VLSISkeZ)R2gzVW1Y+M`{e25V=g?h{;XK zK{gXAP(TZeTqaNnoIpkw7KTt{4~$$U&k-R&xfKFC>^i1c9tnV2bg4i`q1gD2519T z0vpqjWvdG{S-TDGKsBldIfFHmsLnYUMl0vE4oZR3tbe&j<|yzrTCiSpsQ(2S@+#}o zmT3anc3?j$0hXcS)pICP9<}$Afb)PEC>5T8KCvRSTkgdf0gl=At6c}I9q>%H40s%P z1SkPU$)QMGV2VBuTmWoEet7`ZHlxCo$Z4De-b5Z~3#$AD!Zc(+D_zeTQ3-Gicr;H% z(_u9-*nW~1$tiYC4nj89gl_XZKOK0>-fbov_Zmare;nDHHwSX^ut4!(feBro=3N2s zw7uU-ev^oy5=|V~Kzf_J$=+WYgm?)P=RZy*?d2fE9=vEAPh{zHl@DD~u-Jr_*nKnd z{WCrNHd?^-79n3cFLnIsQ zy{5}KeiW}m0b?QZ#jo1EbKQb!I76OE%twh=r;jnVpnx{dqrAg=vuDgs(`A9(*JUDZ zB>Vp_@73**f5x6)lSO&wdtT#t-W_1vaa{i>+-|D`xRykI^8m_w+FgChkjJP&_TfHo zl%gbT1jUhYkCHKDoaJc6M_un)fp<_8US}K*I)SfHtN`uwPPB_z;rv>4jHePMU85vC zgcmI)b7z`&&f%yvgKV>L?`z znzo`9?y)gDkcX?vCX@{yp&!(D<4<`=L{4`a(q_;6$hV+L+y(pyydOZ{6x`z)*l*!A zhO*W%Q{*^_OxADOQGq;O98Dx=lpw?ECD`8+C(RhND-JvrK)wLkLO-d8rX)=Cr~a4? z{5pyWLp~Ka*V;B~KSgn4gHQP?lnpFJHjo!$z!wCI5pi^^bk4oQImqw9$N!7}0k(>R Ue6bQU_W%F@07*qoM6N<$g67qr@Bjb+ diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_user.png b/android_app/app/src/main/res/drawable-xhdpi/ic_user.png deleted file mode 100644 index 191972cddba319de08ff464d4f78bdab95c876ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)Mc{K~!jg)tOCe6G0e&p9C?QNG+lu)mp{+6~TiC6~vR`rBcz8VnId! zfFM}#=uJHO4=P?oyy~T(;6ZOzT18rmB8^lVto19Yhj&-jb!Ia=GrJofcn@Ln&OYyC zGdnX|!XG8zFmMt$0&D~}1Z@rA127KU2c7`S9?^?cFKWOH>E*+i2C8{WN4biB`9w~p{eBb6pz`;Xi$iXlrfs520S$-T zICHj%E(J_FFqdxu7m5%~;vDio>LkAaoGr+)BU^wwz!Lw8e+9;n>DL=2 zpPfbMMUGeog3r^yV`TKb;-i2a$mXUF+ydr1e19FXm!1HgQoxq7f*fAmMb<;n+hhi~ z1guu%Re{UE+gMH`=xdmar_?pT4d64K|ENvmpld9MN0|M==YgBRdf)QHzLegS7(NL)hkKbksT+y2VEM< zz|o{e9onPBow zDI<$OWrK=Zb}rT^&rfv)6#CvugKCBQUlpLdD|7`^G8C~z>7*+leDB*WEMu`99i=*0>s3x+*S_D18FC{TGahZUi;N z=*F11P~#NiuyWX{3kL|nD2{+M^Q53b(ZnG!g2R$PFt&@T;#S{&@AiH7J)75Ga+8-D z&i%fsbI&@%I;|z)q~d&jR7M zFhf}RU8cZJtTdi{!VtFUV-YLyi`L{5h6Fe2I}xiCd65BDa#=M;T5$tsVL|m>QzXb>4?;WZ|%rTbyMObK( zMdWe*O~L2$5P1+wTFje|opH=wfq25Ch1e_ceSFa-%*y%}VPEXq83`xM!6&irD`Dl! zSftp=d?#kL7~2TT6d&xyHij1|++jpm$vWf{78@(#1)RYHy&(TXH2fY0D#k9v9)&yP zMSJTdUY*rmz%9w+X6>gJuqK=51{Pm^2#v;lga&b-a z$!+p)q8y!aJX1k_Dej6k(>HNlry{n;$p_kqXhl9DPgbo&B=UdZhS;_O8-&IC$Jmd0 zqk36?4CV=$b`<-CkeQR;+J<~Wo+t8*{d7kD#!_2)PT~zkh}~msBJ4=Sm(j?+NNRQs z^0|opnTY4(@4qwhGlb}KPWUEn!}Qpf=ZW1KX6$lFP?vl{P9l-NDeJ#IwtrS*e&ezu z7cq*XI*ao!YE7PESE{maE@DLcz)*?#adM|V`JC}SpCi>;S506i7f}`6Dp9WOtLmKT zcrA|o4cD|7vsw}9>R^E)&(zIR<1kl|b=!%Uj@MO_hezX>$2xd_SwvNyYKwA+&5caM zON!cN?YP

Y@(VxXMJCPH2S?$Gd1G|%{CHw~}Ewo_OW$4rgVD%op^hhP?K%9eJ3nuSo{>+uN2uG+;!fNhjlbHh;TD*U4;5~6X|D`Fq}Yk0 zx~wAGU_iKN7!@uami5p!xL4STJZv5kT&i2-D}PK6SH6r#;!8FwGWKo_4dUgeMEM#s2|6zPtu-Z( n@5Gc@`7(y^fp9b(?#9r6Z%Lf_dDn&o00000NkvXXu0mjf3(!AO diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_waist.png b/android_app/app/src/main/res/drawable-xhdpi/ic_waist.png deleted file mode 100644 index d470104c5ec40886e24d66b98126e8ef609f93b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1204 zcmV;l1WWsgP)2yStx{MR$7zIWY#p^KCFG2Gsk<+oHKK; zLimTnp1t>4Yp=EMUTd$lhyB=(QK7S7Za$`B(_Ydgj}F|8erz3yfUVetGh3)s6)Zsw z&x};S4N1V)IJh-BmBytQz&1=Dji6P+h!rhRsw@r?$F_#6Mk{OrHjAS)W3<9bVyRI6 zST1O%R#nl= z0Afc^%k*nlhb|o2PNk}#nE|_T8@|YmcZ;w(vzM(NW z;*d=LWJ8Ufh>LSP7a97?c41bgKOxB-Q?&3lEGU>?Adb>4nX$YR&#`A9_!eJg`i~`= z*{Od@>OY>LS%>d3{Ra}wxv9S%wR{*|gx3lTsM8M=&`ip;^}qWY&`chNC*RNVU{4 z>rw4Ek!^k>vd;;^(YJ~8o$!xNan|8j9EFY8AsjrP))b->zu~9c_^F~^*cZ7_cbROo zj&pWaTkdRAGOL4Jir|S@c#}WQDMLekIk)V@;BOSv!P}7pe5`;=Hy4 z*K2VpnMJ*o^)+^i%(yQZ(=_L4 z7NghVe4Lk*?GQ)m#$;Un#dtfu!Uo~=Jt8gmC-EMZ`MN~1H{H7vZt&`gm=$=uDUeWk#F zP3e0+Gd4x+>;$pX6O;U!NJ09Cyvmy}&;tkh4nm#{$`zlLv7c>|`Uc1t@os)*gfXQpWoHS-44 z`(-Ply@df0rE2+!yaBsX`&YX)s)(KVyA0tt@d9>CTh*zKOK{!3R$@Q?m-r87BtKfb Sd9+CY0000lZBztYcT*?*&(Ou{Q)E0oAVC#Z#2K3*V~m9_z6 z#0MCYb*817fLFxBEBDB{(@r-q!z*7e1~FcTu!mPZSO}>`D}fQ*1B?JG3gE5L1Ki=2 z?-js1MaM`FuY5FjYN=(wHw!?MzXFSMW(VMQ3fMSz=FCo;C-A7-@`A5N%rJci=#^~; z*XaQ8%I%@yn}MN#0S1A&Ap=|t2(Nr06#Nq4XAS{Ifkn1ZGaLe(C7)GQ6L7|Nqm76G zC-l`<9s*|BfZ5)G!@zvYx<0f}_UT1+zzg!b`pVt1@66g!0KD>c6P(Q>62i|85utC%4IB*Jhol}T)Nr0wDXs4#^F>n>J+m?rP3>BFIY|)h6Nzal>I);i& z0oH5E9?8E0sc_t-W2nd!ptlDcIaSq7O+YO#yl|WzofVC-Bsj$Wb~5Ywe#f>&NA%jJ=8~7doeh`?MB>+H&reWQ0UR&`$Z@QEf9>fmv zZ%yM})LxxN;CxJdSN{T*`v?GVC8m?R=m(mOz-6+%8y&vjK`bXf$8_`-IDmfjRF9a; z90Be-zz+cPdMEuH`X002ovPDHLkV1iLc Ba0UPX diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_weight.png b/android_app/app/src/main/res/drawable-xhdpi/ic_weight.png deleted file mode 100644 index da0fab6fba3f7a72b1b22a1b4ba970bf825a1d26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)Yvbb|6^Kqt~&a|C-`z9x8&zw%5 z({twSq=oux7FYrHfD)%2i?uxRViMq#gi2s1C2=7?{k2R8T)~ zNPKu5MWCL2h>sGW9> z1?yiog)~B&0?=B8`W2!6V;X>5nim6uLTRo+Gx>HgF*1 z=77AA&jT-n{C-M?RGLG!$5o)yQ`d#MHl*6;X#m>NycqSV7J(t**f-#_^Y|$+EYy5Q z*=XW5s@A{|umns2JrVT-z|Dm3Ujlv#`7-be*a6-FM@dfp3^*tGw`{%Q3^l=;GySQ6`rl$0*YcHjc&Xe3Pn{RO&FH;=BQ35;SM zJSe8novYNqMB`Z!Ydn~+t$`3*OEwT1lR*kK5Og6^9Y`zWM8OG+VJ)=$9qA$wgYk8+?JO~t8QJ}2@{U<~u&K{?T=e&TJwhW*!aS3M^sEs*sM zxZ7g=3TYRz#euY3C(;wJ#euXsP|WTM*|h&!6VO5p*mMDFjYA7eK)X;0^%J;Fx&UtF zP)$gGNSLlXs1+&$yVa8uP)9J{SNMH{OQ_qO^eeSLD(F$Y5MLYy~gy YHNja}hM5LCRsaA107*qoM6N<$f`pPRH2?qr diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_whr.png b/android_app/app/src/main/res/drawable-xhdpi/ic_whr.png deleted file mode 100644 index e83da6d43f167b14672028da34ab88d83867d9ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$qWpPTRdGH zLoyoQ-q@QZ5-8E|@c56(-5W$NiX3CvBe0h}d1{5BqxDA5OPMG5m7I>miR3UvE$6tQ zS@v_|4dEF#Q?40Xr+?c#L)>rU>6xGR>KjL&xx~+XYVTr$5!d<~S!zZhOHh%Lgpx-h6YkD<#&6-V#35_{{o);sx#5yJyuODQDUnwXx^B z+xb77_Z}w7H+$Ljdsj@^_?~C}$F&dMoU<_&%C7o${JLbAlh67GJIg*@?byn2U+VIy z|Kft$uRi4$zPW$t_>Hjs3ajMu>{p+pcl0ghd?fx_Q!@~~sSNiJJZu&Zt zUq~sOy|Ma@{n5vnOmX3SH;>mGGgW0;68U>-cHGty_U<1YrInwia8F2Er`~=v=XKu{ zo)e3{Sbsbt$+QTFURpo!joN#${6J#VUPBwFi#&|z$c1IjbelJBCl7yM-mX2LKlY#Y xr|O3@T_X>K|2fFL*xIIj`pez=JK~ET#BW`vdre(7y%HFs44$rjF6*2UngCk3>|6i< diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_whtr.png b/android_app/app/src/main/res/drawable-xhdpi/ic_whtr.png deleted file mode 100644 index 0636e5402d29519cb33ea3e3d8749ef880436574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325 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 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_lost.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_lost.png deleted file mode 100644 index e7e285f12f5eff84ee5d01c443bfaecc2120ec3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1967 zcmV;g2T=HlP)CV?a%s1$*ClvZq5u%3I)bvKb%#Yjl3QXJ$Yp192Yv+&$t z%*=hwxp&6j%APs*eE<3Byw87z7_y8p*W)<;5&)1Cl0R@=_r|c}N~DGz0Dy6lFOYlz zz>6YsRck#r?4S~j0-&AR1K>gwMYF>W1Q<;~0I(;H zz+)sY7-PO!hgszqP&lqE_ ziwG^pmZg0na--F19k0@)Fdz|88yg!p0eofKYsZZ-=dDJzRqw|DB&En6rPNXsMMrFV zCn^L;L{t<-cL3}Rhyc#mhD7p%PN%Z~pq*0exj2rmhhccwrgx&;fJB5VD=W7}q+cKu zk%ce}twAFBaAIQOl8DSB0}{y_tyb%hE$>9R0d>!6{tBRzUW^M`>vskZ4M4Yh`M!T$ zL}mayNh$lBQtE~==Ab2S00p~Pv)MeSlsXOIlayivuwab2I#6T)L?llB_I>|W9LFz- z$m5hp#zo|o%_TtLLE3SgC8g8?(jh@aX0+DJr6U7C^55J44}#z>$!{aQyX_T`cWpr` zHO+S+y@~Yh1_0B8j7i&DP$JLs-izb-jf_Y4ipW)C%-70#Cn~*AbR6d`rPLe9fJAc9 z81r@+50X9W4uaq!fL6xipAwPfm6esxmhnzB&{iQYBoTQn48y{Z`fX*xFgyz&$awsT zh@5UVn|~|nyIlkCrMi%^25yji%@}jJNZlmIcD@#d;aQSrGag-6N=^B`|BE7iy<}yx zSzzFvF9JzK{s+*?%E~;+H?cKS_R~WVIqW#jZ}R%2$=Yr_@4zi0r?l4R^3+N4S$ts_ z&UZSU^GJzVL>`lz^?m;jdE?HK)#HksV-f+puC@MQjw%%ZXsy3X@&dN5gnCLu9xJ6z zxUT!lLP2M!k{x&yMRRc+r+%QWu8@3QM0#!!lu|$MbUJO4sYk6O*GL|99OwPAG54+8 zc7=(eDEdwu$KMC=e*^6{3CVwm$Y=VzzXss>G#`?W0KDwF?ypLQnyO0AaB@N#M2`TR z@I3Fmit4Wx5KySQ6;hSmYP%{wQ_i~tD5!@3rmBVm)X;(wS!_uUNgi=s_m4K>%2I8& z5|&!hI?0#nf&X3Z_N>du7_%rMrQvKB$z|7dYiUWf0I~@uQC*NK2UG=|ZCdg? z?^Ff#K2xP*P#A_YBJw>{cib^&GZ&zjDgzXT;S9-(0QU7OBO)6B?xj@o5%S%;RR*aN zK*pGPl9!PJ2f(_B93mO@D?su?0IwqZwq(&pE<#yNGu%~kkn6L?lTI*}w9K|%X$HvCyn$6}-8@`1Ab-PvSfQ+r=r4yd# zm7cA7$ry7v2b@iki?-kZ1ry0dOKkPV3QCrI?Q(4x1QT1r(M^*QTnZC74a zBL|4&Qvh>yECTar6sGwN5&1g+kOY7$qx3U@{{bPtQ6x$>N<{zw002ovPDHLkV1nHM BkK+IU diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_success.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_connection_success.png deleted file mode 100644 index 0645cc7f2a4bf384df5f541ca3f9237263dd5773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341 zcmV-D1;YA?P)6+j{)j{yh99(0xfiHJM`yg%lEvj#{+WYd_CIspQ1>&p?RHUV45 z7$_PLFfSrM17~~m$D=35e%#Cg)&mzyuLjYO8eTO#nieEr4X|3{=!r;s8lZoTke2$6 zGfKb);F99#a)ixOioF%!m=V&!A!7CfatCn1;OH@@-8Mi0_{<1tN8fRq7wHhf-y(9@ z(DWhTw8MwcGA<#62SvmJe)AM&(l+D2dD3X_Q*8!S+J0ml`@LbJHwxHdbo7+LmKjjq z{sZIKhlYvXC}6wMQFSJvuP-+M%KKOs?)}3=ZxpcC=;(39#u=sG*A0CF`fgg*qr(v} z2-s?LwDvIR1(d@%VI1?t;RzUoec?V=(|1{E|81qM2hL055ilqg5^z>&d%n~z0LNz% zP9b2IF@Q6rJ{q9!@-_iDYP9`EIsyg(yN!V?=YgM7+I*k4vF=(6spB^ZSTY9mCGffO z`wzf}Mq96?j@u>RpfRwkk-wF-Ep@z6w}-$!V}M=s&KR+@8N46(i-`Ob_7iuEUXSqS zB=84tx3_PT!2(VpcVWRmkledf4yRCeNWgs+I8%Yt6;7ec(U5?9fj<=|-PfGJjzn;@ z8-Po|2Cu>DW7VYH5zcmj)Yr_Z>N2p=YVZLgoI>tvPU0ZF88Obs4*S2;Hj{vR&>yQN zxs!PKAT37NKN1ngMY4R~f2zBa#_NoT+#b=#GtQL=`&T3S+#({ksx8Qpg4W9@h@1M> zQ+8RqBF3@aRRR18thE|mhYeE9q8S6HP|T)afnu51^Nxc zZ@@aQ&BE|{vemsR_nUK1a0gL zWLw~?5q*b%Q^=kBB75ao1@7|pZ8IEm-C@05?4p?6Emh&ybx!Ot2B=+%T`}5l?`}zj z{epc7_(u7C1z0rNI+{9eldzw2cINHB(g5XctSP0ml^t!uK64gJeZFV|l(&1^XuC1Z zomALo&X!6)EiYCrf3eOaOC8gA!aj3uI74{=BuLGf0-joS6lSLa1@$@@ywi;jW#tvo)p?4DNa6y-0TnWH|^ zgNdw={1=0Ru5>VZA$d{$qV05LrTruUxD)tEaq!s)n;M`W(O*T%N;7k+0@hOhF-w$# z^z$*x_P*onB(j-wzU1K39c*>|9Ljx(H;TyCq!r+qj&`~LawiT(6+PU{bpW)pj~Lq2 z>6_IM!asdE;?zP2Ve=RR&Ei+j3n7H3#u{wa0F4S~5^}6T(=HGnN=87lQ6N5q41oT> za70=GP5YcPh7>?I;fOQ>x(TOH4WM^Z`&8C7qRgw<1h0mC00000NkvXXu0mjfC^>=p diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_not_supported.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_not_supported.png deleted file mode 100644 index 6159ef0a53f3d67b145aec5d79d48d0e06f34668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1219 zcmV;!1U&nRP)Pb` z?&3#Pb$37zomkfq(%Z z4IKzbj5G!yAR$sKpyT7?mznv~P?d3nn7N33QZ*1WU)kQ?{sF)dGcN+xsVTQ&wi89MeS}*peNwiJQYZdKn*xH|9d1?3wjUrI5sz{s$x&|X`A2!cOwuH z&5bdY>mVYM1w#5qQRY@iBMBM=2T&lv|Cl6M zmVE>rQjjr8eIJwx$rzIqsnwnI(}>jiSu6n37Xa?N3Z+8o^swp^iHPn2cn1ST>ijfM zL^l&ejz=?CyH{l={+A5yStTTIXA}aE6%qdqE8g%8slZcEEZC19Khp@VhAJ=d5n|-2k<=Q z>U-ec+1WV)fU2rkgJX=TeBuCr@p&+ts;XE-GUv&Ssa6AhZJ7BofL{T;*!Ngn5@gce z=hcmf{(}4Jwg`a(1ZqJxtIM%wlK*oe`q*)-SMX@^?xl^dypB1W2?_)RM+%AqL;wPU zA$=1X2Z#g&_#e1eV^i=%0|NZEq*&RGd9vkld3QRUK8r_JrKVh+PNy#{m&@;C)T=2` zfq?NLMF#@Lg_LY}hlps$zm$uUXBt0`5@I~QjFp6l?P&DGuA-AgAYC(AbV(!Dhb_dDqhs}IstDB;!{0G@$DEzP7v@&*)o-6|E5 z7ob>+dMS{41I1qPjE&R_DAkH*mSvwoxBaE}7Uj-BWm(QOlko7os3#(ZnZJZ?`%CZL zx1E4eZ6vTb#+VOV{!DPB%)&dgDlHP`<9aH9o$Zr`PpoC zw$|N(ZC+BO*u=3>ZsIx>k?)!cbiPr{^Zdd2`T5&1wxHDHakr|Aqr2U|xVU&L&-34# zj?wE;qbQ1peSY8P)O9UqGc_&gR79@r@9+QN`u$k`SYSPctL1EF;{o?nMBa6^9GkHL zIlEO|R!9e$Znd6gx|}RgTDP3d5Rqn@RA8)002ovPDHLkV1g06FSY;x diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_supported.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_device_supported.png deleted file mode 100644 index e238d33b4faac78ef829b39f07ba61e2a6b5bd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1583 zcmV+~2GIG5P){LYK~#90)!e&p97P-l@b7mFv86OXM@b}Cjuh$kQ4>MIUqAs$A`&~c zg5rc=qmUpF1%fyapUp!;LIFj9;6z1%DEJF*b}a&BgeYi`Xc7|JdENXdd>0+g-9Be_ z@4n^j?9KS&`OQ9UqUN;Q?Iy_=0DvS!WHktat96g77ghHFCMG7HA-SLAegOMPeip~^ zeBI;frFNhJnG}(=Q9&9-AYg=$MimGc5u{ND0!9F7)PaB|-c0NV*oogrlgA}IiV1Mo1p8JD%zE2T%a69E9v z^S)F{Er>|vNV!VP_x;NNmXHCd-EOay8W{i)d9?mC8jWiJ7LZD!4`xk%>W{Ypvfi z#)L`xlDuP#dHukF1Apf2w?Cz?rNS`0L~`gAG8+WJcLj!-8fQR2W~4H4iUT+X0&%Q-way6!5sT`;vPA`=sRSHxRr7!>P38Ov%@ zDRtEIysy)~F9?E_E>hA=a#n6ufwGpBQffBOwN(%V7eyrXX^D$+vj!B$@f?7(vf3g! zU*y8Gif)@6NK#pqzS-3+x3t^0R*^~rRfW?_5Ckh3-vzLOR0^oO=6sxj zvne9SY~JkZz6phr=(fb=!T$#bhHikc$wQcAN2N~xtrqmc%g zm_jp1Yki#LYL*4r0nTLrX_prrW6Zfmqp@DLzuZ7t>*GqPwW`*f{&aE9q%`XoW6p+Q zc*#bexk{`~9If>g0B@u;vx)=c1S0u-5)R2bola-g_A4k+6g81vRu7a?OTO=yF020J zDzV$QZyz?sw1#Z9_S##2wAPibIlGe!=-|PF5BKifdq^quL;vS4-t6k;Ws+%Y&I6^? z8JlI*pWKV|%*@RF$;ruAN%m%nlbHhmA~K!Q#M#X0rO-R{QjsHsGzL+Gj2fE&vVi;PC%980OJGH z0Z=&(Fdjf10B3#QuN(&$eV|%#fYAo39S0a)ppn1;&1=} diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_disabled.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bluetooth_disabled.png deleted file mode 100644 index 3176f13739d3ffc75d41addf367ee8c915b12d8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1748 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 X1o8JW$vIjR00000NkvXXu0mjf9sloV diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bmi.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bmi.png deleted file mode 100644 index 949e65dfc1d4be8cfef2c6043ff3ac98fcfb8335..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmV-)1dIELP)aAJyawlL|3Q?6M_otB1I2obfqRJv%)d#=7?65nU0s#Y@8mxeVjALnc4fCGv_j~ z{;)WEuf5i{*829keBZYZi9{liNF)-8L?V$$Boc{4Vn3yJcc4KgVJ1$+X*d*zXZf%X zefS5x_z^$h?^buTRZPS@JcMrS#XudY2T$M%9MaMeG>Msb7#q~5kkQgsJcsjJHkvVH zn&^DJGo{w_wpgy?g0scGQR^Ug;;$@itE2vQT-p5LHO5@AxfU7FuVPQS7&C^EH3f5U z4^|hH`7ds5%E-omgYcdFLF~o?Os+w83D@Aag7VL7cr;DmHpSlZ)eW?9I(8Ij}g{A`|uuSSG0RF-tR;Ob&K%CLPM9`G+`Ka3rlw_ z+U>!EhWcNJ;XZ>ix9!RqPC@1T&3FJu8_E=6C_aie@Qv`nMv}irZ0PUcN!)_tt7J~k z+S*iAx9!RqO+n?fOKjS6jLsxX#VJ{uVRTbq0xrVKVq+h!Z*5mj5d~GI^>_-G;m90? z4aaf9f?kY2^7__^$9y*~sG;u9_$vF|j4dJvHc?pIQ?qoIIPQglmf;M1X0Xbh9H19`ZjR=E|E9zNd^A-E9biZ); zMq&jXtE2svQmLTF@os@SJ;F54qt}66dL>)1ag^r+nT)nlsi2KIYY7a9W4X75ZLY=( zl^LCWiuGyjOIs-R%KdaGT&prj%Wc{_K9GLDRoF6#KPsT#JN4p2i(HWp2jZm3iY$ z^9!(~DzE&3F^_c)T&|y}T2j??qJs90@@%KDx$@}CkyB>A(e1pwov5JeH1^Gl_#(Qz zK^fm-RwpWGlL$xL*~UIB5kdZ*PW9#o@Jx37x`+=?YeBmu5fk59&gjG$RLvte5!cJv zQ0rv3Ff}g6t16Vk_=yMY!E4#|`s{w52#D1~uZS${!VLyZiUSz$f8s1NS40X=5FZB@ zi4*D!aiVR*r^1~YFlekM5{X12kw_#Gi9{liNF)-8TKEqDYyueZ{>%;l0000lzGMO<(sZP1MSdIlaA7^1gi?$D94?f4+_;OhN z6}SZpF$+^$wD%8w!4KGuckz9TI$ee>80^CFKIUOQHh0P9W?Wh=0M(wL2k-<=ir2@m z4STUq_(xh{3eLbH^u@BH(WjH+^&xzMUop_4y$P6sGli#eVk|$72k~?x%GN7K`8V8; z=`A`q8hyA==yHY41GrZ?aP8(aAt?J3o9pUryfSI@8P4v2gO#{Gv3p&YY|a+Oz{2i| zS`E&_Ur~6Q&i#XxSfK3af-c&fj4z_yKXFbq;g_S}Va(~cYeVT(fC!nncrZ4OCNv3u zM4=508d!n5l?VMktiiGdbTk{FJQHmX;FL-N%Mu5#Y(VjaNxSE9 zDn5?a`y0^HY=92LHXlXXFC=;{Xh6@xq}`2`1Rjo+zpH-&Nl2Gl6Xko7-%mB5r`Z6d z88@~4q4E@^9!koY^r1=u8)D@*4Ja*`WN45E@tnp2-E4qL(N=1EYxJp6cE^=dkN78XIhzrP~w5lA(#^pzKf?S!^^)U9vT9ve=lWmt)YlpqE*!*T==)gT9`201`A$N{QB z4p0qpfNGEfRD*OaHpj@f3B}8}nHB2BJ2T_C&&YfG@8hwOu)UBOh1|tzP!hhP--L_t z7FNZ&@8Wq?EI$#sP5Gs0@u9=oSiS={PsDByS(Rrkp#% P00000NkvXXu0mjfu~;cN diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_bone.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_bone.png deleted file mode 100644 index 529bf6bd46581d064306a360d83a4a599b784eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmVz>#rl-4KEw88h3w3)` z)$dEytKVCy*g9;(K^(zvXkra#aTvSGb*()6a9)tIQMroOaBZPJ7UN-D)?H3}S;6&1 zdRl;c^(UuQj$)!ff3va;=kzb9Ri4h@<-9y?d3ZhGTgK3KYSvtpjP?N7Ri&IlSWVz z%h;YTlr-ETouDRO&KF928aO7cpf%hyjH}o@7O^LBJ5%^`*aS6%*BN(bYOiVJN*nwNcH?<0;Tz!tG;0C-Z z+|Ldh(rFb-&U%7sL6v8*1>tY3-I4lIO9mA*5^`8SQJfTp`{URvr17i5PmZ7BZM{ZOya#vZ7t$H{GO@3Xzaw_ z(vF(Izl_ABGge^CRM*D9mwA6%p5YfoHK^|2#lVX zFjxw(D*f){+AxpL^)BbKaD3KCF@x8I1Jk<6IWK$&7+H1+$I~3gufndG3&I}HgTnDy bTY`T8u%keJ7%f5p00000NkvXXu0mjf@^s;j 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 deleted file mode 100644 index b206daf731837a74c1bb775b3aa0b1b96b6d59de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2098 zcmV-22+jA2P)oalaR;mjxZnaoQUXQFQd-*Qhk2FDIdks*dYi&O znGdgT?wmRE?wK=ZW=>%re38pq0SCGP=L5Y9pKE~kfDKtG)K*Xe+yVRxoE*H<~cq~rP>PiLxMWfK=);-R9nJb*v9!C*gs39 z+6saVUDi%#U6py(M=!u&W@q)iRU)fbG~5yU5_H z1b$HX^1!nNavA9hpe&)Dqmj4LD|b1qkWu&udqVFje7(^9&pdYfgbQ%*f}fEr$b7~j zcLnlh7X{;#0e1jLI{3{c_8d}O^`Z}QB+(}GHqbGqt|h?p4!J9V9x>%QaS*WHG2qX@ zO$8nkJqzEzh;1B@rP=6^n+G09pmPcEfVR3;wX8~XA;1R#lUM*8 zsEjd)_y=B-nt)f3Sk1)Iz-EJgby!2VFkeyPLm&Qu?0zFOTE^}eq%-g!(R^E2st0aI z;;o*@5lGt%o=UQfjYS-r7u%5pyr1PeASIrAfv(E;s}Mgk2RJc6hn0vQ`x|lSAi-mA z-~@sl_wR^-G(Gab$pOzhQ4airZSmV8$QXdzKlyF#-vbkYBSMVPA35M^#eyJ85?}Fz zBCwipyM-5Bkz+_0g;yd+k2r6A32-H_HpDm^k)SqigwE;MexV6*rg6{_cgUYdcDdi&+7FFV;73LHoFqb#UwDlocLy*cp==G4(4GJ6q=N5Igsvrd>S2^3 zw-H%V#lp49m`%t|8w-7aZHmxw2^H-G{GrIbA)(wbn5~SvIF6tk@VO%FofMS3Mv*%| z;F$^}%$Nmy32Zf<|1;#+rNB~U{PUtr0N^r3NFCv}+8~%)eIrtd^}|?2pEw2r*<8%$ zBOOw^BWD>?NE!+BDn;(|A)ZUqKwwvX8;}%CC}_2s;WQhzhuH zjPZFP@`JQCwjj>hi{rrGK$DU4k{9cMTT@c11NLEZMM|>cz#O|TxD7M_2?|ZzgjhQb z9H5L}lalN>Fvl(f-9S0yFly$D-v?e!Q6cSM+nA#KsAw=gmx6Af(b#t%>XGzmn%JiN z%`8o~Cd}i~Rt>QAosqsODuUL_fru=Zc+msr|2@(%i!wgnHxh{4duX0 z^lX4h6GO`E=%JC=2J(Kdm6W`=PtjwKV0f~^umSN&Nl=R9U9|kQi+&?`Ne_-7FAsd@ zBdZ)KHktH9VThx?3?mVr*d_J> z3is8_G*F4&8#%*dtTh-GMI7izq$@0_0{SWLLR?R5KafZMUq>;nDwHD!ZgafVDE*J- zG5__DgH$3Z&!E2NWx%;1lq6Jk6H4{z$`?IZgwPJFtIYThY(|?2mMGn1z0m z{zi&*QSv)89I|Q%nZWWv2~zT|bBr;;_23%{^X&>>MRGq9v(y?)tMheONNzh6stEQe8huP~ zi%Jq4hHM&X8m0;PK_l1T2jgzzHE9WOcI4^C$58YJ^{9q3iRz~iv&iY%&dZVON_`6h)gW(8b(}$pgbE~0(GUBk&N`%ftQz^T c_n}z$4*=F2k6_x2y#N3J07*qoM6N<$g7o6oKL7v# 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 deleted file mode 100644 index bfa069e3211ea8deba4e98c21c22f7a19e01fa83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2157 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 Y7az-G6F3mCH~;_u07*qoM6N<$g5Sp>cK`qY diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_calories.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_calories.png deleted file mode 100644 index 4b14cdb8ae0748a3bf36dd5c0c349dcaab17ea36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2217 zcmV;a2v+xrP)T0Dx$%FT`Y(lOArujAVrY7=O5o0X5PMikKMbsPrd9nnY`VZ z*`441X69GtL5dV9QlvDHG%FK*r^ehr2fR;o%@-A00_Ov*(F*TG z>E&D~dg7LC9nwrE0>|NIs|Gj(xEWaH)n8}cu`w`}{4JM6`3(u^vSL4^=A#n10=O{n zjtnq4#yjd$mIFJK_R|X^sIE5#&IJY{d#BPA(8{U=zDHZ=P9)%coDGaK@0|zS1AKxs zU_)r^fVOczL&K}U(Ud{OTO0(8LIz+zpcOI{n<3$BwNsU;?*@zjZUs(5D`zXq7iM{<5D0TyL(w2AU>FZ?zd`F*0Bi$G2v{ zZ-G~E!rFf9I&1=b~61W|=a)M<#u)FEI z3C@zX#j5@!@rxPjv@(pv6f@Wya<|4IIQPMp>cF$3a9h&$>60+M;8yGTWf+U@xK;2X zT0s_raUVX7T&;Jh_uOb2F@r$Ho-a$zL>g>Uuig^V6?yBneg@iVjhaCKmy;`Z)&i@& z`&#n1+)F?Uq)i$ngEHRrUBDYit{ja%+E=5Mh#4U5b~Es}A=K|Th~$~nD&hC9hhlm7c$7{n~c11kX!INFcNqhS;e4O z@N84x7g^4rt$3~X&JU3@nIw9UtTCE{S%lj=wJ26(P5TKbW)#-GSFOBA#MGq z!N|2Z9{7~P-t;o$2en1%4ch2+_ATnfsf ztPHBe#g?tC*~YYOO+NE7C~*IWsb2!@OgMwuB7q$yvubb#>NmhKXcEG<_3!}AWj7RC zq9BwdXeDwxUhwKZ1|9=`^y-!Xdn2ZWG3YFu+!_kpgqYzQqxRQNHBCS{IUB!AJRB>DLY#{~>z%jhFscQ<{NUr9yWi|@LTij>r-wx0khe2J@3iQia zL{Gctp|u(KA(V!;TIw|<$VUV|0tz#z4bD9oA0TP~xq-UZk^g7W4VSEJ$QBFR;#r_~ zgl7Q>-m$<>Xv<6iEo*ukCSQbFb|goJ{KI)t`b} z$zPHiVZhKDl|i?n6qH|HMtQ$T7*9Bd=Oe*s88i%Oqp-eV+B4TiOj$Dn2ZFpep8xNYDYgfmgfXCToG#R|lfHH0%bth@uCL6Wg*H*=%iq??T3!MG=`~wbBT$t`qXTf-m}=+%RXSkUqr>#huV;5-UUO zht#5pSdFx)P45&!F$Rqbp(%@E<-3s2yeyJa1+y@Bm`*Fm%~rO+rH`}d;KBi3dvm09 zvdE~5!XO{bk?PN)@JUti?l~yNpeo={6mqep2ae%;1lsxl?F$WLU5ftbMA!_pb)H44 zc`(ifsX+__*bR6DWfih0*fu%F2Z9*xV|C2uE!v?NRtv8#i)^XMzy)a1hI;Kkqpi4E z$g_1wE>HCb*%x1}97E5JUZlVjN%0UqNx;ub?Xk-%{_GzRL@= zAB7HMgtg7K1KEJt9JCrHAp4`2DL&3K#bPNk2cD-)3A_S$46T0O6v*P@ScAy7d6uBv z^1gXCxPsO@?m@|2fl|x^kp`G`D$by2;`8XZ-E#9>6QubdUcjt9+ODhcW-S72 z!0as~@RPtgB=9$gprIHBe~UGy@{u33FBP6bR(6sYg49j+R>OJJ9(&w6fIS4Mr!;ly63-7+> zeir%XqJyYHr}LA>r|7Q;Vd#ZY;&D)iV)1^+WgR-JnFD)XF)b=%gDYr%6w)Y%s{XHI rEy@3LDMgADDN>|Jks?KkMv8v`-Cgb}ZXcFw00000NkvXXu0mjfQ?wZ? diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_chest.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_chest.png deleted file mode 100644 index 9b1a0a3adb6f647fd36a528244bed48d9cd8306b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2032 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 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_difference.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_difference.png deleted file mode 100644 index bca042dda77801d1e96e4abfd09a4291bccd3b78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1622 zcmV-c2C4apP)8Rj?vWif9w4(zI$6twO=AD>4@HQe$RBQ>Zv0)yt9Jn9o26h0$74lRu3e2#~+nPs-FX#ga z)4B{;0Xzu21bl{6GA{jcaS}MkvVKM_4jN<|nz8s}8FzQtOCXhVchuX7yd1M)aNhzQZIz5a+auud=$ zr~zp|!XmWbM~LG{#dQ(-kjDG8hy04DBv3ga79yQ2*Bk@BMJhkYv=F}le|yL;5e?ew zQlJB9N7{=v;35xso}l=Nq1uNZaPNplU=`2|yaNB0OgA#FS&ocz zT+t3}4Wi9KdLL0*hXRHVk}hNvJ&81s+mI3Ndf;08G|D~$gkM-n4{cdRj;J`)I!lgiZ+p}GJ ze}neEaa)vzdB7}3X}J<8$~}rqU9=f#(2oIY9Hi$;Al*H^5r5CbMXM;T$OLeSWtuJo zs^lI;*hL%7id&u>u%FV(Y_?3-g+OucQFwJx7o`=MLPp$|TBK_$P!jhjyt$|W*sCSH z3+d3Q-(R#y+g2dmJv$Oy@5M!TXo;Q#E=PLWE?i_IP}n_5KIhy;Ib<}f5_~0iKM#Db zy>HqU*$9-@Jqo8TigJ%4?4tPw>6;2<;vR)F7nO65BJ84WgFH+HGIfu_iHj<^M{$pK z%?Z-G$V4C;_b9Ag6z3jA9$8^9b&-icx_drMnV-&MShy&OdlWVy$+2EGHn0Nw{SA#>}uARXM-v~|aE$ zfVf;ZbWXVK@f}fZQOydJLslvlWtiu^n9Vv?g&gou#(AC#+?R2l#^ivjtB~*F_)BVo z95TAin(z~=W@!ZO2A)B7lKI|w|0mKTwpnESUsBUgu{sr~3lu|Lpcv``#ZVV0hPps8 z)QUh+r;6rgUWy2^Jk*;<2F2~jl*fGFVq{vkgVJ686Uh0oA>{DfFmiV6Aabg3DvLt< z6lf;0D0d_B4F^k*$u<{^BNKdIBPXJJu{aBsB`wH|VJ~)*ZE52)@Con;GOb%vG$V67 zd&qV|y;AH6%4Bqa&J}Zjr;v5;Y70^>Mvx;1zK?Si(TuEH7aUX|t2hEYf#+jT4Tx>^ zZ6aq{i~x7J76znG@?H&8&{e#N!y^dGNcMd@XIdP_?o=ZnXXz(upfbLqfb`LfXr*{_ zYQavBHME!i5rW}q6WU`%rg^I`0|v00Vp&#$p8QV07*qoM6N<$g4JH{5&!@I diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_editable.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_editable.png deleted file mode 100644 index 8511e4eac84b4d40a974e19c6fa600da73133b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 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 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 deleted file mode 100644 index 72ede5160d3a9f138a46b83678fc712fee741dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1805 zcmV+o2lDudP)^RQ5m$D@;l;4GJXEGBm}g zjJ{MvSXxG}4_Q%U_Ry%%tiTj8C3{F2G^IUE(eaUHFRF1WU!$YrsHYF>UOltV+UMMR z&+9VRKdcYVU3U_#%_G0Ty%xt_S*N|J?{I1O7?Npi)5vFdf(fI0m%< zF9WBfW?jn20E_Vk#-z1CZAvz#iaQAoPL8$$XQX3hI_M4jNB#kFfS)L%Aiae*0PBE3 zz@@+f<#Pw92l}L7Z=x81*YQKZg)W{9@RGvU?w_P8U=v=apI3M@z#N7505CKGTT{W4 zcpcsbbh7YgfSE4dCSXYXW~PGyNN!^W=(>P)xgfRc;ADUmc!RSj&-EREOX4xDG;jyr z;OwMK6F?KToadf2jVdL~#T%SDqv3``TZlYa@L1(=6q*=2zmU zc%L!|)Eju6KdAi8Mu&i>kQ1=oVF+-PwhkWw1|v__aK!n|1P5vh@s>0aPf{y^4R{@W zP2sIUYRo}FItn}-gRM6KKOk42#PB#?2me6&U2fE(7tH+V1MKypLNNh2oRyncW%3-L z8LwkE8+bI}QEmnalA#VHEam z$LEAgGT*ky-ITR07K~FA9stg^@S8z;2kEZ5(GR(jXwJMx@$K`9tUgWdW}sJ*a;@kN zG*}dF0PfB5n5YFdBF>t@0eLlBEpi=TMhKfLfcX}=Ul8%^!fcBo^J$ui_r&Od9-J}w z2Pa3PLfBmaylas=I)vOdxC+T}@;!-~klVfAAi@Z|o2ZR;5bl+zK%QVz?vfBPkKrU> zy&^mx+5%i@k=qUU+Td>n#sa@6vKEK*qYCd{*AP-B08{ZA`xh_}c$DBgrxodsX|Gr} zq#T=jJx6B$J_x;KbW2EImKgF5hLlHt^qgm`!FM&VT;X%mhd>uaM^~gpWcJG*Q)JXr z{I%f%V7DP}dy%q^;bX0Q4fh zgN(jtITJ|f<0H$u9Nplfw-UG?nRoP)@j?NQuc?E)ij@X`Cm(({ zX)Wvyz<6X|@mu>Z@Bq-UKwpkwFy5T!2$BmG16vN_AW5Ygvn+fjwE(BO){Vq|G0ssl z@C+d@!Bt4^VhW!XMkw;XYfJejx%jGq?~Kn^Al(sj-8kg*TxF4)qk~9bdWQ4?fQJ+X z4cPaKLQn~OsmR|=+cCR7$VTiSIZ{`oda2oERy0joO4~`cQ0NEjSCov4N&#}a*Dkzs z6~6gMA_=lz>{8a*Xch8wMGEcY_%v!INUhr3#fcBE_)OL4v@dd@H<4rN)?Sac4}eqMnjo4+bNZrTOhhc{h_ z6t60Z>*H1mJgDeh1`GqfQ9g6iA>b7fn4unq-rKr7ZpFydN1@aAhmq^UnF-iO6?#)o z>utq_8H#=zEg<1m^%TX3Mx;EN1iGUSj+?X||GQT#I1jyterp1{yCIqFK1IKqwjw7} z;$I5PAQgRWgNzfE$dMg%%WgnUutG1!kzu@I)IRLJt+2=-Pl9&GbJJcVfLhftG1zjR zsWIsr27IgNb5kqwO`pgcdBs566xR}>He$g*{KxVfB)wRG?1v=*+dR(|5$foNI33hO zTN$z5(6G((%!x>TFZ}DjIa-Gdo0lA>p`R9E>pY#1jdiCY-%WoaO@Na8IzkWh4#T7n zGBZfdv`vxgrv1Rv9Ixw?B&MV90mUX@!-4M=ndZqf8|g`vJj_Pk5sJIh3?#pf!(!n4 z&{ii1vs77E;QGGEAX3oDR7dfhk5plfm@Le5T~FXeg6Ez$0XIf#a zoO))XUptv56Md4II2Pe`Zkoc^5x5I++%GVDfJbOYztS=qJwdq`|%#u3@&00000NkvXXu0mjfl>AGP diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_hip.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_hip.png deleted file mode 100644 index 5bbfbb9a0c6ca749bca289fdac1289bcb4f75620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2079 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 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale.png deleted file mode 100644 index cc0c57d222b776768d1d5d2c4fa8b62838be8741..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7045 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 t$x+7G+C)$Di+fkjIIOc1-9G@p{{v%bK diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale_pro.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_launcher_openscale_pro.png deleted file mode 100644 index 259634326bae0c1736627349932869d6634278bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7763 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�VZEHIE$#DrnzK?THhADuk^* z&fdm=QC$ZzVmb0Ce;kVLC1X@1a;6PxE8TwYFgKKa0oBI=GOW>=q4|bap_}i;v@UT` zuc?u4e^Mr2<&QeSupxQ2gR(P+O!HQ!A}Lo)d=!f>PDOmjO%D zy*Or>Jx6Np)JnU|*UA*2KdIjK_m%IjLBF;Zbp&apg4w;|2lcgztxsdG0a$s#WxmqN z)W;4=R)ILc&2B|}cy}+FH8(B%D38aymBQ%ngtD7AEW%e;JnJXwDThAo$MMpX>q8ME zBUJ^~Md0Z!x3S123gsH1boZlR57?F3Pc%_)D6{=N=F^?>%6$QF{=wk)u3PXmk|`kW z{O&|C-HVJoUT?DI6BoZnDN;UAR8j1_mIx!61Z6&_S(a@Xx_kq6rCiv*B0s6V@M@ig z2eNHzB$KZ1PT1`LwB1X7Ls&5N5eec#z}=Cj703gH4Bh>L5(yXy`Dc_WvN-C|l}ca2 z)Ys%R!i4OBP&`i}(Rr1rk8?wqM16GKPrzjnClvEQr@Jrz2vdFRus);Y?Gu%9TZTu* zP@Up`T7ja1n9!ZMxahH_7H}faOMUWT4WWtj6Nv?(Paoig7xLlb$AMdK1unlFxaAgL zc2Eng_|wR%d+R-R8CJn#T;=bg@L zfkz*8lc%c-V9a^#`s;xQ9}HIa3`(s&qMhQ2+-Yfgzo)#)lTVtrmq&pb8-btv#OiX+ zJQMiA4}dXa^7gNN4Oq8Mo;JHNYs(hkjW>YSR;wFpYqLl(YE(XMXD9I3V^&^?1aR-Y zPUV|B7g)R)*uOvYTMQc%PgoDR%h{c|4zv=|`C1^>ZWwcK*>F}&G7sdbKE=w@6Hfr! zwprcB{{6tue&+lc4j&E-9jZ>hY8CLq9|B940_)cUPd^Rp+h_Sab}U*1tX^%EbMhqc z)KiwPl?4$nYgSRWQfl>abWX82kQ5I8v@F^(3m=X7SDq}&GYZ?h*%|)i6HArsIQLw2 z`e&b&cYh;BIKx}Ec$Y1vi8#oJgB&FCzuh#*nwr#?vb8xW=80VMKq89XuG-OIbuA)} z9(9Im6=(1;rtWgYG-93r&?0O>QI+EZ9s~+)v;34P z&hRkRiY?f06kWC?J?4f&ybRTc2# zA6rA;c-$ha9g7!R4t$AG3iWXyLn5B;2Dn=b#fd;U3RE7kD!yYDiq=-(cfYg#mR0P< z7YkMeq|?BUew1I*$Re3^lV`~i;Mcz{sF<)8O~V8kF&K%YLV^5~$8!+nk+oETLYM33 zpSQZH+itVgsBmw#+?L4*y`i-eGE_{ zX)SwX3UYn=z?ELFJi28IS<>=-_Iu+->z@~n9RsepCRpB#S^kjd6O{l#o#&E+3>b+d zn2ki5$ZCs(JWjH@({L{7!XkI-#VLeP)yE#rkcewN63sVIJ=e|Drqla@0w9bn8zlo7 zFcJyKpLP)rv%;J`1K>1)qJl!zCmXgViXwuyw-EN`%>vU}5=qYZ$=kfR>^_nvloQHMWdxn64Sm_7SP*hbRGjjt z-wSK?O4?e}%PYz$i{q)fN>@P%@6+D08;UFvxlhK=+pYL2khDBbI2z}SA10z4Lu9|0 zr>?yZ@pL!(w@Ef^N#X~AXZ(N}hWQIVT-Oi3oqdn*vP!yaAxj?wWNl32EbYvwK;;1d z&gme{eWQ65fnTYrWYEbmcY49Y=jyob3VP+O4+nlg0T)dxO(5N~P_{eg;4BT!xPu$= ztn4E-A%AP>W2phK*TSf_DJi0^K0OIC z^`Kb(%trT}iX%0<$+o6;vhB~t;u(W?G2pdwtIw(Pc%r91zQ`|-$Y#){v6Zp-ojb-g z7}j-qm~$SPcYdR;K0TTIj=B>8G5zVWiUX@m>TLc8ATtlNXjcEN0R4xw5S&(@Ac&g! zcyAHPDv|#wXwK3B$q$ldj)Q5AvwDmWS z{Zlqheko%Wz!GYJLnJ5sp`kc~gRblnf=C2@;!|&nj<(A!V-?eMWud?orWZiW> zH@-Zp`4>d^8vwDW5r}JSl~$jqcVC|M%Ov7vT0AZ<%~<-ecmMw3`S{?E%${7?@!hzp z`9dN*N}S)Mu5fWTAgQ}Y{vP@DAOb~_JhsFv^ENQ&d<8SR{_Za~kFdX$kW23AIbFa0 zXuZ*uzRe(9%Yn1OF_d5}eMFf+Q6`U{_!T11F#`XTaoWciTi(^y`0}=S<9FNaWcvpI Z_;e9aR+u@ZU@bNq~fe&44Un-%&(_ve?|h4k88+6+r>T z6+|q9iUt7%L?~HgDGipgh#;U~v;s&}AVHRh8l@yEL(|L+MbWemdryo9Hh z#sgo?2HFri;>~yyw#2HH>o4IUOvi1w8NV&(JI1TYK;764@5Y|k2rtN@r{FHk!kjXG zAU42Ocn7w_KXD1p$LyDH>dO{e;dIPEPdTRGeG*cgVkAC}X%c>4!17CVrY|G9u`h1X zG)fQtioM&6UlChlGvT1Vo_(lz)1R=#(wXwhgTeS1?ia3@fEzI%-^7rX@gs31{-bHc z+4!2iy<;eTAR)Qm(wY9U!vGwC2gUu*!6rBr&*6|Z_pB=2 zgv&m>L@QWE=)!x17oHWaS*2Y2ES|^P7jj=CBTbTUBpOEQ0#xx;xJju-LX{w`oy zVtd*B7jOaAs$AP!CcOVb?%h$s?o526d?ub&<*cVI7-~Z$yN%L2i;tB}+H!FgvotXb z=VBhNlF3#v95ZpoBA)SS+}FqVtRY6)rhFcSE5x%J27Cy|32}Gf+Vb2^LUWnmAmN7x zu*X8ioG;!n9v4-Pqbg%gkno#cIqnf2YG9Zc;VqJ>9+z+&UB+!to-<1}s#}aYOTrs0 zx0nmZ3&dtL!l`-3wa}VHF{9ZO? zUb()Rgy48F$RydEarm+b$~j&J93rWAQkm4EaIWxDUl=T&cxL6?Abb!h>PtoX6XY86?8+^RoNrN_y?l zo13~Nn;l!8_Xo*x7YUCYD1!2BV#F6k_)RX)B7F5M#+2*uua^02FZ?y5e11U6nsyp& zu`xj0`9++jeND8I#P%b2OteR%;QXCrl`2k?tkRnChRG&8WS26KS|%iGPLdL5jh1_k!_*F*y-0LPW&EUY&NeOAUnffU8OahyOL( zu{5{be1YDgtAQ1zHE^VK_pTFi{ad-dnefO5q}Os7exmO-XTt;Lm$9phXH?6OeZ|mK z3>5>ln`#-7|zoa zeM6+XcXL_XZBlIZr=7cMS?K1tTZnvgna9X7W^cVqkBiD8@95z9J4<-|Q8sW)`Htx# zMcOsZ#wZ~+RkK@ns_2$Ig;cMQI_2W>;J1p>+(Ag}8ri)$Wz2RROtu}mB^-Ch=QH${ z5A(!h8)3PEIL9ecFE%h7BOQp z{J%yyKdy|Ki=W8`Tq53iil!#pO0w>l@_C$u@z!m=+W;}tR3X7@B{uI6tKKd;VR*Zn zmk<}@HzFq7^VckC=F{sk!% z&n*vqw4A$1;&lB^9@YUi)|4Dail?pDX51YTf+H$Nt3p3m63NQ=hlFzLrmi8Bai^vh z`?PpsyUe*ztR-$YQ!3*t#aQFZxgOz@3#1lXwf$o{!iB;?%S$@}6jg^glO1P<^#7CAfpIO|=4;0;Tm5}rd>9-sv{hBGlIrD`m&k}*R zQa`?9b=mpT%Y+}1lA~I0og@mlwFa9i3!Ej{?UKs1A@ZZ-4PumQL?kz=i7s5Pw>K>j zh6@)pexJHivcYy@lrzh@c@j30r9S(B2)0Ej?cK^f2Z@xJEk*IOQy zaBFbVE+TS&B^$DxWVh=jL-yxKz>f&0?$wWb78|1^hHnw?c~k`GVG`@zQu};Jvq|63 zR1ZrCoGkL<5;4*NQtAIzjB<>G!6qVb=V*2#C+J_vGgiFyh{am%5@J;`%r%V;4&l_RUKMb^Dc$wEL=H-P!(mOs?lbhzr z?^PFyM{TOfP0LC486)M;gOZg-OW2OZ-^(-Z6r+Dc!g(hPH`YKQ>qou9Uw;`cUUZU# z)nno~V=FP@4k8))^$OlA%|PuiM6(ia zyp=Ihde>`}V{n`MUUM&T_Jx6(f^@0923(^?jT$v-)TmLTMvWRZYSgGvW{M5)=6YQ4@?YF&a$-#26Bz7)3%9mtfqhxHL+v5J5#ntxD0hwx#d+$DPScr!#ZU zYvja= zT>Akyv~tr*2Zs|L9M`@8##d@`Y2Y=YgX7x!KLi5`EE4u2C^VM zVRhD)c$jdpMc@`^%-%q2#JHd>CP&;(yx4wVrZctQ3GWfjECt|cWI=ibF9*9r=;MDxGfNfl0y4oX zQ9%V*B=q?T*w>B}bBqRFM<)0opWh=wpAUht7IY-WWYk^L;`^)?_yCz;H@&C=RtbGp zm=u&G(}BP6CVs!~yE@<-^kR#^jgHSAz*>RN9|kog#tgz&(s%jB90F_&856YKz@?5) z4X{Bo_9|nl65jus@Co385W@rU5%DPa+d6%=0r5FB{a|3Gq(}{YdQ_TY8 z!EtQ|Q183OmB?1koADNfqZr{9k!cDzWNAQ{{fz4D$Svm~+uI7WEx=*+r(8bOsE&%IsI`lfIYejVI%@+CN@n_I zsbO%-n}5e3j+@YD_i zVtjHF9Dujb3tAH5_n5#h%w8tt%l{zjkO`X?@SB9{crPb7&ytZw%UZlV5ZdtesHY)oNb>g#x&&*)eGI+ZQp?rEFXrCH zd$UM)3_2OwkmU9{ccb>ZGJ}6hH}3W8zF{s#-jEbLx7CC?-<2s=B74)Uz`DD-Iu_P3zJC^e`vpAy0TR{o_zpH{q{!OSua_zaog`HoN2jzO47 zD*&mc9$7Kn-)mFOktAIOAQLno@3ooZ_>4imzx5m`-&K&%2>gm(Y%i*u3hEKvDDWwv zb~`iA@yOOlU8sUQs7Lf$flmpz&yo(KoPzAMO$Xkt!$j1%bxDx?ZFHF>D%lL$cD&t( zsi^Z0lHX&qEa@=HY-H)h7Q6~TGb-=W`E0T!!ZdS{r5FARfaD-aE*>+NJCXfv`3SE| zeKz6Mf=tze%3%qzAg#wMliU{gt{+uq$t{l}3(_jQMd1U^XML#0HP;k?<;a5MuK=8Z zcdj(|lylmqCE^;nXDqVQHft(1!89-)_>$=0Y$YS@D<+9LlGH{HjyEPn@V|xlgd7}e kOqwaE)L{cDZ_t+VKU?^>%acL|0X9VCnqN-CnqN-CnqN-=l{pi7**{c+TaW{RXYf{3>(o< z?LhY9Yur}tAmA`;Msu|TDdKqS#-MTy)s`QNtyqNdDcDMjvG^80muo1E274#kyUhP287p*uu4P$BbpmkX6;237(u^vm(FqT#W!5g>&ecJgPo}#ag zxJnGK-4*gzGACkB2cPX2m~jk8VjC_=%V2$4hVX;v)}P|3HqN)=*A)G=#W+!uy`Qn4 zE^{ZARnh;Ocrs0cX-~@oMeT8)c#@^C2`?)>XVhap8rwKG1Q&^3oC;agEemiV)|Pnv zc3dE4o>I9Mz4!ZVoT#7&i=21Raw+~23A0kvVHIwvpwBK-gB6%kL7(HrLph>?KFi`J zF=YBxz*i6PKpwAvuhgi)2Y96dzGh;%P!$d-PQnh{oS~2A#K*ZA`pA@JqCm_-D;kOx z(R&VA=8Nk2Pn?#b-6k<>Z4qn0%t&*o(H1L218o)M|5$udrp;4?K(|;Fqb+6Ht15Tc z`-EqThPu8CdzWK_sJt6QQF?nh0alx9gm_-y2GK~*2w|&Kdg2k0&!*eE0$3`l>dZ(} z4{D1R`_@8(MNxMSzQ?^dri1%?VKTnMbwcYo4&9RT{Y8E|WEmwY+yX7QSS$^0#TudC zyd)apERoD_#IyK2xqrH-bDG3DtI(+bI5_v@N@k>(X$t%zdO?ADjKLg{(07Pc{f~H6 z4AJ5OaHwdYLJ!)J_{fZ`XR+SmDHqscU+HzHNVJ6=h;E{HZEeS1Ptho?$?;|xufMWx zpuS?56zC!3jrM5m;GE>%29Y~=3oWUm99A}2C+Q|3#TMwH{oYXuh2GdB`CcVsojdCW zI@4YWwqERRlr!rTRLa84xLiv6U)7*aNFG-v$AiV@V!1hEtxyk%8fabOD-*KpL8C=d zU6dRT5kq2gnRb^Zwumk7-u9gt4+-kT7SIz#zdeW9DcF7h9~T`zo%qT+U8Kq^{4R11 zkux?6y}DdZ7UjXvuk@&Evss|~(R~#jj&G*EATPft=5jx19eZ*8eTjZ4OSSUoT{+;+E9Z`$Z zakqE_brU9(aNk5Rg)d3&9qzzI;ke}b&kyifZQqx?)(N3*f}}Ilh$qpU1o19j7y3-G z5|}nMLJV7j4-atdNFiy=>xBIibnPv(1~C+yMNeB;BZk3RQA6zNg3Qj!cz-GZ~y=R07*qoM6N<$f;DfD1poj5 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_options.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_options.png deleted file mode 100644 index 754bc9b7ec03a39d2134a13e8eba5a6386f3dff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE)4%caKYZ?lYt@yo-U3d z6?5L+*vQ*pz~g%Gz(4E59QQkU7+N{_iblhtrp}E0Yes$K^LB}9sbI! T}L52qHEbA4Sl@7m8Y3k?ic<-I>|V+y&=@Tg-6J%y(vI z&OI|rO-)TrN*YUW%-D#Cxj*6GY``DGxs}NH#2u@^H_GjZ%;HzY zIpK55hc5H(TB2{Jd1wkvTAtP+Hl_{9_n`xLEWh}BoHc|E-F95mS^PQ<3cuXIsQ({G hO`SkZO-;@J%^wxW_~o>PpDh3Y002ovPDHLkV1j>J5V-&V diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_about.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_about.png deleted file mode 100644 index 1e5957f5ff0150d863b0f150f58fb71716aa3b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 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 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_settings.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_settings.png deleted file mode 100644 index 951fa7cbd2d985cd464648988fc52bda3657193f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1385 zcmV-v1(y1WP)jQkmppl3hH3pX$Um?-3kcElSB1Vf9^!CQNmhw*~-#zDiuXE-+zVFP1bg>@z9vBBEe9t)04|Jqyup~uY3xVU9qepu`c5g% z0r%q0{bEom9XaXj^t3IO?Lr$vAa+V{0B8wlUk%Jnsx$&~fmH$ZEm-F!fbDUWt&u>E zVCSbBt+<`IHIBerVqP|dP9?>1%%?Z}4YLE7e-mxPPSj#>1<(Los&WnsG5U(s*XHvr z5_P~J*5jQCjI;nRW817h4sxCoz+Rv^fnH}l=5Pn3AX>5BP5|u%crOB;15S(o6mS6O z0ygUD2HpYw6wes&EO21~-RKlPwz(>F_Js)C+pyTWu;8onwjq1c!@jV~c`Eu-J z%zB*iqZ0T^inpq69`G9QFYcTl(&Lo>0rmmalG(2MUTi7`VGcI`hbTPd0Ju|1ACKU1 z-q1@bw*ud(?n~fq;9?JdH8#DDisv})8S{$j_C(n05zqQChI(wlbO49MygY=r5nF`) zSXeyIwaSb#0QW574S)mSBrBeQ;%H1m86I0%cO_F_B<+oK{ z5>x&Nkk4SF8r0(;G>9G*y-D<7OnEQf_37vpy)34D9wJ%?)QXx!1n)B zz#^5MTZ-7>0whoBookr5Z>$(3y6Q>V0cVuzL!+c-`mic_Z%nc>pmyav>{{`C_tP}Gy5splEFt=Mg zw?*)rL7Z^9LXM^tPJd2{;WWTgxVL0sSd49>lTB!{xQAH~c8RYiuJaH-rCfxKUa=|V zXSn-+5QXAK}+3-(uVC!Vn!nNPMm0 z>@ZykjQG(E+=7M7oAkSB68gGGkk~s{i(%)$xxjUVTrCFSyuaK9*ul)ZUf+>aX(tw( z{el}Qf}2JTVGFV*w diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_statistics.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_statistics.png deleted file mode 100644 index 48c4b6739d31b26f0798292d5e5b05fae48ecc7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmVxOrsYeGJy7<2dK+v)4X4)c)71z1!>i*7xnT*0;WI zZwd+u3fj$el>gIqt(08!;c~0r%wJ|MItUJQwbzy?x=0L*6K~25%ERy;zMQiOzBky=ioz zoOcGc;Q-!aBTi+I?X0>#gnKbY#LmD9e8)3PuJJr=1~RSndirB$U?Ps=9To^1HY?Mr z?w`jP66?So48>YJjMNb;_Zu-`bOJWv22Quah&;qNuv`e0)tj&_#5k}R-~1y9V2lG( zgiYJuVq2n!*~A^VouPl02z3=3vKZ58c$?9iK7de z$3iF_86jJbp^47SFDAx;^TN_w8X;Scl_({;Gm~`*jT2Jk-el0clyC)~F(!jt^b&fG zW0)nR&UsmnIXHrsF$!X`(Xm1b{RT5)22GfT*Frtfkx@2RHu^%y|IY}O)e_vvsAEzh zJ6uRl`Y;cJtNQf{PSzz)MYc<*3Em3_P&0d?Bvf&4gp_1Q#j}T+uM=v{z$(m7F<^Ve z^?p3X37o`Mp+dVLI916AEW}RC#)o9Qa}|B|Vpx^j-4uI%n}JU0UkPe49*2cUQpTrb z;BNHbzEJ3wlRk%pXjaWp!THKItIn9eD!xhwMqz47Ys46A!6o5P`k1sw!g}AV@n+4v zg!1wd2a^^<+6(%FY6tcRUm6gAR6Eeq7Atb{Uw>Zz`Gcchwj$+UV5TG^zNP)Y lielT%R=<^kf`Wo<`~Vuz6vk%-<23*P002ovPDHLkV1kWVT~`1A diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_table.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_table.png deleted file mode 100644 index ade391284beb40022ff4372c34efb0cb6cab6598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)Sfsq3!J&(Pgp>+qS4{lS1l@tBxD()P!7E%3a28=sCZG#DbDY*mrR@^d z7X*BdUD%HMIE57joUb^FwRrMp4*R4Pz(6=H-92;a>BwL@HWc{0mIP#&skp;>D+%}) z+tE_MyPKUfd=l4t1zzH0fzSK@zQ4ik0?x;r->zb80k0=J$po~bJ;!mR)NsF(TDT&# zOZVmkX*sd6PEIyXyOaa2Lex&HY>gaI1{AyH8Rdv zf7VP@6)F>zfU?mnB~P2Q6O(73T*FoiP12@$gfj}0f}A$|glo#*upaEu*@P)rrnrq8 gYWRdJWly5QZ~1xR<&Iz0!vFvP07*qoM6N<$f^IrDs{jB1 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_users.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_preferences_users.png deleted file mode 100644 index 0636e5402d29519cb33ea3e3d8749ef880436574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325 zcmV+|1=9M7P)p{~z)ir>z(2rR;2mHj=Q#g64g=mrhNkHw@$&sC9pSErum0Y_x;9|SCl7&j9!h8-C>)={bFiy~xVcrp>=z%P+w{gisHijaxn z$wZ6;9|PM0JRK;c+SnK|c3T9`xZnz)5C3Mo!66f~iDyi-;Wo|(Hl&Pb2QJN!@rBU= z#wm;zS%Y=JvA|x+*S!lzaxj?33UULf%8zh z5aJ&OE=RdkkB6rZI3cg`hoD!O*MYgfB(%9>Wv&An0z9*PhWgHdCbahRpcQCADa3_2 z1;BD4Q9y6`j>Fn$E3>USFbX8?-@G>dB~&q!mi z7+3*ZjAnZn*omUpR1}u~j2Wng?6~csH;imcPPv3WL!0<+W4MoRUW@}xIhF4QPDB@( zEah1ne+Iho?F;bk2c~5iUxU_i9s}+N4h6OrFn$Dh*64mel7BrJsn498$~T}_zoek? zzXFGof8#f~jIRd1b1?7l3^IsPh3P2 zv^I=MJXL=uB{J&PL#@g35bPigF2Yr5YCv1J~FNxUPM-n7%GY-_2j2$&yGx(OYe50BCKgq9=@oQw*z zJArlRI8V^#5bOo&QPFBX@HB84aBGILVU(fP5svw>)KB1S0Dp|$1w2S;(W^N_*(Zi) z9&hWNo@VsDn(xG{8PJ`3@J)y$Zu8@a}Zl;b5p5#^A7xdLA9m#`! z^cE8YFZ@d>pM~Fm4^c@aS&OykGV`kGbIsmV6oDGieyQ{Dg{U4y$=O6)be?hyu*~#5 zVzq5W^&e0Kb16MD_|DL9A=RlsqP zybUNo)T0u+T?E(-e2G4O*m=(ube6Q(1C7@k$cyFZi_Qa-f8_WIxE4h<8;_y;dY9c; zDF-G4pCUuYgi1M(Abls#jY>N(W*l&!(m3Eir4e$V+tJpQ`b}fRA-5mZIn!fSp}Rs_ z-u_LH<^#eGyiI9oyBB!V{9i+<6NBht1UhAHtVCaWKnY)hQ&9?H>u5K>o2|BfbPX*- zC=TyIHP32vyw3%`H+?;*!jP0@7NG(GC?oAeX~8S#TURoJ>rpwS8~DZ;`~^yD)}TuF jplKfh{sta3`pfVi_2uPIir>}m-#PQ<-8ZbsJ%-05l3DJsnl;8gVA-)^ zP2AJjRX+R{Km1qR%2Jt>)^J$5Wv}U^Z7v6`wKL5xt5_+&TyvqN=t}n9zSS}2KUS>B zQ|;Zo;Enc5?xsy%ueuiGOxmTQ(Y<6Hr`I$SLze|+*H;JLon!ESNydV6Nsf$SA_*X( zVENOpi)*fmAJo=3(8Q#Jl~};$_`XrxL4HR5s{1n1JqFhUH0qfDZSQMX+Olza<6|Gm zloidn%$uEi?782hoKSR@d}aLM0h^>8Q~Z(0lod>WS;V5BR4APZTB>l=`Fpd0zsJk% zH+Fkfod~?Uai7BJmdKI;Vst0Fr13=l}o! diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_show.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_show.png deleted file mode 100644 index c4df381e44772646dadc049943c3deb7fa7f32ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1197 zcmV;e1XBBnP)Js28VySYuecKNf^kJa{{R=t#Tes4L{u<}VztUfVp3BAwjCGmX(&U_nVG)tTo&&) zd6Stlo!|32Pv^Xs=e&nZCX>lzGMP*!lgVUyjJ__$z6z_b0zpONfiCByW@tyQZ zDQn;2fg*O#vJj66|JhC@roN3~n~Qx}&#(nQ>Rw{%+er+!^^BWjIX=++gv`~ZvA6Kp z71rUG5_7%OMsZu4a!|^XxDaW45{K{?pn)6Z@6o9NNMFK8!TD57$O`Sb_bK9`>dNsn#6z)!Grr;iNN!ppp$hHU*HR*mib1@R>?crDh>v2B9z`iD83}cTlx%;JE90Fw8g7If&I2IxBE4!spLe(l{NL^G-z2 znlO}?afeXfX;$kjHdW~DjP$y@iF{mk0@D!zCza20)@Us`Gwp9&U!plAZZbKI+ndad z0r91ZLlyeXTvlc6vkKiKk)Drfa_GN5GEhxeKFq~%0`1Ku+Rr4=zPC|w7UI_gfi{%r z?@6Ft)?aK)pnXb%TGG}8L2AnTpOXo+Pn2j6CGuW5sr@ohkVPf>;|a9KOSBg!^8VFq z(fUrQRua6Im~ONFH!cDqZ%H}Ia5@?rc zl*Md?Q}}rHf%*jfhwTXhZ7ez7%-XCGWg2BMTVcDpOKdI%a9mtRceq0TV1(|c6}q2C zdj3WWHKI-8ml}g5+N-r^sS#5fnlg{Ve(a=fM}_vL;)GjCPSs-dug95ThZFMi{6GWzlx=LZr8cQW=T4#;1e=duq0d>zJzwdM(p0+$xDl(ug!0 zw)*hAxa90flzdXN7Bn6AvH=?7Lo00000 LNkvXXu0mjfX@N#s diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_slide_group.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_slide_group.png deleted file mode 100644 index 30e18e577f98d4eba6fc50848c5408b80f5d11b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1923 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 KMNUMnLSTZjmIy)s diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_slide_privacy.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_slide_privacy.png deleted file mode 100644 index 47f4edca5141a0ec84a0c643bdf2b69d122cc4a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 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 TVppw~00000NkvXXu0mjf?5Z-J diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_tdee.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_tdee.png deleted file mode 100644 index a3fc8482cc35a1785c0fd64db1aa37bbce0f2a5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1894 zcmV-s2buVZP)K#*WMGl#Ux&c7vplg2+zgS@l-qw6L=iQ z@NYbX2m0-9+=H_n+ubVG;Qjasj-WSY`zN;Jb6D5meI&>0a0^ZupOmupKkUSNvAmnx z8V}3xF&xkyDP`>tK9BQK-q1usSy$s5VtiQ$Cj^NHa6e{oy#Kd{)&2G?T#Ai-xf@21 zeHb(NktH%#U4lDQKi$*#HNGTnw&{b}B*vZ{7Vf(Hu(_e0WcVcJlpFaluE&Kf=zb=) zV1I@F)3{M|{Z8==F*ueP_FG)rkzo^}d+({R=U2EWrP3?$Va2b}OK`BnkiX+2(vEF) z@Gd-3V%wv5c?u;T5`)`7==#iWufk&m%Fp84BG6lGtj0|^W7y6)Ts5wO+jBy%>wo_S z{HH+aQM`3rr7hr%;sNLFJtg9%#@L$^cs-`gzk;)EkC-YfRcyd+#UwTMq&z`C5MGj3 zavN4Qx4jWo;xbItxMr2&7s{M?@U@XAsHknjQ30c8X|C?e#8qVLY(PBA}f17+m&#AI|FyvcB!w8w}6 z?kIzFw(T0z*dkPsGmiIU@y!C+*HvE8M^PWGYIi0uHj659Qh3h*s|`;}{)!a~UHGjE z;8)3)~vke{b*>p*8A>X6fg_YClb zoZf$krSeWumz=J=hsZPK^^ZJ1OM$xNbm=|B+bo}={b*M%G%fNjRY718?o%&&I1YNa zH}~DfE)+NMoNW6SekuaGwzHVu&*|RYvc9p&>6)y3JaqTqhvm{|3R9EQ1z8`=>39g< zBPOM%@wG&XHYrY%w$&bxX1sWNPVP}62Qv8LES{4xmvj>>K z3lb<=4D=GncsM8LF^0#9wE3+fZg9#(RDU`6%NC!UDcq`@oZ18t?pT!d`DU$AM9|5cI3&Zvw#SbMQh=^>9wqftqU^`KVxLCZkie3&^ip_#a z2qLyI7LoL**!!^5@D9bb0gsDgGl;DR+23v-SLs!X_sO3TdmmCo+~Z&kzGr@8a{ggv z!;1Ch$JjHXcwuZzD_^epiztRz3{2t^%1@a2Bc4}q-8!)aKIth98&n@hu}_qxbg_Sa zN*up)SA{*d3eV~k%f#M^e8in?_lWAzwIwpf!FsVRv+N*&o=Ba1yanC0aE0n)A$lU6 zdz*-;FKei0aC+4ZV%A-Ba6q>0Qrx9#AypTc5dD8Eo;||3u62U{11Cp4AWa|ndH?_b07*qoM6N<$f-cjm-2eap diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_thigh.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_thigh.png deleted file mode 100644 index 0a90a5c411af9d3ba3f52dd4fa02770b982a719b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2379 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 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_visceral_fat.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_visceral_fat.png deleted file mode 100644 index ce36fdb681f5ce7e0ec3dc4721f97a5b6694e670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1665 zcmV-{27dX8P)yeX?!I>)u2RC zf)7xzMR|!zFI53~E7n$gP=y#k160KqD~&G14eEa&8y^^}M$w`@F6It*=69ZRUbpS- zH#rGCXU=bCKFs;eZ+a14aBWfW225zoCtI*&hDGH9(3K|qrEATPVaI_?(N(t?&t6bn{EvG>s zO$0u{hI328cgH*=316h8q=~?%?61nt1{S?aQcC*j50{gz&qG$ ztAp5`cru0E#n^D(08Xnu+f07{3580o%FQ@OM#LK&?5+~;ZU>q~nKh!!^Qn4JppvYu zWU#j}fn5pbMf`BIDvVG_N#JP7U~f}|T?yv}!r^FDNIy~wQ497|eiFDN=ACZrPOJ$i z^9Z)j*+I?c#A&^-uYKMnKre7xLOYo?0XSeZWC*xD;k(jjbQ{kkoL7h+IZ|td{T|?_ z>c9U39&ohhEV(K_0o>?l<8kaxY(Y)a=Dl?p+9-XVc@0zG#=r#ZsXNQ^VKw2Mcp3MR zBeg@={0$q@gBk7nBp04(Mvl~D_~ES0XcOQnV9>DnHE<5f*%vmF-ZqT?1I*09rt~=; z@N7n#(}ClLz3+hYs?VBGe$9lmAY*-}^t)mBKo0hT;OOg_ls2ak4o9mA=%WBg9oU_S zieuvRFgBbX)RdeBQW7{?O(;KSLR#opU!Y{Lmn0&V3WB2@@>9ZocaVVqO#^-=85~gl zbcT3m7`WP@AEC+uDGH93E2N}wCIjrPYc$XYHZ#RcEDauha(Y_7`%nv{O_PHj-RN&iSZW>wVxa zpAhf4fxS`ew5&mGX=OG6(OGxHuW_(|K_t%)UmXHI($hn zonDQDa}lrv_>AyX`4DgzwJOgVcZI1gkot&*(?>8654BUV7nno*440QSQ352H6bplM zA^yDeF;u$b2GllGJtQG5E~1j{M8g4CWITTlxSZlXA6J<>%Y%6vzZ83Ibrd)^pxj}j zOfLE2oHPR!O6a!j&btCL+c!w?+G-NY@p`}yN@$@PJqG1DInx ze=Y9@q?CknkOKYSY}An%UD+P&te^Q)skomkl%cz^LyX;oXDM^joubm6sFBo)O00XR z9o;jEZb*#k0!K^ct$To*jK9Aut05tpMa>s_sM)LZ@Ir12nSrB6@*UQ^H6q|>&BJ!w z^4d~zd*o-eixNMpFv$}i<{2N4^rt>t)s8)K_LDw4nY$KIgESw1sv+z7p*W3bI9k`B z4ie~PMTO{8NnRQiaKa=v50j>Elj}3H^00000 LNkvXXu0mjf1(*-X diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_waist.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_waist.png deleted file mode 100644 index bff1b1730ef4777e49b99ef7a8211fdf055e2c95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1739 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 M07*qoM6N<$f>AI=`Tzg` diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_weight.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_weight.png deleted file mode 100644 index aec8c69b3b8c2bf95edd15c00bc9e3755fb2c20f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 zcmV!D@t!eYWop?Npr2^M^aF*e`wGAjq6yWPLLSDrj5@h-phIzgC-7F| z&rDz0`0>un5qO7a`6@mm z9zLI!Uhf7@pk73Rn7p?FU+WK1O})=CMZ}&=EBg8$1r9{;H&90$4}e{o&nzMu#z){w z9p4d)!@y(I3qV_K5wV^+n7As4jud4+SS~hL$|*4}S&&rHb|EQo`YcGslqFJbBNilL z%I@lt*R}Z;V48&M)gt}?8&NzK=~{FzjVlg_Wlpc^13H1alZ(Y#lsP(qV5jP$6G)Sz zZjzorOk$19B#Lbp)d*^*@x=j=V|&;|l|ahcY%oI0OeIhr<{ya@NJD6~IDrJAxvIL@ zB$dAzY;>jwX-HussDu2710vVJ?cFee@>E`uz?_{x6#^&fFoE*429mfDq#-cpur4+Y ztTPvjmCOL^y>AAMpd$Gb2Smnfaql9qYc#px$>$|*1`!Cj1x#hxsy48f+=fJsQNiegPlcR0<)AJx#S4y!iiH& z8=|Y115!o&elYG;833j$5s7JxHEJYwDhoJ0KQm3a$- jH)Zp{n^LZU&!YbU%As{}lkf{S00000NkvXXu0mjf)#1=C diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_whr.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_whr.png deleted file mode 100644 index febb3532fc8b1b550da7065ada19d36f2a790f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_biceps.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_biceps.png deleted file mode 100644 index 6bc2eaed7da411abce4a316091c3fe68ce06fc52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2905 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 D)cb@d diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_lost.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_lost.png deleted file mode 100644 index 822b708164356a8a45029c0cc25b6fde3e72c8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2603 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 N002ovPDHLkV1g>OxY+;z diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_success.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_connection_success.png deleted file mode 100644 index fe0a22474d26fe9e6d0b6110ce7cf439118c68e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1673 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 afPVpMV=v*Mtit>N0000LFk diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_device_supported.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_device_supported.png deleted file mode 100644 index 87a46db2ce4230abbb332ed78bc68ee2da1f2d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2061 zcmV+o2=e!dP)@Ur z1myrOT)2>1US9r%>bMGJ6$GUKYPFiPd-v`W`F#F-tJQi~Wo*UT#mvWoAUI??5oG{s zwVE?CGjo!e4-?T8GoP>>La*0*F9?FeCX-MCpjN9nd-v}BfQX(N_;}iO2t+j5>-CPC zgpe4(%F0T9-@bhx1K6ylPBZg~m6eqTlO9JxUlGx#qc$d@$uJDxHZ>r)DmH-C)z#b9*VjJ=aA1Vy+8{9Vck}b} zH$2Zf0^mJ~uDh7|9o-OO1K8Num}TaYL>Da(h^W{98oI9g3^V^hqPunou>q7yrBwh+ z0RAn}Ep-UY+>8EAMC^Iqa{!J@gwP5h(H!7;UJ!=i;{g68(QO*Q$+T8S(Fhp$o?X{{ z9`fbr_dyUmtv0(KD)B0)TCKLjFgyTB2x%=*2S-38BH}Aot~|@kf0PI{8HVATX+uzQ z9#E}T+eCDTnXgE6OJ#{lMB!$iFD)(gi0C%}&Pjxu48!n^G|Q2)Ghx?tTg<#4hRe}r zBOsFJc^mnB{xA{!O(JBfh*f>1DKMC z_u0h6#QypD`EQcswUtuakTJD7+G+%}TCMwq5T}S}@2Ii*=Km@!^MRCi#7saSq8|XL z*Xwi4{0V@cO2kRsd_cpNWVKpt3n8A+H8Bs5fJUP+?>Npm0QZg>gNT-Om=9>$6E2s_ zD~{tF)G;v+&H;@^qa=hl19|gPtNFvywkfX*0ukK~06`FVLWt7A20v_NCaU6z@6K)yGBG^ zX5KSuU{mG;h5!ISv)NoAq8cPtCMn4;6bg@-Fdr}o0I&jrQS$-A005&9jGGTw001xo z!3y&MO8@{`Ay{KRU=aX73k0jo2Q0fgx>BiJ?B8P~bM0tU`9cUIOU+x!su2(=g^}P3 zA@-Nc<*yaRQzk0`07@ZPYd&Bx06+-@tIY>22LRl>Y*8bk8Og4#LZR@GZ8d*bR!zd2 zNeJ;h5v|4O`jbwl<0?-`v8)E*`~GaV+dT!~=P|lZGxG<{X7dr%d8w4O0DRw{&E;~Z z0o)%q1`$mGu=^nq(+O;*dc8j9IL;{~Fn>r_iRfw9b^oj=o-$bnpl|+Z0QV^lZ6yS& z0HkPsBx5XG&8?%;*41C&Zpgb-&TVLlOk zRwxu6OR||#sZ=iZZ;k&#qMOzijHC{r-EPlqY;2q&qIrpKJ`p{xVl$;&F0TME{`BTn zN)Gmv!B- zR;g4j646oo_gRBcHOi}M=R;%x(k&}|YqBO4N6VY`5 zFMFQ%c3OEQ1`zYAW@gNHUH6R?Q%hEY{%?MA#U26uo2KGCfv$DJbsXm`5miR*!_4ad zj(VPVEXCArD)tDNnwt7j2=UKR+o%23kzoz|=8tSX5nUHTyrRo|AOV2c+1cxR_Ut)C zMCZ3_tLw!Vk!&wJgGw|9%*@QJ=W@AU1NiG!ZFIi)qOTwI%g)H=GxIt#AJuI>px`{9 zSS+sP^ZBLC-q&p633MUEFJ)^!5xwYn-aBdLwUv~dh!u;)wOlTDU=V`tnjcB#y>0_F z--!8u!ZYDwvAEXhbPf{Hr@Cu?9GR;5!%})JXmN4zTBp-Fm<97q)%;;8|AWqpi;LF) zTvHual_K*^mYqRa`+!Co8o0J&h55h^0$@wcAJ&clV5|AS4gg@Y`M{V1u-$xMi~(f9 zd|*rgWW{_Sh4TQ@>R(=Xd0}C}dh>xX8v$7}9~dJ5Su`IQ698E?9~c7wSvDWY*d*M4 rZOzTQ)0jB~@cP2S!dvFDN~Zq+9C}4ftJl>400000NkvXXu0mjfHMPCM diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_disabled.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_disabled.png deleted file mode 100644 index 24ef72570fe123dc0e712517e1964db767483ef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2014 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bmr.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bmr.png deleted file mode 100644 index 528f1538a1a4664100ce5bd200855a626ef6f4a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1558 zcmaJ>c{tMz0RF9EIfgmP zC33~5!zyP+qNvCfpZ@*6=lP!Zdfq?Yf8SKcW7cpHc@Y2r-~=0-^LCPdYp2k*PtYSU z+acsdw8jBjzfth8j0OOL-2@!gHS*5<9sBdLZZglWu%8_-z?D2}B+FD@PfK-@^1dPO zR40#6)4)rcQ?ELCb8#&BKMW|9;;T+fv+jF{;>lb>+8WY2$-G3aPDA_^uQ-L0=oAy_#X zcyoitG^qf_#A*#cW?LYQQKsL`=Fqr$T>XVmtT$f=SOaT7VRC)PyC5!%+koJ4pp7zv zL!>tX3%-RHce%P2`x?R`;c^kw;NW)`$p$asv3XFl5o7W50I9p;ZAeQ&6{yIyGFWWe zQEWr&Nf&|$U1P=V-U9RY|yVkq1W^D3WiXWH2_Do#aZ~CW$D_^)Ibt)Ya zn-0xrzy+H;&YoBfF&eR{RgT#&8m^TU0R_c~;T}1!Wapic;*e<{7RPq>F<{S?eAL(9 zE-Y`k{vFI6+9YxriTi@AnIDYD+8y8DOEGFfc@F!B>@J#Oyj&EI{dGaOI}bQ>e7zfd zz%n#V2x6PZ^Aq<8&7AO6>`*rQG}(5-DUPH&M%SKRYOfQ=g|0+Ok-#>$QxdbCRMBQq zQUuDfyhOoyT!}1Ei#VxF>yRZ`Di;My6b(;OWvB9SE#a9gmQ;|sVpUA5?Sg7a)78B} zysR^#6xbtlVW_37Z%k|9i*-lq#M9uVdb~4c@w&}zX}_J#f(%S(uO`)~NXyRrn?iL? zv9X)u((SwqyOW%V4X4VTl+peX?4>hJH_7#88OK(#VRGa0JidHRH!#Rz!iQ8-C@j#w5jqiWUuN)DzKDB6XS9(|5z56G7 z3124iHI4ASK}0V=pwA69p)rbgYtGS|_zX9z&dmMvs>+&q@6zLREzPNvX9hH_Qdbv0 zF@J`+(`I*}hEG}{V=hMnk7zhjv6mqB5;{lBsv&h`Z+>_2iSnWwKV`T>+$|}C=$gF- zAlgs0=0^^sMlyE4E=)NpNH8IXBUzB zY<(!ERA~c@=4mfOs|7I~Vqjs-d4AFpN9x&QzG diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_bone.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_bone.png deleted file mode 100644 index c429fbee406e2e513d72c6436c1bfc2f296085e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 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 XiZM)K%Du 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�-?UA!Y=b;`QJTV8s;sn}pC=|x*xNYd3qe8AZ9*#m3P0wH&ojCR0 znO%%HI0r?)ft(7(Own%WmaXx|vzO5*SxtFvQtyUD%T(+`CmYddPm0$WfC9xPI?vnD zdiDr%4mBYyuRrpcpN{`3 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_chest.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_chest.png deleted file mode 100644 index 912cb1240800f1423d715baa3e82f0cbe66017ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_daysleft.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_daysleft.png deleted file mode 100644 index 7e860e09a532fa364b0e65eae3e9545aa7fda16f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2478 zcmV;f2~qZmP)o-yYD>>@2SLIW1?au2nv?iSQK@|f*_)Rt022D{_&f;&d%P`=GNJnPjZso znS0Oq&iUPYPy3zUts(t10Gk8DfT6$;pbtgv;KpWC{E-N~=0qId~0t^Or z%%>4_zluvC2fPG~rDvVx^5y*)u#8aHpI}#g2QVFJ40pw?XQHA3I0Tpoyca;5E}b5N z&Ol^<8-Y$r`vJ3n^MOGzXdR9`+dn8#t6!QLgKi~#fv0^$nbIoYLF6%!6uTkM^`O18 zCCEh>I~xHr9mW0$+=)D|)57M!6iUB?bI2nzcG1OMGE;gS*dlJB4m1O=Qa?nlaN*nT4LGj0Z$9+$YmxLx^=0t4a_7ZTecU0oLgtR{xZz5dA5u8p9Tz`0Qi zihz1b@2*CAm)9bL5gQ>3ft@4Jupw|e@HX&&pecefZlv^vxFrHTUEF3V;tQf_X!`&k z6_xcHuvLgWJu*u6SdFX^EXt=P$TZ6mU@_9O^S&>hm$JrWfLg?| z>lu#w4w-L>s`5Q8euOmwU5#99{gK7}r6J|3#bkiIpAbqZfJ@s44nZcVSe;X2A&U3PUWF8z;4Kut)msVGF&;8hsppqqhBps1Dt`( zY*qs^H%EQk9ml@7k1Y8?|mfprj$ht=>aCxa@gKqe|a zZwDUm{_zYj%8=QsVJNCFrUIAJz1{o;I01R0bWx93MK$pHjc}Y~gHlcdu|oO-M<6cl zJ!Y5dkR`naO$IZN)uJk;@hh4s`wTKV(@|}FBP4@*vD>4%+7%%gU~9uMy6#jJH?~3C z@w?XIGsw_bh39BhB^b?!&(Y_Ib6Fd37>Ffwj3x_`lELx5+1gEQz2 z5UYzuFXallSH4Fb(2`Mn=}|R6aCBR+nlq?9&OjbPX=jssN-Mhh?UO;4AXV7-jwVeL z@GTMwAxLPOsL+MR$(Rh_?CqNnS!6kNK5#4g$765A^;@YBC=fFO|m$>=u|A06cCwUTa$- zlhKRbH(rfSc#ZEu+zc@fF`%xC7#kO%7kgH6(yVDfe#c_m4Dl)QNJ}(&R1IO3f5*)bGmw~YVUk6*aE(I~pyV5ksI`<| zr~!{bh#_3V4om}f38DOb5pQxY-%b=kJsvd(8W)0?BpHfKRk&=zUJJYcj4ZLt?NP@e z>aqLi0)v>xN)(Ycnvr>Umte805#zazs_)n2Iji{KVFnSuqxYOBH+I23?uD1;VjrY6 zi|jL2<>ebt{4;}qFrpx)jnTkc*c-w2QEcj2cFhkJdPl!t$n+e`!pn&nNJBXWyFG7% zE%P;PZhyw_!x5OTfFuL#MNJLj!B!lRr7-Pfnb#yu9yv6wK<^k%tc2}J8Q>&(2Bx~( zA&)Vr>ri{Aou@g`Ym9Ag!*Zt%*)uT#nF@F133}GwatzTGH^dxhdrApnDv>O3Ida9% zMWW7F1+r>EZ-BL!-Px-Ipb_)X{Y}#M{+Y7GZ$7*o300$eRt-m%+2%x`sR}arW(r)o z3K`m0I{lDWntX-qfSHZ-f&z0H=5fJH(zRwBH+A?=X><}o4ADN=c_D-qwXhs{5Ouw@ zYR%B;7uJ^FfBfqCOSjEljtQ z633^AI1GuMR9yLyzDc773D{?Agc+pkT`^(PgslBeL&E7F6i1=8$h%-{jnEdCu#g#r ztN}cZgdkJBTQU){z*E>8AqPB!>=;Zt1CgoYV*N`g-9;r5YLT$^E=E|2EN}#UwO~|? zMc=>wSbb`8+<==Aa)?{`1k$wwXB&Dps(xvBLi)6vf4jiV?ijflPBxMCO-*H~|borbk*3 z_sSO3SMXE|ZD$715-VeI-#(;Evw^)G%HIii7k?knmB^d&irJg)uPQH0ixlUintsTu zuY$Z5s<`58jIbqozf3PLzdP$py0>MWz`dkv-?1|zk&s<39?7a?6FktiYkaoi{6@rm z{A5x#_zKEMWK^lT&28HUQzK|{GWOENstkHNO~}48lLMGvT5gfQt+#W)Z s(~+}r zLn`LHz3c78>?q>)F#e#P#t7r0H0{>7v`N43)Xem!$f)Oyc8?q`iVIPEXgUN1eVqOe+p z|6%*D+ok(=f1ba|t7vL}znSfW_xsB9Cd-JPO%U^&9HUa{vx(FG%h`8&&prLP=0}4= d$n*al>r+hDbKaS)xB!d<22WQ%mvv4FO#qo8p&S4J diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_difference.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_difference.png deleted file mode 100644 index 771d179a89bbd092e8d01d9ca74bb8d8ba351c95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2194 zcmV;D2yOR?P)#YA;`*rr-2deOjF1`&&fG)r-z@5NIpcVKL*a&R#XqS#!U=%P8 z7+a8`z+b>pV7oull4BIG4QLCIt-zR!ZMq0??lj<8U^Va!&|JdKW?)LjcBaM^z!Ac4 zO34x6atHdm0~3Lnzye?`&;a}s!6uWe2I%U*P#35L)&cbqj;#kiMk4H70$rB?S0P1* zDn7;`*;kw3dSSQ}Du;lXz|}F1pHMjGy%NXN(eB)_z<9**BNN&f7wa?9V+HGppW@q* zh#dsn1Uw8Z2Q~wT5?s%gGy|^zHBdRNpnYUtx!S<5z;2|Krar#|PO1Ycr3k9?Z9ob9 z3mib4s~p_`{6xUfVaPK9!;!LiD)}JbJkW$VH|XTuNU@R#zKft9NF_L4`y7t6uYKSo zQcN@;5v@KCxlooB0lk1ph;v8N?&uNt%fdepM=K{c;n2}xuuVX3qzR};^$^Q?;@~jF z(cAzW_h{4qNJ>CGa1F&php)1_4cJeylbgtiqr*^+fYEd;GJHEa*y0E}x)C_x$);2Y z63`17VVp{P?{Jt8qY5}g$M&;oc^va(&k$fX&=VPX{oLlo2LpS^zE`LsdK0i1m<3!% zVVopKxQvdy=T_i;n+lfU*3svYVq!h8s9^kLWZ@8%vlu%-l7GM|f0q`6!9jTx%wq;NmbOjb7#n%CZY*+n> zPbodHHq?fafxupag44iG;Cz4sbit{H(Ec zam(0Gu_Kxs=-H_0IFB@U^&quY7gP#N&s!4@h=pK^LB|uwVisuYXV9|ze4V^U;^+oFcYH8?vOPOb-E(J6#cVG96taVlJJ@ZuTX4s z8#2%~*^y3H1jLDcg;x!BWR?YkfK!+WXahcRq}K%jaid?sYZin>zw0b;K|qq|SMZVr z{eizV#d|33s;_mR+cp77qhG;G7A({ho<*LZ&DVZ!MV=qqglz)SM886&Szs#r731B2 zgW7+#>jIkun4ho_3y%EJ#a$%jj3IngvOsU!gnp zvmgxtrs#hlr9CEC&4Q%SuV6b1(h#soJ8v&`m!AeCggk0gXhx=H9FA$sJUTX6+mM;qU&XwRvO%BjcotdmR0AY~R^<;vrs3BC{X(vH650FVIB*pB1!;N*7l^+FJQVnT2AOkpw2ZBQIr^7J zIne-{S&$?HCQ}^!4ZtHvefAmRO#QlXr4?Dcw+46$c*k%|1#t<;Q}jp50#o$A8No48U?U6S z5HN}2vOh1fDC`DJ(LX$zZz4f|Y8E#O;t-&>#q%TwOa_~xe??^1L_^vvh(o|C!?Af0 z<6aW3qhBFS7Q`XoUc<3@kqx@BSwz1=nk4q+k*584@PuM zT+F9qbF7VMz2hW3;fY9v>}wN{APyiMzm^~Y{g9Uz+#$Hw?nyd2A0!fIAW^AS(DzTF?>s`n z_rMO|i^At^fn%m2`@{W^LQln^+#JuWrCeQ*#S*1Vp|^Z|OSu+Nry?M4(H|uXIu!vg z;@{aOX+`QB6FLn6HAqJ#kEj9e@oj`_)L@>~mKWsNHY=z>b|cR#w)!?83yedajruP0 zby-jNrXZcB4p2SeK1gS1q(@s6&H-N|UG=t*V>(SwxKhz+G9a(p(OfX765ttC0z9Ki zfM-+*@Qf+}o>3*hGpYo5MkNx^9rJ_ruE?6Sih`?^AvVzinZtiA@;a&o$mX#+YLNGU z^#=MP_ja0&lK^rD-|vtKq8?enG6k7FG7_1*nr0F}8#2(S7EbI!CK~J@CogvJNx(SZ zR^WQX=_4}M--r?-@{&Mau|zqtm=?WEqvcprO8gh zmu|(viX7ZbrOL{3&W$n}x)14SRS_S@3Eyi7i1tRjnZTpCS*+ceaTM7rsERz}KLehJ URe249t^fc407*qoM6N<$f+}GH{r~^~ diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_editable.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_editable.png deleted file mode 100644 index 507648a3506389636dbc7fcf0688b7a14b6ffa6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)>soKCQ zvx<@B#~~Q83b;u&`Edw2^DM2)k3-0b=NP^GI0R2t<1arBVU*-4KMtWqo(FD`ulzWK zjI6;jA)EvzjVq>CsW<{m2Id-n zPAAEMzcxHh@(s^IQG3F#{oUzuAq}&>mfWr81id5gn1+fG_~|v4xtCQh+cMD-m$B$ zXD(rW^M`T+SZ3BnN zoR&e72fHfCEW(%nv{`#Gvw-vHC8y;U$!klMmH~jyX0>+YcFOp$s^cm$*ycMYcHk@^0%6`7t;xxKrh&pZD#Go zbOOiG3wGr-v-V;-2w(o|X6?mv0LRb^cI6GT_F^6aenBtTmF;Hj#gsw*4zu=R9t3_y zFW8kg&Dx7;2Yx~?*p;`;+KXuiencUz<1~cyRy%$y_h!OD0;!JyiN9{0!qgb^nzV^j|$5Nyvj3aI)JQ()h2NidshNDxOCL%rt5Q`8wfK9$hty#Cmo(J!Kcb?G znr1~Q|6^({AEJCY3i+Q9<^My`@;@cYA4ZY#KO@TjA4SRk0vKOVr&1B+i?NpfCGbFD zZAyrx{I7`eN5o40*F^c5u#o=^QGRCfmj5kLerEmx=?Vl*wiZe*00000NkvXXu0mjf D5X>#9 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_expand.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_expand.png deleted file mode 100644 index f9a0728702d021fff627c5d503ed081888f36383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlJ8y**tV zLn`LHoon4KoG8*Z|ID$lEdmEmISIO4aPt;CBCQvvEh_jeE%B+=x((~Xy12yR#I}6s zT2%Jv{e}&j1g{@D=M*`mclVl$Nnta5%z8K)b6wliSaXE|Z|_r?h+Mn4yPmtfe( zAm1RnFYwfHmJjMhXPDSyg{O8L`?Oey&+?fT>-3GM|CgUpYmL8;{bEjjE55=0`xVxQR%cuPv9UG!9^1)Pa64i?d*9PJ zd!O%gtofP1-4Jj{_VFE?0-NP;Z2e1TlC3`Gk&TtF)%&oG_>Yk^WN`E(uWz(CY{?l!(WTRiPOLL zr?KpEJppAMz2`Nvf0{5c{Ax&_c++ab+U7m2$_#Cdo(t>`)^xG~L{$dImbK#~OJ%vXmVhb0($$Dfc&&QtE&XRcz9ZdiRF>b}m>$HoTlWSuw^TLd7)6L;1K&x-P2R@45m z&Ri70ZpXBJ)dB8=`T6rMZCc9Y!+d)0H8s@pxf|7kmwh?C#}$$Uo9LvJ(H8<{0--5qvtUskzQxwX?#EIux$yw?1! z>PdzQk(q0mZ(E;;wpbJU;aJp}<#!J~S!j5_B5?neFUj{E>lD-M&Z^mk{VYCkOfOZR zXE|rQl+@{6IcL-a16bpvi%q|9ABcFQ;$w1Vt1wVN(%3X1-|Z&%VUBGr-V81;L>FICPg__W(Eh*QhnnJrT{k?qFQY3o#Y61;zO?n^k`>&9sx@N;Kz*N1QO h{15m&*OC1!p6aH2%Yhk#;5>Mo?T3c3D;zcNc%WYNx8Ed!}cW zIbhzGRHkRDFud0#^dR6JN~#0p0~> z0uzx&wcPYUbh!ywi0Bxn{|ev=;4Mx^wVoE?D2kbbwX)Iy~0Pr^{7zaHM(jTpw~GcS!<5i+-XGM_}q9Ba}D zW!59@LK2P#-Y4^Udw@sCozWsm+AFa+8Zq(_xQ+P7z!cy%U}?g*I*>tAySZl`(iQCV z}r0m0qTK^ zkc_e{VSEK~4bm0#`_C6pd86uLQiDA6DqLH1AvW6N)BrBmPDkpAF#%f`3u$?adYSS5$WCM=`=ULN1_I}nauWZZiL<$Bza2@ zA-$Q9HsEZe9?qBkNTc^JGT?d^X!2xgkX+k?%+I_6yywYu0ed0cz!s!kcoDbl*ofrp zZICu*5mM*-gS@`TgkKl%9q^pdEgu#lFZ(3YV}!9t!@MBRxE$^vb09LRHxX{(j3RR& z8r5S<#3f!tKOs}aN_KW9J+m5yi}Q_SBvNd{2wIUj6D1i3Aysu~zcyf>q&N2?v++8y zKt+Zl_2Q98T^vOvj)VsQM;YAdn!(FG;WpgXeqR-66WGo zX_4*NLzd7#lx~5%8rTJQZQ*`jU|V3FCGc1&wW|{BQqYFj{D02JZLPMjR|E^t{ONDuc{Al z>-!F5@TC-oMMw`bq&~o%UT#E2rb=<>M7&5sMhCc4%+00Mrz-i;x*n0jos4Qg=3d%L z!;l38#ib4DqHm1(e=x~C1T&`j?J7t^e0V9wpwr0omrWX)0;EwRr`xM1aVYI%3PvdW&&Vu;9kU=8>9-F zp8}3C0w4xI8F9x@@^`&oi@0z`(QHB!;(%NWObURVETIk zy&)gu? zVcWPaOeAcTr}a+XEt0)(Z4?(SOc>vE>z*}!6{IB~lcm6^#2+Hn1zZa}nJ~UC>pGRf zol5OOiQ+wEP&R|~#=TZ#%hf&P=g@51xHkMDED~{}IAzl@g|xjl1f*v|@vfEP5cpr# zS>JQ{yC}WKJ|J*ifXrcs=nE)5_6ukYkj5lLUqJD(ZQL3lK8ztFN~}yZVvn5H1h~7& z$COx^YQ$df`aZzj5mS%5M5%0A2IFS(MIf7q?XC3JmtL=`!Cw68#@d@EQu#_>xXW&gv|;qFY*644md0JKMpc6OrS? z4o7-QJ5pii=2tMCNIUu);J-HWEu!gw+{#a0000< KMNUMnLSTX@lEp>< 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 deleted file mode 100644 index 1b37481149ae0e678cfb43963c3189f7a0af5dda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2414 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_hip.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_hip.png deleted file mode 100644 index abe5c65d13927b280f715b74fc641f6ee385d7c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2870 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale.png deleted file mode 100644 index a047012397f26db68ac2c80c937322e30550ec1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11047 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 P6`-p0=H+)q^YH%xi(Aln diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale_light.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_launcher_openscale_light.png deleted file mode 100644 index 6151badf56f6bb3315a79ec9872f3ace4dbb37cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12064 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_neck.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_neck.png deleted file mode 100644 index 50f128facd0d0c5e9deec10e1f86a9953d195729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1957 zcmV;W2U_@vP)OaOaYK*}sMnS=NL?s>pIm9RdWEBEN2#65^cyP$21Tax9x$oWak6(4BcbT2p?dk5C zh5C|7Z@Opdz3!@h_3FJ>3l4|F;cz${4u`|xa5x+ehr{7;I2;a#!%-(02n?{TLR##`>w#6amB@jQfulfE+lmC`ZDfWz*;XU~2{ecO5T%ePO%T8ga~u@0oG9oGv;}6` zRwNf10K0(&mh}k2IP~^*wyj96Oa@K>t!yh&3lhLqVwk_8HbEdix;}7246?%FGN2vO zJyPOWBozbyqQ%VmEZ^M&JPPcLTB$6I0iFhW0L!Bk)F8^n4f}y_f!k4sAJ6dJ1HhTs z?SKSu2e5&NAAX$Nh9w#>vsZcfIs3;Caw+umyt>2i#3=;o(xCSvA+j0DaNoYfBC?@|IVTeZAVU9_i?SJhWN16^W8g z=qB?qzVaFx95>rmBx)uC(;#--IG%_oYLvYG_KGm@lnSp1}11SRvBa~MU zc+be1isqpe5z5PZrUGlt-*2D?GY2Jc!lpi{hd&#|h1Q`r@3dtcl}*4X^nlh7ZaBCE z_};WV9X)}n0IWZ=&#*SrGTz2@k>NvCxOc&6u&@7zAp zyP?~Gcg?35nW)alz1#}?LgsRoCa6NslXch}3xX&f7PdQ}r8)ZTaFXnv&weylEUtyD z1gX#isH35>2NpZFC*c<6xW{*{kjigFSR6v5-5YeCDY9C#YP$p4BeSsCcP`2f@Y)B> zE#+v!w}$Nw=m~71a=Bs=Df=8IUI!GJ;}JAb2U%l;hRqIW0$hN6bB`iqleb17Z<{%G z^qpG`biv{lB%2-3+sOBqfO{2d8zYeCwdt>ln{9OH6M?+E=W|ZpxbYbBQldyxdT!_k zzH=q!Tx8o&^OaJx`><*e)Yr&XH$LeX;qWUb?@^d-bmN|p2DjqFho%C=4kvb9OH_qJ+< z@^8dbnKl8ry?*(PjZR6UV_n)%n3V+ZAc|rpQK&dw-nSd^Yzb|NDxj-Uh|-fu6jOSD zQ@|u$h2k|yl$DCoyoALNw5c!&EFyhp9_OgH5G!q#Y_8IDqbHG0Mti+hG$col(Zhdu{ij5pOlf6*8@WSAhS} zJ^q9C6IlBvB*nmRU>@@4lW0%v2-2IH-bm@yXyNk~%4l`NZbGC0C3c3RK~siw+yPvf z=KDpckYE|Q=W>**9!3l%wh_v?PC={HBpMOp(boP0b8}EJgoAZ;%{swnPI`1>TJ&0V`n+VZFoeeyWM*3l&k`qyNbI=VI&Cx!w zCy~-?Nxex)6svz9y*as%0IopspUuAZ%Z<#*Mu&drUW3pGmAp(u&&Heo=AmbovE6ij zZad^I4nhy9z%)1){r{g?Xyk`YGxXZ`HJ|P%d$kJv|A^Y8A2Drxh)PnDrk(lbvxu5) zm2D5)NX^#+Ezn+Qe~9H6@}j(F_jlDF6{2#F(P$-FVHDnldUY^xMhz7RlQyVmcQ*1qUSLV>cGsMk&eR6I=Dpn%zo zY+tOxVB`{S&p~!G6uAw9*63{-Kq@D(CV~DbX#uKA-Vl;7M`lVzopr02Wb2!vFvP diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preference_donate.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preference_donate.png deleted file mode 100644 index 444795ec761538a1ce34f8a0e6248112405c5316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)lzGMP;MY{uP^@o5{PX14Lr=|m1d+XC7q2cV(n%)rtP z_sqX{Uth5TpWu@66X5>%727e;hS-!0;&a_OT{Lds1I%hzcM>+@n(EF!I8I>F`TOHIX4fS+<)$-?)0kIs&v|@>pKw+9c9&ueR+s46hL4gdt%+me-{KcSfXW!c zXyo$~I-eq~@~pV?dvw3j=Hr`)oe$GWPRmxsqJP1h9&N3S*gBU=?1Q9Aga#w?M{ui0 zTch}+VE#Eg)}yVCqzb?jk@>$W+WWp>ZU&yIXfMhmiR@g8%rCEKZ$nify^?AL{1}YcRgU zlIA7X$D?=^yYPeVf^b23pW&fq7&~-sqit_XU{fr{Uhx3j7Oy%hGo8Aw<3cC-23{_> zK2vC;ec7O<);Owo6`X8SRFk}>H~_J-yH%bNPiCqz6tUTBcc~*O`T3fCj{b|li9oY_Jnvq<#6 z_!!GN*jOO6*T*Av?qFqV;VEB@y(r}Ru_niD;kDRVVJTk~+T4qTmiG(F+un!pRw}V| z@s8>xaM`%1`i9y#uM4|%D(An((~WwNfI*=NIu*yS32%kxHmp4wgqG|nM@{=$+X3P3>BRgQDNa@ P00000NkvXXu0mjf(F>dF diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_about.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_about.png deleted file mode 100644 index 0d7984f7fd80575e59ba586aab6dd76670357432..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1299 zcmV+u1?>8XP)Ag{3BCUi+}`?cQ#)=gv82X3jbI zhyCH~J$tSHT4!dz*4j1Y<5XON^D!Bda56^W_}*v!!a@9st=NJM_yj*!z_D=5##8tP zJviE6>A}}{5;H5cpaG1=J=mymgNG^`aJTUGv<*gK3HB<_@WEw|;OvnV*cU|&cc5E! zh7T^gu(+2?r8om0G(o)RvIbp^7}AL6uEtB4P-nkG!Z*BG80io67Q*;3T9_rKU>Zi$ zDZd*xKsUXDR^?Q@5*HMuI0Z8VN95u1j^Mne@nQ~T+i+D8%5q`>w&&pWLbHk< z%%S8>jBQp?12_q9=iqmLqY4(t{^ojw#Yn5ML^jVOxUycMXA2vXn9#$*0;FAVlfWs) zw;N~X6;{Ki8NzySOJUTD!)>xZg^%T&9v2TG=%Ip%7l~!Ex!*99fN|KJAz-EE7a6lM z6b#^nEmF1)w&A*rwj!|{*GAeF;mf`s>!o|?J1sbFDiAgCP1Cx*hfWb+OFv#M z-%{|j_}Dff!Cdiw`NJw0mW-GU3Fai29(mwTd|nErYVny6c}m0dM0|?dC>&&VIt~g4 zv1ynx9Op(Fx0J)jNKB2iZNeWV=-h$}Q|c!T7Y4yJ6g?&NVJg-}+GgX65_HCFnV5+0 zj(#tJNUQK$q<(B71SHaMAX49n*dM7MlZa1&M@u5p3Pf#5WO%0>E-gXq)OvrG16py^ zT^7bg>h~u?Tt5xxltiW#h}p6?!MBmd*j(L-h}p6^5kl2zI8Xf{>UP8^Au%frTN5d# zBfU5Q7nee*TFlX(jW!tT6a7JuG|VrBQniTL&?9V=z*o}u%sUhmVjh4hkHm%vv4AvP zYw1s5_$VTvOJ{!ub8%Xv?LRip5dT+J7EG$jHy|sSV%p$`*F_%e5gb$$s&YWqN%z0I z(SbQUuS5jZgrH-m;o*$76={_tg$&G?*RCmuSQT%;!VDcdWn`=!)4@@~reRk`=S~lg z@04Sgdwqt0qdGf5VqsoEA7%*Y)D)RD^$6<{ZfeAY9mcH%5ibI_%TAKoExsU%;tKKb za$i}dwXwqlkEHM#SdM5Sxg%><=qsy*q{XT+9`EPix3pPB&*xCmuBo!m7NIP`YdMtl zO_S}CEWJW8+3NHPdM>Bpc1V|hrXbz_!%{;Ji~~#67bgD3z4aK>$Ot|kuZzbNV>l!P zDYxN!Azkg4-nNOt6`Zq#JmtyiKabpl8^zBy3PqRpyEJursTN1DK=?;nW%wpsTDp}( z;F!HQIT*+6)!8(3%;o7S*70fA=O+rw=f0rjJ|T%=uZpkF{{z;d+xe0%We5NO002ov JPDHLkV1h{KXF31? diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_backup.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_backup.png deleted file mode 100644 index e0d6dca62924b8582c0505b6fec134ded9c8fe03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2246 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 P00000NkvXXu0mjfXQfGD diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_nav_graph.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_nav_graph.png deleted file mode 100644 index d2ac30c3bd1112081f453a4b2249fb88bfccb5f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcmV;V1zY-wP)O667=j{-20T%W zf+q?J`oZW2LF0i3UU;H-M?5f!!4nB8ilPSZTVp(uh)29)cKuL2%w+TOcINHuKHrOf zSbAP{Pfc}ocU5(DFU-OF*uWZ!CFsL0?G~gR7}0J4+Ksi_Ex<5gBTPXLUcu60Wj8N@ zk(iCYL?8Ro^VL`7>7^f)_s!(ZC0y*P7j2};u-89HaiE&qr6h+lzhM_9Dzyr883+_Zcd^t z#Uc2n73Tl-B`^V>S~ZyYB9*^k&jEOJtPL0=@BB}=4-ew+L|cvnOYm8(0$N=Hn_>pG z79;Q&7PQE#8IHyF!oBT|ZxekQ<_bUm>0m!nbp{-cU#vVGdvT43y6VKOiT{-i>RwHC z$CThxn-`db`?0<_OSnc@;U1BIIHw}Nf$(c8$26!LnaV#0`;jU$;P%w^1*}`3Uzq5N z)azQ0l#krb4d{Pi^Adb&GlK7?wukqlkCyMgwkyG>EJom+#CI8<6fQ8^=3ZWsPi;o< z=T!C&HAl%e9)DEi*$f8=H%Kgl>FK!-*Nd4qXjGX2vs2rTuvvkAL!y7EK0`P~c$hvs zihbm>;k=5xYFh%E$$ju*JRyu><_$hp$g~UsS#;NjXXW;0u2s|AWl);}&eb@@^eeuX z8^XyI1uSAm;qUwKn(#Oo+Nyx5^3gvFcckaJ*jQ{yGb8z%h|Q~FD}0uCEJ%Eds9gbN zUDj53MEKr2ah(`xA|_vguSHD$B-X>@xVVClTZlu9?eKv}XD_MneoH8$fOYV&SpRR~ zv?gtr;V|4NjNvR1%?;#jHWH^bJBq}{fg(vWF%oE;W51d(`&k*N$L|$Ro zQB=VCBFnlSo)<2x8T$H_&G0p@NYB^dE0N28AjvQXFP9U!eq?U&E%{k`nIywxkry1i1}#GtI`3AWIKz*k0(#pfMH|uSr^AEB{|acg z0PRMnDIl{`E9zp{DHkL%+$0WOp00~wrzzm6^j8}?Z3*>>eCk)iEEILgAwc~#Uv|E67V~tlpF%HPCyp=_EOJoCam8~p_nc*t$kzbbDq~g0< yr*cH$y-Oif`j15d{w_f})6sQPCuu@lZ3Q=e6B6PItB0 z`9jlOGu8k9zkgl-?yBlyG|s~__zAyaH`a}4E0zW};N!OM@39@HROH_p{DxM~b{Lx~ z@V{e#?-stn=@t0*$&dhAI3To+vRJ!-?-rgb(KlF;6F>`hmgxVf9N&LqCdS}YWB|(w z)HyfOW(;TN{6B-!VhqL#P^5mW&2jrbX50pkYMQtN7iNBI2~YVf`|xF??FOzIJ+v-f z6yl0uC06Cs+1tdGxGSgPJ>mtJ!p_KZhS9`)l{P)?mKu_^FZfjWOi+8nq4KVl3P z6=1f#|4ew-FT@A!{RuIF_aZTIzMlA1%t>`sH32+Ek$Y&NG zj`89<+xs}afdBQv8>5KLtuX?0n%XTw8Vq7JJ}u$mJKG*yFvRx~+>V10_O>>M$vA{* zJk}QB1?~{v@*?3)^g4FoN1^|}8dobeR_P*EfDX%X$B5_tSEhtv@!D}2 zTg)^Ty8w&61uS|2CMhuJEpSliT^)@)uBQ((NPu}fQAs$}vt73UlN6W;kUD_GOj4js z0bVh_QQ(@gg8VjQQ+^3wRN=S|0vsoNVCm4({fVngYVi=f2`6XDuj2EnoTnDxSpC!M_f;7{ zY5{Jrod5s;07*qoM6N<$ Ef_}^GCjbBd diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_settings.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_settings.png deleted file mode 100644 index 42d5e3a20e84789ba8e350d8aa7a2990c7517f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1920 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 LNkvXXu0mjfvw7?8 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_table.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_preferences_table.png deleted file mode 100644 index 85ff21b06751f7c1704fc36c92b52390040af8aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmV-#1CacQP)2O&2kb#wJ7&EF`Ff4-zr!BM%eeuEm+_-d*nKoipM= z=X~LC?hJE&^S{4)?#zGwGeaiRXj(fHk_x%J^X~PVL!$j+V-~a2j=zY+zA}- zaoed3;bUA7Opj$37GMXiMrtg=PTZuLW8357_I{yps)hz!Ds+ZwXbct_W7BE|^URYC zNF6|GvH__BNKIeG?NGO& z2f=JW>Ht!c4M-h8Y8r1q;}fCA&j1=;602GkC#0drDvsIQW!+ZQ%GxLKRhRXL@j?Zi zgZQPr5Mw|;Mk?H z!V_AtWi`S~>cbWM7pXA~%jA;S}el_y619euCQ z6;GvoK{TU=1`|KpU=5vzm;N~q=vcU=+>BYmuYXVc4aph8Ecjpf>9!Z<3bWvj@|(Gj zqb1CEG`u3z_=8|JAaww#$p)kjAT@osftQ4rk^U;#Zn)@2#J^g%qUe`ncccar$_(K^i_AwEQc&5`(*6j8)c#1K zwj@feG>tGS$U+l~AS;!uq=$+Tk!2ZWMJc6}Ns^jrOPS@0k2GD~bk~{wIQQ55X6E;} z_jm8OBkUIrJIwFi@9&&5_i@g-cT?D*4=@rqA4mbe0ZV~qOWv|a8h9Bv3SPErqMTz{15T}RK&E+0y}{PvJIFIJPsU+(a#8{AV!#m!Je!I z&h_zC0?z__H2NL@UL$`Os0O}{d7ragqdV}Oh4G%O^Ks5g(Ek&1BlasW_RT`1%3=T5?^YxIWityVk~da5MKeBf~xgeC2@e z8Kv7W;-|rA8{=z{MZ`wg46@(>jCEjq7KsTO6z61uL-7p3RVX7&cA)IrimM(sQ^}K8 zeR^K1-t!ZZd@TX4vNb*pv{)*+i(Dr7mP6y0W4W;DV4?#>$11KHNWSM6N(<0i@!kXc zj3i7!vK5$=#P~F@!&1>NkVUTt@Vg`9v%n~&;~0ZJ<4qkf!BWXKa+Tv*4vk-`I2$kv z%nkwP=o()Q{9&o+G{rR-Xm@1%0pt)C@qvXyNpK`!A zJIweBq)s2!aUpWl9rnBxI8AZA>&W;l@Vw$2fFxA5e8+&xgB);sOsD=t$MFjk&t(pc z-wyObw$qgkdDkN;bsknlba+R#c`u@kx7WVlP|=Z!(^U@Pmnnq~XbowY0WMN)=0_0T ztJ=(sXwz(<;QNZtbkEn7yx5={azqt`rAU$ilFWqRLiP9KkmuhciHZ&m0uQRs&yfp# zU7{A4&aD^se8*-%e3R0{9In>bU>lIF;ViMQVqI>EZwFvrA0}Mx|fH%C(((LQi@Y@5P zt=Hs;LJ&uXt^@Wac;V^l?~j`8uU3DjBa5|`)%aT^M)W5;BiP{B`R3cl?})Uoq){!p}NM$Il!N97hazkSHP2s;8_v!?i%dR z6SBytD!Q>!>YEpHk)UH>T*Cs40q#_v2jS-8bc)=<{69+VfD|(1HehDNwd6wVBM$W` z;wsy_H%M8n4q3ftAO|&Jmmc;h$p$<-j6|Zdkvj!>C}#)MA{k~k;0a_`X$ol9f#eLm zf!zVmCm{jaLj*XeoE-oXMJ^+xkl_NAr6P8Sn~+~_L@CJ2eFT&oT@L7M1v(pD4(MzJ zIvZUM=xhZ#8(j|2Y}Y~f&29hf?A8d53M8NjYop8K6uJ(`0N;c>^CuW9L)vUak`j>O zhAEGCKJaHizwN%yanG$Vfa3c8m*j`jDT)tBTagNnhrSeF!CQ$GUHn+=dwvk9ELBom z9h&It(?tFm$2wxtaMR1g4M>902RZRsMDhOtq<~w2E0Lq}1xUHek9x(^2>gJYKz9W2 zj6!OK?a1}|-N-$r3BcJ%1$tRQzu~~mNZo%9G5R diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_save.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_save.png deleted file mode 100644 index 873fca5aee7cb5e3599d1fe48ec7f4b7ec092291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlJ84tTma zhE&XXJNI;!h@(i`exD?sikqBC4gmr#XJ>0XIyCpesaF39YpXx9JvzoN;K;FV(W7Jy zy+v$7Jx!-MB4^yt%Mxqa{%)4t*Xv9E^Jf{KnPd69CfGLkvZ-xCkKr+iWH8}VJ*}bo zfb;|H3qC(1-fg!nJj2}IVEe^adQMC8f$T56Qfpd{zmPVG;PifT{_wdg9u*z?G?yM< zYbSMG{QU*m#v?;iu0AhK(%T0^Z2fi@-xZX^geUbv(ax zFA4s;c!iFSwT?p%YsW?gLotP8Oh+ObX6$U3ae0HpYPR!mAqj4QWX2>kbudAnBR?BF z?3lF=6empnvOA?A`GDsGqXJe7y_4$%CR(5VXLhY&^_JNi7k{k1?y|Ejc-MmT0}Fd> z_$Q}zv-%jkGq@RcT=1n4m)Hcuc^A&xU6y>1d2r8R&A=mS1xt?4>1T>=E#hD9B6ywY z)4n*3?*)svBh=Gsjkt3}PV5&p)jJZ_AkSF%{n*CUi`*FXnUnW(^vrebWwK*A_D@2> zx?761hO=j{D3~SkQzekwl*>X;qT0})Obp19mG~W!@J1&~q`=VN+tLF!j(%{;nZLe8 z`hlCnJ#+4-a(+w6E+@U1QU-+&lADES9x& zh+4U-dtK@pr5i77{C^p@E6VqkHL@=eU(&<9hFHX^t|fDe0Z|z dk>s#vyz!YQeCn;2dw{8%!PC{xWt~$(69CvoOH=>= diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_show.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_show.png deleted file mode 100644 index c4136e8e938436952377fce2353cad16910aaaf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1667 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_opensource.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_slide_opensource.png deleted file mode 100644 index 9f7feaa30fb60e365b1210b5ce266d6d14b3e5f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2870 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 Uh1VCEeE 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 O000020f?^*Y5J`K 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 diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_tdee.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_tdee.png deleted file mode 100644 index ca90b922ddf3515bcd5f4ab0a2a8ecf90e35cfcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2522 zcmV<02_^Q4P)(B?)Dq-j z(Lnu0jsIvQrcsG8ii8A38#H2s1T0b{M$^QkXi0^(2*%=rhg9OT(t={UEm+!OyZvo{ z{&DWLKkm-VoqO-how@5bIq7D5cjh~1&YhWiX6Bq8;zb{DGH@2K5O@dhCSYD7eZYyp zIB*Df8912yybJgf@WVW5Fn}0T~iPD_$krfECm@ zG}l$pIlxzeWfjUe3j7QBC-UYTPJY)53?wp$OweymeqR<(12+Tfk&bCBhJkeyxA<3q zhY%%P4xA25FHr9Zz}djnz>UBbq{E875sx6Nug0Md_&miLJqCOaQFy-xPP2gbA#dW& z0=&k7TWQc_eKPPUc8xm<{1BM{`)cIa3tR-;101mAx)V6RMvkSh3RzXytUSJj3{jym z2wV@mh@HXQNVWOJ3uXd8Ain_zfiED9jtv9AYV4NA8S2<*)vwbC`IfLH+S$ug~xz3Wm{4adCGTf{oPojsc#(l za4m$Erm!M%QH92ofsOKgSbvJ?$k7*7y;~``{oB$MR76%+YECiODBq{`r&x^Mi+V+o zg09dM65|_St9+l<-;Fyp^*=#@w_pgf^C?fh>7*(7uvLB?)}LYsy_a}-_F+?xEJ8@X z2iZ6McOv@@Kfi>GgFBow#fw`E`x`S$s*u=k5SpoS~@lLs)-`xu}o4?8nc!C+{eu{7}}P;`nR{5c=AH?Iji^<%M(2!xMtny>9{uEzF&F|unq-;<{ z`7v03ie;!d-V%~j9;zrmChG?oYE-Ah9}h{&gsRGq$@)`lWirn;5gvK3s{GijKgCU` zxtNi`_9`5o)eq4oND7OXbJf8U3g? zYVHrn3Gl1@*g8Y?LH1|>9{)p~%8#KlRQttGfqX818i}FsW9pg2Tur#HI%6vy&iH5W zh@$QtFnNjeAN(G;dN=VXzgyar*sUsn2NZRV^#UKyJa__dokt=cquwj2w&+8+`NAuT z-wpO6m+Z1w;E_njW7#p|ImPex_M#4CWC$3N*h@i_{IqEBjhs6CrM6dKcgV@yBf%V9Bp5PTy_YxByA@gg5j46QqKk8 z5u!7KD<33SMwZwF?&7tTK^>hDh4KNuf|}r2AxU+?M`uK%e2^m&Dw0=+B&ER!Zj@ig zglmOfs+M zHlc3F(vYMmXZ?*+KFA(`sxfN=aw=o}jZ{9!DJ@mV$pgq`gAgcc{f$+AinXX4_Qe2P zidui;l@Ai{LDjgu)E|tgi1jyC`KoKG+mMirS$r0WAXo?H1AoKrLojtO-0PK*;8Y|q z$q*8#WNsq5pJyPapg)D|yI5fbYAf4AeevLIt-nso|F$J3mAruDyRkwK`k)hcIBAL* zwqt*t%GcfXDk3Y2RCtx9kO|bolS|lGf8AsLY70(z(kfD659*U#9VF<4uNZMQ)*oWR zU7Ewmc?W=Gju_Vz=4&#}v;L5)oi&()ROOxaYn7?=Rzrn_#xx7$S$_;m%~KG^<%P&< zXc$@bT#Ba-7(k!yV;^o4Fqo`As%^v!-i}0zaXtj4Sd4xs+K!v0X&(}Wv1!U50{()h zIiMRi7z%!j>bJi8P@i~+S@|=OZCh`Xa5s99_y)SdH&8vUP&Nfh%*yWv9>nu1D2sW> zg#uG2RCyC-BZ0MdA?}bWN#A_pMD$Da4*CG+Ef;iLvU!iaRUy-~! z-Z}szNr5R<)pp`YPvshK1O9-%-OnRQN|$K~=+k9^~e^&TY{x`;oM=F}x8A5H31bNS5~}!qBwG z`Pk>{J%EIE9Hrh9c+-&F!t1fWG`^VzEw5)I=SpqfhE#ST?(b#zi6}UL?DVZepK?Sc zuL7ST{1MGkScp1YSDqX}KKIi}Y!SseWkyo>Rfr*MK|(MT;m}4he0vRlRw%1Og*rZf z9PX+TqN{_XP~3wIT?aWH8h9FF;q#Dn_#3F^9NdVcWVb#_(ggG%OEZ%%C8V^G6uwJ5 zwLdCcfV|$O)QEM-i@?pmTfDY7QuHIYG&f@QExDH6$XfnN0A}f-?MCKwB?+j#9d;9z!PU k?TGvM8Q||kqVO#K3xO;3>OF7#aR2}S07*qoM6N<$f>*r4yZ`_I diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_thigh.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_thigh.png deleted file mode 100644 index 448fb4c831ebe780f5bf6e12ec670129beb82664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3216 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 C3AoWoNe1V`=6p^S6Mvd`BW1@+P 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 Hu0mjfD7acj diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_water.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_water.png deleted file mode 100644 index 26e5198b7f1241c375b018d305e95d62b49e4806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1668 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 D0t$gG diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_whr.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_whr.png deleted file mode 100644 index 55406ea1bb78e6f647db064ab35b9b9d49c60d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 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 Tekb~G00000NkvXXu0mjf!0aVY diff --git a/android_app/app/src/main/res/drawable/appwidget_bg.xml b/android_app/app/src/main/res/drawable/appwidget_bg.xml new file mode 100644 index 00000000..70d6ef5d --- /dev/null +++ b/android_app/app/src/main/res/drawable/appwidget_bg.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/chart_marker.xml b/android_app/app/src/main/res/drawable/chart_marker.xml new file mode 100644 index 00000000..a3870a3b --- /dev/null +++ b/android_app/app/src/main/res/drawable/chart_marker.xml @@ -0,0 +1,13 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_add.xml b/android_app/app/src/main/res/drawable/ic_add.xml new file mode 100644 index 00000000..70046c48 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_add.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_biceps.xml b/android_app/app/src/main/res/drawable/ic_biceps.xml new file mode 100644 index 00000000..32b6ba9f --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_biceps.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_connection_lost.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_connection_lost.xml new file mode 100644 index 00000000..421fef71 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_connection_lost.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_connection_success.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_connection_success.xml new file mode 100644 index 00000000..cb2f304d --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_connection_success.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_device_not_supported.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_device_not_supported.xml new file mode 100644 index 00000000..836b5cb6 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_device_not_supported.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_device_supported.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_device_supported.xml new file mode 100644 index 00000000..7e5caacd --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_device_supported.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_disabled.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_disabled.xml new file mode 100644 index 00000000..ba31bd4a --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_disabled.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_bluetooth_searching.xml b/android_app/app/src/main/res/drawable/ic_bluetooth_searching.xml new file mode 100644 index 00000000..3d532d4c --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bluetooth_searching.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_bmi.xml b/android_app/app/src/main/res/drawable/ic_bmi.xml new file mode 100644 index 00000000..234b2e46 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bmi.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_bmr.xml b/android_app/app/src/main/res/drawable/ic_bmr.xml new file mode 100644 index 00000000..e577899b --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bmr.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_bone.xml b/android_app/app/src/main/res/drawable/ic_bone.xml new file mode 100644 index 00000000..658cc49b --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_bone.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_caliper1.xml b/android_app/app/src/main/res/drawable/ic_caliper1.xml new file mode 100644 index 00000000..931521d1 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_caliper1.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_caliper2.xml b/android_app/app/src/main/res/drawable/ic_caliper2.xml new file mode 100644 index 00000000..28adc483 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_caliper2.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_caliper3.xml b/android_app/app/src/main/res/drawable/ic_caliper3.xml new file mode 100644 index 00000000..a984b97a --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_caliper3.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_calories.xml b/android_app/app/src/main/res/drawable/ic_calories.xml new file mode 100644 index 00000000..4a7f0849 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_calories.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_chart_marker.xml b/android_app/app/src/main/res/drawable/ic_chart_marker.xml new file mode 100644 index 00000000..e51fecb5 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_chart_marker.xml @@ -0,0 +1,13 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_chest.xml b/android_app/app/src/main/res/drawable/ic_chest.xml new file mode 100644 index 00000000..40d1986b --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_chest.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_comment.xml b/android_app/app/src/main/res/drawable/ic_comment.xml new file mode 100644 index 00000000..4bb9eb4c --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_comment.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_daysleft.xml b/android_app/app/src/main/res/drawable/ic_daysleft.xml new file mode 100644 index 00000000..0c06355b --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_daysleft.xml @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_delete.xml b/android_app/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 00000000..3c4030b0 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_difference.xml b/android_app/app/src/main/res/drawable/ic_difference.xml new file mode 100644 index 00000000..ddb188a7 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_difference.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_editable.xml b/android_app/app/src/main/res/drawable/ic_editable.xml new file mode 100644 index 00000000..2844bafe --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_editable.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_expand.xml b/android_app/app/src/main/res/drawable/ic_expand.xml new file mode 100644 index 00000000..0f990b20 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_expand.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_fat.xml b/android_app/app/src/main/res/drawable/ic_fat.xml new file mode 100644 index 00000000..3849406a --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_fat.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_fat_caliper.xml b/android_app/app/src/main/res/drawable/ic_fat_caliper.xml new file mode 100644 index 00000000..c92b6c6d --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_fat_caliper.xml @@ -0,0 +1,4 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_hip.xml b/android_app/app/src/main/res/drawable/ic_hip.xml new file mode 100644 index 00000000..e32094f5 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_hip.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_lastmonth.xml b/android_app/app/src/main/res/drawable/ic_lastmonth.xml new file mode 100644 index 00000000..099a7530 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_lastmonth.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_lastweek.xml b/android_app/app/src/main/res/drawable/ic_lastweek.xml new file mode 100644 index 00000000..342545ec --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_lastweek.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_launcher_openscale.xml b/android_app/app/src/main/res/drawable/ic_launcher_openscale.xml new file mode 100644 index 00000000..0717be29 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_launcher_openscale.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_launcher_openscale_light.xml b/android_app/app/src/main/res/drawable/ic_launcher_openscale_light.xml new file mode 100644 index 00000000..4859c63f --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_launcher_openscale_light.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_launcher_openscale_pro.xml b/android_app/app/src/main/res/drawable/ic_launcher_openscale_pro.xml new file mode 100644 index 00000000..2c5d8067 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_launcher_openscale_pro.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_lbm.xml b/android_app/app/src/main/res/drawable/ic_lbm.xml new file mode 100644 index 00000000..606586f5 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_lbm.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_muscle.xml b/android_app/app/src/main/res/drawable/ic_muscle.xml new file mode 100644 index 00000000..ee03ffb4 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_muscle.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_neck.xml b/android_app/app/src/main/res/drawable/ic_neck.xml new file mode 100644 index 00000000..3d99f964 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_neck.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_options.xml b/android_app/app/src/main/res/drawable/ic_options.xml new file mode 100644 index 00000000..454bd7de --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_options.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preference_donate.xml b/android_app/app/src/main/res/drawable/ic_preference_donate.xml new file mode 100644 index 00000000..f2e51d22 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preference_donate.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_about.xml b/android_app/app/src/main/res/drawable/ic_preferences_about.xml new file mode 100644 index 00000000..f6e2d050 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_about.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_backup.xml b/android_app/app/src/main/res/drawable/ic_preferences_backup.xml new file mode 100644 index 00000000..65600a46 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_backup.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_bluetooth.xml b/android_app/app/src/main/res/drawable/ic_preferences_bluetooth.xml new file mode 100644 index 00000000..151fc623 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_bluetooth.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_graph.xml b/android_app/app/src/main/res/drawable/ic_preferences_graph.xml new file mode 100644 index 00000000..1654f14f --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_graph.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_help.xml b/android_app/app/src/main/res/drawable/ic_preferences_help.xml new file mode 100644 index 00000000..d5fd2a8d --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_help.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_home.xml b/android_app/app/src/main/res/drawable/ic_preferences_home.xml new file mode 100644 index 00000000..2c36c843 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_home.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_measurement.xml b/android_app/app/src/main/res/drawable/ic_preferences_measurement.xml new file mode 100644 index 00000000..5224252b --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_measurement.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_nav_graph.xml b/android_app/app/src/main/res/drawable/ic_preferences_nav_graph.xml new file mode 100644 index 00000000..9f4d9243 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_nav_graph.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_reminder.xml b/android_app/app/src/main/res/drawable/ic_preferences_reminder.xml new file mode 100644 index 00000000..342545ec --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_reminder.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_settings.xml b/android_app/app/src/main/res/drawable/ic_preferences_settings.xml new file mode 100644 index 00000000..be2cfd29 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_settings.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_statistics.xml b/android_app/app/src/main/res/drawable/ic_preferences_statistics.xml new file mode 100644 index 00000000..347e0bab --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_statistics.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_table.xml b/android_app/app/src/main/res/drawable/ic_preferences_table.xml new file mode 100644 index 00000000..607aaf78 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_table.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_preferences_users.xml b/android_app/app/src/main/res/drawable/ic_preferences_users.xml new file mode 100644 index 00000000..5d25b639 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_preferences_users.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_reorder.xml b/android_app/app/src/main/res/drawable/ic_reorder.xml new file mode 100644 index 00000000..45086bd7 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_reorder.xml @@ -0,0 +1,11 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_save.xml b/android_app/app/src/main/res/drawable/ic_save.xml new file mode 100644 index 00000000..1a8d86d2 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_save.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_show.xml b/android_app/app/src/main/res/drawable/ic_show.xml new file mode 100644 index 00000000..a3e222a2 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_show.xml @@ -0,0 +1,10 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_slide_group.xml b/android_app/app/src/main/res/drawable/ic_slide_group.xml new file mode 100644 index 00000000..b20bbb03 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_slide_group.xml @@ -0,0 +1,4 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_slide_opensource.xml b/android_app/app/src/main/res/drawable/ic_slide_opensource.xml new file mode 100644 index 00000000..35127694 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_slide_opensource.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_slide_privacy.xml b/android_app/app/src/main/res/drawable/ic_slide_privacy.xml new file mode 100644 index 00000000..4b4d6310 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_slide_privacy.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_slide_support.xml b/android_app/app/src/main/res/drawable/ic_slide_support.xml new file mode 100644 index 00000000..48d69581 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_slide_support.xml @@ -0,0 +1,5 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_target.xml b/android_app/app/src/main/res/drawable/ic_target.xml new file mode 100644 index 00000000..178e2f5d --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_target.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_tdee.xml b/android_app/app/src/main/res/drawable/ic_tdee.xml new file mode 100644 index 00000000..96ae2a70 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_tdee.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_thigh.xml b/android_app/app/src/main/res/drawable/ic_thigh.xml new file mode 100644 index 00000000..0d1e93eb --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_thigh.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_user.xml b/android_app/app/src/main/res/drawable/ic_user.xml new file mode 100644 index 00000000..f7b20227 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_user.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/android_app/app/src/main/res/drawable/ic_visceral_fat.xml b/android_app/app/src/main/res/drawable/ic_visceral_fat.xml new file mode 100644 index 00000000..85f1ea47 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_visceral_fat.xml @@ -0,0 +1,4 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_waist.xml b/android_app/app/src/main/res/drawable/ic_waist.xml new file mode 100644 index 00000000..1f302aaf --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_waist.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_water.xml b/android_app/app/src/main/res/drawable/ic_water.xml new file mode 100644 index 00000000..dadaf7ab --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_water.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_weight.xml b/android_app/app/src/main/res/drawable/ic_weight.xml new file mode 100644 index 00000000..34a5cd3f --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_weight.xml @@ -0,0 +1,9 @@ + + + diff --git a/android_app/app/src/main/res/drawable/ic_whr.xml b/android_app/app/src/main/res/drawable/ic_whr.xml new file mode 100644 index 00000000..07edb720 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_whr.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android_app/app/src/main/res/drawable/ic_whtr.xml b/android_app/app/src/main/res/drawable/ic_whtr.xml new file mode 100644 index 00000000..5d25b639 --- /dev/null +++ b/android_app/app/src/main/res/drawable/ic_whtr.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/android_app/app/src/main/res/layout/activity_main.xml b/android_app/app/src/main/res/layout/activity_main.xml index f1a49394..a2bd8ff0 100644 --- a/android_app/app/src/main/res/layout/activity_main.xml +++ b/android_app/app/src/main/res/layout/activity_main.xml @@ -1,7 +1,5 @@ - @@ -17,31 +15,37 @@ android:weightSum="100" android:orientation="vertical"> - - - + android:theme="@style/AppTheme.AppBarOverlay"> + + + + - + android:layout_weight="90" + app:defaultNavHost="true" + app:navGraph="@navigation/mobile_navigation" /> + + + + + + + + + \ No newline at end of file diff --git a/android_app/app/src/main/res/layout/chart_markerview.xml b/android_app/app/src/main/res/layout/chart_markerview.xml index 516fb3db..2d45b937 100644 --- a/android_app/app/src/main/res/layout/chart_markerview.xml +++ b/android_app/app/src/main/res/layout/chart_markerview.xml @@ -20,8 +20,8 @@ android:textAppearance="?android:attr/textAppearanceSmall" /> + android:background="@drawable/chart_marker" /> diff --git a/android_app/app/src/main/res/layout/activity_bluetoothsettings.xml b/android_app/app/src/main/res/layout/fragment_bluetoothsettings.xml similarity index 71% rename from android_app/app/src/main/res/layout/activity_bluetoothsettings.xml rename to android_app/app/src/main/res/layout/fragment_bluetoothsettings.xml index 17299886..d3113dbb 100644 --- a/android_app/app/src/main/res/layout/activity_bluetoothsettings.xml +++ b/android_app/app/src/main/res/layout/fragment_bluetoothsettings.xml @@ -1,19 +1,9 @@ - - - - @@ -20,11 +20,10 @@ - + android:background="?attr/colorPrimaryDark" + android:gravity="left" + android:orientation="horizontal">