├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── PULL_REQUEST_TEMPLATE.md
├── auto_label.yml
└── workflows
│ ├── Build.yml
│ └── stale.yml
├── .gitignore
├── .idea
├── codeStyles
│ └── codeStyleConfig.xml
├── encodings.xml
├── misc.xml
├── runConfigurations.xml
└── vcs.xml
├── .m2
└── repository
│ └── com
│ └── github
│ └── jasminb
│ └── jsonapi-converter
│ └── 0.11-SNAPSHOT
│ ├── _remote.repositories
│ ├── jsonapi-converter-0.11-SNAPSHOT.jar
│ ├── jsonapi-converter-0.11-SNAPSHOT.pom
│ └── maven-metadata-local.xml
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle
├── google-services.json
├── libs
│ └── YouTubeAndroidPlayerApi.jar
├── proguard-rules.pro
├── schemas
│ └── com.codingblocks.cbonlineapp.database.AppDatabase
│ │ ├── 21.json
│ │ ├── 22.json
│ │ ├── 23.json
│ │ ├── 24.json
│ │ ├── 25.json
│ │ ├── 26.json
│ │ ├── 27.json
│ │ ├── 28.json
│ │ ├── 29.json
│ │ ├── 30.json
│ │ ├── 31.json
│ │ └── 32.json
├── screenshots
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ └── 9.png
├── signingconfigs.gradle
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── codingblocks
│ │ └── cbonlineapp
│ │ └── ExampleInstrumentedTest.kt
│ ├── debug
│ └── res
│ │ └── values
│ │ └── strings.xml
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── Chat.html
│ │ ├── comparision.json
│ │ ├── csvjson.json
│ │ ├── demographics.json
│ │ ├── fonts
│ │ │ ├── gilroy_bold.ttf
│ │ │ └── gilroy_medium.ttf
│ │ ├── gift.json
│ │ └── lose.json
│ ├── feature-graphic.png
│ ├── ic_launcher-playstore.png
│ ├── ic_launcher-web.png
│ ├── java
│ │ └── com
│ │ │ └── codingblocks
│ │ │ └── cbonlineapp
│ │ │ ├── CBOnlineApp.kt
│ │ │ ├── CrashHandler.kt
│ │ │ ├── SplashActivity.kt
│ │ │ ├── URLRouterActivity.kt
│ │ │ ├── admin
│ │ │ ├── AdminActivity.kt
│ │ │ ├── InboxFragment.kt
│ │ │ ├── doubts
│ │ │ │ ├── AdminDoubtRepository.kt
│ │ │ │ ├── AdminDoubtsFragment.kt
│ │ │ │ ├── AdminDoubtsListAdapter.kt
│ │ │ │ ├── AdminDoubtsViewHolder.kt
│ │ │ │ ├── AdminDoubtsViewModel.kt
│ │ │ │ └── DoubtReceiver.kt
│ │ │ └── overview
│ │ │ │ ├── AdminLeaderBoardListAdapter.kt
│ │ │ │ ├── AdminLeaderBoardViewHolder.kt
│ │ │ │ ├── AdminOverviewFragment.kt
│ │ │ │ ├── AdminOverviewRepository.kt
│ │ │ │ └── AdminOverviewViewModel.kt
│ │ │ ├── analytics
│ │ │ └── AppCrashlyticsWrapper.kt
│ │ │ ├── auth
│ │ │ ├── AuthRepository.kt
│ │ │ ├── AuthViewModel.kt
│ │ │ ├── LoginActivity.kt
│ │ │ ├── LoginEmailBottomSheet.kt
│ │ │ ├── LoginHomeFragment.kt
│ │ │ ├── LoginOtpFragment.kt
│ │ │ ├── SignInFragment.kt
│ │ │ ├── SignUpFragment.kt
│ │ │ ├── SocialLoginFragment.kt
│ │ │ └── onboarding
│ │ │ │ ├── CompleteProfileActivity.kt
│ │ │ │ ├── Intro.kt
│ │ │ │ ├── IntroPagerAdapter.kt
│ │ │ │ └── OnBoardingActivity.kt
│ │ │ ├── baseclasses
│ │ │ ├── BaseCBActivity.kt
│ │ │ ├── BaseCBFragment.kt
│ │ │ ├── BaseCBViewModel.kt
│ │ │ └── BaseLifecycleComponent.kt
│ │ │ ├── campaign
│ │ │ ├── CampaignActivity.kt
│ │ │ ├── CampaignDataSource.kt
│ │ │ ├── CampaignRepository.kt
│ │ │ ├── CampaignViewModel.kt
│ │ │ ├── HomeFragment.kt
│ │ │ ├── LeaderBoardFragment.kt
│ │ │ ├── LeaderBoardPagedListAdapter.kt
│ │ │ ├── RulesFragment.kt
│ │ │ ├── WinningsFragment.kt
│ │ │ └── WinningsListAdapter.kt
│ │ │ ├── commons
│ │ │ ├── CarouselSliderAdapter.kt
│ │ │ ├── EndlessPagerAdapter.kt
│ │ │ ├── FragmentChangeListener.kt
│ │ │ ├── InstructorListAdapter.kt
│ │ │ ├── RecyclerViewCallbacks.kt
│ │ │ ├── RoundedBottomSheetDialogFragment.kt
│ │ │ ├── SheetAdapter.kt
│ │ │ └── TabLayoutAdapter.kt
│ │ │ ├── course
│ │ │ ├── CourseActivity.kt
│ │ │ ├── CourseListAdapter.kt
│ │ │ ├── CourseProjectAdapter.kt
│ │ │ ├── CourseRepository.kt
│ │ │ ├── CourseSearchFragment.kt
│ │ │ ├── CourseSectionAllFragment.kt
│ │ │ ├── CourseSectionListAdapter.kt
│ │ │ ├── CourseViewModel.kt
│ │ │ ├── SearchCourseActivity.kt
│ │ │ ├── adapter
│ │ │ │ ├── CourseDataSource.kt
│ │ │ │ ├── CourseDiffUtil.kt
│ │ │ │ ├── CourseListAdapter.kt
│ │ │ │ ├── CourseViewHolder.kt
│ │ │ │ ├── ItemClickListener.kt
│ │ │ │ ├── PagedCourseListAdapter.kt
│ │ │ │ └── WishlistListener.kt
│ │ │ ├── batches
│ │ │ │ ├── BatchComparisonAdapter.kt
│ │ │ │ ├── BatchListAdapter.kt
│ │ │ │ ├── CourseTierFragment.kt
│ │ │ │ ├── RunFragment.kt
│ │ │ │ ├── RunListAdapter.kt
│ │ │ │ └── RunsPagerAdapter.kt
│ │ │ └── checkout
│ │ │ │ ├── CheckoutActivity.kt
│ │ │ │ ├── CheckoutFailedFragment.kt
│ │ │ │ ├── CheckoutOrderDetailsFragment.kt
│ │ │ │ ├── CheckoutPaymentFragment.kt
│ │ │ │ ├── CheckoutPersonalDetailsFragment.kt
│ │ │ │ └── CheckoutViewModel.kt
│ │ │ ├── dashboard
│ │ │ ├── ChatActivity.kt
│ │ │ ├── DashboardActivity.kt
│ │ │ ├── DashboardViewModel.kt
│ │ │ ├── DoubtCommentActivity.kt
│ │ │ ├── ViewPager2Adapter.kt
│ │ │ ├── doubts
│ │ │ │ ├── CommentsListAdapter.kt
│ │ │ │ ├── DashboardDoubtListAdapter.kt
│ │ │ │ ├── DashboardDoubtsFragment.kt
│ │ │ │ ├── DashboardDoubtsRepository.kt
│ │ │ │ └── DashboardDoubtsViewModel.kt
│ │ │ ├── explore
│ │ │ │ └── DashboardExploreFragment.kt
│ │ │ ├── home
│ │ │ │ ├── DashboardHomeFragment.kt
│ │ │ │ ├── DashboardHomeRepository.kt
│ │ │ │ ├── RecentlyPlayedAdapter.kt
│ │ │ │ ├── WishlistActivity.kt
│ │ │ │ ├── WishlistDataSource.kt
│ │ │ │ ├── WishlistPagedAdapter.kt
│ │ │ │ └── WishlistViewModel.kt
│ │ │ ├── library
│ │ │ │ └── DashboardLibraryFragment.kt
│ │ │ └── mycourses
│ │ │ │ ├── DashboardMyCoursesFragment.kt
│ │ │ │ ├── DashboardMyCoursesRepository.kt
│ │ │ │ └── MyCourseListAdapter.kt
│ │ │ ├── database
│ │ │ ├── AppDatabase.kt
│ │ │ ├── BaseDao.kt
│ │ │ ├── BookmarkDao.kt
│ │ │ ├── CodeChallengeDao.kt
│ │ │ ├── CommentsDao.kt
│ │ │ ├── ContentDao.kt
│ │ │ ├── CourseDao.kt
│ │ │ ├── CourseWithInstructorDao.kt
│ │ │ ├── DoubtsDao.kt
│ │ │ ├── HBRankDao.kt
│ │ │ ├── InstructorDao.kt
│ │ │ ├── JobsDao.kt
│ │ │ ├── LibraryDao.kt
│ │ │ ├── ListObject.kt
│ │ │ ├── NotesDao.kt
│ │ │ ├── NotificationDao.kt
│ │ │ ├── PlayerDao.kt
│ │ │ ├── RunAttemptDao.kt
│ │ │ ├── RunDao.kt
│ │ │ ├── RunPerformanceDao.kt
│ │ │ ├── RunWithAttemptDao.kt
│ │ │ ├── SectionDao.kt
│ │ │ ├── SectionWithContentsDao.kt
│ │ │ ├── converters
│ │ │ │ ├── CourseIdList.kt
│ │ │ │ ├── ProgresItemConverter.kt
│ │ │ │ ├── ProjectIdList.kt
│ │ │ │ ├── RunTagList.kt
│ │ │ │ └── TimestampConverter.kt
│ │ │ └── models
│ │ │ │ ├── CommentModel.kt
│ │ │ │ ├── ContentModel.kt
│ │ │ │ ├── CourseInstructorHolder.kt
│ │ │ │ ├── CourseModel.kt
│ │ │ │ ├── DbModels.kt
│ │ │ │ ├── DoubtsModel.kt
│ │ │ │ ├── DownloadData.kt
│ │ │ │ ├── InstructorModel.kt
│ │ │ │ ├── PlayerState.kt
│ │ │ │ ├── RunAttempModel.kt
│ │ │ │ ├── RunModel.kt
│ │ │ │ ├── RunPerformance.kt
│ │ │ │ ├── SectionContentHolder.kt
│ │ │ │ └── SectionModel.kt
│ │ │ ├── di
│ │ │ └── Modules.kt
│ │ │ ├── jobs
│ │ │ ├── JobsActivity.kt
│ │ │ ├── JobsAdapter.kt
│ │ │ ├── JobsCardUi.kt
│ │ │ ├── JobsViewModel.kt
│ │ │ └── jobdetails
│ │ │ │ ├── JobDetailActivity.kt
│ │ │ │ ├── JobDetailViewModel.kt
│ │ │ │ └── JobRepository.kt
│ │ │ ├── library
│ │ │ ├── LibraryActivity.kt
│ │ │ ├── LibraryHomeFragment.kt
│ │ │ ├── LibraryListAdapter.kt
│ │ │ ├── LibraryRepository.kt
│ │ │ ├── LibraryViewFragment.kt
│ │ │ ├── LibraryViewModel.kt
│ │ │ └── Selection.kt
│ │ │ ├── mycourse
│ │ │ ├── MyCourseActivity.kt
│ │ │ ├── MyCourseRepository.kt
│ │ │ ├── MyCourseViewModel.kt
│ │ │ ├── content
│ │ │ │ ├── ContentViewHolder.kt
│ │ │ │ ├── CourseContentFragment.kt
│ │ │ │ ├── SectionItemsAdapter.kt
│ │ │ │ ├── SectionListAdapter.kt
│ │ │ │ ├── SectionViewHolder.kt
│ │ │ │ ├── codechallenge
│ │ │ │ │ ├── CodeChallengeActivity.kt
│ │ │ │ │ ├── CodeChallengeRepository.kt
│ │ │ │ │ └── CodeChallengeViewModel.kt
│ │ │ │ ├── document
│ │ │ │ │ ├── PdfActivity.kt
│ │ │ │ │ ├── PdfActivityRepository.kt
│ │ │ │ │ └── PdfViewModel.kt
│ │ │ │ ├── player
│ │ │ │ │ ├── PlaylistAdapter.kt
│ │ │ │ │ ├── ThumbnailWorker.kt
│ │ │ │ │ ├── VideoBottomSheet.kt
│ │ │ │ │ ├── VideoPlayerActivity.kt
│ │ │ │ │ ├── VideoPlayerRepository.kt
│ │ │ │ │ ├── VideoPlayerViewModel.kt
│ │ │ │ │ ├── doubts
│ │ │ │ │ │ └── VideoDoubtFragment.kt
│ │ │ │ │ └── notes
│ │ │ │ │ │ ├── NotesWorker.kt
│ │ │ │ │ │ └── VideoNotesFragment.kt
│ │ │ │ └── quiz
│ │ │ │ │ ├── AboutQuizFragment.kt
│ │ │ │ │ ├── QuizActivity.kt
│ │ │ │ │ ├── QuizChoiceAdapter.kt
│ │ │ │ │ ├── QuizFragment.kt
│ │ │ │ │ ├── QuizRepository.kt
│ │ │ │ │ ├── QuizResultFragment.kt
│ │ │ │ │ ├── QuizViewModel.kt
│ │ │ │ │ ├── ViewPagerAdapter.kt
│ │ │ │ │ ├── info
│ │ │ │ │ └── QuizInfoFragment.kt
│ │ │ │ │ └── submissions
│ │ │ │ │ ├── QuizSubmissionListAdapter.kt
│ │ │ │ │ └── QuizSubmissionsFragment.kt
│ │ │ ├── library
│ │ │ │ └── CourseLibraryFragment.kt
│ │ │ ├── misc
│ │ │ │ ├── CourseMiscFragment.kt
│ │ │ │ ├── PauseSheetFragment.kt
│ │ │ │ └── UpgradeSheetFragment.kt
│ │ │ └── overview
│ │ │ │ ├── GoodiesRequestFragment.kt
│ │ │ │ ├── LeaderBoardListAdapter.kt
│ │ │ │ ├── LeaderBoardViewHolder.kt
│ │ │ │ └── OverviewFragment.kt
│ │ │ ├── notifications
│ │ │ ├── NotificationViewModel.kt
│ │ │ ├── NotificationsActivity.kt
│ │ │ └── NotificationsAdapter.kt
│ │ │ ├── profile
│ │ │ ├── ProfileActivity.kt
│ │ │ ├── ProfileRepository.kt
│ │ │ ├── ProfileViewModel.kt
│ │ │ └── ReferralActivity.kt
│ │ │ ├── purchases
│ │ │ └── PurchasesActivity.kt
│ │ │ ├── settings
│ │ │ ├── AboutActivity.kt
│ │ │ ├── SettingsActivity.kt
│ │ │ └── SettingsViewModel.kt
│ │ │ ├── tracks
│ │ │ ├── LearningTracksActivity.kt
│ │ │ ├── TrackActivity.kt
│ │ │ ├── TrackViewModel.kt
│ │ │ ├── TracksListAdapter.kt
│ │ │ └── TracksRepository.kt
│ │ │ ├── util
│ │ │ ├── Animations.kt
│ │ │ ├── BaseCBDialogHelper.kt
│ │ │ ├── CBDialog.kt
│ │ │ ├── Constants.kt
│ │ │ ├── CustomDialog.kt
│ │ │ ├── FileUtils.kt
│ │ │ ├── JWTUtils.java
│ │ │ ├── KeyboardVisibilityUtil.kt
│ │ │ ├── MediaUtils.kt
│ │ │ ├── NetworkUtils.kt
│ │ │ ├── PreferenceHelper.kt
│ │ │ ├── ShareUtils.kt
│ │ │ ├── VideoUtils.kt
│ │ │ ├── extensions
│ │ │ │ ├── Delegates.kt
│ │ │ │ ├── LangUtilsExtensions.kt
│ │ │ │ ├── PreferenceHelperExtensions.kt
│ │ │ │ ├── RetrofitHelper.kt
│ │ │ │ ├── StringExtensions.kt
│ │ │ │ ├── ViewExtensions.kt
│ │ │ │ └── ViewModelExtensions.kt
│ │ │ ├── glide
│ │ │ │ ├── ImageViewExtensions.kt
│ │ │ │ ├── SvgDecoder.kt
│ │ │ │ ├── SvgDrawableTranscoder.kt
│ │ │ │ ├── SvgModule.kt
│ │ │ │ └── SvgSoftwareLayerSetter.kt
│ │ │ ├── livedata
│ │ │ │ ├── DoubleTrigger.kt
│ │ │ │ └── LiveDataExtensions.kt
│ │ │ ├── misc
│ │ │ │ └── AppSignatureHelper.java
│ │ │ ├── receivers
│ │ │ │ ├── CertificateDownloadReceiver.kt
│ │ │ │ ├── DownloadBroadcastReceiver.kt
│ │ │ │ ├── MySMSBroadcastReceiver.kt
│ │ │ │ └── OneSignalHandlers.kt
│ │ │ ├── recyclerciew
│ │ │ │ ├── DividerItemDecorator.kt
│ │ │ │ └── SpacesItemDecoration.kt
│ │ │ └── widgets
│ │ │ │ ├── BottomSheetListView.java
│ │ │ │ ├── ExpandableTextView.kt
│ │ │ │ ├── GradientTextView.kt
│ │ │ │ ├── ProgressDialog.kt
│ │ │ │ ├── SheetDialog.kt
│ │ │ │ ├── SvgRatingBar.java
│ │ │ │ ├── VdoPlayerControls.kt
│ │ │ │ └── ZoomOutPageTransformer.kt
│ │ │ └── workers
│ │ │ ├── DeleteDownloadsWorker.kt
│ │ │ ├── DownloadService.kt
│ │ │ ├── DownloadWorker.kt
│ │ │ ├── ProgressWorker.kt
│ │ │ ├── SectionDownloadService.kt
│ │ │ └── SectionDownloadWorker.kt
│ └── res
│ │ ├── anim
│ │ ├── fab_close.xml
│ │ ├── fab_open.xml
│ │ ├── fab_rotate_anticlock.xml
│ │ └── fab_rotate_clock.xml
│ │ ├── animator
│ │ ├── slide_in_left.xml
│ │ ├── slide_in_right.xml
│ │ ├── slide_out_left.xml
│ │ └── slide_out_right.xml
│ │ ├── color
│ │ ├── bnv_tab_item.xml
│ │ ├── button_dark_text.xml
│ │ ├── content_text_color.xml
│ │ └── rank_text_color.xml
│ │ ├── drawable-hdpi
│ │ ├── cblogo.png
│ │ ├── failed.png
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── login.png
│ │ └── offline.png
│ │ ├── drawable-mdpi
│ │ ├── cblogo.png
│ │ ├── failed.png
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── login.png
│ │ └── offline.png
│ │ ├── drawable-v23
│ │ └── background_splash.xml
│ │ ├── drawable-xhdpi
│ │ ├── cblogo.png
│ │ ├── failed.png
│ │ ├── ic_error_white_36dp.png
│ │ ├── ic_fullscreen_exit_white_24dp.png
│ │ ├── ic_pause_white_24dp.png
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── login.png
│ │ └── offline.png
│ │ ├── drawable-xxhdpi
│ │ ├── cblogo.png
│ │ ├── failed.png
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── login.png
│ │ └── offline.png
│ │ ├── drawable-xxxhdpi
│ │ ├── cblogo.png
│ │ ├── failed.png
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── login.png
│ │ └── offline.png
│ │ ├── drawable
│ │ ├── backdrop.xml
│ │ ├── background_custom_radio_buttons_unselected_state.xml
│ │ ├── background_green.xml
│ │ ├── background_orange.xml
│ │ ├── background_purple.xml
│ │ ├── background_splash.xml
│ │ ├── bck_rounded.xml
│ │ ├── black_gradient.xml
│ │ ├── blue_gradient.xml
│ │ ├── bookmark_state.xml
│ │ ├── button_background.xml
│ │ ├── button_background_outline.xml
│ │ ├── button_background_states.xml
│ │ ├── button_disable.xml
│ │ ├── button_disable_grey.xml
│ │ ├── button_quiz.xml
│ │ ├── button_states.xml
│ │ ├── cblogosplash.png
│ │ ├── circle.xml
│ │ ├── code_challenge_text_background.xml
│ │ ├── custom_btn_radio.xml
│ │ ├── custom_rating.xml
│ │ ├── defaultavatar.png
│ │ ├── divider.xml
│ │ ├── dividerthick.xml
│ │ ├── dots.xml
│ │ ├── dotted.xml
│ │ ├── dotted_red.xml
│ │ ├── download_states.xml
│ │ ├── download_states_content.xml
│ │ ├── ic_announcement_circle.xml
│ │ ├── ic_arrow_inc.xml
│ │ ├── ic_arrow_inverted_selector.xml
│ │ ├── ic_arrow_selector.xml
│ │ ├── ic_back.xml
│ │ ├── ic_back_small.xml
│ │ ├── ic_back_white.xml
│ │ ├── ic_banner.webp
│ │ ├── ic_baseline_lock_24.xml
│ │ ├── ic_baseline_lock_open_24.xml
│ │ ├── ic_bookmark.xml
│ │ ├── ic_bookmark_big.xml
│ │ ├── ic_bookmark_circle.xml
│ │ ├── ic_bookmark_fill.xml
│ │ ├── ic_cart.xml
│ │ ├── ic_cart_gradient.xml
│ │ ├── ic_certi_state.xml
│ │ ├── ic_certificate.xml
│ │ ├── ic_certificate_black.xml
│ │ ├── ic_certificate_gen.xml
│ │ ├── ic_certified.xml
│ │ ├── ic_chart_line.xml
│ │ ├── ic_chat.xml
│ │ ├── ic_circle.xml
│ │ ├── ic_circle_orange.xml
│ │ ├── ic_circle_pink.xml
│ │ ├── ic_circle_transparent.xml
│ │ ├── ic_circle_white_small.xml
│ │ ├── ic_classroom.xml
│ │ ├── ic_clock.xml
│ │ ├── ic_close.xml
│ │ ├── ic_code.xml
│ │ ├── ic_code_greeen.xml
│ │ ├── ic_code_grey.xml
│ │ ├── ic_comment.xml
│ │ ├── ic_comment_small.xml
│ │ ├── ic_comp1.xml
│ │ ├── ic_comp2.xml
│ │ ├── ic_comp3.xml
│ │ ├── ic_comp4.xml
│ │ ├── ic_compare.xml
│ │ ├── ic_content_copy.xml
│ │ ├── ic_content_status.xml
│ │ ├── ic_conversation.xml
│ │ ├── ic_correct_circle_small.xml
│ │ ├── ic_coupon.xml
│ │ ├── ic_course_logo.xml
│ │ ├── ic_courses.xml
│ │ ├── ic_courses_gradient.xml
│ │ ├── ic_cpp.xml
│ │ ├── ic_cross.xml
│ │ ├── ic_cross_white.xml
│ │ ├── ic_dashboar_empty.xml
│ │ ├── ic_dashboard.xml
│ │ ├── ic_delete.xml
│ │ ├── ic_doc.xml
│ │ ├── ic_document.xml
│ │ ├── ic_double_tick_indicator.xml
│ │ ├── ic_doubt.xml
│ │ ├── ic_doubt_gradient.xml
│ │ ├── ic_doubts.xml
│ │ ├── ic_down.xml
│ │ ├── ic_down_inverted.xml
│ │ ├── ic_download.xml
│ │ ├── ic_download_big.xml
│ │ ├── ic_download_circle.xml
│ │ ├── ic_download_circle_small.xml
│ │ ├── ic_dropdown.xml
│ │ ├── ic_dropdown_small.xml
│ │ ├── ic_dropright.xml
│ │ ├── ic_dropright_big.xml
│ │ ├── ic_edit.xml
│ │ ├── ic_edit_grey.xml
│ │ ├── ic_empty_circle.xml
│ │ ├── ic_expired.xml
│ │ ├── ic_explore.xml
│ │ ├── ic_fab.xml
│ │ ├── ic_fb.xml
│ │ ├── ic_file_download.xml
│ │ ├── ic_filter.xml
│ │ ├── ic_forward.xml
│ │ ├── ic_fullscreen_exit_white_24dp.png
│ │ ├── ic_fullscreen_white_24dp.xml
│ │ ├── ic_gift.xml
│ │ ├── ic_gmail.xml
│ │ ├── ic_goodie.xml
│ │ ├── ic_goodies.xml
│ │ ├── ic_help.xml
│ │ ├── ic_help_fill.xml
│ │ ├── ic_high_quality_white_24dp.png
│ │ ├── ic_hiring.xml
│ │ ├── ic_incorrect.xml
│ │ ├── ic_info.xml
│ │ ├── ic_jobs.xml
│ │ ├── ic_leaderboard.xml
│ │ ├── ic_leaderboard_gradient.xml
│ │ ├── ic_lecture.xml
│ │ ├── ic_library.xml
│ │ ├── ic_library_big.xml
│ │ ├── ic_like.xml
│ │ ├── ic_like_empty.xml
│ │ ├── ic_like_gradient.xml
│ │ ├── ic_lite.xml
│ │ ├── ic_live.xml
│ │ ├── ic_live_mentor.xml
│ │ ├── ic_live_ta.xml
│ │ ├── ic_lock.xml
│ │ ├── ic_mentor.xml
│ │ ├── ic_menu.xml
│ │ ├── ic_no_connection.xml
│ │ ├── ic_note_big.xml
│ │ ├── ic_note_small.xml
│ │ ├── ic_notes_circle.xml
│ │ ├── ic_notes_green.xml
│ │ ├── ic_notes_grey.xml
│ │ ├── ic_offline.xml
│ │ ├── ic_pause.xml
│ │ ├── ic_pause_circle.xml
│ │ ├── ic_pause_course.xml
│ │ ├── ic_performance.xml
│ │ ├── ic_play.xml
│ │ ├── ic_play_black.xml
│ │ ├── ic_play_lock.xml
│ │ ├── ic_points.xml
│ │ ├── ic_popular.xml
│ │ ├── ic_premium.xml
│ │ ├── ic_progress_selector.xml
│ │ ├── ic_purchase.xml
│ │ ├── ic_quiz.xml
│ │ ├── ic_quiz_black.xml
│ │ ├── ic_quiz_green.xml
│ │ ├── ic_quiz_grey.xml
│ │ ├── ic_radio_off.xml
│ │ ├── ic_ranks.xml
│ │ ├── ic_rate.xml
│ │ ├── ic_recent.xml
│ │ ├── ic_recorded.xml
│ │ ├── ic_reopen.xml
│ │ ├── ic_reopen_small.xml
│ │ ├── ic_replay.xml
│ │ ├── ic_request_selector.xml
│ │ ├── ic_resolve.xml
│ │ ├── ic_resolve_dialog.xml
│ │ ├── ic_revise.xml
│ │ ├── ic_ring.xml
│ │ ├── ic_round_play_button.xml
│ │ ├── ic_round_play_button_white.xml
│ │ ├── ic_search.xml
│ │ ├── ic_selected.xml
│ │ ├── ic_selected_selector.xml
│ │ ├── ic_send.xml
│ │ ├── ic_settings.xml
│ │ ├── ic_share.xml
│ │ ├── ic_speech.xml
│ │ ├── ic_stand.xml
│ │ ├── ic_star_filled.xml
│ │ ├── ic_star_unfilled.xml
│ │ ├── ic_start_black.xml
│ │ ├── ic_status.xml
│ │ ├── ic_thumbnail.xml
│ │ ├── ic_tick.xml
│ │ ├── ic_ticker.xml
│ │ ├── ic_tracks.xml
│ │ ├── ic_trending.xml
│ │ ├── ic_twitter.xml
│ │ ├── ic_up_inverted.xml
│ │ ├── ic_upgrade.xml
│ │ ├── ic_vdo_back.xml
│ │ ├── ic_vdo_setting.xml
│ │ ├── ic_video.xml
│ │ ├── ic_video_green.xml
│ │ ├── ic_video_grey.xml
│ │ ├── ic_whatsapp.xml
│ │ ├── ic_wishlisted.xml
│ │ ├── intro1.png
│ │ ├── intro2.png
│ │ ├── intro3.png
│ │ ├── like_state.xml
│ │ ├── loader.gif
│ │ ├── lock_selector.xml
│ │ ├── ripple.xml
│ │ ├── rounded_dialog.xml
│ │ ├── seekbar_thumb.xml
│ │ ├── seekbar_track.xml
│ │ ├── skeleton_bg_rounded.xml
│ │ ├── skeleton_bg_rounded_card.xml
│ │ ├── skeleton_bg_rounded_small.xml
│ │ ├── splash.jpg
│ │ ├── sq_seekbar_clipped.xml
│ │ ├── thumb.xml
│ │ ├── tick_inside_circle.png
│ │ ├── toolbar_bg.xml
│ │ ├── toolbar_bg_borderless.xml
│ │ ├── toolbar_bg_colored.xml
│ │ ├── toolbar_bg_dark.xml
│ │ ├── toolbar_bg_dark_secondary.xml
│ │ ├── toolbar_bg_search.xml
│ │ ├── wheel.webp
│ │ └── wildcraft.webp
│ │ ├── font
│ │ ├── gilroy_bold.ttf
│ │ ├── gilroy_medium.ttf
│ │ ├── gilroy_semibold.ttf
│ │ └── my_font_family.xml
│ │ ├── layout-land
│ │ └── activity_login.xml
│ │ ├── layout
│ │ ├── activity_about.xml
│ │ ├── activity_admin.xml
│ │ ├── activity_chat.xml
│ │ ├── activity_checkout.xml
│ │ ├── activity_code_challenge.xml
│ │ ├── activity_complete_profile.xml
│ │ ├── activity_course.xml
│ │ ├── activity_dashboard.xml
│ │ ├── activity_doubt_comment.xml
│ │ ├── activity_job_detail.xml
│ │ ├── activity_jobs.xml
│ │ ├── activity_learning_tracks.xml
│ │ ├── activity_library.xml
│ │ ├── activity_login.xml
│ │ ├── activity_login2.xml
│ │ ├── activity_my_course.xml
│ │ ├── activity_notifications.xml
│ │ ├── activity_on_boarding.xml
│ │ ├── activity_pdf.xml
│ │ ├── activity_profile.xml
│ │ ├── activity_purchases.xml
│ │ ├── activity_quiz.xml
│ │ ├── activity_referral.xml
│ │ ├── activity_search_course.xml
│ │ ├── activity_settings.xml
│ │ ├── activity_spin_win.xml
│ │ ├── activity_splash.xml
│ │ ├── activity_track.xml
│ │ ├── activity_video_player.xml
│ │ ├── activity_wishlist.xml
│ │ ├── admin_overview_fragment.xml
│ │ ├── app_bar_dashboard.xml
│ │ ├── bottom_question_sheet.xml
│ │ ├── bottom_sheet_batch.xml
│ │ ├── bottom_sheet_comparsion.xml
│ │ ├── bottom_sheet_goodies.xml
│ │ ├── bottom_sheet_login.xml
│ │ ├── bottom_sheet_mycourses.xml
│ │ ├── bottom_sheet_note.xml
│ │ ├── bottom_sheet_runs.xml
│ │ ├── button_quiz_small.xml
│ │ ├── course_pause_fragment.xml
│ │ ├── course_upgrade_fragment.xml
│ │ ├── custom_dialog.xml
│ │ ├── custom_form_dialog.xml
│ │ ├── dialog.xml
│ │ ├── dialog_coupon.xml
│ │ ├── dialog_help.xml
│ │ ├── dialog_loading.xml
│ │ ├── dialog_result.xml
│ │ ├── dialog_share.xml
│ │ ├── doubts_fragment.xml
│ │ ├── filters_tab.xml
│ │ ├── fragment_about_quiz.xml
│ │ ├── fragment_all_section_course.xml
│ │ ├── fragment_campaign_home.xml
│ │ ├── fragment_campaign_leaderboard.xml
│ │ ├── fragment_campaign_rules.xml
│ │ ├── fragment_campaign_winnigs.xml
│ │ ├── fragment_checkout_order_completed.xml
│ │ ├── fragment_checkout_order_details.xml
│ │ ├── fragment_checkout_payment.xml
│ │ ├── fragment_checkout_personal_details.xml
│ │ ├── fragment_course_content.xml
│ │ ├── fragment_course_library.xml
│ │ ├── fragment_course_run.xml
│ │ ├── fragment_dashboard_doubts.xml
│ │ ├── fragment_dashboard_explore.xml
│ │ ├── fragment_dashboard_home.xml
│ │ ├── fragment_dashboard_library.xml
│ │ ├── fragment_dashboard_my_courses.xml
│ │ ├── fragment_inbox.xml
│ │ ├── fragment_library_view.xml
│ │ ├── fragment_login_home.xml
│ │ ├── fragment_login_otp.xml
│ │ ├── fragment_misc.xml
│ │ ├── fragment_notes.xml
│ │ ├── fragment_overview.xml
│ │ ├── fragment_quiz.xml
│ │ ├── fragment_quiz_info.xml
│ │ ├── fragment_quiz_result.xml
│ │ ├── fragment_quiz_submissions.xml
│ │ ├── fragment_search_course.xml
│ │ ├── fragment_sign_in.xml
│ │ ├── fragment_sign_up.xml
│ │ ├── fragment_social_login.xml
│ │ ├── fragment_video_doubt.xml
│ │ ├── item_admin_doubt.xml
│ │ ├── item_admin_leaderboard.xml
│ │ ├── item_batch.xml
│ │ ├── item_bookmark.xml
│ │ ├── item_bottomsheet.xml
│ │ ├── item_campaign_leaderboard.xml
│ │ ├── item_carousel.xml
│ │ ├── item_certificate.xml
│ │ ├── item_comment.xml
│ │ ├── item_content.xml
│ │ ├── item_continue_card.xml
│ │ ├── item_course_card.xml
│ │ ├── item_course_card_list.xml
│ │ ├── item_course_card_secondary.xml
│ │ ├── item_course_leaderboard.xml
│ │ ├── item_course_section.xml
│ │ ├── item_course_wishlist.xml
│ │ ├── item_courses.xml
│ │ ├── item_doubts.xml
│ │ ├── item_download.xml
│ │ ├── item_extension.xml
│ │ ├── item_hb_performance.xml
│ │ ├── item_instructor.xml
│ │ ├── item_job.xml
│ │ ├── item_note.xml
│ │ ├── item_note_player.xml
│ │ ├── item_performance.xml
│ │ ├── item_playlist.xml
│ │ ├── item_project.xml
│ │ ├── item_quiz_attempt.xml
│ │ ├── item_run.xml
│ │ ├── item_run_comparision.xml
│ │ ├── item_section.xml
│ │ ├── item_section_content_info.xml
│ │ ├── item_section_list.xml
│ │ ├── item_skeleten_course_list.xml
│ │ ├── item_skeleton_card_popular.xml
│ │ ├── item_skeleton_content.xml
│ │ ├── item_skeleton_course_card.xml
│ │ ├── item_skeleton_dashbaord.xml
│ │ ├── item_skeleton_learning_tracks.xml
│ │ ├── item_skeleton_track.xml
│ │ ├── item_skeleton_track_course_card.xml
│ │ ├── item_track.xml
│ │ ├── item_track_card.xml
│ │ ├── item_track_course.xml
│ │ ├── item_winnings.xml
│ │ ├── my_fab_menu.xml
│ │ ├── nav_header_home.xml
│ │ ├── offline_page.xml
│ │ ├── payment_failed_layput.xml
│ │ ├── progress_dialog.xml
│ │ ├── quiz_header.xml
│ │ ├── quiz_single_option.xml
│ │ ├── quizlayout.xml
│ │ ├── rating_dialog.xml
│ │ ├── report_dialog.xml
│ │ ├── sheet_filter.xml
│ │ ├── simple_list_item_single_choice.xml
│ │ ├── single_chip_layout.xml
│ │ ├── tour_layout.xml
│ │ ├── track_selection_dialog.xml
│ │ ├── vdo_control_view.xml
│ │ └── wishlist_shimmer_layout.xml
│ │ ├── menu
│ │ ├── activity_home_drawer.xml
│ │ ├── bottom_nav_admin.xml
│ │ ├── bottom_nav_dashboard.xml
│ │ ├── course_menu.xml
│ │ ├── dashboard.xml
│ │ └── notification_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ │ ├── raw
│ │ ├── download.json
│ │ ├── forward.json
│ │ ├── payment.json
│ │ └── rewind.json
│ │ ├── transition
│ │ └── explode.xml
│ │ ├── values
│ │ ├── arrays.xml
│ │ ├── attr.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── font_certs.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── preloaded_fonts.xml
│ │ ├── refs.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ ├── network_security_config.xml
│ │ ├── paths.xml
│ │ ├── remote_config_defaults.xml
│ │ └── shortcut.xml
│ └── test
│ └── java
│ └── com
│ └── codingblocks
│ └── cbonlineapp
│ └── ExampleUnitTest.kt
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── keystores
├── .gitignore
└── debug.keystore
├── onlineapi
├── .gitignore
├── build.gradle
└── src
│ ├── main
│ └── kotlin
│ │ └── com
│ │ └── codingblocks
│ │ └── onlineapi
│ │ ├── CBOnlineCommunicator.kt
│ │ ├── CBOnlineLib.kt
│ │ ├── Clients.kt
│ │ ├── ErrorStatus.kt
│ │ ├── NetworkHelpter.kt
│ │ ├── Result.kt
│ │ ├── ResultWrapper.kt
│ │ ├── api
│ │ ├── OnlineJsonApi.kt
│ │ └── OnlineRestApi.kt
│ │ └── models
│ │ ├── APIModel.kt
│ │ ├── Performance.kt
│ │ ├── RESTAPIModel.kt
│ │ └── SpinResponse.kt
│ └── test
│ └── java
│ └── com
│ └── codingblocks
│ └── onlineapi
│ └── api
│ ├── OnlineJsonApiAuthenticatedTest.kt
│ ├── OnlineJsonApiPublicTest.kt
│ └── OnlineRestApiAuthenticatedTest.kt
└── settings.gradle
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | end_of_line = lf
6 | insert_final_newline = true
7 |
8 | [*.{kt,kts}]
9 | indent_size=4
10 | continuation_indent_size=4
11 | max_line_length=120
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Describe the feature you'd like**
8 |
9 |
10 | **Screenshots**
11 |
12 |
13 | **Additional context**
14 |
15 |
16 | **Would you like to work on the issue?**
17 |
18 | - [ ] Yes
19 | - [ ] No
20 | - Other:
21 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Fixes #[Add issue number here. If you do not solve the issue entirely, please change the message e.g. "First steps for issues #IssueNumber]
2 |
3 | Changes: [Add here what changes were made in this issue and if possible provide links.]
4 |
5 | Screenshots for the change:
6 |
--------------------------------------------------------------------------------
/.github/auto_label.yml:
--------------------------------------------------------------------------------
1 | labels: [fix, chore, ui]
2 | labelMapping:
3 | feat: [feature]
4 | fix(ui): [fix, ui]
5 | feat(ui): [feat, ui]
6 | refactor: [chore, refactor]
7 | chore(refactor): [chore, refactor]kjhbjkhbvkjhb SLks
8 | chore(deps): [dependencies]
9 | chore(docs): [chore, docs]
10 | docs: [chore, docs]
11 | test: [chore, test]
12 | chore(ci): [chore, tools, ci]
13 | chore(tools): [chore, tools]
14 | chore(release): [chore, release]
15 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: Mark stale issues and pull requests
2 |
3 | on:
4 | schedule:
5 | - cron: "0 * * * *"
6 |
7 | jobs:
8 | stale:
9 |
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - uses: actions/stale@v1
14 | with:
15 | repo-token: ${{ secrets.GITHUB_TOKEN }}
16 | stale-issue-message: 'Stale issue message'
17 | stale-pr-message: 'Stale pull request message'
18 | stale-issue-label: 'no-issue-activity'
19 | stale-pr-label: 'no-pr-activity'
20 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |