├── .gitignore ├── COPYRIGHT ├── GUET课程表隐私政策.txt ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── telephone │ │ └── coursetable │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── fonts │ │ │ └── xzbjj.ttf │ │ └── telephone.traineddata │ ├── java │ │ └── com │ │ │ └── telephone │ │ │ └── coursetable │ │ │ ├── AboutActivity.java │ │ │ ├── AppWidgetProvider │ │ │ ├── List.java │ │ │ ├── ListAdapter.java │ │ │ └── ListRemoteViewsService.java │ │ │ ├── BroadcastReceiver │ │ │ └── BootReceiver.java │ │ │ ├── ChangeHours.java │ │ │ ├── ChangeTerms.java │ │ │ ├── Clock │ │ │ ├── Clock.java │ │ │ ├── DateTime.java │ │ │ ├── FindClassOfCurrentOrNextTimeRes.java │ │ │ ├── GetDateInfo.java │ │ │ ├── Locate.java │ │ │ └── TimeAndDescription.java │ │ │ ├── Comments.java │ │ │ ├── CommentsAdapter.java │ │ │ ├── CourseCard.java │ │ │ ├── CourseCardAdapter.java │ │ │ ├── CourseCardFragment.java │ │ │ ├── CourseCardPagerFragment.java │ │ │ ├── CurrentTermInfoAndWeek.java │ │ │ ├── DATALIST.java │ │ │ ├── Database │ │ │ ├── AppDatabase.java │ │ │ ├── AppDatabaseComments.java │ │ │ ├── AppDatabaseCompare.java │ │ │ ├── AppDatabaseCompareTest.java │ │ │ ├── AppTestDatabase.java │ │ │ ├── CET.java │ │ │ ├── CETDao.java │ │ │ ├── ClassInfo.java │ │ │ ├── ClassInfoDao.java │ │ │ ├── CustomizedExam.java │ │ │ ├── CustomizedExamDao.java │ │ │ ├── ExamInfo.java │ │ │ ├── ExamInfoDao.java │ │ │ ├── ExamTotal.java │ │ │ ├── ExamTotalDao.java │ │ │ ├── GoToClass.java │ │ │ ├── GoToClassDao.java │ │ │ ├── GradeTotal.java │ │ │ ├── GradeTotalDao.java │ │ │ ├── Grades.java │ │ │ ├── GradesDao.java │ │ │ ├── GraduationScore.java │ │ │ ├── GraduationScoreDao.java │ │ │ ├── Key │ │ │ │ └── GoToClassKey.java │ │ │ ├── KeyAndValue │ │ │ │ └── GoToClassKeyAndValue.java │ │ │ ├── LAB.java │ │ │ ├── LABDao.java │ │ │ ├── Mask.java │ │ │ ├── MaskDao.java │ │ │ ├── Methods │ │ │ │ └── Methods.java │ │ │ ├── MyComment.java │ │ │ ├── MyCommentDao.java │ │ │ ├── PersonInfo.java │ │ │ ├── PersonInfoDao.java │ │ │ ├── Privacy.java │ │ │ ├── PrivacyDao.java │ │ │ ├── ShowTableNode.java │ │ │ ├── TermInfo.java │ │ │ ├── TermInfoDao.java │ │ │ ├── User.java │ │ │ ├── UserDao.java │ │ │ ├── Version.java │ │ │ └── VersionDao.java │ │ │ ├── EditCourse.java │ │ │ ├── Fetch │ │ │ ├── LAN.java │ │ │ └── WAN.java │ │ │ ├── FetchService.java │ │ │ ├── FunctionMenu.java │ │ │ ├── FunctionMenuAdapter.java │ │ │ ├── GradePoint │ │ │ ├── Get_grade_points_array.java │ │ │ ├── GradePointActivity.java │ │ │ ├── GradePointAdapter.java │ │ │ └── GradePoint_Test.java │ │ │ ├── Gson │ │ │ ├── Adapters │ │ │ │ └── NoNullStringAdapter.java │ │ │ ├── CET.java │ │ │ ├── CET_s.java │ │ │ ├── Comment │ │ │ │ └── Comment.java │ │ │ ├── CourseCard │ │ │ │ ├── ACard.java │ │ │ │ └── CourseCardData.java │ │ │ ├── CurentTerm.java │ │ │ ├── ExamInfo.java │ │ │ ├── ExamInfo_s.java │ │ │ ├── ExperimentGrade.java │ │ │ ├── ExperimentGrade_s.java │ │ │ ├── GoToClass_ClassInfo.java │ │ │ ├── GoToClass_ClassInfo_s.java │ │ │ ├── Grades.java │ │ │ ├── Grades_s.java │ │ │ ├── GraduationCondition.java │ │ │ ├── GraduationCondition_s.java │ │ │ ├── GraduationDegreeEvaluation.java │ │ │ ├── GraduationDegreeEvaluation_s.java │ │ │ ├── GraduationFee.java │ │ │ ├── GraduationScore.java │ │ │ ├── GraduationScore_s.java │ │ │ ├── Hour.java │ │ │ ├── Hour_s.java │ │ │ ├── LAB.java │ │ │ ├── LAB_s.java │ │ │ ├── LoginResponse.java │ │ │ ├── PersonInfo.java │ │ │ ├── PersonInfo_s.java │ │ │ ├── SelectedCourses.java │ │ │ ├── SelectedCourses_s.java │ │ │ ├── StudentInfo.java │ │ │ ├── TeachersEvaluation │ │ │ │ ├── Detail.java │ │ │ │ ├── Detail_get.java │ │ │ │ ├── Detail_get_s.java │ │ │ │ ├── PJGetValue_Data.java │ │ │ │ ├── PJGetValue_DataS.java │ │ │ │ └── PJPostValue.java │ │ │ ├── TermInfo.java │ │ │ ├── TermInfo_s.java │ │ │ ├── TextBookEvaluation │ │ │ │ ├── Detail.java │ │ │ │ ├── Detail_get.java │ │ │ │ ├── Detail_get_s.java │ │ │ │ ├── PJGetValue_Data.java │ │ │ │ └── PJGetValue_Data_s.java │ │ │ └── Update │ │ │ │ ├── Asset.java │ │ │ │ └── Release.java │ │ │ ├── GuetTools │ │ │ ├── ActionInformation.java │ │ │ ├── Coordinate.java │ │ │ ├── Drag.java │ │ │ ├── ExamFilter.java │ │ │ ├── Example.java │ │ │ ├── ImageActivity.java │ │ │ ├── Scale.java │ │ │ ├── ScalePac.java │ │ │ ├── SetMyExam.java │ │ │ ├── TouchListener.java │ │ │ ├── WebLinksActivity.java │ │ │ └── WebLinksAdapter.java │ │ │ ├── Http │ │ │ ├── Get.java │ │ │ ├── GetBitmap.java │ │ │ ├── HttpConnectionAndCode.java │ │ │ └── Post.java │ │ │ ├── Https │ │ │ ├── Get.java │ │ │ ├── GetBitmap.java │ │ │ ├── Post.java │ │ │ └── TelTlsSniSocketFactory.java │ │ │ ├── Library │ │ │ ├── BookAdapter.java │ │ │ ├── GetHttp.java │ │ │ ├── LibraryActivity.java │ │ │ └── Show.java │ │ │ ├── LogMe │ │ │ └── LogMe.java │ │ │ ├── Login.java │ │ │ ├── Login_vpn.java │ │ │ ├── MainActivity.java │ │ │ ├── Merge │ │ │ └── Merge.java │ │ │ ├── MyApp.java │ │ │ ├── MyException │ │ │ ├── Exception302.java │ │ │ ├── ExceptionIpForbidden.java │ │ │ ├── ExceptionNetworkError.java │ │ │ ├── ExceptionUnknown.java │ │ │ ├── ExceptionWrongCheckCode.java │ │ │ ├── ExceptionWrongUserOrPassword.java │ │ │ └── MyException.java │ │ │ ├── OCR │ │ │ └── OCR.java │ │ │ ├── PickerPanel.java │ │ │ ├── TeacherEvaluationPanel.java │ │ │ ├── TeachersEvaluation │ │ │ ├── Byxw.java │ │ │ ├── TeachersEvaluation.java │ │ │ └── TextBookEvaluation.java │ │ │ ├── TestActivity.java │ │ │ ├── Update │ │ │ └── Update.java │ │ │ ├── UsageActivity.java │ │ │ ├── UserGuideAdapter.java │ │ │ └── Webinfo │ │ │ ├── GUET_Music.java │ │ │ ├── Guetphonenums.java │ │ │ ├── MediaService.java │ │ │ ├── Webinfo.java │ │ │ ├── Webinfoview.java │ │ │ └── guetphonenumsAdapter.java │ └── res │ │ ├── drawable-v24 │ │ ├── guet_logo.webp │ │ ├── guet_logo_white.webp │ │ ├── guet_text.jpg │ │ ├── guet_text_trans.webp │ │ ├── ic_launcher_foreground.xml │ │ ├── network.webp │ │ ├── network_vpn.webp │ │ ├── vacation.webp │ │ ├── week_1.webp │ │ ├── week_10.webp │ │ ├── week_11.webp │ │ ├── week_12.webp │ │ ├── week_13.webp │ │ ├── week_14.webp │ │ ├── week_15.webp │ │ ├── week_16.webp │ │ ├── week_17.webp │ │ ├── week_18.webp │ │ ├── week_19.webp │ │ ├── week_2.webp │ │ ├── week_20.webp │ │ ├── week_21.webp │ │ ├── week_22.webp │ │ ├── week_23.webp │ │ ├── week_24.webp │ │ ├── week_25.webp │ │ ├── week_26.webp │ │ ├── week_27.webp │ │ ├── week_28.webp │ │ ├── week_29.webp │ │ ├── week_3.webp │ │ ├── week_30.webp │ │ ├── week_4.webp │ │ ├── week_5.webp │ │ ├── week_6.webp │ │ ├── week_7.webp │ │ ├── week_8.webp │ │ └── week_9.webp │ │ ├── drawable │ │ ├── about.webp │ │ ├── appwidget_list_item_content.xml │ │ ├── appwidget_list_item_today.xml │ │ ├── appwidget_list_item_tomorrow.xml │ │ ├── appwidget_title_border.xml │ │ ├── calendar_2020_2021.webp │ │ ├── cet.webp │ │ ├── change_term.webp │ │ ├── chat_group.webp │ │ ├── comment_and_edit_border.xml │ │ ├── delete_course_border.xml │ │ ├── edit_exam_button_border.xml │ │ ├── exam.webp │ │ ├── eye_close.webp │ │ ├── eye_open.webp │ │ ├── feather_pen.webp │ │ ├── feather_pen_small_not_trans.webp │ │ ├── feather_pen_trans.webp │ │ ├── forget_btn_border.xml │ │ ├── function_menu_group_background.xml │ │ ├── function_menu_group_border.xml │ │ ├── function_menu_group_divider.xml │ │ ├── function_menu_item_divider.xml │ │ ├── github.webp │ │ ├── grade_points.webp │ │ ├── grade_points_item_background.xml │ │ ├── grades.webp │ │ ├── guet_calendar.webp │ │ ├── guet_jjl_map.jpg │ │ ├── guet_map.webp │ │ ├── guet_music_icon.webp │ │ ├── guet_tool.webp │ │ ├── guet_tools_background.xml │ │ ├── ic_launcher_background.xml │ │ ├── library.webp │ │ ├── library_query_btn_border.xml │ │ ├── link.webp │ │ ├── login_btn_border.xml │ │ ├── login_text_border.xml │ │ ├── login_tip_border.xml │ │ ├── main_current_node_border.xml │ │ ├── map_icon.webp │ │ ├── musicstart.webp │ │ ├── musicstop.webp │ │ ├── nextlessonnotify.webp │ │ ├── no_course.webp │ │ ├── page0.webp │ │ ├── page1.webp │ │ ├── page2.webp │ │ ├── page3.webp │ │ ├── page4.webp │ │ ├── personal_info.webp │ │ ├── phone_icon.webp │ │ ├── plan_courses.webp │ │ ├── privacy_dialog_border.xml │ │ ├── qq.webp │ │ ├── qqcode_bbq.webp │ │ ├── qqcode_guet_coursetable.jpg │ │ ├── qqcode_second_hand_trading_group.jpg │ │ ├── qrcode_guet.webp │ │ ├── qrcode_guet_campus.webp │ │ ├── qrcode_guet_cwc.webp │ │ ├── qrcode_guet_lib.webp │ │ ├── refresh.webp │ │ ├── schoolicontest.webp │ │ ├── sofa.webp │ │ ├── start_page_2.webp │ │ ├── teachers_evaluation.webp │ │ ├── update.webp │ │ ├── userguide_hasclass.webp │ │ ├── userguide_keepalive.webp │ │ ├── userguide_noclass.webp │ │ ├── userguide_xiaobujian.webp │ │ ├── userpage_login.webp │ │ ├── userpage_wakeapp.webp │ │ └── webinfo_phone.webp │ │ ├── layout │ │ ├── about_us.xml │ │ ├── activity_change_hours.xml │ │ ├── activity_change_terms.xml │ │ ├── activity_comments.xml │ │ ├── activity_course_card.xml │ │ ├── activity_edit_course.xml │ │ ├── activity_function_menu.xml │ │ ├── activity_g_u_e_t__music.xml │ │ ├── activity_grade_points_text.xml │ │ ├── activity_grade_points_title.xml │ │ ├── activity_gradepoint.xml │ │ ├── activity_guetphonenums.xml │ │ ├── activity_login.xml │ │ ├── activity_login_vpn.xml │ │ ├── activity_login_vpn_no_checkcode.xml │ │ ├── activity_main.xml │ │ ├── activity_teacher_evaluation_panel.xml │ │ ├── activity_test.xml │ │ ├── activity_usage.xml │ │ ├── activity_web_links.xml │ │ ├── activity_webinfo.xml │ │ ├── appwidget_layout_list.xml │ │ ├── appwidget_list_item.xml │ │ ├── comment_card.xml │ │ ├── comment_dialog.xml │ │ ├── content_edit_course.xml │ │ ├── course_card.xml │ │ ├── course_card_view_pager.xml │ │ ├── double_verification.xml │ │ ├── extra_password.xml │ │ ├── extra_password_vpn.xml │ │ ├── function_menu_group.xml │ │ ├── function_menu_item_about.xml │ │ ├── function_menu_item_cet.xml │ │ ├── function_menu_item_change_terms.xml │ │ ├── function_menu_item_exam.xml │ │ ├── function_menu_item_grade_points.xml │ │ ├── function_menu_item_grades.xml │ │ ├── function_menu_item_graduation_score.xml │ │ ├── function_menu_item_guet_tools.xml │ │ ├── function_menu_item_library.xml │ │ ├── function_menu_item_person_info.xml │ │ ├── function_menu_item_teachers_evaluation.xml │ │ ├── function_menu_item_update.xml │ │ ├── guet_tools_example.xml │ │ ├── library_activity.xml │ │ ├── library_infoes_activity.xml │ │ ├── library_locals_activity.xml │ │ ├── no_course_card.xml │ │ ├── privacy_dialog.xml │ │ ├── userguider_item.xml │ │ ├── web_links_item.xml │ │ └── webinfo_item.xml │ │ ├── menu │ │ ├── aboutus.xml │ │ ├── add_comment.xml │ │ ├── changehour.xml │ │ ├── changeterms.xml │ │ ├── function_menu.xml │ │ ├── function_menu_debug.xml │ │ ├── graduation_degree.xml │ │ ├── login.xml │ │ ├── login_vpn.xml │ │ ├── menu_edit_course.xml │ │ ├── teacher_evaluation_menu.xml │ │ ├── textbook_evaluation_menu.xml │ │ └── web_links.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ ├── ic_launcher_round.xml │ │ ├── toolbar_guet.xml │ │ ├── toolbar_guet_less.xml │ │ ├── toolbar_guet_less_round.xml │ │ ├── toolbar_guet_lesss.xml │ │ ├── toolbar_guet_lesss_round.xml │ │ ├── toolbar_guet_lessss.xml │ │ ├── toolbar_guet_lessss_round.xml │ │ └── toolbar_guet_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── toolbar_guet.png │ │ ├── toolbar_guet_foreground.png │ │ ├── toolbar_guet_less.png │ │ ├── toolbar_guet_less_foreground.png │ │ ├── toolbar_guet_less_round.png │ │ ├── toolbar_guet_lesss.png │ │ ├── toolbar_guet_lesss_foreground.png │ │ ├── toolbar_guet_lesss_round.png │ │ ├── toolbar_guet_lessss.png │ │ ├── toolbar_guet_lessss_foreground.png │ │ ├── toolbar_guet_lessss_round.png │ │ └── toolbar_guet_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── toolbar_guet.png │ │ ├── toolbar_guet_foreground.png │ │ ├── toolbar_guet_less.png │ │ ├── toolbar_guet_less_foreground.png │ │ ├── toolbar_guet_less_round.png │ │ ├── toolbar_guet_lesss.png │ │ ├── toolbar_guet_lesss_foreground.png │ │ ├── toolbar_guet_lesss_round.png │ │ ├── toolbar_guet_lessss.png │ │ ├── toolbar_guet_lessss_foreground.png │ │ ├── toolbar_guet_lessss_round.png │ │ └── toolbar_guet_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── toolbar_guet.png │ │ ├── toolbar_guet_foreground.png │ │ ├── toolbar_guet_less.png │ │ ├── toolbar_guet_less_foreground.png │ │ ├── toolbar_guet_less_round.png │ │ ├── toolbar_guet_lesss.png │ │ ├── toolbar_guet_lesss_foreground.png │ │ ├── toolbar_guet_lesss_round.png │ │ ├── toolbar_guet_lessss.png │ │ ├── toolbar_guet_lessss_foreground.png │ │ ├── toolbar_guet_lessss_round.png │ │ └── toolbar_guet_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── toolbar_guet.png │ │ ├── toolbar_guet_foreground.png │ │ ├── toolbar_guet_less.png │ │ ├── toolbar_guet_less_foreground.png │ │ ├── toolbar_guet_less_round.png │ │ ├── toolbar_guet_lesss.png │ │ ├── toolbar_guet_lesss_foreground.png │ │ ├── toolbar_guet_lesss_round.png │ │ ├── toolbar_guet_lessss.png │ │ ├── toolbar_guet_lessss_foreground.png │ │ ├── toolbar_guet_lessss_round.png │ │ └── toolbar_guet_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── toolbar_guet.png │ │ ├── toolbar_guet_foreground.png │ │ ├── toolbar_guet_less.png │ │ ├── toolbar_guet_less_foreground.png │ │ ├── toolbar_guet_less_round.png │ │ ├── toolbar_guet_lesss.png │ │ ├── toolbar_guet_lesss_foreground.png │ │ ├── toolbar_guet_lesss_round.png │ │ ├── toolbar_guet_lessss.png │ │ ├── toolbar_guet_lessss_foreground.png │ │ ├── toolbar_guet_lessss_round.png │ │ └── toolbar_guet_round.png │ │ ├── raw │ │ └── the_faintest_sign.mp3 │ │ ├── values │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ic_launcher_background.xml │ │ ├── ints.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── themes.xml │ │ ├── toolbar_guet_background.xml │ │ ├── toolbar_guet_less_background.xml │ │ ├── toolbar_guet_lesss_background.xml │ │ ├── toolbar_guet_lessss_background.xml │ │ └── values.xml │ │ └── xml │ │ ├── appwidget_info_list.xml │ │ ├── dragseekbar.xml │ │ └── filepaths.xml │ └── test │ └── java │ └── com │ └── telephone │ └── coursetable │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | /.* 16 | /app/release 17 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (C) 2020 1800301129 谭凌风 2 | 1800301127 潘鹏宇 3 | 1800301128 石俊杰 4 | 1800301130 唐远军 5 | -------------------------------------------------------------------------------- /GUET课程表隐私政策.txt: -------------------------------------------------------------------------------- 1 | GUET课程表隐私政策(v1.0) 2 | 3 | 欢迎使用GUET课程表! 4 | 5 | 希望您仔细阅读此《GUET课程表隐私政策》(以下简称“本政策”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并作出适当的选择。 6 | 7 | 若您使用GUET课程表服务,即表示您认同我们在本政策中所述内容。 8 | 9 | 本政策适用于GUET课程表3.4版本及后续的更高版本。在每次更新本政策内容后,我们都将以APP内弹窗的方式告知您。本政策的更新版本发布时,旧版本政策自动失效。 10 | 11 | 为了帮助我们更好地了解GUET课程表的运行情况,我们可能会收集相关的统计信息(以下简称“统计信息”),包括: 12 |   1. 您所使用的GUET课程表的版本信息 13 |   2. 您所使用的GUET课程表的更新日期 14 | 15 | 我们收集的统计信息不包含您在应用程序中提供的个人身份信息。 16 | 17 | 在评论功能中,我们提供存储服务。您发表的评论的相关数据(以下简称“评论数据”)将会被加密后存储在我们的服务器中,以确保评论功能的正常运行与您的信息安全。除在评论功能中展示外,我们不会以任何其他方式与任何人(或第三方)分享或向任何人(或第三方)提供您的评论数据。除用于在评论功能中展示外,我们不会将您的评论数据用于任何其他用途。 18 | 19 | 我们不会收集、存储除统计信息和评论数据外的任何您的信息。只有当您主动发表评论后,我们才会收集、存储您所发表的评论的相关数据。 20 | 21 | 我们使用各种安全保护措施为您的信息提供相应的安全保障,以防止信息的丢失、泄露、不当使用、未经授权访问或披露,包括但不限于: 22 |   ·加密技术(例如,TLS、SSL) 23 |   ·信息匿名化处理 24 |   ·软件开发守则 25 | 26 | 若发生信息泄露等安全事件,我们会启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您。 27 | 28 | 为了避免由不可抗力因素导致的信息泄露(或披露)(以下简称“信息泄露”),我们会在信息泄露即将发生时销毁存储在服务器中的您的信息。 29 | 30 | 当软件功能完善后,您可以在APP中手动删除存储在我们的服务器中的您的评论数据。在任何时候,如果您想要删除存储在我们的服务器中的您的评论数据,请您联系我们 telephone.tan@qq.com(电子邮件),我们将满足您的请求。 31 | 32 | GUET课程表团队 33 | 最后更新于 2020年11月30日12点56分 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GUET课程表 2 | 3 | ### 仓库迁移 4 | 5 | - 此项目已迁移到[桂电1024开源社区](https://github.com/guet1024),新的`Issue`、`Pull request`请发往新的仓库 6 | - 此仓库自`2020年12月26日02点27分`起不再维护 7 | - 新仓库地址:[https://github.com/guet1024/GUET-Schedule-Open](https://github.com/guet1024/GUET-Schedule-Open) 8 | 9 | ### 平台 10 | 11 | 📱 Android 12 | 13 | ### 下载安装 14 | 15 | - APK文件:👉[最新版本](https://github.com/Telephone2019/CourseTable/releases/latest)的Assets中包含最新版本的APK安装包 16 | - 各大应用商店搜索 **GUET课程表** 🔍(暂无,后续版本上线) 17 | 18 | ### 开源协议 19 | 20 | 此项目是在[GPLv3](https://www.gnu.org/licenses/gpl-3.0.html)许可下发布的 21 | 22 | ### 版权声明 23 | 24 | 版权声明见仓库文件[📄](https://github.com/Telephone2019/CourseTable/blob/master/COPYRIGHT) 25 | 26 | ### 交流反馈 27 | 28 | - ❗ [GitHub Issue](https://github.com/Telephone2019/CourseTable/issues/new/choose) 29 | - 🐧 [QQ交流群](https://qm.qq.com/cgi-bin/qm/qr?k=LjOFHb-pTST28-QLMqiz5uTcKH-_3h-4&jump_from=webapi) 30 | - ⭐ Star 31 | 32 | ### 对此项目做贡献 33 | 34 | 1. 🔗 Fork此项目 35 | 2. 💻 编写代码 36 | 3. 🧲 向作者发送[Pull request](https://github.com/Telephone2019/CourseTable/compare) 37 | 38 | ### 使用说明 39 | 40 | 点击左上角徽标键登录 41 | 42 | ### 功能 43 | 44 | 带⚡图标的功能处于开发/测试阶段,将在后续版本上线... 45 | 46 | + 支持WebVPN(外网)登录 47 | + 周课表显示 48 | + 日课表显示 49 | + 课表自动同步/数据自动更新(校园网) 50 | + 课表自动同步/数据自动更新(外网) 51 | + 自定义课表 52 | + 考试倒计时 53 | + 课程评论区 54 | + 老师评论区 55 | + 事件提醒 56 | + 课表小部件 57 | + 毕业计划课程 58 | + 成绩查询 59 | + 已选课程查询⚡ 60 | + 毕业学位查询 61 | + 图书馆藏查询 62 | + 考试安排查询 63 | + 学分绩计算 64 | + 评教 65 | + 教材评价 66 | + 等级考试成绩查询 67 | + 实验成绩查询 68 | + 毕业条件查询 69 | + GUET常用工具 70 | ### 未来蓝图 71 | + 版本更新 72 | + 目前 **GUET课程表** 仍处于开发/测试阶段,新版本将陆续推出,版本将通过以下渠道发布: 73 | + GitHub Release 74 | + 应用内更新 75 | + 应用商店(暂无,后续版本上线) 76 | + QQ交流群 336405176(1群) 77 | + QQ交流群 913320924(2群) 78 | + 新增功能 79 | + 计划在未来的版本中新增一些实用的功能: 80 | * 已选课程查询 81 | 82 | ### 声明 83 | 84 | ❎与学校官方无关 85 | 86 | ### 码云同步代码仓库 87 | 88 | [GUET课程表](https://gitee.com/telephone2019/guet-curriculum) 89 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/com/telephone/coursetable/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.telephone.classtime", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/assets/fonts/xzbjj.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/assets/fonts/xzbjj.ttf -------------------------------------------------------------------------------- /app/src/main/assets/telephone.traineddata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/assets/telephone.traineddata -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/AppWidgetProvider/ListRemoteViewsService.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.AppWidgetProvider; 2 | 3 | import android.content.Intent; 4 | import android.widget.RemoteViewsService; 5 | 6 | public class ListRemoteViewsService extends RemoteViewsService { 7 | public static final String EXTRA_ARRAY_LIST_OF_STRING_TO_GET_A_NEW_REMOTE_ADAPTER = "EXTRA_ARRAY_LIST_OF_STRING_TO_GET_A_NEW_REMOTE_ADAPTER"; 8 | 9 | @Override 10 | public RemoteViewsFactory onGetViewFactory(Intent intent) {// create a new remote adapter 11 | return new ListAdapter(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/BroadcastReceiver/BootReceiver.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.BroadcastReceiver; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import com.telephone.coursetable.FetchService; 8 | import com.telephone.coursetable.MyApp; 9 | 10 | public class BootReceiver extends BroadcastReceiver { 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) 14 | { 15 | FetchService.startAction_START_FETCH_DATA(context, MyApp.service_fetch_interval, null); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Clock/FindClassOfCurrentOrNextTimeRes.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Clock; 2 | 3 | import com.telephone.coursetable.Database.ShowTableNode; 4 | 5 | import java.util.List; 6 | 7 | public class FindClassOfCurrentOrNextTimeRes { 8 | public boolean isNow; 9 | public List list; 10 | public String start = null; 11 | 12 | FindClassOfCurrentOrNextTimeRes(List list){ 13 | isNow = false; 14 | this.list = list; 15 | } 16 | 17 | FindClassOfCurrentOrNextTimeRes(List list, boolean isNow){ 18 | this.isNow = isNow; 19 | this.list = list; 20 | } 21 | 22 | FindClassOfCurrentOrNextTimeRes(List list, boolean isNow, String start){ 23 | this.isNow = isNow; 24 | this.list = list; 25 | this.start = start; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Clock/Locate.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Clock; 2 | 3 | import com.telephone.coursetable.Database.TermInfo; 4 | 5 | /** 6 | * @clear 7 | */ 8 | public class Locate { 9 | public TermInfo term; 10 | public long week; 11 | public long weekday; 12 | public long month; 13 | public long day; 14 | public String time; // this is time code 15 | public String time_description; 16 | 17 | public Locate(TermInfo term, long week, long weekday, long month, long day, String time, String time_description) { 18 | this.term = term; 19 | this.week = week; 20 | this.weekday = weekday; 21 | this.month = month; 22 | this.day = day; 23 | this.time = time; 24 | this.time_description = time_description; 25 | } 26 | 27 | @Override 28 | public String toString() { 29 | return "Locate{" + 30 | "term=" + term + 31 | ", week=" + week + 32 | ", weekday=" + weekday + 33 | ", month=" + month + 34 | ", day=" + day + 35 | ", time='" + time + '\'' + 36 | ", time_description='" + time_description + '\'' + 37 | '}'; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Clock/TimeAndDescription.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Clock; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class TimeAndDescription { 7 | public String time; // this is time code 8 | public String des; 9 | 10 | public TimeAndDescription(String time, String des) { 11 | this.time = time; 12 | this.des = des; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/CourseCardAdapter.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.TextView; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.annotation.Nullable; 11 | import androidx.fragment.app.Fragment; 12 | import androidx.fragment.app.FragmentManager; 13 | import androidx.fragment.app.FragmentPagerAdapter; 14 | import androidx.viewpager2.adapter.FragmentStateAdapter; 15 | 16 | import com.telephone.coursetable.Gson.CourseCard.ACard; 17 | import com.telephone.coursetable.Gson.CourseCard.CourseCardData; 18 | import com.telephone.coursetable.R; 19 | 20 | import java.util.List; 21 | 22 | public class CourseCardAdapter extends FragmentStateAdapter { 23 | 24 | private CourseCardData total_data; 25 | private List card_list; 26 | 27 | public CourseCardAdapter(@NonNull Fragment fragment, @NonNull List card_list, @NonNull CourseCardData total_data) { 28 | super(fragment); 29 | this.card_list = card_list; 30 | this.total_data = total_data; 31 | } 32 | 33 | @NonNull 34 | @Override 35 | public Fragment createFragment(int position) { 36 | if (position >= card_list.size()){ 37 | return new CourseCardFragment(null, total_data); 38 | }else { 39 | return new CourseCardFragment(card_list.get(position), total_data); 40 | } 41 | } 42 | 43 | @Override 44 | public int getItemCount() { 45 | return card_list.size() + 1; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/CourseCardPagerFragment.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import androidx.annotation.NonNull; 9 | import androidx.annotation.Nullable; 10 | import androidx.fragment.app.Fragment; 11 | import androidx.viewpager2.widget.ViewPager2; 12 | 13 | import com.google.gson.Gson; 14 | import com.telephone.coursetable.Gson.CourseCard.CourseCardData; 15 | 16 | public class CourseCardPagerFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | return inflater.inflate(R.layout.course_card_view_pager, container); 21 | } 22 | 23 | @Override 24 | public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 25 | CourseCardData data = MyApp.gson.fromJson(getActivity().getIntent().getStringExtra(CourseCard.EXTRA), CourseCardData.class); 26 | ((ViewPager2)view.findViewById(R.id.course_card_viewpager)).setAdapter(new CourseCardAdapter(this, data.getCards(), data)); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/AppDatabase.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Database; 4 | import androidx.room.RoomDatabase; 5 | 6 | /** 7 | * @clear 8 | */ 9 | @Database(entities = {GoToClass.class, ClassInfo.class, TermInfo.class, User.class, PersonInfo.class, GraduationScore.class, Grades.class, ExamInfo.class, CET.class, LAB.class, MyComment.class, Version.class, Privacy.class, CustomizedExam.class}, version = 10, exportSchema = false) 10 | public abstract class AppDatabase extends RoomDatabase { 11 | public abstract GoToClassDao goToClassDao(); 12 | public abstract ClassInfoDao classInfoDao(); 13 | public abstract TermInfoDao termInfoDao(); 14 | public abstract UserDao userDao(); 15 | public abstract PersonInfoDao personInfoDao(); 16 | public abstract GraduationScoreDao graduationScoreDao(); 17 | public abstract GradesDao gradesDao(); 18 | public abstract ExamInfoDao examInfoDao(); 19 | public abstract CETDao cetDao(); 20 | public abstract LABDao labDao(); 21 | public abstract MyCommentDao myCommentDao(); 22 | public abstract VersionDao versionDao(); 23 | public abstract PrivacyDao privacyDao(); 24 | public abstract CustomizedExamDao customizedExamDao(); 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/AppDatabaseComments.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Database; 4 | import androidx.room.RoomDatabase; 5 | 6 | @Database(entities = {Mask.class}, version = 1, exportSchema = false) 7 | public abstract class AppDatabaseComments extends RoomDatabase { 8 | public abstract MaskDao maskDao(); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/AppDatabaseCompare.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Database; 4 | import androidx.room.RoomDatabase; 5 | 6 | @Database(entities = {ExamTotal.class, GradeTotal.class}, version = 2, exportSchema = false) 7 | public abstract class AppDatabaseCompare extends RoomDatabase { 8 | public abstract ExamTotalDao examTotalDao(); 9 | public abstract GradeTotalDao gradeTotalDao(); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/AppDatabaseCompareTest.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Database; 4 | import androidx.room.RoomDatabase; 5 | 6 | @Database(entities = {ExamTotal.class, GradeTotal.class}, version = 2, exportSchema = false) 7 | public abstract class AppDatabaseCompareTest extends RoomDatabase { 8 | public abstract ExamTotalDao examTotalDao(); 9 | public abstract GradeTotalDao gradeTotalDao(); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/AppTestDatabase.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Database; 4 | import androidx.room.RoomDatabase; 5 | 6 | /** 7 | * @clear 8 | */ 9 | @Database(entities = {GoToClass.class, ClassInfo.class, TermInfo.class, User.class, PersonInfo.class, GraduationScore.class, Grades.class, ExamInfo.class, CET.class, LAB.class, MyComment.class, Version.class, Privacy.class, CustomizedExam.class}, version = 10, exportSchema = false) 10 | public abstract class AppTestDatabase extends RoomDatabase { 11 | public abstract GoToClassDao goToClassDao(); 12 | public abstract ClassInfoDao classInfoDao(); 13 | public abstract TermInfoDao termInfoDao(); 14 | public abstract UserDao userDao(); 15 | public abstract PersonInfoDao personInfoDao(); 16 | public abstract GraduationScoreDao graduationScoreDao(); 17 | public abstract GradesDao gradesDao(); 18 | public abstract ExamInfoDao examInfoDao(); 19 | public abstract CETDao cetDao(); 20 | public abstract LABDao labDao(); 21 | public abstract MyCommentDao myCommentDao(); 22 | public abstract VersionDao versionDao(); 23 | public abstract PrivacyDao privacyDao(); 24 | public abstract CustomizedExamDao customizedExamDao(); 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/CET.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | /** 8 | * @clear 9 | */ 10 | @Entity 11 | public class CET { 12 | public String name; 13 | public String sex; 14 | public String postdate; 15 | public String dptno; 16 | public String dptname; 17 | public String spno; 18 | public String spname; 19 | public String grade; 20 | public String bj; 21 | public String term;// 学期代码 22 | public String stid; 23 | public String code;// 等级考试名称 24 | public double score;// 折算成绩 25 | public double stage;// 等级考试成绩 26 | @NonNull @PrimaryKey 27 | public String card;// 证书编号 28 | public String operator; 29 | 30 | public CET(String name, String sex, String postdate, String dptno, String dptname, String spno, String spname, String grade, String bj, String term, String stid, String code, double score, double stage, @NonNull String card, String operator) { 31 | this.name = name; 32 | this.sex = sex; 33 | this.postdate = postdate; 34 | this.dptno = dptno; 35 | this.dptname = dptname; 36 | this.spno = spno; 37 | this.spname = spname; 38 | this.grade = grade; 39 | this.bj = bj; 40 | this.term = term; 41 | this.stid = stid; 42 | this.code = code; 43 | this.score = score; 44 | this.stage = stage; 45 | this.card = card; 46 | this.operator = operator; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/CETDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface CETDao { 15 | @Query("select * from CET order by term ASC, code ASC") 16 | List selectAll(); 17 | 18 | @Query("delete from CET") 19 | void deleteAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(CET tuple); 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/ClassInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface ClassInfoDao { 15 | @Query("delete from ClassInfo where username=:u") 16 | void deleteAll(String u); 17 | 18 | @Query("delete from ClassInfo where custom_ref<=0 and username=:u") 19 | void deleteAllNotReferredByCustom(String u); 20 | 21 | @Query("select * from ClassInfo where username=:u") 22 | List selectAll(String u); 23 | 24 | @Insert(onConflict = OnConflictStrategy.REPLACE) 25 | void insert(ClassInfo tuple); 26 | 27 | @Query("update ClassInfo set custom_ref=0 where username=:u") 28 | void resetAllCustomRef(String u); 29 | 30 | @Query("update ClassInfo set custom_ref=custom_ref+1 where username=:u and courseno=:cno") 31 | void increaseCustomRef(String u, String cno); 32 | 33 | @Query("select courseno from ClassInfo where username=:u") 34 | List selectAllCno(String u); 35 | 36 | @Query("delete from ClassInfo where courseno=:cno and username=:u") 37 | void deleteCno(String u, String cno); 38 | 39 | @Query("select * from ClassInfo where username=:u and courseno=:cno") 40 | List selectOne(String u, String cno); 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/CustomizedExam.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | // primary keys: [ when + cno + comment | sid ] 8 | @Entity(primaryKeys = {"sid", "date", "time", "week", "weekday", "cno", "comment"}) 9 | public class CustomizedExam { 10 | @NonNull 11 | public String sid; 12 | @NonNull 13 | public String date; 14 | @NonNull 15 | public String time; 16 | public long week; 17 | public long weekday; 18 | @NonNull 19 | public String cno; 20 | @NonNull 21 | public String comment; 22 | 23 | public long sts; 24 | public long ets; 25 | 26 | public CustomizedExam(@NonNull String sid, @NonNull String date, @NonNull String time, long week, long weekday, @NonNull String cno, @NonNull String comment, long sts, long ets) { 27 | this.sid = sid; 28 | this.date = date; 29 | this.time = time; 30 | this.week = week; 31 | this.weekday = weekday; 32 | this.cno = cno; 33 | this.comment = comment; 34 | this.sts = sts; 35 | this.ets = ets; 36 | } 37 | 38 | public static class CustomizedSTSAndETS{ 39 | public long sts; 40 | public long ets; 41 | 42 | public CustomizedSTSAndETS(long sts, long ets) { 43 | this.sts = sts; 44 | this.ets = ets; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/CustomizedExamDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | import java.util.List; 10 | 11 | @Dao 12 | public interface CustomizedExamDao { 13 | @Query("select sts, ets from CustomizedExam where sid=:sid and date=:date and time=:time and week=:week and weekday=:weekday and cno=:cno and comment=:comment") 14 | List selectForUserAndExam(@NonNull String sid, @NonNull String date, @NonNull String time, long week, long weekday, @NonNull String cno, @NonNull String comment); 15 | 16 | @Insert(onConflict = OnConflictStrategy.REPLACE) 17 | void insert(CustomizedExam tuple); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/ExamInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @clear 13 | */ 14 | @Dao 15 | public interface ExamInfoDao { 16 | @Query("delete from ExamInfo") 17 | void deleteAll(); 18 | 19 | @Query("select * from ExamInfo order by sts ASC") 20 | List selectAll(); 21 | 22 | @Insert(onConflict = OnConflictStrategy.REPLACE) 23 | void insert(ExamInfo tuple); 24 | 25 | @Query("select * from ExamInfo where ets>=:nts order by sts ASC") 26 | List selectFromToday(long nts); 27 | 28 | @Query("update ExamInfo set sts=:sts, ets=:ets where sts=:origin_sts and ets=:origin_ets and croomno=:room and courseno=:cno and comm=:comment") 29 | void updateSTSAndETS(long origin_sts, long origin_ets, @NonNull String room, @NonNull String cno, @NonNull String comment, long sts, long ets); 30 | 31 | @Query("update ExamInfo set sts=:sts where sts=:origin_sts and ets=:origin_ets and croomno=:room and courseno=:cno and comm=:comment") 32 | void updateSTS(long origin_sts, long origin_ets, @NonNull String room, @NonNull String cno, @NonNull String comment, long sts); 33 | 34 | @Query("update ExamInfo set ets=:ets where sts=:origin_sts and ets=:origin_ets and croomno=:room and courseno=:cno and comm=:comment") 35 | void updateETS(long origin_sts, long origin_ets, @NonNull String room, @NonNull String cno, @NonNull String comment, long ets); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/ExamTotal.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity 8 | public class ExamTotal { 9 | @NonNull 10 | public String total; 11 | @PrimaryKey 12 | public long sum; 13 | public boolean read = false; 14 | 15 | public ExamTotal(@NonNull String total) { 16 | this.total = total; 17 | setSum(); 18 | } 19 | 20 | private void setSum(){ 21 | long res = 0; 22 | char[] chars = this.total.toCharArray(); 23 | for (char ch : chars){ 24 | res += ch; 25 | } 26 | this.sum = res; 27 | } 28 | 29 | @Override 30 | public String toString() { 31 | return "ExamTotal{" + 32 | "total='" + total + '\'' + 33 | ", read=" + read + 34 | '}'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/ExamTotalDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | @Dao 11 | public interface ExamTotalDao { 12 | @Query("update ExamTotal set read=1") 13 | void readAll(); 14 | 15 | @Query("select count(*) from ExamTotal where read=0") 16 | int unreadNum(); 17 | 18 | @Query("select count(*) from ExamTotal") 19 | int totalNum(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.IGNORE) 22 | void insert(ExamTotal tuple); 23 | 24 | @Query("select * from ExamTotal") 25 | List selectAll(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GoToClass.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | 6 | /** 7 | * @clear 8 | */ 9 | @Entity(primaryKeys = {"username", "term", "weekday", "time", "courseno", "startweek", "endweek", "oddweek"}) 10 | public class GoToClass { 11 | @NonNull 12 | public String username; 13 | @NonNull 14 | public String term; 15 | @NonNull 16 | public long weekday; 17 | @NonNull 18 | public String time; 19 | @NonNull 20 | public String courseno; 21 | @NonNull 22 | public long startweek; 23 | @NonNull 24 | public long endweek; 25 | @NonNull 26 | public boolean oddweek; 27 | 28 | public long id; 29 | public String croomno; 30 | public double hours; 31 | public String sys_comm; 32 | public String my_comm; 33 | public boolean customized; 34 | 35 | public GoToClass(@NonNull String username, @NonNull String term, long weekday, @NonNull String time, @NonNull String courseno, long startweek, long endweek, boolean oddweek, long id, String croomno, double hours, String sys_comm, String my_comm, boolean customized) { 36 | this.username = username; 37 | this.term = term; 38 | this.weekday = weekday; 39 | this.time = time; 40 | this.courseno = courseno; 41 | this.startweek = startweek; 42 | this.endweek = endweek; 43 | this.oddweek = oddweek; 44 | this.id = id; 45 | this.croomno = croomno; 46 | this.hours = hours; 47 | this.sys_comm = sys_comm; 48 | this.my_comm = my_comm; 49 | this.customized = customized; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GradeTotal.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity 8 | public class GradeTotal { 9 | @NonNull 10 | public String total; 11 | @PrimaryKey 12 | public long sum; 13 | public boolean read = false; 14 | 15 | public GradeTotal(@NonNull String total) { 16 | this.total = total; 17 | setSum(); 18 | } 19 | 20 | private void setSum(){ 21 | long res = 0; 22 | char[] chars = this.total.toCharArray(); 23 | for (char ch : chars){ 24 | res += ch; 25 | } 26 | this.sum = res; 27 | } 28 | 29 | @Override 30 | public String toString() { 31 | return "GradeTotal{" + 32 | "total='" + total + '\'' + 33 | ", read=" + read + 34 | '}'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GradeTotalDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | @Dao 11 | public interface GradeTotalDao { 12 | @Query("update GradeTotal set read=1") 13 | void readAll(); 14 | 15 | @Query("select count(*) from GradeTotal where read=0") 16 | int unreadNum(); 17 | 18 | @Query("select count(*) from GradeTotal") 19 | int totalNum(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.IGNORE) 22 | void insert(GradeTotal tuple); 23 | 24 | @Query("select * from GradeTotal") 25 | List selectAll(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GradesDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface GradesDao { 15 | 16 | @Query("select * from Grades order by term DESC, cname ASC") 17 | List selectAll(); 18 | 19 | @Query("delete from Grades") 20 | void deleteAll(); 21 | 22 | @Insert(onConflict = OnConflictStrategy.REPLACE) 23 | void insert(Grades tuple); 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GraduationScore.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | /** 8 | * @clear 9 | */ 10 | @Entity 11 | public class GraduationScore { 12 | public String name; 13 | public String cname; //计划课程名称 14 | public String engname; 15 | public String engcj; 16 | public String tname; 17 | public String stid; 18 | public String term; 19 | @NonNull 20 | @PrimaryKey 21 | public String courseid; //计划课程代码,是计划中的课程代码,不是课程自带的 22 | public double planxf; 23 | public double credithour; //计划学分 24 | public String coursetype; 25 | public double lvl; 26 | public String sterm; //选修学期 27 | public String courseno; //选修课号 28 | public String scid; //课程自带的课程代码 29 | public String scname; 30 | public long score; 31 | public String zpxs; //成绩 32 | public double xf; 33 | public String stp; 34 | 35 | public GraduationScore(String name, String cname, String engname, String engcj, String tname, String stid, String term, String courseid, double planxf, double credithour, String coursetype, double lvl, String sterm, String courseno, String scid, String scname, long score, String zpxs, double xf, String stp) { 36 | this.name = name; 37 | this.cname = cname; 38 | this.engname = engname; 39 | this.engcj = engcj; 40 | this.tname = tname; 41 | this.stid = stid; 42 | this.term = term; 43 | this.courseid = courseid; 44 | this.planxf = planxf; 45 | this.credithour = credithour; 46 | this.coursetype = coursetype; 47 | this.lvl = lvl; 48 | this.sterm = sterm; 49 | this.courseno = courseno; 50 | this.scid = scid; 51 | this.scname = scname; 52 | this.score = score; 53 | this.zpxs = zpxs; 54 | this.xf = xf; 55 | this.stp = stp; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/GraduationScoreDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface GraduationScoreDao { 15 | @Query("select * from GraduationScore order by sterm DESC, cname ASC") 16 | List selectAll(); 17 | 18 | @Query("delete from GraduationScore") 19 | void deleteAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(GraduationScore tuple); 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/KeyAndValue/GoToClassKeyAndValue.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database.KeyAndValue; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.telephone.coursetable.Database.Key.GoToClassKey; 6 | 7 | public class GoToClassKeyAndValue { 8 | @NonNull 9 | public String username; 10 | @NonNull 11 | public String term; 12 | @NonNull 13 | public long weekday; 14 | @NonNull 15 | public String time; 16 | @NonNull 17 | public String courseno; 18 | @NonNull 19 | public long startweek; 20 | @NonNull 21 | public long endweek; 22 | @NonNull 23 | public boolean oddweek; 24 | 25 | public String my_comm; 26 | 27 | public GoToClassKey getKey(){ 28 | return new GoToClassKey(username, term, weekday, time, courseno, startweek, endweek, oddweek); 29 | } 30 | 31 | public String getValue(){ 32 | return my_comm; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/LABDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface LABDao { 15 | @Query("select * from LAB") 16 | List selectAll(); 17 | 18 | @Query("delete from LAB") 19 | void deleteAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(LAB tuple); 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/Mask.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity 8 | public class Mask { 9 | @NonNull 10 | @PrimaryKey 11 | public String sid; 12 | @NonNull 13 | public String mask; 14 | 15 | public Mask(@NonNull String sid, @NonNull String mask) { 16 | this.sid = sid; 17 | this.mask = mask; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/MaskDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | import java.util.List; 10 | 11 | @Dao 12 | public interface MaskDao { 13 | @Query("select mask from Mask where sid=:sid") 14 | List getMask(@NonNull String sid); 15 | 16 | @Insert(onConflict = OnConflictStrategy.REPLACE) 17 | void insert(Mask tuple); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/Methods/Methods.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database.Methods; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.telephone.coursetable.Database.ClassInfoDao; 6 | import com.telephone.coursetable.Database.GoToClassDao; 7 | import com.telephone.coursetable.Database.Key.GoToClassKey; 8 | import com.telephone.coursetable.Database.KeyAndValue.GoToClassKeyAndValue; 9 | 10 | import java.util.AbstractMap; 11 | import java.util.HashMap; 12 | import java.util.List; 13 | import java.util.Map; 14 | 15 | public class Methods { 16 | /** 17 | * traverse the {@link com.telephone.coursetable.Database.GoToClass} database and 18 | * {@link com.telephone.coursetable.Database.ClassInfo} database using specified username, delete 19 | * the cno in {@link com.telephone.coursetable.Database.ClassInfo} those are not referred by 20 | * {@link com.telephone.coursetable.Database.GoToClass} database 21 | * @param u the username 22 | * @param gdao the {@link GoToClassDao} 23 | * @param cdao the {@link ClassInfoDao} 24 | * @clear 25 | */ 26 | public static void refreshAndDeleteNotReferredClassInfo(@NonNull String u, @NonNull GoToClassDao gdao, @NonNull ClassInfoDao cdao){ 27 | List cnoList = gdao.selectAllCno(u); 28 | List cnoListClassInfo = cdao.selectAllCno(u); 29 | for(String ccno : cnoListClassInfo){ 30 | if (!cnoList.contains(ccno)){ 31 | cdao.deleteCno(u, ccno); 32 | } 33 | } 34 | } 35 | 36 | public static HashMap getMyCommentMap(@NonNull GoToClassDao gdao, @NonNull ClassInfoDao cdao){ 37 | List my_cmt_list = gdao.getMyCommentPairs_all_users(); 38 | HashMap my_cmt_map = new HashMap<>(); 39 | for(GoToClassKeyAndValue pair : my_cmt_list){ 40 | my_cmt_map.put(pair.getKey(), pair.getValue()); 41 | } 42 | return my_cmt_map; 43 | } 44 | 45 | public static Map.Entry entry(KT k, VT v){ 46 | return new AbstractMap.SimpleEntry<>(k, v); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/MyComment.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | 6 | /** 7 | * @clear 8 | */ 9 | @Entity(primaryKeys = {"go_to_class_key_json_string"}) 10 | public class MyComment { 11 | @NonNull 12 | public String go_to_class_key_json_string; 13 | @NonNull 14 | public String my_comment; 15 | 16 | public MyComment(@NonNull String go_to_class_key_json_string, @NonNull String my_comment) { 17 | this.go_to_class_key_json_string = go_to_class_key_json_string; 18 | this.my_comment = my_comment; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/MyCommentDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | /** 10 | * @clear 11 | */ 12 | @Dao 13 | public interface MyCommentDao { 14 | @Query("delete from MyComment where go_to_class_key_json_string=:key_string") 15 | void delete(@NonNull String key_string); 16 | 17 | @Insert(onConflict = OnConflictStrategy.REPLACE) 18 | void insert(MyComment tuple); 19 | 20 | @Query("select my_comment from MyComment where go_to_class_key_json_string=:key_string") 21 | String getComment(@NonNull String key_string); 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/PersonInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface PersonInfoDao { 15 | @Query("delete from PersonInfo") 16 | void deleteAll(); 17 | 18 | @Query("select * from PersonInfo") 19 | List selectAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(PersonInfo tuple); 23 | 24 | @Query("select grade from PersonInfo") 25 | List getGrade(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/Privacy.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity 8 | public class Privacy { 9 | @NonNull 10 | @PrimaryKey 11 | public String privacy_version; 12 | 13 | public Privacy(@NonNull String privacy_version) { 14 | this.privacy_version = privacy_version; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/PrivacyDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | import java.util.List; 10 | 11 | @Dao 12 | public interface PrivacyDao { 13 | @Query("select * from Privacy where privacy_version=:v") 14 | List selectPrivacy(@NonNull String v); 15 | 16 | @Insert(onConflict = OnConflictStrategy.REPLACE) 17 | void insert(Privacy tuple); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/ShowTableNode.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class ShowTableNode { 7 | public String courseno; 8 | public String cname; 9 | public String name; 10 | public String croomno; 11 | public long weekday; 12 | public String time; 13 | 14 | // edit by Telephone 2020/11/21 14:10, for course card 15 | public long start_week; 16 | public long end_week; 17 | public String tno; 18 | // edit by Telephone 2020/11/23 08:44, for course card 19 | public String sys_comm; 20 | public String my_comm; 21 | // edit by Telephone 2020/11/21 14:10, for course card 22 | public double grade_point; 23 | public String ctype; 24 | public String examt; 25 | 26 | // edit by Telephone 2020/11/23 08:44, for course card 27 | public boolean customized; 28 | // edit by Telephone 2020/11/24 00:56, for updating my_comment in edit course activity 29 | public boolean oddweek; 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/TermInfoDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface TermInfoDao { 15 | @Query("delete from TermInfo") 16 | void deleteAll(); 17 | 18 | @Query("select * from TermInfo order by term DESC") 19 | List selectAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(TermInfo tuple); 23 | 24 | @Query("delete from TermInfo where term=:term") 25 | void deleteTerm(String term); 26 | 27 | @Query("select * from TermInfo where sts<=:nts and ets>=:nts") 28 | List whichTerm(long nts); 29 | 30 | @Query("select weeknum from TermInfo where termname=:termname") 31 | List getWeekNumByTermName(String termname); 32 | 33 | @Query("select * from TermInfo where termname=:termname") 34 | List getTermByTermName(String termname); 35 | 36 | @Query("select term from TermInfo where term>=:term") 37 | List getTermsSince(String term); 38 | 39 | @Query("select delay_week from TermInfo where term=:term") 40 | List getDelayWeekNum(String term); 41 | 42 | @Query("select * from TermInfo where term=:term") 43 | List select(String term); 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/User.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | 6 | import java.text.SimpleDateFormat; 7 | import java.time.LocalDateTime; 8 | import java.time.format.DateTimeFormatter; 9 | import java.util.Date; 10 | import java.util.Locale; 11 | import java.util.TimeZone; 12 | 13 | /** 14 | * @clear 15 | */ 16 | @Entity(primaryKeys = {"username"}) 17 | public class User { 18 | @NonNull 19 | public String username; 20 | 21 | @NonNull 22 | public String password; 23 | 24 | @NonNull 25 | public String aaw_password; 26 | 27 | @NonNull 28 | public String vpn_password; 29 | 30 | @NonNull 31 | public boolean activated; 32 | 33 | @NonNull 34 | public String updateTime; 35 | 36 | public User(@NonNull String username, @NonNull String password, @NonNull String aaw_password, @NonNull String vpn_password){ 37 | if (username == null){ 38 | username = ""; 39 | } 40 | if (password == null){ 41 | password = ""; 42 | } 43 | if (aaw_password == null){ 44 | aaw_password = ""; 45 | } 46 | if (vpn_password == null){ 47 | vpn_password = ""; 48 | } 49 | this.password = password; 50 | this.username = username; 51 | this.aaw_password = aaw_password; 52 | this.vpn_password = vpn_password; 53 | this.activated = false; 54 | SimpleDateFormat format = new SimpleDateFormat("yyyy.M.d H:mm:ss", Locale.US); 55 | format.setTimeZone(TimeZone.getDefault()); 56 | this.updateTime = format.format(new Date()); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.room.Dao; 4 | import androidx.room.Insert; 5 | import androidx.room.OnConflictStrategy; 6 | import androidx.room.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @clear 12 | */ 13 | @Dao 14 | public interface UserDao { 15 | @Query("delete from User") 16 | void deleteAll(); 17 | 18 | @Query("select * from User") 19 | List selectAll(); 20 | 21 | @Insert(onConflict = OnConflictStrategy.REPLACE) 22 | void insert(User user); 23 | 24 | @Query("select username from User") 25 | List selectAllUserName(); 26 | 27 | @Query("select * from User where username=:username") 28 | List selectUser(String username); 29 | 30 | @Query("delete from User where username=:username") 31 | void deleteUser(String username); 32 | 33 | @Query("update User set activated=0") 34 | void disableAllUser(); 35 | 36 | @Query("select * from User where activated=1") 37 | List getActivatedUser(); 38 | 39 | @Query("update User set activated=1 where username=:username") 40 | void activateUser(String username); 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/Version.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity 8 | public class Version { 9 | @PrimaryKey 10 | @NonNull 11 | public String version_name; 12 | 13 | public Version(@NonNull String version_name) { 14 | this.version_name = version_name; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Database/VersionDao.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Database; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Dao; 5 | import androidx.room.Insert; 6 | import androidx.room.OnConflictStrategy; 7 | import androidx.room.Query; 8 | 9 | import java.util.List; 10 | 11 | @Dao 12 | public interface VersionDao { 13 | @Query("select * from Version where version_name=:v") 14 | List selectVersion(@NonNull String v); 15 | 16 | @Insert(onConflict = OnConflictStrategy.REPLACE) 17 | void insert(Version tuple); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/GradePoint/Get_grade_points_array.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.GradePoint; 2 | 3 | import java.util.LinkedList; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | public class Get_grade_points_array { 8 | List> grade_points_array = new LinkedList<>(); 9 | String message = null; 10 | 11 | public Get_grade_points_array(List> grade_points_array, String message) { 12 | this.grade_points_array = grade_points_array; 13 | this.message = message; 14 | } 15 | 16 | public Get_grade_points_array(String message) { 17 | this.message = message; 18 | } 19 | 20 | public Get_grade_points_array(List> grade_points_array) { 21 | this.grade_points_array = grade_points_array; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Adapters/NoNullStringAdapter.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.Adapters; 2 | 3 | import com.google.gson.JsonDeserializationContext; 4 | import com.google.gson.JsonDeserializer; 5 | import com.google.gson.JsonElement; 6 | import com.google.gson.JsonParseException; 7 | import com.google.gson.JsonPrimitive; 8 | import com.google.gson.JsonSerializationContext; 9 | import com.google.gson.JsonSerializer; 10 | 11 | import java.lang.reflect.Type; 12 | 13 | /** 14 | * actually, Gson skips all null fields when deserializing, so the NoNull deserializer won't work 15 | */ 16 | public class NoNullStringAdapter implements JsonSerializer, JsonDeserializer { 17 | @Override 18 | public String deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { 19 | if (json == null){ 20 | return ""; 21 | } 22 | try { 23 | return json.getAsString(); 24 | }catch (ClassCastException e){ 25 | return "TELEPHONE_GSON_STRING_ADAPTER_ERROR_NOT_A_STRING"; 26 | }catch (IllegalStateException e){ 27 | return "TELEPHONE_GSON_STRING_ADAPTER_ERROR_IS_AN_ARRAY"; 28 | } 29 | } 30 | 31 | @Override 32 | public JsonElement serialize(String src, Type typeOfSrc, JsonSerializationContext context) { 33 | if (src == null){ 34 | return new JsonPrimitive(""); 35 | } 36 | return new JsonPrimitive(src); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/CET.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | /** 4 | * 等级考试成绩 5 | * @clear 6 | */ 7 | public class CET { 8 | private String name; 9 | private String sex; 10 | private String postdate; 11 | private String dptno; 12 | private String dptname; 13 | private String spno; 14 | private String spname; 15 | private String grade; 16 | private String bj; 17 | private String term;// 学期代码 18 | private String stid; 19 | private String code;// 等级考试名称 20 | private double score;// 折算成绩 21 | private double stage;// 等级考试成绩 22 | private String card;// 证书编号 23 | private String operator; 24 | 25 | public String getName() { 26 | return name; 27 | } 28 | 29 | public String getSex() { 30 | return sex; 31 | } 32 | 33 | public String getPostdate() { 34 | return postdate; 35 | } 36 | 37 | public String getDptno() { 38 | return dptno; 39 | } 40 | 41 | public String getDptname() { 42 | return dptname; 43 | } 44 | 45 | public String getSpno() { 46 | return spno; 47 | } 48 | 49 | public String getSpname() { 50 | return spname; 51 | } 52 | 53 | public String getGrade() { 54 | return grade; 55 | } 56 | 57 | public String getBj() { 58 | return bj; 59 | } 60 | 61 | public String getTerm() { 62 | return term; 63 | } 64 | 65 | public String getStid() { 66 | return stid; 67 | } 68 | 69 | public String getCode() { 70 | return code; 71 | } 72 | 73 | public double getScore() { 74 | return score; 75 | } 76 | 77 | public double getStage() { 78 | return stage; 79 | } 80 | 81 | public String getCard() { 82 | return card; 83 | } 84 | 85 | public String getOperator() { 86 | return operator; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/CET_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 等级考试成绩 7 | * @clear 8 | */ 9 | public class CET_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Comment/Comment.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.Comment; 2 | 3 | public class Comment { 4 | private String cno; // "2013698", 5 | private String tno; // "2365" 6 | private String cname; // "大学物理" 7 | private String sno; // "1823695588", 8 | private long idx; // 5, 9 | private String dt; // "2020-11-19 20:02:34", 10 | private String cmt; // "测试网络评论功能" 11 | private String name; // "用户" 12 | private long ts; // 1606574174, WARNING: this is second 13 | private String mask; // "X同学" 14 | 15 | public String getCno() { 16 | return cno; 17 | } 18 | 19 | public String getTno() { 20 | return tno; 21 | } 22 | 23 | public String getCname() { 24 | return cname; 25 | } 26 | 27 | public String getSno() { 28 | return sno; 29 | } 30 | 31 | public long getIdx() { 32 | return idx; 33 | } 34 | 35 | public String getDt() { 36 | return dt; 37 | } 38 | 39 | public String getCmt() { 40 | return cmt; 41 | } 42 | 43 | public String getName() { 44 | return name; 45 | } 46 | 47 | public long getTs() { 48 | return ts; 49 | } 50 | 51 | public String getMask() { 52 | return mask; 53 | } 54 | 55 | public long getTimeStamp(){ 56 | return getTs() * 1000L; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/CurentTerm.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import com.google.gson.Gson; 4 | import com.telephone.coursetable.MyApp; 5 | 6 | import java.util.List; 7 | 8 | public class CurentTerm { 9 | 10 | public static String[] getCurentTerm(String s){ 11 | return MyApp.gson.fromJson(s,String[].class); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/ExamInfo_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 考试安排查询 7 | * @clear 8 | */ 9 | public class ExamInfo_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/ExperimentGrade_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 实验成绩 7 | * @clear 8 | */ 9 | public class ExperimentGrade_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GoToClass_ClassInfo_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @clear 7 | */ 8 | public class GoToClass_ClassInfo_s { 9 | private boolean success; 10 | private long total; 11 | private List data; 12 | 13 | public boolean isSuccess() { 14 | return success; 15 | } 16 | 17 | public long getTotal() { 18 | return total; 19 | } 20 | 21 | public List getData() { 22 | return data; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Grades_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 成绩查询 7 | * @clear 8 | */ 9 | public class Grades_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GraduationCondition.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | public class GraduationCondition { 4 | 5 | private long cid; 6 | private String ctype; 7 | private String type; 8 | private long enabled; 9 | private String spno; 10 | private String grade; 11 | private String param1; 12 | private String param2; 13 | private String param3; 14 | private String param4; 15 | private String ctype1; 16 | private String comm; 17 | private String param5; 18 | 19 | public long getCid() { 20 | return cid; 21 | } 22 | 23 | public String getCtype() { 24 | return ctype; 25 | } 26 | 27 | public String getType() { 28 | return type; 29 | } 30 | 31 | public long getEnabled() { 32 | return enabled; 33 | } 34 | 35 | public String getSpno() { 36 | return spno; 37 | } 38 | 39 | public String getGrade() { 40 | return grade; 41 | } 42 | 43 | public String getParam1() { 44 | return param1; 45 | } 46 | 47 | public String getParam2() { 48 | return param2; 49 | } 50 | 51 | public String getParam3() { 52 | return param3; 53 | } 54 | 55 | public String getParam4() { 56 | return param4; 57 | } 58 | 59 | public String getCtype1() { 60 | return ctype1; 61 | } 62 | 63 | public String getComm() { 64 | return comm; 65 | } 66 | 67 | public String getParam5() { 68 | return param5; 69 | } 70 | 71 | 72 | } 73 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GraduationCondition_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | public class GraduationCondition_s { 6 | private boolean success; 7 | private long total; 8 | private List data; 9 | 10 | public boolean isSuccess() { 11 | return success; 12 | } 13 | 14 | public long getTotal() { 15 | return total; 16 | } 17 | 18 | public List getData() { 19 | return data; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GraduationDegreeEvaluation_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 毕业学位评估 7 | * @clear 8 | */ 9 | public class GraduationDegreeEvaluation_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GraduationFee.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | //财务费用更新 4 | 5 | public class GraduationFee { 6 | 7 | private boolean success; 8 | private String msg; 9 | private String data; 10 | 11 | public boolean isSuccess() { 12 | return success; 13 | } 14 | 15 | public String getMsg() { 16 | return msg; 17 | } 18 | 19 | public String getData() { 20 | return data; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/GraduationScore_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 有效学分 7 | * @clear 8 | */ 9 | public class GraduationScore_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Hour.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class Hour { 7 | private String term; 8 | private String nodeno; 9 | private double xss; 10 | private String nodename; 11 | private String memo; 12 | 13 | public String getTerm() { 14 | return term; 15 | } 16 | 17 | public String getNodeno() { 18 | return nodeno; 19 | } 20 | 21 | public double getXss() { 22 | return xss; 23 | } 24 | 25 | public String getNodename() { 26 | return nodename; 27 | } 28 | 29 | public String getMemo() { 30 | return memo; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Hour_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @clear 7 | */ 8 | public class Hour_s { 9 | private boolean success; 10 | private long total; 11 | private List data; 12 | 13 | public boolean isSuccess() { 14 | return success; 15 | } 16 | 17 | public long getTotal() { 18 | return total; 19 | } 20 | 21 | public List getData() { 22 | return data; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/LAB_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @clear 7 | */ 8 | public class LAB_s { 9 | private boolean success; 10 | private long total; 11 | private List data; 12 | 13 | public boolean isSuccess() { 14 | return success; 15 | } 16 | 17 | public long getTotal() { 18 | return total; 19 | } 20 | 21 | public List getData() { 22 | return data; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/LoginResponse.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class LoginResponse { 7 | private boolean success; 8 | private String msg; 9 | private String data; 10 | 11 | public boolean isSuccess() { 12 | return success; 13 | } 14 | 15 | public String getMsg() { 16 | return msg; 17 | } 18 | 19 | public String getData() { 20 | return data; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/PersonInfo_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class PersonInfo_s { 7 | private boolean success; 8 | private long total; 9 | private PersonInfo data; 10 | 11 | public boolean isSuccess() { 12 | return success; 13 | } 14 | 15 | public long getTotal() { 16 | return total; 17 | } 18 | 19 | public PersonInfo getData() { 20 | return data; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/SelectedCourses_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * 已选课程 7 | * @clear 8 | */ 9 | public class SelectedCourses_s { 10 | private boolean success; 11 | private long total; 12 | private List data; 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/StudentInfo.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | /** 4 | * @clear 5 | */ 6 | public class StudentInfo { 7 | private String term; 8 | private String grade; 9 | private String dptno; 10 | private String dptname; 11 | private String spno; 12 | private String spname; 13 | private String stid; 14 | private String name; 15 | 16 | public String getTerm() { 17 | return term; 18 | } 19 | 20 | public String getGrade() { 21 | return grade; 22 | } 23 | 24 | public String getDptno() { 25 | return dptno; 26 | } 27 | 28 | public String getDptname() { 29 | return dptname; 30 | } 31 | 32 | public String getSpno() { 33 | return spno; 34 | } 35 | 36 | public String getSpname() { 37 | return spname; 38 | } 39 | 40 | public String getStid() { 41 | return stid; 42 | } 43 | 44 | public String getName() { 45 | return name; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TeachersEvaluation/Detail_get_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TeachersEvaluation; 2 | 3 | import java.util.List; 4 | 5 | public class Detail_get_s { 6 | private boolean success; 7 | private long total; 8 | List data; 9 | 10 | public boolean isSuccess() { 11 | return success; 12 | } 13 | 14 | public long getTotal() { 15 | return total; 16 | } 17 | 18 | public List getData() { 19 | return data; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TeachersEvaluation/PJGetValue_Data.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TeachersEvaluation; 2 | 3 | import java.util.List; 4 | 5 | public class PJGetValue_Data { 6 | private String term;//: "2019-2020_2" 7 | private String courseno;//: "1920262" 8 | private String stid;//: "1800301130" 9 | private String cname;//: "马克思主义基本原理概论" 10 | private String name;//: "邱启照" 11 | private String teacherno;//: "080101" 12 | private String courseid;//: "BG0000022X0" 13 | private long lb;//: 1 14 | private long chk;//: 1 15 | private boolean can;// : true 16 | 17 | 18 | 19 | public boolean isCan() { 20 | return can; 21 | } 22 | 23 | public long getChk() { 24 | return chk; 25 | } 26 | 27 | public String getCname() { 28 | return cname; 29 | } 30 | 31 | public String getCourseid() { 32 | return courseid; 33 | } 34 | 35 | public String getCourseno() { 36 | return courseno; 37 | } 38 | 39 | public long getLb() { 40 | return lb; 41 | } 42 | 43 | public String getName() { 44 | return name; 45 | } 46 | 47 | public String getStid() { 48 | return stid; 49 | } 50 | 51 | public String getTeacherno() { 52 | return teacherno; 53 | } 54 | 55 | public String getTerm() { 56 | return term; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TeachersEvaluation/PJGetValue_DataS.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TeachersEvaluation; 2 | 3 | import java.util.List; 4 | 5 | public class PJGetValue_DataS { 6 | private boolean success; 7 | private long total; 8 | private List data; 9 | 10 | public boolean isSuccess() { 11 | return success; 12 | } 13 | 14 | public long getTotal() { 15 | return total; 16 | } 17 | 18 | public List getData() { 19 | return data; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TermInfo.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | 4 | /** 5 | * @clear 6 | */ 7 | public class TermInfo { 8 | private String term; 9 | private String startdate; 10 | private String enddate; 11 | private String weeknum; 12 | private String termname; 13 | private String schoolyear; 14 | private String comm; 15 | 16 | 17 | public String getTerm() { 18 | return term; 19 | } 20 | 21 | public String getStartdate() { 22 | return startdate; 23 | } 24 | 25 | public String getEnddate() { 26 | return enddate; 27 | } 28 | 29 | public String getWeeknum() { 30 | return weeknum; 31 | } 32 | 33 | public String getTermname() { 34 | return termname; 35 | } 36 | 37 | public String getSchoolyear() { 38 | return schoolyear; 39 | } 40 | 41 | public String getComm() { 42 | return comm; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TermInfo_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @clear 7 | */ 8 | public class TermInfo_s { 9 | private boolean success; 10 | private long total; 11 | private List data; 12 | 13 | 14 | public boolean isSuccess() { 15 | return success; 16 | } 17 | 18 | public long getTotal() { 19 | return total; 20 | } 21 | 22 | public List getData() { 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TextBookEvaluation/Detail_get.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TextBookEvaluation; 2 | 3 | public class Detail_get { 4 | private String term; // "2019-2020_2", 5 | private String courseid; // "BT0300167X0", 6 | private long lsh; // 7960, 7 | private long pjno; // 374, 8 | private String type; // "s", 9 | private String pjzb; // "教材适用", 10 | private String zbnr; // "是否便于学生自学,有利于学生能力的培养,教材的深度、份量是否适当,例题和练习题是否合适等。", 11 | private double qz; // 0.40, 12 | private long score; // 85, 13 | private String dja; // "优", 14 | private long a; // 95, 15 | private String djb; // "良", 16 | private long b; // 85, 17 | private String djc; // "中", 18 | private long c; // 75, 19 | private String djd; // "差", 20 | private long d; // 65 21 | 22 | public String getTerm() { 23 | return term; 24 | } 25 | 26 | public String getCourseid() { 27 | return courseid; 28 | } 29 | 30 | public long getLsh() { 31 | return lsh; 32 | } 33 | 34 | public long getPjno() { 35 | return pjno; 36 | } 37 | 38 | public String getType() { 39 | return type; 40 | } 41 | 42 | public String getPjzb() { 43 | return pjzb; 44 | } 45 | 46 | public String getZbnr() { 47 | return zbnr; 48 | } 49 | 50 | public double getQz() { 51 | return qz; 52 | } 53 | 54 | public long getScore() { 55 | return score; 56 | } 57 | 58 | public String getDja() { 59 | return dja; 60 | } 61 | 62 | public long getA() { 63 | return a; 64 | } 65 | 66 | public String getDjb() { 67 | return djb; 68 | } 69 | 70 | public long getB() { 71 | return b; 72 | } 73 | 74 | public String getDjc() { 75 | return djc; 76 | } 77 | 78 | public long getC() { 79 | return c; 80 | } 81 | 82 | public String getDjd() { 83 | return djd; 84 | } 85 | 86 | public long getD() { 87 | return d; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TextBookEvaluation/Detail_get_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TextBookEvaluation; 2 | 3 | import java.util.List; 4 | 5 | public class Detail_get_s { 6 | private boolean success; 7 | private long total; 8 | List data; 9 | 10 | public boolean isSuccess() { 11 | return success; 12 | } 13 | 14 | public long getTotal() { 15 | return total; 16 | } 17 | 18 | public List getData() { 19 | return data; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TextBookEvaluation/PJGetValue_Data.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TextBookEvaluation; 2 | 3 | public class PJGetValue_Data { 4 | private String term; // "2019-2020_2", 5 | private String courseid; // "BJ000018920", 6 | private String cname; // "大学物理B", 7 | private long lsh; // 8377, 8 | private String name; // "大学物理简明教程(第3版)(修订版)(双色立体化教材:手机App辅助教学)" 9 | 10 | public String getTerm() { 11 | return term; 12 | } 13 | 14 | public String getCourseid() { 15 | return courseid; 16 | } 17 | 18 | public String getCname() { 19 | return cname; 20 | } 21 | 22 | public long getLsh() { 23 | return lsh; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/TextBookEvaluation/PJGetValue_Data_s.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.TextBookEvaluation; 2 | 3 | import java.util.List; 4 | 5 | public class PJGetValue_Data_s { 6 | private boolean success; 7 | private long total; 8 | private List data; 9 | 10 | public boolean isSuccess() { 11 | return success; 12 | } 13 | 14 | public long getTotal() { 15 | return total; 16 | } 17 | 18 | public List getData() { 19 | return data; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Update/Asset.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.Update; 2 | 3 | public class Asset { 4 | private String name; 5 | private String browser_download_url; 6 | 7 | public String getName() { 8 | return name; 9 | } 10 | 11 | public String getBrowser_download_url() { 12 | return browser_download_url; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Gson/Update/Release.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Gson.Update; 2 | 3 | import java.util.List; 4 | 5 | public class Release { 6 | private String html_url; 7 | private String tag_name; 8 | private String name; 9 | private String body; 10 | private List assets; 11 | 12 | public String getHtml_url() { 13 | return html_url; 14 | } 15 | 16 | public String getTag_name() { 17 | return tag_name; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public String getBody() { 25 | return body; 26 | } 27 | 28 | public List getAssets() { 29 | return assets; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/GuetTools/Coordinate.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.GuetTools; 2 | 3 | public class Coordinate { 4 | public volatile float x; 5 | public volatile float y; 6 | 7 | public Coordinate(float x, float y) { 8 | this.x = x; 9 | this.y = y; 10 | } 11 | 12 | public static double getDistance(float x1, float y1, float x2, float y2){ 13 | float xabs = Math.abs(x1 - x2); 14 | float yabs = Math.abs(y1 - y2); 15 | return Math.sqrt(Math.pow(xabs, 2) + Math.pow(yabs, 2)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/GuetTools/Drag.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.GuetTools; 2 | 3 | public class Drag { 4 | public static ScalePac drag(ScalePac origin, float x_offset, float y_offset){ 5 | Scale.offset(origin, x_offset, y_offset); 6 | if (origin.ty_left_up > origin.up_y_max){ 7 | return null; 8 | } 9 | if (origin.ty_left_down < origin.down_y_min){ 10 | return null; 11 | } 12 | if (origin.tx_left_up > origin.left_x_max){ 13 | return null; 14 | } 15 | if (origin.tx_right_up < origin.right_x_min){ 16 | return null; 17 | } 18 | return origin; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/GuetTools/ScalePac.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.GuetTools; 2 | 3 | public class ScalePac { 4 | public float tx_left_up; 5 | public float ty_left_up; 6 | public float tx_right_up; 7 | public float ty_right_up; 8 | public float tx_left_down; 9 | public float ty_left_down; 10 | public float tx_right_down; 11 | public float ty_right_down; 12 | public float tx_focus; 13 | public float ty_focus; 14 | public float up_y_max; 15 | public float down_y_min; 16 | public float left_x_max; 17 | public float right_x_min; 18 | public float scale; 19 | 20 | public ScalePac(float tx_left_up, float ty_left_up, float tx_right_up, float ty_right_up, float tx_left_down, float ty_left_down, float tx_right_down, float ty_right_down, float tx_focus, float ty_focus, float up_y_max, float down_y_min, float left_x_max, float right_x_min, float scale) { 21 | this.tx_left_up = tx_left_up; 22 | this.ty_left_up = ty_left_up; 23 | this.tx_right_up = tx_right_up; 24 | this.ty_right_up = ty_right_up; 25 | this.tx_left_down = tx_left_down; 26 | this.ty_left_down = ty_left_down; 27 | this.tx_right_down = tx_right_down; 28 | this.ty_right_down = ty_right_down; 29 | this.tx_focus = tx_focus; 30 | this.ty_focus = ty_focus; 31 | this.up_y_max = up_y_max; 32 | this.down_y_min = down_y_min; 33 | this.left_x_max = left_x_max; 34 | this.right_x_min = right_x_min; 35 | this.scale = scale; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/LogMe/LogMe.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.LogMe; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | import android.util.Log; 5 | 6 | import com.telephone.coursetable.MyApp; 7 | 8 | public class LogMe { 9 | 10 | public interface LogRunnable{ 11 | void log(String tag, String msg); 12 | } 13 | 14 | public static StringBuilder log = new StringBuilder(); 15 | 16 | private static LogRunnable e, w, i; 17 | private static LogRunnable no = (tag, msg) -> {}; 18 | 19 | public static void init(){ 20 | if (MyApp.isDebug()) { 21 | e = Log::e; 22 | w = Log::w; 23 | i = Log::i; 24 | }else { 25 | e = w = i = no; 26 | } 27 | } 28 | 29 | public static void setE(LogRunnable e){ 30 | LogMe.e = e; 31 | } 32 | public static void setW(LogRunnable w){ 33 | LogMe.w = w; 34 | } 35 | public static void setI(LogRunnable i){ 36 | LogMe.i = i; 37 | } 38 | public static void setAll(LogRunnable logRunnable){ 39 | LogMe.e = LogMe.w = LogMe.i = logRunnable; 40 | } 41 | 42 | private static void write_log(String tag, String msg){ 43 | if (log.length() >= 33554432){ 44 | log = new StringBuilder(); 45 | } 46 | log.append(tag).append(": ").append(msg).append("\n"); 47 | } 48 | 49 | public static void e(String tag, String msg){ 50 | write_log(tag, msg); 51 | e.log(tag, msg); 52 | } 53 | public static void w(String tag, String msg){ 54 | write_log(tag, msg); 55 | w.log(tag, msg); 56 | } 57 | public static void i(String tag, String msg){ 58 | write_log(tag, msg); 59 | i.log(tag, msg); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/Exception302.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class Exception302 extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/ExceptionIpForbidden.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class ExceptionIpForbidden extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/ExceptionNetworkError.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class ExceptionNetworkError extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/ExceptionUnknown.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class ExceptionUnknown extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/ExceptionWrongCheckCode.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class ExceptionWrongCheckCode extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/ExceptionWrongUserOrPassword.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class ExceptionWrongUserOrPassword extends MyException { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/MyException/MyException.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.MyException; 2 | 3 | public class MyException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/PickerPanel.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.view.View; 6 | import android.widget.ImageView; 7 | import android.widget.NumberPicker; 8 | import android.widget.TextView; 9 | 10 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; 11 | 12 | import com.google.android.material.floatingactionbutton.FloatingActionButton; 13 | 14 | /** 15 | * @clear 16 | */ 17 | public class PickerPanel { 18 | public ImageView im; 19 | public NumberPicker p1; 20 | public NumberPicker p2; 21 | public TextView t1; 22 | public TextView t2; 23 | public FloatingActionButton btn; 24 | public SwipeRefreshLayout refresh; 25 | 26 | public PickerPanel(ImageView im, NumberPicker p1, NumberPicker p2, TextView t1, TextView t2, FloatingActionButton btn, SwipeRefreshLayout refresh) { 27 | this.im = im; 28 | this.p1 = p1; 29 | this.p2 = p2; 30 | this.t1 = t1; 31 | this.t2 = t2; 32 | this.btn = btn; 33 | this.refresh = refresh; 34 | } 35 | 36 | public void hide(Activity c){ 37 | c.runOnUiThread(() -> { 38 | im.setVisibility(View.INVISIBLE); 39 | p1.setVisibility(View.INVISIBLE); 40 | p2.setVisibility(View.INVISIBLE); 41 | t1.setVisibility(View.INVISIBLE); 42 | t2.setVisibility(View.INVISIBLE); 43 | btn.setVisibility(View.INVISIBLE); 44 | refresh.setEnabled(true); 45 | }); 46 | } 47 | 48 | public void show(Activity c){ 49 | c.runOnUiThread(() -> { 50 | im.setVisibility(View.VISIBLE); 51 | p1.setVisibility(View.VISIBLE); 52 | p2.setVisibility(View.VISIBLE); 53 | t1.setVisibility(View.VISIBLE); 54 | t2.setVisibility(View.VISIBLE); 55 | btn.setVisibility(View.VISIBLE); 56 | refresh.setEnabled(false); 57 | }); 58 | } 59 | 60 | public boolean isShown(){ 61 | return (im.getVisibility() == View.VISIBLE); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/UsageActivity.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | import androidx.viewpager2.widget.ViewPager2; 5 | 6 | import android.content.Intent; 7 | import android.os.Bundle; 8 | 9 | public class UsageActivity extends AppCompatActivity { 10 | 11 | private volatile boolean visible = true; 12 | private volatile Intent outdated = null; 13 | 14 | synchronized public boolean setOutdated(){ 15 | if (visible) return false; 16 | outdated = new Intent(this, MainActivity.class); 17 | return true; 18 | } 19 | 20 | synchronized public void hide(){ 21 | visible = false; 22 | } 23 | 24 | synchronized public void show(){ 25 | visible = true; 26 | if (outdated != null){ 27 | startActivity(outdated); 28 | } 29 | } 30 | 31 | @Override 32 | protected void onResume() { 33 | super.onResume(); 34 | show(); 35 | } 36 | 37 | @Override 38 | protected void onPause() { 39 | hide(); 40 | super.onPause(); 41 | } 42 | 43 | UserGuideAdapter userGuideAdapter; 44 | private ViewPager2 viewPager; 45 | 46 | @Override 47 | public void onBackPressed() { 48 | startActivity(new Intent(this, FunctionMenu.class)); 49 | } 50 | 51 | @Override 52 | protected void onDestroy() { 53 | MyApp.clearRunningActivity(this); 54 | super.onDestroy(); 55 | } 56 | 57 | @Override 58 | protected void onCreate(Bundle savedInstanceState) { 59 | super.onCreate(savedInstanceState); 60 | MyApp.setRunning_activity(MyApp.RunningActivity.USAGE); 61 | MyApp.setRunning_activity_pointer(this); 62 | setContentView(R.layout.activity_usage); 63 | viewPager = (ViewPager2) findViewById(R.id.viewpage); 64 | userGuideAdapter = new UserGuideAdapter(); 65 | viewPager.setAdapter(userGuideAdapter); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Webinfo/MediaService.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Webinfo; 2 | 3 | import android.app.Service; 4 | import android.content.Intent; 5 | import android.media.MediaPlayer; 6 | import android.os.Binder; 7 | import android.os.IBinder; 8 | 9 | import androidx.annotation.Nullable; 10 | 11 | import com.telephone.coursetable.R; 12 | 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | 16 | public class MediaService extends Service { 17 | private MediaPlayer mPlayer; 18 | 19 | public class MusicController extends Binder { 20 | public void play() { 21 | mPlayer.start(); 22 | } 23 | public void pause() { 24 | mPlayer.pause(); 25 | } 26 | 27 | public long getMusicDuration() { 28 | return mPlayer.getDuration();//获取文件的总长度 29 | } 30 | public long getPosition() { 31 | return mPlayer.getCurrentPosition();//获取当前播放进度 32 | } 33 | public void setPosition (int position) { 34 | mPlayer.seekTo(position);//重新设定播放进度 35 | } 36 | public boolean isruning(){ 37 | return mPlayer.isPlaying(); 38 | } 39 | 40 | } 41 | 42 | @Override 43 | public void onDestroy() {//停止音乐,断开连接 44 | if (mPlayer.isPlaying()) { 45 | mPlayer.stop(); 46 | } 47 | mPlayer.release(); 48 | mPlayer = null; 49 | super.onDestroy(); 50 | } 51 | 52 | @Override 53 | public boolean onUnbind(Intent intent) { 54 | return super.onUnbind(intent); 55 | } 56 | 57 | @Override 58 | public void onCreate() { 59 | super.onCreate(); 60 | mPlayer = MediaPlayer.create(this, R.raw.the_faintest_sign); 61 | mPlayer.setLooping(true); 62 | }//创建音乐 63 | 64 | @Nullable 65 | @Override 66 | public IBinder onBind(Intent intent) { 67 | return new MusicController(); 68 | }//绑定时返回音乐实列 69 | 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Webinfo/Webinfoview.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Webinfo; 2 | 3 | public class Webinfoview { 4 | private String title; 5 | private int icon; 6 | 7 | public Webinfoview (String title,int icon){ 8 | this.title = title; 9 | this.icon = icon; 10 | } 11 | public String getTitle(){ 12 | return title; 13 | } 14 | public int getIcon(){ 15 | return icon; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/telephone/coursetable/Webinfo/guetphonenumsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable.Webinfo; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.ArrayAdapter; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import androidx.annotation.NonNull; 12 | import androidx.annotation.Nullable; 13 | 14 | import com.telephone.coursetable.R; 15 | 16 | import java.util.List; 17 | 18 | public class guetphonenumsAdapter extends ArrayAdapter { 19 | private int resourceId; 20 | 21 | public guetphonenumsAdapter(@NonNull Context context, int textViewResourceId, @NonNull List objects) { 22 | super(context, textViewResourceId, objects); 23 | resourceId=textViewResourceId; 24 | } 25 | 26 | @NonNull 27 | @Override 28 | public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 29 | Webinfoview webinfoview = getItem(position); 30 | View view; 31 | ViewHolder viewHolder; 32 | if(convertView == null){ 33 | view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false); 34 | viewHolder = new ViewHolder(); 35 | viewHolder.imageview=(ImageView) view.findViewById(R.id.imageView); 36 | viewHolder.webttitle=(TextView) view.findViewById(R.id.title); 37 | view.setTag(viewHolder); 38 | }else 39 | { 40 | view = convertView; 41 | viewHolder=(ViewHolder)view.getTag(); 42 | 43 | } 44 | viewHolder.imageview.setImageResource(webinfoview.getIcon()); 45 | viewHolder.webttitle.setText(webinfoview.getTitle()); 46 | return view; 47 | } 48 | 49 | class ViewHolder { 50 | ImageView imageview; 51 | TextView webttitle; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/guet_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/guet_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/guet_logo_white.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/guet_logo_white.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/guet_text.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/guet_text.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/guet_text_trans.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/guet_text_trans.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/network.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/network.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/network_vpn.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/network_vpn.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/vacation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/vacation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_10.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_10.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_11.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_11.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_12.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_12.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_13.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_13.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_14.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_14.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_15.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_15.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_16.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_16.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_17.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_17.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_18.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_18.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_19.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_19.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_2.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_20.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_20.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_21.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_21.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_22.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_22.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_23.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_23.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_25.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_25.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_26.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_26.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_27.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_27.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_28.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_28.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_29.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_29.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_3.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_30.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_30.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_4.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_5.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_6.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_6.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_7.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_8.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_8.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/week_9.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable-v24/week_9.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/about.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/about.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/appwidget_list_item_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/appwidget_list_item_today.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/appwidget_list_item_tomorrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/appwidget_title_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/calendar_2020_2021.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/calendar_2020_2021.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/cet.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/cet.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/change_term.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/change_term.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/chat_group.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/chat_group.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/comment_and_edit_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/delete_course_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/edit_exam_button_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/exam.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/exam.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/eye_close.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/eye_close.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/eye_open.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/eye_open.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/feather_pen.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/feather_pen.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/feather_pen_small_not_trans.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/feather_pen_small_not_trans.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/feather_pen_trans.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/feather_pen_trans.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/forget_btn_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/function_menu_group_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/function_menu_group_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/function_menu_group_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/function_menu_item_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/github.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/github.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/grade_points.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/grade_points.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/grade_points_item_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/grades.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/grades.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_calendar.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/guet_calendar.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_jjl_map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/guet_jjl_map.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_map.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/guet_map.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_music_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/guet_music_icon.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_tool.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/guet_tool.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/guet_tools_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/library.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/library.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/library_query_btn_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/link.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/link.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_btn_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_text_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_tip_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/main_current_node_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/map_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/map_icon.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/musicstart.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/musicstart.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/musicstop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/musicstop.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/nextlessonnotify.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/nextlessonnotify.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/no_course.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/no_course.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/page0.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/page0.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/page1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/page1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/page2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/page2.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/page3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/page3.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/page4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/page4.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/personal_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/personal_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/phone_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/phone_icon.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/plan_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/plan_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/privacy_dialog_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/qq.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qq.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/qqcode_bbq.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qqcode_bbq.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/qqcode_guet_coursetable.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qqcode_guet_coursetable.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/qqcode_second_hand_trading_group.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qqcode_second_hand_trading_group.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/qrcode_guet.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qrcode_guet.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/qrcode_guet_campus.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qrcode_guet_campus.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/qrcode_guet_cwc.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qrcode_guet_cwc.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/qrcode_guet_lib.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/qrcode_guet_lib.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/refresh.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/refresh.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/schoolicontest.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/schoolicontest.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/sofa.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/sofa.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/start_page_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/start_page_2.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/teachers_evaluation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/teachers_evaluation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/update.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/update.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userguide_hasclass.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userguide_hasclass.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userguide_keepalive.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userguide_keepalive.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userguide_noclass.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userguide_noclass.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userguide_xiaobujian.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userguide_xiaobujian.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userpage_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userpage_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/userpage_wakeapp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/userpage_wakeapp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/webinfo_phone.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/drawable/webinfo_phone.webp -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_comments.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 17 | 18 | 19 | 20 | 32 | 33 | 39 | 40 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_grade_points_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 18 | 19 | 30 | 31 | 42 | 43 | 44 | 45 | 51 | 52 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_grade_points_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 22 | 23 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_usage.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_web_links.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 24 | 25 | 31 | 32 | 38 | 39 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/appwidget_layout_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 20 | 21 | 33 | 34 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/res/layout/appwidget_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 18 | 19 | 20 | 31 | 32 | 33 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/course_card_view_pager.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/double_verification.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 14 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_cet.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 12 | 20 | 26 | 32 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_change_terms.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_grade_points.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_graduation_score.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 26 | 27 | 35 | 36 | 44 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_guet_tools.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_library.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_person_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 22 | 23 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_teachers_evaluation.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/function_menu_item_update.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/guet_tools_example.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/privacy_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 13 | 20 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/web_links_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/webinfo_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 20 | 21 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/menu/aboutus.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/menu/add_comment.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/changehour.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/changeterms.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/function_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/function_menu_debug.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/graduation_degree.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/login.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/login_vpn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_edit_course.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/teacher_evaluation_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/textbook_evaluation_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/menu/web_links.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_less.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_less_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_lesss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_lesss_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_lessss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_lessss_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/toolbar_guet_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_less.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_less_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_less_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_less_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_less_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lesss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lesss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lesss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lesss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lesss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lesss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lessss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lessss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lessss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lessss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_lessss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_lessss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/toolbar_guet_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-hdpi/toolbar_guet_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_less.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_less_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_less_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_less_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_less_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lesss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lesss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lesss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lesss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lesss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lesss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lessss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lessss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lessss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lessss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_lessss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_lessss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/toolbar_guet_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-mdpi/toolbar_guet_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_less.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_less_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_less_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_less_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_less_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lesss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_lessss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/toolbar_guet_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xhdpi/toolbar_guet_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_less.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_less_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_less_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_less_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_less_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lesss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_lessss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/toolbar_guet_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxhdpi/toolbar_guet_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_less_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lesss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_lessss_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/toolbar_guet_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/mipmap-xxxhdpi/toolbar_guet_round.png -------------------------------------------------------------------------------- /app/src/main/res/raw/the_faintest_sign.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/app/src/main/res/raw/the_faintest_sign.mp3 -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #0CABF3 4 | #0CABF3 5 | #46494A 6 | 7 | #0CABF3 8 | #0CABF3 9 | 10 | @color/colorPrimary 11 | 12 | #505050 13 | #FFFFFF 14 | #FFFFFF 15 | #858171 16 | #393422 17 | #FFFFFF 18 | #FFFFFF 19 | #FFFFFF 20 | 21 | #FFECB4 22 | #A0CFD5 23 | 24 | #82C2D1 25 | #7BBBFF 26 | #FFB2CD 27 | #FFC999 28 | #B8D8BB 29 | 30 | #ECECEC 31 | #000000 32 | #493E21 33 | #18302D 34 | #10B5FF 35 | #EDEDED 36 | 37 | #78D4FF 38 | #F4E5B2 39 | 40 | #F44336 41 | #F44336 42 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 180dp 3 | 16dp 4 | 32dp 5 | 8dp 6 | 45dp 7 | 16dp 8 | 8dp 9 | 8dp 10 | 4dp 11 | 40dp 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/ints.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 4 | 17 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 14 | 15 | 20 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/values/toolbar_guet_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/toolbar_guet_less_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/toolbar_guet_lesss_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/toolbar_guet_lessss_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/values.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/xml/appwidget_info_list.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/xml/dragseekbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/xml/filepaths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/test/java/com/telephone/coursetable/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.telephone.coursetable; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} 5 | maven{ url 'http://maven.aliyun.com/nexus/content/repositories/google/'} 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:4.1.0' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} 18 | maven{ url 'http://maven.aliyun.com/nexus/content/repositories/google/'} 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | android.overridePathCheck=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelephoneTan/CourseTable/b2309175ae8e1f559623bc04abbe97517cda720d/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Nov 03 12:06:04 CST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name = "CourseTable" --------------------------------------------------------------------------------