From 91ac67075d6ce2691e75b1db7fb17a861f2ada74 Mon Sep 17 00:00:00 2001 From: Odweta Date: Sun, 11 Feb 2024 20:13:24 +0100 Subject: [PATCH] UI update, mark details --- mobile/.idea/.name | 2 +- mobile/app/build.gradle.kts | 4 +- mobile/app/src/main/AndroidManifest.xml | 3 +- .../java/com/odweta/solon/AboutFragment.kt | 10 +- .../java/com/odweta/solon/CalWeekFragment.kt | 39 +-- .../src/main/java/com/odweta/solon/Dialogs.kt | 18 +- .../java/com/odweta/solon/MainActivity.kt | 46 +-- .../java/com/odweta/solon/MainFragment.kt | 38 ++- .../com/odweta/solon/MarkDetailsFragment.kt | 286 +++++++++++++++++ .../java/com/odweta/solon/MarksFragment.kt | 289 +++++++++--------- .../odweta/solon/MarksOneSubjectFragment.kt | 249 +++++++++++++++ .../java/com/odweta/solon/MenuFragment.kt | 2 + .../src/main/java/com/odweta/solon/Network.kt | 2 +- .../src/main/java/com/odweta/solon/Parsing.kt | 3 + .../java/com/odweta/solon/SettingsFragment.kt | 5 + .../java/com/odweta/solon/SignInFragment.kt | 14 +- .../src/main/java/com/odweta/solon/Util.kt | 88 +++++- .../src/main/java/com/odweta/solon/Vars.kt | 2 + mobile/app/src/main/res/anim/fade_in.xml | 6 - mobile/app/src/main/res/anim/fade_out.xml | 6 - .../src/main/res/anim/slide_in_from_right.xml | 7 - .../src/main/res/anim/slide_out_to_right.xml | 7 - .../res/drawable-anydpi/ic_back_arrow.xml | 11 - .../drawable-anydpi/ic_back_arrow_dark.xml | 11 - .../main/res/drawable-hdpi/ic_back_arrow.png | Bin 322 -> 0 bytes .../res/drawable-hdpi/ic_back_arrow_dark.png | Bin 312 -> 0 bytes .../main/res/drawable-mdpi/ic_back_arrow.png | Bin 240 -> 0 bytes .../res/drawable-mdpi/ic_back_arrow_dark.png | Bin 222 -> 0 bytes .../main/res/drawable-xhdpi/ic_back_arrow.png | Bin 348 -> 0 bytes .../res/drawable-xhdpi/ic_back_arrow_dark.png | Bin 331 -> 0 bytes .../res/drawable-xxhdpi/ic_back_arrow.png | Bin 479 -> 0 bytes .../drawable-xxhdpi/ic_back_arrow_dark.png | Bin 447 -> 0 bytes .../drawable/button_background_selector.xml | 5 + .../drawable/button_clicked_background.xml | 9 + mobile/app/src/main/res/drawable/cursor.xml | 6 + .../src/main/res/drawable/gitlab_logo_200.png | Bin 11442 -> 0 bytes .../app/src/main/res/drawable/grade_100.png | Bin 2655 -> 0 bytes mobile/app/src/main/res/drawable/loading.gif | Bin 125095 -> 0 bytes mobile/app/src/main/res/drawable/loading2.gif | Bin 127794 -> 0 bytes .../res/drawable/pastel_yellow_no_stroke.xml | 5 + .../drawable/rounded_corner_background.xml | 5 - mobile/app/src/main/res/drawable/solen.webp | Bin 3912 -> 0 bytes mobile/app/src/main/res/drawable/solen4.png | Bin 7096 -> 0 bytes .../main/res/drawable/solen_yellow_logo.png | Bin 10234 -> 0 bytes .../app/src/main/res/drawable/solon_500.png | Bin 15671 -> 0 bytes .../main/res/drawable/solon_just_yellow.png | Bin 0 -> 13707 bytes .../res/drawable/squiggly_line_100_yellow.png | Bin 1283 -> 0 bytes .../squiggly_line_100_yellow_transparent.png | Bin 1966 -> 0 bytes .../res/drawable/squiggly_line_100x100.png | Bin 1268 -> 0 bytes .../main/res/drawable/squiggly_line_20x20.png | Bin 292 -> 0 bytes ...ggly_line_yellow_transparent_one_color.png | Bin 1728 -> 0 bytes .../src/main/res/layout/activity_about.xml | 30 +- .../src/main/res/layout/activity_cal_week.xml | 2 - .../main/res/layout/activity_container.xml | 4 +- .../app/src/main/res/layout/activity_main.xml | 22 +- .../main/res/layout/activity_mark_details.xml | 19 ++ .../src/main/res/layout/activity_marks.xml | 7 +- .../res/layout/activity_marks_one_subject.xml | 17 ++ .../app/src/main/res/layout/activity_menu.xml | 31 +- .../src/main/res/layout/activity_no_marks.xml | 10 +- .../src/main/res/layout/activity_settings.xml | 33 +- .../src/main/res/layout/activity_sign_in.xml | 151 ++++----- .../res/layout/activity_splash_screen.xml | 5 +- .../main/res/layout/alert_dialog_sign_out.xml | 2 - .../app/src/main/res/layout/fragment_day.xml | 2 +- .../main/res/layout/radio_group_language.xml | 6 +- mobile/app/src/main/res/menu/menu_navbar.xml | 6 +- .../res/mipmap-anydpi-v26/gitlab_logo.xml | 5 - .../mipmap-anydpi-v26/gitlab_logo_round.xml | 5 - .../src/main/res/mipmap-anydpi-v26/grade.xml | 5 - .../src/main/res/mipmap-anydpi-v26/grade2.xml | 5 - .../res/mipmap-anydpi-v26/grade2_round.xml | 5 - .../res/mipmap-anydpi-v26/grade_round.xml | 5 - .../main/res/mipmap-anydpi-v26/left_arrow.xml | 5 - .../mipmap-anydpi-v26/left_arrow_round.xml | 5 - .../src/main/res/mipmap-anydpi-v26/menu.xml | 5 - .../main/res/mipmap-anydpi-v26/menu_round.xml | 5 - .../ic_launcher.xml | 4 +- .../ic_launcher_round.xml | 4 +- .../src/main/res/mipmap-hdpi/gitlab_logo.webp | Bin 1578 -> 0 bytes .../mipmap-hdpi/gitlab_logo_background.webp | Bin 40 -> 0 bytes .../res/mipmap-hdpi/gitlab_logo_round.webp | Bin 2442 -> 0 bytes .../app/src/main/res/mipmap-hdpi/grade.webp | Bin 2266 -> 0 bytes .../app/src/main/res/mipmap-hdpi/grade2.webp | Bin 1740 -> 0 bytes .../res/mipmap-hdpi/grade2_background.webp | Bin 40 -> 0 bytes .../main/res/mipmap-hdpi/grade2_round.webp | Bin 2380 -> 0 bytes .../res/mipmap-hdpi/grade_background.webp | Bin 40 -> 0 bytes .../res/mipmap-hdpi/grade_foreground.webp | Bin 3542 -> 0 bytes .../src/main/res/mipmap-hdpi/grade_round.webp | Bin 2860 -> 0 bytes .../mipmap-hdpi/ic_launcher_background.webp | Bin 40 -> 0 bytes .../src/main/res/mipmap-hdpi/left_arrow.webp | Bin 910 -> 0 bytes .../mipmap-hdpi/left_arrow_background.webp | Bin 40 -> 0 bytes .../mipmap-hdpi/left_arrow_foreground.webp | Bin 1118 -> 0 bytes .../res/mipmap-hdpi/left_arrow_round.webp | Bin 2132 -> 0 bytes mobile/app/src/main/res/mipmap-hdpi/menu.webp | Bin 470 -> 0 bytes .../main/res/mipmap-hdpi/menu_background.webp | Bin 40 -> 0 bytes .../main/res/mipmap-hdpi/menu_foreground.webp | Bin 210 -> 0 bytes .../src/main/res/mipmap-hdpi/menu_round.webp | Bin 1420 -> 0 bytes .../src/main/res/mipmap-mdpi/gitlab_logo.webp | Bin 1092 -> 0 bytes .../mipmap-mdpi/gitlab_logo_background.webp | Bin 40 -> 0 bytes .../res/mipmap-mdpi/gitlab_logo_round.webp | Bin 1562 -> 0 bytes .../app/src/main/res/mipmap-mdpi/grade.webp | Bin 1416 -> 0 bytes .../app/src/main/res/mipmap-mdpi/grade2.webp | Bin 1152 -> 0 bytes .../res/mipmap-mdpi/grade2_background.webp | Bin 40 -> 0 bytes .../main/res/mipmap-mdpi/grade2_round.webp | Bin 1390 -> 0 bytes .../res/mipmap-mdpi/grade_background.webp | Bin 40 -> 0 bytes .../res/mipmap-mdpi/grade_foreground.webp | Bin 1926 -> 0 bytes .../src/main/res/mipmap-mdpi/grade_round.webp | Bin 1608 -> 0 bytes .../mipmap-mdpi/ic_launcher_background.webp | Bin 40 -> 0 bytes .../src/main/res/mipmap-mdpi/left_arrow.webp | Bin 620 -> 0 bytes .../mipmap-mdpi/left_arrow_background.webp | Bin 40 -> 0 bytes .../mipmap-mdpi/left_arrow_foreground.webp | Bin 688 -> 0 bytes .../res/mipmap-mdpi/left_arrow_round.webp | Bin 1460 -> 0 bytes mobile/app/src/main/res/mipmap-mdpi/menu.webp | Bin 474 -> 0 bytes .../main/res/mipmap-mdpi/menu_background.webp | Bin 40 -> 0 bytes .../main/res/mipmap-mdpi/menu_foreground.webp | Bin 302 -> 0 bytes .../src/main/res/mipmap-mdpi/menu_round.webp | Bin 1104 -> 0 bytes .../main/res/mipmap-xhdpi/gitlab_logo.webp | Bin 2000 -> 0 bytes .../mipmap-xhdpi/gitlab_logo_background.webp | Bin 42 -> 0 bytes .../res/mipmap-xhdpi/gitlab_logo_round.webp | Bin 3334 -> 0 bytes .../app/src/main/res/mipmap-xhdpi/grade.webp | Bin 3264 -> 0 bytes .../app/src/main/res/mipmap-xhdpi/grade2.webp | Bin 2620 -> 0 bytes .../res/mipmap-xhdpi/grade2_background.webp | Bin 42 -> 0 bytes .../main/res/mipmap-xhdpi/grade2_round.webp | Bin 3714 -> 0 bytes .../res/mipmap-xhdpi/grade_background.webp | Bin 42 -> 0 bytes .../res/mipmap-xhdpi/grade_foreground.webp | Bin 5414 -> 0 bytes .../main/res/mipmap-xhdpi/grade_round.webp | Bin 4456 -> 0 bytes .../mipmap-xhdpi/ic_launcher_background.webp | Bin 42 -> 0 bytes .../src/main/res/mipmap-xhdpi/left_arrow.webp | Bin 1484 -> 0 bytes .../mipmap-xhdpi/left_arrow_background.webp | Bin 42 -> 0 bytes .../mipmap-xhdpi/left_arrow_foreground.webp | Bin 2004 -> 0 bytes .../res/mipmap-xhdpi/left_arrow_round.webp | Bin 2990 -> 0 bytes .../app/src/main/res/mipmap-xhdpi/menu.webp | Bin 658 -> 0 bytes .../res/mipmap-xhdpi/menu_background.webp | Bin 42 -> 0 bytes .../res/mipmap-xhdpi/menu_foreground.webp | Bin 448 -> 0 bytes .../src/main/res/mipmap-xhdpi/menu_round.webp | Bin 2114 -> 0 bytes .../main/res/mipmap-xxhdpi/gitlab_logo.webp | Bin 2892 -> 0 bytes .../mipmap-xxhdpi/gitlab_logo_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxhdpi/gitlab_logo_round.webp | Bin 5366 -> 0 bytes .../app/src/main/res/mipmap-xxhdpi/grade.webp | Bin 5772 -> 0 bytes .../src/main/res/mipmap-xxhdpi/grade2.webp | Bin 4380 -> 0 bytes .../res/mipmap-xxhdpi/grade2_background.webp | Bin 48 -> 0 bytes .../main/res/mipmap-xxhdpi/grade2_round.webp | Bin 6400 -> 0 bytes .../res/mipmap-xxhdpi/grade_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxhdpi/grade_foreground.webp | Bin 7592 -> 0 bytes .../main/res/mipmap-xxhdpi/grade_round.webp | Bin 8220 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_background.webp | Bin 48 -> 0 bytes .../main/res/mipmap-xxhdpi/left_arrow.webp | Bin 2306 -> 0 bytes .../mipmap-xxhdpi/left_arrow_background.webp | Bin 48 -> 0 bytes .../mipmap-xxhdpi/left_arrow_foreground.webp | Bin 3464 -> 0 bytes .../res/mipmap-xxhdpi/left_arrow_round.webp | Bin 4900 -> 0 bytes .../app/src/main/res/mipmap-xxhdpi/menu.webp | Bin 880 -> 0 bytes .../res/mipmap-xxhdpi/menu_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxhdpi/menu_foreground.webp | Bin 932 -> 0 bytes .../main/res/mipmap-xxhdpi/menu_round.webp | Bin 3348 -> 0 bytes .../main/res/mipmap-xxxhdpi/gitlab_logo.webp | Bin 3710 -> 0 bytes .../gitlab_logo_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxxhdpi/gitlab_logo_round.webp | Bin 6938 -> 0 bytes .../src/main/res/mipmap-xxxhdpi/grade.webp | Bin 8510 -> 0 bytes .../src/main/res/mipmap-xxxhdpi/grade2.webp | Bin 6286 -> 0 bytes .../res/mipmap-xxxhdpi/grade2_background.webp | Bin 48 -> 0 bytes .../main/res/mipmap-xxxhdpi/grade2_round.webp | Bin 8746 -> 0 bytes .../res/mipmap-xxxhdpi/grade_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxxhdpi/grade_foreground.webp | Bin 8462 -> 0 bytes .../main/res/mipmap-xxxhdpi/grade_round.webp | Bin 12508 -> 0 bytes .../ic_launcher_background.webp | Bin 48 -> 0 bytes .../main/res/mipmap-xxxhdpi/left_arrow.webp | Bin 3264 -> 0 bytes .../mipmap-xxxhdpi/left_arrow_background.webp | Bin 48 -> 0 bytes .../mipmap-xxxhdpi/left_arrow_foreground.webp | Bin 5026 -> 0 bytes .../res/mipmap-xxxhdpi/left_arrow_round.webp | Bin 6990 -> 0 bytes .../app/src/main/res/mipmap-xxxhdpi/menu.webp | Bin 1140 -> 0 bytes .../res/mipmap-xxxhdpi/menu_background.webp | Bin 48 -> 0 bytes .../res/mipmap-xxxhdpi/menu_foreground.webp | Bin 670 -> 0 bytes .../main/res/mipmap-xxxhdpi/menu_round.webp | Bin 4168 -> 0 bytes .../app/src/main/res/values-land/dimens.xml | 3 - .../app/src/main/res/values-night/themes.xml | 73 ----- .../src/main/res/values-w1240dp/dimens.xml | 3 - .../app/src/main/res/values-w600dp/dimens.xml | 3 - mobile/app/src/main/res/values/colors.xml | 16 +- mobile/app/src/main/res/values/dimens.xml | 10 +- mobile/app/src/main/res/values/font_certs.xml | 17 -- mobile/app/src/main/res/values/refs.xml | 2 - mobile/app/src/main/res/values/strings.xml | 22 +- mobile/app/src/main/res/values/themes.xml | 51 +--- mobile/settings.gradle.kts | 2 + 185 files changed, 1116 insertions(+), 669 deletions(-) create mode 100644 mobile/app/src/main/java/com/odweta/solon/MarkDetailsFragment.kt create mode 100644 mobile/app/src/main/java/com/odweta/solon/MarksOneSubjectFragment.kt delete mode 100644 mobile/app/src/main/res/anim/fade_in.xml delete mode 100644 mobile/app/src/main/res/anim/fade_out.xml delete mode 100644 mobile/app/src/main/res/anim/slide_in_from_right.xml delete mode 100644 mobile/app/src/main/res/anim/slide_out_to_right.xml delete mode 100644 mobile/app/src/main/res/drawable-anydpi/ic_back_arrow.xml delete mode 100644 mobile/app/src/main/res/drawable-anydpi/ic_back_arrow_dark.xml delete mode 100644 mobile/app/src/main/res/drawable-hdpi/ic_back_arrow.png delete mode 100644 mobile/app/src/main/res/drawable-hdpi/ic_back_arrow_dark.png delete mode 100644 mobile/app/src/main/res/drawable-mdpi/ic_back_arrow.png delete mode 100644 mobile/app/src/main/res/drawable-mdpi/ic_back_arrow_dark.png delete mode 100644 mobile/app/src/main/res/drawable-xhdpi/ic_back_arrow.png delete mode 100644 mobile/app/src/main/res/drawable-xhdpi/ic_back_arrow_dark.png delete mode 100644 mobile/app/src/main/res/drawable-xxhdpi/ic_back_arrow.png delete mode 100644 mobile/app/src/main/res/drawable-xxhdpi/ic_back_arrow_dark.png create mode 100644 mobile/app/src/main/res/drawable/button_background_selector.xml create mode 100644 mobile/app/src/main/res/drawable/button_clicked_background.xml create mode 100644 mobile/app/src/main/res/drawable/cursor.xml delete mode 100644 mobile/app/src/main/res/drawable/gitlab_logo_200.png delete mode 100644 mobile/app/src/main/res/drawable/grade_100.png delete mode 100644 mobile/app/src/main/res/drawable/loading.gif delete mode 100644 mobile/app/src/main/res/drawable/loading2.gif create mode 100644 mobile/app/src/main/res/drawable/pastel_yellow_no_stroke.xml delete mode 100644 mobile/app/src/main/res/drawable/rounded_corner_background.xml delete mode 100644 mobile/app/src/main/res/drawable/solen.webp delete mode 100644 mobile/app/src/main/res/drawable/solen4.png delete mode 100644 mobile/app/src/main/res/drawable/solen_yellow_logo.png delete mode 100644 mobile/app/src/main/res/drawable/solon_500.png create mode 100644 mobile/app/src/main/res/drawable/solon_just_yellow.png delete mode 100644 mobile/app/src/main/res/drawable/squiggly_line_100_yellow.png delete mode 100644 mobile/app/src/main/res/drawable/squiggly_line_100_yellow_transparent.png delete mode 100644 mobile/app/src/main/res/drawable/squiggly_line_100x100.png delete mode 100644 mobile/app/src/main/res/drawable/squiggly_line_20x20.png delete mode 100644 mobile/app/src/main/res/drawable/squiggly_line_yellow_transparent_one_color.png create mode 100644 mobile/app/src/main/res/layout/activity_mark_details.xml create mode 100644 mobile/app/src/main/res/layout/activity_marks_one_subject.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/gitlab_logo.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/gitlab_logo_round.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/grade.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/grade2.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/grade2_round.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/grade_round.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/left_arrow.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/left_arrow_round.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/menu.xml delete mode 100644 mobile/app/src/main/res/mipmap-anydpi-v26/menu_round.xml rename mobile/app/src/main/res/{mipmap-anydpi-v26 => mipmap-anydpi}/ic_launcher.xml (53%) rename mobile/app/src/main/res/{mipmap-anydpi-v26 => mipmap-anydpi}/ic_launcher_round.xml (53%) delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/gitlab_logo.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/gitlab_logo_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/gitlab_logo_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade2.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade2_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade2_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/grade_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/ic_launcher_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/left_arrow.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/left_arrow_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/left_arrow_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/left_arrow_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/menu.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/menu_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/menu_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-hdpi/menu_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/gitlab_logo.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/gitlab_logo_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/gitlab_logo_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade2.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade2_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade2_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/grade_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/left_arrow.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/left_arrow_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/left_arrow_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/left_arrow_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/menu.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/menu_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/menu_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-mdpi/menu_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/gitlab_logo.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/gitlab_logo_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/gitlab_logo_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade2.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade2_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade2_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/grade_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/left_arrow.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/left_arrow_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/left_arrow_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/left_arrow_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/menu.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/menu_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/menu_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xhdpi/menu_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/gitlab_logo.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/gitlab_logo_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/gitlab_logo_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade2.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade2_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade2_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/grade_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/left_arrow.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/left_arrow_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/left_arrow_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/left_arrow_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/menu.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/menu_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/menu_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxhdpi/menu_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/gitlab_logo.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/gitlab_logo_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/gitlab_logo_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade2.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade2_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade2_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/grade_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/left_arrow.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/left_arrow_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/left_arrow_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/left_arrow_round.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/menu.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/menu_background.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/menu_foreground.webp delete mode 100644 mobile/app/src/main/res/mipmap-xxxhdpi/menu_round.webp delete mode 100644 mobile/app/src/main/res/values-land/dimens.xml delete mode 100644 mobile/app/src/main/res/values-night/themes.xml delete mode 100644 mobile/app/src/main/res/values-w1240dp/dimens.xml delete mode 100644 mobile/app/src/main/res/values-w600dp/dimens.xml delete mode 100644 mobile/app/src/main/res/values/font_certs.xml delete mode 100644 mobile/app/src/main/res/values/refs.xml diff --git a/mobile/.idea/.name b/mobile/.idea/.name index 8f0d358..99e1610 100644 --- a/mobile/.idea/.name +++ b/mobile/.idea/.name @@ -1 +1 @@ -Solen \ No newline at end of file +Solon \ No newline at end of file diff --git a/mobile/app/build.gradle.kts b/mobile/app/build.gradle.kts index 3e4e713..0af183c 100644 --- a/mobile/app/build.gradle.kts +++ b/mobile/app/build.gradle.kts @@ -43,8 +43,8 @@ dependencies { implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") - implementation("androidx.navigation:navigation-fragment-ktx:2.7.6") - implementation("androidx.navigation:navigation-ui-ktx:2.7.6") + implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") + implementation("androidx.navigation:navigation-ui-ktx:2.7.7") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0") implementation("com.squareup.okhttp3:okhttp:4.12.0") implementation("androidx.viewpager2:viewpager2:1.0.0") diff --git a/mobile/app/src/main/AndroidManifest.xml b/mobile/app/src/main/AndroidManifest.xml index 1881874..d66fbed 100644 --- a/mobile/app/src/main/AndroidManifest.xml +++ b/mobile/app/src/main/AndroidManifest.xml @@ -21,7 +21,8 @@ + android:theme="@style/Theme.Solen" + android:windowSoftInputMode="adjustResize"> diff --git a/mobile/app/src/main/java/com/odweta/solon/AboutFragment.kt b/mobile/app/src/main/java/com/odweta/solon/AboutFragment.kt index 4d538c3..1e4b3ed 100644 --- a/mobile/app/src/main/java/com/odweta/solon/AboutFragment.kt +++ b/mobile/app/src/main/java/com/odweta/solon/AboutFragment.kt @@ -24,8 +24,8 @@ import kotlin.math.abs class AboutFragment : DialogFragment() { private lateinit var gestureDetector: GestureDetector private var initialTouchY: Float = 0f - private val SWIPETHRESHOLD = 100 - private val SWIPEVELOCITYTHRESHOLD = 100 + private val swipeThreshold = 100 + private val swipeVelocityThreshold = 100 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -43,6 +43,7 @@ class AboutFragment : DialogFragment() { // Attach the gesture detector to the root layout view.setOnTouchListener { _, event -> + view.performClick() handleTouchEvent(event) } @@ -59,7 +60,7 @@ class AboutFragment : DialogFragment() { underlinedText2.setSpan(UnderlineSpan(), 1, srcLink.text.length, 0) srcLink.text = underlinedText2 - makeTextViewClickable(srcLink, "https://gitlab.com/Odweta/solen") + makeTextViewClickable(srcLink, "https://gitlab.com/Odweta/solon") return view } @@ -108,7 +109,7 @@ class AboutFragment : DialogFragment() { velocityY: Float ): Boolean { val diffY = e1?.let { e2.y.minus(it.y) } ?: 0f - if (diffY > SWIPETHRESHOLD && abs(velocityY) > SWIPEVELOCITYTHRESHOLD) { + if (diffY > swipeThreshold && abs(velocityY) > swipeVelocityThreshold) { // Swiped down dismiss() return true @@ -117,6 +118,7 @@ class AboutFragment : DialogFragment() { } } + @Suppress("SameReturnValue", "SameReturnValue", "SameReturnValue") private fun handleTouchEvent(event: MotionEvent): Boolean { when (event.action) { MotionEvent.ACTION_DOWN -> { diff --git a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt index 55a322c..28d0e3e 100644 --- a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt +++ b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt @@ -7,6 +7,7 @@ import android.graphics.drawable.GradientDrawable import android.os.Bundle import android.os.Handler import android.os.Looper +import android.util.Log import android.view.Gravity import android.view.LayoutInflater import android.view.View @@ -41,7 +42,7 @@ class CalWeekFragment : Fragment() { val adapter = DayPagerAdapter(childFragmentManager, viewLifecycleOwner.lifecycle) for (i in 0 until Vars.days.size) { - adapter.addFragment(DayFragment(i, view)) + adapter.addFragment(DayFragment(i)) } viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { @@ -55,8 +56,6 @@ class CalWeekFragment : Fragment() { viewPager.offscreenPageLimit = adapter.itemCount viewPager.currentItem = Vars.selectedDay - view.tag = "timetable_root" - return view } } @@ -79,7 +78,7 @@ class DayPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) : } } -class DayFragment(private val position: Int, private val rootView: View) : Fragment(R.layout.fragment_day) { +class DayFragment(private val i: Int) : Fragment() { private val handler = Handler(Looper.getMainLooper()) @SuppressLint("ClickableViewAccessibility") @@ -89,11 +88,9 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm savedInstanceState: Bundle? ): View? { val view = inflater.inflate(R.layout.fragment_day, container, false) - view.tag = "day_${position}_root" val dayLayout: LinearLayout = view.findViewById(R.id.layoutDayMain) - dayLayout.tag = "day_${position}_layout" - Vars.dayMap[position]?.let { createDayView(it, dayLayout, resources) } + Vars.dayMap[i]?.let { createDayView(it, dayLayout, resources) } return view } @@ -109,11 +106,11 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm override fun run() { subjectDrawable.setStroke(0, 0) - var now = LocalTime.now() - var nowD = LocalDate.now().dayOfMonth - var nowH = now.hour - var nowM = now.minute - var nowT = LocalTime.of(nowH, nowM) + val now = LocalTime.now() + val nowD = LocalDate.now().dayOfMonth + val nowH = now.hour + val nowM = now.minute + val nowT = LocalTime.of(nowH, nowM) lateinit var subjST: LocalTime lateinit var subjET: LocalTime @@ -223,7 +220,8 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm } } - rootView.postInvalidate() + requireView().postInvalidate() + // repeat every 40 seconds handler.postDelayed(this, 40000L) } }, 0L) @@ -245,7 +243,7 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm dayLayout.orientation = LinearLayout.VERTICAL val nameDateTextView = TextView(requireContext()) - nameDateTextView.text = "${day.name} ${day.date}" + nameDateTextView.text = String.format("%s %s", day.name, day.date) nameDateTextView.setTypeface(customFont, Typeface.BOLD_ITALIC) nameDateTextView.textSize = 27f nameDateTextView.setTextColor( @@ -254,7 +252,7 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm R.color.white ) ) - nameDateTextView.setPadding(10, 40, 10, 40) + nameDateTextView.setPadding(10, 0, 10, 40) nameDateTextView.gravity = Gravity.CENTER_HORIZONTAL rootLayout.addView(nameDateTextView) @@ -269,8 +267,6 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm prevSubj.end = "" prevSubj.free = false - var firstDone = false - for ((i, subj) in day.subjects.withIndex()) { val subjectBackground = when (subj.substitute) { "0" -> if (subj.place != "Volno") { @@ -329,8 +325,6 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm subjectLayout.orientation = LinearLayout.HORIZONTAL subjectLayout.gravity = Gravity.CENTER_VERTICAL subjectLayout.background = subjectDrawable - // set the tag for later use (used as an id) - subjectLayout.tag = subj.number val subjectNumberDrawable = GradientDrawable() subjectNumberDrawable.shape = GradientDrawable.RECTANGLE @@ -341,13 +335,6 @@ class DayFragment(private val position: Int, private val rootView: View) : Fragm subjectBackground ) ) - /*subjectNumberDrawable.setStroke( - 10, - ContextCompat.getColor( - requireContext(), - subjectStroke - ) - )*/ val subjectNumberTextView = TextView(requireContext()) subjectNumberTextView.typeface = customFont diff --git a/mobile/app/src/main/java/com/odweta/solon/Dialogs.kt b/mobile/app/src/main/java/com/odweta/solon/Dialogs.kt index 4018c35..4c2d365 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Dialogs.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Dialogs.kt @@ -1,10 +1,16 @@ package com.odweta.solon +import android.annotation.SuppressLint import android.app.AlertDialog import android.content.Context +import android.content.res.Resources +import android.util.Log import android.view.LayoutInflater +import androidx.core.content.ContextCompat +import androidx.core.content.res.ResourcesCompat class Dialogs { + @SuppressLint("InflateParams") class LanguageChange(context: Context) : AlertDialog(context) { init { // Initialize your dialog properties @@ -12,6 +18,7 @@ class Dialogs { setCancelable(true) // Inflate the layout for the dialog val view = LayoutInflater.from(context).inflate(R.layout.radio_group_language, null) + window?.setBackgroundDrawableResource(R.drawable.alert_dialog_background) setView(view) // Set positive button (e.g., "OK" button) @@ -20,7 +27,6 @@ class Dialogs { "OK" ) { _, _ -> // functionality here - dismiss() } @@ -32,5 +38,15 @@ class Dialogs { dismiss() } } + + override fun onStart() { + super.onStart() + + val okButton = getButton(BUTTON_POSITIVE) + okButton?.setTextColor(ContextCompat.getColor(context, R.color.white)) + val cancelButton = getButton(BUTTON_NEGATIVE) + Log.d("debug", "$okButton $cancelButton") + cancelButton?.setTextColor(ContextCompat.getColor(context, R.color.white)) + } } } \ No newline at end of file diff --git a/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt b/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt index 6560d37..4a8f143 100644 --- a/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt +++ b/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt @@ -2,7 +2,6 @@ package com.odweta.solon import android.app.Dialog import android.content.Context -import android.content.Intent import android.os.Bundle import android.view.View import android.widget.Button @@ -43,21 +42,6 @@ class MainActivity : AppCompatActivity(), MainActivityListener { fun callLaunchPhase1() { intfc?.launchPhase1() } - - fun quit(context: Context) { - // Create an Intent to launch the home screen - val homeIntent = Intent(Intent.ACTION_MAIN) - homeIntent.addCategory(Intent.CATEGORY_HOME) - homeIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK - - // Start the home screen activity - context.startActivity(homeIntent) - - // If the context is an Activity, finish it to close the current activity - if (context is AppCompatActivity) { - context.finish() - } - } } @@ -92,36 +76,35 @@ class MainActivity : AppCompatActivity(), MainActivityListener { val btn = view.findViewById