├── .gitattributes ├── .github └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CONTRIBUTING ├── License.txt ├── README.md ├── androidsvg ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── caverock │ │ └── androidsvg │ │ ├── CSSParser.java │ │ ├── IntegerParser.java │ │ ├── LibConfig.java │ │ ├── NumberParser.java │ │ ├── PreserveAspectRatio.java │ │ ├── SVG.java │ │ ├── SVGAndroidRenderer.java │ │ ├── SVGExternalFileResolver.java │ │ ├── SVGImageView.java │ │ ├── SVGParseException.java │ │ ├── SVGParser.java │ │ └── SimpleAssetResolver.java │ └── res │ └── values │ └── attrs.xml ├── app ├── .gitignore ├── build.gradle ├── google-services.json ├── libs │ └── flexbox-release.aar ├── proguard-rules-dev.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── org │ │ ├── stepic │ │ └── droid │ │ │ └── ui │ │ │ └── activities │ │ │ └── LoginActivityTest.java │ │ └── stepik │ │ └── android │ │ ├── cache │ │ └── base │ │ │ └── database │ │ │ └── MigrationFrameworkTest.kt │ │ └── view │ │ └── auth │ │ └── ui │ │ └── activity │ │ ├── AuthSampleTest.kt │ │ ├── CredentialAuthScreen.kt │ │ └── SocialAuthScreen.kt │ ├── debug │ ├── assets │ │ └── configs │ │ │ ├── config_dev.json │ │ │ ├── config_production.json │ │ │ └── config_release.json │ ├── java │ │ └── org │ │ │ ├── stepic │ │ │ └── droid │ │ │ │ ├── configuration │ │ │ │ ├── EndpointInfo.kt │ │ │ │ ├── EndpointInfoFactory.kt │ │ │ │ └── EndpointResolverImpl.kt │ │ │ │ └── util │ │ │ │ └── DebugToolsHelper.kt │ │ │ └── stepik │ │ │ └── android │ │ │ ├── domain │ │ │ └── debug │ │ │ │ ├── interactor │ │ │ │ ├── DebugInteractor.kt │ │ │ │ ├── InAppPurchasesInteractor.kt │ │ │ │ └── SplitTestsInteractor.kt │ │ │ │ └── model │ │ │ │ ├── DebugSettings.kt │ │ │ │ ├── EndpointConfig.kt │ │ │ │ └── SplitTestData.kt │ │ │ ├── presentation │ │ │ └── debug │ │ │ │ ├── DebugFeature.kt │ │ │ │ ├── DebugViewModel.kt │ │ │ │ ├── InAppPurchasesFeature.kt │ │ │ │ ├── InAppPurchasesViewModel.kt │ │ │ │ ├── SplitTestsFeature.kt │ │ │ │ ├── SplitTestsViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ ├── DebugActionDispatcher.kt │ │ │ │ ├── InAppPurchasesActionDispatcher.kt │ │ │ │ └── SplitTestsActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ ├── DebugReducer.kt │ │ │ │ ├── InAppPurchasesReducer.kt │ │ │ │ └── SplitTestsReducer.kt │ │ │ └── view │ │ │ ├── debug │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── InAppPurchasesActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── InAppPurchaseAdapterDelegate.kt │ │ │ │ │ └── SplitTestDataAdapterDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── SplitTestsDialogFragment.kt │ │ │ │ └── fragment │ │ │ │ ├── DebugFragment.kt │ │ │ │ └── DebugMenu.kt │ │ │ └── injection │ │ │ └── debug │ │ │ ├── DebugComponent.kt │ │ │ ├── DebugPresentationModule.kt │ │ │ ├── InAppPurchasesComponent.kt │ │ │ ├── InAppPurchasesPresentationModule.kt │ │ │ ├── SplitTestsComponent.kt │ │ │ └── SplitTestsPresentationModule.kt │ └── res │ │ └── layout │ │ ├── activity_in_app_purchases.xml │ │ ├── fragment_debug.xml │ │ └── item_in_app_purchase.xml │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── allAnimations │ │ │ ├── firstAnimation.json │ │ │ ├── fourthAnimation.json │ │ │ ├── secondAnimation.json │ │ │ └── thirdAnimation.json │ │ ├── configs │ │ │ └── config.json │ │ ├── css │ │ │ ├── base-style-night.css │ │ │ ├── base-style.css │ │ │ ├── hljs-night.css │ │ │ ├── hljs.css │ │ │ └── wysiwyg.css │ │ ├── fonts │ │ │ ├── pt_mono.ttf │ │ │ ├── roboto_bold.ttf │ │ │ ├── roboto_bolditalic.ttf │ │ │ ├── roboto_italic.ttf │ │ │ ├── roboto_light.ttf │ │ │ ├── roboto_medium.ttf │ │ │ └── roboto_regular.ttf │ │ ├── images │ │ │ └── vector │ │ │ │ └── achievements │ │ │ │ ├── active_days_streak │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ └── 3.svg │ │ │ │ ├── certificates_distinction_count │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ └── 4.svg │ │ │ │ ├── certificates_regular_count │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ └── 4.svg │ │ │ │ ├── code_quizzes_solved_cpp │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── code_quizzes_solved_java │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── code_quizzes_solved_python │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── course_reviews_count │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ └── 3.svg │ │ │ │ ├── ic_empty_achievement.svg │ │ │ │ ├── steps_solved │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── steps_solved_choice │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── steps_solved_code │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ ├── steps_solved_number │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ │ │ └── steps_solved_streak │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── 4.svg │ │ │ │ ├── 5.svg │ │ │ │ └── 6.svg │ │ ├── katex │ │ │ ├── auto-render.min.js │ │ │ ├── fonts │ │ │ │ ├── KaTeX_AMS-Regular.ttf │ │ │ │ ├── KaTeX_Caligraphic-Bold.ttf │ │ │ │ ├── KaTeX_Caligraphic-Regular.ttf │ │ │ │ ├── KaTeX_Fraktur-Bold.ttf │ │ │ │ ├── KaTeX_Fraktur-Regular.ttf │ │ │ │ ├── KaTeX_Main-Bold.ttf │ │ │ │ ├── KaTeX_Main-BoldItalic.ttf │ │ │ │ ├── KaTeX_Main-Italic.ttf │ │ │ │ ├── KaTeX_Main-Regular.ttf │ │ │ │ ├── KaTeX_Math-BoldItalic.ttf │ │ │ │ ├── KaTeX_Math-Italic.ttf │ │ │ │ ├── KaTeX_Math-Regular.ttf │ │ │ │ ├── KaTeX_SansSerif-Bold.ttf │ │ │ │ ├── KaTeX_SansSerif-Italic.ttf │ │ │ │ ├── KaTeX_SansSerif-Regular.ttf │ │ │ │ ├── KaTeX_Script-Regular.ttf │ │ │ │ ├── KaTeX_Size1-Regular.ttf │ │ │ │ ├── KaTeX_Size2-Regular.ttf │ │ │ │ ├── KaTeX_Size3-Regular.ttf │ │ │ │ ├── KaTeX_Size4-Regular.ttf │ │ │ │ └── KaTeX_Typewriter-Regular.ttf │ │ │ ├── katex.min.css │ │ │ └── katex.min.js │ │ ├── scripts │ │ │ └── highlight.pack.js │ │ └── web │ │ │ └── images │ │ │ ├── arrow_left.svg │ │ │ ├── arrow_right.svg │ │ │ └── cube-scan.svg │ ├── java │ │ └── org │ │ │ ├── stepic │ │ │ └── droid │ │ │ │ ├── adaptive │ │ │ │ ├── listeners │ │ │ │ │ ├── AdaptiveReactionListener.kt │ │ │ │ │ └── AnswerListener.kt │ │ │ │ ├── math │ │ │ │ │ └── LinearRegression.java │ │ │ │ ├── model │ │ │ │ │ ├── AdaptiveStatsTabs.kt │ │ │ │ │ ├── AdaptiveWeekProgress.kt │ │ │ │ │ ├── Card.kt │ │ │ │ │ └── LocalExpItem.kt │ │ │ │ ├── ui │ │ │ │ │ ├── activities │ │ │ │ │ │ ├── AdaptiveCourseActivity.kt │ │ │ │ │ │ ├── AdaptiveOnboardingActivity.kt │ │ │ │ │ │ └── AdaptiveStatsActivity.kt │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── AdaptiveRatingAdapter.kt │ │ │ │ │ │ ├── AdaptiveStatsViewPagerAdapter.kt │ │ │ │ │ │ ├── AdaptiveWeeksAdapter.kt │ │ │ │ │ │ ├── OnboardingQuizCardsAdapter.kt │ │ │ │ │ │ ├── QuizCardViewHolder.kt │ │ │ │ │ │ └── QuizCardsAdapter.kt │ │ │ │ │ ├── animations │ │ │ │ │ │ ├── CardAnimations.java │ │ │ │ │ │ ├── RecommendationsFragmentAnimations.kt │ │ │ │ │ │ └── SupportViewPropertyAnimator.kt │ │ │ │ │ ├── custom │ │ │ │ │ │ ├── CardScrollView.kt │ │ │ │ │ │ ├── QuizCardsContainer.java │ │ │ │ │ │ ├── SwipeableLayout.java │ │ │ │ │ │ ├── container │ │ │ │ │ │ │ ├── ContainerAdapter.kt │ │ │ │ │ │ │ └── ContainerView.java │ │ │ │ │ │ └── morphing │ │ │ │ │ │ │ ├── GradientDrawableWrapper.kt │ │ │ │ │ │ │ ├── MorphingAnimation.kt │ │ │ │ │ │ │ ├── MorphingHelper.kt │ │ │ │ │ │ │ └── MorphingView.kt │ │ │ │ │ ├── dialogs │ │ │ │ │ │ └── AdaptiveLevelDialogFragment.kt │ │ │ │ │ └── fragments │ │ │ │ │ │ ├── AdaptiveOnboardingFragment.kt │ │ │ │ │ │ ├── AdaptiveProgressFragment.kt │ │ │ │ │ │ ├── AdaptiveRatingFragment.kt │ │ │ │ │ │ └── RecommendationsFragment.kt │ │ │ │ └── util │ │ │ │ │ ├── AdaptiveCoursesResolver.kt │ │ │ │ │ ├── ExpHelper.kt │ │ │ │ │ └── RatingNamesGenerator.kt │ │ │ │ ├── analytic │ │ │ │ ├── AmplitudeAnalytic.kt │ │ │ │ ├── Analytic.java │ │ │ │ ├── AnalyticImpl.kt │ │ │ │ ├── BranchParams.kt │ │ │ │ ├── LoginInteractionType.kt │ │ │ │ ├── StepikAnalytic.kt │ │ │ │ ├── StepikAnalyticImpl.kt │ │ │ │ └── experiments │ │ │ │ │ ├── CoursePurchaseWebviewSplitTest.kt │ │ │ │ │ ├── DeferredAuthSplitTest.kt │ │ │ │ │ ├── DiscountButtonAppearanceSplitTest.kt │ │ │ │ │ ├── OnboardingSplitTestVersion2.kt │ │ │ │ │ ├── SplitTest.kt │ │ │ │ │ └── SplitTestsHolder.kt │ │ │ │ ├── base │ │ │ │ ├── App.kt │ │ │ │ ├── Client.kt │ │ │ │ ├── ClientImpl.kt │ │ │ │ ├── FragmentActivityBase.java │ │ │ │ ├── FragmentBase.kt │ │ │ │ ├── ListenerContainer.kt │ │ │ │ ├── ListenerContainerImpl.kt │ │ │ │ └── SingleFragmentActivity.kt │ │ │ │ ├── code │ │ │ │ ├── data │ │ │ │ │ ├── AutocompleteContainer.kt │ │ │ │ │ ├── AutocompleteDictionary.kt │ │ │ │ │ └── AutocompleteState.kt │ │ │ │ ├── highlight │ │ │ │ │ ├── ParserContainer.kt │ │ │ │ │ ├── prettify │ │ │ │ │ │ ├── PrettifyParser.java │ │ │ │ │ │ ├── lang │ │ │ │ │ │ │ ├── Lang.java │ │ │ │ │ │ │ ├── LangAppollo.java │ │ │ │ │ │ │ ├── LangBasic.java │ │ │ │ │ │ │ ├── LangClj.java │ │ │ │ │ │ │ ├── LangDart.java │ │ │ │ │ │ │ ├── LangErlang.java │ │ │ │ │ │ │ ├── LangGo.java │ │ │ │ │ │ │ ├── LangHs.java │ │ │ │ │ │ │ ├── LangKotlin.java │ │ │ │ │ │ │ ├── LangLisp.java │ │ │ │ │ │ │ ├── LangLlvm.java │ │ │ │ │ │ │ ├── LangLua.java │ │ │ │ │ │ │ ├── LangMatlab.java │ │ │ │ │ │ │ ├── LangMl.java │ │ │ │ │ │ │ ├── LangMumps.java │ │ │ │ │ │ │ ├── LangN.java │ │ │ │ │ │ │ ├── LangPascal.java │ │ │ │ │ │ │ ├── LangProto.java │ │ │ │ │ │ │ ├── LangR.java │ │ │ │ │ │ │ ├── LangRd.java │ │ │ │ │ │ │ ├── LangScala.java │ │ │ │ │ │ │ ├── LangSql.java │ │ │ │ │ │ │ ├── LangTcl.java │ │ │ │ │ │ │ ├── LangTex.java │ │ │ │ │ │ │ ├── LangVb.java │ │ │ │ │ │ │ ├── LangVhdl.java │ │ │ │ │ │ │ ├── LangXq.java │ │ │ │ │ │ │ └── LangYaml.java │ │ │ │ │ │ └── parser │ │ │ │ │ │ │ ├── CombinePrefixPattern.java │ │ │ │ │ │ │ ├── Job.java │ │ │ │ │ │ │ ├── Prettify.java │ │ │ │ │ │ │ └── Util.java │ │ │ │ │ ├── syntaxhighlight │ │ │ │ │ │ ├── ParseResult.java │ │ │ │ │ │ └── Parser.java │ │ │ │ │ └── themes │ │ │ │ │ │ ├── CodeSyntax.kt │ │ │ │ │ │ ├── CodeTheme.kt │ │ │ │ │ │ └── Presets.kt │ │ │ │ ├── ui │ │ │ │ │ ├── CodeAnalyzer.kt │ │ │ │ │ ├── CodeEditor.kt │ │ │ │ │ └── CodeEditorLayout.kt │ │ │ │ └── util │ │ │ │ │ └── CodeToolbarUtil.kt │ │ │ │ ├── concurrency │ │ │ │ ├── HandlerBaseDelegate.kt │ │ │ │ ├── IHandler.kt │ │ │ │ ├── MainHandler.kt │ │ │ │ ├── MainHandlerAnalyticImpl.kt │ │ │ │ ├── MainHandlerImpl.kt │ │ │ │ └── SingleThreadExecutor.kt │ │ │ │ ├── configuration │ │ │ │ ├── Config.java │ │ │ │ ├── ConfigImpl.kt │ │ │ │ ├── EndpointResolver.kt │ │ │ │ ├── RemoteConfig.kt │ │ │ │ └── analytic │ │ │ │ │ ├── AdaptiveBackendUrlUserProperty.kt │ │ │ │ │ ├── AdaptiveCoursesUserProperty.kt │ │ │ │ │ ├── CoursePurchaseFlowProperty.kt │ │ │ │ │ ├── CourseRevenueAvailableUserProperty.kt │ │ │ │ │ ├── LocalSubmissionsEnabledUserProperty.kt │ │ │ │ │ ├── MinDelayRateDialogUserProperty.kt │ │ │ │ │ ├── NewHomeScreenEnabledUserProperty.kt │ │ │ │ │ ├── PersonalizedOnboardingCourseListsUserProperty.kt │ │ │ │ │ ├── SearchQueryParamsUserProperty.kt │ │ │ │ │ └── ShowStreakDialogAfterLoginUserProperty.kt │ │ │ │ ├── core │ │ │ │ ├── ComponentManager.kt │ │ │ │ ├── ComponentManagerImpl.kt │ │ │ │ ├── DeadlineType.kt │ │ │ │ ├── DefaultFilter.kt │ │ │ │ ├── DefaultFilterImpl.kt │ │ │ │ ├── GoogleApiChecker.kt │ │ │ │ ├── GoogleApiCheckerImpl.kt │ │ │ │ ├── HasComponent.java │ │ │ │ ├── LessonSessionManager.kt │ │ │ │ ├── LocalLessonSessionManagerImpl.kt │ │ │ │ ├── PerFragment.java │ │ │ │ ├── ProgressHandler.java │ │ │ │ ├── ScreenManager.java │ │ │ │ ├── ScreenManagerImpl.java │ │ │ │ ├── ShareHelper.kt │ │ │ │ ├── ShareHelperImpl.kt │ │ │ │ ├── StepikDevicePoster.kt │ │ │ │ ├── StepikDevicePosterImpl.kt │ │ │ │ ├── StepikLogoutManager.kt │ │ │ │ ├── earlystreak │ │ │ │ │ ├── EarlyStreakPosterImpl.kt │ │ │ │ │ └── contract │ │ │ │ │ │ ├── EarlyStreakListener.kt │ │ │ │ │ │ └── EarlyStreakPoster.kt │ │ │ │ ├── internetstate │ │ │ │ │ ├── InternetEnabledPosterImpl.kt │ │ │ │ │ └── contract │ │ │ │ │ │ ├── InternetEnabledListener.kt │ │ │ │ │ │ └── InternetEnabledPoster.kt │ │ │ │ └── presenters │ │ │ │ │ ├── AdaptiveProgressPresenter.kt │ │ │ │ │ ├── AdaptiveRatingPresenter.kt │ │ │ │ │ ├── CardPresenter.kt │ │ │ │ │ ├── HomeStreakPresenter.kt │ │ │ │ │ ├── NotificationListPresenter.kt │ │ │ │ │ ├── PresenterBase.kt │ │ │ │ │ ├── PresenterContract.kt │ │ │ │ │ ├── PresenterWithPotentialLeak.kt │ │ │ │ │ ├── ProfileMainFeedPresenter.kt │ │ │ │ │ ├── RecommendationsPresenter.kt │ │ │ │ │ ├── SearchSuggestionsPresenter.kt │ │ │ │ │ ├── SplashPresenter.kt │ │ │ │ │ ├── StoreManagementPresenter.kt │ │ │ │ │ └── contracts │ │ │ │ │ ├── AdaptiveProgressView.kt │ │ │ │ │ ├── AdaptiveRatingView.kt │ │ │ │ │ ├── CardView.kt │ │ │ │ │ ├── HomeStreakView.kt │ │ │ │ │ ├── NotificationListView.kt │ │ │ │ │ ├── ProfileMainFeedView.kt │ │ │ │ │ ├── RecommendationsView.kt │ │ │ │ │ ├── SearchSuggestionsView.kt │ │ │ │ │ ├── SplashView.kt │ │ │ │ │ ├── StoreManagementView.kt │ │ │ │ │ └── TextFeedbackView.kt │ │ │ │ ├── di │ │ │ │ ├── AppCoreComponent.kt │ │ │ │ ├── AppCoreModule.kt │ │ │ │ ├── AppSingleton.kt │ │ │ │ ├── ConfigModule.kt │ │ │ │ ├── FirebaseModule.kt │ │ │ │ ├── GoogleModule.kt │ │ │ │ ├── NotificationModule.kt │ │ │ │ ├── NotificationsBadgesModule.kt │ │ │ │ ├── RecentActiveCourseModule.kt │ │ │ │ ├── RemoteMessageHandlersModule.kt │ │ │ │ ├── adaptive │ │ │ │ │ ├── AdaptiveCourseComponent.kt │ │ │ │ │ ├── AdaptiveCourseModule.kt │ │ │ │ │ └── AdaptiveCourseScope.kt │ │ │ │ ├── analytic │ │ │ │ │ └── AnalyticModule.kt │ │ │ │ ├── course_general │ │ │ │ │ └── CourseEnrollmentBusModule.kt │ │ │ │ ├── home │ │ │ │ │ ├── HomeComponent.kt │ │ │ │ │ └── HomeScope.kt │ │ │ │ ├── mainscreen │ │ │ │ │ ├── MainScreenComponent.kt │ │ │ │ │ └── MainScreenScope.kt │ │ │ │ ├── notifications │ │ │ │ │ ├── NotificationsComponent.kt │ │ │ │ │ └── NotificationsScope.kt │ │ │ │ ├── qualifiers │ │ │ │ │ ├── BackgroundScheduler.kt │ │ │ │ │ ├── CourseId.kt │ │ │ │ │ ├── MainScheduler.kt │ │ │ │ │ ├── PersistenceProgressStatusMapper.kt │ │ │ │ │ ├── PersonalOffersScheduler.kt │ │ │ │ │ └── WishlistScheduler.kt │ │ │ │ ├── splash │ │ │ │ │ ├── SplashComponent.kt │ │ │ │ │ └── SplashScope.kt │ │ │ │ └── storage │ │ │ │ │ ├── StorageComponent.kt │ │ │ │ │ ├── StorageModule.kt │ │ │ │ │ └── StorageSingleton.kt │ │ │ │ ├── features │ │ │ │ ├── achievements │ │ │ │ │ └── service │ │ │ │ │ │ └── AchievementsNotificationService.kt │ │ │ │ └── stories │ │ │ │ │ ├── mapper │ │ │ │ │ └── StoryTemplatesMapper.kt │ │ │ │ │ ├── model │ │ │ │ │ ├── FeedbackStoryPart.kt │ │ │ │ │ ├── PlainTextWithButtonStoryPart.kt │ │ │ │ │ └── ViewedStoryTemplate.kt │ │ │ │ │ ├── repository │ │ │ │ │ ├── StoryTemplatesRepository.kt │ │ │ │ │ └── StoryTemplatesRepositoryImpl.kt │ │ │ │ │ ├── storage │ │ │ │ │ ├── dao │ │ │ │ │ │ └── ViewedStoryTemplatesDaoImpl.kt │ │ │ │ │ └── structure │ │ │ │ │ │ └── DbStructureViewedStoryTemplates.kt │ │ │ │ │ └── ui │ │ │ │ │ ├── activity │ │ │ │ │ └── StoriesActivity.kt │ │ │ │ │ ├── adapter │ │ │ │ │ └── StoriesAdapter.kt │ │ │ │ │ └── delegate │ │ │ │ │ ├── FeedbackStoryPartDelegate.kt │ │ │ │ │ ├── PlainTextWithButtonStoryPartDelegate.kt │ │ │ │ │ └── StoriesActivityDelegate.kt │ │ │ │ ├── jsonHelpers │ │ │ │ ├── adapters │ │ │ │ │ ├── CodeOptionsAdapterFactory.kt │ │ │ │ │ └── UTCDateAdapter.kt │ │ │ │ ├── deserializers │ │ │ │ │ ├── DatasetDeserializer.kt │ │ │ │ │ ├── FeedbackDeserializer.kt │ │ │ │ │ └── ReplyDeserializer.java │ │ │ │ └── serializers │ │ │ │ │ └── ReplySerializer.java │ │ │ │ ├── model │ │ │ │ ├── AchievementNotification.kt │ │ │ │ ├── BlockPersistentWrapper.kt │ │ │ │ ├── CertificateListItem.kt │ │ │ │ ├── CollectionDescriptionColors.kt │ │ │ │ ├── Credentials.kt │ │ │ │ ├── CurrentStreakExtended.kt │ │ │ │ ├── Device.kt │ │ │ │ ├── LessonSession.kt │ │ │ │ ├── NotificationCategory.kt │ │ │ │ ├── OnboardingType.kt │ │ │ │ ├── Option.kt │ │ │ │ ├── RemoteLastStep.kt │ │ │ │ ├── SearchQuery.kt │ │ │ │ ├── StepikFilter.kt │ │ │ │ ├── ViewedNotification.kt │ │ │ │ └── code │ │ │ │ │ └── ProgrammingLanguage.kt │ │ │ │ ├── notifications │ │ │ │ ├── BlockNotificationIntervalProvider.kt │ │ │ │ ├── NotificationActionsHelper.kt │ │ │ │ ├── NotificationBroadcastReceiver.kt │ │ │ │ ├── NotificationTimeChecker.kt │ │ │ │ ├── NotificationTimeCheckerImpl.kt │ │ │ │ ├── StepicFcmListenerService.kt │ │ │ │ ├── badges │ │ │ │ │ ├── NotificationsBadgesListener.kt │ │ │ │ │ ├── NotificationsBadgesLogoutPoster.kt │ │ │ │ │ └── NotificationsBadgesManager.kt │ │ │ │ ├── handlers │ │ │ │ │ ├── AchievementsRemoteMessageHandler.kt │ │ │ │ │ └── RemoteMessageHandler.kt │ │ │ │ └── model │ │ │ │ │ ├── Notification.kt │ │ │ │ │ ├── NotificationStatuses.kt │ │ │ │ │ ├── RetentionNotificationType.kt │ │ │ │ │ └── StepikNotificationChannel.kt │ │ │ │ ├── persistence │ │ │ │ ├── content │ │ │ │ │ ├── StepContentResolver.kt │ │ │ │ │ ├── StepContentResolverImpl.kt │ │ │ │ │ └── processors │ │ │ │ │ │ ├── ImageStepContentProcessor.kt │ │ │ │ │ │ ├── StepContentProcessor.kt │ │ │ │ │ │ └── VideoStepContentProcessor.kt │ │ │ │ ├── di │ │ │ │ │ ├── ContentModule.kt │ │ │ │ │ ├── DownloadInteractorsModule.kt │ │ │ │ │ ├── FSLock.kt │ │ │ │ │ ├── PersistenceModule.kt │ │ │ │ │ ├── PersistenceScope.kt │ │ │ │ │ ├── ProgressProvidersModule.kt │ │ │ │ │ └── StructureResolversModule.kt │ │ │ │ ├── downloads │ │ │ │ │ ├── DownloadErrorPoster.kt │ │ │ │ │ ├── DownloadTaskManager.kt │ │ │ │ │ ├── DownloadTaskManagerImpl.kt │ │ │ │ │ ├── DownloadsSyncronizer.kt │ │ │ │ │ ├── helpers │ │ │ │ │ │ ├── AddDownloadTaskHelper.kt │ │ │ │ │ │ ├── AddDownloadTaskHelperImpl.kt │ │ │ │ │ │ ├── RemoveDownloadTaskHelper.kt │ │ │ │ │ │ └── RemoveDownloadTaskHelperImpl.kt │ │ │ │ │ ├── interactor │ │ │ │ │ │ ├── DownloadInteractor.kt │ │ │ │ │ │ ├── DownloadInteractorBase.kt │ │ │ │ │ │ └── RemovalDownloadsInteractor.kt │ │ │ │ │ ├── progress │ │ │ │ │ │ ├── CourseDownloadProgressProvider.kt │ │ │ │ │ │ ├── DownloadProgressProvider.kt │ │ │ │ │ │ ├── DownloadProgressProviderBase.kt │ │ │ │ │ │ ├── ProgressHelper.kt │ │ │ │ │ │ ├── SectionDownloadProgressProvider.kt │ │ │ │ │ │ ├── UnitDownloadProgressProvider.kt │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ ├── DownloadProgressStatusMapper.kt │ │ │ │ │ │ │ └── DownloadProgressStatusMapperImpl.kt │ │ │ │ │ └── resolvers │ │ │ │ │ │ ├── DownloadTitleResolver.kt │ │ │ │ │ │ ├── DownloadTitleResolverImpl.kt │ │ │ │ │ │ └── structure │ │ │ │ │ │ ├── CourseStructureResolverImpl.kt │ │ │ │ │ │ ├── SectionStructureResolver.kt │ │ │ │ │ │ ├── StepStructureResolver.kt │ │ │ │ │ │ ├── StepStructureResolverImpl.kt │ │ │ │ │ │ ├── StructureResolver.kt │ │ │ │ │ │ ├── UnitStructureResolver.kt │ │ │ │ │ │ └── UnitStructureResolverImpl.kt │ │ │ │ ├── files │ │ │ │ │ ├── ExternalStorageManager.kt │ │ │ │ │ └── ExternalStorageManagerImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── DownloadConfiguration.kt │ │ │ │ │ ├── DownloadItem.kt │ │ │ │ │ ├── DownloadProgress.kt │ │ │ │ │ ├── DownloadRequest.kt │ │ │ │ │ ├── DownloadTask.kt │ │ │ │ │ ├── PersistentItem.kt │ │ │ │ │ ├── PersistentState.kt │ │ │ │ │ ├── StepPersistentWrapper.kt │ │ │ │ │ ├── StorageLocation.kt │ │ │ │ │ ├── Structure.kt │ │ │ │ │ └── SystemDownloadRecord.kt │ │ │ │ ├── providers │ │ │ │ │ └── GenericFileProvider.kt │ │ │ │ ├── repository │ │ │ │ │ └── DownloadsRepositoryImpl.kt │ │ │ │ ├── service │ │ │ │ │ ├── DownloadCompleteReceiver.kt │ │ │ │ │ ├── DownloadCompleteService.kt │ │ │ │ │ └── FileTransferService.kt │ │ │ │ └── storage │ │ │ │ │ ├── PersistentItemObserver.kt │ │ │ │ │ ├── PersistentItemObserverImpl.kt │ │ │ │ │ ├── PersistentStateManager.kt │ │ │ │ │ ├── PersistentStateManagerImpl.kt │ │ │ │ │ ├── dao │ │ │ │ │ ├── PersistentItemDao.kt │ │ │ │ │ ├── PersistentItemDaoImpl.kt │ │ │ │ │ ├── PersistentStateDao.kt │ │ │ │ │ ├── PersistentStateDaoImpl.kt │ │ │ │ │ ├── SystemDownloadsDao.kt │ │ │ │ │ └── SystemDownloadsDaoImpl.kt │ │ │ │ │ └── structure │ │ │ │ │ ├── DBStructurePersistentItem.kt │ │ │ │ │ └── DBStructurePersistentState.kt │ │ │ │ ├── preferences │ │ │ │ ├── SharedPreferenceHelper.java │ │ │ │ ├── UserPreferences.java │ │ │ │ └── VideoPlaybackRate.kt │ │ │ │ ├── receivers │ │ │ │ ├── DownloadClickReceiver.kt │ │ │ │ ├── InternetConnectionEnabledReceiver.java │ │ │ │ ├── InternetConnectionStateListener.kt │ │ │ │ └── InternetConnectionStateNotifier.kt │ │ │ │ ├── services │ │ │ │ └── NotificationsViewPusher.kt │ │ │ │ ├── social │ │ │ │ └── SocialMedia.kt │ │ │ │ ├── storage │ │ │ │ ├── dao │ │ │ │ │ ├── AdaptiveExpDao.kt │ │ │ │ │ ├── AdaptiveExpDaoImpl.kt │ │ │ │ │ ├── AssignmentDaoImpl.kt │ │ │ │ │ ├── BlockDaoImpl.kt │ │ │ │ │ ├── CourseDaoImpl.kt │ │ │ │ │ ├── CourseReviewSummaryDaoImpl.kt │ │ │ │ │ ├── CourseReviewsDaoImpl.kt │ │ │ │ │ ├── DaoBase.java │ │ │ │ │ ├── IDao.kt │ │ │ │ │ ├── LastStepDaoImpl.kt │ │ │ │ │ ├── LessonDaoImpl.kt │ │ │ │ │ ├── NotificationDaoImpl.java │ │ │ │ │ ├── ProgressDaoImpl.kt │ │ │ │ │ ├── SearchQueryDao.kt │ │ │ │ │ ├── SearchQueryDaoImpl.kt │ │ │ │ │ ├── SectionDaoImpl.kt │ │ │ │ │ ├── SectionDateEventDaoImpl.kt │ │ │ │ │ ├── StepDaoImpl.kt │ │ │ │ │ ├── UnitDaoImpl.kt │ │ │ │ │ ├── VideoTimestampDaoImpl.kt │ │ │ │ │ ├── ViewAssignmentDaoImpl.java │ │ │ │ │ └── ViewedNotificationsQueueDaoImpl.kt │ │ │ │ ├── migration │ │ │ │ │ ├── LegacyDatabaseMigrations.java │ │ │ │ │ ├── MigrationFrom33To34.kt │ │ │ │ │ ├── MigrationFrom34To35.kt │ │ │ │ │ ├── MigrationFrom35To36.kt │ │ │ │ │ ├── MigrationFrom36To37.kt │ │ │ │ │ ├── MigrationFrom37To38.kt │ │ │ │ │ ├── MigrationFrom38To39.kt │ │ │ │ │ ├── MigrationFrom39To40.kt │ │ │ │ │ ├── MigrationFrom40To41.kt │ │ │ │ │ ├── MigrationFrom41To42.kt │ │ │ │ │ ├── MigrationFrom42To43.kt │ │ │ │ │ ├── MigrationFrom43To44.kt │ │ │ │ │ ├── MigrationFrom44To45.kt │ │ │ │ │ ├── MigrationFrom45To46.kt │ │ │ │ │ ├── MigrationFrom46To47.kt │ │ │ │ │ ├── MigrationFrom47To48.kt │ │ │ │ │ ├── MigrationFrom48To49.kt │ │ │ │ │ ├── MigrationFrom49To50.kt │ │ │ │ │ ├── MigrationFrom50To51.kt │ │ │ │ │ ├── MigrationFrom51To52.kt │ │ │ │ │ ├── MigrationFrom52To53.kt │ │ │ │ │ ├── MigrationFrom53To54.kt │ │ │ │ │ ├── MigrationFrom54To55.kt │ │ │ │ │ ├── MigrationFrom55To56.kt │ │ │ │ │ ├── MigrationFrom56To57.kt │ │ │ │ │ ├── MigrationFrom57To58.kt │ │ │ │ │ ├── MigrationFrom58To59.kt │ │ │ │ │ ├── MigrationFrom59To60.kt │ │ │ │ │ ├── MigrationFrom60To61.kt │ │ │ │ │ ├── MigrationFrom61To62.kt │ │ │ │ │ ├── MigrationFrom62To63.kt │ │ │ │ │ ├── MigrationFrom63To64.kt │ │ │ │ │ ├── MigrationFrom64To65.kt │ │ │ │ │ ├── MigrationFrom65To66.kt │ │ │ │ │ ├── MigrationFrom66To67.kt │ │ │ │ │ ├── MigrationFrom67To68.kt │ │ │ │ │ ├── MigrationFrom68To69.kt │ │ │ │ │ ├── MigrationFrom69To70.kt │ │ │ │ │ ├── MigrationFrom70To71.kt │ │ │ │ │ ├── MigrationFrom71To72.kt │ │ │ │ │ ├── MigrationFrom72To73.kt │ │ │ │ │ ├── MigrationFrom73To74.kt │ │ │ │ │ ├── MigrationFrom74To75.kt │ │ │ │ │ ├── MigrationFrom75To76.kt │ │ │ │ │ ├── MigrationFrom76To77.kt │ │ │ │ │ ├── MigrationFrom77To78.kt │ │ │ │ │ ├── MigrationFrom78To79.kt │ │ │ │ │ ├── MigrationFrom79To80.kt │ │ │ │ │ ├── MigrationFrom80To81.kt │ │ │ │ │ └── Migrations.kt │ │ │ │ ├── operations │ │ │ │ │ ├── DatabaseFacade.kt │ │ │ │ │ ├── DatabaseOperations.kt │ │ │ │ │ ├── DatabaseOperationsImpl.kt │ │ │ │ │ └── ResultHandler.java │ │ │ │ └── structure │ │ │ │ │ ├── DbStructureAdaptiveExp.kt │ │ │ │ │ ├── DbStructureAssignment.java │ │ │ │ │ ├── DbStructureBlock.kt │ │ │ │ │ ├── DbStructureCachedVideo.java │ │ │ │ │ ├── DbStructureCalendarSection.java │ │ │ │ │ ├── DbStructureCertificateViewItem.java │ │ │ │ │ ├── DbStructureCourse.kt │ │ │ │ │ ├── DbStructureCourseList.kt │ │ │ │ │ ├── DbStructureEnrolledAndFeaturedCourses.java │ │ │ │ │ ├── DbStructureLastStep.kt │ │ │ │ │ ├── DbStructureLesson.java │ │ │ │ │ ├── DbStructureNotification.java │ │ │ │ │ ├── DbStructureProgress.kt │ │ │ │ │ ├── DbStructureSearchQuery.kt │ │ │ │ │ ├── DbStructureSections.kt │ │ │ │ │ ├── DbStructureSharedDownloads.java │ │ │ │ │ ├── DbStructureStep.java │ │ │ │ │ ├── DbStructureUnit.java │ │ │ │ │ ├── DbStructureVideoTimestamp.java │ │ │ │ │ ├── DbStructureVideoUrl.kt │ │ │ │ │ ├── DbStructureViewQueue.java │ │ │ │ │ └── DbStructureViewedNotificationsQueue.kt │ │ │ │ ├── ui │ │ │ │ ├── activities │ │ │ │ │ ├── AboutAppActivity.kt │ │ │ │ │ ├── AnimatedOnboardingActivity.kt │ │ │ │ │ ├── BackToExitActivityBase.kt │ │ │ │ │ ├── BackToExitActivityWithSmartLockBase.kt │ │ │ │ │ ├── FeedbackActivity.kt │ │ │ │ │ ├── MainFeedActivity.kt │ │ │ │ │ ├── NotificationSettingsActivity.kt │ │ │ │ │ ├── PhotoViewActivity.kt │ │ │ │ │ ├── SmartLockActivityBase.kt │ │ │ │ │ ├── SplashActivity.kt │ │ │ │ │ ├── StoreManagementActivity.kt │ │ │ │ │ └── contracts │ │ │ │ │ │ ├── CloseButtonInToolbar.kt │ │ │ │ │ │ ├── OnNextClickedListener.kt │ │ │ │ │ │ └── RootScreen.kt │ │ │ │ ├── adapters │ │ │ │ │ ├── CodeToolbarAdapter.kt │ │ │ │ │ ├── NotificationAdapter.java │ │ │ │ │ ├── OnboardingAdapter.kt │ │ │ │ │ ├── SearchQueriesAdapter.kt │ │ │ │ │ ├── SocialAuthAdapter.java │ │ │ │ │ ├── SocialLinksAdapter.kt │ │ │ │ │ ├── StepFragmentAdapter.kt │ │ │ │ │ └── StepikRadioGroupAdapter.kt │ │ │ │ ├── custom │ │ │ │ │ ├── ArrowImageView.kt │ │ │ │ │ ├── AutoCompleteSearchView.kt │ │ │ │ │ ├── BetterSwitch.java │ │ │ │ │ ├── CircleProgressView.kt │ │ │ │ │ ├── CustomFontURLSpan.kt │ │ │ │ │ ├── ExpandableTextView.java │ │ │ │ │ ├── LoadingView.kt │ │ │ │ │ ├── OnboardingPageTransformer.kt │ │ │ │ │ ├── PlaceholderTextView.kt │ │ │ │ │ ├── RoundedBorderMaskView.kt │ │ │ │ │ ├── SelectableTextView.kt │ │ │ │ │ ├── StepikCheckBox.java │ │ │ │ │ ├── StepikOptionView.java │ │ │ │ │ ├── StepikRadioButton.java │ │ │ │ │ ├── StepikRadioGroup.java │ │ │ │ │ ├── StepikSlowViewPager.kt │ │ │ │ │ ├── StepikSwipeRefreshLayout.kt │ │ │ │ │ ├── StickyHeaderAdapter.kt │ │ │ │ │ ├── StickyHeaderDecoration.kt │ │ │ │ │ ├── TouchDispatchableFrameLayout.java │ │ │ │ │ ├── WrapContentLinearLayoutManager.java │ │ │ │ │ ├── control_bar │ │ │ │ │ │ └── ControlBarView.kt │ │ │ │ │ └── vertical_progress_bar │ │ │ │ │ │ └── VerticalProgressBar.kt │ │ │ │ ├── custom_exo │ │ │ │ │ ├── AppCompatSeekTimeBar.kt │ │ │ │ │ └── NavigationBarUtil.kt │ │ │ │ ├── dialogs │ │ │ │ │ ├── AllowMobileDataDialogFragment.kt │ │ │ │ │ ├── CertificateShareDialog.java │ │ │ │ │ ├── CertificateShareDialogFragment.java │ │ │ │ │ ├── ChangeCodeLanguageDialog.kt │ │ │ │ │ ├── ChooseStorageDialog.kt │ │ │ │ │ ├── ClearVideosDialog.kt │ │ │ │ │ ├── DiscardTextDialogFragment.kt │ │ │ │ │ ├── LoadingProgressDialogFragment.kt │ │ │ │ │ ├── LogoutAreYouSureDialog.kt │ │ │ │ │ ├── MovingProgressDialogFragment.kt │ │ │ │ │ ├── ProgrammingLanguageChooserDialogFragment.kt │ │ │ │ │ ├── RemindPasswordDialogFragment.java │ │ │ │ │ ├── ResetCodeDialogFragment.kt │ │ │ │ │ ├── StepShareDialog.java │ │ │ │ │ ├── StepShareDialogFragment.java │ │ │ │ │ ├── TimeIntervalPickerDialogFragment.kt │ │ │ │ │ ├── UnauthorizedDialogFragment.java │ │ │ │ │ ├── VideoQualityDetailedDialog.kt │ │ │ │ │ ├── VideoQualityDialog.kt │ │ │ │ │ ├── VideoQualityDialogBase.kt │ │ │ │ │ ├── VideoQualityDialogInPlayer.kt │ │ │ │ │ └── WantMoveDataDialog.kt │ │ │ │ ├── fragments │ │ │ │ │ ├── AboutAppFragment.kt │ │ │ │ │ ├── FeedbackFragment.kt │ │ │ │ │ ├── HomeFragment.kt │ │ │ │ │ ├── NotificationListFragment.java │ │ │ │ │ ├── NotificationSettingsFragment.kt │ │ │ │ │ ├── NotificationsFragment.java │ │ │ │ │ ├── OnboardingFragment.kt │ │ │ │ │ └── StoreManagementFragment.kt │ │ │ │ ├── listeners │ │ │ │ │ ├── OnItemClickListener.kt │ │ │ │ │ └── OnRootTouchedListener.java │ │ │ │ ├── quiz │ │ │ │ │ ├── ChoiceQuizDelegate.kt │ │ │ │ │ ├── NotSupportedQuizDelegate.kt │ │ │ │ │ ├── NumberQuizDelegate.kt │ │ │ │ │ ├── QuizDelegate.kt │ │ │ │ │ └── StringQuizDelegate.kt │ │ │ │ └── util │ │ │ │ │ ├── CloseIconHolder.kt │ │ │ │ │ ├── ContextMenuRecyclerView.java │ │ │ │ │ ├── CoursesSnapHelper.kt │ │ │ │ │ ├── GridSpacesItemDecoration.java │ │ │ │ │ ├── KeyboardHelper.kt │ │ │ │ │ ├── PopupHelper.kt │ │ │ │ │ ├── StartSnapHelper.java │ │ │ │ │ ├── TimeIntervalUtil.kt │ │ │ │ │ ├── ToolbarHelper.kt │ │ │ │ │ ├── VerticalScrollingBehavior.java │ │ │ │ │ └── ViewExtensions.kt │ │ │ │ ├── util │ │ │ │ ├── AndroidDeviceUtil.kt │ │ │ │ ├── AndroidDevices.java │ │ │ │ ├── AppConstants.java │ │ │ │ ├── AtomicBooleanExtension.kt │ │ │ │ ├── ColorUtil.kt │ │ │ │ ├── CompatibilityExtensions.kt │ │ │ │ ├── ContextExtensions.kt │ │ │ │ ├── CourseExtensions.kt │ │ │ │ ├── CursorExtensions.kt │ │ │ │ ├── DateExtensions.kt │ │ │ │ ├── DateTimeHelper.kt │ │ │ │ ├── DbParseHelper.kt │ │ │ │ ├── DeviceInfoUtil.java │ │ │ │ ├── DisplayUtils.java │ │ │ │ ├── EditTextExtensions.kt │ │ │ │ ├── FileExtensions.kt │ │ │ │ ├── FloatExtensions.kt │ │ │ │ ├── FragmentManagerExtensions.kt │ │ │ │ ├── HtmlHelper.java │ │ │ │ ├── IntentExtensions.kt │ │ │ │ ├── JsonExtensions.kt │ │ │ │ ├── KotlinUtil.kt │ │ │ │ ├── LoginInteractionTypeUtil.kt │ │ │ │ ├── MonadUtil.kt │ │ │ │ ├── NetworkExtensions.kt │ │ │ │ ├── NotificationChannelInitializer.kt │ │ │ │ ├── NumberExtensions.kt │ │ │ │ ├── PermissionExtensions.kt │ │ │ │ ├── ProgressHelper.java │ │ │ │ ├── RWLocks.java │ │ │ │ ├── RatingUtil.kt │ │ │ │ ├── RxUtil.kt │ │ │ │ ├── SectionExtensions.kt │ │ │ │ ├── StepExtensions.kt │ │ │ │ ├── StepikUtil.kt │ │ │ │ ├── StringExtensions.kt │ │ │ │ ├── StringUtil.java │ │ │ │ ├── SuppressFBWarnings.kt │ │ │ │ ├── TextUtil.kt │ │ │ │ ├── TextViewUtil.kt │ │ │ │ ├── ValidatorUtil.java │ │ │ │ ├── VideoQualityExtension.kt │ │ │ │ ├── resolvers │ │ │ │ │ ├── StepTypeResolver.kt │ │ │ │ │ ├── StepTypeResolverImpl.java │ │ │ │ │ ├── VideoUrlQualityHelper.kt │ │ │ │ │ └── text │ │ │ │ │ │ ├── NotificationTextResolver.kt │ │ │ │ │ │ ├── OlLiTagHandler.java │ │ │ │ │ │ ├── TextResolver.java │ │ │ │ │ │ ├── TextResolverImpl.kt │ │ │ │ │ │ └── TextResult.kt │ │ │ │ └── rx │ │ │ │ │ └── ObservableReduceMap.kt │ │ │ │ └── web │ │ │ │ └── storage │ │ │ │ └── model │ │ │ │ ├── StorageRecord.kt │ │ │ │ └── StorageRecordWrapped.kt │ │ │ └── stepik │ │ │ └── android │ │ │ ├── cache │ │ │ ├── analytic │ │ │ │ ├── AnalyticCacheDataSourceImpl.kt │ │ │ │ ├── converter │ │ │ │ │ └── JsonElementConverter.kt │ │ │ │ ├── dao │ │ │ │ │ └── AnalyticDao.kt │ │ │ │ ├── model │ │ │ │ │ └── AnalyticLocalEvent.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureAnalytic.kt │ │ │ ├── announcement │ │ │ │ ├── AnnouncementCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── AnnouncementDao.kt │ │ │ ├── assignment │ │ │ │ ├── AssignmentCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureAssignment.kt │ │ │ ├── attempt │ │ │ │ ├── AttemptCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── AttemptDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureAttempt.kt │ │ │ ├── base │ │ │ │ ├── database │ │ │ │ │ ├── AnalyticDatabase.kt │ │ │ │ │ ├── AnalyticDatabaseInfo.kt │ │ │ │ │ └── AppDatabase.kt │ │ │ │ └── mapper │ │ │ │ │ ├── CollectionConverter.kt │ │ │ │ │ └── DateConverter.kt │ │ │ ├── block │ │ │ │ └── structure │ │ │ │ │ └── DbStructureBlock.kt │ │ │ ├── calendar │ │ │ │ └── CalendarCacheDataSourceImpl.kt │ │ │ ├── catalog │ │ │ │ ├── CatalogCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── CatalogBlockDao.kt │ │ │ │ └── mapper │ │ │ │ │ ├── CatalogBlockContentSerializer.kt │ │ │ │ │ └── CatalogBlockContentTypeConverter.kt │ │ │ ├── certificates │ │ │ │ ├── dao │ │ │ │ │ └── CertificateDaoImpl.kt │ │ │ │ ├── source │ │ │ │ │ └── CertificateCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCertificate.kt │ │ │ ├── code_preference │ │ │ │ ├── CodePreferenceCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── CodePreferenceDao.kt │ │ │ │ └── model │ │ │ │ │ └── CodePreference.kt │ │ │ ├── comment_banner │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCommentBanner.kt │ │ │ ├── course │ │ │ │ └── source │ │ │ │ │ ├── CourseCacheDataSourceImpl.kt │ │ │ │ │ ├── CourseReviewSummaryCacheDataSourceImpl.kt │ │ │ │ │ ├── EnrollmentCacheDataSourceImpl.kt │ │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCourseReviewSummary.kt │ │ │ ├── course_calendar │ │ │ │ ├── CourseCalendarDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureSectionDateEvent.kt │ │ │ ├── course_collection │ │ │ │ ├── CourseCollectionCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── CourseCollectionDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCourseCollection.kt │ │ │ ├── course_list │ │ │ │ ├── CourseListQueryCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── CourseListQueryDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCourseListQuery.kt │ │ │ ├── course_payments │ │ │ │ ├── CoursePaymentsCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── CoursePaymentsDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCoursePayments.kt │ │ │ ├── course_purchase │ │ │ │ ├── BillingPurchasePayloadCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── BillingPurchasePayloadDao.kt │ │ │ ├── course_recommendations │ │ │ │ ├── CourseRecommendationsCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── CourseRecommendationsDao.kt │ │ │ ├── course_reviews │ │ │ │ ├── CourseReviewsCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureCourseReview.kt │ │ │ ├── discussion_thread │ │ │ │ ├── DiscussionThreadCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── DiscussionThreadDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureDiscussionThread.kt │ │ │ ├── download │ │ │ │ ├── DownloadCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ ├── DownloadedCoursesDao.java │ │ │ │ │ └── DownloadedCoursesDaoImpl.kt │ │ │ ├── email_address │ │ │ │ └── EmailAddressCacheDataSourceImpl.kt │ │ │ ├── exam_session │ │ │ │ ├── ExamSessionCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── ExamSessionDao.kt │ │ │ ├── feedback │ │ │ │ └── FeedbackCacheDataSourceImpl.kt │ │ │ ├── last_step │ │ │ │ └── LastStepCacheDataSourceImpl.kt │ │ │ ├── lesson │ │ │ │ ├── LessonCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureLesson.kt │ │ │ ├── mobile_tiers │ │ │ │ ├── LightSkuCacheDataSourceImpl.kt │ │ │ │ ├── MobileTiersCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ ├── LightSkuDao.kt │ │ │ │ │ └── MobileTiersDao.kt │ │ │ ├── network │ │ │ │ ├── NetworkTypeCacheDataSourceImpl.kt │ │ │ │ └── tracker │ │ │ │ │ └── NetworkStateTracker.kt │ │ │ ├── notification │ │ │ │ └── NotificationCacheDataSourceImpl.kt │ │ │ ├── personal_deadlines │ │ │ │ ├── DeadlinesBannerCacheDataSourceImpl.kt │ │ │ │ ├── DeadlinesCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ ├── DeadlinesBannerDao.java │ │ │ │ │ ├── DeadlinesBannerDaoImpl.kt │ │ │ │ │ ├── PersonalDeadlinesDao.kt │ │ │ │ │ └── PersonalDeadlinesDaoImpl.kt │ │ │ │ ├── mapper │ │ │ │ │ └── DeadlineEntityMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── DeadlineEntity.kt │ │ │ │ └── structure │ │ │ │ │ ├── DbStructureDeadlines.kt │ │ │ │ │ └── DbStructureDeadlinesBanner.kt │ │ │ ├── proctor_session │ │ │ │ ├── ProctorSessionCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── ProctorSessionDao.kt │ │ │ ├── profile │ │ │ │ └── ProfileCacheDataSourceImpl.kt │ │ │ ├── progress │ │ │ │ └── ProgressCacheDataSourceImpl.kt │ │ │ ├── purchase_notification │ │ │ │ ├── PurchaseNotificationCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ ├── PurchaseNotificationDao.kt │ │ │ │ │ └── PurchaseNotificationDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructurePurchaseNotification.kt │ │ │ ├── review_instruction │ │ │ │ ├── ReviewInstructionCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── ReviewInstructionDao.kt │ │ │ │ └── mapper │ │ │ │ │ └── ReviewStrategyTypeConverter.kt │ │ │ ├── review_session │ │ │ │ ├── ReviewSessionCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── ReviewSessionDao.kt │ │ │ ├── rubric │ │ │ │ └── dao │ │ │ │ │ └── RubricDao.kt │ │ │ ├── search │ │ │ │ └── SearchCacheDataSourceImpl.kt │ │ │ ├── section │ │ │ │ ├── SectionCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureSection.kt │ │ │ ├── social_profile │ │ │ │ ├── SocialProfileCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── SocialProfileDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureSocialProfile.kt │ │ │ ├── step │ │ │ │ ├── StepCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureStep.kt │ │ │ ├── story │ │ │ │ ├── StoryReactionCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── StoryReactionDao.kt │ │ │ │ └── model │ │ │ │ │ └── StoryReactionEntity.kt │ │ │ ├── submission │ │ │ │ ├── SubmissionCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── SubmissionDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureSubmission.kt │ │ │ ├── unit │ │ │ │ ├── UnitCacheDataSourceImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureUnit.kt │ │ │ ├── user │ │ │ │ ├── UserCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ └── UserDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureUser.kt │ │ │ ├── user_courses │ │ │ │ ├── UserCoursesCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ ├── UserCourseDao.kt │ │ │ │ │ └── UserCourseDaoImpl.kt │ │ │ │ └── structure │ │ │ │ │ └── DbStructureUserCourse.kt │ │ │ ├── video │ │ │ │ ├── VideoCacheDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ │ ├── VideoDao.kt │ │ │ │ │ ├── VideoDaoImpl.kt │ │ │ │ │ ├── VideoEntityDaoImpl.kt │ │ │ │ │ └── VideoUrlEntityDaoImpl.kt │ │ │ │ ├── mapper │ │ │ │ │ └── VideoEntityMapper.kt │ │ │ │ ├── model │ │ │ │ │ ├── VideoEntity.kt │ │ │ │ │ └── VideoUrlEntity.kt │ │ │ │ └── structure │ │ │ │ │ ├── VideoDbScheme.kt │ │ │ │ │ └── VideoUrlDbScheme.kt │ │ │ ├── video_player │ │ │ │ ├── VideoTimestampCacheDataSourceImpl.kt │ │ │ │ └── model │ │ │ │ │ └── VideoTimestamp.kt │ │ │ ├── view_assignment │ │ │ │ └── ViewAssignmentCacheDataSourceImpl.kt │ │ │ ├── visited_courses │ │ │ │ ├── VisitedCoursesCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ │ └── VisitedCourseDao.kt │ │ │ └── wishlist │ │ │ │ ├── WishlistCacheDataSourceImpl.kt │ │ │ │ └── dao │ │ │ │ └── WishlistDao.kt │ │ │ ├── data │ │ │ ├── achievement │ │ │ │ ├── repository │ │ │ │ │ └── AchievementRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── AchievementRemoteDataSource.kt │ │ │ ├── analytic │ │ │ │ ├── mapper │ │ │ │ │ └── AnalyticBatchMapper.kt │ │ │ │ ├── repository │ │ │ │ │ └── AnalyticRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── AnalyticCacheDataSource.kt │ │ │ │ │ └── AnalyticRemoteDataSource.kt │ │ │ ├── announcement │ │ │ │ ├── repository │ │ │ │ │ └── AnnouncementRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── AnnouncementCacheDataSource.kt │ │ │ │ │ └── AnnouncementRemoteDataSource.kt │ │ │ ├── assignment │ │ │ │ ├── repository │ │ │ │ │ └── AssignmentRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── AssignmentCacheDataSource.kt │ │ │ │ │ └── AssignmentRemoteDataSource.kt │ │ │ ├── attempt │ │ │ │ ├── repository │ │ │ │ │ └── AttemptRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── AttemptCacheDataSource.kt │ │ │ │ │ └── AttemptRemoteDataSource.kt │ │ │ ├── auth │ │ │ │ ├── repository │ │ │ │ │ └── AuthRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── AuthRemoteDataSource.kt │ │ │ ├── base │ │ │ │ └── repository │ │ │ │ │ └── delegate │ │ │ │ │ ├── ListRepositoryDelegate.kt │ │ │ │ │ └── SingleRepositoryDelegate.kt │ │ │ ├── calendar │ │ │ │ ├── repository │ │ │ │ │ └── CalendarRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── CalendarCacheDataSource.kt │ │ │ ├── catalog │ │ │ │ ├── repository │ │ │ │ │ └── CatalogRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CatalogCacheDataSource.kt │ │ │ │ │ └── CatalogRemoteDataSource.kt │ │ │ ├── certificate │ │ │ │ ├── repository │ │ │ │ │ └── CertificateRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CertificateCacheDataSource.kt │ │ │ │ │ └── CertificateRemoteDataSource.kt │ │ │ ├── code_preference │ │ │ │ ├── repository │ │ │ │ │ └── CodePreferenceRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── CodePreferenceCacheDataSource.kt │ │ │ ├── comment │ │ │ │ ├── repository │ │ │ │ │ └── CommentRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── CommentRemoteDataSource.kt │ │ │ ├── course │ │ │ │ ├── repository │ │ │ │ │ ├── CoursePurchaseDataRepositoryImpl.kt │ │ │ │ │ ├── CourseRepositoryImpl.kt │ │ │ │ │ ├── CourseReviewSummaryRepositoryImpl.kt │ │ │ │ │ └── EnrollmentRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseCacheDataSource.kt │ │ │ │ │ ├── CourseRemoteDataSource.kt │ │ │ │ │ ├── CourseReviewSummaryCacheDataSource.kt │ │ │ │ │ ├── CourseReviewSummaryRemoteDataSource.kt │ │ │ │ │ ├── EnrollmentCacheDataSource.kt │ │ │ │ │ └── EnrollmentRemoteDataSource.kt │ │ │ ├── course_calendar │ │ │ │ ├── repository │ │ │ │ │ └── CourseCalendarRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── CourseCalendarCacheDataSource.kt │ │ │ ├── course_collection │ │ │ │ ├── repository │ │ │ │ │ └── CourseCollectionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseCollectionCacheDataSource.kt │ │ │ │ │ └── CourseCollectionRemoteDataSource.kt │ │ │ ├── course_list │ │ │ │ ├── model │ │ │ │ │ └── CourseListQueryData.kt │ │ │ │ └── source │ │ │ │ │ └── CourseListQueryCacheDataSource.kt │ │ │ ├── course_payments │ │ │ │ ├── repository │ │ │ │ │ └── CoursePaymentsRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CoursePaymentsCacheDataSource.kt │ │ │ │ │ └── CoursePaymentsRemoteDataSource.kt │ │ │ ├── course_purchase │ │ │ │ ├── repository │ │ │ │ │ └── BillingPurchasePayloadRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── BillingPurchasePayloadCacheDataSource.kt │ │ │ ├── course_recommendations │ │ │ │ ├── repository │ │ │ │ │ └── CourseRecommendationsRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseRecommendationsCacheDataSource.kt │ │ │ │ │ └── CourseRecommendationsRemoteDataSource.kt │ │ │ ├── course_revenue │ │ │ │ ├── repository │ │ │ │ │ ├── CourseBeneficiariesRepositoryImpl.kt │ │ │ │ │ ├── CourseBenefitByMonthsRepositoryImpl.kt │ │ │ │ │ ├── CourseBenefitSummariesRepositoryImpl.kt │ │ │ │ │ └── CourseBenefitsRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseBeneficiariesRemoteDataSource.kt │ │ │ │ │ ├── CourseBenefitByMonthsRemoteDataSource.kt │ │ │ │ │ ├── CourseBenefitSummariesRemoteDataSource.kt │ │ │ │ │ └── CourseBenefitsRemoteDataSource.kt │ │ │ ├── course_reviews │ │ │ │ ├── repository │ │ │ │ │ └── CourseReviewsRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseReviewsCacheDataSource.kt │ │ │ │ │ └── CourseReviewsRemoteDataSource.kt │ │ │ ├── device │ │ │ │ ├── repository │ │ │ │ │ └── DeviceRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── DeviceRemoteDataSource.kt │ │ │ ├── discussion_proxy │ │ │ │ ├── repository │ │ │ │ │ └── DiscussionProxyRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── DiscussionProxyRemoteDataSource.kt │ │ │ ├── discussion_thread │ │ │ │ ├── repository │ │ │ │ │ └── DiscussionThreadRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── DiscussionThreadCacheDataSource.kt │ │ │ │ │ └── DiscussionThreadRemoteDataSource.kt │ │ │ ├── download │ │ │ │ ├── repository │ │ │ │ │ └── DownloadRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── DownloadCacheDataSource.kt │ │ │ ├── email_address │ │ │ │ ├── repository │ │ │ │ │ └── EmailAddressRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── EmailAddressCacheDataSource.kt │ │ │ │ │ └── EmailAddressRemoteDataSource.kt │ │ │ ├── exam_session │ │ │ │ ├── repository │ │ │ │ │ └── ExamSessionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ExamSessionCacheDataSource.kt │ │ │ │ │ └── ExamSessionRemoteDataSource.kt │ │ │ ├── feedback │ │ │ │ ├── repository │ │ │ │ │ └── FeedbackRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── FeedbackCacheDataSource.kt │ │ │ ├── last_step │ │ │ │ ├── repository │ │ │ │ │ └── LastStepRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── LastStepCacheDataSource.kt │ │ │ │ │ └── LastStepRemoteDataSource.kt │ │ │ ├── lesson │ │ │ │ ├── repository │ │ │ │ │ └── LessonRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── LessonCacheDataSource.kt │ │ │ │ │ └── LessonRemoteDataSource.kt │ │ │ ├── magic_links │ │ │ │ ├── repository │ │ │ │ │ └── MagicLinksRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── MagicLinksRemoteDataSource.kt │ │ │ ├── mobile_tiers │ │ │ │ ├── repository │ │ │ │ │ ├── LightSkuRepositoryImpl.kt │ │ │ │ │ └── MobileTiersRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── LightSkuCacheDataSource.kt │ │ │ │ │ ├── MobileTiersCacheDataSource.kt │ │ │ │ │ └── MobileTiersRemoteDataSource.kt │ │ │ ├── network │ │ │ │ ├── repository │ │ │ │ │ └── NetworkTypeRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── NetworkTypeCacheDataSource.kt │ │ │ ├── notification │ │ │ │ ├── repository │ │ │ │ │ └── NotificationRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── NotificationCacheDataSource.kt │ │ │ │ │ └── NotificationRemoteDataSource.kt │ │ │ ├── personal_deadlines │ │ │ │ ├── DeadlinesHelper.kt │ │ │ │ ├── repository │ │ │ │ │ ├── DeadlinesBannerRepositoryImpl.kt │ │ │ │ │ └── DeadlinesRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── DeadlinesBannerCacheDataSource.kt │ │ │ │ │ ├── DeadlinesCacheDataSource.kt │ │ │ │ │ └── DeadlinesRemoteDataSource.kt │ │ │ ├── personal_offers │ │ │ │ ├── repository │ │ │ │ │ └── PersonalOffersRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── PersonalOffersRemoteDataSource.kt │ │ │ ├── proctor_session │ │ │ │ ├── repository │ │ │ │ │ └── ProctorSessionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ProctorSessionCacheDataSource.kt │ │ │ │ │ └── ProctorSessionRemoteDataSource.kt │ │ │ ├── profile │ │ │ │ ├── repository │ │ │ │ │ └── ProfileRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ProfileCacheDataSource.kt │ │ │ │ │ └── ProfileRemoteDataSource.kt │ │ │ ├── progress │ │ │ │ ├── repository │ │ │ │ │ └── ProgressRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ProgressCacheDataSource.kt │ │ │ │ │ └── ProgressRemoteDataSource.kt │ │ │ ├── purchase_notification │ │ │ │ ├── model │ │ │ │ │ └── PurchaseNotificationScheduled.kt │ │ │ │ ├── repository │ │ │ │ │ └── PurchaseNotificationRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── PurchaseNotificationCacheDataSource.kt │ │ │ ├── rating │ │ │ │ ├── repository │ │ │ │ │ └── RatingRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── RatingRemoteDataSource.kt │ │ │ ├── recommendation │ │ │ │ ├── repository │ │ │ │ │ └── RecommendationRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── RecommendationRemoteDataSource.kt │ │ │ ├── review │ │ │ │ ├── repository │ │ │ │ │ └── ReviewRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── ReviewRemoteDataSource.kt │ │ │ ├── review_instruction │ │ │ │ ├── repository │ │ │ │ │ └── ReviewInstructionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ReviewInstructionCacheDataSource.kt │ │ │ │ │ └── ReviewInstructionRemoteDataSource.kt │ │ │ ├── review_session │ │ │ │ ├── repository │ │ │ │ │ └── ReviewSessionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ReviewSessionCacheDataSource.kt │ │ │ │ │ └── ReviewSessionRemoteDataSource.kt │ │ │ ├── search │ │ │ │ ├── repository │ │ │ │ │ └── SearchRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── SearchCacheDataSource.kt │ │ │ │ │ └── SearchRemoteDataSource.kt │ │ │ ├── search_result │ │ │ │ ├── repository │ │ │ │ │ └── SearchResultRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── SearchResultRemoteDataSource.kt │ │ │ ├── section │ │ │ │ ├── repository │ │ │ │ │ └── SectionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── SectionCacheDataSource.kt │ │ │ │ │ └── SectionRemoteDataSource.kt │ │ │ ├── social_profile │ │ │ │ ├── repository │ │ │ │ │ └── SocialProfileRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── SocialProfileCacheDataSource.kt │ │ │ │ │ └── SocialProfileRemoteDataSource.kt │ │ │ ├── step │ │ │ │ ├── repository │ │ │ │ │ └── StepRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── StepCacheDataSource.kt │ │ │ │ │ └── StepRemoteDataSource.kt │ │ │ ├── step_source │ │ │ │ ├── repository │ │ │ │ │ └── StepSourceRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── StepSourceRemoteDataSource.kt │ │ │ ├── stories │ │ │ │ └── source │ │ │ │ │ └── StoryTemplatesRemoteDataSource.kt │ │ │ ├── story │ │ │ │ ├── repository │ │ │ │ │ └── StoryReactionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── StoryReactionCacheDataSource.kt │ │ │ ├── submission │ │ │ │ ├── repository │ │ │ │ │ └── SubmissionRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── SubmissionCacheDataSource.kt │ │ │ │ │ └── SubmissionRemoteDataSource.kt │ │ │ ├── unit │ │ │ │ ├── repository │ │ │ │ │ └── UnitRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── UnitCacheDataSource.kt │ │ │ │ │ └── UnitRemoteDataSource.kt │ │ │ ├── user │ │ │ │ ├── repository │ │ │ │ │ └── UserRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── UserCacheDataSource.kt │ │ │ │ │ └── UserRemoteDataSource.kt │ │ │ ├── user_activity │ │ │ │ ├── repository │ │ │ │ │ └── UserActivityRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── UserActivityRemoteDataSource.kt │ │ │ ├── user_code_run │ │ │ │ ├── repository │ │ │ │ │ └── UserCodeRunRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── UserCodeRunRemoteDataSource.kt │ │ │ ├── user_courses │ │ │ │ ├── repository │ │ │ │ │ └── UserCoursesRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── UserCoursesCacheDataSource.kt │ │ │ │ │ └── UserCoursesRemoteDataSource.kt │ │ │ ├── user_profile │ │ │ │ ├── repository │ │ │ │ │ └── UserProfileRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── UserProfileRemoteDataSource.kt │ │ │ ├── video_player │ │ │ │ ├── repository │ │ │ │ │ └── VideoTimestampRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── VideoTimestampCacheDataSource.kt │ │ │ ├── view_assignment │ │ │ │ ├── repository │ │ │ │ │ └── ViewAssignmentRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── ViewAssignmentCacheDataSource.kt │ │ │ │ │ └── ViewAssignmentRemoteDataSource.kt │ │ │ ├── visited_courses │ │ │ │ ├── repository │ │ │ │ │ └── VisitedCoursesRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ ├── VisitedCoursesCacheDataSource.kt │ │ │ │ │ └── VisitedCoursesRemoteDataSource.kt │ │ │ ├── vote │ │ │ │ ├── repository │ │ │ │ │ └── VoteRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ │ └── VoteRemoteDataSource.kt │ │ │ └── wishlist │ │ │ │ ├── repository │ │ │ │ └── WishlistRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ ├── WishlistCacheDataSource.kt │ │ │ │ └── WishlistRemoteDataSource.kt │ │ │ ├── domain │ │ │ ├── achievement │ │ │ │ ├── interactor │ │ │ │ │ └── AchievementInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── AchievementItem.kt │ │ │ │ └── repository │ │ │ │ │ └── AchievementRepository.kt │ │ │ ├── analytic │ │ │ │ ├── interactor │ │ │ │ │ └── AnalyticInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── AnalyticRepository.kt │ │ │ ├── announcement │ │ │ │ ├── model │ │ │ │ │ └── Announcement.kt │ │ │ │ └── repository │ │ │ │ │ └── AnnouncementRepository.kt │ │ │ ├── app_rating │ │ │ │ └── interactor │ │ │ │ │ └── AppRatingInteractor.kt │ │ │ ├── assignment │ │ │ │ └── repository │ │ │ │ │ └── AssignmentRepository.kt │ │ │ ├── attempt │ │ │ │ └── repository │ │ │ │ │ └── AttemptRepository.kt │ │ │ ├── auth │ │ │ │ ├── interactor │ │ │ │ │ └── AuthInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── LoginFailType.kt │ │ │ │ │ ├── RegistrationError.kt │ │ │ │ │ ├── SocialAuthError.kt │ │ │ │ │ └── SocialAuthType.kt │ │ │ │ └── repository │ │ │ │ │ └── AuthRepository.kt │ │ │ ├── banner │ │ │ │ ├── analytic │ │ │ │ │ ├── PromoBannerClickedAnalyticEvent.kt │ │ │ │ │ └── PromoBannerSeen.kt │ │ │ │ ├── interactor │ │ │ │ │ └── BannerInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── Banner.kt │ │ │ ├── base │ │ │ │ ├── DataSourceType.kt │ │ │ │ ├── InternalDeeplinkURLSpan.kt │ │ │ │ └── analytic │ │ │ │ │ ├── AnalyticEvent.kt │ │ │ │ │ ├── AnalyticEventExtensions.kt │ │ │ │ │ ├── AnalyticSource.kt │ │ │ │ │ ├── UserProperty.kt │ │ │ │ │ └── UserPropertySource.kt │ │ │ ├── calendar │ │ │ │ ├── model │ │ │ │ │ ├── CalendarEventData.kt │ │ │ │ │ └── CalendarItem.kt │ │ │ │ └── repository │ │ │ │ │ └── CalendarRepository.kt │ │ │ ├── catalog │ │ │ │ ├── interactor │ │ │ │ │ └── CatalogInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── CatalogAuthor.kt │ │ │ │ │ ├── CatalogBlock.kt │ │ │ │ │ ├── CatalogBlockContent.kt │ │ │ │ │ ├── CatalogCourseList.kt │ │ │ │ │ └── CatalogSpecialization.kt │ │ │ │ └── repository │ │ │ │ │ └── CatalogRepository.kt │ │ │ ├── certificate │ │ │ │ ├── interactor │ │ │ │ │ └── CertificatesInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── CertificateRepository.kt │ │ │ ├── code_preference │ │ │ │ ├── interactor │ │ │ │ │ └── CodePreferenceInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── InitCodePreference.kt │ │ │ │ └── repository │ │ │ │ │ └── CodePreferenceRepository.kt │ │ │ ├── comment │ │ │ │ ├── interactor │ │ │ │ │ ├── CommentInteractor.kt │ │ │ │ │ └── ComposeCommentInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ └── CommentsDataMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── CommentsData.kt │ │ │ │ └── repository │ │ │ │ │ └── CommentRepository.kt │ │ │ ├── course │ │ │ │ ├── analytic │ │ │ │ │ ├── BuyCoursePressedEvent.kt │ │ │ │ │ ├── CourseCardSeenAnalyticEvent.kt │ │ │ │ │ ├── CourseJoinedEvent.kt │ │ │ │ │ ├── CoursePreviewScreenOpenedAnalyticEvent.kt │ │ │ │ │ ├── CourseViewSource.kt │ │ │ │ │ ├── UserCourseActionEvent.kt │ │ │ │ │ └── batch │ │ │ │ │ │ ├── BuyCoursePressedAnalyticBatchEvent.kt │ │ │ │ │ │ ├── CourseCardSeenAnalyticBatchEvent.kt │ │ │ │ │ │ └── CoursePreviewScreenOpenedAnalyticBatchEvent.kt │ │ │ │ ├── interactor │ │ │ │ │ ├── ContinueLearningInteractor.kt │ │ │ │ │ ├── CourseEnrollmentInteractor.kt │ │ │ │ │ ├── CourseIndexingInteractor.kt │ │ │ │ │ ├── CourseInteractor.kt │ │ │ │ │ └── CourseStatsInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ ├── CourseStateMapper.kt │ │ │ │ │ └── CourseStatsMapper.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseHeaderData.kt │ │ │ │ │ ├── CoursePurchasePayload.kt │ │ │ │ │ ├── CourseStats.kt │ │ │ │ │ ├── EnrollmentState.kt │ │ │ │ │ └── SourceTypeComposition.kt │ │ │ │ └── repository │ │ │ │ │ ├── CoursePurchaseDataRepository.kt │ │ │ │ │ ├── CourseRepository.kt │ │ │ │ │ ├── CourseReviewSummaryRepository.kt │ │ │ │ │ └── EnrollmentRepository.kt │ │ │ ├── course_calendar │ │ │ │ ├── interactor │ │ │ │ │ └── CourseCalendarInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── SectionDateEvent.kt │ │ │ │ └── repository │ │ │ │ │ └── CourseCalendarRepository.kt │ │ │ ├── course_collection │ │ │ │ ├── interactor │ │ │ │ │ └── CourseCollectionInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseCollectionQuery.kt │ │ │ │ │ └── CourseCollectionResult.kt │ │ │ │ └── repository │ │ │ │ │ └── CourseCollectionRepository.kt │ │ │ ├── course_complete │ │ │ │ ├── analytic │ │ │ │ │ ├── FinishedStepsBackToAssignmentsPressedAnalyticEvent.kt │ │ │ │ │ ├── FinishedStepsFindNewCoursePressedAnalyticEvent.kt │ │ │ │ │ ├── FinishedStepsLeaveReviewPressedAnalyticEvent.kt │ │ │ │ │ ├── FinishedStepsScreenOpenedAnalyticEvent.kt │ │ │ │ │ ├── FinishedStepsSharePressedAnalyticEvent.kt │ │ │ │ │ └── FinishedStepsViewCertificatePressedAnalyticEvent.kt │ │ │ │ ├── interactor │ │ │ │ │ └── CourseCompleteInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── CourseCompleteInfo.kt │ │ │ ├── course_content │ │ │ │ └── interactor │ │ │ │ │ └── CourseContentInteractor.kt │ │ │ ├── course_continue │ │ │ │ └── analytic │ │ │ │ │ └── CourseContinuePressedEvent.kt │ │ │ ├── course_info │ │ │ │ ├── interactor │ │ │ │ │ └── CourseInfoInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── CourseInfoData.kt │ │ │ ├── course_list │ │ │ │ ├── interactor │ │ │ │ │ ├── CourseListInteractor.kt │ │ │ │ │ ├── CourseListSearchInteractor.kt │ │ │ │ │ ├── CourseListUserInteractor.kt │ │ │ │ │ ├── CourseListVisitedInteractor.kt │ │ │ │ │ └── RemindAppNotificationInteractor.kt │ │ │ │ └── model │ │ │ │ │ ├── CourseListItem.kt │ │ │ │ │ ├── CourseListQuery.kt │ │ │ │ │ ├── UserCourseQuery.kt │ │ │ │ │ └── UserCoursesLoaded.kt │ │ │ ├── course_news │ │ │ │ ├── analytic │ │ │ │ │ └── CourseNewsScreenOpenedAnalyticEvent.kt │ │ │ │ ├── exception │ │ │ │ │ └── NotEnrolledException.kt │ │ │ │ ├── interactor │ │ │ │ │ └── CourseNewsInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── CourseNewsListItem.kt │ │ │ ├── course_payments │ │ │ │ ├── exception │ │ │ │ │ ├── CourseAlreadyOwnedException.kt │ │ │ │ │ └── CoursePurchaseVerificationException.kt │ │ │ │ ├── mapper │ │ │ │ │ └── DefaultPromoCodeMapper.kt │ │ │ │ ├── model │ │ │ │ │ ├── CoursePayment.kt │ │ │ │ │ ├── CoursePurchaseInfo.kt │ │ │ │ │ ├── DeeplinkPromoCode.kt │ │ │ │ │ ├── DefaultPromoCode.kt │ │ │ │ │ └── PromoCodeSku.kt │ │ │ │ └── repository │ │ │ │ │ └── CoursePaymentsRepository.kt │ │ │ ├── course_purchase │ │ │ │ ├── analytic │ │ │ │ │ ├── BuyCourseIAPFlowFailureAnalyticEvent.kt │ │ │ │ │ ├── BuyCourseIAPFlowStartAnalyticEvent.kt │ │ │ │ │ ├── BuyCourseIAPFlowSuccessAnalyticEvent.kt │ │ │ │ │ ├── BuyCoursePromoFailureAnalyticEvent.kt │ │ │ │ │ ├── BuyCoursePromoStartPressedAnalyticEvent.kt │ │ │ │ │ ├── BuyCoursePromoSuccessAnalyticEvent.kt │ │ │ │ │ ├── BuyCourseVerificationFailureAnalyticEvent.kt │ │ │ │ │ ├── BuyCourseVerificationSuccessAnalyticEvent.kt │ │ │ │ │ ├── CoursePurchaseSource.kt │ │ │ │ │ ├── RestoreCoursePurchaseFailureAnalyticEvent.kt │ │ │ │ │ ├── RestoreCoursePurchasePressedAnalyticEvent.kt │ │ │ │ │ ├── RestoreCoursePurchaseSource.kt │ │ │ │ │ └── RestoreCoursePurchaseSuccessAnalyticEvent.kt │ │ │ │ ├── error │ │ │ │ │ └── BillingException.kt │ │ │ │ ├── interactor │ │ │ │ │ └── CoursePurchaseInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── BillingPurchasePayload.kt │ │ │ │ │ ├── CoursePurchaseFlow.kt │ │ │ │ │ ├── CoursePurchaseObfuscatedParams.kt │ │ │ │ │ └── PurchaseFlowData.kt │ │ │ │ └── repository │ │ │ │ │ └── BillingPurchasePayloadRepository.kt │ │ │ ├── course_recommendations │ │ │ │ ├── interactor │ │ │ │ │ └── CourseRecommendationsInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── CourseRecommendation.kt │ │ │ │ └── repository │ │ │ │ │ └── CourseRecommendationsRepository.kt │ │ │ ├── course_revenue │ │ │ │ ├── analytic │ │ │ │ │ ├── CourseBenefitClickedEvent.kt │ │ │ │ │ ├── CourseBenefitsScreenOpenedEvent.kt │ │ │ │ │ └── CourseBenefitsSummaryClicked.kt │ │ │ │ ├── interactor │ │ │ │ │ └── CourseBenefitsInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseBeneficiary.kt │ │ │ │ │ ├── CourseBenefit.kt │ │ │ │ │ ├── CourseBenefitByMonth.kt │ │ │ │ │ ├── CourseBenefitByMonthListItem.kt │ │ │ │ │ ├── CourseBenefitListItem.kt │ │ │ │ │ └── CourseBenefitSummary.kt │ │ │ │ └── repository │ │ │ │ │ ├── CourseBeneficiariesRepository.kt │ │ │ │ │ ├── CourseBenefitByMonthsRepository.kt │ │ │ │ │ ├── CourseBenefitSummariesRepository.kt │ │ │ │ │ └── CourseBenefitsRepository.kt │ │ │ ├── course_reviews │ │ │ │ ├── analytic │ │ │ │ │ ├── CourseReviewCreatedAnalyticEvent.kt │ │ │ │ │ ├── CourseReviewDeletedAnalyticEvent.kt │ │ │ │ │ ├── CourseReviewUpdatedAnalyticEvent.kt │ │ │ │ │ ├── CourseReviewViewSource.kt │ │ │ │ │ ├── CreateCourseReviewPressedAnalyticEvent.kt │ │ │ │ │ ├── EditCourseReviewPressedAnalyticEvent.kt │ │ │ │ │ └── UserCourseReviewsScreenOpenedAnalyticEvent.kt │ │ │ │ ├── interactor │ │ │ │ │ ├── ComposeCourseReviewInteractor.kt │ │ │ │ │ └── CourseReviewsInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseReview.kt │ │ │ │ │ └── CourseReviewItem.kt │ │ │ │ └── repository │ │ │ │ │ └── CourseReviewsRepository.kt │ │ │ ├── course_search │ │ │ │ ├── analytic │ │ │ │ │ ├── CourseContentSearchResultClicked.kt │ │ │ │ │ ├── CourseContentSearchScreenOpenedAnalyticEvent.kt │ │ │ │ │ └── CourseContentSearchedAnalyticEvent.kt │ │ │ │ ├── interactor │ │ │ │ │ └── CourseSearchInteractor.kt │ │ │ │ └── model │ │ │ │ │ ├── CourseSearchResult.kt │ │ │ │ │ └── CourseSearchResultListItem.kt │ │ │ ├── device │ │ │ │ └── repository │ │ │ │ │ └── DeviceRepository.kt │ │ │ ├── discussion_proxy │ │ │ │ ├── interactor │ │ │ │ │ └── DiscussionProxyInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ └── DiscussionProxyMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── DiscussionOrder.kt │ │ │ │ └── repository │ │ │ │ │ └── DiscussionProxyRepository.kt │ │ │ ├── discussion_thread │ │ │ │ └── repository │ │ │ │ │ └── DiscussionThreadRepository.kt │ │ │ ├── download │ │ │ │ ├── interactor │ │ │ │ │ └── DownloadsInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ └── DownloadProgressStatusMapperImpl.kt │ │ │ │ └── repository │ │ │ │ │ └── DownloadRepository.kt │ │ │ ├── email_address │ │ │ │ └── repository │ │ │ │ │ └── EmailAddressRepository.kt │ │ │ ├── exam │ │ │ │ ├── interactor │ │ │ │ │ └── ExamSessionDataInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── ExamStatus.kt │ │ │ │ │ └── SessionData.kt │ │ │ │ └── resolver │ │ │ │ │ └── ExamStatusResolver.kt │ │ │ ├── exam_session │ │ │ │ ├── model │ │ │ │ │ └── ExamSession.kt │ │ │ │ └── repository │ │ │ │ │ └── ExamSessionRepository.kt │ │ │ ├── feedback │ │ │ │ ├── interactor │ │ │ │ │ └── FeedbackInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── SupportEmailData.kt │ │ │ │ └── repository │ │ │ │ │ └── FeedbackRepository.kt │ │ │ ├── filter │ │ │ │ ├── analytic │ │ │ │ │ └── ContenLanguageChangedAnalyticEvent.kt │ │ │ │ └── model │ │ │ │ │ ├── CourseListFilterQuery.kt │ │ │ │ │ └── SubmissionsFilterQuery.kt │ │ │ ├── home │ │ │ │ └── interactor │ │ │ │ │ └── HomeInteractor.kt │ │ │ ├── last_step │ │ │ │ ├── model │ │ │ │ │ └── LastStep.kt │ │ │ │ └── repository │ │ │ │ │ └── LastStepRepository.kt │ │ │ ├── latex │ │ │ │ ├── mapper │ │ │ │ │ └── LatexTextMapper.kt │ │ │ │ └── model │ │ │ │ │ ├── LatexData.kt │ │ │ │ │ ├── Settings.kt │ │ │ │ │ ├── block │ │ │ │ │ ├── ContentBlock.kt │ │ │ │ │ ├── HighlightScriptBlock.kt │ │ │ │ │ ├── HorizontalScrollBlock.kt │ │ │ │ │ ├── KotlinRunnableSamplesScriptBlock.kt │ │ │ │ │ ├── LatexScriptBlock.kt │ │ │ │ │ ├── MetaBlock.kt │ │ │ │ │ ├── ModelViewerBlock.kt │ │ │ │ │ └── WebScriptBlock.kt │ │ │ │ │ └── rule │ │ │ │ │ ├── ContentRule.kt │ │ │ │ │ ├── RelativePathContentRule.kt │ │ │ │ │ └── ReplaceModelViewWithImage.kt │ │ │ ├── lesson │ │ │ │ ├── interactor │ │ │ │ │ ├── LessonContentInteractor.kt │ │ │ │ │ └── LessonInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── LessonData.kt │ │ │ │ │ ├── LessonDeepLinkData.kt │ │ │ │ │ └── StepItem.kt │ │ │ │ └── repository │ │ │ │ │ └── LessonRepository.kt │ │ │ ├── lesson_demo │ │ │ │ ├── interactor │ │ │ │ │ └── LessonDemoInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── LessonDemoData.kt │ │ │ ├── magic_links │ │ │ │ ├── interactor │ │ │ │ │ └── MagicLinkInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── MagicLink.kt │ │ │ │ └── repository │ │ │ │ │ └── MagicLinksRepository.kt │ │ │ ├── mobile_tiers │ │ │ │ ├── interactor │ │ │ │ │ └── MobileTiersInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── LightSku.kt │ │ │ │ │ └── MobileTier.kt │ │ │ │ └── repository │ │ │ │ │ ├── LightSkuRepository.kt │ │ │ │ │ └── MobileTiersRepository.kt │ │ │ ├── network │ │ │ │ ├── exception │ │ │ │ │ └── NetworkRequirementsNotSatisfiedException.kt │ │ │ │ └── repository │ │ │ │ │ └── NetworkTypeRepository.kt │ │ │ ├── notification │ │ │ │ ├── interactor │ │ │ │ │ └── CourseNotificationInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── NotificationRepository.kt │ │ │ ├── onboarding │ │ │ │ └── analytic │ │ │ │ │ ├── OnboardingAllCoursesAnalyticEvent.kt │ │ │ │ │ ├── OnboardingBackToGoalsAnalyticEvent.kt │ │ │ │ │ ├── OnboardingClosedAnalyticEvent.kt │ │ │ │ │ ├── OnboardingCompletedAnalyticEvent.kt │ │ │ │ │ ├── OnboardingCourseListSelectedAnalyticEvent.kt │ │ │ │ │ ├── OnboardingGoalSelectedAnalyticEvent.kt │ │ │ │ │ ├── OnboardingOpenedAnalyticEvent.kt │ │ │ │ │ └── OnboardingParseErrorAnalyticEvent.kt │ │ │ ├── personal_deadlines │ │ │ │ ├── analytic │ │ │ │ │ ├── DeadlinesNotificationClicked.kt │ │ │ │ │ ├── DeadlinesNotificationDismissed.kt │ │ │ │ │ └── DeadlinesNotificationShown.kt │ │ │ │ ├── interactor │ │ │ │ │ ├── DeadlinesInteractor.kt │ │ │ │ │ ├── DeadlinesNotificationInteractor.kt │ │ │ │ │ └── DeadlinesSynchronizationInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── Deadline.kt │ │ │ │ │ ├── DeadlinesWrapper.kt │ │ │ │ │ └── LearningRate.kt │ │ │ │ ├── repository │ │ │ │ │ ├── DeadlinesBannerRepository.kt │ │ │ │ │ └── DeadlinesRepository.kt │ │ │ │ └── resolver │ │ │ │ │ ├── DeadlinesResolver.kt │ │ │ │ │ └── DeadlinesResolverImpl.kt │ │ │ ├── personal_offers │ │ │ │ ├── model │ │ │ │ │ └── PersonalOffers.kt │ │ │ │ └── repository │ │ │ │ │ └── PersonalOffersRepository.kt │ │ │ ├── proctor_session │ │ │ │ ├── model │ │ │ │ │ └── ProctorSession.kt │ │ │ │ └── repository │ │ │ │ │ └── ProctorSessionRepository.kt │ │ │ ├── profile │ │ │ │ ├── interactor │ │ │ │ │ ├── ProfileGuestInteractor.kt │ │ │ │ │ └── ProfileInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── ProfileData.kt │ │ │ │ └── repository │ │ │ │ │ └── ProfileRepository.kt │ │ │ ├── profile_activities │ │ │ │ ├── interactor │ │ │ │ │ └── ProfileActivitiesInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── ProfileActivitiesData.kt │ │ │ ├── profile_edit │ │ │ │ └── ProfileEditInteractor.kt │ │ │ ├── progress │ │ │ │ ├── interactor │ │ │ │ │ └── LocalProgressInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ └── ProgressableMapper.kt │ │ │ │ └── repository │ │ │ │ │ └── ProgressRepository.kt │ │ │ ├── purchase_notification │ │ │ │ ├── analytic │ │ │ │ │ ├── PurchaseNotificationClicked.kt │ │ │ │ │ ├── PurchaseNotificationDismissed.kt │ │ │ │ │ └── PurchaseNotificationShown.kt │ │ │ │ ├── interactor │ │ │ │ │ ├── PurchaseNotificationInteractor.kt │ │ │ │ │ └── PurchaseReminderInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── PurchaseNotificationRepository.kt │ │ │ ├── rating │ │ │ │ └── repository │ │ │ │ │ └── RatingRepository.kt │ │ │ ├── recommendation │ │ │ │ └── repository │ │ │ │ │ └── RecommendationRepository.kt │ │ │ ├── remind │ │ │ │ └── analytic │ │ │ │ │ ├── RemindAppNotificationClicked.kt │ │ │ │ │ ├── RemindAppNotificationDismissed.kt │ │ │ │ │ ├── RemindAppNotificationShown.kt │ │ │ │ │ ├── RemindRegistrationNotificationClicked.kt │ │ │ │ │ ├── RemindRegistrationNotificationDismissed.kt │ │ │ │ │ └── RemindRegistrationNotificationShown.kt │ │ │ ├── retention │ │ │ │ └── analytic │ │ │ │ │ ├── RetentionNotificationClicked.kt │ │ │ │ │ ├── RetentionNotificationDismissed.kt │ │ │ │ │ └── RetentionNotificationShown.kt │ │ │ ├── review │ │ │ │ ├── model │ │ │ │ │ └── Review.kt │ │ │ │ └── repository │ │ │ │ │ └── ReviewRepository.kt │ │ │ ├── review_instruction │ │ │ │ ├── model │ │ │ │ │ ├── ReviewInstruction.kt │ │ │ │ │ └── ReviewInstructionData.kt │ │ │ │ └── repository │ │ │ │ │ └── ReviewInstructionRepository.kt │ │ │ ├── review_session │ │ │ │ ├── model │ │ │ │ │ ├── ReviewSession.kt │ │ │ │ │ └── ReviewSessionData.kt │ │ │ │ └── repository │ │ │ │ │ └── ReviewSessionRepository.kt │ │ │ ├── rubric │ │ │ │ └── model │ │ │ │ │ └── Rubric.kt │ │ │ ├── search │ │ │ │ └── repository │ │ │ │ │ └── SearchRepository.kt │ │ │ ├── search_result │ │ │ │ ├── mapper │ │ │ │ │ └── SearchResultRemoteQueryParamsMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── SearchResultQuery.kt │ │ │ │ └── repository │ │ │ │ │ └── SearchResultRepository.kt │ │ │ ├── section │ │ │ │ └── repository │ │ │ │ │ └── SectionRepository.kt │ │ │ ├── settings │ │ │ │ └── interactor │ │ │ │ │ ├── SettingsAccountDeletionInteractor.kt │ │ │ │ │ └── VideoQualityInteractor.kt │ │ │ ├── social_profile │ │ │ │ ├── interactor │ │ │ │ │ └── SocialProfileInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── SocialProfileRepository.kt │ │ │ ├── solutions │ │ │ │ ├── interactor │ │ │ │ │ └── SolutionsInteractor.kt │ │ │ │ ├── mapper │ │ │ │ │ └── SolutionItemMapper.kt │ │ │ │ └── model │ │ │ │ │ └── SolutionItem.kt │ │ │ ├── step │ │ │ │ ├── analytic │ │ │ │ │ └── StepAnalyticExtension.kt │ │ │ │ ├── interactor │ │ │ │ │ ├── StepIndexingInteractor.kt │ │ │ │ │ ├── StepInteractor.kt │ │ │ │ │ └── StepNavigationInteractor.kt │ │ │ │ ├── model │ │ │ │ │ ├── StepDirectionData.kt │ │ │ │ │ └── StepNavigationDirection.kt │ │ │ │ └── repository │ │ │ │ │ └── StepRepository.kt │ │ │ ├── step_content_text │ │ │ │ ├── interactor │ │ │ │ │ └── TextContentFontInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── FontSize.kt │ │ │ ├── step_content_video │ │ │ │ ├── interactor │ │ │ │ │ └── VideoLengthInteractor.kt │ │ │ │ └── mapper │ │ │ │ │ └── VideoLengthMapper.kt │ │ │ ├── step_quiz │ │ │ │ ├── interactor │ │ │ │ │ └── StepQuizInteractor.kt │ │ │ │ └── model │ │ │ │ │ ├── StepQuizLessonData.kt │ │ │ │ │ └── StepQuizRestrictions.kt │ │ │ ├── step_quiz_review │ │ │ │ └── interactor │ │ │ │ │ └── StepQuizReviewInteractor.kt │ │ │ ├── step_source │ │ │ │ ├── interactor │ │ │ │ │ └── StepSourceInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── StepSourceRepository.kt │ │ │ ├── stories │ │ │ │ └── interactor │ │ │ │ │ └── StoriesInteractor.kt │ │ │ ├── story │ │ │ │ ├── interactor │ │ │ │ │ └── StoryReactionInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── StoryReaction.kt │ │ │ │ └── repository │ │ │ │ │ └── StoryReactionRepository.kt │ │ │ ├── story_deeplink │ │ │ │ ├── interactor │ │ │ │ │ └── StoryDeepLinkInteractor.kt │ │ │ │ └── model │ │ │ │ │ └── StoryDeepLinkNotification.kt │ │ │ ├── streak │ │ │ │ ├── analytic │ │ │ │ │ ├── StreakNotificationClicked.kt │ │ │ │ │ ├── StreakNotificationDismissed.kt │ │ │ │ │ └── StreakNotificationShown.kt │ │ │ │ └── interactor │ │ │ │ │ └── StreakInteractor.kt │ │ │ ├── submission │ │ │ │ ├── interactor │ │ │ │ │ ├── LastSubmissionInteractor.kt │ │ │ │ │ └── SubmissionInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── SubmissionItem.kt │ │ │ │ └── repository │ │ │ │ │ └── SubmissionRepository.kt │ │ │ ├── unit │ │ │ │ └── repository │ │ │ │ │ └── UnitRepository.kt │ │ │ ├── user │ │ │ │ └── repository │ │ │ │ │ └── UserRepository.kt │ │ │ ├── user_activity │ │ │ │ └── repository │ │ │ │ │ └── UserActivityRepository.kt │ │ │ ├── user_code_run │ │ │ │ ├── interactor │ │ │ │ │ └── UserCodeRunInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── UserCodeRunRepository.kt │ │ │ ├── user_courses │ │ │ │ ├── interactor │ │ │ │ │ └── UserCoursesInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── UserCourse.kt │ │ │ │ └── repository │ │ │ │ │ └── UserCoursesRepository.kt │ │ │ ├── user_profile │ │ │ │ └── repository │ │ │ │ │ └── UserProfileRepository.kt │ │ │ ├── user_reviews │ │ │ │ ├── interactor │ │ │ │ │ └── UserCourseReviewsInteractor.kt │ │ │ │ └── model │ │ │ │ │ ├── UserCourseReviewItem.kt │ │ │ │ │ ├── UserCourseReviewOperation.kt │ │ │ │ │ └── UserCourseReviewsResult.kt │ │ │ ├── video_player │ │ │ │ ├── analytic │ │ │ │ │ ├── PIPActivated.kt │ │ │ │ │ ├── VideoPlayerControlClickedEvent.kt │ │ │ │ │ └── VideoQualityChangedEvent.kt │ │ │ │ ├── interactor │ │ │ │ │ └── VideoPlayerSettingsInteractor.kt │ │ │ │ └── repository │ │ │ │ │ └── VideoTimestampRepository.kt │ │ │ ├── view_assignment │ │ │ │ ├── interactor │ │ │ │ │ ├── DeferrableViewAssignmentReportInteractor.kt │ │ │ │ │ └── ViewAssignmentReportInteractor.kt │ │ │ │ ├── repository │ │ │ │ │ └── ViewAssignmentRepository.kt │ │ │ │ └── service │ │ │ │ │ └── DeferrableViewAssignmentReportService.kt │ │ │ ├── visited_courses │ │ │ │ ├── interactor │ │ │ │ │ └── VisitedCoursesInteractor.kt │ │ │ │ ├── model │ │ │ │ │ └── VisitedCourse.kt │ │ │ │ └── repository │ │ │ │ │ └── VisitedCoursesRepository.kt │ │ │ ├── vote │ │ │ │ └── repository │ │ │ │ │ └── VoteRepository.kt │ │ │ └── wishlist │ │ │ │ ├── analytic │ │ │ │ ├── CourseWishlistAddedEvent.kt │ │ │ │ ├── CourseWishlistRemovedEvent.kt │ │ │ │ └── WishlistOpenedEvent.kt │ │ │ │ ├── interactor │ │ │ │ ├── CourseListWishInteractor.kt │ │ │ │ └── WishlistInteractor.kt │ │ │ │ ├── model │ │ │ │ ├── WishlistEntry.kt │ │ │ │ └── WishlistOperationData.kt │ │ │ │ └── repository │ │ │ │ └── WishlistRepository.kt │ │ │ ├── presentation │ │ │ ├── achievement │ │ │ │ ├── AchievementsPresenter.kt │ │ │ │ └── AchievementsView.kt │ │ │ ├── auth │ │ │ │ ├── CredentialAuthPresenter.kt │ │ │ │ ├── CredentialAuthView.kt │ │ │ │ ├── RegistrationPresenter.kt │ │ │ │ ├── RegistrationView.kt │ │ │ │ ├── SocialAuthPresenter.kt │ │ │ │ └── SocialAuthView.kt │ │ │ ├── banner │ │ │ │ ├── BannerFeature.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── BannerActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── BannerReducer.kt │ │ │ ├── base │ │ │ │ ├── PresenterBase.kt │ │ │ │ ├── PresenterViewHolder.kt │ │ │ │ └── injection │ │ │ │ │ ├── DaggerViewModelFactory.kt │ │ │ │ │ └── ViewModelKey.kt │ │ │ ├── catalog │ │ │ │ ├── CatalogFeature.kt │ │ │ │ ├── CatalogViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CatalogActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── CatalogReducer.kt │ │ │ ├── certificate │ │ │ │ ├── CertificatesPresenter.kt │ │ │ │ └── CertificatesView.kt │ │ │ ├── comment │ │ │ │ ├── CommentsPresenter.kt │ │ │ │ ├── CommentsView.kt │ │ │ │ ├── ComposeCommentPresenter.kt │ │ │ │ ├── ComposeCommentView.kt │ │ │ │ ├── mapper │ │ │ │ │ └── CommentsStateMapper.kt │ │ │ │ └── model │ │ │ │ │ └── CommentItem.kt │ │ │ ├── course │ │ │ │ ├── CoursePresenter.kt │ │ │ │ ├── CourseView.kt │ │ │ │ ├── mapper │ │ │ │ │ └── EnrollmentErrorMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── EnrollmentError.kt │ │ │ │ └── resolver │ │ │ │ │ └── CoursePurchaseDataResolver.kt │ │ │ ├── course_calendar │ │ │ │ └── model │ │ │ │ │ └── CalendarError.kt │ │ │ ├── course_complete │ │ │ │ ├── CourseCompleteFeature.kt │ │ │ │ ├── CourseCompleteViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CourseCompleteActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── CourseCompleteReducer.kt │ │ │ ├── course_content │ │ │ │ ├── CourseContentPresenter.kt │ │ │ │ ├── CourseContentView.kt │ │ │ │ └── mapper │ │ │ │ │ ├── CourseContentItemMapper.kt │ │ │ │ │ ├── CourseContentSectionDatesMapper.kt │ │ │ │ │ └── CourseContentStateMapper.kt │ │ │ ├── course_continue │ │ │ │ ├── CourseContinueView.kt │ │ │ │ ├── delegate │ │ │ │ │ ├── CourseContinuePresenterDelegate.kt │ │ │ │ │ └── CourseContinuePresenterDelegateImpl.kt │ │ │ │ └── model │ │ │ │ │ └── CourseContinueInteractionSource.kt │ │ │ ├── course_continue_redux │ │ │ │ ├── CourseContinueFeature.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CourseContinueActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── CourseContinueReducer.kt │ │ │ ├── course_info │ │ │ │ ├── CourseInfoPresenter.kt │ │ │ │ └── CourseInfoView.kt │ │ │ ├── course_list │ │ │ │ ├── CourseListCollectionPresenter.kt │ │ │ │ ├── CourseListCollectionView.kt │ │ │ │ ├── CourseListQueryPresenter.kt │ │ │ │ ├── CourseListQueryView.kt │ │ │ │ ├── CourseListSearchPresenter.kt │ │ │ │ ├── CourseListSearchResultView.kt │ │ │ │ ├── CourseListUserPresenter.kt │ │ │ │ ├── CourseListUserView.kt │ │ │ │ ├── CourseListView.kt │ │ │ │ ├── CourseListVisitedPresenter.kt │ │ │ │ ├── CourseListWishPresenter.kt │ │ │ │ ├── CourseListWishView.kt │ │ │ │ └── mapper │ │ │ │ │ ├── CourseListCollectionStateMapper.kt │ │ │ │ │ ├── CourseListQueryStateMapper.kt │ │ │ │ │ ├── CourseListStateMapper.kt │ │ │ │ │ ├── CourseListUserStateMapper.kt │ │ │ │ │ └── CourseListWishStateMapper.kt │ │ │ ├── course_list_redux │ │ │ │ ├── CourseListFeature.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CourseListActionDispatcher.kt │ │ │ │ ├── mapper │ │ │ │ │ └── CourseListStateMapper.kt │ │ │ │ ├── model │ │ │ │ │ └── CatalogBlockStateWrapper.kt │ │ │ │ └── reducer │ │ │ │ │ └── CourseListReducer.kt │ │ │ ├── course_news │ │ │ │ ├── CourseNewsFeature.kt │ │ │ │ ├── CourseNewsViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CourseNewsActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── CourseNewsReducer.kt │ │ │ ├── course_purchase │ │ │ │ ├── CoursePurchaseFeature.kt │ │ │ │ ├── CoursePurchaseViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CoursePurchaseActionDispatcher.kt │ │ │ │ ├── model │ │ │ │ │ ├── CoursePurchaseData.kt │ │ │ │ │ └── CoursePurchaseDataResult.kt │ │ │ │ └── reducer │ │ │ │ │ └── CoursePurchaseReducer.kt │ │ │ ├── course_revenue │ │ │ │ ├── CourseBenefitSummaryFeature.kt │ │ │ │ ├── CourseBenefitsFeature.kt │ │ │ │ ├── CourseBenefitsMonthlyFeature.kt │ │ │ │ ├── CourseRevenueFeature.kt │ │ │ │ ├── CourseRevenueViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ ├── CourseBenefitSummaryActionDispatcher.kt │ │ │ │ │ ├── CourseBenefitsActionDispatcher.kt │ │ │ │ │ ├── CourseBenefitsMonthlyActionDispatcher.kt │ │ │ │ │ └── CourseRevenueActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ ├── CourseBenefitSummaryReducer.kt │ │ │ │ │ ├── CourseBenefitsMonthlyReducer.kt │ │ │ │ │ ├── CourseBenefitsReducer.kt │ │ │ │ │ └── CourseRevenueReducer.kt │ │ │ ├── course_reviews │ │ │ │ ├── ComposeCourseReviewPresenter.kt │ │ │ │ ├── ComposeCourseReviewView.kt │ │ │ │ ├── CourseReviewsPresenter.kt │ │ │ │ ├── CourseReviewsView.kt │ │ │ │ └── mapper │ │ │ │ │ └── CourseReviewsStateMapper.kt │ │ │ ├── course_search │ │ │ │ ├── CourseSearchFeature.kt │ │ │ │ ├── CourseSearchViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── CourseSearchActionDispatcher.kt │ │ │ │ ├── mapper │ │ │ │ │ └── CourseSearchResultItemsMapper.kt │ │ │ │ └── reducer │ │ │ │ │ └── CourseSearchReducer.kt │ │ │ ├── download │ │ │ │ ├── DownloadPresenter.kt │ │ │ │ ├── DownloadView.kt │ │ │ │ └── mapper │ │ │ │ │ └── DownloadItemsStateMapper.kt │ │ │ ├── enrollment │ │ │ │ ├── EnrollmentFeature.kt │ │ │ │ └── dispatcher │ │ │ │ │ └── EnrollmentActionDispatcher.kt │ │ │ ├── fast_continue │ │ │ │ ├── FastContinuePresenter.kt │ │ │ │ └── FastContinueView.kt │ │ │ ├── feedback │ │ │ │ ├── FeedbackPresenter.kt │ │ │ │ └── FeedbackView.kt │ │ │ ├── filter │ │ │ │ ├── FilterQueryView.kt │ │ │ │ ├── FiltersFeature.kt │ │ │ │ ├── FiltersPresenter.kt │ │ │ │ ├── FiltersView.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── FiltersActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── FiltersReducer.kt │ │ │ ├── font_size_settings │ │ │ │ ├── FontSizePresenter.kt │ │ │ │ └── FontSizeView.kt │ │ │ ├── in_app_web_view │ │ │ │ ├── InAppWebViewPresenter.kt │ │ │ │ └── InAppWebViewView.kt │ │ │ ├── lesson │ │ │ │ ├── LessonPresenter.kt │ │ │ │ ├── LessonView.kt │ │ │ │ └── mapper │ │ │ │ │ └── LessonStateMapper.kt │ │ │ ├── lesson_demo │ │ │ │ ├── LessonDemoFeature.kt │ │ │ │ ├── LessonDemoViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── LessonDemoActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── LessonDemoReducer.kt │ │ │ ├── magic_links │ │ │ │ ├── MagicLinkPresenter.kt │ │ │ │ └── MagicLinkView.kt │ │ │ ├── personal_deadlines │ │ │ │ └── model │ │ │ │ │ └── PersonalDeadlinesState.kt │ │ │ ├── profile │ │ │ │ ├── ProfilePresenter.kt │ │ │ │ └── ProfileView.kt │ │ │ ├── profile_achievements │ │ │ │ └── ProfileAchievementsPresenter.kt │ │ │ ├── profile_activities │ │ │ │ ├── ProfileActivitiesPresenter.kt │ │ │ │ └── ProfileActivitiesView.kt │ │ │ ├── profile_certificates │ │ │ │ ├── ProfileCertificatesPresenter.kt │ │ │ │ └── ProfileCertificatesView.kt │ │ │ ├── profile_courses │ │ │ │ ├── ProfileCoursesPresenter.kt │ │ │ │ └── ProfileCoursesView.kt │ │ │ ├── profile_detail │ │ │ │ ├── ProfileDetailPresenter.kt │ │ │ │ └── ProfileDetailView.kt │ │ │ ├── profile_edit │ │ │ │ ├── ProfileEditInfoPresenter.kt │ │ │ │ ├── ProfileEditInfoView.kt │ │ │ │ ├── ProfileEditPasswordPresenter.kt │ │ │ │ ├── ProfileEditPasswordView.kt │ │ │ │ ├── ProfileEditPresenter.kt │ │ │ │ └── ProfileEditView.kt │ │ │ ├── profile_id │ │ │ │ ├── ProfileIdPresenter.kt │ │ │ │ └── ProfileIdView.kt │ │ │ ├── profile_links │ │ │ │ ├── ProfileLinksPresenter.kt │ │ │ │ └── ProfileLinksView.kt │ │ │ ├── profile_notification │ │ │ │ ├── ProfileNotificationPresenter.kt │ │ │ │ └── ProfileNotificationView.kt │ │ │ ├── progress │ │ │ │ ├── ProgressFeature.kt │ │ │ │ └── dispatcher │ │ │ │ │ └── ProgressActionDispatcher.kt │ │ │ ├── redux │ │ │ │ └── RefCounterExtension.kt │ │ │ ├── settings │ │ │ │ ├── SettingsPresenter.kt │ │ │ │ └── SettingsView.kt │ │ │ ├── solutions │ │ │ │ ├── SolutionsPresenter.kt │ │ │ │ ├── SolutionsView.kt │ │ │ │ └── mapper │ │ │ │ │ └── SolutionsStateMapper.kt │ │ │ ├── step │ │ │ │ ├── StepPresenter.kt │ │ │ │ ├── StepView.kt │ │ │ │ └── mapper │ │ │ │ │ └── NavigationActionMapper.kt │ │ │ ├── step_content_text │ │ │ │ ├── TextStepContentPresenter.kt │ │ │ │ └── TextStepContentView.kt │ │ │ ├── step_content_video │ │ │ │ ├── VideoStepContentPresenter.kt │ │ │ │ └── VideoStepContentView.kt │ │ │ ├── step_quiz │ │ │ │ ├── StepQuizFeature.kt │ │ │ │ ├── StepQuizViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── StepQuizActionDispatcher.kt │ │ │ │ ├── model │ │ │ │ │ └── ReplyResult.kt │ │ │ │ └── reducer │ │ │ │ │ └── StepQuizReducer.kt │ │ │ ├── step_quiz_code │ │ │ │ ├── StepQuizCodeRunPresenter.kt │ │ │ │ └── StepQuizRunCodeView.kt │ │ │ ├── step_quiz_review │ │ │ │ ├── StepQuizReviewFeature.kt │ │ │ │ ├── StepQuizReviewTeacherFeature.kt │ │ │ │ ├── StepQuizReviewTeacherViewModel.kt │ │ │ │ ├── StepQuizReviewViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ ├── StepQuizReviewActionDispatcher.kt │ │ │ │ │ └── StepQuizReviewTeacherActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ ├── StepQuizReviewReducer.kt │ │ │ │ │ └── StepQuizReviewTeacherReducer.kt │ │ │ ├── step_source │ │ │ │ ├── EditStepSourcePresenter.kt │ │ │ │ └── EditStepSourceView.kt │ │ │ ├── stories │ │ │ │ ├── StoriesFeature.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── StoriesActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ │ └── StoriesReducer.kt │ │ │ ├── story │ │ │ │ ├── StoryActionDispatcher.kt │ │ │ │ ├── StoryFeature.kt │ │ │ │ └── StoryReducer.kt │ │ │ ├── story_deeplink │ │ │ │ ├── StoryDeepLinkPresenter.kt │ │ │ │ └── StoryDeepLinkView.kt │ │ │ ├── submission │ │ │ │ ├── SubmissionsPresenter.kt │ │ │ │ └── SubmissionsView.kt │ │ │ ├── user_courses │ │ │ │ ├── UserCoursesFeature.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── UserCoursesActionDispatcher.kt │ │ │ │ └── model │ │ │ │ │ └── UserCourseAction.kt │ │ │ ├── user_reviews │ │ │ │ ├── UserReviewsFeature.kt │ │ │ │ ├── UserReviewsViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ │ └── UserReviewsActionDispatcher.kt │ │ │ │ ├── mapper │ │ │ │ │ └── UserReviewsStateMapper.kt │ │ │ │ └── reducer │ │ │ │ │ └── UserReviewsReducer.kt │ │ │ ├── video_player │ │ │ │ ├── VideoPlayerPresenter.kt │ │ │ │ └── VideoPlayerView.kt │ │ │ └── wishlist │ │ │ │ ├── WishlistFeature.kt │ │ │ │ ├── WishlistOperationFeature.kt │ │ │ │ ├── WishlistViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ ├── WishlistActionDispatcher.kt │ │ │ │ └── WishlistOperationActionDispatcher.kt │ │ │ │ ├── model │ │ │ │ └── WishlistAction.kt │ │ │ │ └── reducer │ │ │ │ ├── WishlistOperationReducer.kt │ │ │ │ └── WishlistReducer.kt │ │ │ ├── remote │ │ │ ├── achievement │ │ │ │ ├── AchievementRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── AchievementProgressesResponse.kt │ │ │ │ │ └── AchievementsResponse.kt │ │ │ │ └── service │ │ │ │ │ └── AchievementsService.kt │ │ │ ├── analytic │ │ │ │ ├── AnalyticRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── AnalyticBatchEvent.kt │ │ │ │ └── service │ │ │ │ │ └── AnalyticService.kt │ │ │ ├── announcement │ │ │ │ ├── AnnouncementRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── AnnouncementResponse.kt │ │ │ │ └── service │ │ │ │ │ └── AnnouncementService.kt │ │ │ ├── assignment │ │ │ │ ├── AssignmentRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── AssignmentResponse.kt │ │ │ │ └── service │ │ │ │ │ └── AssignmentService.kt │ │ │ ├── attempt │ │ │ │ ├── AttemptRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── AttemptRequest.kt │ │ │ │ │ └── AttemptResponse.kt │ │ │ │ └── service │ │ │ │ │ └── AttemptService.kt │ │ │ ├── auth │ │ │ │ ├── AuthRemoteDataSourceImpl.kt │ │ │ │ ├── exception │ │ │ │ │ └── FailRefreshException.java │ │ │ │ ├── interceptor │ │ │ │ │ └── AuthInterceptor.kt │ │ │ │ ├── model │ │ │ │ │ ├── OAuthResponse.kt │ │ │ │ │ ├── StepikProfileResponse.kt │ │ │ │ │ ├── TokenType.kt │ │ │ │ │ └── UserRegistrationRequest.kt │ │ │ │ └── service │ │ │ │ │ ├── EmptyAuthService.kt │ │ │ │ │ └── OAuthService.kt │ │ │ ├── base │ │ │ │ ├── CookieHelper.kt │ │ │ │ ├── NetworkFactory.kt │ │ │ │ ├── ReactiveCollectionsExtensions.kt │ │ │ │ ├── UserAgentProvider.kt │ │ │ │ ├── UserAgentProviderImpl.kt │ │ │ │ ├── mapper │ │ │ │ │ └── MetaResponsePageMapper.kt │ │ │ │ └── model │ │ │ │ │ └── MetaResponse.kt │ │ │ ├── catalog │ │ │ │ ├── CatalogRemoteDataSourceImpl.kt │ │ │ │ ├── deserializers │ │ │ │ │ └── CatalogBlockDeserializer.kt │ │ │ │ ├── model │ │ │ │ │ └── CatalogBlockResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CatalogService.kt │ │ │ ├── certificate │ │ │ │ ├── model │ │ │ │ │ ├── CertificateRequest.kt │ │ │ │ │ └── CertificateResponse.kt │ │ │ │ ├── service │ │ │ │ │ └── CertificateService.kt │ │ │ │ └── source │ │ │ │ │ └── CertificateRemoteDataSourceImpl.kt │ │ │ ├── comment │ │ │ │ ├── CommentRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── CommentRequest.kt │ │ │ │ │ └── CommentResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CommentService.kt │ │ │ ├── course │ │ │ │ ├── model │ │ │ │ │ ├── CourseResponse.kt │ │ │ │ │ ├── CourseReviewSummaryResponse.kt │ │ │ │ │ └── EnrollmentRequest.kt │ │ │ │ ├── service │ │ │ │ │ ├── CourseReviewSummaryService.kt │ │ │ │ │ ├── CourseService.kt │ │ │ │ │ └── EnrollmentService.kt │ │ │ │ └── source │ │ │ │ │ ├── CourseRemoteDataSourceImpl.kt │ │ │ │ │ ├── CourseReviewSummaryRemoteDataSourceImpl.kt │ │ │ │ │ └── EnrollmentRemoteDataSourceImpl.kt │ │ │ ├── course_collection │ │ │ │ ├── CourseCollectionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── CourseCollectionsResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CourseCollectionService.kt │ │ │ ├── course_payments │ │ │ │ ├── CoursePaymentsRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── CoursePaymentRequest.kt │ │ │ │ │ ├── CoursePaymentsResponse.kt │ │ │ │ │ ├── PromoCodeRequest.kt │ │ │ │ │ └── PromoCodeResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CoursePaymentService.kt │ │ │ ├── course_recommendations │ │ │ │ ├── CourseRecommendationsRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── CourseRecommendationsResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CourseRecommendationsService.kt │ │ │ ├── course_revenue │ │ │ │ ├── CourseBeneficiariesRemoteDataSourceImpl.kt │ │ │ │ ├── CourseBenefitByMonthsRemoteDataSourceImpl.kt │ │ │ │ ├── CourseBenefitSummariesRemoteDataSourceImpl.kt │ │ │ │ ├── CourseBenefitsRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseBeneficiariesResponse.kt │ │ │ │ │ ├── CourseBenefitByMonthsResponse.kt │ │ │ │ │ ├── CourseBenefitSummariesResponse.kt │ │ │ │ │ └── CourseBenefitsResponse.kt │ │ │ │ └── service │ │ │ │ │ ├── CourseBeneficiariesService.kt │ │ │ │ │ ├── CourseBenefitByMonthsService.kt │ │ │ │ │ ├── CourseBenefitSummariesService.kt │ │ │ │ │ └── CourseBenefitsService.kt │ │ │ ├── course_reviews │ │ │ │ ├── CourseReviewsRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── CourseReviewRequest.kt │ │ │ │ │ └── CourseReviewsResponse.kt │ │ │ │ └── service │ │ │ │ │ └── CourseReviewService.kt │ │ │ ├── device │ │ │ │ ├── DeviceRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── DeviceRequest.kt │ │ │ │ │ └── DeviceResponse.kt │ │ │ │ └── service │ │ │ │ │ └── DeviceService.kt │ │ │ ├── discussion_proxy │ │ │ │ ├── DiscussionProxyRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── DiscussionProxyResponse.kt │ │ │ │ └── service │ │ │ │ │ └── DiscussionProxyService.kt │ │ │ ├── discussion_thread │ │ │ │ ├── DiscussionThreadRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── DiscussionThreadResponse.kt │ │ │ │ └── service │ │ │ │ │ └── DiscussionThreadService.kt │ │ │ ├── email_address │ │ │ │ ├── EmailAddressRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── EmailAddressRequest.kt │ │ │ │ │ └── EmailAddressResponse.kt │ │ │ │ └── service │ │ │ │ │ └── EmailAddressService.kt │ │ │ ├── exam_session │ │ │ │ ├── ExamSessionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── ExamSessionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ExamSessionService.kt │ │ │ ├── last_step │ │ │ │ ├── LastStepRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── LastStepResponse.kt │ │ │ │ └── service │ │ │ │ │ └── LastStepService.kt │ │ │ ├── lesson │ │ │ │ ├── LessonRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── LessonResponse.kt │ │ │ │ └── service │ │ │ │ │ └── LessonService.kt │ │ │ ├── magic_links │ │ │ │ ├── MagicLinksRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── MagicLinksRequest.kt │ │ │ │ │ └── MagicLinksResponse.kt │ │ │ │ └── service │ │ │ │ │ └── MagicLinksService.kt │ │ │ ├── mobile_tiers │ │ │ │ ├── MobileTiersRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── MobileTierCalculation.kt │ │ │ │ │ └── MobileTiersResponse.kt │ │ │ │ └── service │ │ │ │ │ └── MobileTiersService.kt │ │ │ ├── notification │ │ │ │ ├── NotificationRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── NotificationRequest.kt │ │ │ │ │ ├── NotificationResponse.kt │ │ │ │ │ └── NotificationStatusesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── NotificationService.kt │ │ │ ├── personal_deadlines │ │ │ │ ├── DeadlinesRemoteDataSourceImpl.kt │ │ │ │ └── mapper │ │ │ │ │ └── DeadlinesMapper.kt │ │ │ ├── personal_offers │ │ │ │ ├── PersonalOffersRemoteDataSourceImpl.kt │ │ │ │ └── mapper │ │ │ │ │ └── PersonalOffersMapper.kt │ │ │ ├── proctor_session │ │ │ │ ├── ProctorSessionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── ProctorSessionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ProctorSessionService.kt │ │ │ ├── profile │ │ │ │ ├── ProfileRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── ProfilePasswordRequest.kt │ │ │ │ │ ├── ProfileRequest.kt │ │ │ │ │ └── ProfileResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ProfileService.kt │ │ │ ├── progress │ │ │ │ ├── ProgressRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── ProgressResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ProgressService.kt │ │ │ ├── rating │ │ │ │ ├── RatingRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── RatingRequest.kt │ │ │ │ │ ├── RatingResponse.kt │ │ │ │ │ └── RatingRestoreResponse.kt │ │ │ │ └── service │ │ │ │ │ └── RatingService.kt │ │ │ ├── recommendation │ │ │ │ ├── RecommendationRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── RecommendationReactionsRequest.kt │ │ │ │ │ └── RecommendationsResponse.kt │ │ │ │ └── service │ │ │ │ │ └── RecommendationService.kt │ │ │ ├── remote_storage │ │ │ │ ├── model │ │ │ │ │ ├── StorageRequest.kt │ │ │ │ │ └── StorageResponse.kt │ │ │ │ └── service │ │ │ │ │ └── RemoteStorageService.kt │ │ │ ├── review │ │ │ │ ├── ReviewRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── ReviewRequest.kt │ │ │ │ │ └── ReviewResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ReviewService.kt │ │ │ ├── review_instruction │ │ │ │ ├── ReviewInstructionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── ReviewInstructionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ReviewInstructionService.kt │ │ │ ├── review_session │ │ │ │ ├── ReviewSessionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── ReviewSessionRequest.kt │ │ │ │ │ └── ReviewSessionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── ReviewSessionService.kt │ │ │ ├── search │ │ │ │ ├── SearchRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── QueriesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── SearchService.kt │ │ │ ├── search_result │ │ │ │ ├── SearchResultRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── SearchResultResponse.kt │ │ │ │ └── service │ │ │ │ │ └── SearchResultService.kt │ │ │ ├── section │ │ │ │ ├── SectionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── SectionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── SectionService.kt │ │ │ ├── social_profile │ │ │ │ ├── SocialProfileRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── SocialProfilesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── SocialProfilesService.kt │ │ │ ├── step │ │ │ │ ├── StepRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── StepResponse.kt │ │ │ │ └── service │ │ │ │ │ └── StepService.kt │ │ │ ├── step_source │ │ │ │ ├── StepSourceRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── StepSourceRequest.kt │ │ │ │ │ └── StepSourceResponse.kt │ │ │ │ └── service │ │ │ │ │ └── StepSourceService.kt │ │ │ ├── stories │ │ │ │ ├── StoryTemplatesRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── StoryTemplatesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── StoryService.kt │ │ │ ├── submission │ │ │ │ ├── SubmissionRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── SubmissionRequest.kt │ │ │ │ │ └── SubmissionResponse.kt │ │ │ │ └── service │ │ │ │ │ └── SubmissionService.kt │ │ │ ├── unit │ │ │ │ ├── UnitRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── UnitResponse.kt │ │ │ │ └── service │ │ │ │ │ └── UnitService.kt │ │ │ ├── user │ │ │ │ ├── UserRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── UserResponse.kt │ │ │ │ └── service │ │ │ │ │ └── UserService.kt │ │ │ ├── user_activity │ │ │ │ ├── UserActivityRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── UserActivityResponse.kt │ │ │ │ └── service │ │ │ │ │ └── UserActivityService.kt │ │ │ ├── user_code_run │ │ │ │ ├── UserCodeRunRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── UserCodeRunRequest.kt │ │ │ │ │ └── UserCodeRunResponse.kt │ │ │ │ └── service │ │ │ │ │ └── UserCodeRunService.kt │ │ │ ├── user_courses │ │ │ │ ├── UserCoursesRemoteDataSourceImpl.kt │ │ │ │ ├── mapper │ │ │ │ │ └── UserCourseQueryMapper.kt │ │ │ │ ├── model │ │ │ │ │ ├── UserCoursesRequest.kt │ │ │ │ │ └── UserCoursesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── UserCoursesService.kt │ │ │ ├── user_profile │ │ │ │ ├── UserProfileRemoteDataSourceImpl.kt │ │ │ │ └── service │ │ │ │ │ └── UserProfileService.kt │ │ │ ├── view_assignment │ │ │ │ ├── ViewAssignmentRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── ViewAssignmentRequest.kt │ │ │ │ └── service │ │ │ │ │ └── ViewAssignmentService.kt │ │ │ ├── visited_courses │ │ │ │ ├── VisitedCoursesRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ └── VisitedCoursesResponse.kt │ │ │ │ └── service │ │ │ │ │ └── VisitedCourseService.kt │ │ │ ├── vote │ │ │ │ ├── VoteRemoteDataSourceImpl.kt │ │ │ │ ├── model │ │ │ │ │ ├── VoteRequest.kt │ │ │ │ │ └── VoteResponse.kt │ │ │ │ └── service │ │ │ │ │ └── VoteService.kt │ │ │ └── wishlist │ │ │ │ ├── WishlistRemoteDataSourceImpl.kt │ │ │ │ ├── WishlistService.kt │ │ │ │ └── model │ │ │ │ ├── WishlistRequest.kt │ │ │ │ └── WishlistResponse.kt │ │ │ └── view │ │ │ ├── achievement │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── AchievementsListActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── AchievementAdapterDelegate.kt │ │ │ │ │ └── AchievementTileAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── AchievementTileDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── AchievementDetailsDialog.kt │ │ │ │ ├── fragment │ │ │ │ └── AchievementsListFragment.kt │ │ │ │ ├── resolver │ │ │ │ └── AchievementResourceResolver.kt │ │ │ │ └── view │ │ │ │ ├── AchievementCircleProgressView.kt │ │ │ │ └── VectorRatingBar.kt │ │ │ ├── analytic │ │ │ └── AnalyticContentProvider.kt │ │ │ ├── app_rating │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── RateAppDialog.kt │ │ │ ├── auth │ │ │ ├── extension │ │ │ │ └── LoginFailTypeExtension.kt │ │ │ ├── model │ │ │ │ ├── AutoAuth.kt │ │ │ │ └── SocialNetwork.kt │ │ │ └── ui │ │ │ │ └── activity │ │ │ │ ├── CredentialAuthActivity.kt │ │ │ │ ├── RegistrationActivity.kt │ │ │ │ └── SocialAuthActivity.kt │ │ │ ├── banner │ │ │ ├── extension │ │ │ │ └── ItemBannerBindingExtension.kt │ │ │ └── mapper │ │ │ │ └── BannerResourcesMapper.kt │ │ │ ├── base │ │ │ ├── receiver │ │ │ │ └── DismissedNotificationReceiver.kt │ │ │ ├── routing │ │ │ │ ├── ExternalDeepLinkProcessor.kt │ │ │ │ └── InternalDeeplinkRouter.kt │ │ │ ├── ui │ │ │ │ ├── adapter │ │ │ │ │ └── layoutmanager │ │ │ │ │ │ └── TableLayoutManager.kt │ │ │ │ ├── drawable │ │ │ │ │ └── GravityDrawable.kt │ │ │ │ ├── extension │ │ │ │ │ ├── ColorExtensions.kt │ │ │ │ │ ├── DrawableExtensions.kt │ │ │ │ │ ├── ExternalLinkWebViewClient.kt │ │ │ │ │ ├── FragmentExtensions.kt │ │ │ │ │ └── RecyclerViewExtensions.kt │ │ │ │ ├── mapper │ │ │ │ │ └── DateMapper.kt │ │ │ │ ├── span │ │ │ │ │ └── TypefaceSpanCompat.java │ │ │ │ └── widget │ │ │ │ │ ├── ClearFocusEditText.kt │ │ │ │ │ └── StoriesClearFocusEditText.kt │ │ │ └── web │ │ │ │ └── CustomTabsHelper.java │ │ │ ├── catalog │ │ │ ├── mapper │ │ │ │ ├── AuthorCountMapper.kt │ │ │ │ └── CourseCountMapper.kt │ │ │ ├── model │ │ │ │ └── CatalogItem.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── AuthorAdapterDelegate.kt │ │ │ │ │ ├── AuthorListAdapterDelegate.kt │ │ │ │ │ ├── CourseListAdapterDelegate.kt │ │ │ │ │ ├── FiltersAdapterDelegate.kt │ │ │ │ │ ├── LoadingAdapterDelegate.kt │ │ │ │ │ ├── OfflineAdapterDelegate.kt │ │ │ │ │ ├── RecommendedCourseListAdapterDelegate.kt │ │ │ │ │ ├── SimpleCourseListDefaultAdapterDelegate.kt │ │ │ │ │ ├── SimpleCourseListGridAdapterDelegate.kt │ │ │ │ │ ├── SimpleCourseListGridFirstAdapter.kt │ │ │ │ │ ├── SimpleCourseListsDefaultAdapterDelegate.kt │ │ │ │ │ ├── SimpleCourseListsGridAdapterDelegate.kt │ │ │ │ │ ├── SpecializationAdapterDelegate.kt │ │ │ │ │ ├── SpecializationListAdapterDelegate.kt │ │ │ │ │ └── StoriesAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── CatalogBlockHeaderDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── CatalogFragment.kt │ │ │ ├── certificate │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── CertificatesActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── CertificateProfileAdapterDelegate.kt │ │ │ │ │ ├── CertificatesAdapterDelegate.kt │ │ │ │ │ └── CertificatesProfilePlaceholderAdapterDelegate.kt │ │ │ │ └── dialog │ │ │ │ ├── CertificateNameChangeConfirmationDialog.kt │ │ │ │ └── CertificateNameChangeDialog.kt │ │ │ ├── comment │ │ │ ├── model │ │ │ │ ├── CommentTag.kt │ │ │ │ ├── DiscussionOrderItem.kt │ │ │ │ └── DiscussionThreadContainer.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── CommentsActivity.kt │ │ │ │ ├── adapter │ │ │ │ ├── decorator │ │ │ │ │ └── CommentItemDecoration.kt │ │ │ │ └── delegate │ │ │ │ │ ├── CommentDataAdapterDelegate.kt │ │ │ │ │ ├── CommentLoadMoreRepliesAdapterDelegate.kt │ │ │ │ │ ├── CommentPlaceholderAdapterDelegate.kt │ │ │ │ │ └── CommentTagsAdapterDelegate.kt │ │ │ │ └── dialog │ │ │ │ ├── ComposeCommentDialogFragment.kt │ │ │ │ ├── RemoveCommentDialogFragment.kt │ │ │ │ └── SolutionCommentDialogFragment.kt │ │ │ ├── course │ │ │ ├── mapper │ │ │ │ └── DisplayPriceMapper.kt │ │ │ ├── model │ │ │ │ └── CoursePromoCodeInfo.kt │ │ │ ├── resolver │ │ │ │ └── CoursePromoCodeResolver.kt │ │ │ ├── routing │ │ │ │ ├── CourseBranchDeepLinkParser.kt │ │ │ │ ├── CourseBranchDeepLinkRouter.kt │ │ │ │ ├── CourseDeepLinkBuilder.kt │ │ │ │ ├── CourseDeepLinkHandler.kt │ │ │ │ └── CourseScreenBranchRoute.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── CourseActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── CoursePagerAdapter.kt │ │ │ │ └── delegates │ │ │ │ ├── CourseHeaderDelegate.kt │ │ │ │ ├── CourseProgressDelegate.kt │ │ │ │ └── CourseStatsDelegate.kt │ │ │ ├── course_calendar │ │ │ └── ui │ │ │ │ ├── ChooseCalendarDialog.kt │ │ │ │ └── ExplainCalendarPermissionDialog.kt │ │ │ ├── course_complete │ │ │ ├── model │ │ │ │ └── CourseCompleteDialogViewInfo.kt │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── CourseCompleteBottomSheetDialogFragment.kt │ │ │ ├── course_content │ │ │ ├── model │ │ │ │ ├── CourseContentItem.kt │ │ │ │ ├── CourseContentSectionDate.kt │ │ │ │ └── RequiredSection.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ ├── CourseContentAdapter.kt │ │ │ │ ├── CourseContentDiffCallback.kt │ │ │ │ ├── CourseContentTimelineAdapter.kt │ │ │ │ ├── decorators │ │ │ │ │ └── CourseContentTimelineDecorator.kt │ │ │ │ └── delegates │ │ │ │ │ ├── control_bar │ │ │ │ │ ├── CourseContentControlBarClickListener.kt │ │ │ │ │ └── CourseContentControlBarDelegate.kt │ │ │ │ │ ├── section │ │ │ │ │ ├── CourseContentSectionClickListener.kt │ │ │ │ │ └── CourseContentSectionDelegate.kt │ │ │ │ │ └── unit │ │ │ │ │ ├── CourseContentUnitClickListener.kt │ │ │ │ │ ├── CourseContentUnitDelegate.kt │ │ │ │ │ └── CourseContentUnitPlaceholderDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── RemoveCachedContentDialog.kt │ │ │ │ ├── fragment │ │ │ │ ├── CourseContentFragment.kt │ │ │ │ └── listener │ │ │ │ │ ├── CourseContentSectionClickListenerImpl.kt │ │ │ │ │ └── CourseContentUnitClickListenerImpl.kt │ │ │ │ └── view │ │ │ │ └── DownloadStatusView.kt │ │ │ ├── course_info │ │ │ ├── mapper │ │ │ │ └── CourseInfoMapper.kt │ │ │ ├── model │ │ │ │ ├── CourseInfoItem.kt │ │ │ │ └── CourseInfoType.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ ├── decorators │ │ │ │ │ └── CourseInfoDividerDecorator.kt │ │ │ │ └── delegates │ │ │ │ │ ├── CourseInfoAboutAdapterDelegate.kt │ │ │ │ │ ├── CourseInfoAuthorsAdapterDelegate.kt │ │ │ │ │ ├── CourseInfoInstructorsDelegate.kt │ │ │ │ │ ├── CourseInfoSkillsAdapterDelegate.kt │ │ │ │ │ ├── CourseInfoSummaryAdapterDelegate.kt │ │ │ │ │ ├── CourseInfoTextBlockDelegate.kt │ │ │ │ │ ├── CourseInfoVideoBlockDelegate.kt │ │ │ │ │ └── instructors │ │ │ │ │ ├── CourseInfoInstructorDataAdapterDelegate.kt │ │ │ │ │ └── CourseInfoInstructorPlaceholderAdapterDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── CourseInfoFragment.kt │ │ │ ├── course_list │ │ │ ├── delegate │ │ │ │ ├── CourseCollectionAuthorListAdapterDelegate.kt │ │ │ │ ├── CourseCollectionSimilarCoursesListAdapterDelegate.kt │ │ │ │ ├── CourseContinueViewDelegate.kt │ │ │ │ └── CourseListViewDelegate.kt │ │ │ ├── notification │ │ │ │ └── RemindAppNotificationDelegate.kt │ │ │ ├── resolver │ │ │ │ └── TableLayoutHorizontalSpanCountResolver.kt │ │ │ ├── routing │ │ │ │ └── CourseListCollectionDeepLinkHandler.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ ├── CourseListCollectionActivity.kt │ │ │ │ ├── CourseListQueryActivity.kt │ │ │ │ ├── CourseListSearchActivity.kt │ │ │ │ ├── CourseListUserActivity.kt │ │ │ │ ├── CourseListVisitedActivity.kt │ │ │ │ └── CourseListWishActivity.kt │ │ │ │ ├── adapter │ │ │ │ ├── decorator │ │ │ │ │ └── CourseListCollectionHeaderDecoration.kt │ │ │ │ ├── delegate │ │ │ │ │ ├── CourseListItemAdapterDelegate.kt │ │ │ │ │ ├── CourseListPlaceHolderAdapterDelegate.kt │ │ │ │ │ ├── CourseListViewAllAdapterDelegate.kt │ │ │ │ │ ├── VisitedCourseListItemAdapterDelegate.kt │ │ │ │ │ └── VisitedCourseListPlaceHolderAdapterDelegate.kt │ │ │ │ └── viewpager │ │ │ │ │ └── CourseListUserPagerAdapter.kt │ │ │ │ ├── delegate │ │ │ │ └── CoursePropertiesDelegate.kt │ │ │ │ ├── fragment │ │ │ │ ├── CourseListCollectionFragment.kt │ │ │ │ ├── CourseListPopularFragment.kt │ │ │ │ ├── CourseListQueryFragment.kt │ │ │ │ ├── CourseListSearchFragment.kt │ │ │ │ ├── CourseListUserFragment.kt │ │ │ │ ├── CourseListUserHorizontalFragment.kt │ │ │ │ ├── CourseListVisitedFragment.kt │ │ │ │ ├── CourseListVisitedHorizontalFragment.kt │ │ │ │ └── CourseListWishFragment.kt │ │ │ │ └── widget │ │ │ │ ├── CertificateProgressView.kt │ │ │ │ └── CourseListSkeletonView.kt │ │ │ ├── course_news │ │ │ ├── model │ │ │ │ └── AnnouncementBadge.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ └── CourseNewsAdapterDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── CourseNewsFragment.kt │ │ │ ├── course_purchase │ │ │ ├── delegate │ │ │ │ ├── BuyActionViewDelegate.kt │ │ │ │ ├── PromoCodeViewDelegate.kt │ │ │ │ └── WishlistViewDelegate.kt │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── CoursePurchaseBottomSheetDialogFragment.kt │ │ │ ├── course_revenue │ │ │ ├── mapper │ │ │ │ └── RevenuePriceMapper.kt │ │ │ ├── model │ │ │ │ └── CourseBenefitOperationItem.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── CourseRevenueActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── CourseBenefitsAdapterDelegate.kt │ │ │ │ │ ├── CourseBenefitsListAdapterDelegate.kt │ │ │ │ │ ├── CourseBenefitsLoadingAdapterDelegate.kt │ │ │ │ │ ├── CourseBenefitsMonthlyAdapterDelegate.kt │ │ │ │ │ ├── CourseBenefitsMonthlyListAdapterDelegate.kt │ │ │ │ │ └── CourseBenefitsMonthlyLoadingAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── CourseBenefitSummaryViewDelegate.kt │ │ │ │ └── dialog │ │ │ │ └── TransactionBottomSheetDialogFragment.kt │ │ │ ├── course_reviews │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegates │ │ │ │ │ ├── CourseReviewDataDelegate.kt │ │ │ │ │ ├── CourseReviewPlaceholderDelegate.kt │ │ │ │ │ ├── CourseReviewSummaryDelegate.kt │ │ │ │ │ └── CourseReviewsComposeBannerDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── ComposeCourseReviewDialogFragment.kt │ │ │ │ └── fragment │ │ │ │ └── CourseReviewsFragment.kt │ │ │ ├── course_search │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ └── CourseSearchResultAdapterDelegate.kt │ │ │ └── dialog │ │ │ │ └── CourseSearchDialogFragment.kt │ │ │ ├── download │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── DownloadActivity.kt │ │ │ │ └── adapter │ │ │ │ └── DownloadedCoursesAdapterDelegate.kt │ │ │ ├── fast_continue │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ ├── FastContinueFragment.kt │ │ │ │ └── FastContinueNewHomeFragment.kt │ │ │ ├── filter │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ ├── CoursesLangDialogFragment.kt │ │ │ │ └── FilterBottomSheetDialogFragment.kt │ │ │ ├── font_size_settings │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── ChooseFontSizeDialogFragment.kt │ │ │ ├── fragment_pager │ │ │ ├── ActiveFragmentPagerAdapter.kt │ │ │ └── FragmentDelegateScrollStateChangeListener.kt │ │ │ ├── glide │ │ │ ├── mapper │ │ │ │ ├── ImageResourceDecoder.kt │ │ │ │ ├── ImageResourceTranscoder.kt │ │ │ │ ├── RelativeUrlLoader.java │ │ │ │ └── SvgSoftwareLayerSetter.java │ │ │ ├── model │ │ │ │ ├── GlideRequestFactory.kt │ │ │ │ └── ImageResource.kt │ │ │ └── ui │ │ │ │ └── extension │ │ │ │ └── GlideImageViewWrapper.kt │ │ │ ├── in_app_web_view │ │ │ ├── routing │ │ │ │ └── InAppWebViewUrlProcessor.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── InAppWebViewActivity.kt │ │ │ │ └── dialog │ │ │ │ └── InAppWebViewDialogFragment.kt │ │ │ ├── injection │ │ │ ├── achievement │ │ │ │ └── AchievementDataModule.kt │ │ │ ├── achievements │ │ │ │ ├── AchievementsComponent.kt │ │ │ │ └── AchievementsModule.kt │ │ │ ├── analytic │ │ │ │ ├── AnalyticComponent.kt │ │ │ │ └── AnalyticModule.kt │ │ │ ├── announcement │ │ │ │ └── AnnouncementDataModule.kt │ │ │ ├── assignment │ │ │ │ └── AssignmentDataModule.kt │ │ │ ├── attempt │ │ │ │ └── AttemptDataModule.kt │ │ │ ├── auth │ │ │ │ ├── AuthComponent.kt │ │ │ │ ├── AuthDataModule.kt │ │ │ │ └── AuthModule.kt │ │ │ ├── base │ │ │ │ └── Authorized.kt │ │ │ ├── calendar │ │ │ │ └── CalendarDataModule.kt │ │ │ ├── catalog │ │ │ │ ├── CatalogBlockPresentationModule.kt │ │ │ │ ├── CatalogBusModule.kt │ │ │ │ ├── CatalogComponent.kt │ │ │ │ ├── CatalogDataModule.kt │ │ │ │ └── FiltersBus.kt │ │ │ ├── certificate │ │ │ │ ├── CertificateComponent.kt │ │ │ │ ├── CertificateDataModule.kt │ │ │ │ └── CertificateModule.kt │ │ │ ├── code_preference │ │ │ │ └── CodePreferenceDataModule.kt │ │ │ ├── comment │ │ │ │ ├── CommentDataModule.kt │ │ │ │ ├── CommentsComponent.kt │ │ │ │ ├── CommentsModule.kt │ │ │ │ ├── ComposeCommentComponent.kt │ │ │ │ └── ComposeCommentModule.kt │ │ │ ├── course │ │ │ │ ├── CourseComponent.kt │ │ │ │ ├── CourseDataModule.kt │ │ │ │ ├── CourseHeaderDelegateFactory.kt │ │ │ │ ├── CourseModule.kt │ │ │ │ ├── CourseNewsPresentationModule.kt │ │ │ │ ├── CoursePresentationComponent.kt │ │ │ │ ├── CoursePresentationModule.kt │ │ │ │ ├── CoursePresentationScope.kt │ │ │ │ ├── CoursePurchaseDataModule.kt │ │ │ │ ├── CourseRoutingModule.kt │ │ │ │ ├── CourseScope.kt │ │ │ │ └── EnrollmentCourseUpdates.kt │ │ │ ├── course_calendar │ │ │ │ └── CourseCalendarDataModule.kt │ │ │ ├── course_collection │ │ │ │ └── CourseCollectionDataModule.kt │ │ │ ├── course_complete │ │ │ │ ├── CourseCompleteComponent.kt │ │ │ │ └── CourseCompletePresentationModule.kt │ │ │ ├── course_list │ │ │ │ ├── CourseListBusModule.kt │ │ │ │ ├── UserCoursesLoadedBus.kt │ │ │ │ ├── UserCoursesOperationBus.kt │ │ │ │ ├── UserCoursesUpdateBus.kt │ │ │ │ ├── WishlistOperationBus.kt │ │ │ │ ├── collection │ │ │ │ │ ├── CourseListCollectionComponent.kt │ │ │ │ │ ├── CourseListCollectionModule.kt │ │ │ │ │ └── CourseListCollectionScope.kt │ │ │ │ ├── factory │ │ │ │ │ ├── CourseListAdapterDelegateFactory.kt │ │ │ │ │ └── RecommendedCourseListAdapterDelegateFactory.kt │ │ │ │ ├── query │ │ │ │ │ ├── CourseListQueryComponent.kt │ │ │ │ │ ├── CourseListQueryModule.kt │ │ │ │ │ └── CourseListQueryScope.kt │ │ │ │ ├── search_result │ │ │ │ │ ├── CourseListSearchResultComponent.kt │ │ │ │ │ ├── CourseListSearchResultModule.kt │ │ │ │ │ └── CourseListSearchResultScope.kt │ │ │ │ ├── user │ │ │ │ │ ├── CourseListUserComponent.kt │ │ │ │ │ ├── CourseListUserModule.kt │ │ │ │ │ └── CourseListUserScope.kt │ │ │ │ ├── visited │ │ │ │ │ ├── CourseListVisitedComponent.kt │ │ │ │ │ ├── CourseListVisitedModule.kt │ │ │ │ │ └── CourseListVisitedScope.kt │ │ │ │ └── wishlist │ │ │ │ │ ├── CourseListWishComponent.kt │ │ │ │ │ ├── CourseListWishModule.kt │ │ │ │ │ └── CourseListWishScope.kt │ │ │ ├── course_payments │ │ │ │ └── CoursePaymentsDataModule.kt │ │ │ ├── course_purchase │ │ │ │ ├── CoursePurchaseComponent.kt │ │ │ │ ├── CoursePurchaseDataModule.kt │ │ │ │ └── CoursePurchasePresentationModule.kt │ │ │ ├── course_recommendations │ │ │ │ └── CourseRecommendationsDataModule.kt │ │ │ ├── course_revenue │ │ │ │ ├── CourseBeneficiariesDataModule.kt │ │ │ │ ├── CourseBenefitByMonthsDataModule.kt │ │ │ │ ├── CourseBenefitSummariesDataModule.kt │ │ │ │ ├── CourseBenefitsDataModule.kt │ │ │ │ ├── CourseRevenueComponent.kt │ │ │ │ └── CourseRevenuePresentationModule.kt │ │ │ ├── course_reviews │ │ │ │ ├── ComposeCourseReviewComponent.kt │ │ │ │ ├── ComposeCourseReviewModule.kt │ │ │ │ └── CourseReviewsDataModule.kt │ │ │ ├── course_search │ │ │ │ ├── CourseSearchComponent.kt │ │ │ │ └── CourseSearchPresentationModule.kt │ │ │ ├── device │ │ │ │ └── DeviceDataModule.kt │ │ │ ├── discussion_proxy │ │ │ │ └── DiscussionProxyDataModule.kt │ │ │ ├── discussion_thread │ │ │ │ └── DiscussionThreadDataModule.kt │ │ │ ├── download │ │ │ │ ├── DownloadComponent.kt │ │ │ │ ├── DownloadDataModule.kt │ │ │ │ ├── DownloadModule.kt │ │ │ │ └── DownloadsProgressStatusMapper.kt │ │ │ ├── email_address │ │ │ │ └── EmailAddressDataModule.kt │ │ │ ├── exam_session │ │ │ │ └── ExamSessionDataModule.kt │ │ │ ├── fast_continue │ │ │ │ ├── FastContinueComponent.kt │ │ │ │ ├── FastContinueModule.kt │ │ │ │ └── FastContinueScope.kt │ │ │ ├── feedback │ │ │ │ ├── FeedbackComponent.kt │ │ │ │ ├── FeedbackDataModule.kt │ │ │ │ └── FeedbackModule.kt │ │ │ ├── filter │ │ │ │ ├── FilterComponent.kt │ │ │ │ └── FilterModule.kt │ │ │ ├── font_size_settings │ │ │ │ ├── FontSizeComponent.kt │ │ │ │ └── FontSizeModule.kt │ │ │ ├── glide │ │ │ │ └── GlideCustomModule.java │ │ │ ├── in_app_web_view │ │ │ │ ├── InAppWebViewComponent.kt │ │ │ │ └── InAppWebViewModule.kt │ │ │ ├── last_step │ │ │ │ └── LastStepDataModule.kt │ │ │ ├── learning_actions │ │ │ │ └── LearningActionsComponent.kt │ │ │ ├── lesson │ │ │ │ ├── LessonComponent.kt │ │ │ │ ├── LessonDataModule.kt │ │ │ │ └── LessonModule.kt │ │ │ ├── lesson_demo │ │ │ │ ├── LessonDemoComponent.kt │ │ │ │ └── LessonDemoPresentationModule.kt │ │ │ ├── magic_links │ │ │ │ ├── MagicLinksComponent.kt │ │ │ │ ├── MagicLinksDataModule.kt │ │ │ │ └── MagicLinksModule.kt │ │ │ ├── mobile_tiers │ │ │ │ └── MobileTiersDataModule.kt │ │ │ ├── network │ │ │ │ ├── NetworkDataModule.kt │ │ │ │ └── NetworkModule.kt │ │ │ ├── notification │ │ │ │ └── NotificationDataModule.kt │ │ │ ├── personal_deadlines │ │ │ │ └── PersonalDeadlinesDataModule.kt │ │ │ ├── personal_offers │ │ │ │ └── PersonalOffersDataModule.kt │ │ │ ├── proctor_session │ │ │ │ └── ProctorSessionDataModule.kt │ │ │ ├── profile │ │ │ │ ├── ProfileBusModule.kt │ │ │ │ ├── ProfileComponent.kt │ │ │ │ ├── ProfileCoursesComponent.kt │ │ │ │ ├── ProfileCoursesPresentationModule.kt │ │ │ │ ├── ProfileCoursesScope.kt │ │ │ │ ├── ProfileDataModule.kt │ │ │ │ ├── ProfileModule.kt │ │ │ │ ├── ProfileScope.kt │ │ │ │ └── UserId.kt │ │ │ ├── profile_edit │ │ │ │ ├── ProfileEditComponent.kt │ │ │ │ └── ProfileEditModule.kt │ │ │ ├── progress │ │ │ │ ├── ProgressBusModule.kt │ │ │ │ └── ProgressDataModule.kt │ │ │ ├── purchase_notification │ │ │ │ └── PurchaseNotificationDataModule.kt │ │ │ ├── qualifiers │ │ │ │ ├── AuthLock.kt │ │ │ │ ├── AuthServiceQualifiers.kt │ │ │ │ └── DebugInterceptors.kt │ │ │ ├── rating │ │ │ │ └── RatingDataModule.kt │ │ │ ├── recommendation │ │ │ │ └── RecommendationModule.kt │ │ │ ├── remote_storage │ │ │ │ └── RemoteStorageDataModule.kt │ │ │ ├── review │ │ │ │ └── ReviewDataModule.kt │ │ │ ├── review_instruction │ │ │ │ └── ReviewInstructionDataModule.kt │ │ │ ├── review_session │ │ │ │ └── ReviewSessionDataModule.kt │ │ │ ├── rubric │ │ │ │ └── RubricDataModule.kt │ │ │ ├── search │ │ │ │ ├── CatalogSearchSuggestionsPresentationModule.kt │ │ │ │ ├── CourseSearchSuggestionsPresentationModule.kt │ │ │ │ └── SearchDataModule.kt │ │ │ ├── search_result │ │ │ │ └── SearchResultDataModule.kt │ │ │ ├── section │ │ │ │ └── SectionDataModule.kt │ │ │ ├── serialization │ │ │ │ └── SerializationModule.kt │ │ │ ├── settings │ │ │ │ ├── SettingsComponent.kt │ │ │ │ └── SettingsModule.kt │ │ │ ├── social_profile │ │ │ │ ├── SocialProfileComponent.kt │ │ │ │ └── SocialProfileDataModule.kt │ │ │ ├── solutions │ │ │ │ ├── SolutionsBus.kt │ │ │ │ ├── SolutionsBusModule.kt │ │ │ │ ├── SolutionsComponent.kt │ │ │ │ ├── SolutionsModule.kt │ │ │ │ └── SolutionsSentBus.kt │ │ │ ├── step │ │ │ │ ├── StepComponent.kt │ │ │ │ ├── StepDataModule.kt │ │ │ │ ├── StepDiscussionBus.kt │ │ │ │ ├── StepDiscussionBusModule.kt │ │ │ │ ├── StepModule.kt │ │ │ │ ├── StepScope.kt │ │ │ │ └── StepWrapperBusModule.kt │ │ │ ├── step_content │ │ │ │ └── StepContentModule.kt │ │ │ ├── step_content_text │ │ │ │ ├── TextStepContentComponent.kt │ │ │ │ └── TextStepContentModule.kt │ │ │ ├── step_content_video │ │ │ │ ├── VideoStepContentComponent.kt │ │ │ │ └── VideoStepContentModule.kt │ │ │ ├── step_quiz │ │ │ │ ├── CodePreferenceBus.kt │ │ │ │ ├── StepQuizBus.kt │ │ │ │ ├── StepQuizBusModule.kt │ │ │ │ ├── StepQuizModule.kt │ │ │ │ └── StepQuizPresentationModule.kt │ │ │ ├── step_source │ │ │ │ ├── StepSourceDataModule.kt │ │ │ │ └── StepSourceModule.kt │ │ │ ├── stories │ │ │ │ ├── StoriesComponent.kt │ │ │ │ └── StoriesPresentationModule.kt │ │ │ ├── story │ │ │ │ ├── StoryComponent.kt │ │ │ │ ├── StoryDataModule.kt │ │ │ │ ├── StoryPresentationModule.kt │ │ │ │ └── StoryReactionDataModule.kt │ │ │ ├── story_deeplink │ │ │ │ ├── StoryDeepLinkComponent.kt │ │ │ │ └── StoryDeepLinkPresentationModule.kt │ │ │ ├── submission │ │ │ │ ├── SubmissionComponent.kt │ │ │ │ ├── SubmissionDataModule.kt │ │ │ │ └── SubmissionModule.kt │ │ │ ├── unit │ │ │ │ └── UnitDataModule.kt │ │ │ ├── user │ │ │ │ └── UserDataModule.kt │ │ │ ├── user_activity │ │ │ │ └── UserActivityDataModule.kt │ │ │ ├── user_code_run │ │ │ │ ├── UserCodeRunComponent.kt │ │ │ │ └── UserCodeRunModule.kt │ │ │ ├── user_courses │ │ │ │ └── UserCoursesDataModule.kt │ │ │ ├── user_profile │ │ │ │ └── UserProfileDataModule.kt │ │ │ ├── user_reviews │ │ │ │ ├── LearningActionsScope.kt │ │ │ │ ├── UserCourseReviewOperationBus.kt │ │ │ │ ├── UserReviewsBusModule.kt │ │ │ │ └── UserReviewsPresentationModule.kt │ │ │ ├── video_player │ │ │ │ ├── VideoPlayerComponent.kt │ │ │ │ ├── VideoPlayerModule.kt │ │ │ │ └── VideoTimestampDataModule.kt │ │ │ ├── view_assignment │ │ │ │ ├── ViewAssignmentBus.kt │ │ │ │ ├── ViewAssignmentBusModule.kt │ │ │ │ ├── ViewAssignmentComponent.kt │ │ │ │ └── ViewAssignmentDataModule.kt │ │ │ ├── visited_courses │ │ │ │ └── VisitedCoursesDataModule.kt │ │ │ ├── vote │ │ │ │ └── VoteDataModule.kt │ │ │ └── wishlist │ │ │ │ ├── WishlistDataModule.kt │ │ │ │ └── WishlistPresentationModule.kt │ │ │ ├── latex │ │ │ ├── js_interface │ │ │ │ └── ModelViewerInterface.kt │ │ │ ├── mapper │ │ │ │ └── LatexWebViewMapper.kt │ │ │ ├── model │ │ │ │ ├── TextAttributes.kt │ │ │ │ └── block │ │ │ │ │ ├── BaseStyleBlock.kt │ │ │ │ │ └── SelectionColorStyleBlock.kt │ │ │ └── ui │ │ │ │ └── widget │ │ │ │ ├── LatexView.kt │ │ │ │ ├── LatexWebView.kt │ │ │ │ └── ProgressableWebViewClient.kt │ │ │ ├── learning_actions │ │ │ ├── model │ │ │ │ └── LearningActionsItem.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── UserReviewsActionAdapterDelegate.kt │ │ │ │ │ └── WishlistActionAdapterDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── LearningActionsFragment.kt │ │ │ ├── lesson │ │ │ ├── routing │ │ │ │ └── LessonDeepLinkHandler.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── LessonActivity.kt │ │ │ │ ├── delegate │ │ │ │ └── LessonInfoTooltipDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── SectionUnavailableDialogFragment.kt │ │ │ │ ├── interfaces │ │ │ │ ├── Moveable.kt │ │ │ │ └── Playable.kt │ │ │ │ └── mapper │ │ │ │ └── LessonTitleMapper.kt │ │ │ ├── lesson_demo │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── LessonDemoCompleteBottomSheetDialogFragment.kt │ │ │ ├── magic_links │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── MagicLinkDialogFragment.kt │ │ │ ├── notification │ │ │ ├── FcmNotificationHandler.kt │ │ │ ├── FcmNotificationHandlerImpl.kt │ │ │ ├── NotificationDelegate.kt │ │ │ ├── NotificationPublisher.kt │ │ │ ├── NotificationPublisherImpl.kt │ │ │ ├── StepikNotificationManager.kt │ │ │ ├── StepikNotificationManagerImpl.kt │ │ │ ├── extension │ │ │ │ └── PendingIntentCompat.kt │ │ │ ├── helpers │ │ │ │ ├── NotificationHelper.kt │ │ │ │ └── NotificationHelperImpl.kt │ │ │ ├── receiver │ │ │ │ ├── AlarmReceiver.kt │ │ │ │ └── BootCompleteReceiver.kt │ │ │ └── service │ │ │ │ ├── BootCompleteService.kt │ │ │ │ └── NotificationAlarmService.kt │ │ │ ├── onboarding │ │ │ ├── model │ │ │ │ ├── IconBackground.kt │ │ │ │ ├── OnboardingCourseList.kt │ │ │ │ └── OnboardingGoal.kt │ │ │ ├── resolver │ │ │ │ └── OnboardingRemoteConfigResolver.kt │ │ │ └── ui │ │ │ │ └── activity │ │ │ │ ├── OnboardingCourseListsActivity.kt │ │ │ │ └── OnboardingGoalActivity.kt │ │ │ ├── personal_deadlines │ │ │ ├── notification │ │ │ │ └── DeadlinesNotificationDelegate.kt │ │ │ └── ui │ │ │ │ ├── adapters │ │ │ │ ├── EditDeadlinesAdapter.kt │ │ │ │ └── LearningRateAdapter.kt │ │ │ │ └── dialogs │ │ │ │ ├── EditDeadlinesDialog.kt │ │ │ │ └── LearningRateDialog.kt │ │ │ ├── profile │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── ProfileActivity.kt │ │ │ │ ├── animation │ │ │ │ └── ProfileHeaderAnimationDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── ProfileStatsDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── ProfileFragment.kt │ │ │ ├── profile_achievements │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileAchievementsFragment.kt │ │ │ ├── profile_activities │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileActivitiesFragment.kt │ │ │ ├── profile_certificates │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileCertificatesFragment.kt │ │ │ ├── profile_courses │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileCoursesFragment.kt │ │ │ ├── profile_detail │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileDetailFragment.kt │ │ │ ├── profile_edit │ │ │ ├── model │ │ │ │ └── ProfileEditItem.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ ├── ProfileEditActivity.kt │ │ │ │ ├── ProfileEditInfoActivity.kt │ │ │ │ └── ProfileEditPasswordActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegates │ │ │ │ │ └── ProfileEditTextDelegate.kt │ │ │ │ └── util │ │ │ │ └── ValidateUtil.kt │ │ │ ├── profile_id │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileIdFragment.kt │ │ │ ├── profile_links │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ └── ProfileLinksAdapterDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── ProfileLinksFragment.kt │ │ │ ├── profile_notification │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── ProfileNotificationFragment.kt │ │ │ ├── progress │ │ │ └── ui │ │ │ │ └── mapper │ │ │ │ └── ProgressTextMapper.kt │ │ │ ├── purchase_notification │ │ │ └── notification │ │ │ │ └── PurchaseNotificationDelegate.kt │ │ │ ├── routing │ │ │ └── deeplink │ │ │ │ ├── BranchDeepLinkParser.kt │ │ │ │ ├── BranchDeepLinkRouter.kt │ │ │ │ └── BranchRoute.kt │ │ │ ├── settings │ │ │ ├── mapper │ │ │ │ └── StorageLocationDescriptionMapper.kt │ │ │ ├── routing │ │ │ │ └── DeleteAccountDeepLinkBuilder.kt │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── SettingsActivity.kt │ │ │ │ ├── dialog │ │ │ │ └── NightModeSettingDialogFragment.kt │ │ │ │ └── fragment │ │ │ │ └── SettingsFragment.kt │ │ │ ├── solutions │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── SolutionsActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── SolutionDisclaimerAdapterDelegate.kt │ │ │ │ │ ├── SolutionLessonAdapterDelegate.kt │ │ │ │ │ ├── SolutionSectionAdapterDelegate.kt │ │ │ │ │ └── SolutionSubmissionAdapterDelegate.kt │ │ │ │ └── dialog │ │ │ │ └── RemoveSolutionsDialog.kt │ │ │ ├── splash │ │ │ └── notification │ │ │ │ ├── RemindRegistrationNotificationDelegate.kt │ │ │ │ └── RetentionNotificationDelegate.kt │ │ │ ├── step │ │ │ ├── model │ │ │ │ ├── SectionUnavailableAction.kt │ │ │ │ └── StepNavigationAction.kt │ │ │ ├── routing │ │ │ │ └── StepDeepLinkBuilder.kt │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ ├── StepDiscussionsDelegate.kt │ │ │ │ ├── StepNavigationDelegate.kt │ │ │ │ └── StepSolutionStatsDelegate.kt │ │ │ │ ├── fragment │ │ │ │ └── StepFragment.kt │ │ │ │ └── interfaces │ │ │ │ └── StepMenuNavigator.kt │ │ │ ├── step_content │ │ │ └── ui │ │ │ │ └── factory │ │ │ │ ├── StepContentFragmentFactory.kt │ │ │ │ └── StepContentFragmentFactoryImpl.kt │ │ │ ├── step_content_text │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── TextStepContentFragment.kt │ │ │ ├── step_content_video │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── VideoStepContentFragment.kt │ │ │ ├── step_quiz │ │ │ ├── mapper │ │ │ │ └── StepQuizFeedbackMapper.kt │ │ │ ├── model │ │ │ │ └── StepQuizFeedbackState.kt │ │ │ ├── resolver │ │ │ │ └── StepQuizFormResolver.kt │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ ├── StepQuizDelegate.kt │ │ │ │ ├── StepQuizFeedbackBlocksDelegate.kt │ │ │ │ └── StepQuizFormDelegate.kt │ │ │ │ ├── factory │ │ │ │ ├── StepQuizFormFactory.kt │ │ │ │ ├── StepQuizFragmentFactory.kt │ │ │ │ ├── StepQuizFragmentFactoryImpl.kt │ │ │ │ └── StepQuizViewStateDelegateFactory.kt │ │ │ │ └── fragment │ │ │ │ └── DefaultStepQuizFragment.kt │ │ │ ├── step_quiz_choice │ │ │ ├── mapper │ │ │ │ └── ChoiceStepQuizOptionsMapper.kt │ │ │ ├── model │ │ │ │ └── Choice.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── ChoicesAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ ├── ChoiceStepQuizFormDelegate.kt │ │ │ │ └── LayerListDrawableDelegate.kt │ │ │ │ ├── fragment │ │ │ │ └── ChoiceStepQuizFragment.kt │ │ │ │ └── view │ │ │ │ └── QuizItemView.kt │ │ │ ├── step_quiz_code │ │ │ ├── mapper │ │ │ │ ├── CodeStepQuizDetailsMapper.kt │ │ │ │ └── CodeStepQuizFormStateMapper.kt │ │ │ ├── model │ │ │ │ ├── CodeDetail.kt │ │ │ │ └── CodeStepQuizFormState.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── CodeDetailLimitAdapterDelegate.kt │ │ │ │ │ ├── CodeDetailSampleAdapterDelegate.kt │ │ │ │ │ └── CodeLangAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ ├── CodeLayoutDelegate.kt │ │ │ │ ├── CodeQuizInstructionDelegate.kt │ │ │ │ ├── CodeStepQuizFormDelegate.kt │ │ │ │ └── CodeStepRunCodeDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── CodeStepQuizFragment.kt │ │ │ ├── step_quiz_fill_blanks │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── FillBlanksItemInputAdapterDelegate.kt │ │ │ │ │ ├── FillBlanksItemSelectAdapterDelegate.kt │ │ │ │ │ └── FillBlanksItemTextAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── FillBlanksStepQuizFormDelegate.kt │ │ │ │ ├── fragment │ │ │ │ ├── FillBlanksInputBottomSheetDialogFragment.kt │ │ │ │ └── FillBlanksStepQuizFragment.kt │ │ │ │ ├── mapper │ │ │ │ └── FillBlanksItemMapper.kt │ │ │ │ └── model │ │ │ │ └── FillBlanksItem.kt │ │ │ ├── step_quiz_fullscreen_code │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── CodeStepQuizFullScreenPagerAdapter.kt │ │ │ │ └── dialog │ │ │ │ └── CodeStepQuizFullScreenDialogFragment.kt │ │ │ ├── step_quiz_matching │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── MatchingItemOptionAdapterDelegate.kt │ │ │ │ │ └── MatchingItemTitleAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── MatchingStepQuizFormDelegate.kt │ │ │ │ ├── fragment │ │ │ │ └── MatchingStepQuizFragment.kt │ │ │ │ ├── mapper │ │ │ │ └── MatchingItemMapper.kt │ │ │ │ ├── model │ │ │ │ └── MatchingItem.kt │ │ │ │ └── view │ │ │ │ └── TableChoiceItemView.kt │ │ │ ├── step_quiz_pycharm │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── PyCharmStepQuizFragment.kt │ │ │ ├── step_quiz_review │ │ │ ├── routing │ │ │ │ └── StepQuizReviewDeepLinkBuilder.kt │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ └── StepQuizReviewDelegate.kt │ │ │ │ ├── factory │ │ │ │ └── StepQuizFormReviewFactory.kt │ │ │ │ ├── fragment │ │ │ │ ├── StepQuizReviewFragment.kt │ │ │ │ └── StepQuizReviewTeacherFragment.kt │ │ │ │ └── widget │ │ │ │ └── ReviewStatusView.kt │ │ │ ├── step_quiz_sorting │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ └── SortingOptionAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── SortingStepQuizFormDelegate.kt │ │ │ │ ├── fragment │ │ │ │ └── SortingStepQuizFragment.kt │ │ │ │ ├── mapper │ │ │ │ └── SortingOptionMapper.kt │ │ │ │ └── model │ │ │ │ └── SortingOption.kt │ │ │ ├── step_quiz_sql │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ └── SqlStepQuizFormDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── SqlStepQuizFragment.kt │ │ │ ├── step_quiz_table │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── TableColumnMultipleSelectionItemAdapterDelegate.kt │ │ │ │ │ ├── TableColumnSingleSelectionItemAdapterDelegate.kt │ │ │ │ │ └── TableSelectionItemAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── TableStepQuizFormDelegate.kt │ │ │ │ ├── fragment │ │ │ │ ├── TableColumnSelectionBottomSheetDialogFragment.kt │ │ │ │ └── TableStepQuizFragment.kt │ │ │ │ ├── mapper │ │ │ │ └── TableSelectionItemMapper.kt │ │ │ │ └── model │ │ │ │ └── TableSelectionItem.kt │ │ │ ├── step_quiz_text │ │ │ └── ui │ │ │ │ ├── delegate │ │ │ │ └── TextStepQuizFormDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── TextStepQuizFragment.kt │ │ │ ├── step_quiz_unsupported │ │ │ └── ui │ │ │ │ └── fragment │ │ │ │ └── UnsupportedStepQuizFragment.kt │ │ │ ├── step_source │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── EditStepSourceDialogFragment.kt │ │ │ ├── stories │ │ │ ├── ui │ │ │ │ └── fragment │ │ │ │ │ └── StoriesFragment.kt │ │ │ └── viewmodel │ │ │ │ └── StoriesViewModel.kt │ │ │ ├── story │ │ │ └── viewmodel │ │ │ │ └── StoryViewModel.kt │ │ │ ├── story_deeplink │ │ │ ├── routing │ │ │ │ └── StoryDeepLinkHandler.kt │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── StoryDeepLinkDialogFragment.kt │ │ │ ├── streak │ │ │ ├── model │ │ │ │ └── StreakNotificationType.kt │ │ │ ├── notification │ │ │ │ └── StreakNotificationDelegate.kt │ │ │ └── ui │ │ │ │ └── dialog │ │ │ │ └── StreakNotificationDialogFragment.kt │ │ │ ├── submission │ │ │ ├── routing │ │ │ │ └── SubmissionDeepLinkBuilder.kt │ │ │ └── ui │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ └── SubmissionDataAdapterDelegate.kt │ │ │ │ ├── delegate │ │ │ │ └── SubmissionViewDelegate.kt │ │ │ │ └── dialog │ │ │ │ ├── SubmissionsDialogFragment.kt │ │ │ │ └── SubmissionsQueryFilterDialogFragment.kt │ │ │ ├── ui │ │ │ ├── delegate │ │ │ │ └── ViewStateDelegate.kt │ │ │ ├── layout │ │ │ │ └── VerticalDragLayout.kt │ │ │ └── listener │ │ │ │ └── FragmentViewPagerScrollStateListener.kt │ │ │ ├── user_reviews │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── UserReviewsActivity.kt │ │ │ │ ├── adapter │ │ │ │ ├── decorator │ │ │ │ │ └── UserCourseReviewItemDecoration.kt │ │ │ │ └── delegate │ │ │ │ │ ├── UserReviewsPlaceholderAdapterDelegate.kt │ │ │ │ │ ├── UserReviewsPotentialAdapterDelegate.kt │ │ │ │ │ ├── UserReviewsPotentialHeaderAdapterDelegate.kt │ │ │ │ │ ├── UserReviewsReviewedAdapterDelegate.kt │ │ │ │ │ └── UserReviewsReviewedHeaderAdapterDelegate.kt │ │ │ │ └── fragment │ │ │ │ └── UserReviewsFragment.kt │ │ │ └── video_player │ │ │ ├── model │ │ │ ├── VideoPlayerData.kt │ │ │ └── VideoPlayerMediaData.kt │ │ │ └── ui │ │ │ ├── activity │ │ │ └── VideoPlayerActivity.kt │ │ │ ├── adapter │ │ │ └── VideoPlayerMediaDescriptionAdapter.kt │ │ │ ├── receiver │ │ │ ├── HeadphonesReceiver.kt │ │ │ └── InternetConnectionReceiverCompat.kt │ │ │ └── service │ │ │ └── VideoPlayerForegroundService.kt │ └── res │ │ ├── anim-ldrtl │ │ ├── slide_in_from_end.xml │ │ ├── slide_in_from_start.xml │ │ ├── slide_out_to_end.xml │ │ └── slide_out_to_start.xml │ │ ├── anim │ │ ├── adaptive_dialog_in.xml │ │ ├── adaptive_dialog_out.xml │ │ ├── fade_in.xml │ │ ├── fade_out.xml │ │ ├── no_transition.xml │ │ ├── popup_enter.xml │ │ ├── popup_exit.xml │ │ ├── push_down.xml │ │ ├── push_up.xml │ │ ├── slide_in_from_bottom.xml │ │ ├── slide_in_from_end.xml │ │ ├── slide_in_from_start.xml │ │ ├── slide_out_to_bottom.xml │ │ ├── slide_out_to_end.xml │ │ ├── slide_out_to_start.xml │ │ └── slide_out_to_top.xml │ │ ├── animator │ │ ├── arrow_bottom_to_top.xml │ │ └── arrow_top_to_bottom.xml │ │ ├── color │ │ ├── adaptive_rating_item_text_color.xml │ │ ├── color_bottom_navigation_tint.xml │ │ ├── color_control_selector.xml │ │ ├── color_correct_arrow_down.xml │ │ ├── color_enabled_arrow_down.xml │ │ ├── color_login_edit_text.xml │ │ ├── color_on_surface_alpha_12_selector.xml │ │ ├── color_peer_review_step.xml │ │ ├── color_peer_review_step_title.xml │ │ ├── color_run_code_body.xml │ │ ├── color_run_code_title.xml │ │ ├── color_step_quiz_sorting_stroke.xml │ │ ├── color_step_tab.xml │ │ ├── color_story_reaction_tint.xml │ │ ├── color_wrong_arrow_down.xml │ │ └── material_outlined_stroke_color.xml │ │ ├── drawable-hdpi │ │ ├── general_placeholder.webp │ │ ├── ic_action_done.webp │ │ ├── ic_action_more_vert.webp │ │ ├── ic_action_search.webp │ │ ├── ic_animation.webp │ │ ├── ic_close_dark.webp │ │ ├── ic_close_white_24dp.webp │ │ ├── ic_close_white_with_padding.webp │ │ ├── ic_content_copy_material_24.webp │ │ ├── ic_easy_quiz.webp │ │ ├── ic_edit.webp │ │ ├── ic_empty.webp │ │ ├── ic_empty_downloads.webp │ │ ├── ic_empty_login.webp │ │ ├── ic_empty_notifications.webp │ │ ├── ic_empty_search.webp │ │ ├── ic_forward_10_white_48dp.webp │ │ ├── ic_hard_quiz.webp │ │ ├── ic_home.webp │ │ ├── ic_lesson_info.webp │ │ ├── ic_linkedin.webp │ │ ├── ic_mobile_notifications.webp │ │ ├── ic_more_without_padding.webp │ │ ├── ic_nav_arrow_right.webp │ │ ├── ic_no_wifi.webp │ │ ├── ic_notification_icon_1.webp │ │ ├── ic_open_in_browser_material_24px.webp │ │ ├── ic_pause_circle_outline_white_72.webp │ │ ├── ic_play_circle_outline_white_72.webp │ │ ├── ic_playbackrate_0_5_light.webp │ │ ├── ic_playbackrate_0_75_light.webp │ │ ├── ic_playbackrate_1_25_light.webp │ │ ├── ic_playbackrate_1_5_light.webp │ │ ├── ic_playbackrate_1_75_light.webp │ │ ├── ic_playbackrate_1_light.webp │ │ ├── ic_playbackrate_2_0_light.webp │ │ ├── ic_player_next.webp │ │ ├── ic_player_notification.webp │ │ ├── ic_profile.webp │ │ ├── ic_profile_edit_save.webp │ │ ├── ic_profile_edit_save_disabled.webp │ │ ├── ic_progress_star_green_rastr.webp │ │ ├── ic_progress_star_white_rastr.webp │ │ ├── ic_rating.webp │ │ ├── ic_replay_10_white_48dp.webp │ │ ├── ic_search_menu.webp │ │ ├── ic_settings_dark.webp │ │ ├── ic_share_dark.webp │ │ ├── ic_share_material_24px.webp │ │ ├── ic_shortcut_find_courses.webp │ │ ├── ic_shortcut_profile.webp │ │ ├── ic_star_rate_gray.webp │ │ ├── ic_star_rate_yellow.webp │ │ ├── ic_stepik_logotype_square_black.webp │ │ ├── ic_video_pin.webp │ │ └── stepic_logo.webp │ │ ├── drawable-mdpi │ │ ├── general_placeholder.webp │ │ ├── ic_action_done.webp │ │ ├── ic_action_more_vert.webp │ │ ├── ic_action_search.webp │ │ ├── ic_animation.webp │ │ ├── ic_close_dark.webp │ │ ├── ic_close_white_24dp.webp │ │ ├── ic_close_white_with_padding.webp │ │ ├── ic_content_copy_material_24.webp │ │ ├── ic_easy_quiz.webp │ │ ├── ic_edit.webp │ │ ├── ic_empty.webp │ │ ├── ic_empty_downloads.webp │ │ ├── ic_empty_login.webp │ │ ├── ic_empty_notifications.webp │ │ ├── ic_empty_search.webp │ │ ├── ic_forward_10_white_48dp.webp │ │ ├── ic_hard_quiz.webp │ │ ├── ic_home.webp │ │ ├── ic_lesson_info.webp │ │ ├── ic_linkedin.webp │ │ ├── ic_mobile_notifications.webp │ │ ├── ic_more_without_padding.webp │ │ ├── ic_nav_arrow_right.webp │ │ ├── ic_no_wifi.webp │ │ ├── ic_notification_icon_1.webp │ │ ├── ic_open_in_browser_material_24px.webp │ │ ├── ic_pause_circle_outline_white_72.webp │ │ ├── ic_play_circle_outline_white_72.webp │ │ ├── ic_playbackrate_0_5_light.webp │ │ ├── ic_playbackrate_0_75_light.webp │ │ ├── ic_playbackrate_1_25_light.webp │ │ ├── ic_playbackrate_1_5_light.webp │ │ ├── ic_playbackrate_1_75_light.webp │ │ ├── ic_playbackrate_1_light.webp │ │ ├── ic_playbackrate_2_0_light.webp │ │ ├── ic_player_next.webp │ │ ├── ic_player_notification.webp │ │ ├── ic_profile.webp │ │ ├── ic_profile_edit_save.webp │ │ ├── ic_profile_edit_save_disabled.webp │ │ ├── ic_progress_star_green_rastr.webp │ │ ├── ic_progress_star_white_rastr.webp │ │ ├── ic_rating.webp │ │ ├── ic_replay_10_white_48dp.webp │ │ ├── ic_search_menu.webp │ │ ├── ic_settings_dark.webp │ │ ├── ic_share_dark.webp │ │ ├── ic_share_material_24px.webp │ │ ├── ic_shortcut_find_courses.webp │ │ ├── ic_shortcut_profile.webp │ │ ├── ic_star_rate_gray.webp │ │ ├── ic_star_rate_yellow.webp │ │ ├── ic_stepik_logotype_square_black.webp │ │ ├── ic_video_pin.webp │ │ └── stepic_logo.webp │ │ ├── drawable-night-hdpi │ │ └── general_placeholder.webp │ │ ├── drawable-night-mdpi │ │ └── general_placeholder.webp │ │ ├── drawable-night-xhdpi │ │ └── general_placeholder.webp │ │ ├── drawable-night-xxhdpi │ │ └── general_placeholder.webp │ │ ├── drawable-night-xxxhdpi │ │ └── general_placeholder.webp │ │ ├── drawable-night │ │ ├── bg_academy_logo.xml │ │ ├── bg_bottom_sheet_dialog.xml │ │ ├── bg_fast_continue.xml │ │ ├── bg_simple_course_list_grid_first.xml │ │ ├── bg_user_course_list.xml │ │ ├── ic_academy_illustration.xml │ │ ├── ic_academy_logo.xml │ │ └── onboarding_featured_background.xml │ │ ├── drawable-xhdpi │ │ ├── general_placeholder.webp │ │ ├── ic_action_done.webp │ │ ├── ic_action_more_vert.webp │ │ ├── ic_action_search.webp │ │ ├── ic_animation.webp │ │ ├── ic_close_dark.webp │ │ ├── ic_close_white_24dp.webp │ │ ├── ic_close_white_with_padding.webp │ │ ├── ic_content_copy_material_24.webp │ │ ├── ic_easy_quiz.webp │ │ ├── ic_edit.webp │ │ ├── ic_empty.webp │ │ ├── ic_empty_downloads.webp │ │ ├── ic_empty_login.webp │ │ ├── ic_empty_notifications.webp │ │ ├── ic_empty_search.webp │ │ ├── ic_forward_10_white_48dp.webp │ │ ├── ic_hard_quiz.webp │ │ ├── ic_home.webp │ │ ├── ic_lesson_info.webp │ │ ├── ic_linkedin.webp │ │ ├── ic_mobile_notifications.webp │ │ ├── ic_more_without_padding.webp │ │ ├── ic_nav_arrow_right.webp │ │ ├── ic_no_wifi.webp │ │ ├── ic_notification_icon_1.webp │ │ ├── ic_open_in_browser_material_24px.webp │ │ ├── ic_pause_circle_outline_white_72.webp │ │ ├── ic_play_circle_outline_white_72.webp │ │ ├── ic_playbackrate_0_5_light.webp │ │ ├── ic_playbackrate_0_75_light.webp │ │ ├── ic_playbackrate_1_25_light.webp │ │ ├── ic_playbackrate_1_5_light.webp │ │ ├── ic_playbackrate_1_75_light.webp │ │ ├── ic_playbackrate_1_light.webp │ │ ├── ic_playbackrate_2_0_light.webp │ │ ├── ic_player_next.webp │ │ ├── ic_player_notification.webp │ │ ├── ic_profile.webp │ │ ├── ic_profile_edit_save.webp │ │ ├── ic_profile_edit_save_disabled.webp │ │ ├── ic_progress_star_green_rastr.webp │ │ ├── ic_progress_star_white_rastr.webp │ │ ├── ic_rating.webp │ │ ├── ic_replay_10_white_48dp.webp │ │ ├── ic_search_menu.webp │ │ ├── ic_settings_dark.webp │ │ ├── ic_share_dark.webp │ │ ├── ic_share_material_24px.webp │ │ ├── ic_shortcut_find_courses.webp │ │ ├── ic_shortcut_profile.webp │ │ ├── ic_star_rate_gray.webp │ │ ├── ic_star_rate_yellow.webp │ │ ├── ic_stepik_logotype_square_black.webp │ │ ├── ic_video_pin.webp │ │ └── stepic_logo.webp │ │ ├── drawable-xxhdpi │ │ ├── general_placeholder.webp │ │ ├── ic_action_done.webp │ │ ├── ic_action_more_vert.webp │ │ ├── ic_action_search.webp │ │ ├── ic_animation.webp │ │ ├── ic_close_dark.webp │ │ ├── ic_close_white_24dp.webp │ │ ├── ic_close_white_with_padding.webp │ │ ├── ic_content_copy_material_24.webp │ │ ├── ic_easy_quiz.webp │ │ ├── ic_edit.webp │ │ ├── ic_empty.webp │ │ ├── ic_empty_downloads.webp │ │ ├── ic_empty_login.webp │ │ ├── ic_empty_notifications.webp │ │ ├── ic_empty_search.webp │ │ ├── ic_forward_10_white_48dp.webp │ │ ├── ic_hard_quiz.webp │ │ ├── ic_home.webp │ │ ├── ic_lesson_info.webp │ │ ├── ic_linkedin.webp │ │ ├── ic_mobile_notifications.webp │ │ ├── ic_more_without_padding.webp │ │ ├── ic_nav_arrow_right.webp │ │ ├── ic_no_wifi.webp │ │ ├── ic_notification_icon_1.webp │ │ ├── ic_open_in_browser_material_24px.webp │ │ ├── ic_pause_circle_outline_white_72.webp │ │ ├── ic_play_circle_outline_white_72.webp │ │ ├── ic_playbackrate_0_5_light.webp │ │ ├── ic_playbackrate_0_75_light.webp │ │ ├── ic_playbackrate_1_25_light.webp │ │ ├── ic_playbackrate_1_5_light.webp │ │ ├── ic_playbackrate_1_75_light.webp │ │ ├── ic_playbackrate_1_light.webp │ │ ├── ic_playbackrate_2_0_light.webp │ │ ├── ic_player_next.webp │ │ ├── ic_player_notification.webp │ │ ├── ic_profile.webp │ │ ├── ic_profile_edit_save.webp │ │ ├── ic_profile_edit_save_disabled.webp │ │ ├── ic_progress_star_green_rastr.webp │ │ ├── ic_progress_star_white_rastr.webp │ │ ├── ic_rating.webp │ │ ├── ic_replay_10_white_48dp.webp │ │ ├── ic_search_menu.webp │ │ ├── ic_settings_dark.webp │ │ ├── ic_share_dark.webp │ │ ├── ic_share_material_24px.webp │ │ ├── ic_shortcut_find_courses.webp │ │ ├── ic_shortcut_profile.webp │ │ ├── ic_star_rate_gray.webp │ │ ├── ic_star_rate_yellow.webp │ │ ├── ic_stepik_logotype_square_black.webp │ │ ├── ic_video_pin.webp │ │ └── stepic_logo.webp │ │ ├── drawable-xxxhdpi │ │ ├── general_placeholder.webp │ │ ├── ic_action_done.webp │ │ ├── ic_action_more_vert.webp │ │ ├── ic_action_search.webp │ │ ├── ic_animation.webp │ │ ├── ic_close_dark.webp │ │ ├── ic_close_white_24dp.webp │ │ ├── ic_close_white_with_padding.webp │ │ ├── ic_content_copy_material_24.webp │ │ ├── ic_easy_quiz.webp │ │ ├── ic_edit.webp │ │ ├── ic_empty.webp │ │ ├── ic_empty_downloads.webp │ │ ├── ic_empty_login.webp │ │ ├── ic_empty_notifications.webp │ │ ├── ic_empty_search.webp │ │ ├── ic_forward_10_white_48dp.webp │ │ ├── ic_hard_quiz.webp │ │ ├── ic_home.webp │ │ ├── ic_lesson_info.webp │ │ ├── ic_linkedin.webp │ │ ├── ic_mobile_notifications.webp │ │ ├── ic_more_without_padding.webp │ │ ├── ic_nav_arrow_right.webp │ │ ├── ic_no_wifi.webp │ │ ├── ic_notification_icon_1.webp │ │ ├── ic_open_in_browser_material_24px.webp │ │ ├── ic_pause_circle_outline_white_72.webp │ │ ├── ic_play_circle_outline_white_72.webp │ │ ├── ic_playbackrate_0_5_light.webp │ │ ├── ic_playbackrate_0_75_light.webp │ │ ├── ic_playbackrate_1_25_light.webp │ │ ├── ic_playbackrate_1_5_light.webp │ │ ├── ic_playbackrate_1_75_light.webp │ │ ├── ic_playbackrate_1_light.webp │ │ ├── ic_playbackrate_2_0_light.webp │ │ ├── ic_player_next.webp │ │ ├── ic_player_notification.webp │ │ ├── ic_profile.webp │ │ ├── ic_profile_edit_save.webp │ │ ├── ic_profile_edit_save_disabled.webp │ │ ├── ic_progress_star_green_rastr.webp │ │ ├── ic_progress_star_white_rastr.webp │ │ ├── ic_rating.webp │ │ ├── ic_replay_10_white_48dp.webp │ │ ├── ic_search_menu.webp │ │ ├── ic_settings_dark.webp │ │ ├── ic_share_dark.webp │ │ ├── ic_share_material_24px.webp │ │ ├── ic_shortcut_find_courses.webp │ │ ├── ic_shortcut_profile.webp │ │ ├── ic_star_rate_gray.webp │ │ ├── ic_star_rate_yellow.webp │ │ ├── ic_stepik_logotype_square_black.webp │ │ ├── ic_video_pin.webp │ │ └── stepic_logo.webp │ │ ├── drawable │ │ ├── active_story_marker.xml │ │ ├── avd_arrow_bottom_to_top.xml │ │ ├── avd_arrow_top_to_bottom.xml │ │ ├── background_home_streak_view.xml │ │ ├── background_popup.xml │ │ ├── background_popup_light.xml │ │ ├── background_toolbar_translucent.xml │ │ ├── bg_academy_logo.xml │ │ ├── bg_adaptive_exp_bubble.xml │ │ ├── bg_adaptive_stamp.xml │ │ ├── bg_announcement_composing.xml │ │ ├── bg_announcement_on_event.xml │ │ ├── bg_announcement_scheduled.xml │ │ ├── bg_announcement_sent.xml │ │ ├── bg_attempt_submission_correct_item.xml │ │ ├── bg_attempt_submission_incorrect_item.xml │ │ ├── bg_attempt_submission_item.xml │ │ ├── bg_attempt_submission_item_correct_ripple.xml │ │ ├── bg_attempt_submission_item_incorrect_ripple.xml │ │ ├── bg_attempt_submission_item_ripple.xml │ │ ├── bg_bottom_sheet_dialog.xml │ │ ├── bg_catalog_course_list_default.xml │ │ ├── bg_catalog_course_list_grid.xml │ │ ├── bg_catalog_search_bar.xml │ │ ├── bg_certificate_profile_item.xml │ │ ├── bg_comment_item.xml │ │ ├── bg_comment_item_solution.xml │ │ ├── bg_comment_tag_course_moderator.xml │ │ ├── bg_comment_tag_course_team.xml │ │ ├── bg_comment_tag_pinned.xml │ │ ├── bg_course_item_placeholder.xml │ │ ├── bg_course_purchase_promo_code_submit.xml │ │ ├── bg_course_review_summary_progress.xml │ │ ├── bg_divider_vertical.xml │ │ ├── bg_divider_vertical_course_search.xml │ │ ├── bg_fast_continue.xml │ │ ├── bg_item_adaptive_rating.xml │ │ ├── bg_item_course_news.xml │ │ ├── bg_overlay_story.xml │ │ ├── bg_peer_review_step_active.xml │ │ ├── bg_peer_review_step_error.xml │ │ ├── bg_peer_review_step_link.xml │ │ ├── bg_peer_review_step_passed.xml │ │ ├── bg_placeholder_blue.xml │ │ ├── bg_placeholder_fire.xml │ │ ├── bg_run_code.xml │ │ ├── bg_shape_rounded.xml │ │ ├── bg_shape_rounded_16dp.xml │ │ ├── bg_shape_rounded_bottom.xml │ │ ├── bg_shape_rounded_top.xml │ │ ├── bg_shape_square.xml │ │ ├── bg_simple_course_list_grid_first.xml │ │ ├── bg_step_quiz_choice_item.xml │ │ ├── bg_step_quiz_choice_item_feedback.xml │ │ ├── bg_step_quiz_choice_ripple.xml │ │ ├── bg_step_quiz_feedback_correct.xml │ │ ├── bg_step_quiz_feedback_correct_ripple.xml │ │ ├── bg_step_quiz_feedback_correct_with_hint.xml │ │ ├── bg_step_quiz_feedback_correct_with_hint_ripple.xml │ │ ├── bg_step_quiz_fill_blanks_item.xml │ │ ├── bg_step_quiz_fill_blanks_ripple.xml │ │ ├── bg_step_quiz_text_field.xml │ │ ├── bg_submission_item_divider.xml │ │ ├── bg_transparent_button.xml │ │ ├── bg_user_course_list.xml │ │ ├── branded_logo.xml │ │ ├── continue_learning_cover.webp │ │ ├── course_complete_blue_violet_gradient.xml │ │ ├── course_complete_yellow_green_gradient.xml │ │ ├── course_complete_yellow_red_gradient.xml │ │ ├── course_review_rating_progress.xml │ │ ├── demo_lesson_bottom_sheet_header_gradient.xml │ │ ├── dialog_background.webp │ │ ├── downloads_progress.xml │ │ ├── exo_edit_mode_logo.xml │ │ ├── fg_profile_cover.xml │ │ ├── gradient_background.xml │ │ ├── gradient_background_blue_squared.xml │ │ ├── gradient_background_fire_squared.xml │ │ ├── gray_circle_small.xml │ │ ├── ic_academy_illustration.xml │ │ ├── ic_academy_logo.xml │ │ ├── ic_achievement_empty.xml │ │ ├── ic_adaptive_correct.xml │ │ ├── ic_adaptive_right_bracket.xml │ │ ├── ic_adaptive_wrong.xml │ │ ├── ic_announcement_badge_composing.xml │ │ ├── ic_announcement_badge_scheduled.xml │ │ ├── ic_announcement_badge_sending.xml │ │ ├── ic_announcement_badge_sent.xml │ │ ├── ic_arrow_back.xml │ │ ├── ic_arrow_bottom.xml │ │ ├── ic_arrow_forward.xml │ │ ├── ic_arrow_top.xml │ │ ├── ic_authors_info_course_count.xml │ │ ├── ic_banner_blue.xml │ │ ├── ic_banner_green.xml │ │ ├── ic_banner_violet.xml │ │ ├── ic_certificate.xml │ │ ├── ic_certificate_distinct.xml │ │ ├── ic_certificate_regular.xml │ │ ├── ic_check_box.xml │ │ ├── ic_check_box_filled.xml │ │ ├── ic_check_rounded.xml │ │ ├── ic_check_white.xml │ │ ├── ic_checkmark.xml │ │ ├── ic_chevron_forward.xml │ │ ├── ic_clock.xml │ │ ├── ic_close.xml │ │ ├── ic_code_basic.xml │ │ ├── ic_code_checked.xml │ │ ├── ic_comment_basic.xml │ │ ├── ic_comment_dislike.xml │ │ ├── ic_comment_like.xml │ │ ├── ic_comment_submit.xml │ │ ├── ic_comment_tag_pinned.xml │ │ ├── ic_comments_ordering.xml │ │ ├── ic_course_content_date_dot.xml │ │ ├── ic_course_content_dislike.xml │ │ ├── ic_course_content_like.xml │ │ ├── ic_course_info_about.xml │ │ ├── ic_course_info_certificate.xml │ │ ├── ic_course_info_details.xml │ │ ├── ic_course_info_instructors.xml │ │ ├── ic_course_info_language.xml │ │ ├── ic_course_info_learners_count.xml │ │ ├── ic_course_info_requirements.xml │ │ ├── ic_course_info_target_audience.xml │ │ ├── ic_course_info_time_to_complete.xml │ │ ├── ic_course_list_archived.xml │ │ ├── ic_course_list_favorite.xml │ │ ├── ic_course_list_wishlist.xml │ │ ├── ic_course_schedule.xml │ │ ├── ic_course_search_idle.xml │ │ ├── ic_course_solutions.xml │ │ ├── ic_crown.xml │ │ ├── ic_deadlines_banner.xml │ │ ├── ic_deadlines_learning_rate_extreme.xml │ │ ├── ic_deadlines_learning_rate_hobby.xml │ │ ├── ic_deadlines_learning_rate_standard.xml │ │ ├── ic_default_promo_info.xml │ │ ├── ic_delete_vector.xml │ │ ├── ic_dismiss_filter.xml │ │ ├── ic_dots.xml │ │ ├── ic_download.xml │ │ ├── ic_download_cancel.xml │ │ ├── ic_download_marker.xml │ │ ├── ic_download_remove.xml │ │ ├── ic_duration.xml │ │ ├── ic_earnings_current.xml │ │ ├── ic_earnings_empty.xml │ │ ├── ic_earnings_total.xml │ │ ├── ic_empty_disabled_step.xml │ │ ├── ic_exam_finished.xml │ │ ├── ic_exit.xml │ │ ├── ic_external_link.xml │ │ ├── ic_fast_continue_plus.xml │ │ ├── ic_filter.xml │ │ ├── ic_filter_active.xml │ │ ├── ic_forward_10_24.xml │ │ ├── ic_fullscreen.xml │ │ ├── ic_fullscreen_exit.xml │ │ ├── ic_general_placeholder_dark.xml │ │ ├── ic_grip.xml │ │ ├── ic_history.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_learning_action_user_reviews.xml │ │ ├── ic_learning_action_wishlist.xml │ │ ├── ic_login_social_fb.xml │ │ ├── ic_login_social_github.xml │ │ ├── ic_login_social_google.xml │ │ ├── ic_login_social_twitter.xml │ │ ├── ic_login_social_vk.xml │ │ ├── ic_not_found.xml │ │ ├── ic_notification_circle.xml │ │ ├── ic_notification_state_unread.xml │ │ ├── ic_notification_type_learning.xml │ │ ├── ic_notification_type_other.xml │ │ ├── ic_notification_type_review.xml │ │ ├── ic_notification_type_teaching.xml │ │ ├── ic_password_toggle.xml │ │ ├── ic_password_toggle_hidden.xml │ │ ├── ic_password_toggle_visible.xml │ │ ├── ic_pause_24.xml │ │ ├── ic_pip_open.xml │ │ ├── ic_play_arrow_24.xml │ │ ├── ic_player_play.xml │ │ ├── ic_plus.xml │ │ ├── ic_profile_activities_streak.xml │ │ ├── ic_profile_courses.xml │ │ ├── ic_profile_fb.xml │ │ ├── ic_profile_instagram.xml │ │ ├── ic_profile_knowledge.xml │ │ ├── ic_profile_reputation.xml │ │ ├── ic_profile_twitter.xml │ │ ├── ic_profile_vk.xml │ │ ├── ic_profile_web.xml │ │ ├── ic_progress_star_green.xml │ │ ├── ic_progress_star_green_filled.xml │ │ ├── ic_progress_star_white.xml │ │ ├── ic_progress_star_white_filled.xml │ │ ├── ic_purchase_a_link.xml │ │ ├── ic_purchase_error.xml │ │ ├── ic_purchase_fail.xml │ │ ├── ic_purchase_pending.xml │ │ ├── ic_purchase_stepik.xml │ │ ├── ic_purchase_success.xml │ │ ├── ic_purchase_success_check.xml │ │ ├── ic_question_basic.xml │ │ ├── ic_question_checked.xml │ │ ├── ic_radio_button.xml │ │ ├── ic_radio_button_filled.xml │ │ ├── ic_refund.xml │ │ ├── ic_replay_10_24.xml │ │ ├── ic_review_basic.xml │ │ ├── ic_review_checked.xml │ │ ├── ic_run_code_fab.xml │ │ ├── ic_search_cancel.xml │ │ ├── ic_search_mag.xml │ │ ├── ic_seek_background.webp │ │ ├── ic_seek_progress.webp │ │ ├── ic_seek_secondary.webp │ │ ├── ic_send_fab.xml │ │ ├── ic_share.xml │ │ ├── ic_simple_list_arrow_right.xml │ │ ├── ic_skip_next_48dp.xml │ │ ├── ic_skip_previous_48dp.xml │ │ ├── ic_social_instagram.xml │ │ ├── ic_step_discussion.xml │ │ ├── ic_step_navigation_next.xml │ │ ├── ic_step_navigation_prev.xml │ │ ├── ic_step_passed_check.xml │ │ ├── ic_step_quiz_choice_correct.xml │ │ ├── ic_step_quiz_choice_wrong.xml │ │ ├── ic_step_quiz_code_details.xml │ │ ├── ic_step_quiz_code_lang.xml │ │ ├── ic_step_quiz_code_sample_input.xml │ │ ├── ic_step_quiz_code_sample_output.xml │ │ ├── ic_step_quiz_correct.xml │ │ ├── ic_step_quiz_evaluation_frame_1.xml │ │ ├── ic_step_quiz_evaluation_frame_2.xml │ │ ├── ic_step_quiz_evaluation_frame_3.xml │ │ ├── ic_step_quiz_fullscreen.xml │ │ ├── ic_step_quiz_partially_correct.xml │ │ ├── ic_step_quiz_retry.xml │ │ ├── ic_step_quiz_review_correct.xml │ │ ├── ic_step_quiz_text_correct.xml │ │ ├── ic_step_quiz_validation.xml │ │ ├── ic_step_quiz_wrong.xml │ │ ├── ic_step_quiz_wrong_wide.xml │ │ ├── ic_step_run_code.xml │ │ ├── ic_step_solutions.xml │ │ ├── ic_story_feedback_dark.xml │ │ ├── ic_story_feedback_light.xml │ │ ├── ic_submission_status.xml │ │ ├── ic_submit_code.xml │ │ ├── ic_tak_demo_lesson.xml │ │ ├── ic_tak_distinction_certificate.xml │ │ ├── ic_tak_neutral.xml │ │ ├── ic_tak_regular_certificate.xml │ │ ├── ic_tak_success.xml │ │ ├── ic_theory_basic.xml │ │ ├── ic_theory_checked.xml │ │ ├── ic_verified.xml │ │ ├── ic_video_basic.xml │ │ ├── ic_video_checked.xml │ │ ├── ic_video_player_seek_bar_thumb.xml │ │ ├── ic_wishlist_active.xml │ │ ├── ic_wishlist_inactive.xml │ │ ├── login_edit_text_stroke.xml │ │ ├── onboarding_action_background.xml │ │ ├── onboarding_background.xml │ │ ├── onboarding_featured_background.xml │ │ ├── onboarding_goal_blue_violet_gradient.xml │ │ ├── onboarding_goal_yellow_green_gradient.xml │ │ ├── onboarding_goal_yellow_red_gradient.xml │ │ ├── popup_arrow_up.xml │ │ ├── popup_arrow_up_light.xml │ │ ├── rating_empty.xml │ │ ├── rating_fill.xml │ │ ├── rating_star.xml │ │ ├── selectable_item_rounded_background.xml │ │ ├── selectable_item_rounded_background_radius_24.xml │ │ ├── selectable_item_rounded_bottom_background.xml │ │ ├── selectable_item_rounded_top_background.xml │ │ ├── story_view_foreground.xml │ │ ├── story_view_tint_foreground.xml │ │ ├── video_placeholder.webp │ │ └── video_progressbar_layers.xml │ │ ├── font │ │ ├── pt_mono.ttf │ │ ├── roboto.xml │ │ ├── roboto_bold.ttf │ │ ├── roboto_bolditalic.ttf │ │ ├── roboto_italic.ttf │ │ ├── roboto_light.ttf │ │ ├── roboto_medium.ttf │ │ ├── roboto_regular.ttf │ │ ├── stories.xml │ │ ├── stories_bold.ttf │ │ └── stories_medium.otf │ │ ├── layout-land │ │ ├── dialog_achievement_details.xml │ │ ├── empty_certificates.xml │ │ ├── empty_comments.xml │ │ ├── empty_courses.xml │ │ ├── empty_default.xml │ │ ├── empty_default_binding.xml │ │ ├── empty_downloading.xml │ │ ├── empty_lesson.xml │ │ ├── empty_login.xml │ │ ├── empty_notifications.xml │ │ ├── empty_search.xml │ │ ├── error_course_not_found.xml │ │ ├── error_lesson_is_exam.xml │ │ ├── error_lesson_not_found.xml │ │ ├── error_no_connection.xml │ │ ├── error_no_connection_binding.xml │ │ ├── error_no_connection_with_button.xml │ │ ├── error_no_connection_with_button_binding.xml │ │ ├── error_user_not_found.xml │ │ ├── fragment_feedback.xml │ │ └── view_course_search_empty.xml │ │ ├── layout-w360dp │ │ ├── layout_author_properties.xml │ │ └── layout_comment_actions.xml │ │ ├── layout │ │ ├── activity_adaptive_stats.xml │ │ ├── activity_auth_credential.xml │ │ ├── activity_auth_social.xml │ │ ├── activity_certificates.xml │ │ ├── activity_comments.xml │ │ ├── activity_container_with_bar.xml │ │ ├── activity_course.xml │ │ ├── activity_course_benefits.xml │ │ ├── activity_course_list_user.xml │ │ ├── activity_download.xml │ │ ├── activity_fragment.xml │ │ ├── activity_lesson.xml │ │ ├── activity_main_feed.xml │ │ ├── activity_onboarding.xml │ │ ├── activity_onboarding_course_lists.xml │ │ ├── activity_onboarding_goal.xml │ │ ├── activity_profile_edit.xml │ │ ├── activity_profile_edit_info.xml │ │ ├── activity_profile_edit_password.xml │ │ ├── activity_registration.xml │ │ ├── activity_search_courses.xml │ │ ├── activity_solutions.xml │ │ ├── activity_stories.xml │ │ ├── activity_video_player.xml │ │ ├── adaptive_header_stats.xml │ │ ├── adaptive_item_rating_period.xml │ │ ├── adaptive_item_week.xml │ │ ├── adaptive_quiz_card_view.xml │ │ ├── adaptive_ranks_separator.xml │ │ ├── adaptive_rating_item.xml │ │ ├── bottom_sheet_dialog_course_complete.xml │ │ ├── bottom_sheet_dialog_course_purchase.xml │ │ ├── bottom_sheet_dialog_fill_blanks_input.xml │ │ ├── bottom_sheet_dialog_filter.xml │ │ ├── bottom_sheet_dialog_lesson_demo_complete.xml │ │ ├── bottom_sheet_dialog_submissions_filter.xml │ │ ├── bottom_sheet_dialog_table_columns_selection.xml │ │ ├── bottom_sheet_dialog_transaction.xml │ │ ├── certificate_item.xml │ │ ├── certificate_share_view.xml │ │ ├── dialog_achievement_details.xml │ │ ├── dialog_adaptive_level.xml │ │ ├── dialog_certificate_name_change.xml │ │ ├── dialog_comment_solution.xml │ │ ├── dialog_compose_comment.xml │ │ ├── dialog_compose_course_review.xml │ │ ├── dialog_course_search.xml │ │ ├── dialog_in_app_web_view.xml │ │ ├── dialog_progress.xml │ │ ├── dialog_rate_app.xml │ │ ├── dialog_split_tests.xml │ │ ├── dialog_step_quiz_code_fullscreen.xml │ │ ├── dialog_step_source_edit.xml │ │ ├── dialog_submissions.xml │ │ ├── dialog_video_quality_detailed.xml │ │ ├── downloaded_course_item.xml │ │ ├── empty_certificates.xml │ │ ├── empty_comments.xml │ │ ├── empty_courses.xml │ │ ├── empty_default.xml │ │ ├── empty_default_binding.xml │ │ ├── empty_downloading.xml │ │ ├── empty_lesson.xml │ │ ├── empty_login.xml │ │ ├── empty_notifications.xml │ │ ├── empty_purchase_refund.xml │ │ ├── empty_search.xml │ │ ├── error_course_not_found.xml │ │ ├── error_lesson_is_exam.xml │ │ ├── error_lesson_not_found.xml │ │ ├── error_no_connection.xml │ │ ├── error_no_connection_binding.xml │ │ ├── error_no_connection_with_button.xml │ │ ├── error_no_connection_with_button_binding.xml │ │ ├── error_no_connection_with_button_small.xml │ │ ├── error_user_not_found.xml │ │ ├── exo_player_control_view.xml │ │ ├── exo_simple_player_view.xml │ │ ├── fragment_about_app.xml │ │ ├── fragment_achievements_list.xml │ │ ├── fragment_adaptive_onboarding.xml │ │ ├── fragment_adaptive_rating.xml │ │ ├── fragment_catalog.xml │ │ ├── fragment_course_content.xml │ │ ├── fragment_course_info.xml │ │ ├── fragment_course_list.xml │ │ ├── fragment_course_news.xml │ │ ├── fragment_course_reviews.xml │ │ ├── fragment_fast_continue.xml │ │ ├── fragment_fast_continue_new_home.xml │ │ ├── fragment_feedback.xml │ │ ├── fragment_home.xml │ │ ├── fragment_learning_actions.xml │ │ ├── fragment_notification_list.xml │ │ ├── fragment_notification_settings.xml │ │ ├── fragment_notifications.xml │ │ ├── fragment_onboarding_page.xml │ │ ├── fragment_photo_view.xml │ │ ├── fragment_profile.xml │ │ ├── fragment_profile_achievements.xml │ │ ├── fragment_profile_activities.xml │ │ ├── fragment_profile_certificates.xml │ │ ├── fragment_profile_courses.xml │ │ ├── fragment_profile_detail.xml │ │ ├── fragment_profile_links.xml │ │ ├── fragment_profile_notification.xml │ │ ├── fragment_recommendations.xml │ │ ├── fragment_settings.xml │ │ ├── fragment_space_management.xml │ │ ├── fragment_step.xml │ │ ├── fragment_step_content_video.xml │ │ ├── fragment_step_quiz.xml │ │ ├── fragment_step_quiz_pycharm.xml │ │ ├── fragment_step_quiz_review.xml │ │ ├── fragment_step_quiz_review_instructor.xml │ │ ├── fragment_step_quiz_review_peer.xml │ │ ├── fragment_step_quiz_review_teacher.xml │ │ ├── fragment_step_quiz_unsupported.xml │ │ ├── fragment_text_feedback.xml │ │ ├── fragment_user_course_list.xml │ │ ├── fragment_user_reviews.xml │ │ ├── header_catalog_block.xml │ │ ├── header_course.xml │ │ ├── header_course_placeholder.xml │ │ ├── header_personal_deadlines.xml │ │ ├── header_profile.xml │ │ ├── header_streak_suggestion_dialog.xml │ │ ├── home_streak_view.xml │ │ ├── item_announcement_badge.xml │ │ ├── item_author.xml │ │ ├── item_author_course_info.xml │ │ ├── item_author_list.xml │ │ ├── item_author_skeleton_course_info.xml │ │ ├── item_banner.xml │ │ ├── item_block_simple_course_list_grid.xml │ │ ├── item_block_simple_course_list_grid_first.xml │ │ ├── item_block_simple_course_lists_default.xml │ │ ├── item_block_simple_course_lists_grid.xml │ │ ├── item_certificate_profile.xml │ │ ├── item_certificate_profile_skeleton.xml │ │ ├── item_collection_horizontal_list.xml │ │ ├── item_comment.xml │ │ ├── item_comment_load_more_replies.xml │ │ ├── item_comment_placeholder.xml │ │ ├── item_comment_tag.xml │ │ ├── item_course.xml │ │ ├── item_course_benefit.xml │ │ ├── item_course_benefit_by_month.xml │ │ ├── item_course_benefit_by_month_skeleton.xml │ │ ├── item_course_benefit_skeleton.xml │ │ ├── item_course_benefits.xml │ │ ├── item_course_collection_header.xml │ │ ├── item_course_list.xml │ │ ├── item_course_list_new.xml │ │ ├── item_course_list_skeleton.xml │ │ ├── item_course_loading_skeleton_container.xml │ │ ├── item_course_news.xml │ │ ├── item_course_news_placeholder.xml │ │ ├── item_course_search_result.xml │ │ ├── item_course_search_result_loading.xml │ │ ├── item_course_view_all.xml │ │ ├── item_fill_blanks_select_spinner.xml │ │ ├── item_font_size.xml │ │ ├── item_learning_action_user_reviews.xml │ │ ├── item_learning_action_wishlist.xml │ │ ├── item_onboarding.xml │ │ ├── item_profile_edit_navigation.xml │ │ ├── item_profile_link.xml │ │ ├── item_simple_course_list_default.xml │ │ ├── item_skill_course_info.xml │ │ ├── item_social.xml │ │ ├── item_solution_disclaimer.xml │ │ ├── item_solution_lesson.xml │ │ ├── item_solution_section.xml │ │ ├── item_solution_submission.xml │ │ ├── item_specialization.xml │ │ ├── item_specialization_list.xml │ │ ├── item_split_test_data.xml │ │ ├── item_step_quiz_choice.xml │ │ ├── item_step_quiz_code_detail_limit.xml │ │ ├── item_step_quiz_code_detail_sample.xml │ │ ├── item_step_quiz_code_lang.xml │ │ ├── item_step_quiz_fill_blanks_input.xml │ │ ├── item_step_quiz_fill_blanks_select.xml │ │ ├── item_step_quiz_fill_blanks_text.xml │ │ ├── item_step_quiz_sorting.xml │ │ ├── item_submission_data.xml │ │ ├── item_submission_placeholder.xml │ │ ├── item_table_column_selection_checkbox.xml │ │ ├── item_table_column_selection_radiobutton.xml │ │ ├── item_table_selection.xml │ │ ├── item_user_review_potential.xml │ │ ├── item_user_review_potential_header.xml │ │ ├── item_user_review_reviewed.xml │ │ ├── item_user_review_reviewed_header.xml │ │ ├── item_visited_course.xml │ │ ├── item_visited_course_skeleton.xml │ │ ├── layout_author_properties.xml │ │ ├── layout_comment_actions.xml │ │ ├── layout_course_progress.xml │ │ ├── layout_course_properties.xml │ │ ├── layout_course_stats.xml │ │ ├── layout_latex_textview.xml │ │ ├── layout_latex_webview.xml │ │ ├── layout_profile_loading.xml │ │ ├── layout_step_quiz_choice.xml │ │ ├── layout_step_quiz_code.xml │ │ ├── layout_step_quiz_code_fullscreen_instruction.xml │ │ ├── layout_step_quiz_code_fullscreen_playground.xml │ │ ├── layout_step_quiz_code_fullscreen_run_code.xml │ │ ├── layout_step_quiz_code_keyboard_extension.xml │ │ ├── layout_step_quiz_feedback_block.xml │ │ ├── layout_step_quiz_fill_blanks.xml │ │ ├── layout_step_quiz_review_footer.xml │ │ ├── layout_step_quiz_review_header.xml │ │ ├── layout_step_quiz_sorting.xml │ │ ├── layout_step_quiz_sql.xml │ │ ├── layout_step_quiz_table.xml │ │ ├── layout_step_quiz_text.xml │ │ ├── layout_step_tab_icon.xml │ │ ├── loading_view.xml │ │ ├── notification_date_header.xml │ │ ├── notification_item.xml │ │ ├── notification_list_header_item.xml │ │ ├── popup_window.xml │ │ ├── profile_details_loading_view.xml │ │ ├── progress_bar_on_empty_screen.xml │ │ ├── run_code_spinner_item.xml │ │ ├── search_queries_recycler_view.xml │ │ ├── search_query_item.xml │ │ ├── step_share_view.xml │ │ ├── step_text_header.xml │ │ ├── stepic_compound_button.xml │ │ ├── tooltip_lesson_info.xml │ │ ├── view_achievement_item.xml │ │ ├── view_achievement_item_placeholder.xml │ │ ├── view_achievement_tile.xml │ │ ├── view_achievement_tile_placeholder.xml │ │ ├── view_catalog_no_internet_clickable.xml │ │ ├── view_catalog_search_toolbar.xml │ │ ├── view_centered_appbar.xml │ │ ├── view_centered_appbar_binding.xml │ │ ├── view_centered_toolbar.xml │ │ ├── view_centered_toolbar_binding.xml │ │ ├── view_choice_attempt.xml │ │ ├── view_code_editor.xml │ │ ├── view_code_toolbar_item.xml │ │ ├── view_code_toolbar_separator.xml │ │ ├── view_course_benefit_summary.xml │ │ ├── view_course_content_control_bar.xml │ │ ├── view_course_content_control_bar_item.xml │ │ ├── view_course_content_section.xml │ │ ├── view_course_content_section_date.xml │ │ ├── view_course_content_section_placeholder.xml │ │ ├── view_course_content_unit.xml │ │ ├── view_course_content_unit_placeholder.xml │ │ ├── view_course_info_about.xml │ │ ├── view_course_info_authors.xml │ │ ├── view_course_info_block.xml │ │ ├── view_course_info_instructor_item.xml │ │ ├── view_course_info_instructor_item_placeholder.xml │ │ ├── view_course_info_instructors_block.xml │ │ ├── view_course_info_skills.xml │ │ ├── view_course_info_summary.xml │ │ ├── view_course_info_text_block.xml │ │ ├── view_course_info_text_block_placeholder.xml │ │ ├── view_course_info_video.xml │ │ ├── view_course_languages.xml │ │ ├── view_course_review_compose_banner_item.xml │ │ ├── view_course_review_summary_item.xml │ │ ├── view_course_reviews_item.xml │ │ ├── view_course_search_empty.xml │ │ ├── view_course_search_idle.xml │ │ ├── view_course_summary_loading.xml │ │ ├── view_discounted_purchase_button.xml │ │ ├── view_divider_vertical.xml │ │ ├── view_download_status.xml │ │ ├── view_edit_deadlines_item.xml │ │ ├── view_fast_continue_empty.xml │ │ ├── view_fast_continue_information.xml │ │ ├── view_free_answer_attempt.xml │ │ ├── view_learning_rate.xml │ │ ├── view_length_video_thumbnail.xml │ │ ├── view_notification_interval_chooser.xml │ │ ├── view_notification_loading_footer.xml │ │ ├── view_profile_user_id.xml │ │ ├── view_remind_password.xml │ │ ├── view_review_status.xml │ │ ├── view_search_toolbar.xml │ │ ├── view_search_toolbar_binding.xml │ │ ├── view_step_content_next_button.xml │ │ ├── view_step_disabled.xml │ │ ├── view_step_disabled_teacher.xml │ │ ├── view_step_discussion.xml │ │ ├── view_step_navigation.xml │ │ ├── view_step_placeholder.xml │ │ ├── view_step_quiz_error.xml │ │ ├── view_step_quiz_submit_button.xml │ │ ├── view_step_solution_stats.xml │ │ ├── view_stories_container.xml │ │ ├── view_story_feedback.xml │ │ ├── view_story_item.xml │ │ ├── view_story_item_placeholder.xml │ │ ├── view_story_plain_text_with_button.xml │ │ ├── view_story_text_input.xml │ │ ├── view_submission_review.xml │ │ ├── view_submission_select.xml │ │ ├── view_submissions_search_toolbar.xml │ │ ├── view_subtitled_toolbar.xml │ │ ├── view_user_course_list_empty.xml │ │ └── view_user_course_list_network_error.xml │ │ ├── menu │ │ ├── attempts_menu.xml │ │ ├── code_playground_menu.xml │ │ ├── coment_list_menu.xml │ │ ├── comment_compose_menu.xml │ │ ├── comment_item_menu.xml │ │ ├── compose_course_review_menu.xml │ │ ├── course_activity_menu.xml │ │ ├── course_content_control_bar_schedule_menu.xml │ │ ├── course_content_control_bar_schedule_menu_no_personal.xml │ │ ├── course_content_control_menu.xml │ │ ├── course_list_menu.xml │ │ ├── course_review_menu.xml │ │ ├── drawer_menu.xml │ │ ├── in_app_web_view_menu.xml │ │ ├── lesson_menu.xml │ │ ├── new_comment_menu.xml │ │ ├── notification_center_menu.xml │ │ ├── profile_edit_menu.xml │ │ ├── profile_menu.xml │ │ ├── step_edit_menu.xml │ │ ├── step_menu.xml │ │ ├── submission_item_menu.xml │ │ ├── video_more_menu.xml │ │ └── video_rate_menu.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher_round.png │ │ ├── raw │ │ └── default_sound.wav │ │ ├── values-be │ │ ├── achievements.xml │ │ ├── arrays.xml │ │ ├── plurals.xml │ │ ├── rating_names_generator.xml │ │ └── strings.xml │ │ ├── values-h520dp-port │ │ └── dimens.xml │ │ ├── values-h640dp-port │ │ └── dimens.xml │ │ ├── values-hdpi │ │ └── dimens.xml │ │ ├── values-land │ │ ├── dimens.xml │ │ └── styles.xml │ │ ├── values-night │ │ ├── bools.xml │ │ └── colors.xml │ │ ├── values-ru │ │ ├── achievements.xml │ │ ├── arrays.xml │ │ ├── plurals.xml │ │ ├── rating_names_generator.xml │ │ └── strings.xml │ │ ├── values-sw360dp-land │ │ └── dimens.xml │ │ ├── values-sw430dp-land │ │ └── dimens.xml │ │ ├── values-sw520dp-land │ │ └── dimens.xml │ │ ├── values-sw600dp │ │ └── dimens.xml │ │ ├── values-v19 │ │ └── styles.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-v23 │ │ └── themes.xml │ │ ├── values-v24 │ │ └── dimens.xml │ │ ├── values-v26 │ │ └── notification_activity_bool.xml │ │ ├── values-w368dp │ │ ├── dimens.xml │ │ └── integers.xml │ │ ├── values-w388dp │ │ └── dimens.xml │ │ ├── values-w448dp │ │ └── integers.xml │ │ ├── values-w600dp │ │ └── integers.xml │ │ ├── values-w960dp │ │ └── integers.xml │ │ ├── values-xhdpi │ │ └── dimens.xml │ │ ├── values-xxhdpi │ │ └── dimens.xml │ │ ├── values-xxxhdpi │ │ └── dimens.xml │ │ ├── values │ │ ├── achievements.xml │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── autocomplete_words.xml │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── frequent_symbols.xml │ │ ├── github_code_theme.xml │ │ ├── ids.xml │ │ ├── integers.xml │ │ ├── light_code_theme.xml │ │ ├── loading_view_dimens.xml │ │ ├── notification_activity_bool.xml │ │ ├── plurals.xml │ │ ├── rating_names_generator.xml │ │ ├── shape.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── text-styles.xml │ │ ├── themes.xml │ │ ├── tomorrow_night_code_theme.xml │ │ ├── tranquil_heart_code_theme.xml │ │ ├── type.xml │ │ └── view-attrs.xml │ │ └── xml │ │ ├── provider_paths.xml │ │ ├── remote_config_defaults.xml │ │ └── searchable.xml │ ├── release │ └── java │ │ └── org │ │ ├── stepic │ │ └── droid │ │ │ ├── configuration │ │ │ └── EndpointResolverImpl.kt │ │ │ └── util │ │ │ └── DebugToolsHelper.kt │ │ └── stepik │ │ └── android │ │ └── view │ │ ├── debug │ │ └── ui │ │ │ └── fragment │ │ │ └── DebugMenu.kt │ │ └── injection │ │ └── debug │ │ ├── DebugComponent.kt │ │ ├── InAppPurchasesComponent.kt │ │ └── SplitTestsComponent.kt │ ├── releaseOldKeys │ └── java │ │ └── org │ │ ├── stepic │ │ └── droid │ │ │ ├── configuration │ │ │ └── EndpointResolverImpl.kt │ │ │ └── util │ │ │ └── DebugToolsHelper.kt │ │ └── stepik │ │ └── android │ │ └── view │ │ ├── debug │ │ └── ui │ │ │ └── fragment │ │ │ └── DebugMenu.kt │ │ └── injection │ │ └── debug │ │ ├── DebugComponent.kt │ │ ├── InAppPurchasesComponent.kt │ │ └── SplitTestsComponent.kt │ ├── sharedTest │ └── java │ │ └── org │ │ └── stepik │ │ └── android │ │ └── migration_wrapper │ │ ├── MigrationWrapper.kt │ │ ├── MigrationWrapperFrom62To63.kt │ │ ├── MigrationWrapperFrom68To69.kt │ │ └── MigrationWrappers.kt │ ├── stage │ └── java │ │ └── org │ │ ├── stepic │ │ └── droid │ │ │ ├── configuration │ │ │ └── EndpointResolverImpl.kt │ │ │ └── util │ │ │ └── DebugToolsHelper.kt │ │ └── stepik │ │ └── android │ │ └── view │ │ ├── debug │ │ └── ui │ │ │ └── fragment │ │ │ └── DebugMenu.kt │ │ └── injection │ │ └── debug │ │ ├── DebugComponent.kt │ │ ├── InAppPurchasesComponent.kt │ │ └── SplitTestsComponent.kt │ ├── stageDebuggable │ ├── assets │ │ └── configs │ │ │ ├── config_dev.json │ │ │ ├── config_production.json │ │ │ └── config_release.json │ ├── java │ │ └── org │ │ │ ├── stepic │ │ │ └── droid │ │ │ │ ├── configuration │ │ │ │ ├── EndpointInfo.kt │ │ │ │ ├── EndpointInfoFactory.kt │ │ │ │ └── EndpointResolverImpl.kt │ │ │ │ └── util │ │ │ │ └── DebugToolsHelper.kt │ │ │ └── stepik │ │ │ └── android │ │ │ ├── domain │ │ │ └── debug │ │ │ │ ├── interactor │ │ │ │ ├── DebugInteractor.kt │ │ │ │ ├── InAppPurchasesInteractor.kt │ │ │ │ └── SplitTestsInteractor.kt │ │ │ │ └── model │ │ │ │ ├── DebugSettings.kt │ │ │ │ ├── EndpointConfig.kt │ │ │ │ └── SplitTestData.kt │ │ │ ├── presentation │ │ │ └── debug │ │ │ │ ├── DebugFeature.kt │ │ │ │ ├── DebugViewModel.kt │ │ │ │ ├── InAppPurchasesFeature.kt │ │ │ │ ├── InAppPurchasesViewModel.kt │ │ │ │ ├── SplitTestsFeature.kt │ │ │ │ ├── SplitTestsViewModel.kt │ │ │ │ ├── dispatcher │ │ │ │ ├── DebugActionDispatcher.kt │ │ │ │ ├── InAppPurchasesActionDispatcher.kt │ │ │ │ └── SplitTestsActionDispatcher.kt │ │ │ │ └── reducer │ │ │ │ ├── DebugReducer.kt │ │ │ │ ├── InAppPurchasesReducer.kt │ │ │ │ └── SplitTestsReducer.kt │ │ │ └── view │ │ │ ├── debug │ │ │ └── ui │ │ │ │ ├── activity │ │ │ │ └── InAppPurchasesActivity.kt │ │ │ │ ├── adapter │ │ │ │ └── delegate │ │ │ │ │ ├── InAppPurchaseAdapterDelegate.kt │ │ │ │ │ └── SplitTestDataAdapterDelegate.kt │ │ │ │ ├── dialog │ │ │ │ └── SplitTestsDialogFragment.kt │ │ │ │ └── fragment │ │ │ │ ├── DebugFragment.kt │ │ │ │ └── DebugMenu.kt │ │ │ └── injection │ │ │ └── debug │ │ │ ├── DebugComponent.kt │ │ │ ├── DebugPresentationModule.kt │ │ │ ├── InAppPurchasesComponent.kt │ │ │ ├── InAppPurchasesPresentationModule.kt │ │ │ ├── SplitTestsComponent.kt │ │ │ └── SplitTestsPresentationModule.kt │ └── res │ │ └── layout │ │ ├── activity_in_app_purchases.xml │ │ ├── fragment_debug.xml │ │ └── item_in_app_purchase.xml │ └── test │ ├── java │ └── org │ │ ├── stepic │ │ └── droid │ │ │ ├── jsonHelpers │ │ │ ├── adapters │ │ │ │ ├── CodeOptionsAdapterFactoryTest.kt │ │ │ │ └── UTCDateAdapterTest.kt │ │ │ └── deserializers │ │ │ │ └── DatasetDeserializerTest.kt │ │ │ ├── model │ │ │ ├── CommentResponseTest.kt │ │ │ ├── OnboardingTypeTest.kt │ │ │ ├── SectionTest.kt │ │ │ ├── StepTest.kt │ │ │ └── code │ │ │ │ ├── CodeOptionsTest.kt │ │ │ │ └── ProgrammingLanguageTest.kt │ │ │ ├── notifications │ │ │ ├── NotificationActionsHelperTest.java │ │ │ └── NotificationTimeCheckerImplTest.java │ │ │ ├── persistence │ │ │ └── content │ │ │ │ └── processors │ │ │ │ └── ImageStepContentProcessorTest.kt │ │ │ ├── testUtils │ │ │ ├── ConcurrencyUtilForTest.java │ │ │ ├── ParcelableTester.kt │ │ │ ├── ResponseGenerator.kt │ │ │ ├── TestingGsonProvider.kt │ │ │ └── generators │ │ │ │ ├── ArrayHelper.kt │ │ │ │ ├── FakeCourseGenerator.kt │ │ │ │ ├── FakeLessonGenerator.kt │ │ │ │ ├── FakeMetaGenerator.kt │ │ │ │ ├── FakeProfileGenerator.kt │ │ │ │ ├── FakeSectionGenerator.kt │ │ │ │ ├── FakeStepGenerator.kt │ │ │ │ ├── FakeUnitGenerator.kt │ │ │ │ ├── FakeUserGenerator.kt │ │ │ │ └── ListHelper.kt │ │ │ └── util │ │ │ ├── DateTimeHelperTest.kt │ │ │ ├── HtmlHelperTest.kt │ │ │ ├── StringExtensionsTest.kt │ │ │ ├── StringUtilTest.kt │ │ │ └── TextUtilTest.kt │ │ └── stepik │ │ └── android │ │ ├── cache │ │ └── base │ │ │ └── database │ │ │ └── MigrationUnitTest.kt │ │ ├── data │ │ ├── progress │ │ │ └── ProgressRepositoryTest.kt │ │ ├── search │ │ │ └── SearchRepositoryTest.kt │ │ └── section │ │ │ └── SectionRepositoryTest.kt │ │ ├── domain │ │ ├── achievement │ │ │ └── model │ │ │ │ └── AchievementItemTest.kt │ │ ├── calendar │ │ │ └── model │ │ │ │ └── CalendarItemTest.kt │ │ ├── course │ │ │ └── model │ │ │ │ ├── CourseHeaderDataTest.kt │ │ │ │ └── CourseStatsTest.kt │ │ ├── course_info │ │ │ └── model │ │ │ │ └── CourseInfoTest.kt │ │ ├── course_reviews │ │ │ └── model │ │ │ │ └── CourseReviewTest.kt │ │ └── step │ │ │ └── interactor │ │ │ └── StepNavigationInteractorTest.kt │ │ └── view │ │ ├── course │ │ └── routing │ │ │ └── CourseDeepLinkHandlerTest.kt │ │ ├── course_content │ │ └── ui │ │ │ └── adapter │ │ │ └── CourseContentDiffCallbackTest.kt │ │ ├── glide │ │ └── mapper │ │ │ └── RelativeLoaderTest.java │ │ └── lesson │ │ └── routing │ │ └── LessonDeepLinkHandlerTest.kt │ └── resources │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker ├── billing ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── org │ │ │ └── stepik │ │ │ └── android │ │ │ ├── data │ │ │ └── billing │ │ │ │ ├── repository │ │ │ │ └── BillingRepositoryImpl.kt │ │ │ │ └── source │ │ │ │ └── BillingRemoteDataSource.kt │ │ │ ├── domain │ │ │ └── billing │ │ │ │ ├── exception │ │ │ │ ├── BillingNotSupportedException.kt │ │ │ │ └── NoPurchasesToRestoreException.kt │ │ │ │ └── repository │ │ │ │ └── BillingRepository.kt │ │ │ ├── remote │ │ │ └── billing │ │ │ │ └── BillingRemoteDataSourceImpl.kt │ │ │ └── view │ │ │ └── injection │ │ │ └── billing │ │ │ ├── BillingComponent.kt │ │ │ ├── BillingDataModule.kt │ │ │ ├── BillingModule.kt │ │ │ ├── BillingSingleton.kt │ │ │ └── PublicLicenseKey.kt │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── org │ └── stepik │ └── android │ └── domain │ └── billing │ └── model │ └── SkuSerializableWrapperTest.kt ├── build.gradle ├── buildsystem ├── cert │ ├── debug.keystore │ └── key_store.jks ├── secret.gradle └── teamcity_init.sh ├── code_quality_tools ├── checkstyle.gradle ├── checkstyle.xml ├── findbugs-filter.xml ├── findbugs.gradle ├── jacoco.gradle ├── ktlint.gradle ├── pmd.gradle └── pmd.xml ├── codecov.yml ├── dependencies.gradle ├── fastlane ├── Appfile ├── Fastfile └── metadata │ └── android │ ├── en-US │ ├── changelogs │ │ ├── 1142.txt │ │ ├── 1143.txt │ │ ├── 1145.txt │ │ ├── 1148.txt │ │ └── 1149.txt │ ├── full_description.txt │ ├── short_description.txt │ ├── title.txt │ └── video.txt │ └── ru-RU │ ├── changelogs │ ├── 1142.txt │ ├── 1143.txt │ ├── 1145.txt │ ├── 1148.txt │ └── 1149.txt │ ├── full_description.txt │ ├── images │ └── icon.png │ ├── short_description.txt │ ├── title.txt │ └── video.txt ├── googleplayprovider.json ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── lint.xml ├── model ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── main │ ├── AndroidManifest.xml │ └── java │ │ └── org │ │ └── stepik │ │ └── android │ │ └── model │ │ ├── Actions.kt │ │ ├── Assignment.kt │ │ ├── Attachment.kt │ │ ├── Block.kt │ │ ├── Cell.kt │ │ ├── Certificate.kt │ │ ├── Course.kt │ │ ├── CourseActions.kt │ │ ├── CourseBuyAction.kt │ │ ├── CourseCollection.kt │ │ ├── CourseOptions.kt │ │ ├── CoursePreview.kt │ │ ├── CourseReviewSummary.kt │ │ ├── DiscountingPolicyType.kt │ │ ├── Enrollment.kt │ │ ├── Lesson.kt │ │ ├── LessonActions.kt │ │ ├── Meta.kt │ │ ├── PlatformType.kt │ │ ├── Progress.kt │ │ ├── Progressable.kt │ │ ├── Reply.kt │ │ ├── ReviewStrategyType.kt │ │ ├── SearchResult.kt │ │ ├── Section.kt │ │ ├── SocialProfile.kt │ │ ├── Step.kt │ │ ├── StepSource.kt │ │ ├── StoryTemplate.kt │ │ ├── Submission.kt │ │ ├── TableChoiceAnswer.kt │ │ ├── Unit.kt │ │ ├── UserRole.kt │ │ ├── Video.kt │ │ ├── ViewAssignment.kt │ │ ├── ViewRevenue.kt │ │ ├── achievements │ │ ├── Achievement.kt │ │ └── AchievementProgress.kt │ │ ├── adaptive │ │ ├── RatingItem.kt │ │ ├── Reaction.kt │ │ ├── Recommendation.kt │ │ └── RecommendationReaction.kt │ │ ├── attempts │ │ ├── Attempt.kt │ │ ├── Component.kt │ │ ├── Dataset.kt │ │ └── Pair.kt │ │ ├── code │ │ ├── CodeLimit.kt │ │ ├── CodeOptions.kt │ │ └── UserCodeRun.kt │ │ ├── comments │ │ ├── Comment.kt │ │ ├── DiscussionProxy.kt │ │ ├── DiscussionThread.kt │ │ └── Vote.kt │ │ ├── feedback │ │ ├── BlanksFeedback.kt │ │ ├── ChoiceFeedback.kt │ │ ├── Feedback.kt │ │ └── StringFeedback.kt │ │ ├── user │ │ ├── EmailAddress.kt │ │ ├── Profile.kt │ │ ├── ProfileWrapper.kt │ │ ├── RegistrationCredentials.kt │ │ ├── User.kt │ │ └── UserActivity.kt │ │ └── util │ │ ├── ParcelableExtensions.kt │ │ └── ParcelableStringList.kt │ └── test │ └── java │ └── org │ └── stepik │ └── android │ └── model │ ├── AttemptTest.kt │ ├── CommentTest.kt │ ├── CourseTest.kt │ ├── DatasetTest.kt │ ├── ParcelizeTest.kt │ ├── ProgressTest.kt │ ├── ReplyTest.kt │ ├── SectionTest.kt │ ├── StepStatusTest.kt │ ├── StepTest.kt │ ├── SubmissionTest.kt │ ├── UserTest.kt │ ├── code │ ├── CodeLimitTest.kt │ └── CodeOptionsTest.kt │ └── util │ ├── ParcelableStringListTest.kt │ └── ParcelableTester.kt ├── screenshots ├── 01.webp ├── 02.webp └── 03.webp └── settings.gradle /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | **YouTrack task**: [#](https://vyahhi.myjetbrains.com/youtrack/issue/) 2 | 3 | **Description List**: 4 | * .. 5 | * .. 6 | 7 | -------------------------------------------------------------------------------- /CONTRIBUTING: -------------------------------------------------------------------------------- 1 | We are welcome your contribution in a form of pull requests. Thank you! 2 | 3 | # Copyright and Licensing 4 | 5 | By making pull request to this repo, you grant everybody all possible permissions to use your code freely and without any restrictions. 6 | -------------------------------------------------------------------------------- /androidsvg/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /androidsvg/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /androidsvg/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/google-services.json -------------------------------------------------------------------------------- /app/libs/flexbox-release.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/libs/flexbox-release.aar -------------------------------------------------------------------------------- /app/proguard-rules-dev.pro: -------------------------------------------------------------------------------- 1 | #keep names, but may shrink for reducing number of methods for avoiding 64K problem 2 | -dontobfuscate -------------------------------------------------------------------------------- /app/src/debug/assets/configs/config_dev.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/debug/assets/configs/config_dev.json -------------------------------------------------------------------------------- /app/src/debug/assets/configs/config_production.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/debug/assets/configs/config_production.json -------------------------------------------------------------------------------- /app/src/debug/assets/configs/config_release.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/debug/assets/configs/config_release.json -------------------------------------------------------------------------------- /app/src/debug/java/org/stepik/android/domain/debug/model/DebugSettings.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.debug.model 2 | 3 | data class DebugSettings( 4 | val fcmToken: String, 5 | val currentEndpointConfig: EndpointConfig, 6 | val endpointConfigSelection: Int 7 | ) 8 | -------------------------------------------------------------------------------- /app/src/debug/java/org/stepik/android/domain/debug/model/EndpointConfig.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.debug.model 2 | 3 | enum class EndpointConfig { 4 | DEV, 5 | PRODUCTION, 6 | RELEASE 7 | } -------------------------------------------------------------------------------- /app/src/main/assets/configs/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/configs/config.json -------------------------------------------------------------------------------- /app/src/main/assets/css/base-style-night.css: -------------------------------------------------------------------------------- 1 | blockquote { 2 | margin: 0; 3 | padding-left: 1em; 4 | border-left: 2px solid #ccc; 5 | color: rgba(255, 255, 255, 0.6); 6 | font-style: italic; 7 | } -------------------------------------------------------------------------------- /app/src/main/assets/css/base-style.css: -------------------------------------------------------------------------------- 1 | blockquote { 2 | margin: 0; 3 | padding-left: 1em; 4 | border-left: 2px solid #ccc; 5 | color: rgba(0, 0, 0, 0.6); 6 | font-style: italic; 7 | } -------------------------------------------------------------------------------- /app/src/main/assets/fonts/pt_mono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/pt_mono.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_bolditalic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_italic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_light.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_medium.ttf -------------------------------------------------------------------------------- /app/src/main/assets/fonts/roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/fonts/roboto_regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_AMS-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_AMS-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Caligraphic-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Caligraphic-Bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Caligraphic-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Caligraphic-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Fraktur-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Fraktur-Bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Fraktur-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Fraktur-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Main-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Main-Bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Main-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Main-BoldItalic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Main-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Main-Italic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Main-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Main-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Math-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Math-BoldItalic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Math-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Math-Italic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Math-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Math-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_SansSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_SansSerif-Bold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_SansSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_SansSerif-Italic.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_SansSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_SansSerif-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Script-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Script-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Size1-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Size1-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Size2-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Size2-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Size3-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Size3-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Size4-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Size4-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/assets/katex/fonts/KaTeX_Typewriter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/assets/katex/fonts/KaTeX_Typewriter-Regular.ttf -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/adaptive/listeners/AdaptiveReactionListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.adaptive.listeners 2 | 3 | import org.stepik.android.model.adaptive.Reaction 4 | 5 | interface AdaptiveReactionListener { 6 | fun createReaction(lessonId: Long, reaction: Reaction) 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/adaptive/listeners/AnswerListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.adaptive.listeners 2 | 3 | interface AnswerListener { 4 | fun onCorrectAnswer(submissionId: Long) 5 | fun onWrongAnswer(submissionId: Long) 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/adaptive/model/AdaptiveWeekProgress.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.adaptive.model 2 | 3 | import java.util.Calendar 4 | 5 | class AdaptiveWeekProgress( 6 | val start: Calendar, 7 | val end: Calendar, 8 | val total: Long 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/adaptive/model/LocalExpItem.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.adaptive.model 2 | 3 | class LocalExpItem ( 4 | val exp: Long, 5 | val submissionId: Long, 6 | val courseId: Long 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/analytic/BranchParams.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.analytic 2 | 3 | object BranchParams { 4 | const val FIELD_CAMPAIGN = "~campaign" 5 | const val IS_FIRST_SESSION = "+is_first_session" 6 | 7 | const val FIELD_SCREEN = "screen" 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/analytic/LoginInteractionType.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.analytic 2 | 3 | enum class LoginInteractionType { 4 | ime, button; 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/analytic/StepikAnalytic.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.analytic 2 | 3 | import com.google.gson.JsonObject 4 | 5 | interface StepikAnalytic { 6 | fun flushEvents() 7 | fun logEvent(eventName: String, properties: Map) 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/analytic/experiments/SplitTestsHolder.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.analytic.experiments 2 | 3 | import javax.inject.Inject 4 | 5 | class SplitTestsHolder 6 | @Inject 7 | constructor( 8 | splitTests: Set<@JvmSuppressWildcards SplitTest<*>> 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/base/Client.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.base 2 | 3 | interface Client { 4 | 5 | fun subscribe(listener: T) 6 | 7 | fun unsubscribe(listener: T) 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/base/ListenerContainer.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.base 2 | 3 | interface ListenerContainer{ 4 | 5 | fun add(listener: T) 6 | 7 | fun remove(listener: T) 8 | 9 | fun asIterable(): Iterable 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/code/data/AutocompleteState.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.code.data 2 | 3 | data class AutocompleteState(val prefix: String, val words: List) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/concurrency/HandlerBaseDelegate.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.concurrency 2 | 3 | import android.os.Handler 4 | 5 | abstract class HandlerBaseDelegate : IHandler { 6 | override fun post(body: () -> Unit) = getHandler().post { body.invoke() } 7 | abstract fun getHandler() : Handler 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/concurrency/IHandler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.concurrency 2 | 3 | interface IHandler { 4 | fun post(body : ()->Unit): Boolean 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/concurrency/MainHandler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.concurrency 2 | 3 | interface MainHandler : IHandler 4 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/concurrency/SingleThreadExecutor.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.concurrency 2 | 3 | import java.util.concurrent.ExecutorService 4 | 5 | class SingleThreadExecutor(private val singleExecutor: ExecutorService) : ExecutorService by singleExecutor 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/DeadlineType.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core 2 | 3 | import androidx.annotation.StringRes 4 | import org.stepic.droid.R 5 | 6 | enum class DeadlineType(@StringRes val deadlineTitle: Int) { 7 | softDeadline(R.string.soft_deadline), 8 | hardDeadline(R.string.hard_deadline) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/DefaultFilter.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core 2 | 3 | import org.stepic.droid.model.StepikFilter 4 | 5 | interface DefaultFilter { 6 | fun getDefaultFilter(filterValue: StepikFilter): Boolean 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/GoogleApiChecker.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core 2 | 3 | interface GoogleApiChecker { 4 | fun checkPlayServices() : Boolean 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/HasComponent.java: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core; 2 | 3 | /** 4 | * Interface representing a contract for clients that contains a component for dependency injection. 5 | */ 6 | public interface HasComponent { 7 | C getComponent(); 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/ProgressHandler.java: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core; 2 | 3 | public interface ProgressHandler { 4 | void activate(); 5 | void dismiss(); 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/StepikDevicePoster.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core 2 | 3 | import androidx.annotation.WorkerThread 4 | 5 | interface StepikDevicePoster { 6 | @WorkerThread 7 | fun registerDevice() 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/earlystreak/contract/EarlyStreakListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.earlystreak.contract 2 | 3 | interface EarlyStreakListener { 4 | fun onShowStreakSuggestion() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/earlystreak/contract/EarlyStreakPoster.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.earlystreak.contract 2 | 3 | interface EarlyStreakPoster { 4 | fun showStreakSuggestion() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/internetstate/contract/InternetEnabledListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.internetstate.contract 2 | 3 | interface InternetEnabledListener { 4 | fun onInternetEnabled() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/internetstate/contract/InternetEnabledPoster.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.internetstate.contract 2 | 3 | interface InternetEnabledPoster { 4 | fun internetEnabled() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/presenters/PresenterContract.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.presenters 2 | 3 | interface PresenterContract { 4 | fun attachView(view: V) 5 | fun detachView(view: V) 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/presenters/contracts/AdaptiveProgressView.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.presenters.contracts 2 | 3 | import org.stepic.droid.adaptive.ui.adapters.AdaptiveWeeksAdapter 4 | 5 | interface AdaptiveProgressView { 6 | fun onWeeksAdapter(adapter: AdaptiveWeeksAdapter) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/presenters/contracts/HomeStreakView.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.presenters.contracts 2 | 3 | 4 | interface HomeStreakView { 5 | fun showStreak(streak: Int) 6 | fun onEmptyStreak() 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/presenters/contracts/ProfileMainFeedView.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.presenters.contracts 2 | 3 | interface ProfileMainFeedView -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/core/presenters/contracts/TextFeedbackView.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.core.presenters.contracts 2 | 3 | interface TextFeedbackView { 4 | fun onFeedbackSent() 5 | 6 | fun onServerFail() 7 | 8 | fun onInternetProblems() 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/AppSingleton.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class AppSingleton -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/adaptive/AdaptiveCourseModule.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.adaptive 2 | 3 | import dagger.Module 4 | 5 | @Module 6 | interface AdaptiveCourseModule -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/adaptive/AdaptiveCourseScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.adaptive 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class AdaptiveCourseScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/home/HomeScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.home 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class HomeScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/mainscreen/MainScreenScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.mainscreen 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class MainScreenScope 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/notifications/NotificationsScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.notifications 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class NotificationsScope 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/BackgroundScheduler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class BackgroundScheduler 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/CourseId.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class CourseId -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/MainScheduler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class MainScheduler 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/PersistenceProgressStatusMapper.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class PersistenceProgressStatusMapper -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/PersonalOffersScheduler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class PersonalOffersScheduler 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/qualifiers/WishlistScheduler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class WishlistScheduler 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/splash/SplashScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.splash 2 | 3 | @Retention(AnnotationRetention.RUNTIME) 4 | annotation class SplashScope 5 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/di/storage/StorageSingleton.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.di.storage 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class StorageSingleton 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/features/stories/model/ViewedStoryTemplate.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.features.stories.model 2 | 3 | class ViewedStoryTemplate(val storyTemplateId: Long) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/BlockPersistentWrapper.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | import org.stepik.android.model.Block 4 | 5 | data class BlockPersistentWrapper( 6 | val block: Block, 7 | val stepId: Long 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/Credentials.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | class Credentials(val login: String, val password: String) 4 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/CurrentStreakExtended.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | data class CurrentStreakExtended(val currentStreak: Int, val isSolvedToday: Boolean) 4 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/Option.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | data class Option(val value: String, val positionId: Int) 4 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/StepikFilter.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | //do not rename fields, it will broke analytics 4 | enum class StepikFilter(val language: String) { 5 | RUSSIAN("ru"), ENGLISH("en") 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/model/ViewedNotification.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.model 2 | 3 | class ViewedNotification(val notificationId: Long) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/notifications/NotificationTimeChecker.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.notifications 2 | 3 | interface NotificationTimeChecker { 4 | fun isNight(nowMillis : Long): Boolean 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/notifications/badges/NotificationsBadgesListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.notifications.badges 2 | 3 | interface NotificationsBadgesListener { 4 | fun onBadgeShouldBeHidden() 5 | fun onBadgeCountChanged(count: Int) 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/notifications/handlers/RemoteMessageHandler.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.notifications.handlers 2 | 3 | import android.content.Context 4 | 5 | interface RemoteMessageHandler { 6 | fun handleMessage(context: Context, rawMessage: String?) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/notifications/model/NotificationStatuses.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.notifications.model 2 | 3 | class NotificationStatuses( 4 | val total: Int = 0 5 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/di/FSLock.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.di 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class FSLock -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/di/PersistenceScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.di 2 | 3 | import org.stepic.droid.di.AppSingleton 4 | 5 | typealias PersistenceScope = AppSingleton -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/downloads/progress/ProgressHelper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/java/org/stepic/droid/persistence/downloads/progress/ProgressHelper.kt -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/model/DownloadRequest.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.model 2 | 3 | data class DownloadRequest( 4 | val task: DownloadTask, 5 | val title: String, 6 | val configuration: DownloadConfiguration 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/model/DownloadTask.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.model 2 | 3 | class DownloadTask( 4 | val originalPath: String, 5 | val structure: Structure 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/model/Structure.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.model 2 | 3 | data class Structure( 4 | val course: Long, 5 | val section: Long, 6 | val unit: Long, 7 | val lesson: Long, 8 | val step: Long 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/providers/GenericFileProvider.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.providers 2 | 3 | import androidx.core.content.FileProvider 4 | 5 | class GenericFileProvider: FileProvider() -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/repository/DownloadsRepositoryImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/java/org/stepic/droid/persistence/repository/DownloadsRepositoryImpl.kt -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/persistence/storage/PersistentItemObserver.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.persistence.storage 2 | 3 | import org.stepic.droid.persistence.model.PersistentItem 4 | 5 | interface PersistentItemObserver { 6 | fun update(item: PersistentItem) 7 | fun remove(item: PersistentItem) 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/receivers/InternetConnectionStateListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.receivers 2 | 3 | interface InternetConnectionStateListener { 4 | fun onInternetEnabled() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/receivers/InternetConnectionStateNotifier.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.receivers 2 | 3 | class InternetConnectionStateNotifier { 4 | 5 | 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/storage/dao/SearchQueryDao.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.storage.dao 2 | 3 | import org.stepic.droid.model.SearchQuery 4 | 5 | interface SearchQueryDao : IDao { 6 | fun getSearchQueries(courseId: Long, constraint: String, count: Int): List 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/storage/operations/ResultHandler.java: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.storage.operations; 2 | 3 | import android.database.Cursor; 4 | import android.database.SQLException; 5 | 6 | public interface ResultHandler { 7 | T handle(Cursor cursor) throws SQLException; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/ui/activities/contracts/OnNextClickedListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.ui.activities.contracts 2 | 3 | interface OnNextClickedListener { 4 | fun onNextClicked() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/ui/activities/contracts/RootScreen.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.ui.activities.contracts 2 | 3 | interface RootScreen { 4 | fun showCatalog() 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/ui/listeners/OnItemClickListener.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.ui.listeners 2 | 3 | interface OnItemClickListener { 4 | fun onItemClick(position: Int) 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/ui/listeners/OnRootTouchedListener.java: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.ui.listeners; 2 | 3 | public interface OnRootTouchedListener { 4 | void makeBeforeChildren(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/ui/util/CloseIconHolder.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.ui.util 2 | 3 | import androidx.annotation.DrawableRes 4 | import org.stepic.droid.R 5 | 6 | object CloseIconHolder { 7 | @DrawableRes 8 | fun getCloseIconDrawableRes(): Int = R.drawable.ic_close_dark 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/util/AtomicBooleanExtension.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.util 2 | 3 | import java.util.concurrent.atomic.AtomicBoolean 4 | 5 | operator fun AtomicBoolean.not() = !this.get() 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/util/FileExtensions.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.util 2 | 3 | import java.io.File 4 | 5 | fun File.size(): Long = 6 | if (isDirectory) { 7 | listFiles()?.map(File::size)?.sum() ?: 0 8 | } else { 9 | length() 10 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/util/StepExtensions.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.util 2 | 3 | import org.stepik.android.model.Step 4 | 5 | fun Step?.getStepType(): String = this?.block?.name ?: AppConstants.TYPE_NULL 6 | 7 | fun Step.isCodeStepReady() = 8 | this.block?.options != null && this.status == Step.Status.READY -------------------------------------------------------------------------------- /app/src/main/java/org/stepic/droid/util/resolvers/text/TextResult.kt: -------------------------------------------------------------------------------- 1 | package org.stepic.droid.util.resolvers.text 2 | 3 | data class TextResult( 4 | val text: CharSequence, 5 | val isNeedWebView: Boolean = false, 6 | val isNeedLaTeX: Boolean = false 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/base/database/AnalyticDatabaseInfo.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.base.database 2 | 3 | object AnalyticDatabaseInfo { 4 | const val DATABASE_NAME = "stepik_analytic.db" 5 | const val DATABASE_VERSION = 1 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/personal_deadlines/dao/DeadlinesBannerDao.java: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.personal_deadlines.dao; 2 | 3 | import org.stepic.droid.storage.dao.IDao; 4 | 5 | public interface DeadlinesBannerDao extends IDao { } // instead of qualifier -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/personal_deadlines/model/DeadlineEntity.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.personal_deadlines.model 2 | 3 | import java.util.Date 4 | 5 | class DeadlineEntity( 6 | val recordId: Long, 7 | val courseId: Long, 8 | val sectionId: Long, 9 | val deadline: Date 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/video/dao/VideoDao.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.video.dao 2 | 3 | import org.stepik.android.model.Video 4 | 5 | interface VideoDao { 6 | fun get(videoId: Long): Video? 7 | fun replace(video: Video) 8 | fun remove(videoId: Long) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/video/model/VideoEntity.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.video.model 2 | 3 | class VideoEntity( 4 | val id: Long, 5 | val thumbnail: String?, 6 | val duration: Long 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/video/model/VideoUrlEntity.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.video.model 2 | 3 | class VideoUrlEntity( 4 | val videoId: Long, 5 | val url: String, 6 | val quality: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/cache/video_player/model/VideoTimestamp.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.cache.video_player.model 2 | 3 | class VideoTimestamp( 4 | val videoId: Long, 5 | val timestamp: Long 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/download/source/DownloadCacheDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.download.source 2 | 3 | import io.reactivex.Single 4 | 5 | interface DownloadCacheDataSource { 6 | fun getDownloadedCoursesIds(): Single> 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/feedback/source/FeedbackCacheDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.feedback.source 2 | 3 | import io.reactivex.Single 4 | import java.io.File 5 | 6 | interface FeedbackCacheDataSource { 7 | fun createSystemInfoData(fileName: String, fileContents: String): Single 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/lesson/source/LessonRemoteDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.lesson.source 2 | 3 | import io.reactivex.Single 4 | import org.stepik.android.model.Lesson 5 | 6 | interface LessonRemoteDataSource { 7 | fun getLessons(lessonIds: List): Single> 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/personal_deadlines/DeadlinesHelper.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.personal_deadlines 2 | 3 | fun getKindOfRecord(courseId: Long): String = 4 | "deadline_$courseId" 5 | 6 | fun getKindStartsWithOfRecord(): String = 7 | "deadline" -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/review/source/ReviewRemoteDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.review.source 2 | 3 | import org.stepik.android.domain.review.model.Review 4 | import io.reactivex.Single 5 | 6 | interface ReviewRemoteDataSource { 7 | fun createReview(sessionId: Long): Single 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/user/source/UserRemoteDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.user.source 2 | 3 | import io.reactivex.Single 4 | import org.stepik.android.model.user.User 5 | 6 | interface UserRemoteDataSource { 7 | fun getUsers(userIds: List): Single> 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/data/vote/source/VoteRemoteDataSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.data.vote.source 2 | 3 | import io.reactivex.Single 4 | import org.stepik.android.model.comments.Vote 5 | 6 | interface VoteRemoteDataSource { 7 | fun saveVote(vote: Vote): Single 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/auth/model/SocialAuthType.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.auth.model 2 | 3 | interface SocialAuthType { 4 | val identifier: String 5 | val isNeedUseAccessTokenInsteadOfCode: Boolean 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/base/DataSourceType.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.base 2 | 3 | enum class DataSourceType { 4 | REMOTE, CACHE 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/base/analytic/AnalyticSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.base.analytic 2 | 3 | enum class AnalyticSource { 4 | AMPLITUDE, YANDEX, FIREBASE, STEPIK_API 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/base/analytic/UserPropertySource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.base.analytic 2 | 3 | enum class UserPropertySource { 4 | AMPLITUDE, YANDEX, FIREBASE 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/calendar/model/CalendarEventData.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.calendar.model 2 | 3 | import java.util.Date 4 | 5 | data class CalendarEventData( 6 | val title: String, 7 | val date: Date 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/code_preference/model/InitCodePreference.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.code_preference.model 2 | 3 | data class InitCodePreference( 4 | val sourceStepId: Long, 5 | val language: String, 6 | val codeTemplates: Map 7 | ) 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_calendar/model/SectionDateEvent.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_calendar.model 2 | 3 | data class SectionDateEvent( 4 | val eventId: Long, 5 | val sectionId: Long 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_list/model/UserCoursesLoaded.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_list.model 2 | 3 | sealed class UserCoursesLoaded { 4 | object Empty : UserCoursesLoaded() 5 | class FirstCourse(val courseListItem: CourseListItem.Data) : UserCoursesLoaded() 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_news/exception/NotEnrolledException.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_news.exception 2 | 3 | class NotEnrolledException : Exception() -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_payments/exception/CourseAlreadyOwnedException.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_payments.exception 2 | 3 | class CourseAlreadyOwnedException(courseId: Long) : Exception("Course $courseId already owned") -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_payments/exception/CoursePurchaseVerificationException.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_payments.exception 2 | 3 | class CoursePurchaseVerificationException : Exception() -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_purchase/analytic/CoursePurchaseSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_purchase.analytic 2 | 3 | object CoursePurchaseSource { 4 | const val DEMO_LESSON_DIALOG_SOURCE = "demo_lesson_dialog" 5 | const val COURSE_SCREEN_SOURCE = "course_screen" 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_purchase/analytic/RestoreCoursePurchaseSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_purchase.analytic 2 | 3 | object RestoreCoursePurchaseSource { 4 | const val BUY_COURSE_DIALOG = "buy_course_dialog" 5 | const val COURSE_SCREEN = "course_screen" 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_purchase/error/BillingException.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_purchase.error 2 | 3 | data class BillingException(val responseCode: Int, val errorMessage: String) : Exception() -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/course_reviews/analytic/CourseReviewViewSource.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.course_reviews.analytic 2 | 3 | object CourseReviewViewSource { 4 | const val COURSE_REVIEWS_SOURCE = "course_reviews" 5 | const val USER_REVIEWS_SOURCE = "user_reviews" 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/discussion_proxy/model/DiscussionOrder.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.discussion_proxy.model 2 | 3 | enum class DiscussionOrder { 4 | LAST_DISCUSSION, MOST_LIKED, MOST_ACTIVE, RECENT_ACTIVITY 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/exam/model/ExamStatus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.exam.model 2 | 3 | enum class ExamStatus { 4 | IS_CAN_START, 5 | CANNOT_START, 6 | IN_PROGRESS, 7 | FINISHED 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/feedback/model/SupportEmailData.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.feedback.model 2 | 3 | import java.io.File 4 | 5 | data class SupportEmailData( 6 | val mailTo: String, 7 | val subject: String, 8 | val body: File 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/latex/model/rule/ContentRule.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.latex.model.rule 2 | 3 | interface ContentRule { 4 | /** 5 | * Processes given [content] and return new one 6 | */ 7 | fun process(content: String): String 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/network/exception/NetworkRequirementsNotSatisfiedException.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.network.exception 2 | 3 | import java.io.IOException 4 | 5 | class NetworkRequirementsNotSatisfiedException : IOException("Network requirements not satisfied") -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/personal_offers/model/PersonalOffers.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.personal_offers.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | data class PersonalOffers( 6 | @SerializedName("promo_stories") 7 | val promoStories: List? 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/profile/model/ProfileData.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.profile.model 2 | 3 | import org.stepik.android.model.user.User 4 | 5 | data class ProfileData( 6 | val user: User, 7 | val isCurrentUser: Boolean 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/profile_activities/model/ProfileActivitiesData.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.profile_activities.model 2 | 3 | data class ProfileActivitiesData( 4 | val pins: List, 5 | val streak: Int, 6 | val maxStreak: Int, 7 | val isSolvedToday: Boolean 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/review/model/Review.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.review.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | data class Review( 6 | @SerializedName("id") 7 | val id: Long, 8 | @SerializedName("session") 9 | val session: Long 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/review/repository/ReviewRepository.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.review.repository 2 | 3 | import org.stepik.android.domain.review.model.Review 4 | import io.reactivex.Single 5 | 6 | interface ReviewRepository { 7 | fun createReview(sessionId: Long): Single 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/step/model/StepNavigationDirection.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.step.model 2 | 3 | enum class StepNavigationDirection { 4 | PREV, NEXT 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/step_content_text/model/FontSize.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.step_content_text.model 2 | 3 | enum class FontSize(val size: Float) { 4 | SMALL(14f), 5 | MEDIUM(16f), 6 | LARGE(18f) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/story/model/StoryReaction.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.story.model 2 | 3 | enum class StoryReaction { 4 | LIKE, DISLIKE 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/domain/vote/repository/VoteRepository.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.domain.vote.repository 2 | 3 | import io.reactivex.Single 4 | import org.stepik.android.model.comments.Vote 5 | 6 | interface VoteRepository { 7 | fun saveVote(vote: Vote): Single 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/course_calendar/model/CalendarError.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.course_calendar.model 2 | 3 | enum class CalendarError { 4 | PERMISSION_ERROR, 5 | NO_CALENDARS_ERROR, 6 | GENERIC_ERROR 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/feedback/FeedbackView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.feedback 2 | 3 | import org.stepik.android.domain.feedback.model.SupportEmailData 4 | 5 | interface FeedbackView { 6 | fun sendTextFeedback(supportEmailData: SupportEmailData) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/filter/FilterQueryView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.filter 2 | 3 | import org.stepik.android.domain.filter.model.CourseListFilterQuery 4 | 5 | interface FilterQueryView { 6 | fun showFilterDialog(filterQuery: CourseListFilterQuery) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/font_size_settings/FontSizeView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.font_size_settings 2 | 3 | import org.stepik.android.domain.step_content_text.model.FontSize 4 | 5 | interface FontSizeView { 6 | fun setCachedFontSize(fontSize: FontSize) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/profile_detail/ProfileDetailView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.profile_detail 2 | 3 | import org.stepik.android.domain.profile.model.ProfileData 4 | 5 | interface ProfileDetailView { 6 | fun setState(profileData: ProfileData?) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/profile_id/ProfileIdView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.profile_id 2 | 3 | import org.stepik.android.domain.profile.model.ProfileData 4 | 5 | interface ProfileIdView { 6 | fun setState(profileData: ProfileData?) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/step_content_text/TextStepContentView.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.step_content_text 2 | 3 | import org.stepik.android.domain.step_content_text.model.FontSize 4 | 5 | interface TextStepContentView { 6 | fun setTextContentFontSize(fontSize: FontSize) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/user_courses/model/UserCourseAction.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.user_courses.model 2 | 3 | enum class UserCourseAction { 4 | ADD_FAVORITE, 5 | REMOVE_FAVORITE, 6 | ADD_ARCHIVE, 7 | REMOVE_ARCHIVE 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/presentation/wishlist/model/WishlistAction.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.presentation.wishlist.model 2 | 3 | enum class WishlistAction { 4 | ADD, 5 | REMOVE 6 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/auth/exception/FailRefreshException.java: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.auth.exception; 2 | 3 | public class FailRefreshException extends RuntimeException { 4 | 5 | public FailRefreshException(String message){ 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/auth/model/TokenType.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.auth.model 2 | 3 | enum class TokenType { 4 | SOCIAL, LOGIN_PASSWORD 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/base/UserAgentProvider.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.base 2 | 3 | interface UserAgentProvider { 4 | fun provideUserAgent(): String 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/base/model/MetaResponse.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.base.model 2 | 3 | import org.stepik.android.model.Meta 4 | 5 | interface MetaResponse { 6 | val meta: Meta 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/rating/model/RatingRestoreResponse.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.rating.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | class RatingRestoreResponse( 6 | @SerializedName("exp") 7 | val exp: Long 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/remote/vote/model/VoteRequest.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.remote.vote.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | import org.stepik.android.model.comments.Vote 5 | 6 | class VoteRequest( 7 | @SerializedName("vote") 8 | val vote: Vote 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/auth/model/AutoAuth.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.auth.model 2 | 3 | enum class AutoAuth { 4 | NONE, SMART_LOCK, REGISTRATION 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/course/model/CoursePromoCodeInfo.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.course.model 2 | 3 | data class CoursePromoCodeInfo( 4 | val name: String, 5 | val currencyCode: String, 6 | val price: String, 7 | val hasPromo: Boolean 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/course/routing/CourseScreenBranchRoute.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.course.routing 2 | 3 | import org.stepik.android.view.routing.deeplink.BranchRoute 4 | 5 | class CourseScreenBranchRoute( 6 | val courseId: Long 7 | ) : BranchRoute() -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/fragment_pager/ActiveFragmentPagerAdapter.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.fragment_pager 2 | 3 | import androidx.fragment.app.Fragment 4 | 5 | interface ActiveFragmentPagerAdapter { 6 | val activeFragments: Map 7 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/base/Authorized.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.base 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class Authorized -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/catalog/FiltersBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.catalog 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class FiltersBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course/CoursePresentationScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CoursePresentationScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course/CourseScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course/EnrollmentCourseUpdates.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class EnrollmentCourseUpdates -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/UserCoursesLoadedBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class UserCoursesLoadedBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/UserCoursesOperationBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class UserCoursesOperationBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/UserCoursesUpdateBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class UserCoursesUpdateBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/WishlistOperationBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class WishlistOperationBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/collection/CourseListCollectionScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.collection 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseListCollectionScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/query/CourseListQueryScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.query 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseListQueryScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/search_result/CourseListSearchResultScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.search_result 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseListSearchResultScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/user/CourseListUserScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.user 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseListUserScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/visited/CourseListVisitedScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.visited 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class CourseListVisitedScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/course_list/wishlist/CourseListWishScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.course_list.wishlist 2 | 3 | annotation class CourseListWishScope() 4 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/download/DownloadsProgressStatusMapper.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.download 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class DownloadsProgressStatusMapper -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/fast_continue/FastContinueScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.fast_continue 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class FastContinueScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/profile/ProfileCoursesScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.profile 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class ProfileCoursesScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/profile/ProfileScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.profile 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class ProfileScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/profile/UserId.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.profile 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class UserId -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/qualifiers/AuthLock.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class AuthLock -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/qualifiers/DebugInterceptors.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.qualifiers 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class DebugInterceptors -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/solutions/SolutionsBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.solutions 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class SolutionsBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/solutions/SolutionsSentBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.solutions 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class SolutionsSentBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/step/StepDiscussionBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.step 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class StepDiscussionBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/step/StepScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.step 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class StepScope -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/step_quiz/CodePreferenceBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.step_quiz 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class CodePreferenceBus 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/step_quiz/StepQuizBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.step_quiz 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class StepQuizBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/user_reviews/LearningActionsScope.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.user_reviews 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class LearningActionsScope 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/user_reviews/UserCourseReviewOperationBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.user_reviews 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class UserCourseReviewOperationBus 7 | -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/injection/view_assignment/ViewAssignmentBus.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.injection.view_assignment 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | annotation class ViewAssignmentBus -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/lesson/ui/interfaces/Playable.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.lesson.ui.interfaces 2 | 3 | interface Playable { 4 | /** 5 | * @return true if was handled 6 | */ 7 | fun play(): Boolean 8 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/notification/NotificationPublisher.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.notification 2 | 3 | interface NotificationPublisher { 4 | fun onNeedShowNotificationWithId(id: String) 5 | } -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/routing/deeplink/BranchRoute.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.routing.deeplink 2 | 3 | abstract class BranchRoute -------------------------------------------------------------------------------- /app/src/main/java/org/stepik/android/view/step/ui/interfaces/StepMenuNavigator.kt: -------------------------------------------------------------------------------- 1 | package org.stepik.android.view.step.ui.interfaces 2 | 3 | interface StepMenuNavigator { 4 | fun showSubmissions() 5 | fun showShareDialog() 6 | } -------------------------------------------------------------------------------- /app/src/main/res/anim-ldrtl/slide_out_to_end.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/no_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_from_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_from_end.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_from_start.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_to_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_to_end.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_to_start.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_to_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/color/adaptive_rating_item_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/color_control_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/color_login_edit_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/color_on_surface_alpha_12_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_done.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_action_done.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_more_vert.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_action_more_vert.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_action_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_animation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_close_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_close_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_close_white_24dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_close_white_24dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_close_white_with_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_close_white_with_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_content_copy_material_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_content_copy_material_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_easy_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_easy_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_edit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_edit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_empty.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_empty_downloads.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_empty_downloads.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_empty_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_empty_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_empty_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_empty_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_empty_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_empty_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_forward_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_forward_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_hard_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_hard_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_home.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_lesson_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_lesson_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_linkedin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_linkedin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_mobile_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_mobile_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_more_without_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_more_without_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_nav_arrow_right.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_nav_arrow_right.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_no_wifi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_no_wifi.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_notification_icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_notification_icon_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_open_in_browser_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_open_in_browser_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_pause_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_pause_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_play_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_0_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_0_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_0_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_0_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_1_25_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_1_25_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_1_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_1_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_1_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_1_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_1_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_1_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_playbackrate_2_0_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_playbackrate_2_0_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_player_next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_player_next.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_player_notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_player_notification.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_profile_edit_save.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_profile_edit_save.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_profile_edit_save_disabled.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_profile_edit_save_disabled.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_progress_star_green_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_progress_star_green_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_progress_star_white_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_progress_star_white_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_rating.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_rating.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_replay_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_replay_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_search_menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_search_menu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_settings_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_settings_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_share_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_share_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_share_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_share_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_shortcut_find_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_shortcut_find_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_shortcut_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_shortcut_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_star_rate_gray.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_star_rate_gray.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_star_rate_yellow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_star_rate_yellow.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stepik_logotype_square_black.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_stepik_logotype_square_black.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_video_pin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/ic_video_pin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/stepic_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-hdpi/stepic_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_done.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_action_done.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_more_vert.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_action_more_vert.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_action_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_animation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_close_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_close_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_close_white_24dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_close_white_24dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_close_white_with_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_close_white_with_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_content_copy_material_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_content_copy_material_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_easy_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_easy_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_edit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_edit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_empty.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_empty_downloads.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_empty_downloads.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_empty_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_empty_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_empty_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_empty_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_empty_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_empty_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_forward_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_forward_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_hard_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_hard_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_home.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_lesson_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_lesson_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_linkedin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_linkedin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_mobile_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_mobile_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_more_without_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_more_without_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_nav_arrow_right.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_nav_arrow_right.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_no_wifi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_no_wifi.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_notification_icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_notification_icon_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_open_in_browser_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_open_in_browser_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_pause_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_pause_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_play_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_0_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_0_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_0_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_0_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_1_25_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_1_25_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_1_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_1_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_1_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_1_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_1_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_1_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_playbackrate_2_0_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_playbackrate_2_0_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_player_next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_player_next.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_player_notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_player_notification.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_profile_edit_save.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_profile_edit_save.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_profile_edit_save_disabled.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_profile_edit_save_disabled.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_progress_star_green_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_progress_star_green_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_progress_star_white_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_progress_star_white_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_rating.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_rating.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_replay_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_replay_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_search_menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_search_menu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_settings_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_settings_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_share_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_share_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_share_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_share_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_shortcut_find_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_shortcut_find_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_shortcut_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_shortcut_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_star_rate_gray.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_star_rate_gray.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_star_rate_yellow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_star_rate_yellow.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stepik_logotype_square_black.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_stepik_logotype_square_black.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_video_pin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/ic_video_pin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/stepic_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-mdpi/stepic_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-hdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-night-hdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-mdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-night-mdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-night-xhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-night-xxhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxxhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-night-xxxhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/bg_user_course_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_done.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_action_done.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_more_vert.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_action_more_vert.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_action_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_animation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_close_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_close_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_close_white_24dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_close_white_24dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_close_white_with_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_close_white_with_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_content_copy_material_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_content_copy_material_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_easy_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_easy_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_edit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_edit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_empty.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_empty_downloads.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_empty_downloads.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_empty_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_empty_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_empty_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_empty_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_empty_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_empty_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_forward_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_forward_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_hard_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_hard_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_home.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_lesson_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_lesson_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_linkedin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_linkedin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_mobile_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_mobile_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_more_without_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_more_without_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_nav_arrow_right.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_nav_arrow_right.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_no_wifi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_no_wifi.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_notification_icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_notification_icon_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_open_in_browser_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_open_in_browser_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_pause_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_pause_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_play_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_0_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_0_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_0_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_0_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_1_25_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_1_25_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_1_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_1_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_1_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_1_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_1_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_1_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_playbackrate_2_0_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_playbackrate_2_0_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_player_next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_player_next.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_player_notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_player_notification.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_profile_edit_save.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_profile_edit_save.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_profile_edit_save_disabled.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_profile_edit_save_disabled.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_progress_star_green_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_progress_star_green_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_progress_star_white_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_progress_star_white_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_rating.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_rating.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_replay_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_replay_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_search_menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_search_menu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_settings_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_settings_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_share_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_share_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_share_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_share_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_shortcut_find_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_shortcut_find_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_shortcut_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_shortcut_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_star_rate_gray.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_star_rate_gray.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_star_rate_yellow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_star_rate_yellow.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stepik_logotype_square_black.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_stepik_logotype_square_black.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_video_pin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/ic_video_pin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/stepic_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xhdpi/stepic_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_done.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_action_done.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_more_vert.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_action_more_vert.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_action_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_animation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_close_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_close_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_close_white_24dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_close_white_24dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_close_white_with_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_close_white_with_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_content_copy_material_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_content_copy_material_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_easy_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_easy_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_edit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_edit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_empty.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_empty_downloads.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_empty_downloads.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_empty_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_empty_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_empty_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_empty_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_empty_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_empty_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_forward_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_forward_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_hard_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_hard_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_home.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_lesson_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_lesson_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_linkedin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_linkedin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_mobile_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_mobile_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_more_without_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_more_without_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_nav_arrow_right.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_nav_arrow_right.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_no_wifi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_no_wifi.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notification_icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_notification_icon_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_open_in_browser_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_open_in_browser_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pause_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_pause_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_play_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_0_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_0_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_0_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_0_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_25_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_25_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_1_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_playbackrate_2_0_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_playbackrate_2_0_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_player_next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_player_next.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_player_notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_player_notification.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_profile_edit_save.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_profile_edit_save.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_profile_edit_save_disabled.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_profile_edit_save_disabled.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_progress_star_green_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_progress_star_green_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_progress_star_white_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_progress_star_white_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_rating.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_rating.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_replay_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_replay_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search_menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_search_menu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_settings_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_settings_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_share_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_share_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_share_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_share_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_shortcut_find_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_shortcut_find_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_shortcut_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_shortcut_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_star_rate_gray.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_star_rate_gray.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_star_rate_yellow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_star_rate_yellow.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stepik_logotype_square_black.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_stepik_logotype_square_black.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_video_pin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/ic_video_pin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/stepic_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxhdpi/stepic_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/general_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/general_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_action_done.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_action_done.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_action_more_vert.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_action_more_vert.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_action_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_action_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_animation.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_animation.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_close_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_close_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_close_white_24dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_close_white_24dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_close_white_with_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_close_white_with_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_content_copy_material_24.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_content_copy_material_24.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_easy_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_easy_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_edit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_edit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_empty.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_empty_downloads.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_empty_downloads.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_empty_login.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_empty_login.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_empty_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_empty_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_empty_search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_empty_search.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_forward_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_forward_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_hard_quiz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_hard_quiz.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_home.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_home.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_lesson_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_lesson_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_linkedin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_linkedin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_mobile_notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_mobile_notifications.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_more_without_padding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_more_without_padding.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_nav_arrow_right.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_nav_arrow_right.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_no_wifi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_no_wifi.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_notification_icon_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_notification_icon_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_open_in_browser_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_open_in_browser_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_pause_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_pause_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_play_circle_outline_white_72.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_play_circle_outline_white_72.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_0_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_0_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_0_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_0_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_25_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_25_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_5_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_5_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_75_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_75_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_1_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_playbackrate_2_0_light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_playbackrate_2_0_light.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_player_next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_player_next.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_player_notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_player_notification.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_profile_edit_save.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_profile_edit_save.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_profile_edit_save_disabled.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_profile_edit_save_disabled.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_progress_star_green_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_progress_star_green_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_progress_star_white_rastr.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_progress_star_white_rastr.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_rating.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_rating.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_replay_10_white_48dp.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_replay_10_white_48dp.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_search_menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_search_menu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_settings_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_settings_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_share_dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_share_dark.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_share_material_24px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_share_material_24px.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_shortcut_find_courses.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_shortcut_find_courses.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_shortcut_profile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_shortcut_profile.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_star_rate_gray.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_star_rate_gray.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_star_rate_yellow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_star_rate_yellow.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_stepik_logotype_square_black.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_stepik_logotype_square_black.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_video_pin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/ic_video_pin.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/stepic_logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable-xxxhdpi/stepic_logo.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_announcement_composing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_announcement_on_event.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_announcement_scheduled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_announcement_sent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_comment_tag_course_moderator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_comment_tag_course_team.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_comment_tag_pinned.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_divider_vertical_course_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_peer_review_step_active.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_peer_review_step_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_peer_review_step_link.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_peer_review_step_passed.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_shape_rounded.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_shape_rounded_16dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_shape_square.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/continue_learning_cover.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/continue_learning_cover.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/dialog_background.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_course_content_date_dot.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notification_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_seek_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/ic_seek_background.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_seek_progress.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/ic_seek_progress.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_seek_secondary.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/ic_seek_secondary.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/video_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/drawable/video_placeholder.webp -------------------------------------------------------------------------------- /app/src/main/res/font/pt_mono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/pt_mono.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_bold.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_bolditalic.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_italic.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_light.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_medium.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/roboto_regular.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/stories.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/font/stories_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/stories_bold.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/stories_medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/font/stories_medium.otf -------------------------------------------------------------------------------- /app/src/main/res/layout/view_divider_vertical.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/menu/course_content_control_bar_schedule_menu_no_personal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/menu/submission_item_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/menu/video_more_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/raw/default_sound.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StepicOrg/stepik-android/7a6b02a62299d4a1fc08ff6d13bce58d7abf07b4/app/src/main/res/raw/default_sound.wav -------------------------------------------------------------------------------- /app/src/main/res/values-h520dp-port/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 200dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-h640dp-port/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 250dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-hdpi/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw360dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 125dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw430dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 187dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw520dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 250dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 112dp 4 | 140dp 5 | 80dp 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-v23/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |