├── .gitignore ├── .idea ├── codeStyles │ └── Project.xml ├── compiler.xml ├── encodings.xml ├── gradle.xml ├── jarRepositories.xml ├── misc.xml ├── runConfigurations.xml └── vcs.xml ├── app ├── .gitignore ├── build.gradle ├── debug │ ├── app-debug.apk │ └── output-metadata.json ├── google-services (5).json ├── google-services.json ├── proguard-rules.pro ├── release │ ├── app-release.apk │ └── output-metadata.json └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── attendo │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── ic_launcher-playstore.png │ ├── ic_launcher-web.png │ ├── java │ │ └── com │ │ │ └── attendo │ │ │ ├── NewFeatureReleaseFragment.java │ │ │ ├── Schedule │ │ │ ├── Adapters │ │ │ │ ├── BatchmatesListAdapter.java │ │ │ │ ├── NoticeAdapter.java │ │ │ │ ├── NoticeAdapterStudent.java │ │ │ │ ├── RoutineItemAdapter.java │ │ │ │ ├── RoutineItemAdapterCr.java │ │ │ │ └── WeekDayAdapter.java │ │ │ ├── AddNoticeFragment.java │ │ │ ├── AddSubjectDetailsFragment.java │ │ │ ├── BatchmatesDetailsFragment.java │ │ │ ├── CRDetailsInputFragment.java │ │ │ ├── CRSettingsFragment.java │ │ │ ├── CrFragment.java │ │ │ ├── CreateAndJoinClassBottomSheetDialogFragment.java │ │ │ ├── DeleteFragment.java │ │ │ ├── Delete_notice_fragment.java │ │ │ ├── Edit_notice_fragment.java │ │ │ ├── Edit_schedule_fragment.java │ │ │ ├── Interface │ │ │ │ └── UpdateRecyclerView.java │ │ │ ├── MultipleRecyclerViewFragment.java │ │ │ ├── NoticeBodyBottomSheetFragment.java │ │ │ ├── NoticeFragment.java │ │ │ ├── NoticeFragmentStudent.java │ │ │ ├── Preference │ │ │ │ ├── AppPreferences.java │ │ │ │ └── SharedPreferencesHelper.java │ │ │ ├── StudentDetailsInputFragment.java │ │ │ ├── StudentFragment.java │ │ │ └── StudetntSettingsFragment.java │ │ │ ├── data │ │ │ ├── DateConverter.java │ │ │ ├── api │ │ │ │ ├── ApiHelper.java │ │ │ │ └── ApiService.java │ │ │ ├── calendar │ │ │ │ ├── CalendarDao.java │ │ │ │ └── CalendarEntity.java │ │ │ ├── database │ │ │ │ ├── RemDatabase.java │ │ │ │ └── SubDatabase.java │ │ │ ├── model │ │ │ │ ├── reminder │ │ │ │ │ ├── Reminder.java │ │ │ │ │ ├── ReminderModel.java │ │ │ │ │ └── Response.java │ │ │ │ └── schedule │ │ │ │ │ ├── Class.java │ │ │ │ │ ├── Classes.java │ │ │ │ │ ├── CreateClass.java │ │ │ │ │ ├── DayOfWeek.java │ │ │ │ │ ├── FcmToken.java │ │ │ │ │ ├── GetSchedule.java │ │ │ │ │ ├── GetStudentListResponse.java │ │ │ │ │ ├── JoinClass.java │ │ │ │ │ ├── Notice.java │ │ │ │ │ ├── NoticeDetails.java │ │ │ │ │ ├── ResDeleteNotice.java │ │ │ │ │ ├── ResLeaveClass.java │ │ │ │ │ ├── ResponseCreateClass.java │ │ │ │ │ ├── ResponseDeleteSchedule.java │ │ │ │ │ ├── ResponseFcm.java │ │ │ │ │ ├── ResponseGetNotice.java │ │ │ │ │ ├── ResponseGetSchedule.java │ │ │ │ │ ├── ResponseJoinClass.java │ │ │ │ │ ├── ResponseNotice.java │ │ │ │ │ ├── ResponseSchedule.java │ │ │ │ │ ├── ResponseUser.java │ │ │ │ │ ├── Schedule.java │ │ │ │ │ ├── ScheduleDelete.java │ │ │ │ │ ├── ScheduleEdit.java │ │ │ │ │ ├── Student.java │ │ │ │ │ ├── SubjectDetails.java │ │ │ │ │ ├── SubjectRoutine.java │ │ │ │ │ ├── UserDetails.java │ │ │ │ │ └── schedule_list.java │ │ │ ├── rem │ │ │ │ ├── RemDao.java │ │ │ │ └── RemEntity.java │ │ │ └── sub │ │ │ │ ├── SubDao.java │ │ │ │ └── SubEntity.java │ │ │ ├── fcm │ │ │ ├── MyFirebaseMessagingService.java │ │ │ ├── ReminderBroadcastReceiver.java │ │ │ └── ScheduledWorker.java │ │ │ ├── retrofit │ │ │ └── RetrofitProvider.java │ │ │ ├── ui │ │ │ ├── CustomLoadingDialog.java │ │ │ ├── auth │ │ │ │ ├── AuthenticationActivity.java │ │ │ │ ├── FragmentForgetPassword.java │ │ │ │ ├── login │ │ │ │ │ ├── FragmentLogin.java │ │ │ │ │ ├── loginPresenter.java │ │ │ │ │ ├── logininterface.java │ │ │ │ │ └── loginmodel.java │ │ │ │ └── signup │ │ │ │ │ ├── FragmentSignup.java │ │ │ │ │ ├── SignupInterface.java │ │ │ │ │ ├── SignupModel.java │ │ │ │ │ └── SignupPresenter.java │ │ │ ├── calendar │ │ │ │ ├── CalAdapter.java │ │ │ │ └── FragmentCalender.java │ │ │ ├── main │ │ │ │ ├── BottomNavMainActivity.java │ │ │ │ ├── drawers │ │ │ │ │ ├── FragmentAppRate.java │ │ │ │ │ ├── FragmentBug.java │ │ │ │ │ ├── FragmentEditAttendance.java │ │ │ │ │ ├── FragmentEditAttendanceCriteria.java │ │ │ │ │ ├── FragmentFAQ.java │ │ │ │ │ ├── FragmentInfo.java │ │ │ │ │ ├── account │ │ │ │ │ │ ├── FragmentAccountAndSettings.java │ │ │ │ │ │ ├── FragmentProfile.java │ │ │ │ │ │ ├── FragmentUserProfile.java │ │ │ │ │ │ └── ProfileData.java │ │ │ │ │ └── reminder │ │ │ │ │ │ ├── FragmentReminder.java │ │ │ │ │ │ ├── RemRepository.java │ │ │ │ │ │ └── ReminderAdapter.java │ │ │ │ └── menu │ │ │ │ │ └── FragmentAbout.java │ │ │ ├── splash │ │ │ │ └── SplashFragment.java │ │ │ └── sub │ │ │ │ ├── AddSubjectBottomSheetDialogFragment.java │ │ │ │ ├── Fragment_Subject.java │ │ │ │ └── SubListAdapter.java │ │ │ └── viewmodel │ │ │ ├── CalViewModel.java │ │ │ ├── FirebaseScheduleViewModel.java │ │ │ ├── NoticeViewModel.java │ │ │ ├── ReminderViewModel.java │ │ │ ├── ScheduleViewModel.java │ │ │ └── SubjectViewModel.java │ └── res │ │ ├── anim │ │ ├── bounce.xml │ │ ├── calendar_bottom_sheet_peek.xml │ │ ├── enter_from_right.xml │ │ ├── exit_to_right.xml │ │ ├── fade_card.xml │ │ ├── fade_card_reverse.xml │ │ ├── from_bottom_anim.xml │ │ ├── item_animation_layout.xml │ │ ├── recycler_view_layout_anim.xml │ │ ├── rotate_close_anim.xml │ │ ├── rotate_open_anim.xml │ │ ├── scale_fab.xml │ │ └── to_bottom_anim.xml │ │ ├── animator │ │ ├── button_pressed_animator.xml │ │ └── card_pressed_animator.xml │ │ ├── color │ │ ├── chip_background_color.xml │ │ └── chip_text_color.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── account_icon_custom_dynamic.xml │ │ ├── aman.jpg │ │ ├── animated_vector_clock.xml │ │ ├── app_icon_middle_portion_removed.png │ │ ├── asld_clock_state_selector.xml │ │ ├── att.xml │ │ ├── attctr.xml │ │ ├── avd_book_organize_animation.xml │ │ ├── avd_calendar_animated.xml │ │ ├── avd_routine_animated.xml │ │ ├── avd_settings_animated.xml │ │ ├── background_info.jpg │ │ ├── book_icon_custom_dynamic.xml │ │ ├── book_state_selector.xml │ │ ├── bottom_sheet_background.xml │ │ ├── bug.xml │ │ ├── calendar_state_selector.xml │ │ ├── date_icon_custom_dynamic.xml │ │ ├── dsc_logo.png │ │ ├── email_icon.png │ │ ├── email_icon_custom_dynamic.xml │ │ ├── erem.xml │ │ ├── fabi_icon_add_drawable.xml │ │ ├── facebook.png │ │ ├── feedback_background.xml │ │ ├── gaurav.jpeg │ │ ├── gaurav_new_profile.jpeg │ │ ├── github.png │ │ ├── google.png │ │ ├── google_vector.xml │ │ ├── help.xml │ │ ├── home_icon_custom_dynamic.xml │ │ ├── ic_alarm_white.xml │ │ ├── ic_baseline_access_alarm_24.xml │ │ ├── ic_baseline_access_time_24.xml │ │ ├── ic_baseline_access_time_focused.xml │ │ ├── ic_baseline_account_circle_24.xml │ │ ├── ic_baseline_account_circle_focused.xml │ │ ├── ic_baseline_book_bottom_nav.xml │ │ ├── ic_baseline_book_bottom_nav_focused.xml │ │ ├── ic_baseline_calendar_today_bottom_nav.xml │ │ ├── ic_baseline_date_range_24.xml │ │ ├── ic_baseline_date_range_focused.xml │ │ ├── ic_baseline_delete_24.xml │ │ ├── ic_baseline_done_24.xml │ │ ├── ic_baseline_edit_24.xml │ │ ├── ic_baseline_edit_notifications_24.xml │ │ ├── ic_baseline_home_24.xml │ │ ├── ic_baseline_home_focused.xml │ │ ├── ic_baseline_import_export_24.xml │ │ ├── ic_baseline_keyboard_arrow_up_24.xml │ │ ├── ic_baseline_logout.xml │ │ ├── ic_baseline_phone_android_24.xml │ │ ├── ic_baseline_phone_android_focused.xml │ │ ├── ic_baseline_profile_image_24.xml │ │ ├── ic_baseline_school_24.xml │ │ ├── ic_baseline_school_focused.xml │ │ ├── ic_books_organize.xml │ │ ├── ic_calendar_today.xml │ │ ├── ic_check_black_24dp.xml │ │ ├── ic_close_24.xml │ │ ├── ic_close_black_24dp.xml │ │ ├── ic_email_black_24dp.xml │ │ ├── ic_email_black_24dp_focused.xml │ │ ├── ic_format_color_reset_black_24dp.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_lock_black_24dp.xml │ │ ├── ic_lock_black_24dp_focused.xml │ │ ├── ic_menu_camera.xml │ │ ├── ic_menu_gallery.xml │ │ ├── ic_menu_manage.xml │ │ ├── ic_navigate_next.xml │ │ ├── ic_notifications.xml │ │ ├── ic_people.xml │ │ ├── ic_person_black_24dp.xml │ │ ├── ic_routine.xml │ │ ├── ic_settings.xml │ │ ├── ic_settings_24px.xml │ │ ├── ic_settings_black.xml │ │ ├── instagram.png │ │ ├── jyotimoy.jpg │ │ ├── linkedin.png │ │ ├── list_card_small.xml │ │ ├── lock_icon_custom_dynamic.xml │ │ ├── log_in.xml │ │ ├── low_res_app_icon.png │ │ ├── mentor.jpg │ │ ├── mentor2.jpg │ │ ├── name.png │ │ ├── phone_android_custom_dynamic.xml │ │ ├── raj.jpg │ │ ├── rate.xml │ │ ├── rishiraj_dada_new.jpg │ │ ├── rounded_rectangle.xml │ │ ├── routine_state_selector.xml │ │ ├── school_icon_custom_dynamic.xml │ │ ├── selected_item.xml │ │ ├── semicircle.xml │ │ ├── sepatator.png │ │ ├── settings_state_selector.xml │ │ ├── shristi.jpeg │ │ ├── shristi_new.jpeg │ │ ├── theme_icon.xml │ │ ├── time_icon_custom_dynamic.xml │ │ ├── transparent_app.png │ │ └── vector_drawable_clock.xml │ │ ├── font │ │ ├── architects_daughter.xml │ │ ├── comfortaa.ttf │ │ ├── poppins_extralight.ttf │ │ ├── poppins_light.ttf │ │ ├── poppins_regular.ttf │ │ ├── poppins_thin.ttf │ │ ├── roboto_bold.xml │ │ └── roboto_light.xml │ │ ├── layout │ │ ├── activity_authentication.xml │ │ ├── activity_bottom_nav_main.xml │ │ ├── batchmates_list_item.xml │ │ ├── bottom_sheet_edit_attendance.xml │ │ ├── bottom_sheet_options_menu.xml │ │ ├── bottom_sheet_options_schedule.xml │ │ ├── bottom_sheet_sign_in.xml │ │ ├── bottom_sheet_subject_details_layout.xml │ │ ├── bottom_sheet_theme_select.xml │ │ ├── calendar_card_listitem.xml │ │ ├── create_join_class_bottom_sheet.xml │ │ ├── delete_bottom_sheet.xml │ │ ├── deleteschedule_bottom_sheet.xml │ │ ├── fragment__profile.xml │ │ ├── fragment__subject.xml │ │ ├── fragment_about.xml │ │ ├── fragment_account_and_settings.xml │ │ ├── fragment_add_notice.xml │ │ ├── fragment_add_subject_bottom_sheet_dialog.xml │ │ ├── fragment_add_subject_details.xml │ │ ├── fragment_app_rate.xml │ │ ├── fragment_batchmates_details.xml │ │ ├── fragment_bottom_sheet.xml │ │ ├── fragment_bottom_sheet_add_subject.xml │ │ ├── fragment_bug.xml │ │ ├── fragment_c_r_settings.xml │ │ ├── fragment_calender.xml │ │ ├── fragment_cr.xml │ │ ├── fragment_cr_details_input.xml │ │ ├── fragment_delete_fragment.xml │ │ ├── fragment_delete_notice.xml │ │ ├── fragment_delete_schedule.xml │ │ ├── fragment_edit_attendance.xml │ │ ├── fragment_edit_attendance_criteria.xml │ │ ├── fragment_edit_schedule_fragment.xml │ │ ├── fragment_exam_reminder.xml │ │ ├── fragment_faq.xml │ │ ├── fragment_forgetpassword.xml │ │ ├── fragment_home.xml │ │ ├── fragment_info.xml │ │ ├── fragment_login.xml │ │ ├── fragment_multiple_recycler_view.xml │ │ ├── fragment_new_feature_release.xml │ │ ├── fragment_notice.xml │ │ ├── fragment_notice_body_bottom_sheet.xml │ │ ├── fragment_notice_student.xml │ │ ├── fragment_signup.xml │ │ ├── fragment_splash.xml │ │ ├── fragment_student.xml │ │ ├── fragment_student_details_input.xml │ │ ├── fragment_studetnt_settings.xml │ │ ├── fragment_user_profile.xml │ │ ├── loading_dialog.xml │ │ ├── nav_header_main.xml │ │ ├── notice.xml │ │ ├── notice_bottomsheet_options.xml │ │ ├── reminder_item.xml │ │ ├── schedule_item.xml │ │ ├── sub_card_new.xml │ │ ├── sub_info.xml │ │ ├── subject_card.xml │ │ ├── time_picker_spinner_bottom_sheet.xml │ │ ├── updateschedule_bottomsheet.xml │ │ └── weekday_card.xml │ │ ├── menu │ │ ├── bottom_nav_menu.xml │ │ └── new_activity_app_bar_menu.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── raw │ │ ├── account_anim.json │ │ ├── account_loading.json │ │ ├── cardviewanimation.json │ │ ├── celebration.json │ │ ├── clock_lottie.json │ │ ├── delete_animation.json │ │ ├── done_animation.json │ │ ├── done_lottie_anim.json │ │ ├── email_reminder_loop.json │ │ ├── feedback_animation.json │ │ ├── forgot_passoword.json │ │ ├── happy_new_year.json │ │ ├── loading.json │ │ ├── man_filling_list.json │ │ ├── new_feature_coming.json │ │ ├── new_idea.json │ │ ├── new_year.json │ │ ├── new_year_background.json │ │ ├── no_reminder_lottie.json │ │ ├── noticeanimation.json │ │ ├── searching_lottie.json │ │ ├── study_confused.json │ │ ├── study_playful.json │ │ └── subject_new.json │ │ ├── transition │ │ ├── card_transition.xml │ │ └── change_image_transform.xml │ │ ├── values-night │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ └── values │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── font_certs.xml │ │ ├── preloaded_fonts.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ └── time_pciker_style.xml │ └── test │ └── java │ └── com │ └── attendo │ └── 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 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/debug/app-debug.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/debug/app-debug.apk -------------------------------------------------------------------------------- /app/debug/output-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "artifactType": { 4 | "type": "APK", 5 | "kind": "Directory" 6 | }, 7 | "applicationId": "com.example.attendo", 8 | "variantName": "debug", 9 | "elements": [ 10 | { 11 | "type": "SINGLE", 12 | "filters": [], 13 | "properties": [], 14 | "versionCode": 1, 15 | "versionName": "1.0", 16 | "enabled": true, 17 | "outputFile": "app-debug.apk" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /app/google-services (5).json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "697432111739", 4 | "firebase_url": "https://apps-4f4f6.firebaseio.com", 5 | "project_id": "apps-4f4f6", 6 | "storage_bucket": "apps-4f4f6.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:697432111739:android:372221ee96ec9073f580de", 12 | "android_client_info": { 13 | "package_name": "com.attendo" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "697432111739-4v7v0d4mpov083qqv7sp9vd71cmet19i.apps.googleusercontent.com", 19 | "client_type": 1, 20 | "android_info": { 21 | "package_name": "com.attendo", 22 | "certificate_hash": "0d114f9c3e6cc9bf62af2c675c8eae54ccde8a77" 23 | } 24 | }, 25 | { 26 | "client_id": "697432111739-921dctjvd4bgvtdtj5hsj5e3ahhhj832.apps.googleusercontent.com", 27 | "client_type": 3 28 | } 29 | ], 30 | "api_key": [ 31 | { 32 | "current_key": "AIzaSyBw6e24kpgwRcg4r6djXrq2S99V-FQP0FY" 33 | } 34 | ], 35 | "services": { 36 | "appinvite_service": { 37 | "other_platform_oauth_client": [ 38 | { 39 | "client_id": "697432111739-921dctjvd4bgvtdtj5hsj5e3ahhhj832.apps.googleusercontent.com", 40 | "client_type": 3 41 | } 42 | ] 43 | } 44 | } 45 | } 46 | ], 47 | "configuration_version": "1" 48 | } -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "697432111739", 4 | "firebase_url": "https://apps-4f4f6.firebaseio.com", 5 | "project_id": "apps-4f4f6", 6 | "storage_bucket": "apps-4f4f6.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:697432111739:android:372221ee96ec9073f580de", 12 | "android_client_info": { 13 | "package_name": "com.attendo" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "697432111739-4v7v0d4mpov083qqv7sp9vd71cmet19i.apps.googleusercontent.com", 19 | "client_type": 1, 20 | "android_info": { 21 | "package_name": "com.attendo", 22 | "certificate_hash": "0d114f9c3e6cc9bf62af2c675c8eae54ccde8a77" 23 | } 24 | }, 25 | { 26 | "client_id": "697432111739-921dctjvd4bgvtdtj5hsj5e3ahhhj832.apps.googleusercontent.com", 27 | "client_type": 3 28 | } 29 | ], 30 | "api_key": [ 31 | { 32 | "current_key": "AIzaSyBw6e24kpgwRcg4r6djXrq2S99V-FQP0FY" 33 | } 34 | ], 35 | "services": { 36 | "appinvite_service": { 37 | "other_platform_oauth_client": [ 38 | { 39 | "client_id": "697432111739-921dctjvd4bgvtdtj5hsj5e3ahhhj832.apps.googleusercontent.com", 40 | "client_type": 3 41 | } 42 | ] 43 | } 44 | } 45 | } 46 | ], 47 | "configuration_version": "1" 48 | } -------------------------------------------------------------------------------- /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 22 | -------------------------------------------------------------------------------- /app/release/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/release/app-release.apk -------------------------------------------------------------------------------- /app/release/output-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "artifactType": { 4 | "type": "APK", 5 | "kind": "Directory" 6 | }, 7 | "applicationId": "com.attendo", 8 | "variantName": "processReleaseResources", 9 | "elements": [ 10 | { 11 | "type": "SINGLE", 12 | "filters": [], 13 | "versionCode": 6, 14 | "versionName": "2.0", 15 | "outputFile": "app-release.apk" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /app/src/androidTest/java/com/attendo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.attendo; 2 | 3 | import android.content.Context; 4 | import androidx.test.platform.app.InstrumentationRegistry; 5 | import androidx.test.ext.junit.runners.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.attendo", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/NewFeatureReleaseFragment.java: -------------------------------------------------------------------------------- 1 | package com.attendo; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.fragment.app.Fragment; 7 | 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import com.google.android.material.bottomnavigation.BottomNavigationView; 13 | import com.google.android.material.transition.MaterialSharedAxis; 14 | 15 | public class NewFeatureReleaseFragment extends Fragment 16 | { 17 | @Override 18 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 19 | Bundle savedInstanceState) { 20 | // Inflate the layout for this fragment 21 | View view = inflater.inflate(R.layout.fragment_new_feature_release, container, false); 22 | ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("What's New"); 23 | BottomNavigationView bottomNavigationView = getActivity().findViewById(R.id.bottom_nav_bar); 24 | bottomNavigationView.setVisibility(View.GONE); 25 | setEnterTransition(new MaterialSharedAxis(MaterialSharedAxis.Z, true)); 26 | setExitTransition(new MaterialSharedAxis(MaterialSharedAxis.Z, false)); 27 | 28 | return view; 29 | } 30 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/Adapters/BatchmatesListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule.Adapters; 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.TextView; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.cardview.widget.CardView; 11 | import androidx.recyclerview.widget.RecyclerView; 12 | 13 | import com.attendo.R; 14 | import com.attendo.data.model.schedule.Student; 15 | import com.google.android.material.card.MaterialCardView; 16 | 17 | import java.util.List; 18 | 19 | public class BatchmatesListAdapter extends RecyclerView.Adapter { 20 | 21 | 22 | 23 | Context context; 24 | List studentList; 25 | 26 | public BatchmatesListAdapter(Context context, List studentList) { 27 | this.context = context; 28 | this.studentList = studentList; 29 | } 30 | 31 | 32 | 33 | @NonNull 34 | @Override 35 | public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 36 | return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.batchmates_list_item, parent, false)); 37 | } 38 | 39 | @Override 40 | public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { 41 | Student student = studentList.get(position); 42 | holder.nameOfStudent.setText(student.getName()); 43 | if(student.getScholarId() == null || student.getScholarId() == ""){ 44 | holder.scholarId.setText("XXXXXX"); 45 | }else{ 46 | holder.scholarId.setText(student.getScholarId()); 47 | } 48 | if(!student.getCr()){ 49 | holder.crStatus.setVisibility(View.INVISIBLE); 50 | }else{ 51 | holder.crStatus.setVisibility(View.VISIBLE); 52 | } 53 | 54 | 55 | } 56 | 57 | @Override 58 | public int getItemCount() { 59 | return studentList.size(); 60 | } 61 | 62 | public class MyViewHolder extends RecyclerView.ViewHolder { 63 | 64 | MaterialCardView crStatus; 65 | TextView nameOfStudent, scholarId; 66 | 67 | 68 | 69 | public MyViewHolder(@NonNull View itemView) { 70 | super(itemView); 71 | 72 | crStatus = itemView.findViewById(R.id.cr_status); 73 | nameOfStudent = itemView.findViewById(R.id.name_of_student); 74 | scholarId = itemView.findViewById(R.id.scholar_id); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/Adapters/NoticeAdapterStudent.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule.Adapters; 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.TextView; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.cardview.widget.CardView; 11 | import androidx.recyclerview.widget.RecyclerView; 12 | 13 | import com.attendo.R; 14 | import com.attendo.data.model.schedule.NoticeDetails; 15 | 16 | import java.util.List; 17 | 18 | import butterknife.BindView; 19 | import butterknife.ButterKnife; 20 | 21 | public class NoticeAdapterStudent extends RecyclerView.Adapter { 22 | 23 | private List items; 24 | private Context mContext; 25 | private CallBack callBack; 26 | 27 | public NoticeAdapterStudent(Context mContext,List items,CallBack callBack) 28 | { 29 | this.items = items; 30 | this.mContext = mContext; 31 | this.callBack = callBack; 32 | } 33 | 34 | @NonNull 35 | @Override 36 | public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 37 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.notice,parent,false); 38 | MyViewHolder myViewHolder = new MyViewHolder(view); 39 | return myViewHolder; 40 | } 41 | 42 | @Override 43 | public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { 44 | NoticeDetails currentItem = items.get(position); 45 | holder.sub.setText(currentItem.getTitle()); 46 | 47 | holder.notice_card.setOnClickListener(new View.OnClickListener() { 48 | @Override 49 | public void onClick(View view) { 50 | callBack.onCardClick(position, currentItem); 51 | } 52 | }); 53 | } 54 | 55 | @Override 56 | public int getItemCount() { 57 | return items.size(); 58 | } 59 | 60 | public class MyViewHolder extends RecyclerView.ViewHolder { 61 | 62 | @BindView(R.id.Title) 63 | TextView sub; 64 | 65 | @BindView(R.id.NoticeCard) 66 | CardView notice_card; 67 | 68 | public MyViewHolder(@NonNull View itemView) { 69 | super(itemView); 70 | ButterKnife.bind(this,itemView); 71 | } 72 | } 73 | 74 | public interface CallBack{ 75 | void onCardClick(int position, NoticeDetails noticeDetails); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/Adapters/RoutineItemAdapter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule.Adapters; 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.TextView; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.recyclerview.widget.RecyclerView; 11 | 12 | import com.attendo.R; 13 | import com.attendo.Schedule.Interface.UpdateRecyclerView; 14 | import com.attendo.data.model.schedule.SubjectDetails; 15 | 16 | import java.util.List; 17 | 18 | import butterknife.BindView; 19 | import butterknife.ButterKnife; 20 | 21 | public class RoutineItemAdapter extends RecyclerView.Adapter{ 22 | 23 | private List items; 24 | private UpdateRecyclerView updateRecyclerView; 25 | private Context context; 26 | 27 | public RoutineItemAdapter(List items, Context context, UpdateRecyclerView updateRecyclerView) 28 | { 29 | this.items = items; 30 | this.context = context; 31 | this.updateRecyclerView = updateRecyclerView; 32 | 33 | 34 | } 35 | 36 | @NonNull 37 | @Override 38 | public RoutineItemAdapterHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 39 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.subject_card,parent,false); 40 | RoutineItemAdapterHolder routineItemAdapterHolder= new RoutineItemAdapterHolder(view); 41 | return routineItemAdapterHolder; 42 | } 43 | 44 | @Override 45 | public void onBindViewHolder(@NonNull RoutineItemAdapterHolder holder, int position) { 46 | SubjectDetails currentItem = items.get(position); 47 | holder.subject.setText(currentItem.getSubject()); 48 | holder.faculty.setText(currentItem.getFaculty()); 49 | holder.time.setText(currentItem.getTime()); 50 | 51 | } 52 | 53 | @Override 54 | public int getItemCount() { 55 | return items.size(); 56 | } 57 | 58 | public static class RoutineItemAdapterHolder extends RecyclerView.ViewHolder{ 59 | 60 | @BindView(R.id.subjectname) 61 | TextView subject; 62 | @BindView(R.id.instructor) 63 | TextView faculty; 64 | @BindView(R.id.time) 65 | TextView time; 66 | 67 | public RoutineItemAdapterHolder(@NonNull View itemView) { 68 | super(itemView); 69 | ButterKnife.bind(this,itemView); 70 | } 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/Interface/UpdateRecyclerView.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule.Interface; 2 | 3 | import com.attendo.data.model.schedule.SubjectDetails; 4 | 5 | import java.util.List; 6 | 7 | public interface UpdateRecyclerView { 8 | void callback(int position, List subjectRoutines); 9 | void sendPosition(int position); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/NoticeBodyBottomSheetFragment.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.fragment.app.Fragment; 6 | 7 | import android.text.method.ScrollingMovementMethod; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | import com.attendo.R; 14 | import com.google.android.material.bottomsheet.BottomSheetDialogFragment; 15 | 16 | import butterknife.BindView; 17 | import butterknife.ButterKnife; 18 | 19 | public class NoticeBodyBottomSheetFragment extends BottomSheetDialogFragment { 20 | 21 | 22 | @BindView(R.id.title_notice) 23 | TextView title; 24 | 25 | @BindView(R.id.body_notice) 26 | TextView body; 27 | 28 | 29 | private static final String TITLE = "title_notice"; 30 | private static final String BODY = "body_notice"; 31 | 32 | 33 | private String mTitle; 34 | private String mBody; 35 | 36 | public NoticeBodyBottomSheetFragment() { 37 | // Required empty public constructor 38 | } 39 | 40 | 41 | 42 | public static NoticeBodyBottomSheetFragment newInstance(String title, String body) { 43 | NoticeBodyBottomSheetFragment fragment = new NoticeBodyBottomSheetFragment(); 44 | Bundle args = new Bundle(); 45 | args.putString(TITLE, title); 46 | args.putString(BODY, body); 47 | fragment.setArguments(args); 48 | return fragment; 49 | } 50 | 51 | @Override 52 | public void onCreate(Bundle savedInstanceState) { 53 | super.onCreate(savedInstanceState); 54 | if (getArguments() != null) { 55 | mTitle = getArguments().getString(TITLE); 56 | mBody = getArguments().getString(BODY); 57 | } 58 | } 59 | 60 | @Override 61 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 62 | Bundle savedInstanceState) { 63 | // Inflate the layout for this fragment 64 | View view = inflater.inflate(R.layout.fragment_notice_body_bottom_sheet, container, false); 65 | ButterKnife.bind(this, view); 66 | 67 | title.setText(mTitle); 68 | body.setText(mBody); 69 | 70 | return view; 71 | } 72 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/Schedule/Preference/SharedPreferencesHelper.java: -------------------------------------------------------------------------------- 1 | package com.attendo.Schedule.Preference; 2 | 3 | public interface SharedPreferencesHelper { 4 | 5 | void AddClassId(String id); 6 | void AddJoinAs(String join); 7 | void AddClassScheduleId(String id); 8 | void AddScheduleId(String ScId); 9 | void AddFcm(String fcm); 10 | 11 | String RetrieveClassId(); 12 | String RetrieveClassScheduleId(); 13 | String RetrieveJoinAs(); 14 | String retrieveScheduleId(); 15 | String RetrieveFcm(); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/DateConverter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data; 2 | 3 | import androidx.room.TypeConverter; 4 | 5 | import java.util.Date; 6 | 7 | public class DateConverter 8 | { 9 | @TypeConverter 10 | public static Date fromTimestamp(Long value) { 11 | return value == null ? null : new Date(value); 12 | } 13 | 14 | @TypeConverter 15 | public static Long dateToTimestamp(Date date) { 16 | return date == null ? null : date.getTime(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/calendar/CalendarDao.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.calendar; 2 | 3 | import androidx.lifecycle.LiveData; 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 CalendarDao 13 | { 14 | @Insert(onConflict = OnConflictStrategy.REPLACE) 15 | void insertDate(CalendarEntity calendarEntity); 16 | 17 | @Query("SELECT DISTINCT subject FROM calendar WHERE date=:subDate") 18 | LiveData> getsub(String subDate); 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/calendar/CalendarEntity.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.calendar; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.ColumnInfo; 5 | import androidx.room.Entity; 6 | import androidx.room.PrimaryKey; 7 | 8 | @Entity(tableName = "calendar") 9 | public class CalendarEntity { 10 | 11 | @PrimaryKey(autoGenerate = true) 12 | @NonNull 13 | @ColumnInfo(name = "id") 14 | private int Id; 15 | 16 | @ColumnInfo(name = "date") 17 | private String date; 18 | 19 | @ColumnInfo(name = "subject") 20 | private String subject; 21 | 22 | public CalendarEntity(String date, String subject) { 23 | this.date = date; 24 | this.subject = subject; 25 | } 26 | 27 | public int getId() { 28 | return Id; 29 | } 30 | 31 | public void setId(int id) { 32 | Id = id; 33 | } 34 | 35 | public String getDate() { 36 | return date; 37 | } 38 | 39 | public void setDate(String date) { 40 | this.date = date; 41 | } 42 | 43 | public String getSubject() { 44 | return subject; 45 | } 46 | 47 | public void setSubject(String subject) { 48 | this.subject = subject; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/database/RemDatabase.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.database; 2 | 3 | import android.content.Context; 4 | import android.os.AsyncTask; 5 | 6 | import androidx.annotation.NonNull; 7 | import androidx.room.Database; 8 | import androidx.room.Room; 9 | import androidx.room.RoomDatabase; 10 | import androidx.sqlite.db.SupportSQLiteDatabase; 11 | 12 | import com.attendo.data.rem.RemDao; 13 | import com.attendo.data.rem.RemEntity; 14 | 15 | @Database(entities = RemEntity.class,version = 1) 16 | public abstract class RemDatabase extends RoomDatabase { 17 | 18 | private static RemDatabase instance; 19 | 20 | public abstract RemDao RemDao(); 21 | 22 | public static synchronized RemDatabase getInstance(Context context){ 23 | if(instance==null){ 24 | instance= Room.databaseBuilder(context.getApplicationContext(), 25 | RemDatabase.class,"reminder_databse") 26 | .fallbackToDestructiveMigration() 27 | .build(); 28 | } 29 | return instance; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/database/SubDatabase.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.database; 2 | 3 | 4 | import android.content.Context; 5 | 6 | import androidx.room.Database; 7 | import androidx.room.Room; 8 | import androidx.room.RoomDatabase; 9 | import androidx.room.TypeConverters; 10 | 11 | import com.attendo.data.calendar.CalendarDao; 12 | import com.attendo.data.calendar.CalendarEntity; 13 | import com.attendo.data.DateConverter; 14 | import com.attendo.data.sub.SubEntity; 15 | import com.attendo.data.sub.SubDao; 16 | 17 | @Database(entities = {SubEntity.class, CalendarEntity.class}, version = 4) 18 | @TypeConverters(DateConverter.class) 19 | public abstract class SubDatabase extends RoomDatabase { 20 | 21 | public static final String DATABASE_NAME = "Subject.db"; 22 | public static volatile SubDatabase instance; 23 | private static final Object object = new Object(); 24 | public abstract SubDao SubDao(); 25 | public abstract CalendarDao calendarDao(); 26 | 27 | public static SubDatabase getInstance(Context context) 28 | { 29 | if(instance==null) 30 | { 31 | synchronized (object) 32 | { 33 | if(instance==null) 34 | { 35 | instance = Room.databaseBuilder(context.getApplicationContext(),SubDatabase.class,DATABASE_NAME).fallbackToDestructiveMigration().build(); 36 | } 37 | } 38 | } 39 | return instance; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/reminder/Reminder.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.reminder; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | import java.util.Map; 6 | 7 | public class Reminder 8 | { 9 | @SerializedName("token") 10 | private String token; 11 | 12 | @SerializedName("time") 13 | private String time; 14 | 15 | @SerializedName("label") 16 | private String label; 17 | 18 | @SerializedName("_id") 19 | private String _id; 20 | 21 | 22 | public Reminder(String token, String time, String label) 23 | { 24 | this.token = token; 25 | this.time = time; 26 | this.label = label; 27 | } 28 | 29 | public String getToken() { 30 | return token; 31 | } 32 | 33 | public void setToken(String token) { 34 | this.token = token; 35 | } 36 | 37 | public String getTime() { 38 | return time; 39 | } 40 | 41 | public void setTime(String time) { 42 | this.time = time; 43 | } 44 | 45 | public String getLabel() { 46 | return label; 47 | } 48 | 49 | public void setLabel(String label) { 50 | this.label = label; 51 | } 52 | 53 | public String get_id() { 54 | return _id; 55 | } 56 | 57 | public void set_id(String _id) { 58 | this._id = _id; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/reminder/ReminderModel.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.reminder; 2 | 3 | public class ReminderModel { 4 | public String time_showing; 5 | public String label_showing; 6 | public int uuid; 7 | 8 | public ReminderModel(String time_showing, String label_showing) { 9 | this.time_showing = time_showing; 10 | this.label_showing = label_showing; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/reminder/Response.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.reminder; 2 | 3 | import com.attendo.data.model.reminder.Reminder; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class Response 7 | { 8 | @SerializedName("status") 9 | private String status; 10 | 11 | @SerializedName("reminder") 12 | private Reminder reminder; 13 | 14 | public Response(String status, Reminder reminder) 15 | { 16 | this.status = status; 17 | this.reminder = reminder; 18 | } 19 | public String getStatus() 20 | { 21 | return status; 22 | } 23 | 24 | public void setStatus(String status) { 25 | this.status = status; 26 | } 27 | 28 | public Reminder getReminder() { 29 | return reminder; 30 | } 31 | 32 | public void setReminder(Reminder reminder) { 33 | this.reminder = reminder; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/Class.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class Class { 7 | 8 | @SerializedName("_id") 9 | @Expose 10 | private String _id; //this is the class id 11 | 12 | @SerializedName("code") 13 | @Expose 14 | private String code; 15 | 16 | @SerializedName("cr") 17 | @Expose 18 | private String cr; 19 | 20 | @SerializedName("__v") 21 | @Expose 22 | private Integer v; 23 | 24 | public String get_id() { 25 | return _id; 26 | } 27 | 28 | public void set_id(String _id) { 29 | this._id = _id; 30 | } 31 | 32 | public String getCode() { 33 | return code; 34 | } 35 | 36 | public void setCode(String code) { 37 | this.code = code; 38 | } 39 | 40 | public String getCr() { 41 | return cr; 42 | } 43 | 44 | public void setCr(String cr) { 45 | this.cr = cr; 46 | } 47 | 48 | public Integer getV() { 49 | return v; 50 | } 51 | 52 | public void setV(Integer v) { 53 | this.v = v; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/Classes.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import java.util.List; 4 | 5 | public class Classes { 6 | 7 | private List monday; 8 | private List tuesday; 9 | private List wednesday; 10 | private List thursday; 11 | private List friday; 12 | private List saturday; 13 | private List sunday; 14 | 15 | public Classes(List monday, List tuesday, List wednesday, List thursday, List friday, List saturday, List sunday) { 16 | this.monday = monday; 17 | this.tuesday = tuesday; 18 | this.wednesday = wednesday; 19 | this.thursday = thursday; 20 | this.friday = friday; 21 | this.saturday = saturday; 22 | this.sunday = sunday; 23 | } 24 | 25 | public List getMonday() { 26 | return monday; 27 | } 28 | 29 | public void setMonday(List monday) { 30 | this.monday = monday; 31 | } 32 | 33 | public List getTuesday() { 34 | return tuesday; 35 | } 36 | 37 | public void setTuesday(List tuesday) { 38 | this.tuesday = tuesday; 39 | } 40 | 41 | public List getWednesday() { 42 | return wednesday; 43 | } 44 | 45 | public void setWednesday(List wednesday) { 46 | this.wednesday = wednesday; 47 | } 48 | 49 | public List getThursday() { 50 | return thursday; 51 | } 52 | 53 | public void setThursday(List thursday) { 54 | this.thursday = thursday; 55 | } 56 | 57 | public List getFriday() { 58 | return friday; 59 | } 60 | 61 | public void setFriday(List friday) { 62 | this.friday = friday; 63 | } 64 | 65 | public List getSaturday() { 66 | return saturday; 67 | } 68 | 69 | public void setSaturday(List saturday) { 70 | this.saturday = saturday; 71 | } 72 | 73 | public List getSunday() { 74 | return sunday; 75 | } 76 | 77 | public void setSunday(List sunday) { 78 | this.sunday = sunday; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/CreateClass.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class CreateClass { 4 | private String studentName; 5 | private String email; 6 | private String className; 7 | private String scholarId; 8 | private String fcmToken; 9 | 10 | public CreateClass(String studentName, String email, String className, String scholarId, String fcmToken) { 11 | this.studentName = studentName; 12 | this.email = email; 13 | this.className = className; 14 | this.scholarId = scholarId; 15 | this.fcmToken = fcmToken; 16 | } 17 | 18 | public String getStudentName() { 19 | return studentName; 20 | } 21 | 22 | public void setStudentName(String studentName) { 23 | this.studentName = studentName; 24 | } 25 | 26 | public String getEmail() { 27 | return email; 28 | } 29 | 30 | public void setEmail(String email) { 31 | this.email = email; 32 | } 33 | 34 | public String getClassName() { 35 | return className; 36 | } 37 | 38 | public void setClassName(String className) { 39 | this.className = className; 40 | } 41 | 42 | public String getScholarId() { 43 | return scholarId; 44 | } 45 | 46 | public void setScholarId(String scholarId) { 47 | this.scholarId = scholarId; 48 | } 49 | 50 | public String getFcmToken() { 51 | return fcmToken; 52 | } 53 | 54 | public void setFcmToken(String fcmToken) { 55 | this.fcmToken = fcmToken; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/DayOfWeek.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class DayOfWeek { 4 | 5 | private String dayofWeek; 6 | 7 | public DayOfWeek(String dayofWeek) { 8 | this.dayofWeek = dayofWeek; 9 | } 10 | 11 | public String getDayofWeek() { 12 | return dayofWeek; 13 | } 14 | 15 | public void setDayofWeek(String dayofWeek) { 16 | this.dayofWeek = dayofWeek; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/FcmToken.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class FcmToken { 7 | 8 | @SerializedName("email") 9 | @Expose 10 | String email; 11 | 12 | @SerializedName("fcmToken") 13 | @Expose 14 | String fcm_token; 15 | 16 | public FcmToken(String email, String fcm_token) { 17 | this.email = email; 18 | this.fcm_token = fcm_token; 19 | } 20 | 21 | public String getEmail() { 22 | return email; 23 | } 24 | 25 | public void setEmail(String email) { 26 | this.email = email; 27 | } 28 | 29 | public String getFcm_token() { 30 | return fcm_token; 31 | } 32 | 33 | public void setFcm_token(String fcm_token) { 34 | this.fcm_token = fcm_token; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/GetSchedule.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class GetSchedule { 4 | private String ClassId; 5 | private String day; 6 | 7 | public GetSchedule(String classId, String day) { 8 | ClassId = classId; 9 | this.day = day; 10 | } 11 | 12 | public String getClassId() { 13 | return ClassId; 14 | } 15 | 16 | public void setClassId(String classId) { 17 | ClassId = classId; 18 | } 19 | 20 | public String getDay() { 21 | return day; 22 | } 23 | 24 | public void setDay(String date) { 25 | this.day = day; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/GetStudentListResponse.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | import java.util.List; 7 | 8 | public class GetStudentListResponse { 9 | 10 | @SerializedName("status") 11 | @Expose 12 | private String status; 13 | 14 | @SerializedName("students") 15 | @Expose 16 | private List students; 17 | 18 | public String getStatus() { 19 | return status; 20 | } 21 | 22 | public List getStudents() { 23 | return students; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/JoinClass.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class JoinClass { 4 | 5 | private String classCode; 6 | private String name; 7 | private String email; 8 | private String scholarId; 9 | private String fcmToken; 10 | 11 | public JoinClass(String classCode, String name, String email, String scholarId, String fcmToken) { 12 | this.classCode = classCode; 13 | this.name = name; 14 | this.email = email; 15 | this.scholarId = scholarId; 16 | this.fcmToken = fcmToken; 17 | } 18 | 19 | public String getClassCode() { 20 | return classCode; 21 | } 22 | 23 | public void setClassCode(String classCode) { 24 | this.classCode = classCode; 25 | } 26 | 27 | public String getName() { 28 | return name; 29 | } 30 | 31 | public void setName(String name) { 32 | this.name = name; 33 | } 34 | 35 | public String getEmail() { 36 | return email; 37 | } 38 | 39 | public void setEmail(String email) { 40 | this.email = email; 41 | } 42 | 43 | public String getScholarId() { 44 | return scholarId; 45 | } 46 | 47 | public void setScholarId(String scholarId) { 48 | this.scholarId = scholarId; 49 | } 50 | 51 | public String getFcmToken() { 52 | return fcmToken; 53 | } 54 | 55 | public void setFcmToken(String fcmToken) { 56 | this.fcmToken = fcmToken; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/Notice.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class Notice { 7 | 8 | @SerializedName("title") 9 | @Expose 10 | String title; 11 | 12 | @SerializedName("body") 13 | @Expose 14 | String body; 15 | 16 | public Notice(String title, String body) { 17 | this.title = title; 18 | this.body = body; 19 | } 20 | 21 | public String getTitle() { 22 | return title; 23 | } 24 | 25 | public void setTitle(String title) { 26 | this.title = title; 27 | } 28 | 29 | public String getBody() { 30 | return body; 31 | } 32 | 33 | public void setBody(String body) { 34 | this.body = body; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/NoticeDetails.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class NoticeDetails { 4 | 5 | String _id; 6 | String title; 7 | String body; 8 | String class_id; 9 | String createdAt; 10 | String updatedAt; 11 | Integer _v; 12 | 13 | public NoticeDetails(String _id, String title, String body, String class_id, String createdAt, String updatedAt,Integer _v) { 14 | this._id = _id; 15 | this.title = title; 16 | this.body = body; 17 | this.class_id = class_id; 18 | this.createdAt = createdAt; 19 | this.updatedAt = updatedAt; 20 | this._v = _v; 21 | } 22 | 23 | public String get_id() { 24 | return _id; 25 | } 26 | 27 | public void set_id(String _id) { 28 | this._id = _id; 29 | } 30 | 31 | public String getTitle() { 32 | return title; 33 | } 34 | 35 | public void setTitle(String title) { 36 | this.title = title; 37 | } 38 | 39 | public String getBody() { 40 | return body; 41 | } 42 | 43 | public void setBody(String body) { 44 | this.body = body; 45 | } 46 | 47 | public String getClass_id() { 48 | return class_id; 49 | } 50 | 51 | public void setClass_id(String class_id) { 52 | this.class_id = class_id; 53 | } 54 | 55 | public String getCreatedAt() { 56 | return createdAt; 57 | } 58 | 59 | public void setCreatedAt(String createdAt) { 60 | this.createdAt = createdAt; 61 | } 62 | 63 | public String getUpdatedAt() { 64 | return updatedAt; 65 | } 66 | 67 | public void setUpdatedAt(String updatedAt) { 68 | this.updatedAt = updatedAt; 69 | } 70 | 71 | public Integer get_v() { 72 | return _v; 73 | } 74 | 75 | public void set_v(Integer _v) { 76 | this._v = _v; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResDeleteNotice.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | import java.util.List; 7 | 8 | public class ResDeleteNotice { 9 | 10 | @SerializedName("status") 11 | @Expose 12 | String status; 13 | 14 | @SerializedName("message") 15 | @Expose 16 | String message; 17 | 18 | @SerializedName("notice") 19 | @Expose 20 | List noticeDetailsList; 21 | 22 | public ResDeleteNotice(String status, String message, List noticeDetailsList) { 23 | this.status = status; 24 | this.message = message; 25 | this.noticeDetailsList = noticeDetailsList; 26 | } 27 | 28 | public String getStatus() { 29 | return status; 30 | } 31 | 32 | public void setStatus(String status) { 33 | this.status = status; 34 | } 35 | 36 | public String getMessage() { 37 | return message; 38 | } 39 | 40 | public void setMessage(String message) { 41 | this.message = message; 42 | } 43 | 44 | public List getNoticeDetailsList() { 45 | return noticeDetailsList; 46 | } 47 | 48 | public void setNoticeDetailsList(List noticeDetailsList) { 49 | this.noticeDetailsList = noticeDetailsList; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResLeaveClass.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class ResLeaveClass { 4 | 5 | String status; 6 | String message; 7 | 8 | public ResLeaveClass(String status, String message) { 9 | this.status = status; 10 | this.message = message; 11 | } 12 | 13 | public String getStatus() { 14 | return status; 15 | } 16 | 17 | public void setStatus(String status) { 18 | this.status = status; 19 | } 20 | 21 | public String getMessage() { 22 | return message; 23 | } 24 | 25 | public void setMessage(String message) { 26 | this.message = message; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseCreateClass.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.attendo.data.model.schedule.Class; 4 | import com.google.gson.annotations.Expose; 5 | import com.google.gson.annotations.SerializedName; 6 | 7 | public class ResponseCreateClass { 8 | @SerializedName("status") 9 | @Expose 10 | private String status; 11 | 12 | @SerializedName("class") 13 | @Expose 14 | private Class _class; 15 | 16 | public String getStatus() { 17 | return status; 18 | } 19 | 20 | public void setStatus(String status) { 21 | this.status = status; 22 | } 23 | 24 | public Class get_class() { 25 | return _class; 26 | } 27 | 28 | public void set_class(Class _class) { 29 | this._class = _class; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseDeleteSchedule.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class ResponseDeleteSchedule { 7 | 8 | @SerializedName("status") 9 | @Expose 10 | private String status; 11 | 12 | @SerializedName("message") 13 | @Expose 14 | private String message; 15 | 16 | @SerializedName("schedule") 17 | private schedule_list schedule; 18 | 19 | public ResponseDeleteSchedule(String status, String message, schedule_list schedule) { 20 | this.status = status; 21 | this.message = message; 22 | this.schedule = schedule; 23 | } 24 | 25 | public String getStatus() { 26 | return status; 27 | } 28 | 29 | public void setStatus(String status) { 30 | this.status = status; 31 | } 32 | 33 | public String getMessage() { 34 | return message; 35 | } 36 | 37 | public void setMessage(String message) { 38 | this.message = message; 39 | } 40 | 41 | public schedule_list getSchedule() { 42 | return schedule; 43 | } 44 | 45 | public void setSchedule(schedule_list schedule) { 46 | this.schedule = schedule; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseFcm.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class ResponseFcm { 4 | 5 | private String status; 6 | private String fcmToken; 7 | 8 | public ResponseFcm(String status, String fcm) { 9 | this.status = status; 10 | fcmToken = fcm; 11 | } 12 | 13 | public String getStatus() { 14 | return status; 15 | } 16 | 17 | public void setStatus(String status) { 18 | this.status = status; 19 | } 20 | 21 | public String getFcm() { 22 | return fcmToken; 23 | } 24 | 25 | public void setFcm(String fcm) { 26 | fcmToken = fcm; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseGetNotice.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | import java.util.List; 7 | 8 | public class ResponseGetNotice { 9 | 10 | @SerializedName("status") 11 | @Expose 12 | String status; 13 | 14 | @SerializedName("notices") 15 | @Expose 16 | List noticeDetailsList; 17 | 18 | public ResponseGetNotice(String status, List noticeDetailsList) { 19 | this.status = status; 20 | this.noticeDetailsList = noticeDetailsList; 21 | } 22 | 23 | public String getStatus() { 24 | return status; 25 | } 26 | 27 | public void setStatus(String status) { 28 | this.status = status; 29 | } 30 | 31 | public List getNoticeDetailsList() { 32 | return noticeDetailsList; 33 | } 34 | 35 | public void setNoticeDetailsList(List noticeDetailsList) { 36 | this.noticeDetailsList = noticeDetailsList; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseGetSchedule.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | import java.util.List; 7 | 8 | public class ResponseGetSchedule { 9 | 10 | @SerializedName("status") 11 | @Expose 12 | private String status; 13 | 14 | @SerializedName("requiredSchedule") 15 | @Expose 16 | private List requiredSchedule; 17 | 18 | public ResponseGetSchedule(String status, List requiredSchedule) { 19 | this.status = status; 20 | this.requiredSchedule = requiredSchedule; 21 | } 22 | 23 | public String getStatus() { 24 | return status; 25 | } 26 | 27 | public void setStatus(String status) { 28 | this.status = status; 29 | } 30 | 31 | public List getRequiredSchedule() { 32 | return requiredSchedule; 33 | } 34 | 35 | public void setRequiredSchedule(List requiredSchedule) { 36 | this.requiredSchedule = requiredSchedule; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseJoinClass.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.attendo.data.model.schedule.Class; 4 | import com.google.gson.annotations.Expose; 5 | import com.google.gson.annotations.SerializedName; 6 | 7 | public class ResponseJoinClass { 8 | 9 | @SerializedName("status") 10 | @Expose 11 | private String status; 12 | 13 | @SerializedName("class") 14 | @Expose 15 | private Class _class; 16 | 17 | @SerializedName("message") 18 | @Expose 19 | private String message; 20 | 21 | public ResponseJoinClass(String status, Class _class, String message) { 22 | this.status = status; 23 | this._class = _class; 24 | this.message = message; 25 | } 26 | 27 | public String getStatus() { 28 | return status; 29 | } 30 | 31 | public void setStatus(String status) { 32 | this.status = status; 33 | } 34 | 35 | public Class get_class() { 36 | return _class; 37 | } 38 | 39 | public void set_class(Class _class) { 40 | this._class = _class; 41 | } 42 | 43 | public String getMessage() { 44 | return message; 45 | } 46 | 47 | public void setMessage(String message) { 48 | this.message = message; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseNotice.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class ResponseNotice { 7 | @SerializedName("status") 8 | @Expose 9 | String status; 10 | 11 | @SerializedName("notice") 12 | @Expose 13 | NoticeDetails noticeDetails; 14 | 15 | public ResponseNotice(String status, NoticeDetails noticeDetails) { 16 | this.status = status; 17 | this.noticeDetails = noticeDetails; 18 | } 19 | 20 | public String getStatus() { 21 | return status; 22 | } 23 | 24 | public void setStatus(String status) { 25 | this.status = status; 26 | } 27 | 28 | public NoticeDetails getNoticeDetails() { 29 | return noticeDetails; 30 | } 31 | 32 | public void setNoticeDetails(NoticeDetails noticeDetails) { 33 | this.noticeDetails = noticeDetails; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseSchedule.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class ResponseSchedule { 7 | 8 | @SerializedName("status") 9 | @Expose 10 | private String status; 11 | 12 | @SerializedName("schedule") 13 | @Expose 14 | private schedule_list schedule; 15 | 16 | public ResponseSchedule(String status, schedule_list schedule) { 17 | this.status = status; 18 | this.schedule = schedule; 19 | } 20 | 21 | public String getStatus() { 22 | return status; 23 | } 24 | 25 | public void setStatus(String status) { 26 | this.status = status; 27 | } 28 | 29 | public schedule_list getSchedule() { 30 | return schedule; 31 | } 32 | 33 | public void setSchedule(schedule_list schedule) { 34 | this.schedule = schedule; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ResponseUser.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class ResponseUser { 7 | 8 | @SerializedName("status") 9 | @Expose 10 | private String status; 11 | 12 | @SerializedName("user") 13 | @Expose 14 | private UserDetails userDetails; 15 | 16 | public ResponseUser(String status, UserDetails userDetails) { 17 | this.status = status; 18 | this.userDetails = userDetails; 19 | } 20 | 21 | public String getStatus() { 22 | return status; 23 | } 24 | 25 | public void setStatus(String status) { 26 | this.status = status; 27 | } 28 | 29 | public UserDetails getUserDetails() { 30 | return userDetails; 31 | } 32 | 33 | public void setUserDetails(UserDetails userDetails) { 34 | this.userDetails = userDetails; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/Schedule.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class Schedule { 4 | 5 | private String classId; 6 | private String day; 7 | private String time; 8 | private String subject; 9 | private String faculty; 10 | 11 | 12 | public Schedule(String classId, String day, String time, String subject, String faculty) { 13 | this.classId = classId; 14 | this.day = day; 15 | this.time = time; 16 | this.subject = subject; 17 | this.faculty = faculty; 18 | } 19 | 20 | public String getClassId() { 21 | return classId; 22 | } 23 | 24 | public void setClassId(String classId) { 25 | this.classId = classId; 26 | } 27 | 28 | public String getDay() { 29 | return day; 30 | } 31 | 32 | public void setDay(String day) { 33 | this.day = day; 34 | } 35 | 36 | public String getTime() { 37 | return time; 38 | } 39 | 40 | public void setTime(String time) { 41 | this.time = time; 42 | } 43 | 44 | public String getSubject() { 45 | return subject; 46 | } 47 | 48 | public void setSubject(String subject) { 49 | this.subject = subject; 50 | } 51 | 52 | public String getFaculty() { 53 | return faculty; 54 | } 55 | 56 | public void setFaculty(String faculty) { 57 | this.faculty = faculty; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ScheduleDelete.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class ScheduleDelete { 7 | 8 | @SerializedName("scheduleId") 9 | @Expose 10 | private String scheduleId; 11 | 12 | @SerializedName("day") 13 | @Expose 14 | private String day; 15 | 16 | @SerializedName("scheduleClassId") 17 | @Expose 18 | private String scheduleClassId; 19 | 20 | 21 | public ScheduleDelete(String scheduleId, String day,String scheduleClassId) { 22 | this.scheduleId = scheduleId; 23 | this.day = day; 24 | this.scheduleClassId = scheduleClassId; 25 | 26 | } 27 | 28 | public String getScheduleId() { 29 | return scheduleId; 30 | } 31 | 32 | public void setScheduleId(String scheduleId) { 33 | this.scheduleId = scheduleId; 34 | } 35 | 36 | public String getScheduleClassId() { 37 | return scheduleClassId; 38 | } 39 | 40 | public void setScheduleClassId(String scheduleClassId) { 41 | this.scheduleClassId = scheduleClassId; 42 | } 43 | 44 | public String getDay() { 45 | return day; 46 | } 47 | 48 | public void setDay(String day) { 49 | this.day = day; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/ScheduleEdit.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class ScheduleEdit { 4 | 5 | private String scheduleId; 6 | private String scheduleClassId; 7 | private String day; 8 | private String time; 9 | private String subject; 10 | private String faculty; 11 | 12 | public ScheduleEdit(String scheduleId, String scheduleClassId, String day, String time, String subject, String faculty) { 13 | this.scheduleId = scheduleId; 14 | this.scheduleClassId = scheduleClassId; 15 | this.day = day; 16 | this.time = time; 17 | this.subject = subject; 18 | this.faculty = faculty; 19 | } 20 | 21 | public String getScheduleId() { 22 | return scheduleId; 23 | } 24 | 25 | public void setScheduleId(String scheduleId) { 26 | this.scheduleId = scheduleId; 27 | } 28 | 29 | public String getScheduleClassId() { 30 | return scheduleClassId; 31 | } 32 | 33 | public void setScheduleClassId(String scheduleClassId) { 34 | this.scheduleClassId = scheduleClassId; 35 | } 36 | 37 | public String getDay() { 38 | return day; 39 | } 40 | 41 | public void setDay(String day) { 42 | this.day = day; 43 | } 44 | 45 | public String getTime() { 46 | return time; 47 | } 48 | 49 | public void setTime(String time) { 50 | this.time = time; 51 | } 52 | 53 | public String getSubject() { 54 | return subject; 55 | } 56 | 57 | public void setSubject(String subject) { 58 | this.subject = subject; 59 | } 60 | 61 | public String getFaculty() { 62 | return faculty; 63 | } 64 | 65 | public void setFaculty(String faculty) { 66 | this.faculty = faculty; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/Student.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class Student { 7 | 8 | @SerializedName("isCr") 9 | @Expose 10 | private Boolean isCr; 11 | 12 | @SerializedName("_id") 13 | @Expose 14 | private String studentId; 15 | 16 | @SerializedName("name") 17 | @Expose 18 | private String name; 19 | 20 | @SerializedName("email") 21 | @Expose 22 | private String email; 23 | 24 | @SerializedName("scholarId") 25 | @Expose 26 | private String scholarId; 27 | 28 | @SerializedName("__v") 29 | @Expose 30 | private int __v; 31 | 32 | @SerializedName("class") 33 | @Expose 34 | private String classId; 35 | 36 | public Boolean getCr() { 37 | return isCr; 38 | } 39 | 40 | public String getStudentId() { 41 | return studentId; 42 | } 43 | 44 | public String getName() { 45 | return name; 46 | } 47 | 48 | public String getEmail() { 49 | return email; 50 | } 51 | 52 | public int get__v() { 53 | return __v; 54 | } 55 | 56 | public String getClassId() { 57 | return classId; 58 | } 59 | 60 | public String getScholarId(){ 61 | return scholarId; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/SubjectDetails.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class SubjectDetails { 7 | 8 | @SerializedName("_id") 9 | @Expose 10 | private String _id; 11 | 12 | @SerializedName("time") 13 | @Expose 14 | private String time; 15 | 16 | @SerializedName("subject") 17 | @Expose 18 | private String subject; 19 | 20 | @SerializedName("faculty") 21 | @Expose 22 | private String faculty; 23 | 24 | public SubjectDetails(String _id, String time, String subject, String faculty) { 25 | this._id = _id; 26 | this.time = time; 27 | this.subject = subject; 28 | this.faculty = faculty; 29 | } 30 | 31 | public String get_id() { 32 | return _id; 33 | } 34 | 35 | public void set_id(String _id) { 36 | this._id = _id; 37 | } 38 | 39 | public String getTime() { 40 | return time; 41 | } 42 | 43 | public void setTime(String time) { 44 | this.time = time; 45 | } 46 | 47 | public String getSubject() { 48 | return subject; 49 | } 50 | 51 | public void setSubject(String subject) { 52 | this.subject = subject; 53 | } 54 | 55 | public String getFaculty() { 56 | return faculty; 57 | } 58 | 59 | public void setFaculty(String faculty) { 60 | this.faculty = faculty; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/SubjectRoutine.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | public class SubjectRoutine { 4 | private String subjectName; 5 | private String time; 6 | private String instructor; 7 | 8 | public SubjectRoutine(String subjectName, String time, String instructor) { 9 | this.subjectName = subjectName; 10 | this.time = time; 11 | this.instructor = instructor; 12 | } 13 | 14 | public String getSubjectName() { 15 | return subjectName; 16 | } 17 | 18 | public void setSubjectName(String subjectName) { 19 | this.subjectName = subjectName; 20 | } 21 | 22 | public String getTime() { 23 | return time; 24 | } 25 | 26 | public void setTime(String time) { 27 | this.time = time; 28 | } 29 | 30 | public String getInstructor() { 31 | return instructor; 32 | } 33 | 34 | public void setInstructor(String instructor) { 35 | this.instructor = instructor; 36 | } 37 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/UserDetails.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.google.gson.annotations.Expose; 4 | import com.google.gson.annotations.SerializedName; 5 | 6 | public class UserDetails { 7 | @SerializedName("isCr") 8 | @Expose 9 | private Boolean isCr; 10 | 11 | @SerializedName("_id") 12 | @Expose 13 | private String studentId; 14 | 15 | @SerializedName("name") 16 | @Expose 17 | private String name; 18 | 19 | @SerializedName("email") 20 | @Expose 21 | private String email; 22 | 23 | @SerializedName("scholarId") 24 | @Expose 25 | private String scholarId; 26 | 27 | @SerializedName("fcmToken") 28 | @Expose 29 | private String fcmToken; 30 | 31 | @SerializedName("class") 32 | @Expose 33 | private String classId; 34 | 35 | public UserDetails(Boolean isCr, String studentId, String name, String email, String scholarId, String fcmToken, String classId) { 36 | this.isCr = isCr; 37 | this.studentId = studentId; 38 | this.name = name; 39 | this.email = email; 40 | this.scholarId = scholarId; 41 | this.fcmToken = fcmToken; 42 | this.classId = classId; 43 | } 44 | 45 | public Boolean getCr() { 46 | return isCr; 47 | } 48 | 49 | public void setCr(Boolean cr) { 50 | isCr = cr; 51 | } 52 | 53 | public String getStudentId() { 54 | return studentId; 55 | } 56 | 57 | public void setStudentId(String studentId) { 58 | this.studentId = studentId; 59 | } 60 | 61 | public String getName() { 62 | return name; 63 | } 64 | 65 | public void setName(String name) { 66 | this.name = name; 67 | } 68 | 69 | public String getEmail() { 70 | return email; 71 | } 72 | 73 | public void setEmail(String email) { 74 | this.email = email; 75 | } 76 | 77 | public String getScholarId() { 78 | return scholarId; 79 | } 80 | 81 | public void setScholarId(String scholarId) { 82 | this.scholarId = scholarId; 83 | } 84 | 85 | public String getFcmToken() { 86 | return fcmToken; 87 | } 88 | 89 | public void setFcmToken(String fcmToken) { 90 | this.fcmToken = fcmToken; 91 | } 92 | 93 | public String getClassId() { 94 | return classId; 95 | } 96 | 97 | public void setClassId(String classId) { 98 | this.classId = classId; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/model/schedule/schedule_list.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.model.schedule; 2 | 3 | import com.attendo.data.model.schedule.Classes; 4 | import com.google.gson.annotations.Expose; 5 | import com.google.gson.annotations.SerializedName; 6 | 7 | public class schedule_list { 8 | 9 | private Classes classes; 10 | private String _id; 11 | 12 | @SerializedName("class") 13 | @Expose 14 | private String _class; 15 | 16 | private String __v; 17 | 18 | 19 | public schedule_list(Classes classes, String _id, String _class, String __v) { 20 | this.classes = classes; 21 | this._id = _id; 22 | this._class = _class; 23 | this.__v = __v; 24 | } 25 | 26 | public Classes getClasses() { 27 | return classes; 28 | } 29 | 30 | public void setClasses(Classes classes) { 31 | this.classes = classes; 32 | } 33 | 34 | public String get_id() { 35 | return _id; 36 | } 37 | 38 | public void set_id(String _id) { 39 | this._id = _id; 40 | } 41 | 42 | public String get_class() { 43 | return _class; 44 | } 45 | 46 | public void set_class(String _class) { 47 | this._class = _class; 48 | } 49 | 50 | public String get__v() { 51 | return __v; 52 | } 53 | 54 | public void set__v(String __v) { 55 | this.__v = __v; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/rem/RemDao.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.rem; 2 | 3 | import androidx.lifecycle.LiveData; 4 | import androidx.room.Dao; 5 | import androidx.room.Delete; 6 | import androidx.room.Insert; 7 | import androidx.room.Query; 8 | import androidx.room.Update; 9 | 10 | import java.util.List; 11 | 12 | 13 | @Dao 14 | public interface RemDao { 15 | 16 | @Insert 17 | void insert(RemEntity remEntity); 18 | 19 | @Update 20 | void update(RemEntity remEntity); 21 | 22 | @Delete 23 | void delete(RemEntity remEntity); 24 | 25 | @Query("SELECT * FROM reminder_table ") 26 | LiveData> getAllReminder(); 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/rem/RemEntity.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.rem; 2 | 3 | import androidx.room.ColumnInfo; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | @Entity(tableName = "reminder_table") 8 | public class RemEntity 9 | { 10 | public RemEntity(String time, String label) { 11 | this.time = time; 12 | this.label = label; 13 | } 14 | 15 | @PrimaryKey(autoGenerate = true) 16 | private int id; 17 | 18 | @ColumnInfo(name = "time") 19 | private String time; 20 | 21 | @ColumnInfo(name = "label") 22 | private String label; 23 | 24 | public int getId() { 25 | return id; 26 | } 27 | 28 | public void setId(int id) { 29 | this.id = id; 30 | } 31 | 32 | public String getTime() { 33 | return time; 34 | } 35 | 36 | public String getLabel() { 37 | return label; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/sub/SubDao.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.sub; 2 | 3 | import androidx.lifecycle.LiveData; 4 | import androidx.room.Dao; 5 | import androidx.room.Delete; 6 | import androidx.room.Insert; 7 | import androidx.room.Query; 8 | 9 | import com.attendo.data.sub.SubEntity; 10 | 11 | import java.util.List; 12 | 13 | @Dao 14 | public interface SubDao { 15 | 16 | @Insert 17 | void insert(SubEntity SUBJECT); 18 | 19 | @Query("SELECT * FROM SubjectName") 20 | LiveData> getAllSubjects(); 21 | 22 | @Delete 23 | int delete(SubEntity SUBJECT); 24 | 25 | @Query("UPDATE SubjectName SET present = :present WHERE id = :id") 26 | void updatePresent(int present, int id); 27 | 28 | @Query("UPDATE SubjectName SET absent = :absent WHERE id = :id") 29 | void updateAbsent(int absent, int id); 30 | 31 | 32 | @Query("UPDATE SubjectName SET total= :total WHERE id = :id") 33 | void updateTotal(int total, int id); 34 | 35 | @Query("UPDATE SubjectName SET subject = :subject WHERE id = :id") 36 | void updateSubject(String subject,int id); 37 | 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/data/sub/SubEntity.java: -------------------------------------------------------------------------------- 1 | package com.attendo.data.sub; 2 | 3 | 4 | import androidx.annotation.NonNull; 5 | import androidx.room.ColumnInfo; 6 | import androidx.room.Entity; 7 | import androidx.room.PrimaryKey; 8 | 9 | @Entity(tableName = "SubjectName") 10 | public class SubEntity 11 | { 12 | @PrimaryKey(autoGenerate = true) 13 | @NonNull 14 | private int id; 15 | 16 | @NonNull 17 | @ColumnInfo(name = "subject") 18 | private String subject; 19 | 20 | @ColumnInfo(name = "present") 21 | private int present; 22 | 23 | @ColumnInfo(name="absent") 24 | private int absent; 25 | 26 | @ColumnInfo(name = "total") 27 | private int total; 28 | 29 | public SubEntity( @NonNull String subject, int present,int absent, int total) { 30 | this.subject= subject; 31 | this.present = present; 32 | this.total = total; 33 | this.absent = absent; 34 | } 35 | 36 | @NonNull 37 | public String getSubject() { 38 | return subject; 39 | } 40 | 41 | public void setSubject(String subject) { 42 | this.subject = subject; 43 | } 44 | 45 | public int getId() { 46 | return id; 47 | } 48 | 49 | public void setId(int id) { 50 | this.id = id; 51 | } 52 | 53 | public int getPresent() { 54 | return present; 55 | } 56 | 57 | public void setPresent(int present) { 58 | this.present = present; 59 | } 60 | 61 | public int getAbsent() { 62 | return absent; 63 | } 64 | 65 | public void setAbsent(int absent) { 66 | this.absent = absent; 67 | } 68 | 69 | public int getTotal() { 70 | return total; 71 | } 72 | 73 | public void setTotal(int total) { 74 | this.total = total; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/fcm/ReminderBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.attendo.fcm; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.util.Log; 7 | 8 | import androidx.annotation.Nullable; 9 | import androidx.work.Data; 10 | import androidx.work.OneTimeWorkRequest; 11 | import androidx.work.WorkManager; 12 | import androidx.work.WorkRequest; 13 | import androidx.work.Worker; 14 | 15 | public class ReminderBroadcastReceiver extends BroadcastReceiver { 16 | 17 | @Override 18 | public void onReceive(Context context, Intent intent) { 19 | String body=intent.getStringExtra("body"); 20 | 21 | Data notificationData= new Data.Builder() 22 | .putString("body",body) 23 | .build(); 24 | 25 | OneTimeWorkRequest work= new OneTimeWorkRequest.Builder(ScheduledWorker.class) 26 | .setInputData(notificationData) 27 | .build(); 28 | 29 | //start worker 30 | WorkManager.getInstance(context).beginWith(work).enqueue(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/retrofit/RetrofitProvider.java: -------------------------------------------------------------------------------- 1 | package com.attendo.retrofit; 2 | 3 | import android.content.Context; 4 | 5 | import com.google.gson.Gson; 6 | import com.google.gson.GsonBuilder; 7 | 8 | import java.util.concurrent.TimeUnit; 9 | 10 | import okhttp3.OkHttpClient; 11 | import okhttp3.Request; 12 | import retrofit2.Retrofit; 13 | import retrofit2.converter.gson.GsonConverterFactory; 14 | 15 | public class RetrofitProvider 16 | { 17 | private static Retrofit.Builder builder; 18 | private static Retrofit instance = null; 19 | private static Gson gson; 20 | 21 | public static Retrofit getInstance(Context context) 22 | { 23 | if (instance == null) { 24 | synchronized (RetrofitProvider.class) { 25 | if (instance == null) { 26 | gson = new GsonBuilder().serializeNulls().create(); 27 | OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(chain -> { 28 | 29 | Request original = chain.request(); 30 | 31 | Request request = original.newBuilder().method(original.method(), original.body()).build(); 32 | 33 | return chain.proceed(request); 34 | }).readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build(); 35 | 36 | builder = new Retrofit.Builder() 37 | .baseUrl("https://attendonits.herokuapp.com/") 38 | .client(okHttpClient) 39 | .addConverterFactory(GsonConverterFactory.create(gson)); 40 | 41 | instance = builder.build(); 42 | } 43 | } 44 | } 45 | return instance; 46 | } 47 | } 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/CustomLoadingDialog.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui; 2 | 3 | import android.app.Activity; 4 | import android.app.AlertDialog; 5 | import android.graphics.Color; 6 | import android.graphics.drawable.ColorDrawable; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.widget.TextView; 10 | 11 | import com.attendo.R; 12 | 13 | public class CustomLoadingDialog { 14 | 15 | Activity activity; 16 | AlertDialog alertDialog; 17 | 18 | public CustomLoadingDialog(Activity activity) { 19 | this.activity = activity; 20 | } 21 | 22 | public void startDialog(Boolean value) 23 | { 24 | AlertDialog.Builder builder = new AlertDialog.Builder(activity); 25 | LayoutInflater inflater = activity.getLayoutInflater(); 26 | builder.setView(inflater.inflate(R.layout.loading_dialog, null)); 27 | builder.setCancelable(value); 28 | 29 | View view = activity.getWindow().getDecorView(); 30 | view.setBackgroundResource(android.R.color.transparent); 31 | alertDialog = builder.create(); 32 | alertDialog.show(); 33 | } 34 | 35 | public void dismissDialog(){ 36 | alertDialog.dismiss(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/AuthenticationActivity.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | import androidx.fragment.app.Fragment; 5 | import androidx.fragment.app.FragmentTransaction; 6 | 7 | import android.os.Bundle; 8 | import android.view.Window; 9 | 10 | import com.attendo.R; 11 | import com.attendo.ui.auth.login.FragmentLogin; 12 | import com.attendo.ui.splash.SplashFragment; 13 | import com.google.android.material.transition.platform.MaterialFade; 14 | 15 | public class AuthenticationActivity extends AppCompatActivity 16 | { 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 22 | getWindow().setEnterTransition(new MaterialFade().setDuration(300)); 23 | getWindow().setExitTransition(new MaterialFade().setDuration(300)); 24 | setContentView(R.layout.activity_authentication); 25 | 26 | setFragment(new SplashFragment()); 27 | } 28 | 29 | private void setFragment(Fragment fragment) { 30 | FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 31 | fragmentTransaction.replace(R.id.start_frame,fragment); 32 | fragmentTransaction.commit(); 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/login/loginPresenter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.login; 2 | 3 | public class loginPresenter implements logininterface.Presenter, logininterface.Tasklistener{ 4 | 5 | private logininterface.View view; 6 | private logininterface.Model model; 7 | 8 | 9 | public loginPresenter(logininterface.View view) { 10 | this.view = view; 11 | model = new loginmodel(this); 12 | } 13 | 14 | @Override 15 | public void onDestroy() { 16 | view = null; 17 | } 18 | 19 | @Override 20 | public void toLogin(String email, String password) { 21 | if(view != null){ 22 | view.disableinput(); 23 | } 24 | model.doLogin(email,password); 25 | } 26 | 27 | @Override 28 | public void OnSuccess() { 29 | if(view!=null){ 30 | view.enableInput(); 31 | view.onLogin(); 32 | } 33 | } 34 | 35 | @Override 36 | public void OnError(String message) { 37 | if(view!=null){ 38 | view.enableInput(); 39 | view.onError(message); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/login/logininterface.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.login; 2 | 3 | public interface logininterface { 4 | 5 | interface View{ 6 | void disableinput(); 7 | void enableInput(); 8 | void handleLogin(); 9 | boolean isValidEmail(); 10 | boolean isValidPassword(); 11 | void onLogin(); 12 | void onError(String message); 13 | } 14 | 15 | interface Presenter{ 16 | void onDestroy(); 17 | void toLogin(String email,String password); 18 | } 19 | 20 | interface Model { 21 | void doLogin(String email,String password); 22 | } 23 | 24 | interface Tasklistener{ 25 | void OnSuccess(); 26 | void OnError(String message); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/login/loginmodel.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.login; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.google.android.gms.tasks.OnCompleteListener; 6 | import com.google.android.gms.tasks.Task; 7 | import com.google.firebase.auth.AuthResult; 8 | import com.google.firebase.auth.FirebaseAuth; 9 | 10 | public class loginmodel implements logininterface.Model { 11 | 12 | private logininterface.Tasklistener listener; 13 | private FirebaseAuth auth; 14 | 15 | 16 | public loginmodel(logininterface.Tasklistener listener) { 17 | this.listener = listener; 18 | auth = FirebaseAuth.getInstance(); 19 | } 20 | 21 | @Override 22 | public void doLogin(String email, String password) { 23 | auth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener() { 24 | @Override 25 | public void onComplete(@NonNull Task task) { 26 | if(task.isSuccessful()){ 27 | listener.OnSuccess(); 28 | } 29 | else{ 30 | if(task.getException()!=null){ 31 | listener.OnError(task.getException().getMessage()); 32 | } 33 | } 34 | } 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/signup/SignupInterface.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.signup; 2 | 3 | public interface SignupInterface { 4 | 5 | interface View{ 6 | void disableinput(); 7 | void enableInput(); 8 | void handleSignup(); 9 | boolean isValidEmail(); 10 | boolean isValidPassword(); 11 | boolean isValidConfPassword(); 12 | void onSignup(); 13 | void onError(String message); 14 | } 15 | interface Presenter{ 16 | void onDestroy(); 17 | void toLogin(String email,String password,String confpassword); 18 | } 19 | 20 | interface Model { 21 | void doSignup(String email,String password,String confpassword); 22 | } 23 | 24 | interface Tasklistener{ 25 | void OnSuccess(); 26 | void OnError(String message); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/signup/SignupModel.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.signup; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.google.android.gms.tasks.OnCompleteListener; 6 | import com.google.android.gms.tasks.Task; 7 | import com.google.firebase.auth.AuthResult; 8 | import com.google.firebase.auth.FirebaseAuth; 9 | 10 | public class SignupModel implements SignupInterface.Model { 11 | 12 | private SignupInterface.Tasklistener listener; 13 | private FirebaseAuth auth; 14 | 15 | public SignupModel(SignupInterface.Tasklistener listener) { 16 | this.listener = listener; 17 | auth = FirebaseAuth.getInstance(); 18 | } 19 | 20 | @Override 21 | public void doSignup(String email, String password, String institution) { 22 | auth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener() { 23 | @Override 24 | public void onComplete(@NonNull Task task) { 25 | if(task.isSuccessful()){ 26 | listener.OnSuccess(); 27 | } 28 | else{ 29 | if(task.getException()!=null){ 30 | listener.OnError(task.getException().getMessage()); 31 | } 32 | } 33 | } 34 | }); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/auth/signup/SignupPresenter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.auth.signup; 2 | 3 | public class SignupPresenter implements SignupInterface.Presenter, SignupInterface.Tasklistener { 4 | 5 | private SignupInterface.View view; 6 | private SignupInterface.Model model; 7 | 8 | public SignupPresenter(SignupInterface.View view) { 9 | this.view = view; 10 | model = new SignupModel(this); 11 | } 12 | 13 | @Override 14 | public void onDestroy() { 15 | view = null; 16 | } 17 | 18 | @Override 19 | public void toLogin(String email, String password, String institution) { 20 | if(view != null){ 21 | view.disableinput(); 22 | } 23 | model.doSignup(email,password,institution); 24 | } 25 | 26 | @Override 27 | public void OnSuccess() { 28 | if(view!=null){ 29 | view.enableInput(); 30 | view.onSignup(); 31 | } 32 | } 33 | 34 | @Override 35 | public void OnError(String message) { 36 | if(view!=null){ 37 | view.enableInput(); 38 | view.onError(message); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/calendar/CalAdapter.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.calendar; 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.TextView; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.recyclerview.widget.RecyclerView; 11 | 12 | import com.attendo.R; 13 | 14 | import java.util.List; 15 | 16 | import butterknife.BindView; 17 | import butterknife.ButterKnife; 18 | 19 | public class CalAdapter extends RecyclerView.Adapter { 20 | 21 | private Context mContext; 22 | private List mDatalist; 23 | 24 | public CalAdapter(Context mContext, List mDatalist) 25 | { 26 | this.mContext = mContext; 27 | this.mDatalist = mDatalist; 28 | } 29 | 30 | public void setData(List data) { 31 | mDatalist = data; 32 | notifyDataSetChanged(); 33 | } 34 | 35 | @NonNull 36 | @Override 37 | public CalViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) 38 | { 39 | View view = LayoutInflater.from(mContext).inflate(R.layout.calendar_card_listitem,parent,false); 40 | return new CalViewHolder(view); 41 | } 42 | 43 | @Override 44 | public void onBindViewHolder(@NonNull CalViewHolder holder, int position) { 45 | final String data = mDatalist.get(position); 46 | holder.caltextView.setText(data); 47 | } 48 | 49 | @Override 50 | public int getItemCount() { 51 | if (mDatalist != null) 52 | return mDatalist.size(); 53 | else return 0; 54 | } 55 | 56 | public class CalViewHolder extends RecyclerView.ViewHolder{ 57 | 58 | @BindView(R.id.cal_textview) 59 | TextView caltextView; 60 | 61 | public CalViewHolder(@NonNull View itemView) { 62 | super(itemView); 63 | ButterKnife.bind(this,itemView); 64 | } 65 | } 66 | 67 | } 68 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/main/drawers/FragmentEditAttendance.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.main.drawers; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.fragment.app.Fragment; 7 | 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import com.attendo.R; 13 | 14 | public class FragmentEditAttendance extends Fragment { 15 | @Override 16 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 17 | Bundle savedInstanceState) { 18 | // Inflate the layout for this fragment 19 | View view = inflater.inflate(R.layout.fragment_edit_attendance, container, false); 20 | ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Edit Attendance"); 21 | return view; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/main/drawers/FragmentFAQ.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.main.drawers; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.fragment.app.Fragment; 7 | 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.LinearLayout; 12 | 13 | import com.attendo.R; 14 | 15 | import me.everything.android.ui.overscroll.OverScrollDecoratorHelper; 16 | 17 | public class FragmentFAQ extends Fragment { 18 | private LinearLayout faq; 19 | 20 | @Override 21 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 22 | Bundle savedInstanceState) { 23 | // Inflate the layout for this fragment 24 | View view = inflater.inflate(R.layout.fragment_faq, container, false); 25 | ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("FAQ"); 26 | 27 | faq = view.findViewById(R.id.faq_liner_layout); 28 | OverScrollDecoratorHelper.setUpStaticOverScroll(faq, OverScrollDecoratorHelper.ORIENTATION_VERTICAL); 29 | return view; 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/main/drawers/FragmentInfo.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.main.drawers; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.fragment.app.Fragment; 7 | 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import com.attendo.R; 13 | 14 | /** 15 | * A simple {@link Fragment} subclass. 16 | * Use the {@link FragmentInfo#newInstance} factory method to 17 | * create an instance of this fragment. 18 | */ 19 | public class FragmentInfo extends Fragment { 20 | 21 | // TODO: Rename parameter arguments, choose names that match 22 | // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER 23 | private static final String ARG_PARAM1 = "param1"; 24 | private static final String ARG_PARAM2 = "param2"; 25 | 26 | // TODO: Rename and change types of parameters 27 | private String mParam1; 28 | private String mParam2; 29 | 30 | public FragmentInfo() { 31 | // Required empty public constructor 32 | } 33 | 34 | /** 35 | * Use this factory method to create a new instance of 36 | * this fragment using the provided parameters. 37 | * 38 | * @param param1 Parameter 1. 39 | * @param param2 Parameter 2. 40 | * @return A new instance of fragment FragmentInfo. 41 | */ 42 | // TODO: Rename and change types and number of parameters 43 | public static FragmentInfo newInstance(String param1, String param2) { 44 | FragmentInfo fragment = new FragmentInfo(); 45 | Bundle args = new Bundle(); 46 | args.putString(ARG_PARAM1, param1); 47 | args.putString(ARG_PARAM2, param2); 48 | fragment.setArguments(args); 49 | return fragment; 50 | } 51 | 52 | @Override 53 | public void onCreate(Bundle savedInstanceState) { 54 | super.onCreate(savedInstanceState); 55 | if (getArguments() != null) { 56 | mParam1 = getArguments().getString(ARG_PARAM1); 57 | mParam2 = getArguments().getString(ARG_PARAM2); 58 | } 59 | } 60 | 61 | @Override 62 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 63 | Bundle savedInstanceState) { 64 | // Inflate the layout for this fragment 65 | View view= inflater.inflate(R.layout.fragment_info, container, false); 66 | ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("About"); 67 | return view; 68 | } 69 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/main/drawers/account/ProfileData.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.main.drawers.account; 2 | 3 | public class ProfileData { 4 | String id; 5 | String username; 6 | String college; 7 | String city; 8 | String Contact; 9 | 10 | public ProfileData(String id, String username, String college, String city, String contact) { 11 | this.id = id; 12 | this.username = username; 13 | this.college = college; 14 | this.city = city; 15 | Contact = contact; 16 | } 17 | 18 | public String getId() { 19 | return id; 20 | } 21 | 22 | public String getUsername() { 23 | return username; 24 | } 25 | 26 | public String getCollege() { 27 | return college; 28 | } 29 | 30 | public String getCity() { 31 | return city; 32 | } 33 | 34 | public String getContact() { 35 | return Contact; 36 | } 37 | 38 | public void setId(String id) { 39 | this.id = id; 40 | } 41 | 42 | public void setUsername(String username) { 43 | this.username = username; 44 | } 45 | 46 | public void setCollege(String college) { 47 | this.college = college; 48 | } 49 | 50 | public void setCity(String city) { 51 | this.city = city; 52 | } 53 | 54 | public void setContact(String contact) { 55 | Contact = contact; 56 | } 57 | } -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/ui/main/drawers/reminder/RemRepository.java: -------------------------------------------------------------------------------- 1 | package com.attendo.ui.main.drawers.reminder; 2 | 3 | import android.app.Application; 4 | import android.os.AsyncTask; 5 | 6 | import androidx.lifecycle.LiveData; 7 | import androidx.room.Delete; 8 | 9 | import com.attendo.data.database.RemDatabase; 10 | import com.attendo.data.rem.RemDao; 11 | import com.attendo.data.rem.RemEntity; 12 | 13 | import java.util.List; 14 | 15 | public class RemRepository { 16 | private RemDao remDao; 17 | private LiveData> allReminders; 18 | 19 | public RemRepository(Application application){ 20 | RemDatabase remDatabase=RemDatabase.getInstance(application); 21 | remDao=remDatabase.RemDao() ; 22 | allReminders=remDao.getAllReminder(); 23 | } 24 | public void insert(RemEntity remEntity){ 25 | new InsertRemAsyncTask(remDao).execute(remEntity); 26 | 27 | } 28 | 29 | public void update(RemEntity remEntity){ 30 | new UpdateRemAsyncTask(remDao).execute(remEntity); 31 | } 32 | 33 | public void delete(RemEntity remEntity){ 34 | new DeleteRemAsyncTask(remDao).execute(remEntity); 35 | } 36 | 37 | public LiveData> getAllReminders(){ 38 | return allReminders; 39 | } 40 | 41 | private static class InsertRemAsyncTask extends AsyncTask{ 42 | private RemDao remDao; 43 | 44 | private InsertRemAsyncTask(RemDao remDao){ 45 | this.remDao=remDao; 46 | } 47 | @Override 48 | protected Void doInBackground(RemEntity... remEntities) { 49 | remDao.insert(remEntities[0]); 50 | return null; 51 | } 52 | } 53 | private static class UpdateRemAsyncTask extends AsyncTask { 54 | private RemDao remDao; 55 | 56 | private UpdateRemAsyncTask(RemDao remDao) { 57 | this.remDao = remDao; 58 | } 59 | 60 | @Override 61 | protected Void doInBackground(RemEntity... remEntities) { 62 | remDao.update(remEntities[0]); 63 | return null; 64 | } 65 | } 66 | private static class DeleteRemAsyncTask extends AsyncTask{ 67 | private RemDao remDao; 68 | 69 | private DeleteRemAsyncTask(RemDao remDao){ 70 | this.remDao=remDao; 71 | } 72 | @Override 73 | protected Void doInBackground(RemEntity... remEntities) { 74 | remDao.delete(remEntities[0]); 75 | return null; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /app/src/main/java/com/attendo/viewmodel/CalViewModel.java: -------------------------------------------------------------------------------- 1 | package com.attendo.viewmodel; 2 | 3 | import android.app.Application; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.lifecycle.AndroidViewModel; 7 | import androidx.lifecycle.LiveData; 8 | 9 | import com.attendo.data.calendar.CalendarDao; 10 | import com.attendo.data.calendar.CalendarEntity; 11 | import com.attendo.data.database.SubDatabase; 12 | 13 | import java.util.List; 14 | import java.util.concurrent.Executor; 15 | import java.util.concurrent.Executors; 16 | 17 | public class CalViewModel extends AndroidViewModel 18 | { 19 | private CalendarDao calendarDao; 20 | private SubDatabase subDB; 21 | private Executor mExecutor = Executors.newSingleThreadExecutor(); 22 | 23 | public CalViewModel(@NonNull Application application) 24 | { 25 | super(application); 26 | subDB = SubDatabase.getInstance(getApplication()); 27 | calendarDao = subDB.calendarDao(); 28 | } 29 | 30 | public LiveData> getSub(String subDate) 31 | { 32 | return calendarDao.getsub(subDate); 33 | } 34 | 35 | public void insertDate(CalendarEntity calendarEntity) 36 | { 37 | mExecutor.execute(new Runnable() { 38 | @Override 39 | public void run() { 40 | calendarDao.insertDate(calendarEntity); 41 | } 42 | }); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/res/anim/bounce.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/anim/calendar_bottom_sheet_peek.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/anim/enter_from_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/exit_to_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_card.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_card_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/anim/from_bottom_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/anim/item_animation_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | 15 | 16 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/anim/recycler_view_layout_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_close_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_open_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/scale_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/anim/to_bottom_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/animator/button_pressed_animator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 18 | 19 | 25 | 26 | 27 | 28 | 29 | 30 | 36 | 37 | 38 | 44 | 45 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/res/color/chip_background_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/chip_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/account_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/aman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/aman.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_icon_middle_portion_removed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/app_icon_middle_portion_removed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_clock_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/att.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/attctr.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/background_info.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/background_info.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/book_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/book_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bottom_sheet_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bug.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/calendar_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/date_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dsc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/dsc_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/email_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/email_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/email_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/erem.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fabi_icon_add_drawable.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/facebook.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/feedback_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gaurav.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/gaurav.jpeg -------------------------------------------------------------------------------- /app/src/main/res/drawable/gaurav_new_profile.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/gaurav_new_profile.jpeg -------------------------------------------------------------------------------- /app/src/main/res/drawable/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/github.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/google.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/google_vector.xml: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/help.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_alarm_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_access_alarm_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_access_time_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_access_time_focused.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_account_circle_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_account_circle_focused.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_book_bottom_nav.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_book_bottom_nav_focused.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_calendar_today_bottom_nav.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_date_range_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_date_range_focused.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_delete_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_done_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_edit_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_edit_notifications_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_home_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_home_focused.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_import_export_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_keyboard_arrow_up_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_logout.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_phone_android_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_phone_android_focused.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_profile_image_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_school_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_school_focused.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_books_organize.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_calendar_today.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email_black_24dp_focused.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_color_reset_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_black_24dp_focused.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_navigate_next.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notifications.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_people.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_routine.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 16 | 22 | 28 | 34 | 40 | 46 | 51 | 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_black.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/instagram.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jyotimoy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/jyotimoy.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/linkedin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_card_small.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/lock_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/log_in.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/low_res_app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/low_res_app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/mentor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/mentor.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/mentor2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/mentor2.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/phone_android_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/raj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/raj.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/rate.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rishiraj_dada_new.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/rishiraj_dada_new.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounded_rectangle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/routine_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/school_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selected_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/semicircle.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sepatator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/sepatator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/settings_state_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shristi.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/shristi.jpeg -------------------------------------------------------------------------------- /app/src/main/res/drawable/shristi_new.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/shristi_new.jpeg -------------------------------------------------------------------------------- /app/src/main/res/drawable/theme_icon.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/time_icon_custom_dynamic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/transparent_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/drawable/transparent_app.png -------------------------------------------------------------------------------- /app/src/main/res/font/architects_daughter.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/font/comfortaa.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/font/comfortaa.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/poppins_extralight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/font/poppins_extralight.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/poppins_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/font/poppins_light.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/poppins_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/font/poppins_regular.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/poppins_thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getoxdev/attendo/e568c896961bbde0300d53d51849c82202eaa064/app/src/main/res/font/poppins_thin.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_authentication.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/bottom_sheet_options_schedule.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 18 | 19 | 20 | 34 | 35 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/res/layout/calendar_card_listitem.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 29 | 30 | 37 | 38 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_c_r_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 24 | 25 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_delete_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_edit_attendance.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_multiple_recycler_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 18 |