├── .gitignore
├── LICENSE
├── README.md
├── androidApp
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ ├── fdroid
│ ├── AndroidManifest.xml
│ └── java
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ ├── application
│ │ └── UniversalPushClientFactory.kt
│ │ └── data
│ │ └── remote
│ │ ├── AppServiceImpl.kt
│ │ └── CrashlyticsServiceImpl.kt
│ ├── github
│ ├── AndroidManifest.xml
│ └── java
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ ├── application
│ │ └── BaseFlavorApplication.kt
│ │ ├── data
│ │ ├── AnalyticsServiceImpl.kt
│ │ ├── AppServiceImpl.kt
│ │ └── CrashlyticsServiceImpl.kt
│ │ └── presentation
│ │ └── services
│ │ ├── FirebaseMessagingService.kt
│ │ ├── HmsMessagingService.kt
│ │ └── RuStoreMessagingService.kt
│ ├── huawei
│ ├── AndroidManifest.xml
│ └── java
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ ├── application
│ │ └── BaseFlavorApplication.kt
│ │ ├── data
│ │ ├── AnalyticsServiceImpl.kt
│ │ ├── AppServiceImpl.kt
│ │ └── CrashlyticsServiceImpl.kt
│ │ └── presentation
│ │ └── services
│ │ └── HmsMessagingService.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── ic_launcher-playstore.png
│ ├── java
│ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ ├── application
│ │ │ └── StudyAssistantApp.kt
│ │ │ └── presentation
│ │ │ └── ui
│ │ │ └── MainActivity.kt
│ └── res
│ │ ├── drawable
│ │ ├── ic_launcher_foreground.xml
│ │ └── ic_launcher_notification.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.webp
│ │ ├── values-night
│ │ └── themes.xml
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── backup_rules.xml
│ │ └── data_extraction_rules.xml
│ └── rustore
│ ├── AndroidManifest.xml
│ └── java
│ └── ru
│ └── aleshin
│ └── studyassistant
│ ├── application
│ └── BaseFlavorApplication.kt
│ ├── data
│ ├── AnalyticsServiceImpl.kt
│ ├── AppServiceImpl.kt
│ └── CrashlyticsServiceImpl.kt
│ └── presentation
│ └── services
│ ├── FirebaseMessagingService.kt
│ ├── HmsMessagingService.kt
│ └── RuStoreMessagingService.kt
├── build.gradle.kts
├── code_of_conduct.md
├── config
├── detekt
│ └── detekt.yml
└── images
│ ├── play_store_app_icon_1024x1024.png
│ ├── play_store_app_icon_1024x1024_rounded.png
│ ├── play_store_app_icon_512x512.png
│ ├── play_store_app_icon_512x512_rounded.png
│ └── screenshots
│ ├── ConfirmEmail_dark_en.png
│ ├── Editor_Class_Subject_dark_en.png
│ ├── Editor_Class_Subject_dark_ru.png
│ ├── Editor_Class_dark_en.png
│ ├── Editor_Class_dark_ru.png
│ ├── Editor_Daily_dark_en.png
│ ├── Editor_Daily_dark_ru.png
│ ├── Editor_Employee_dark_en.png
│ ├── Editor_Employee_dark_ru.png
│ ├── Editor_Homework_2_dark_en.png
│ ├── Editor_Homework_2_dark_ru.png
│ ├── Editor_Homework_dark_en.png
│ ├── Editor_Homework_dark_ru.png
│ ├── Editor_Subject_dark_en.png
│ ├── Editor_Subject_dark_ru.png
│ ├── Editor_Week_dark_en.png
│ ├── Editor_Week_dark_ru.png
│ ├── Employee_dark_en.png
│ ├── Employee_dark_ru.png
│ ├── Forgot_dark_en.png
│ ├── Friends_dark_en.png
│ ├── Friends_dark_ru.png
│ ├── Homeworks_dark_en.png
│ ├── Homeworks_dark_ru.png
│ ├── Login_dark_en.png
│ ├── Organizations_2_dark_en.png
│ ├── Organizations_2_dark_ru.png
│ ├── Organizations_dark_en.png
│ ├── Organizations_dark_ru.png
│ ├── Profile_dark_en.png
│ ├── Profile_dark_ru.png
│ ├── Register_dark_en.png
│ ├── Schedule_Details_Vertical_dark_en.png
│ ├── Schedule_Details_Vertical_dark_ru.png
│ ├── Schedule_Details_dark_en.png
│ ├── Schedule_Details_dark_ru.png
│ ├── Schedule_Overview_Class_dark_en.png
│ ├── Schedule_Overview_Class_dark_ru.png
│ ├── Schedule_Overview_dark_en.png
│ ├── Schedule_Overview_dark_ru.png
│ ├── Settings_Calendar_dark_en.png
│ ├── Settings_Calendar_dark_ru.png
│ ├── Settings_Common_dark_en.png
│ ├── Settings_Common_dark_ru.png
│ ├── Settings_Notifcation_dark_en.png
│ ├── Settings_Notifcation_dark_ru.png
│ ├── Shrare_Schedule_2_dark_en.png
│ ├── Shrare_Schedule_2_dark_ru.png
│ ├── Shrare_Schedule_dark_en.png
│ ├── Shrare_Schedule_dark_ru.png
│ ├── Subjects_dark_en.png
│ ├── Subjects_dark_ru.png
│ ├── Tasks_Overview_2_dark_en.png
│ ├── Tasks_Overview_2_dark_ru.png
│ ├── Tasks_Overview_dark_en.png
│ ├── Tasks_Overview_dark_ru.png
│ ├── Tasks_Share_dark_en.png
│ ├── Tasks_Share_dark_ru.png
│ └── Tasks_Todo_dark_en.png
├── fastlane
└── metadata
│ └── android
│ ├── en-US
│ ├── full_description.txt
│ ├── images
│ │ ├── featureGraphic.png
│ │ ├── icon.png
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ ├── 7.png
│ │ │ ├── 8.png
│ │ │ └── 9.png
│ └── short_description.txt
│ └── ru
│ ├── full_description.txt
│ ├── phoneScreenshots
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ └── 9.png
│ └── short_description.txt
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── iosApp
├── iosApp.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── swiftpm
│ │ │ └── Package.resolved
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── StudyAssistant.xcscheme
│ │ └── iosApp.xcscheme
└── iosApp
│ ├── AnalyticsServiceImpl.swift
│ ├── AppServiceImpl.swift
│ ├── Assets.xcassets
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ └── ic_launcher_ios.png
│ └── Contents.json
│ ├── ContentView.swift
│ ├── CrashlyticsServiceImpl.swift
│ ├── GoogleAuthTokenProvider.swift
│ ├── Info.plist
│ ├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
│ ├── StudyAssistantApp.swift
│ └── UUIDProvider.swift
├── security.md
├── settings.gradle.kts
└── shared
├── build.gradle.kts
├── core
├── common
│ ├── build.gradle.kts
│ └── src
│ │ ├── androidMain
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── ru
│ │ │ │ └── aleshin
│ │ │ │ └── studyassistant
│ │ │ │ └── core
│ │ │ │ └── common
│ │ │ │ ├── architecture
│ │ │ │ └── BaseViewModel.kt
│ │ │ │ ├── di
│ │ │ │ └── CorePlatformModule.android.kt
│ │ │ │ ├── extensions
│ │ │ │ ├── Platform.kt
│ │ │ │ └── UUID.android.kt
│ │ │ │ ├── functional
│ │ │ │ ├── DeviceInfoProvider.android.kt
│ │ │ │ └── File.android.kt
│ │ │ │ ├── messages
│ │ │ │ ├── LocalNotificationReceiver.kt
│ │ │ │ └── RemoteMessageHandler.kt
│ │ │ │ ├── notifications
│ │ │ │ ├── NotificationCreator.kt
│ │ │ │ └── parameters
│ │ │ │ │ ├── NotificationCategory.kt
│ │ │ │ │ ├── NotificationDefaults.kt
│ │ │ │ │ ├── NotificationImportance.kt
│ │ │ │ │ ├── NotificationPriority.kt
│ │ │ │ │ ├── NotificationProgress.kt
│ │ │ │ │ ├── NotificationStyles.kt
│ │ │ │ │ └── NotificationVisibility.kt
│ │ │ │ └── platform
│ │ │ │ ├── BaseApplication.kt
│ │ │ │ ├── RequestPermissions.kt
│ │ │ │ ├── activity
│ │ │ │ └── BaseActivity.kt
│ │ │ │ └── services
│ │ │ │ └── ServiceBinder.kt
│ │ └── res
│ │ │ └── drawable
│ │ │ └── ic_launcher_notification.xml
│ │ ├── commonMain
│ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── core
│ │ │ └── common
│ │ │ ├── architecture
│ │ │ ├── communications
│ │ │ │ ├── Communicator.kt
│ │ │ │ └── state
│ │ │ │ │ ├── StateCommunicator.kt
│ │ │ │ │ └── ViewStateCollect.kt
│ │ │ ├── screen
│ │ │ │ ├── EmptyScreen.kt
│ │ │ │ ├── KeyScreen.kt
│ │ │ │ ├── ScreenContent.kt
│ │ │ │ └── ScreenScope.kt
│ │ │ └── screenmodel
│ │ │ │ ├── Actor.kt
│ │ │ │ ├── BaseScreenModel.kt
│ │ │ │ ├── ContractProviders.kt
│ │ │ │ ├── Init.kt
│ │ │ │ ├── Reducer.kt
│ │ │ │ ├── ReetrantLock.kt
│ │ │ │ ├── ScreenDependencies.kt
│ │ │ │ ├── contract
│ │ │ │ ├── BaseAction.kt
│ │ │ │ ├── BaseEvent.kt
│ │ │ │ ├── BaseUiEffect.kt
│ │ │ │ └── BaseViewState.kt
│ │ │ │ ├── store
│ │ │ │ ├── BaseStore.kt
│ │ │ │ ├── SharedStore.kt
│ │ │ │ └── Store.kt
│ │ │ │ └── work
│ │ │ │ ├── FlowWorkProcessor.kt
│ │ │ │ ├── WorkProcessor.kt
│ │ │ │ ├── WorkResultHandler.kt
│ │ │ │ └── WorkScope.kt
│ │ │ ├── di
│ │ │ ├── ComposeDI.kt
│ │ │ ├── CoreModule.kt
│ │ │ ├── CorePlatformModule.platform.kt
│ │ │ ├── MainDependenciesGraph.kt
│ │ │ └── MainDirectDIAware.kt
│ │ │ ├── exceptions
│ │ │ ├── FirebaseExceptions.kt
│ │ │ └── RemoteException.kt
│ │ │ ├── extensions
│ │ │ ├── Common.kt
│ │ │ ├── Compose.kt
│ │ │ ├── Date.kt
│ │ │ ├── Firebase.kt
│ │ │ ├── Math.kt
│ │ │ ├── Time.kt
│ │ │ └── UUID.platform.kt
│ │ │ ├── functional
│ │ │ ├── AndroidMessagePriority.kt
│ │ │ ├── Constants.kt
│ │ │ ├── DeviceInfoProvider.platform.kt
│ │ │ ├── DomainFailures.kt
│ │ │ ├── Either.kt
│ │ │ ├── File.platform.kt
│ │ │ ├── Mapper.kt
│ │ │ ├── ResponseResult.kt
│ │ │ ├── TimeFormat.kt
│ │ │ ├── TimePeriod.kt
│ │ │ ├── TimeRange.kt
│ │ │ └── UID.kt
│ │ │ ├── handlers
│ │ │ └── ErrorHandler.kt
│ │ │ ├── inject
│ │ │ ├── BaseFeatureApi.kt
│ │ │ ├── BaseFeatureDIHolder.kt
│ │ │ ├── BaseFeatureDependencies.kt
│ │ │ ├── FeatureScreen.kt
│ │ │ └── FeatureStarter.kt
│ │ │ ├── managers
│ │ │ ├── CoroutineManager.kt
│ │ │ ├── DateManager.kt
│ │ │ ├── DrawerManager.kt
│ │ │ ├── TimeOverlayManager.kt
│ │ │ └── TimePeriodManager.kt
│ │ │ ├── messages
│ │ │ ├── PushServiceType.kt
│ │ │ └── UniversalPushToken.kt
│ │ │ ├── navigation
│ │ │ ├── CommandBuffer.kt
│ │ │ ├── CommandListenerManager.kt
│ │ │ ├── FeatureScreenProvider.kt
│ │ │ ├── NavigatorManager.kt
│ │ │ ├── NestedFeatureNavigator.kt
│ │ │ ├── NestedNavigatorDisposable.kt
│ │ │ ├── RootNavigator.kt
│ │ │ └── StartScreenHolder.kt
│ │ │ ├── payments
│ │ │ ├── PaymentsService.kt
│ │ │ └── SubscriptionChecker.kt
│ │ │ ├── platform
│ │ │ ├── InstantParceler.kt
│ │ │ ├── IosUUIDProvider.kt
│ │ │ ├── Platform.kt
│ │ │ └── services
│ │ │ │ ├── AnalyticsService.kt
│ │ │ │ ├── AppService.kt
│ │ │ │ ├── CrashlyticsService.kt
│ │ │ │ ├── Flavor.kt
│ │ │ │ └── MessagingService.kt
│ │ │ ├── validation
│ │ │ ├── ValidateError.kt
│ │ │ ├── ValidateResult.kt
│ │ │ └── Validator.kt
│ │ │ └── wrappers
│ │ │ └── EitherWrapper.kt
│ │ └── iosMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── common
│ │ ├── di
│ │ └── CorePlatformModule.ios.kt
│ │ ├── extensions
│ │ ├── Platform.kt
│ │ └── UUID.ios.kt
│ │ └── functional
│ │ ├── DeviceInfoProvider.ios.kt
│ │ └── File.ios.kt
├── data
│ ├── build.gradle.kts
│ └── src
│ │ ├── androidMain
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── ru
│ │ │ │ └── aleshin
│ │ │ │ └── studyassistant
│ │ │ │ └── core
│ │ │ │ └── data
│ │ │ │ ├── di
│ │ │ │ └── CoreDataPlatformModule.android.kt
│ │ │ │ ├── managers
│ │ │ │ ├── EndClassesReminderManagerImpl.android.kt
│ │ │ │ ├── HomeworksReminderManagerImpl.android.kt
│ │ │ │ ├── NotificationScheduler.android.kt
│ │ │ │ ├── StartClassesReminderManagerImpl.android.kt
│ │ │ │ ├── WorkStatusMapper.kt
│ │ │ │ └── WorkloadWarningManagerImpl.android.kt
│ │ │ │ └── workers
│ │ │ │ ├── EndClassesReminderWorker.kt
│ │ │ │ ├── HomeworksReminderWorker.kt
│ │ │ │ ├── StartClassesReminderWorker.kt
│ │ │ │ └── WorkloadWarningWorker.kt
│ │ └── res
│ │ │ └── drawable
│ │ │ └── ic_launcher_notification.xml
│ │ ├── commonMain
│ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── core
│ │ │ └── data
│ │ │ ├── di
│ │ │ ├── CoreDataModule.kt
│ │ │ └── CoreDataPlatformModule.platform.kt
│ │ │ ├── managers
│ │ │ ├── EndClassesReminderManagerImpl.platform.kt
│ │ │ ├── HomeworksReminderManagerImpl.platform.kt
│ │ │ ├── NotificationScheduler.platform.kt
│ │ │ ├── StartClassesReminderManagerImpl.platform.kt
│ │ │ ├── TodoReminderManagerImpl.kt
│ │ │ └── WorkloadWarningManagerImpl.platform.kt
│ │ │ ├── mappers
│ │ │ ├── goals
│ │ │ │ └── GoalDataMapper.kt
│ │ │ ├── message
│ │ │ │ └── MessagesDataMapper.kt
│ │ │ ├── organizations
│ │ │ │ ├── OrganizationDataMapper.kt
│ │ │ │ ├── OrganizationShortDataMapper.kt
│ │ │ │ └── ScheduleTimeIntervalsDataMapper.kt
│ │ │ ├── requsts
│ │ │ │ └── FriendRequestsRemoteMapper.kt
│ │ │ ├── schedules
│ │ │ │ ├── BaseScheduleDataMapper.kt
│ │ │ │ ├── ClassDataMapper.kt
│ │ │ │ └── CustomScheduleDataMapper.kt
│ │ │ ├── settings
│ │ │ │ ├── CalendarSettingsDataMapper.kt
│ │ │ │ ├── GeneralSettingsDataMapper.kt
│ │ │ │ └── NotificationSettingsDataMapper.kt
│ │ │ ├── share
│ │ │ │ ├── SharedHomeworksDataMapper.kt
│ │ │ │ └── SharedSchedulesDataMapper.kt
│ │ │ ├── subjects
│ │ │ │ └── SubjectDataMapper.kt
│ │ │ ├── tasks
│ │ │ │ ├── HomeworkDataMapper.kt
│ │ │ │ └── TodoDataMapper.kt
│ │ │ └── users
│ │ │ │ ├── AppUserDataMapper.kt
│ │ │ │ ├── ContactInfoDataMapper.kt
│ │ │ │ └── EmployeeDataMapper.kt
│ │ │ └── repositories
│ │ │ ├── AuthRepositoryImpl.kt
│ │ │ ├── BaseScheduleRepositoryImpl.kt
│ │ │ ├── CalendarSettingsRepositoryImpl.kt
│ │ │ ├── CustomScheduleRepositoryImpl.kt
│ │ │ ├── DailyGoalsRepositoryImpl.kt
│ │ │ ├── EmployeeRepositoryImpl.kt
│ │ │ ├── FriendRequestsRepositoryImpl.kt
│ │ │ ├── GeneralSettingsRepositoryImpl.kt
│ │ │ ├── HomeworksRepositoryImpl.kt
│ │ │ ├── ManageUserRepositoryImpl.kt
│ │ │ ├── MessageRepositoryImpl.kt
│ │ │ ├── NotificationSettingsRepositoryImpl.kt
│ │ │ ├── OrganizationsRepositoryImpl.kt
│ │ │ ├── ShareHomeworksRepositoryImpl.kt
│ │ │ ├── ShareSchedulesRepositoryImpl.kt
│ │ │ ├── SubjectsRepositoryImpl.kt
│ │ │ ├── TodoRepositoryImpl.kt
│ │ │ └── UsersRepositoryImpl.kt
│ │ └── iosMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── data
│ │ ├── di
│ │ └── CoreDataPlatformModule.ios.kt
│ │ └── managers
│ │ ├── EndClassesReminderManagerImpl.ios.kt
│ │ ├── HomeworksReminderManagerImpl.ios.kt
│ │ ├── NotificationScheduler.ios.kt
│ │ ├── StartClassesReminderManagerImpl.ios.kt
│ │ └── WorkloadWarningManagerImpl.ios.kt
├── database
│ ├── build.gradle.kts
│ └── src
│ │ ├── androidMain
│ │ ├── AndroidManifest.xml
│ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── core
│ │ │ └── database
│ │ │ ├── datasource
│ │ │ └── DriverFactory.platform.android.kt
│ │ │ └── di
│ │ │ └── CoreDatabasePlatformModule.android.kt
│ │ ├── commonMain
│ │ ├── kotlin
│ │ │ └── ru
│ │ │ │ └── aleshin
│ │ │ │ └── studyassistant
│ │ │ │ └── core
│ │ │ │ └── database
│ │ │ │ ├── datasource
│ │ │ │ ├── DriverFactory.platform.kt
│ │ │ │ ├── ListAdapter.kt
│ │ │ │ ├── employee
│ │ │ │ │ └── EmployeeLocalDataSource.kt
│ │ │ │ ├── goals
│ │ │ │ │ └── DailyGoalsLocalDataSource.kt
│ │ │ │ ├── organizations
│ │ │ │ │ └── OrganizationsLocalDataSource.kt
│ │ │ │ ├── schedules
│ │ │ │ │ ├── BaseScheduleLocalDataSource.kt
│ │ │ │ │ └── CustomScheduleLocalDataSource.kt
│ │ │ │ ├── settings
│ │ │ │ │ ├── CalendarSettingsLocalDataSource.kt
│ │ │ │ │ ├── GeneralSettingsLocalDataSource.kt
│ │ │ │ │ └── NotificationSettingsLocalDataSource.kt
│ │ │ │ ├── subjects
│ │ │ │ │ └── SubjectsLocalDataSource.kt
│ │ │ │ └── tasks
│ │ │ │ │ ├── HomeworksLocalDataSource.kt
│ │ │ │ │ └── TodoLocalDataSource.kt
│ │ │ │ ├── di
│ │ │ │ ├── CoreDatabaseModule.kt
│ │ │ │ └── CoreDatabasePlatformModule.platform.kt
│ │ │ │ ├── mappers
│ │ │ │ ├── employee
│ │ │ │ │ └── EmployeeLocalMapper.kt
│ │ │ │ ├── goals
│ │ │ │ │ └── GoalLocalMapper.kt
│ │ │ │ ├── organizations
│ │ │ │ │ └── OrganizationLocalMapper.kt
│ │ │ │ ├── schedules
│ │ │ │ │ ├── BaseScheduleLocalMapper.kt
│ │ │ │ │ ├── ClassLocalMapper.kt
│ │ │ │ │ └── CustomScheduleLocalMapper.kt
│ │ │ │ ├── subjects
│ │ │ │ │ └── SubjectLocalMapper.kt
│ │ │ │ └── tasks
│ │ │ │ │ └── HomeworkLocalMapper.kt
│ │ │ │ └── models
│ │ │ │ ├── classes
│ │ │ │ ├── ClassDetailsEntity.kt
│ │ │ │ └── ClassEntity.kt
│ │ │ │ ├── employee
│ │ │ │ └── EmployeeBaseEntity.kt
│ │ │ │ ├── goals
│ │ │ │ └── GoalEntityDetails.kt
│ │ │ │ ├── organizations
│ │ │ │ ├── NumberedDurationEntity.kt
│ │ │ │ ├── OrganizationDetailsEntity.kt
│ │ │ │ ├── OrganizationShortEntity.kt
│ │ │ │ └── ScheduleTimeIntervalsEntity.kt
│ │ │ │ ├── schedule
│ │ │ │ ├── BaseScheduleDetailsEntity.kt
│ │ │ │ └── CustomScheduleDetailsEntity.kt
│ │ │ │ ├── settings
│ │ │ │ └── HolidaysEntity.kt
│ │ │ │ ├── subjects
│ │ │ │ └── SubjectDetailsEntity.kt
│ │ │ │ ├── tasks
│ │ │ │ └── HomeworkDetailsEntity.kt
│ │ │ │ └── users
│ │ │ │ └── ContactInfoEntity.kt
│ │ └── sqldelight
│ │ │ ├── migrations
│ │ │ └── 1.sqm
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── sqldelight
│ │ │ ├── employee
│ │ │ └── Employee.sq
│ │ │ ├── goals
│ │ │ └── Goal.sq
│ │ │ ├── organizations
│ │ │ └── Organization.sq
│ │ │ ├── schedules
│ │ │ ├── BaseSchedule.sq
│ │ │ └── CustomSchedule.sq
│ │ │ ├── settings
│ │ │ ├── Calendar.sq
│ │ │ ├── General.sq
│ │ │ └── Notification.sq
│ │ │ ├── subjects
│ │ │ └── Subject.sq
│ │ │ └── tasks
│ │ │ ├── Homework.sq
│ │ │ └── Todo.sq
│ │ └── iosMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── database
│ │ ├── datasource
│ │ └── DriverFactory.platform.ios.kt
│ │ └── di
│ │ └── CoreDatabasePlatformModule.ios.kt
├── domain
│ ├── build.gradle.kts
│ └── src
│ │ └── commonMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── domain
│ │ ├── common
│ │ └── DataTransferDirection.kt
│ │ ├── entities
│ │ ├── analytics
│ │ │ └── DailyAnalysis.kt
│ │ ├── auth
│ │ │ ├── AuthCredentials.kt
│ │ │ └── ForgotCredentials.kt
│ │ ├── classes
│ │ │ ├── Class.kt
│ │ │ ├── ClassDetails.kt
│ │ │ ├── ClassesForLinked.kt
│ │ │ └── MediatedClass.kt
│ │ ├── common
│ │ │ ├── ContactInfo.kt
│ │ │ ├── ContactInfoType.kt
│ │ │ ├── DayOfNumberedWeek.kt
│ │ │ └── NumberOfRepeatWeek.kt
│ │ ├── employee
│ │ │ ├── Employee.kt
│ │ │ ├── EmployeeDetails.kt
│ │ │ ├── EmployeePost.kt
│ │ │ └── MediatedEmployee.kt
│ │ ├── goals
│ │ │ ├── DailyGoalsProgress.kt
│ │ │ ├── Goal.kt
│ │ │ ├── GoalDetails.kt
│ │ │ ├── GoalTime.kt
│ │ │ ├── GoalTimeDetails.kt
│ │ │ └── GoalType.kt
│ │ ├── message
│ │ │ ├── Message.kt
│ │ │ └── NotifyPushContent.kt
│ │ ├── organizations
│ │ │ ├── MediatedOrganization.kt
│ │ │ ├── NumberedDuration.kt
│ │ │ ├── Organization.kt
│ │ │ ├── OrganizationShort.kt
│ │ │ ├── OrganizationType.kt
│ │ │ └── ScheduleTimeIntervals.kt
│ │ ├── requests
│ │ │ ├── FriendRequests.kt
│ │ │ └── FriendRequestsDetails.kt
│ │ ├── schedules
│ │ │ ├── DateVersion.kt
│ │ │ ├── Schedule.kt
│ │ │ ├── ScheduleDetails.kt
│ │ │ ├── WeekScheduleDetails.kt
│ │ │ ├── base
│ │ │ │ ├── BaseSchedule.kt
│ │ │ │ ├── BaseScheduleDetails.kt
│ │ │ │ ├── BaseWeekSchedule.kt
│ │ │ │ └── MediatedBaseSchedule.kt
│ │ │ └── custom
│ │ │ │ ├── CustomSchedule.kt
│ │ │ │ └── CustomScheduleDetails.kt
│ │ ├── settings
│ │ │ ├── CalendarSettings.kt
│ │ │ ├── GeneralSettings.kt
│ │ │ ├── Holidays.kt
│ │ │ ├── LanguageType.kt
│ │ │ ├── NotificationSettings.kt
│ │ │ ├── PrivacySettings.kt
│ │ │ ├── ThemeType.kt
│ │ │ └── WeekScheduleViewType.kt
│ │ ├── share
│ │ │ ├── homeworks
│ │ │ │ ├── ReceivedMediatedHomeworks.kt
│ │ │ │ ├── ReceivedMediatedHomeworksDetails.kt
│ │ │ │ ├── SentMediatedHomeworks.kt
│ │ │ │ ├── SentMediatedHomeworksDetails.kt
│ │ │ │ ├── SharedHomeworks.kt
│ │ │ │ └── SharedHomeworksDetails.kt
│ │ │ └── scheules
│ │ │ │ ├── ReceivedMediatedSchedules.kt
│ │ │ │ ├── ReceivedMediatedSchedulesShort.kt
│ │ │ │ ├── SentMediatedSchedules.kt
│ │ │ │ ├── SharedSchedules.kt
│ │ │ │ └── SharedSchedulesShort.kt
│ │ ├── subject
│ │ │ ├── EventType.kt
│ │ │ ├── MediatedSubject.kt
│ │ │ └── Subject.kt
│ │ ├── tasks
│ │ │ ├── DailyHomeworks.kt
│ │ │ ├── DailyHomeworksStatus.kt
│ │ │ ├── Homework.kt
│ │ │ ├── HomeworkDetails.kt
│ │ │ ├── HomeworkScope.kt
│ │ │ ├── HomeworkStatus.kt
│ │ │ ├── HomeworkTaskComponent.kt
│ │ │ ├── MediatedHomework.kt
│ │ │ ├── TaskPriority.kt
│ │ │ ├── Todo.kt
│ │ │ ├── TodoNotifications.kt
│ │ │ └── TodoStatus.kt
│ │ └── users
│ │ │ ├── AppUser.kt
│ │ │ ├── Gender.kt
│ │ │ ├── SocialNetwork.kt
│ │ │ ├── SocialNetworkType.kt
│ │ │ ├── Store.kt
│ │ │ ├── SubscribeInfo.kt
│ │ │ ├── UserDevice.kt
│ │ │ └── UserFriendStatus.kt
│ │ ├── managers
│ │ ├── EndClassesReminderManager.kt
│ │ ├── HomeworksReminderManager.kt
│ │ ├── RepeatWorkStatus.kt
│ │ ├── StartClassesReminderManager.kt
│ │ ├── TodoReminderManager.kt
│ │ └── WorkloadWarningManager.kt
│ │ └── repositories
│ │ ├── AuthRepository.kt
│ │ ├── BaseScheduleRepository.kt
│ │ ├── CalendarSettingsRepository.kt
│ │ ├── CustomScheduleRepository.kt
│ │ ├── DailyGoalsRepository.kt
│ │ ├── EmployeeRepository.kt
│ │ ├── FriendRequestsRepository.kt
│ │ ├── GeneralSettingsRepository.kt
│ │ ├── HomeworksRepository.kt
│ │ ├── ManageUserRepository.kt
│ │ ├── MessageRepository.kt
│ │ ├── NotificationSettingsRepository.kt
│ │ ├── OrganizationsRepository.kt
│ │ ├── ShareHomeworksRepository.kt
│ │ ├── ShareSchedulesRepository.kt
│ │ ├── SubjectsRepository.kt
│ │ ├── TodoRepository.kt
│ │ └── UsersRepository.kt
├── remote
│ ├── build.gradle.kts
│ └── src
│ │ ├── androidMain
│ │ ├── AndroidManifest.xml
│ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── core
│ │ │ └── remote
│ │ │ ├── datasources
│ │ │ └── message
│ │ │ │ ├── GoogleAuthTokenProviderImpl.kt
│ │ │ │ ├── HmsAuthTokenProviderImpl.kt
│ │ │ │ └── MessagingServiceImpl.android.kt
│ │ │ ├── di
│ │ │ └── CoreRemotePlatformModule.android.kt
│ │ │ └── ktor
│ │ │ └── HttpEngineFactory.platform.android.kt
│ │ ├── commonMain
│ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── core
│ │ │ └── remote
│ │ │ ├── datasources
│ │ │ ├── StudyAssistantFirebase.kt
│ │ │ ├── auth
│ │ │ │ └── AuthRemoteDataSource.kt
│ │ │ ├── employee
│ │ │ │ └── EmployeeRemoteDataSource.kt
│ │ │ ├── goals
│ │ │ │ └── DailyGoalsRemoteDataSource.kt
│ │ │ ├── message
│ │ │ │ ├── GoogleAuthTokenProvider.kt
│ │ │ │ ├── HmsAuthTokenProvider.kt
│ │ │ │ ├── MessageRemoteDataSource.kt
│ │ │ │ ├── MessagingServiceImpl.platform.kt
│ │ │ │ ├── PushServiceAuthTokenFactory.kt
│ │ │ │ └── PushServiceAuthTokenProvider.kt
│ │ │ ├── organizations
│ │ │ │ └── OrganizationsRemoteDataSource.kt
│ │ │ ├── requests
│ │ │ │ └── FriendRequestsRemoteDataSource.kt
│ │ │ ├── schedules
│ │ │ │ ├── BaseScheduleRemoteDataSource.kt
│ │ │ │ └── CustomScheduleRemoteDataSource.kt
│ │ │ ├── settings
│ │ │ │ └── CalendarSettingsRemoteDataSource.kt
│ │ │ ├── share
│ │ │ │ ├── ShareHomeworksRemoteDataSource.kt
│ │ │ │ └── ShareSchedulesRemoteDataSource.kt
│ │ │ ├── subjects
│ │ │ │ └── SubjectsRemoteDataSource.kt
│ │ │ ├── tasks
│ │ │ │ ├── HomeworksRemoteDataSource.kt
│ │ │ │ └── TodoRemoteDataSource.kt
│ │ │ └── users
│ │ │ │ └── UsersRemoteDataSource.kt
│ │ │ ├── di
│ │ │ ├── CoreRemoteModule.kt
│ │ │ └── CoreRemotePlatformModule.platform.kt
│ │ │ ├── ktor
│ │ │ ├── HttpEngineFactory.platform.kt
│ │ │ └── StudyAssistantKtor.kt
│ │ │ ├── mappers
│ │ │ ├── goals
│ │ │ │ └── GoalRemoteMapper.kt
│ │ │ ├── message
│ │ │ │ └── UniversalMessageRemoteMapper.kt
│ │ │ ├── organizations
│ │ │ │ └── OrganizationRemoteMapper.kt
│ │ │ ├── schedules
│ │ │ │ ├── BaseScheduleRemoteMapper.kt
│ │ │ │ ├── ClassRemoteMapper.kt
│ │ │ │ └── CustomScheduleRemoteMapper.kt
│ │ │ ├── share
│ │ │ │ ├── SharedHomeworksRemoteMapper.kt
│ │ │ │ └── SharedSchedulesRemoteMapper.kt
│ │ │ ├── subjects
│ │ │ │ └── SubjectRemoteMapper.kt
│ │ │ └── tasks
│ │ │ │ └── HomeworkRemoteMapper.kt
│ │ │ └── models
│ │ │ ├── classes
│ │ │ ├── ClassDetailsPojo.kt
│ │ │ ├── ClassPojo.kt
│ │ │ └── MediatedClassPojo.kt
│ │ │ ├── goals
│ │ │ ├── GoalDetailsPojo.kt
│ │ │ └── GoalPojo.kt
│ │ │ ├── message
│ │ │ ├── AndroidPushNotificationBodyPojo.kt
│ │ │ ├── AndroidPushNotificationPojo.kt
│ │ │ ├── PushProviderPojo.kt
│ │ │ ├── UniversalMessageData.kt
│ │ │ ├── UniversalPushMessageBodyPojo.kt
│ │ │ ├── UniversalPushMessagePojo.kt
│ │ │ ├── UniversalPushNotificationPojo.kt
│ │ │ ├── UniversalPushProvidersPojo.kt
│ │ │ └── UniversalPushTokensPojo.kt
│ │ │ ├── organizations
│ │ │ ├── MediatedOrganizationPojo.kt
│ │ │ ├── MediatedOrganizationShortPojo.kt
│ │ │ ├── NumberedDurationPojo.kt
│ │ │ ├── OrganizationDetailsPojo.kt
│ │ │ ├── OrganizationPojo.kt
│ │ │ ├── OrganizationShortPojo.kt
│ │ │ └── ScheduleTimeIntervalsPojo.kt
│ │ │ ├── requests
│ │ │ ├── FriendRequestsDetailsPojo.kt
│ │ │ └── FriendRequestsPojo.kt
│ │ │ ├── schedule
│ │ │ ├── BaseScheduleDetailsPojo.kt
│ │ │ ├── BaseSchedulePojo.kt
│ │ │ ├── CustomScheduleDetailsPojo.kt
│ │ │ ├── CustomSchedulePojo.kt
│ │ │ └── MediatedBaseSchedulePojo.kt
│ │ │ ├── settings
│ │ │ ├── CalendarSettingsPojo.kt
│ │ │ └── HolidaysPojo.kt
│ │ │ ├── shared
│ │ │ ├── homeworks
│ │ │ │ ├── ReceivedMediatedHomeworksDetailsPojo.kt
│ │ │ │ ├── ReceivedMediatedHomeworksPojo.kt
│ │ │ │ ├── SentMediatedHomeworksDetailsPojo.kt
│ │ │ │ ├── SentMediatedHomeworksPojo.kt
│ │ │ │ ├── SharedHomeworksDetailsPojo.kt
│ │ │ │ └── SharedHomeworksPojo.kt
│ │ │ └── schedules
│ │ │ │ ├── ReceivedMediatedSchedulesDetailsPojo.kt
│ │ │ │ ├── ReceivedMediatedSchedulesPojo.kt
│ │ │ │ ├── ReceivedMediatedSchedulesShortDetailsPojo.kt
│ │ │ │ ├── ReceivedMediatedSchedulesShortPojo.kt
│ │ │ │ ├── SentMediatedSchedulesDetailsPojo.kt
│ │ │ │ ├── SentMediatedSchedulesPojo.kt
│ │ │ │ ├── SentMediatedSchedulesShortDetailsPojo.kt
│ │ │ │ ├── SharedSchedulesDetailsPojo.kt
│ │ │ │ ├── SharedSchedulesPojo.kt
│ │ │ │ ├── SharedSchedulesShortDetailsPojo.kt
│ │ │ │ └── SharedSchedulesShortPojo.kt
│ │ │ ├── subjects
│ │ │ ├── MediatedSubjectPojo.kt
│ │ │ ├── SubjectDetailsPojo.kt
│ │ │ └── SubjectPojo.kt
│ │ │ ├── tasks
│ │ │ ├── HomeworkDetailsPojo.kt
│ │ │ ├── HomeworkPojo.kt
│ │ │ ├── MediatedHomeworkPojo.kt
│ │ │ ├── TodoNotificationsPojo.kt
│ │ │ └── TodoPojo.kt
│ │ │ └── users
│ │ │ ├── AppUserPojo.kt
│ │ │ ├── ContactInfoPojo.kt
│ │ │ ├── EmployeePojo.kt
│ │ │ ├── MediatedEmployeePojo.kt
│ │ │ ├── SocialNetworkPojo.kt
│ │ │ ├── SubscribeInfoPojo.kt
│ │ │ └── UserDevicePojo.kt
│ │ └── iosMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── remote
│ │ ├── datasources
│ │ └── message
│ │ │ └── MessagingServiceImpl.ios.kt
│ │ ├── di
│ │ └── CoreRemotePlatformModule.ios.kt
│ │ └── ktor
│ │ └── HttpEngineFactory.platform.ios.kt
└── ui
│ ├── build.gradle.kts
│ └── src
│ ├── androidMain
│ ├── AndroidManifest.xml
│ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── ui
│ │ ├── mappers
│ │ └── PlatformFileMapper.platform.android.kt
│ │ ├── theme
│ │ └── tokens
│ │ │ └── WindowSize.android.kt
│ │ └── views
│ │ └── NavigationBarColor.android.kt
│ ├── commonMain
│ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_additional_organization.xml
│ │ │ ├── ic_alert_circle.xml
│ │ │ ├── ic_alert_circle_outline.xml
│ │ │ ├── ic_birthday.xml
│ │ │ ├── ic_book_study.xml
│ │ │ ├── ic_calendar_today.xml
│ │ │ ├── ic_church.xml
│ │ │ ├── ic_class.xml
│ │ │ ├── ic_classes_column.xml
│ │ │ ├── ic_clock_outline.xml
│ │ │ ├── ic_description.xml
│ │ │ ├── ic_duration.xml
│ │ │ ├── ic_email.xml
│ │ │ ├── ic_employee.xml
│ │ │ ├── ic_gender.xml
│ │ │ ├── ic_lecture.xml
│ │ │ ├── ic_map_marker.xml
│ │ │ ├── ic_movements.xml
│ │ │ ├── ic_online_lesson.xml
│ │ │ ├── ic_organization.xml
│ │ │ ├── ic_organization_geo.xml
│ │ │ ├── ic_organization_geo_outline.xml
│ │ │ ├── ic_organization_remove_outline.xml
│ │ │ ├── ic_organization_type.xml
│ │ │ ├── ic_phone.xml
│ │ │ ├── ic_practice.xml
│ │ │ ├── ic_presentation.xml
│ │ │ ├── ic_priority_high.xml
│ │ │ ├── ic_profile.xml
│ │ │ ├── ic_profile_outline.xml
│ │ │ ├── ic_select_date.xml
│ │ │ ├── ic_seminar.xml
│ │ │ ├── ic_soc_network.xml
│ │ │ ├── ic_sorted_type.xml
│ │ │ ├── ic_study.xml
│ │ │ ├── ic_study_assistant.png
│ │ │ ├── ic_study_outline.xml
│ │ │ ├── ic_tasks.xml
│ │ │ ├── ic_tasks_circular.xml
│ │ │ ├── ic_tasks_outline.xml
│ │ │ ├── ic_university.xml
│ │ │ ├── ic_upload_circular.xml
│ │ │ ├── ic_web.xml
│ │ │ ├── ic_webinar.xml
│ │ │ ├── logo_discord.xml
│ │ │ ├── logo_facebook.xml
│ │ │ ├── logo_instagram.xml
│ │ │ ├── logo_telegram.xml
│ │ │ ├── logo_tiktok.xml
│ │ │ ├── logo_vk.xml
│ │ │ ├── logo_whatsapp.xml
│ │ │ ├── logo_x.xml
│ │ │ └── logo_youtube.xml
│ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── core
│ │ └── ui
│ │ ├── mappers
│ │ ├── ContactInfoTypeResMapper.kt
│ │ ├── DateTimeMapper.kt
│ │ ├── DensityMapper.kt
│ │ ├── EmployeePostStringMapper.kt
│ │ ├── EventTypeResMapper.kt
│ │ ├── GenderStringMapper.kt
│ │ ├── LanguageMapper.kt
│ │ ├── OrganizationTypeResMapper.kt
│ │ ├── PlatformFileMapper.platform.kt
│ │ ├── PriorityStringMapper.kt
│ │ ├── SocialNetworkTypeResMapper.kt
│ │ ├── ThemeTypeMapper.kt
│ │ └── WeekStringMapper.kt
│ │ ├── models
│ │ ├── ActionWithAvatar.kt
│ │ ├── StandardDuration.kt
│ │ └── ThemeUiType.kt
│ │ ├── theme
│ │ ├── StudyAssistantRes.kt
│ │ ├── StudyAssistantTheme.kt
│ │ ├── material
│ │ │ ├── ColorSchemes.kt
│ │ │ ├── Colors.kt
│ │ │ ├── Shapes.kt
│ │ │ └── Typography.kt
│ │ └── tokens
│ │ │ ├── StudyAssistantColors.kt
│ │ │ ├── StudyAssistantElevations.kt
│ │ │ ├── StudyAssistantIcons.kt
│ │ │ ├── StudyAssistantLanguage.kt
│ │ │ ├── StudyAssistantStrings.kt
│ │ │ └── WindowSize.kt
│ │ └── views
│ │ ├── AnimatePadding.kt
│ │ ├── Badges.kt
│ │ ├── CircularStep.kt
│ │ ├── DateTimeFormat.kt
│ │ ├── Dialog.kt
│ │ ├── ErrorSnackbar.kt
│ │ ├── ExpandedIcon.kt
│ │ ├── ExtendedIconButton.kt
│ │ ├── FreeOrPaidContent.kt
│ │ ├── GenderDropdownMenu.kt
│ │ ├── HomeworksCompleteBadge.kt
│ │ ├── LeftTimeProgress.kt
│ │ ├── NavigationBarColor.plarform.kt
│ │ ├── NavigationDrawer.kt
│ │ ├── Placeholders.kt
│ │ ├── SegmentedButtons.kt
│ │ ├── SwipeToDismissBackground.kt
│ │ ├── TabIndicatorOffset.kt
│ │ ├── TabItem.kt
│ │ ├── TabNavigationBar.kt
│ │ ├── TextFields.kt
│ │ ├── TimeFormatSelector.kt
│ │ ├── TopAppBar.kt
│ │ ├── TopAppBarAction.kt
│ │ ├── UserCodeView.kt
│ │ ├── dialog
│ │ ├── BaseCheckedDialog.kt
│ │ ├── BaseDatePickerDialog.kt
│ │ ├── BaseDurationPickerDialog.kt
│ │ ├── BaseSelectorDialog.kt
│ │ ├── BaseTimePickerDialog.kt
│ │ ├── BirthdayDatePicker.kt
│ │ ├── ContactInfoEditorDialog.kt
│ │ └── WarningAlertDialog.kt
│ │ ├── menu
│ │ ├── AvatarView.kt
│ │ ├── BaseMenuItems.kt
│ │ ├── CheckedDropdownMenu.kt
│ │ ├── ChooserDropdownMenu.kt
│ │ ├── OrganizationTypeDropdownMenu.kt
│ │ ├── RadioDropdownMenu.kt
│ │ └── TimeChooserDropdownItem.kt
│ │ └── sheet
│ │ ├── BaseSelectorBottomSheet.kt
│ │ ├── BottomSheetScaffold.kt
│ │ └── StickyBottomSheet.kt
│ └── iosMain
│ └── kotlin
│ └── ru
│ └── aleshin
│ └── studyassistant
│ └── core
│ └── ui
│ ├── mappers
│ └── PlatformFileMapper.platform.ios.kt
│ ├── theme
│ └── tokens
│ │ └── WindowSize.kt
│ └── views
│ └── NavigationBarColor.ios.kt
├── features
├── auth
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── auth
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── AuthFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── AuthFeatureStarter.kt
│ │ │ └── AuthScreen.kt
│ │ │ └── presentation
│ │ │ └── AuthRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_google.xml
│ │ │ ├── ic_mail_outline.xml
│ │ │ ├── ic_password_outline.xml
│ │ │ ├── ic_person_outline.xml
│ │ │ ├── ic_visibility.xml
│ │ │ ├── ic_visibility_off.xml
│ │ │ ├── il_forgot.xml
│ │ │ ├── il_forgot_dark.xml
│ │ │ ├── il_login.xml
│ │ │ ├── il_login_dark.xml
│ │ │ ├── il_register.xml
│ │ │ ├── il_register_dark.xml
│ │ │ ├── il_verification.xml
│ │ │ └── il_verification_dark.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── auth
│ │ └── impl
│ │ ├── di
│ │ ├── AuthFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── AuthFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── AuthEitherWrapper.kt
│ │ │ └── AuthErrorHandler.kt
│ │ ├── entites
│ │ │ ├── AuthFailures.kt
│ │ │ └── AuthResult.kt
│ │ └── interactors
│ │ │ ├── AppUserInteractor.kt
│ │ │ └── AuthInteractor.kt
│ │ ├── navigation
│ │ ├── AuthFeatureStarterImpl.kt
│ │ ├── AuthNavigatorManager.kt
│ │ └── AuthScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── CredentialsUiMapper.kt
│ │ ├── EmailValidErrorsMapper.kt
│ │ ├── FailureMapper.kt
│ │ ├── PasswordValidErrorsMapper.kt
│ │ └── UsernameValidErrorsMapper.kt
│ │ ├── models
│ │ ├── credentials
│ │ │ ├── ForgotCredentialsUi.kt
│ │ │ ├── LoginCredentialsUi.kt
│ │ │ └── RegisterCredentialsUi.kt
│ │ ├── user
│ │ │ ├── AppUserUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ └── validation
│ │ │ ├── EmailValidError.kt
│ │ │ ├── PasswordValidError.kt
│ │ │ └── UsernameValidError.kt
│ │ ├── theme
│ │ ├── AuthTheme.kt
│ │ ├── AuthThemeRes.kt
│ │ └── tokens
│ │ │ ├── AuthIcons.kt
│ │ │ └── AuthStrings.kt
│ │ ├── ui
│ │ ├── common
│ │ │ ├── AuthHeaderSection.kt
│ │ │ └── AuthTextFields.kt
│ │ ├── forgot
│ │ │ ├── ForgotContent.kt
│ │ │ ├── ForgotScreen.kt
│ │ │ ├── contract
│ │ │ │ └── ForgotContract.kt
│ │ │ ├── screenmodel
│ │ │ │ ├── ForgotEffectCommunicator.kt
│ │ │ │ ├── ForgotScreenModel.kt
│ │ │ │ ├── ForgotStateCommunicator.kt
│ │ │ │ └── ForgotWorkProcessor.kt
│ │ │ └── views
│ │ │ │ └── ForgotActionsSection.kt
│ │ ├── login
│ │ │ ├── LoginContent.kt
│ │ │ ├── LoginScreen.kt
│ │ │ ├── contract
│ │ │ │ └── LoginContract.kt
│ │ │ ├── screenmodel
│ │ │ │ ├── LoginEffectCommunicator.kt
│ │ │ │ ├── LoginScreenModel.kt
│ │ │ │ ├── LoginStateCommunicator.kt
│ │ │ │ └── LoginWorkProcessor.kt
│ │ │ └── views
│ │ │ │ ├── LoginActionsSection.kt
│ │ │ │ └── LoginInputSection.kt
│ │ ├── navigation
│ │ │ ├── NavScreenModel.kt
│ │ │ └── NavigationScreen.kt
│ │ ├── register
│ │ │ ├── RegisterContent.kt
│ │ │ ├── RegisterScreen.kt
│ │ │ ├── contract
│ │ │ │ └── RegisterContract.kt
│ │ │ ├── screenmodel
│ │ │ │ ├── RegisterEffectCommunicator.kt
│ │ │ │ ├── RegisterScreenModel.kt
│ │ │ │ ├── RegisterStateCommunicator.kt
│ │ │ │ └── RegisterWorkProcessor.kt
│ │ │ └── views
│ │ │ │ ├── RegisterActionsSection.kt
│ │ │ │ └── RegisterInputSection.kt
│ │ └── verification
│ │ │ ├── VerificationContent.kt
│ │ │ ├── VerificationScreen.kt
│ │ │ ├── contract
│ │ │ └── VerificationContract.kt
│ │ │ ├── screenmodel
│ │ │ ├── VerificationEffectCommunicator.kt
│ │ │ ├── VerificationScreenModel.kt
│ │ │ ├── VerificationStateCommunicator.kt
│ │ │ └── VerificationWorkProcessor.kt
│ │ │ └── views
│ │ │ └── VerificationTopBar.kt
│ │ └── validation
│ │ ├── EmailValidator.kt
│ │ ├── PasswordValidator.kt
│ │ └── UsernameValidator.kt
├── editor
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── editor
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── EditorFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── EditorFeatureStarter.kt
│ │ │ └── EditorScreen.kt
│ │ │ └── presentation
│ │ │ ├── DayOfNumberedWeekUi.kt
│ │ │ ├── EditorRootScreen.kt
│ │ │ └── WeekDayMapper.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_break.xml
│ │ │ ├── ic_circle_edit_outline.xml
│ │ │ ├── ic_clear_circular.xml
│ │ │ ├── ic_clock.xml
│ │ │ ├── ic_color.xml
│ │ │ ├── ic_employee_post.xml
│ │ │ ├── ic_notify.xml
│ │ │ ├── ic_number.xml
│ │ │ ├── ic_star_circle_outline.xml
│ │ │ ├── ic_subject_name.xml
│ │ │ └── ic_worktime.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── editor
│ │ └── impl
│ │ ├── di
│ │ ├── EditorFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── EditorFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── EditorEitherWrapper.kt
│ │ │ └── EditorErrorHandler.kt
│ │ ├── entities
│ │ │ ├── EditorFailures.kt
│ │ │ └── ShiftTimeError.kt
│ │ └── interactors
│ │ │ ├── AppUserInteractor.kt
│ │ │ ├── BaseClassInteractor.kt
│ │ │ ├── BaseScheduleInteractor.kt
│ │ │ ├── CalendarSettingsInteractor.kt
│ │ │ ├── CustomClassInteractor.kt
│ │ │ ├── CustomScheduleInteractor.kt
│ │ │ ├── EmployeeInteractor.kt
│ │ │ ├── HomeworkInteractor.kt
│ │ │ ├── LinkingClassInteractor.kt
│ │ │ ├── OrganizationInteractor.kt
│ │ │ ├── SubjectInteractor.kt
│ │ │ └── TodoInteractor.kt
│ │ ├── navigation
│ │ ├── EditorFeatureStarterImpl.kt
│ │ ├── EditorNavigatorManager.kt
│ │ └── EditorScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── CalendarSettingsUiMapper.kt
│ │ ├── ClassUiMapper.kt
│ │ ├── ContactInfoUiMapper.kt
│ │ ├── EmployeeUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── HomeworksUiMapper.kt
│ │ ├── OrganizationUiMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ ├── ScheduleUiMapper.kt
│ │ ├── SubjectUiMapper.kt
│ │ └── TodoUiMapper.kt
│ │ ├── models
│ │ ├── classes
│ │ │ ├── ClassUi.kt
│ │ │ ├── ClassesForLinked.kt
│ │ │ ├── EditClassUi.kt
│ │ │ └── FastEditDurations.kt
│ │ ├── orgnizations
│ │ │ ├── EditOrganizationUi.kt
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ ├── OrganizationUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── schedules
│ │ │ ├── BaseScheduleUi.kt
│ │ │ ├── BaseWeekScheduleUi.kt
│ │ │ ├── CustomScheduleUi.kt
│ │ │ ├── DateVersionUi.kt
│ │ │ ├── NumberOfWeekItem.kt
│ │ │ └── ScheduleUi.kt
│ │ ├── settings
│ │ │ ├── CalendarSettingsUi.kt
│ │ │ └── HolidaysUi.kt
│ │ ├── subjects
│ │ │ ├── EditSubjectUi.kt
│ │ │ └── SubjectUi.kt
│ │ ├── tasks
│ │ │ ├── EditHomeworkUi.kt
│ │ │ ├── EditTodoUi.kt
│ │ │ ├── HomeworkUi.kt
│ │ │ ├── TodoNotificationsUi.kt
│ │ │ └── TodoUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── EditEmployeeUi.kt
│ │ │ ├── EmployeeDetailsUi.kt
│ │ │ ├── EmployeeUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ ├── theme
│ │ ├── EditorTheme.kt
│ │ ├── EditorThemeRes.kt
│ │ └── tokens
│ │ │ ├── EditorIcons.kt
│ │ │ └── EditorStrings.kt
│ │ └── ui
│ │ ├── classes
│ │ ├── ClassContent.kt
│ │ ├── ClassScreen.kt
│ │ ├── contract
│ │ │ ├── ClassContract.kt
│ │ │ └── ClassDeps.kt
│ │ ├── screenmodel
│ │ │ ├── ClassEffectCommunicator.kt
│ │ │ ├── ClassScreenModel.kt
│ │ │ ├── ClassStateCommunicator.kt
│ │ │ └── ClassWorkProcessor.kt
│ │ └── views
│ │ │ ├── ClassTimeChooser.kt
│ │ │ ├── ClassTopBar.kt
│ │ │ ├── SubjectSelectorBottomSheet.kt
│ │ │ └── TImeInfoField.kt
│ │ ├── common
│ │ ├── AvatarSection.kt
│ │ ├── BirthdayInfoField.kt
│ │ ├── ContactInfoActionItems.kt
│ │ ├── EmailInfoFields.kt
│ │ ├── EventTypeSelectorBottomSheet.kt
│ │ ├── HideButton.kt
│ │ ├── LocationInfoField.kt
│ │ ├── LocationsInfoFields.kt
│ │ ├── NumberedDurationView.kt
│ │ ├── OrganizationInfoField.kt
│ │ ├── PhoneInfoFields.kt
│ │ ├── SubjectAndEventTypeInfoField.kt
│ │ ├── TaskPriorityInfoView.kt
│ │ ├── TeacherInfoField.kt
│ │ └── WebInfoFields.kt
│ │ ├── daily
│ │ ├── DailyScheduleContent.kt
│ │ ├── DailyScheduleScreen.kt
│ │ ├── contract
│ │ │ ├── DailyScheduleContract.kt
│ │ │ └── DailyScheduleDeps.kt
│ │ ├── screenmodel
│ │ │ ├── DailyScheduleEffectCommunicator.kt
│ │ │ ├── DailyScheduleScreenModel.kt
│ │ │ ├── DailyScheduleStateCommunicator.kt
│ │ │ └── DailyScheduleWorkProcessor.kt
│ │ └── views
│ │ │ ├── DailyScheduleBottomSheet.kt
│ │ │ ├── DailyScheduleTopBar.kt
│ │ │ ├── DetailsClassView.kt
│ │ │ ├── FastEditDialogs.kt
│ │ │ └── SwapClassesDropdownMenu.kt
│ │ ├── employee
│ │ ├── EmployeeContent.kt
│ │ ├── EmployeeScreen.kt
│ │ ├── contract
│ │ │ ├── EmployeeContract.kt
│ │ │ └── EmployeeDeps.kt
│ │ ├── screenmodel
│ │ │ ├── EmployeeEffectCommunicator.kt
│ │ │ ├── EmployeeScreenModel.kt
│ │ │ ├── EmployeeStateCommunicator.kt
│ │ │ └── EmployeeWorkProcessor.kt
│ │ └── views
│ │ │ ├── EmployeeAvatarSection.kt
│ │ │ ├── EmployeeNameInfoField.kt
│ │ │ ├── EmployeePostInfoField.kt
│ │ │ ├── EmployeeTopBar.kt
│ │ │ └── WorkTimeInfoField.kt
│ │ ├── homework
│ │ ├── HomeworkContent.kt
│ │ ├── HomeworkScreen.kt
│ │ ├── contarct
│ │ │ ├── HomeworkContract.kt
│ │ │ └── HomeworkDeps.kt
│ │ ├── screenmodel
│ │ │ ├── HomeworkEffectCommunicator.kt
│ │ │ ├── HomeworkScreenModel.kt
│ │ │ ├── HomeworkStateCommunicator.kt
│ │ │ └── HomeworkWorkProcessor.kt
│ │ └── views
│ │ │ ├── HomeworkBottomActions.kt
│ │ │ ├── HomeworkTasksFields.kt
│ │ │ ├── HomeworkTestInfoField.kt
│ │ │ ├── HomeworkTopBar.kt
│ │ │ └── LinkedClassInfoField.kt
│ │ ├── navigation
│ │ ├── NavigationScreen.kt
│ │ └── NavigationScreenModel.kt
│ │ ├── organization
│ │ ├── OrganizationContent.kt
│ │ ├── OrganizationScreen.kt
│ │ ├── contract
│ │ │ ├── OrganizationContract.kt
│ │ │ └── OrganizationDeps.kt
│ │ ├── screenmodel
│ │ │ ├── OrganizationEffectCommunicator.kt
│ │ │ ├── OrganizationScreenModel.kt
│ │ │ ├── OrganizationStateCommunicator.kt
│ │ │ └── OrganizationWorkProcessor.kt
│ │ └── views
│ │ │ ├── OrganizationNameInfoField.kt
│ │ │ ├── OrganizationStatusChooser.kt
│ │ │ ├── OrganizationTopBar.kt
│ │ │ └── OrganizationTypeInfoField.kt
│ │ ├── profile
│ │ ├── ProfileContent.kt
│ │ ├── ProfileScreen.kt
│ │ ├── contract
│ │ │ └── ProfileContract.kt
│ │ ├── screenmodel
│ │ │ ├── ProfileEffectCommunicator.kt
│ │ │ ├── ProfileScreenModel.kt
│ │ │ ├── ProfileStateCommunicator.kt
│ │ │ └── ProfileWorkProcessor.kt
│ │ └── views
│ │ │ ├── AppUserEmailInfoField.kt
│ │ │ ├── CityInfoField.kt
│ │ │ ├── DescriptionInfoField.kt
│ │ │ ├── GenderInfoField.kt
│ │ │ ├── ProfileTopBar.kt
│ │ │ ├── ProfileTopSheet.kt
│ │ │ ├── SocialNetworksInfoFields.kt
│ │ │ └── UsernameInfoField.kt
│ │ ├── schedule
│ │ ├── WeekScheduleContent.kt
│ │ ├── WeekScheduleScreen.kt
│ │ ├── contract
│ │ │ ├── WeekScheduleContract.kt
│ │ │ └── WeekScheduleDeps.kt
│ │ ├── screenmodel
│ │ │ ├── WeekScheduleEffectCommunicator.kt
│ │ │ ├── WeekScheduleScreenModel.kt
│ │ │ ├── WeekScheduleStateCommunicator.kt
│ │ │ └── WeekScheduleWorkProcessor.kt
│ │ └── views
│ │ │ ├── CommonShortClassView.kt
│ │ │ ├── ScheduleIntervalsDialog.kt
│ │ │ ├── ScheduleView.kt
│ │ │ ├── TimeDurationMenu.kt
│ │ │ ├── WeekScheduleBottomSheet.kt
│ │ │ └── WeekScheduleTopBar.kt
│ │ ├── subject
│ │ ├── SubjectContent.kt
│ │ ├── SubjectScreen.kt
│ │ ├── contract
│ │ │ ├── SubjectContract.kt
│ │ │ └── SubjectDeps.kt
│ │ ├── screeenmodel
│ │ │ ├── SubjectEffectCommunicator.kt
│ │ │ ├── SubjectScreenModel.kt
│ │ │ ├── SubjectStateCommunicator.kt
│ │ │ └── SubjectWorkProcessor.kt
│ │ └── views
│ │ │ ├── ColorInfoField.kt
│ │ │ ├── EventTypeInfoField.kt
│ │ │ ├── SubjectNameInfoField.kt
│ │ │ └── SubjectTopBar.kt
│ │ └── todo
│ │ ├── TodoContent.kt
│ │ ├── TodoScreen.kt
│ │ ├── contract
│ │ ├── TodoContract.kt
│ │ └── TodoDeps.kt
│ │ ├── screenmodel
│ │ ├── TodoEffectCommunicator.kt
│ │ ├── TodoScreenModel.kt
│ │ ├── TodoStateCommunicator.kt
│ │ └── TodoWorkProcessor.kt
│ │ └── views
│ │ ├── TodoBottomActions.kt
│ │ ├── TodoDeadlineInfoFields.kt
│ │ ├── TodoInfoField.kt
│ │ ├── TodoNotificationSelector.kt
│ │ └── TodoTopBar.kt
├── info
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── info
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── InfoFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── InfoFeatureStarter.kt
│ │ │ └── InfoScreen.kt
│ │ │ └── presentation
│ │ │ └── InfoRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ └── ic_star_circular.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── info
│ │ └── impl
│ │ ├── di
│ │ ├── InfoFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── InfoFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── InfoEitherWrapper.kt
│ │ │ └── InfoErrorHandler.kt
│ │ ├── entities
│ │ │ ├── InfoFailures.kt
│ │ │ └── OrganizationClassesInfo.kt
│ │ └── interactors
│ │ │ ├── ClassesInfoInteractor.kt
│ │ │ ├── EmployeesInteractor.kt
│ │ │ ├── OrganizationsInteractor.kt
│ │ │ └── SubjectsInteractor.kt
│ │ ├── navigation
│ │ ├── InfoFeatureStarterImpl.kt
│ │ ├── InfoNavigatorManager.kt
│ │ └── InfoScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── CalendarSettingsUiMapper.kt
│ │ ├── ContactInfoUiMapper.kt
│ │ ├── EmployeeUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── OrganizationUiMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ └── SubjectUiMapper.kt
│ │ ├── models
│ │ ├── orgnizations
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationClassesInfoUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ ├── OrganizationUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── settings
│ │ │ ├── CalendarSettingsUi.kt
│ │ │ └── HolidaysUi.kt
│ │ ├── subjects
│ │ │ ├── SubjectSortedType.kt
│ │ │ └── SubjectUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── EmployeeAndSubjectsUi.kt
│ │ │ ├── EmployeeUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ └── ui
│ │ ├── common
│ │ ├── EmployeeSubjectView.kt
│ │ └── OrganizationsPicker.kt
│ │ ├── employee
│ │ ├── EmployeeContent.kt
│ │ ├── EmployeeScreen.kt
│ │ ├── contract
│ │ │ ├── EmployeeContract.kt
│ │ │ └── EmployeeDeps.kt
│ │ ├── screenmodel
│ │ │ ├── EmployeeEffectCommunicator.kt
│ │ │ ├── EmployeeScreenModel.kt
│ │ │ ├── EmployeeStateCommunicator.kt
│ │ │ └── EmployeeWorkProcessor.kt
│ │ └── views
│ │ │ ├── DetailsEmployeeView.kt
│ │ │ ├── EmployeeFiltersView.kt
│ │ │ └── EmployeeSearchTopBar.kt
│ │ ├── navigation
│ │ ├── NavigationScreen.kt
│ │ └── NavigationScreenModel.kt
│ │ ├── organizations
│ │ ├── OrganizationsContent.kt
│ │ ├── OrganizationsScreen.kt
│ │ ├── contract
│ │ │ └── OrganizationsContract.kt
│ │ ├── screenmodel
│ │ │ ├── OrganizationsEffectCommunicator.kt
│ │ │ ├── OrganizationsScreenModel.kt
│ │ │ ├── OrganizationsStateCommunicator.kt
│ │ │ └── OrganizationsWorkProcessor.kt
│ │ └── views
│ │ │ ├── ContactInfoView.kt
│ │ │ ├── NoneOrganizationInfoView.kt
│ │ │ ├── OrganizationInfoView.kt
│ │ │ ├── OrganizationsBottomBar.kt
│ │ │ ├── OrganizationsTopBar.kt
│ │ │ ├── ShortEmployeeView.kt
│ │ │ ├── ShortSubjectView.kt
│ │ │ └── ShowAllView.kt
│ │ ├── subjects
│ │ ├── SubjectsContent.kt
│ │ ├── SubjectsScreen.kt
│ │ ├── contract
│ │ │ ├── SubjectsContract.kt
│ │ │ └── SubjectsDeps.kt
│ │ ├── screenmodel
│ │ │ ├── SubjectsEffectCommunicator.kt
│ │ │ ├── SubjectsScreenModel.kt
│ │ │ ├── SubjectsStateCommunicator.kt
│ │ │ └── SubjectsWorkProcessor.kt
│ │ └── views
│ │ │ ├── DetailsSubjectView.kt
│ │ │ ├── SubjectFiltersView.kt
│ │ │ └── SubjectsSearchTopBar.kt
│ │ └── theme
│ │ ├── InfoTheme.kt
│ │ ├── InfoThemeRes.kt
│ │ └── tokens
│ │ ├── InfoIcons.kt
│ │ └── InfoStrings.kt
├── navigation
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── navigation
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── NavigationFeatureApi.kt
│ │ │ ├── navigation
│ │ │ └── NavigationFeatureStarter.kt
│ │ │ └── presentation
│ │ │ └── TabsRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── navigation
│ │ └── impl
│ │ ├── di
│ │ ├── NavigationFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── NavigationFeatureDIHolder.kt
│ │ └── modules
│ │ │ └── PresentationModule.kt
│ │ ├── navigation
│ │ ├── NavigationFeatureStarterImpl.kt
│ │ └── TabScreenProvider.kt
│ │ └── ui
│ │ ├── TabsScreen.kt
│ │ ├── contract
│ │ └── TabsContract.kt
│ │ ├── screenmodel
│ │ ├── TabsEffectCommunicator.kt
│ │ ├── TabsScreenModel.kt
│ │ └── TabsStateCommunicator.kt
│ │ └── views
│ │ └── TabsBottomBar.kt
├── preview
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── preview
│ │ │ └── api
│ │ │ ├── api
│ │ │ └── PreviewFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── PreviewFeatureStarter.kt
│ │ │ └── PreviewScreen.kt
│ │ │ └── presentation
│ │ │ └── PreviewRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_textbox.xml
│ │ │ ├── il_analytics.xml
│ │ │ ├── il_analytics_dark.xml
│ │ │ ├── il_friends.xml
│ │ │ ├── il_friends_dark.xml
│ │ │ ├── il_organizations.xml
│ │ │ ├── il_organizations_dark.xml
│ │ │ ├── il_schedule.xml
│ │ │ ├── il_schedule_dark.xml
│ │ │ ├── il_study.xml
│ │ │ └── il_study_dark.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── preview
│ │ └── impl
│ │ ├── di
│ │ ├── PreviewFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── PreviewFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── PreviewEitherWrapper.kt
│ │ │ └── PreviewErrorHandler.kt
│ │ ├── entities
│ │ │ └── PreviewFailures.kt
│ │ └── interactors
│ │ │ ├── AppUserInteractor.kt
│ │ │ ├── CalendarSettingsInteractor.kt
│ │ │ └── OrganizationsInteractor.kt
│ │ ├── navigation
│ │ ├── PreviewFeatureStarterImpl.kt
│ │ ├── PreviewNavigatorManager.kt
│ │ └── PreviewScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── CalendarSettingsUiMapper.kt
│ │ ├── ContactInfoUiMapper.kt
│ │ ├── EmployeeUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── OrganizationUiMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ └── SubjectUiMapper.kt
│ │ ├── models
│ │ ├── organizations
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── settings
│ │ │ ├── CalendarSettingsUi.kt
│ │ │ └── HolidaysUi.kt
│ │ ├── subjects
│ │ │ └── SubjectUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── EmployeeUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ ├── theme
│ │ ├── PreviewTheme.kt
│ │ ├── PreviewThemeRes.kt
│ │ └── tokens
│ │ │ ├── PreviewIcons.kt
│ │ │ └── PreviewStrings.kt
│ │ └── ui
│ │ ├── intro
│ │ ├── IntroContent.kt
│ │ ├── IntroContentCompact.kt
│ │ ├── IntroScreen.kt
│ │ ├── contract
│ │ │ └── IntroContract.kt
│ │ ├── screenmodel
│ │ │ ├── IntroEffectCommunicator.kt
│ │ │ ├── IntroScreenModel.kt
│ │ │ └── IntroStateCommunicator.kt
│ │ └── views
│ │ │ ├── ActionSections.kt
│ │ │ └── IntroPage.kt
│ │ ├── navigation
│ │ ├── NavScreenModel.kt
│ │ └── NavigationScreen.kt
│ │ └── setup
│ │ ├── SetupContent.kt
│ │ ├── SetupScreen.kt
│ │ ├── contract
│ │ └── SetupContract.kt
│ │ ├── screenmodel
│ │ ├── SetupEffectCommunicator.kt
│ │ ├── SetupScreenModel.kt
│ │ ├── SetupStateCommunicator.kt
│ │ └── SetupWorkProcessor.kt
│ │ └── views
│ │ ├── CalendarPageInfo.kt
│ │ ├── NavigationPageButton.kt
│ │ ├── OrganizationPageInfo.kt
│ │ ├── ProfilePageInfo.kt
│ │ ├── SchedulePageInfo.kt
│ │ ├── SetupPage.kt
│ │ └── SetupTopBar.kt
├── profile
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── profile
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── ProfileFeatureApi.kt
│ │ │ ├── navigation
│ │ │ └── ProfileFeatureStarter.kt
│ │ │ └── presentation
│ │ │ └── ProfileRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_calendar.xml
│ │ │ ├── ic_edit.xml
│ │ │ ├── ic_email_alert.xml
│ │ │ ├── ic_friends.xml
│ │ │ ├── ic_notifications.xml
│ │ │ ├── ic_payment.xml
│ │ │ ├── ic_send_circle.xml
│ │ │ ├── ic_settings_common.xml
│ │ │ ├── ic_settings_privacy.xml
│ │ │ ├── ic_sign_out.xml
│ │ │ └── ic_table.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── profile
│ │ └── impl
│ │ ├── di
│ │ ├── ProfileFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── ProfileFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── ProfileEitherWrapper.kt
│ │ │ └── ProfileErrorHandler.kt
│ │ ├── entities
│ │ │ ├── ProfileFailures.kt
│ │ │ └── ShareSchedulesSendData.kt
│ │ └── interactors
│ │ │ ├── AuthInteractor.kt
│ │ │ ├── FriendRequestsInteractor.kt
│ │ │ ├── OrganizationsInteractor.kt
│ │ │ ├── ReminderInteractor.kt
│ │ │ ├── ShareSchedulesInteractor.kt
│ │ │ └── UserInteractor.kt
│ │ ├── navigation
│ │ ├── ProfileFeatureStarterImpl.kt
│ │ └── ProfileScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── FriendRequestsUiMapper.kt
│ │ ├── OrganizationMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ └── SharedSchedulesUiMapper.kt
│ │ ├── models
│ │ ├── organization
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── shared
│ │ │ ├── ReceivedMediatedSchedulesShortUi.kt
│ │ │ ├── SentMediatedSchedulesUi.kt
│ │ │ ├── ShareSchedulesSendDataUi.kt
│ │ │ └── SharedSchedulesShortUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── FriendRequestsUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ ├── theme
│ │ ├── ProfileTheme.kt
│ │ ├── ProfileThemeRes.kt
│ │ └── tokens
│ │ │ ├── ProfileIcons.kt
│ │ │ └── ProfileStrings.kt
│ │ └── ui
│ │ ├── ProfileContent.kt
│ │ ├── ProfileScreen.kt
│ │ ├── contract
│ │ └── ProfileContract.kt
│ │ ├── screenmodel
│ │ ├── ProfileEffectCommunicator.kt
│ │ ├── ProfileScreenModel.kt
│ │ ├── ProfileStateCommunicator.kt
│ │ └── ProfileWorkProcessor.kt
│ │ └── views
│ │ ├── ProfileActionsSection.kt
│ │ ├── ProfileInfoSection.kt
│ │ ├── ProfileTopBar.kt
│ │ ├── ScheduleSenderBottomSheet.kt
│ │ └── SharedSchedulesBottomSheet.kt
├── schedule
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── schedule
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── ScheduleFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── ScheduleFeatureStarter.kt
│ │ │ └── ScheduleScreen.kt
│ │ │ └── presentation
│ │ │ └── ScheduleRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_format_columns.xml
│ │ │ ├── ic_format_grid.xml
│ │ │ ├── ic_list_edit.xml
│ │ │ ├── ic_open_table.xml
│ │ │ ├── ic_table_edit.xml
│ │ │ ├── ic_view_dashboard.xml
│ │ │ ├── il_free_time.xml
│ │ │ └── il_free_time_dark.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── schedule
│ │ └── impl
│ │ ├── di
│ │ ├── ScheduleFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── ScheduleFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── ScheduleEitherWrapper.kt
│ │ │ └── ScheduleErrorHandler.kt
│ │ ├── entities
│ │ │ └── ScheduleFailures.kt
│ │ └── interactors
│ │ │ ├── AnalysisInteractor.kt
│ │ │ ├── HomeworkInteractor.kt
│ │ │ ├── OrganizationsInteractor.kt
│ │ │ ├── ScheduleInteractor.kt
│ │ │ └── ShareSchedulesInteractor.kt
│ │ ├── navigation
│ │ ├── ScheduleFeatureStarterImpl.kt
│ │ ├── ScheduleNavigatorManager.kt
│ │ └── ScheduleScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AnalysisUiMapper.kt
│ │ ├── AppUserUiMapper.kt
│ │ ├── CalendarSettingsUiMapper.kt
│ │ ├── ClassUiMapper.kt
│ │ ├── ContactInfoUiMapper.kt
│ │ ├── EmployeeUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── HomeworkUiMapper.kt
│ │ ├── OrganizationUiMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ ├── ScheduleUiMapper.kt
│ │ ├── ShareSchedulesMapper.kt
│ │ └── SubjectUiMapper.kt
│ │ ├── models
│ │ ├── analysis
│ │ │ └── DailyAnalysisUi.kt
│ │ ├── classes
│ │ │ ├── ActiveClassUi.kt
│ │ │ ├── ClassDetailsUi.kt
│ │ │ ├── ClassUi.kt
│ │ │ └── MediatedClassUi.kt
│ │ ├── homework
│ │ │ ├── HomeworkDetailsUi.kt
│ │ │ └── HomeworkTaskComponentUi.kt
│ │ ├── organization
│ │ │ ├── MediatedOrganizationUi.kt
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ ├── OrganizationUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── schedule
│ │ │ ├── BaseScheduleDetailsUi.kt
│ │ │ ├── BaseScheduleUi.kt
│ │ │ ├── CustomScheduleDetailsUi.kt
│ │ │ ├── DateVersionUi.kt
│ │ │ ├── MediatedBaseScheduleUi.kt
│ │ │ ├── NumberOfWeekItem.kt
│ │ │ ├── ScheduleDetailsUi.kt
│ │ │ └── WeekScheduleDetailsUi.kt
│ │ ├── settings
│ │ │ ├── CalendarSettingsUi.kt
│ │ │ └── HolidaysUi.kt
│ │ ├── share
│ │ │ ├── OrganizationLinkData.kt
│ │ │ └── ReceivedMediatedSchedulesUi.kt
│ │ ├── subjects
│ │ │ ├── MediatedSubjectUi.kt
│ │ │ └── SubjectUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── EmployeeUi.kt
│ │ │ ├── MediatedEmployeeUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ ├── theme
│ │ ├── ScheduleTheme.kt
│ │ ├── ScheduleThemeRes.kt
│ │ └── tokens
│ │ │ ├── ScheduleIcons.kt
│ │ │ └── ScheduleStrings.kt
│ │ └── ui
│ │ ├── common
│ │ ├── ClassBottomSheet.kt
│ │ ├── CommonShortClassView.kt
│ │ ├── SheetClassView.kt
│ │ └── SheetHomeworkView.kt
│ │ ├── details
│ │ ├── DetailsContent.kt
│ │ ├── DetailsScreen.kt
│ │ ├── contract
│ │ │ └── DetailsContract.kt
│ │ ├── screenmodel
│ │ │ ├── DetailsEffectCommunicator.kt
│ │ │ ├── DetailsScreenModel.kt
│ │ │ ├── DetailsStateCommunicator.kt
│ │ │ └── DetailsWorkProcessor.kt
│ │ └── views
│ │ │ ├── CommonScheduleView.kt
│ │ │ ├── DetailsBottomBar.kt
│ │ │ └── DetailsTopBar.kt
│ │ ├── navigation
│ │ ├── NavigationScreen.kt
│ │ └── NavigationScreenModel.kt
│ │ ├── overview
│ │ ├── OverviewContent.kt
│ │ ├── OverviewScreen.kt
│ │ ├── contract
│ │ │ └── OverviewContract.kt
│ │ ├── screenmodel
│ │ │ ├── OverviewEffectCommunicator.kt
│ │ │ ├── OverviewScreenModel.kt
│ │ │ ├── OverviewStateCommunicator.kt
│ │ │ └── OverviewWorkProcessor.kt
│ │ └── views
│ │ │ ├── DetailsClassBadges.kt
│ │ │ ├── DetailsClassView.kt
│ │ │ ├── OverviewBottomBar.kt
│ │ │ ├── OverviewTopBar.kt
│ │ │ └── OverviewTopSheet.kt
│ │ └── share
│ │ ├── ShareContent.kt
│ │ ├── ShareScreen.kt
│ │ ├── contract
│ │ ├── ShareContract.kt
│ │ └── ShareDeps.kt
│ │ ├── screenmodel
│ │ ├── ShareEffectCommunicator.kt
│ │ ├── ShareScreenModel.kt
│ │ ├── ShareStateCommunicator.kt
│ │ └── ShareWorkProcessor.kt
│ │ └── views
│ │ ├── LinkedEmployeesView.kt
│ │ ├── LinkedSubjectsView.kt
│ │ ├── OrganizationDataLinker.kt
│ │ ├── ScheduleWeekChip.kt
│ │ ├── SenderUserView.kt
│ │ ├── ShareBottomActionBar.kt
│ │ ├── ShareTopBar.kt
│ │ ├── SharedOrganizationView.kt
│ │ └── SharedScheduleView.kt
├── settings
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── settings
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── SettingsFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── SettingsFeatureStarter.kt
│ │ │ └── SettingsScreen.kt
│ │ │ └── presentation
│ │ │ └── SettingsRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_calendar_week.xml
│ │ │ ├── ic_language.xml
│ │ │ └── ic_palette.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── settings
│ │ └── impl
│ │ ├── di
│ │ ├── SettingsFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── SettingsFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── SettingsEitherWrapper.kt
│ │ │ └── SettingsErrorHandler.kt
│ │ ├── entities
│ │ │ └── SettingsFailures.kt
│ │ └── interactors
│ │ │ ├── AppUserInteractor.kt
│ │ │ ├── CalendarSettingsInteractor.kt
│ │ │ ├── GeneralSettingsInteractor.kt
│ │ │ ├── NotificationSettingsInteractor.kt
│ │ │ ├── OrganizationInteractor.kt
│ │ │ └── SyncInteractor.kt
│ │ ├── navigation
│ │ ├── SettingsFeatureStarterImpl.kt
│ │ ├── SettingsNavigatorManager.kt
│ │ └── SettingsScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── CalendarSettingsUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── GeneralSettingsUiMapper.kt
│ │ ├── NotificationSettingsUiMapper.kt
│ │ └── OrganizationsUiMapper.kt
│ │ ├── models
│ │ ├── organizations
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ └── settings
│ │ │ ├── CalendarSettingsUi.kt
│ │ │ ├── EditHolidaysUi.kt
│ │ │ ├── GeneralSettingsUi.kt
│ │ │ ├── HolidaysUi.kt
│ │ │ └── NotificationSettingsUi.kt
│ │ ├── theme
│ │ ├── SettingsTheme.kt
│ │ ├── SettingsThemeRes.kt
│ │ └── tokens
│ │ │ ├── SettingsIcons.kt
│ │ │ └── SettingsStrings.kt
│ │ └── ui
│ │ ├── calendar
│ │ ├── CalendarContent.kt
│ │ ├── CalendarScreen.kt
│ │ ├── contract
│ │ │ └── CalendarContract.kt
│ │ ├── screenmodel
│ │ │ ├── CalendarEffectCommunicator.kt
│ │ │ ├── CalendarScreenModel.kt
│ │ │ ├── CalendarStateCommunicator.kt
│ │ │ └── GeneralWorkProcessor.kt
│ │ └── views
│ │ │ └── HolidaysView.kt
│ │ ├── common
│ │ ├── SettingsSelectorView.kt
│ │ └── SettingsSwitchView.kt
│ │ ├── general
│ │ ├── GeneralContent.kt
│ │ ├── GeneralScreen.kt
│ │ ├── contract
│ │ │ └── GeneralContract.kt
│ │ └── screenmodel
│ │ │ ├── GeneralEffectCommunicator.kt
│ │ │ ├── GeneralScreenModel.kt
│ │ │ ├── GeneralStateCommunicator.kt
│ │ │ └── GeneralWorkProcessor.kt
│ │ ├── navigation
│ │ ├── TabNavigationScreen.kt
│ │ ├── contract
│ │ │ └── TabNavigationContract.kt
│ │ ├── screenmodel
│ │ │ ├── TabNavigationEffectCommunicator.kt
│ │ │ ├── TabNavigationScreenModel.kt
│ │ │ └── TabNavigationStateCommunicator.kt
│ │ └── views
│ │ │ ├── TabNavigationRow.kt
│ │ │ └── TabNavigationTopBar.kt
│ │ ├── notification
│ │ ├── NotificationContent.kt
│ │ ├── NotificationScreen.kt
│ │ ├── contract
│ │ │ └── NotificationContract.kt
│ │ ├── screenmodel
│ │ │ ├── NotificationEffectCommunicator.kt
│ │ │ ├── NotificationScreenModel.kt
│ │ │ ├── NotificationStateCommunicator.kt
│ │ │ └── NotificationWorkProcessor.kt
│ │ └── views
│ │ │ ├── ExceptionOrganizationsChip.kt
│ │ │ ├── TimeChips.kt
│ │ │ └── WorkloadRateChip.kt
│ │ └── subscription
│ │ ├── SubscriptionContent.kt
│ │ ├── SubscriptionScreen.kt
│ │ ├── contract
│ │ └── SubscriptionContract.kt
│ │ ├── screenmodel
│ │ ├── SubscriptionEffectCommunicator.kt
│ │ ├── SubscriptionScreenModel.kt
│ │ ├── SubscriptionStateCommunicator.kt
│ │ └── SubscriptionWorkProcessor.kt
│ │ └── views
│ │ └── SyncRemoteDataView.kt
├── tasks
│ ├── api
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── AndroidManifest.xml
│ │ │ └── commonMain
│ │ │ └── kotlin
│ │ │ └── ru
│ │ │ └── aleshin
│ │ │ └── studyassistant
│ │ │ └── tasks
│ │ │ └── api
│ │ │ ├── di
│ │ │ └── TasksFeatureApi.kt
│ │ │ ├── navigation
│ │ │ ├── TasksFeatureStarter.kt
│ │ │ └── TasksScreen.kt
│ │ │ └── presentation
│ │ │ └── TasksRootScreen.kt
│ └── impl
│ │ ├── build.gradle.kts
│ │ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ ├── composeResources
│ │ └── drawable
│ │ │ ├── ic_account_file_outline.xml
│ │ │ ├── ic_alert_triangular.xml
│ │ │ ├── ic_calendar_clock_outline.xml
│ │ │ ├── ic_timeline_in_progress.xml
│ │ │ ├── ic_timer.xml
│ │ │ ├── ic_view_array_outline.xml
│ │ │ └── ic_view_day_outline.xml
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── tasks
│ │ └── impl
│ │ ├── di
│ │ ├── TasksFeatureDependencies.kt
│ │ ├── holder
│ │ │ └── TasksFeatureDIHolder.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── NavigationModule.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── TasksEitherWrapper.kt
│ │ │ └── TasksErrorHandler.kt
│ │ ├── entities
│ │ │ ├── HomeworkErrors.kt
│ │ │ ├── TasksFailures.kt
│ │ │ └── TodoErrors.kt
│ │ └── interactors
│ │ │ ├── GoalsInteractor.kt
│ │ │ ├── HomeworksInteractor.kt
│ │ │ ├── OrganizationInteractor.kt
│ │ │ ├── ScheduleInteractor.kt
│ │ │ ├── ShareHomeworksInteractor.kt
│ │ │ ├── SubjectsInteractor.kt
│ │ │ ├── TodoInteractor.kt
│ │ │ └── UsersInteractor.kt
│ │ ├── navigation
│ │ ├── TasksFeatureStarterImpl.kt
│ │ ├── TasksNavigatorManager.kt
│ │ └── TasksScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── AppUserUiMapper.kt
│ │ ├── ClassUiMapper.kt
│ │ ├── ContactInfoUiMapper.kt
│ │ ├── EmployeeUiMapper.kt
│ │ ├── FailuresMapper.kt
│ │ ├── GoalUiMapper.kt
│ │ ├── HomeworkUiMapper.kt
│ │ ├── OrganizationUiMapper.kt
│ │ ├── ScheduleTimeIntervalsUiMapper.kt
│ │ ├── ScheduleUiMapper.kt
│ │ ├── SharedHomeworksUiMapper.kt
│ │ ├── SubjectUiMapper.kt
│ │ └── TodoUiMapper.kt
│ │ ├── models
│ │ ├── goals
│ │ │ ├── DailyGoalsProgressUi.kt
│ │ │ ├── GoalDetailsUi.kt
│ │ │ └── GoalTimeUi.kt
│ │ ├── organization
│ │ │ ├── NumberedDurationUi.kt
│ │ │ ├── OrganizationShortUi.kt
│ │ │ └── ScheduleTimeIntervalsUi.kt
│ │ ├── schedules
│ │ │ ├── BaseScheduleUi.kt
│ │ │ ├── ClassUi.kt
│ │ │ ├── CustomScheduleUi.kt
│ │ │ ├── DateVersionUi.kt
│ │ │ ├── NumberedClassUi.kt
│ │ │ └── ScheduleUi.kt
│ │ ├── share
│ │ │ ├── ReceivedMediatedHomeworksDetailsUi.kt
│ │ │ ├── ReceivedMediatedHomeworksUi.kt
│ │ │ ├── SentMediatedHomeworksDetailsUi.kt
│ │ │ ├── SentMediatedHomeworksUi.kt
│ │ │ ├── SharedHomeworksDetailsUi.kt
│ │ │ └── SharedHomeworksUi.kt
│ │ ├── subjects
│ │ │ └── SubjectUi.kt
│ │ ├── tasks
│ │ │ ├── DailyHomeworksUi.kt
│ │ │ ├── HomeworkDetailsUi.kt
│ │ │ ├── HomeworkErrorsUi.kt
│ │ │ ├── HomeworkScopeUi.kt
│ │ │ ├── HomeworkTaskComponentUi.kt
│ │ │ ├── HomeworkUi.kt
│ │ │ ├── MediatedHomeworkLinkData.kt
│ │ │ ├── MediatedHomeworkUi.kt
│ │ │ ├── TasksAnalysis.kt
│ │ │ ├── TodoDetailsUi.kt
│ │ │ ├── TodoErrorsUi.kt
│ │ │ └── TodoNotificationsUi.kt
│ │ └── users
│ │ │ ├── AppUserUi.kt
│ │ │ ├── ContactInfoUi.kt
│ │ │ ├── EmployeeUi.kt
│ │ │ ├── SocialNetworkUi.kt
│ │ │ ├── SubscribeInfoUi.kt
│ │ │ └── UserDeviceUi.kt
│ │ ├── theme
│ │ ├── TasksTheme.kt
│ │ ├── TasksThemeRes.kt
│ │ └── tokens
│ │ │ ├── TasksIcons.kt
│ │ │ └── TasksStrings.kt
│ │ └── ui
│ │ ├── common
│ │ ├── HomeworkTaskView.kt
│ │ └── TodoViewItem.kt
│ │ ├── homeworks
│ │ ├── HomeworksContent.kt
│ │ ├── HomeworksScreen.kt
│ │ ├── contract
│ │ │ ├── HomeworksContract.kt
│ │ │ └── HomeworksDeps.kt
│ │ ├── screenmodel
│ │ │ ├── HomeworksEffectCommunicator.kt
│ │ │ ├── HomeworksScreenModel.kt
│ │ │ ├── HomeworksStateCommunicator.kt
│ │ │ └── HomeworksWorkProcessor.kt
│ │ └── views
│ │ │ ├── HomeworkDetailsViewOld.kt
│ │ │ ├── HomeworksDetailsView.kt
│ │ │ ├── HomeworksTopBar.kt
│ │ │ └── HomeworksTopSheet.kt
│ │ ├── navigation
│ │ ├── NavigationScreen.kt
│ │ └── NavigationScreenModel.kt
│ │ ├── overview
│ │ ├── OverviewContent.kt
│ │ ├── OverviewScreen.kt
│ │ ├── contract
│ │ │ └── OverviewContract.kt
│ │ ├── screenmodel
│ │ │ ├── OverviewEffectCommunicator.kt
│ │ │ ├── OverviewScreenModel.kt
│ │ │ ├── OverviewStateCommunicator.kt
│ │ │ └── OverviewWorkProcessor.kt
│ │ └── views
│ │ │ ├── AllHomeworksExecutionAnalysisView.kt
│ │ │ ├── DailyGoalsView.kt
│ │ │ ├── DailyHomeworksView.kt
│ │ │ ├── GoalView.kt
│ │ │ ├── HomeworkTasksChart.kt
│ │ │ ├── HomeworksExecutionAnalysisView.kt
│ │ │ ├── HomeworksOverview.kt
│ │ │ ├── OverviewTopBar.kt
│ │ │ ├── ScopeOfHomeworksView.kt
│ │ │ ├── ShareHomeworksBottomSheet.kt
│ │ │ ├── ShareHomeworksView.kt
│ │ │ ├── SharedHomeworksStatusView.kt
│ │ │ ├── TaskErrorsBottomSheet.kt
│ │ │ └── TasksProgressView.kt
│ │ ├── share
│ │ ├── ShareContent.kt
│ │ ├── ShareScreen.kt
│ │ ├── contract
│ │ │ └── ShareContract.kt
│ │ ├── screenmodel
│ │ │ ├── ShareEffectCommunicator.kt
│ │ │ ├── ShareScreenModel.kt
│ │ │ ├── ShareStateCommunicator.kt
│ │ │ └── ShareWorkProcessor.kt
│ │ └── views
│ │ │ ├── LinkDataSelectorDialogs.kt
│ │ │ ├── MediatedHomeworksLinkerBottomSheet.kt
│ │ │ ├── ReceivedSharedHomeworksView.kt
│ │ │ ├── SentSharedHomeworksView.kt
│ │ │ └── ShareTopBar.kt
│ │ └── todos
│ │ ├── TodoContent.kt
│ │ ├── TodoScreen.kt
│ │ ├── contract
│ │ └── TodoContract.kt
│ │ ├── screenmodel
│ │ ├── TodoEffectCommunicator.kt
│ │ ├── TodoScreenModel.kt
│ │ ├── TodoStateCommunicator.kt
│ │ └── TodoWorkProcessor.kt
│ │ └── views
│ │ ├── TodoTopBar.kt
│ │ └── TodoTopSheet.kt
└── users
│ ├── api
│ ├── build.gradle.kts
│ └── src
│ │ ├── androidMain
│ │ └── AndroidManifest.xml
│ │ └── commonMain
│ │ └── kotlin
│ │ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ └── users
│ │ └── api
│ │ ├── di
│ │ └── UsersFeatureApi.kt
│ │ ├── navigation
│ │ ├── UsersFeatureStarter.kt
│ │ └── UsersScreen.kt
│ │ └── presentation
│ │ └── UsersRootScreen.kt
│ └── impl
│ ├── build.gradle.kts
│ └── src
│ ├── androidMain
│ └── AndroidManifest.xml
│ └── commonMain
│ └── kotlin
│ └── ru
│ └── aleshin
│ └── studyassistant
│ └── users
│ └── impl
│ ├── di
│ ├── UsersFeatureDependencies.kt
│ ├── holder
│ │ └── UsersFeatureDIHolder.kt
│ └── modules
│ │ ├── DomainModule.kt
│ │ ├── NavigationModule.kt
│ │ └── PresentationModule.kt
│ ├── domain
│ ├── common
│ │ ├── UsersEitherWrapper.kt
│ │ └── UsersErrorHandler.kt
│ ├── entities
│ │ └── UsersFailures.kt
│ └── interactors
│ │ ├── EmployeeInteractor.kt
│ │ ├── FriendRequestsInteractor.kt
│ │ └── UsersInteractor.kt
│ ├── navigation
│ ├── UsersFeatureStarterImpl.kt
│ ├── UsersNavigatorManager.kt
│ └── UsersScreenProvider.kt
│ └── presentation
│ ├── mappers
│ ├── AppUserUiMapper.kt
│ ├── ContactInfoUiMapper.kt
│ ├── EmployeeUiMapper.kt
│ ├── FailuresMapper.kt
│ ├── FriendRequestsUiMapper.kt
│ └── SubjectUiMapper.kt
│ ├── models
│ ├── AppUserUi.kt
│ ├── ContactInfoUi.kt
│ ├── EmployeeDetailsUi.kt
│ ├── EmployeeUi.kt
│ ├── FriendRequestsDetailsUi.kt
│ ├── SocialNetworkUi.kt
│ ├── SubjectUi.kt
│ ├── SubscribeInfoUi.kt
│ └── UserDeviceUi.kt
│ ├── theme
│ ├── UsersTheme.kt
│ ├── UsersThemeRes.kt
│ └── tokens
│ │ ├── UsersIcons.kt
│ │ └── UsersStrings.kt
│ └── ui
│ ├── common
│ ├── NoneUserRequestsView.kt
│ └── UserView.kt
│ ├── employee
│ ├── EmployeeProfileContent.kt
│ ├── EmployeeProfileScreen.kt
│ ├── contract
│ │ ├── EmployeeProfileContract.kt
│ │ └── EmployeeProfileDeps.kt
│ ├── screenmodel
│ │ ├── EmployeeProfileEffectCommunicator.kt
│ │ ├── EmployeeProfileScreenModel.kt
│ │ ├── EmployeeProfileStateCommunicator.kt
│ │ └── EmployeeProfileWorkProcessor.kt
│ └── views
│ │ ├── EmployeeContactInfoView.kt
│ │ ├── EmployeeProfileTopBar.kt
│ │ ├── EmployeeProfileTopSheet.kt
│ │ └── EmployeeSubjectView.kt
│ ├── friends
│ ├── FriendsContent.kt
│ ├── FriendsScreen.kt
│ ├── contract
│ │ └── FriendsContract.kt
│ ├── screenmodel
│ │ ├── FriendsEffectCommunicator.kt
│ │ ├── FriendsScreenModel.kt
│ │ ├── FriendsStateCommunicator.kt
│ │ └── FriendsWorkProcessor.kt
│ └── views
│ │ ├── FriendDropdownMenu.kt
│ │ ├── FriendsSearchTopBar.kt
│ │ └── RequestsTab.kt
│ ├── navigation
│ ├── NavigationScreen.kt
│ └── NavigationScreenModel.kt
│ ├── requests
│ ├── RequestsContent.kt
│ ├── RequestsScreen.kt
│ ├── contract
│ │ └── RequestsContract.kt
│ ├── screenmodel
│ │ ├── RequestsEffectCommunicator.kt
│ │ ├── RequestsScreenModel.kt
│ │ ├── RequestsStateCommunicator.kt
│ │ └── RequestsWorkProcessor.kt
│ └── views
│ │ ├── RequestsTabsRow.kt
│ │ └── RequestsTopBar.kt
│ └── user
│ ├── UserProfileContent.kt
│ ├── UserProfileScreen.kt
│ ├── contract
│ ├── UserProfileContract.kt
│ └── UserProfileDeps.kt
│ ├── screenmodel
│ ├── UserProfileEffectCommunicator.kt
│ ├── UserProfileScreenModel.kt
│ ├── UserProfileStateCommunicator.kt
│ └── UserProfileWorkProcessor.kt
│ └── views
│ ├── UserProfileTopBar.kt
│ └── UserProfileTopSheet.kt
└── src
├── androidMain
├── AndroidManifest.xml
└── kotlin
│ └── ru
│ └── aleshin
│ └── studyassistant
│ ├── di
│ ├── PlatformConfiguration.android.kt
│ └── modules
│ │ └── PlatformModule.android.kt
│ └── presentation
│ ├── services
│ └── RemoteMessageHandlerImpl.kt
│ └── ui
│ └── AppScreen.kt
├── commonMain
├── kotlin
│ └── ru
│ │ └── aleshin
│ │ └── studyassistant
│ │ ├── PlatformSDK.kt
│ │ ├── di
│ │ ├── PlatformConfiguration.platform.kt
│ │ ├── PlatformGoogleAuthTokenProvider.kt
│ │ └── modules
│ │ │ ├── DomainModule.kt
│ │ │ ├── FeatureModule.kt
│ │ │ ├── PlatformModule.platform.kt
│ │ │ └── PresentationModule.kt
│ │ ├── domain
│ │ ├── common
│ │ │ ├── MainEitherWrapper.kt
│ │ │ └── MainErrorHandler.kt
│ │ ├── entities
│ │ │ └── MainFailures.kt
│ │ └── interactors
│ │ │ ├── AppUserInteractor.kt
│ │ │ ├── GeneralSettingsInteractor.kt
│ │ │ └── ReminderInteractor.kt
│ │ ├── navigation
│ │ └── GlobalScreenProvider.kt
│ │ └── presentation
│ │ ├── mappers
│ │ ├── FailuresMapper.kt
│ │ └── GeneralSettingsUiMapper.kt
│ │ ├── models
│ │ └── GeneralSettingsUi.kt
│ │ └── ui
│ │ ├── main
│ │ ├── MainScreen.kt
│ │ ├── contract
│ │ │ └── MainContract.kt
│ │ └── screenmodel
│ │ │ ├── MainEffectCommunicator.kt
│ │ │ ├── MainScreenModel.kt
│ │ │ ├── MainStateCommunicator.kt
│ │ │ └── MainWorkProcessor.kt
│ │ └── splash
│ │ ├── SplashContent.kt
│ │ └── SplashScreen.kt
└── resources
│ └── drawable
│ ├── ic_account_file_outline.xml
│ ├── ic_additional_organization.xml
│ ├── ic_alert_circle.xml
│ ├── ic_alert_circle_outline.xml
│ ├── ic_alert_triangular.xml
│ ├── ic_birthday.xml
│ ├── ic_book_study.xml
│ ├── ic_break.xml
│ ├── ic_calendar.xml
│ ├── ic_calendar_clock_outline.xml
│ ├── ic_calendar_today.xml
│ ├── ic_calendar_week.xml
│ ├── ic_church.xml
│ ├── ic_circle_edit_outline.xml
│ ├── ic_class.xml
│ ├── ic_classes_column.xml
│ ├── ic_clear_circular.xml
│ ├── ic_clock.xml
│ ├── ic_clock_outline.xml
│ ├── ic_color.xml
│ ├── ic_description.xml
│ ├── ic_duration.xml
│ ├── ic_edit.xml
│ ├── ic_email.xml
│ ├── ic_email_alert.xml
│ ├── ic_employee.xml
│ ├── ic_employee_post.xml
│ ├── ic_format_columns.xml
│ ├── ic_format_grid.xml
│ ├── ic_friends.xml
│ ├── ic_gender.xml
│ ├── ic_google.xml
│ ├── ic_language.xml
│ ├── ic_lecture.xml
│ ├── ic_list_edit.xml
│ ├── ic_mail_outline.xml
│ ├── ic_map_marker.xml
│ ├── ic_movements.xml
│ ├── ic_notifications.xml
│ ├── ic_notify.xml
│ ├── ic_number.xml
│ ├── ic_online_lesson.xml
│ ├── ic_open_table.xml
│ ├── ic_organization.xml
│ ├── ic_organization_geo.xml
│ ├── ic_organization_geo_outline.xml
│ ├── ic_organization_remove_outline.xml
│ ├── ic_organization_type.xml
│ ├── ic_palette.xml
│ ├── ic_password_outline.xml
│ ├── ic_payment.xml
│ ├── ic_person_outline.xml
│ ├── ic_phone.xml
│ ├── ic_practice.xml
│ ├── ic_presentation.xml
│ ├── ic_priority_high.xml
│ ├── ic_profile.xml
│ ├── ic_profile_outline.xml
│ ├── ic_select_date.xml
│ ├── ic_seminar.xml
│ ├── ic_send_circle.xml
│ ├── ic_settings_common.xml
│ ├── ic_settings_privacy.xml
│ ├── ic_sign_out.xml
│ ├── ic_soc_network.xml
│ ├── ic_sorted_type.xml
│ ├── ic_star_circle_outline.xml
│ ├── ic_star_circular.xml
│ ├── ic_study.xml
│ ├── ic_study_assistant.png
│ ├── ic_study_outline.xml
│ ├── ic_subject_name.xml
│ ├── ic_table.xml
│ ├── ic_table_edit.xml
│ ├── ic_tasks.xml
│ ├── ic_tasks_circular.xml
│ ├── ic_tasks_outline.xml
│ ├── ic_textbox.xml
│ ├── ic_timeline_in_progress.xml
│ ├── ic_timer.xml
│ ├── ic_university.xml
│ ├── ic_upload_circular.xml
│ ├── ic_view_array_outline.xml
│ ├── ic_view_dashboard.xml
│ ├── ic_view_day_outline.xml
│ ├── ic_visibility.xml
│ ├── ic_visibility_off.xml
│ ├── ic_web.xml
│ ├── ic_webinar.xml
│ ├── ic_worktime.xml
│ ├── il_analytics.xml
│ ├── il_analytics_dark.xml
│ ├── il_forgot.xml
│ ├── il_forgot_dark.xml
│ ├── il_free_time.xml
│ ├── il_free_time_dark.xml
│ ├── il_friends.xml
│ ├── il_friends_dark.xml
│ ├── il_login.xml
│ ├── il_login_dark.xml
│ ├── il_organizations.xml
│ ├── il_organizations_dark.xml
│ ├── il_register.xml
│ ├── il_register_dark.xml
│ ├── il_schedule.xml
│ ├── il_schedule_dark.xml
│ ├── il_study.xml
│ ├── il_study_dark.xml
│ ├── il_verification.xml
│ ├── il_verification_dark.xml
│ ├── logo_discord.xml
│ ├── logo_facebook.xml
│ ├── logo_instagram.xml
│ ├── logo_telegram.xml
│ ├── logo_tiktok.xml
│ ├── logo_vk.xml
│ ├── logo_whatsapp.xml
│ ├── logo_x.xml
│ └── logo_youtube.xml
└── iosMain
└── kotlin
└── ru
└── aleshin
└── studyassistant
├── MainViewController.kt
└── di
├── PlatformConfiguration.ios.kt
└── modules
└── PlatformModule.ios.kt
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | .kotlin
4 | .idea
5 | .DS_Store
6 | build
7 | captures
8 | .externalNativeBuild
9 | .cxx
10 | local.properties
11 | xcuserdata
12 | androidApp/fdroid/
13 | androidApp/github/
14 | androidApp/google/
15 | androidApp/rustore/
16 | androidApp/mapping.txt
17 | androidApp/src/main/assets/service-account-file.json
18 | iosApp/iosApp/service-account-file.json
19 | iosApp/service-account-file.json
20 | iosApp/GoogleService-Info.plist
21 | iosApp/iosApp/GoogleService-Info.plist
22 | androidApp/google-services.json
23 | androidApp/agconnect-services.json
--------------------------------------------------------------------------------
/androidApp/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | -keep class app.cash.sqldelight.** { *; }
2 | -keep class kotlin.** { *; }
3 |
4 | -keep class com.google.api.client.** { *; }
5 | -keep class com.google.auth.** { *; }
6 |
7 | -keepattributes *Annotation*
8 | -keepattributes SourceFile,LineNumberTable
9 | -keep public class * extends java.lang.Exception
10 | -printmapping mapping.txt
11 |
12 |
13 | -dontwarn org.slf4j.impl.StaticLoggerBinder
14 | -dontwarn com.squareup.okhttp.CipherSuite
15 | -dontwarn com.squareup.okhttp.ConnectionSpec
16 | -dontwarn com.squareup.okhttp.TlsVersion
17 | -dontwarn java.lang.management.ManagementFactory
18 | -dontwarn java.lang.management.RuntimeMXBean
19 | -dontwarn java.lang.reflect.AnnotatedType
20 | -dontwarn org.slf4j.impl.StaticMDCBinder
21 | -dontwarn org.slf4j.impl.StaticMarkerBinder
22 |
23 | -keep class com.hianalytics.android.**{*;}
24 | -keep class com.huawei.updatesdk.**{*;}
25 | -keep class com.huawei.hms.**{*;}
--------------------------------------------------------------------------------
/androidApp/src/fdroid/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/androidApp/src/huawei/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/androidApp/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/androidApp/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #5B1FBD
4 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #6500D8
4 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Study Assistant
3 | studyAssistantAlarmChannel
4 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/xml/backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/androidApp/src/main/res/xml/data_extraction_rules.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/config/detekt/detekt.yml:
--------------------------------------------------------------------------------
1 | naming:
2 | FunctionNaming:
3 | ignoreAnnotated: ['Composable']
4 | MatchingDeclarationName:
5 | mustBeFirst: false
6 | complexity:
7 | LongMethod:
8 | threshold: 100
9 | LongParameterList:
10 | functionThreshold: 25
11 | constructorThreshold: 15
12 | TooManyFunctions:
13 | ignoreAnnotatedFunctions: ['Preview']
14 | formatting:
15 | FinalNewline:
16 | insertFinalNewLine: false
17 | style:
18 | MagicNumber:
19 | ignorePropertyDeclaration: true
20 | ignoreCompanionObjectPropertyDeclaration: true
21 | UnusedPrivateMember:
22 | ignoreAnnotated: ['Preview']
23 | NewLineAtEndOfFile:
24 | active: false
--------------------------------------------------------------------------------
/config/images/play_store_app_icon_1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/play_store_app_icon_1024x1024.png
--------------------------------------------------------------------------------
/config/images/play_store_app_icon_1024x1024_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/play_store_app_icon_1024x1024_rounded.png
--------------------------------------------------------------------------------
/config/images/play_store_app_icon_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/play_store_app_icon_512x512.png
--------------------------------------------------------------------------------
/config/images/play_store_app_icon_512x512_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/play_store_app_icon_512x512_rounded.png
--------------------------------------------------------------------------------
/config/images/screenshots/ConfirmEmail_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/ConfirmEmail_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Class_Subject_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Class_Subject_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Class_Subject_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Class_Subject_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Class_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Class_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Class_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Class_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Daily_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Daily_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Daily_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Daily_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Employee_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Employee_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Employee_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Employee_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Homework_2_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Homework_2_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Homework_2_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Homework_2_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Homework_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Homework_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Homework_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Homework_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Subject_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Subject_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Subject_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Subject_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Week_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Week_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Editor_Week_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Editor_Week_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Employee_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Employee_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Employee_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Employee_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Forgot_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Forgot_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Friends_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Friends_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Friends_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Friends_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Homeworks_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Homeworks_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Homeworks_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Homeworks_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Login_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Login_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Organizations_2_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Organizations_2_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Organizations_2_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Organizations_2_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Organizations_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Organizations_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Organizations_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Organizations_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Profile_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Profile_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Profile_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Profile_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Register_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Register_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Details_Vertical_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Details_Vertical_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Details_Vertical_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Details_Vertical_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Details_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Details_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Details_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Details_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Overview_Class_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Overview_Class_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Overview_Class_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Overview_Class_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Overview_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Overview_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Schedule_Overview_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Schedule_Overview_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Calendar_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Calendar_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Calendar_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Calendar_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Common_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Common_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Common_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Common_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Notifcation_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Notifcation_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Settings_Notifcation_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Settings_Notifcation_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Shrare_Schedule_2_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Shrare_Schedule_2_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Shrare_Schedule_2_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Shrare_Schedule_2_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Shrare_Schedule_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Shrare_Schedule_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Shrare_Schedule_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Shrare_Schedule_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Subjects_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Subjects_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Subjects_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Subjects_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Overview_2_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Overview_2_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Overview_2_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Overview_2_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Overview_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Overview_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Overview_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Overview_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Share_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Share_dark_en.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Share_dark_ru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Share_dark_ru.png
--------------------------------------------------------------------------------
/config/images/screenshots/Tasks_Todo_dark_en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/config/images/screenshots/Tasks_Todo_dark_en.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/featureGraphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | A convenient study assistant for your educ. organization with homework sharing
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/8.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/phoneScreenshots/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/fastlane/metadata/android/ru/phoneScreenshots/9.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/short_description.txt:
--------------------------------------------------------------------------------
1 | Удобный помощник в учебе для ваших организаций с поддержкой обмена заданиями
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | #Gradle
2 | org.gradle.jvmargs=-Xmx4096M -Dfile.encoding=UTF-8 -Dkotlin.daemon.jvm.options\="-Xmx4096M"
3 | org.gradle.caching=true
4 | org.gradle.configuration-cache=true
5 |
6 | #Kotlin
7 | kotlin.code.style=official
8 |
9 | #Android
10 | android.useAndroidX=true
11 | android.nonTransitiveRClass=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jun 02 16:25:13 MSK 2025
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/iosApp/iosApp/AnalyticsServiceImpl.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnalyticsServiceImpl.swift
3 | // iosApp
4 | //
5 | // Created by Stanislav Aleshin on 18.04.2025.
6 | // Copyright © 2025 orgName. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import shared
11 |
12 | public class AnalyticsServiceImpl : CommonAnalyticsService {
13 |
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/iosApp/iosApp/AppServiceImpl.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppServiceImpl.swift
3 | // iosApp
4 | //
5 | // Created by Stanislav Aleshin on 13.09.2024.
6 | // Copyright © 2024 orgName. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import Firebase
11 | import FirebaseCore
12 | import shared
13 |
14 | public class AppServiceImpl : CommonAppService {
15 |
16 | public var flavor: CommonFlavor = CommonFlavor.apple
17 |
18 | public var isAvailableServices: Bool {
19 | return FirebaseApp.app() != nil
20 | }
21 |
22 | public func initializeApp() {
23 | FirebaseConfiguration.shared.setLoggerLevel(.min)
24 | let filePath = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist")
25 | guard let fileopts = FirebaseOptions(contentsOfFile: filePath!) else { assert(false, "Couldn't load config file") }
26 | FirebaseApp.configure(options: fileopts)
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "ic_launcher_ios.png",
5 | "idiom" : "universal",
6 | "platform" : "ios",
7 | "size" : "1024x1024"
8 | }
9 | ],
10 | "info" : {
11 | "author" : "xcode",
12 | "version" : 1
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/ic_launcher_ios.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/ic_launcher_ios.png
--------------------------------------------------------------------------------
/iosApp/iosApp/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/iosApp/iosApp/ContentView.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 | import shared
3 |
4 | struct ComposeView: UIViewControllerRepresentable {
5 | func makeUIViewController(context: Context) -> UIViewController {
6 | MainViewControllerKt.MainViewController()
7 | }
8 |
9 | func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
10 | }
11 |
12 | struct ContentView: View {
13 | var body: some View {
14 | ComposeView().ignoresSafeArea(.keyboard).ignoresSafeArea(edges: .all)
15 | }
16 | }
17 |
18 | struct ContentView_Previews: PreviewProvider {
19 | static var previews: some View {
20 | ContentView()
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/iosApp/iosApp/CrashlyticsServiceImpl.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CrashlyticsServiceImpl.swift
3 | // iosApp
4 | //
5 | // Created by Stanislav Aleshin on 13.09.2024.
6 | // Copyright © 2024 orgName. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import Firebase
11 | import FirebaseCore
12 | import shared
13 |
14 | public class CrashlyticsServiceImpl : CommonCrashlyticsService {
15 | public func initializeService() {}
16 | public func recordException(tag: String, message: String, exception: KotlinThrowable) {}
17 | }
18 |
--------------------------------------------------------------------------------
/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
--------------------------------------------------------------------------------
/iosApp/iosApp/UUIDProvider.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UUIDProvider.swift
3 | // iosApp
4 | //
5 | // Created by Stanislav Aleshin on 07.08.2024.
6 | // Copyright © 2024 orgName. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import shared
11 | import FCUUID
12 |
13 | public class UUIDProvider : CommonIosUUIDProvider {
14 |
15 | public func uuid() -> String {
16 | return FCUUID.uuid()
17 | }
18 |
19 | public func uuidForDevice() -> String {
20 | return FCUUID.uuidForDevice()
21 | }
22 |
23 | public func uuidForInstallation() -> String {
24 | return FCUUID.uuidForInstallation()
25 | }
26 |
27 | public func uuidForSession() -> String {
28 | return FCUUID.uuidForSession()
29 | }
30 |
31 | public func uuidForVendor() -> String {
32 | return FCUUID.uuidForVendor()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/shared/core/common/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/core/common/src/androidMain/kotlin/ru/aleshin/studyassistant/core/common/extensions/UUID.android.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.extensions
17 |
18 | import java.util.UUID
19 |
20 | /**
21 | * @author Stanislav Aleshin on 30.04.2024.
22 | */
23 | actual fun randomUUID(): String {
24 | return UUID.randomUUID().toString()
25 | }
--------------------------------------------------------------------------------
/shared/core/common/src/androidMain/kotlin/ru/aleshin/studyassistant/core/common/notifications/parameters/NotificationProgress.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.notifications.parameters
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | data class NotificationProgress(val value: Int, val max: Int, val isIndeterminate: Boolean)
22 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/architecture/screenmodel/Init.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.architecture.screenmodel
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface Init {
22 | fun init(deps: D)
23 | }
24 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/architecture/screenmodel/contract/BaseAction.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2023 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.architecture.screenmodel.contract
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface BaseAction
22 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/architecture/screenmodel/contract/BaseEvent.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2023 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.architecture.screenmodel.contract
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface BaseEvent
22 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/architecture/screenmodel/contract/BaseUiEffect.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.architecture.screenmodel.contract
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface BaseUiEffect
22 |
23 | interface EmptyUiEffect : BaseUiEffect
24 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/architecture/screenmodel/contract/BaseViewState.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.architecture.screenmodel.contract
17 |
18 | import dev.icerock.moko.parcelize.Parcelable
19 |
20 | /**
21 | * @author Stanislav Aleshin on 12.06.2023.
22 | */
23 | interface BaseViewState : Parcelable
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/di/CorePlatformModule.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.di
18 |
19 | import org.kodein.di.DI
20 |
21 | /**
22 | * @author Stanislav Aleshin on 24.08.2024.
23 | */
24 | expect val corePlatformModule: DI.Module
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/exceptions/FirebaseExceptions.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.exceptions
18 |
19 | /**
20 | * @author Stanislav Aleshin on 22.04.2024.
21 | */
22 | class FirebaseDataAuthException : Exception()
23 |
24 | class FirebaseUserException : Exception()
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/exceptions/RemoteException.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.exceptions
18 |
19 | /**
20 | * @author Stanislav Aleshin on 01.08.2024.
21 | */
22 | data class RemoteException(val code: Int, val description: String) : Exception()
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/extensions/UUID.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.extensions
17 |
18 | /**
19 | * @author Stanislav Aleshin on 30.04.2024.
20 | */
21 | expect fun randomUUID(): String
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/functional/AndroidMessagePriority.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * imitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.functional
18 |
19 | /**
20 | * @author Stanislav Aleshin on 08.09.2023.
21 | */
22 | enum class AndroidMessagePriority {
23 | NORMAL, HIGH
24 | }
25 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/functional/File.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.functional
18 |
19 | import dev.gitlive.firebase.storage.File
20 |
21 | /**
22 | * @author Stanislav Aleshin on 03.08.2024.
23 | */
24 | expect fun File(uri: String): File
25 |
26 | expect fun File.uriString(): String
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/functional/TimeFormat.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * imitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.functional
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | enum class TimeFormat {
22 | PM, AM
23 | }
24 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/functional/UID.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * imitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.functional
18 |
19 | /**
20 | * @author Stanislav Aleshin on 21.07.2023.
21 | */
22 | typealias UID = String
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/handlers/ErrorHandler.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.handlers
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface ErrorHandler {
22 | fun handle(throwable: Throwable): E
23 | }
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/inject/BaseFeatureApi.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.inject
18 |
19 | /**
20 | * @author Stanislav Aleshin on 14.04.2024.
21 | */
22 | interface BaseFeatureApi
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/inject/BaseFeatureDependencies.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.inject
18 |
19 | /**
20 | * @author Stanislav Aleshin on 14.04.2024.
21 | */
22 | interface BaseFeatureDependencies
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/inject/FeatureScreen.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.inject
18 |
19 | import cafe.adriel.voyager.core.screen.Screen
20 |
21 | /**
22 | * @author Stanislav Aleshin on 21.04.2024.
23 | */
24 | interface FeatureScreen
25 |
26 | interface RootScreen : Screen
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/payments/PaymentsService.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.payments
18 |
19 | /**
20 | * @author Stanislav Aleshin on 18.04.2025.
21 | */
22 | interface PaymentsService {
23 | fun init()
24 | }
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/platform/Platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.platform
18 |
19 | /**
20 | * @author Stanislav Aleshin on 07.09.2024.
21 | */
22 | enum class Platform {
23 | Android, IOS,
24 | }
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/platform/services/Flavor.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.common.platform.services
18 |
19 | /**
20 | * @author Stanislav Aleshin on 11.09.2024.
21 | */
22 | enum class Flavor {
23 | APPLE, HMS, RUSTORE, GITHUB
24 | }
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/validation/ValidateError.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2023 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.validation
17 |
18 | import dev.icerock.moko.parcelize.Parcelable
19 |
20 | /**
21 | * @author Stanislav Aleshin on 12.06.2023.
22 | */
23 | interface ValidateError : Parcelable
24 |
--------------------------------------------------------------------------------
/shared/core/common/src/commonMain/kotlin/ru/aleshin/studyassistant/core/common/validation/Validator.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.validation
17 |
18 | /**
19 | * @author Stanislav Aleshin on 12.06.2023.
20 | */
21 | interface Validator {
22 | fun validate(data: D): ValidateResult
23 | }
24 |
--------------------------------------------------------------------------------
/shared/core/common/src/iosMain/kotlin/ru/aleshin/studyassistant/core/common/extensions/UUID.ios.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package ru.aleshin.studyassistant.core.common.extensions
17 |
18 | import platform.Foundation.NSUUID
19 |
20 | /**
21 | * @author Stanislav Aleshin on 30.04.2024.
22 | */
23 | actual fun randomUUID(): String {
24 | return NSUUID().UUIDString()
25 | }
--------------------------------------------------------------------------------
/shared/core/data/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/core/data/src/commonMain/kotlin/ru/aleshin/studyassistant/core/data/di/CoreDataPlatformModule.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.data.di
18 |
19 | import org.kodein.di.DI
20 |
21 | /**
22 | * @author Stanislav Aleshin on 22.08.2024.
23 | */
24 | expect val coreDataPlatformModule: DI.Module
--------------------------------------------------------------------------------
/shared/core/database/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/core/database/src/commonMain/kotlin/ru/aleshin/studyassistant/core/database/di/CoreDatabasePlatformModule.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.database.di
18 |
19 | import org.kodein.di.DI
20 |
21 | /**
22 | * @author Stanislav Aleshin on 24.08.2024.
23 | */
24 | expect val coreDatabasePlatformModule: DI.Module
--------------------------------------------------------------------------------
/shared/core/database/src/commonMain/sqldelight/migrations/1.sqm:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS `goalEntity` (
2 | uid TEXT PRIMARY KEY NOT NULL,
3 | type TEXT NOT NULL,
4 | number INTEGER NOT NULL,
5 | content_id TEXT NOT NULL,
6 | content_organization_id TEXT,
7 | content_deadline INTEGER,
8 | target_date INTEGER NOT NULL,
9 | desired_time INTEGER,
10 | goal_time_type TEXT NOT NULL,
11 | target_time INTEGER,
12 | past_stop_time INTEGER NOT NULL,
13 | start_time_point INTEGER NOT NULL,
14 | is_active INTEGER NOT NULL,
15 | complete_after_time_elapsed INTEGER NOT NULL,
16 | is_done INTEGER NOT NULL,
17 | complete_date INTEGER
18 | );
--------------------------------------------------------------------------------
/shared/core/database/src/commonMain/sqldelight/ru/aleshin/studyassistant/sqldelight/schedules/CustomSchedule.sq:
--------------------------------------------------------------------------------
1 | import kotlin.String;
2 | import kotlin.collections.List;
3 |
4 | CREATE TABLE customScheduleEntity (
5 | uid TEXT PRIMARY KEY NOT NULL,
6 | date INTEGER NOT NULL,
7 | classes TEXT AS List NOT NULL
8 | );
9 |
10 | addOrUpdateSchedule:
11 | INSERT OR REPLACE INTO customScheduleEntity (uid, date, classes)
12 | VALUES ?;
13 |
14 | fetchScheduleById:
15 | SELECT *
16 | FROM customScheduleEntity
17 | WHERE uid = ?;
18 |
19 | fetchSchedulesByDate:
20 | SELECT *
21 | FROM customScheduleEntity
22 | WHERE date = ?
23 | ORDER BY date DESC;
24 |
25 | fetchSchedulesByTimeRange:
26 | SELECT *
27 | FROM customScheduleEntity
28 | WHERE date >= ? AND date <= ?
29 | ORDER BY date DESC;
30 |
31 | deleteScheduleById:
32 | DELETE FROM customScheduleEntity
33 | WHERE uid = ?;
34 |
35 | deleteSchedulesByTimeRange:
36 | DELETE FROM customScheduleEntity
37 | WHERE date >= ? AND date <= ?;
--------------------------------------------------------------------------------
/shared/core/database/src/commonMain/sqldelight/ru/aleshin/studyassistant/sqldelight/settings/Calendar.sq:
--------------------------------------------------------------------------------
1 | import kotlin.String;
2 | import kotlin.collections.List;
3 |
4 | CREATE TABLE calendarSettingsEntity (
5 | id INTEGER PRIMARY KEY NOT NULL,
6 | number_of_week TEXT NOT NULL,
7 | week_schedule_view_type TEXT NOT NULL,
8 | holidays TEXT AS List
9 | );
10 |
11 | INSERT INTO calendarSettingsEntity (id, number_of_week, week_schedule_view_type, holidays)
12 | VALUES (1, 'ONE', 'COMMON', NULL);
13 |
14 | fetchSettings:
15 | SELECT *
16 | FROM calendarSettingsEntity;
17 |
18 | updateSettings:
19 | INSERT OR REPLACE INTO calendarSettingsEntity (id, number_of_week, week_schedule_view_type, holidays)
20 | VALUES ?;
21 |
22 | deleteSettings:
23 | DELETE FROM calendarSettingsEntity;
--------------------------------------------------------------------------------
/shared/core/database/src/commonMain/sqldelight/ru/aleshin/studyassistant/sqldelight/settings/General.sq:
--------------------------------------------------------------------------------
1 | CREATE TABLE generalSettingsEntity (
2 | id INTEGER PRIMARY KEY NOT NULL,
3 | is_first_start INTEGER NOT NULL,
4 | theme TEXT NOT NULL,
5 | language TEXT NOT NULL
6 | );
7 |
8 | INSERT INTO generalSettingsEntity (id, is_first_start, theme, language)
9 | VALUES (1, 1, 'DEFAULT', 'DEFAULT');
10 |
11 | fetchSettings:
12 | SELECT *
13 | FROM generalSettingsEntity;
14 |
15 | updateSettings:
16 | INSERT OR REPLACE INTO generalSettingsEntity (id, is_first_start, theme, language)
17 | VALUES ?;
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/common/DataTransferDirection.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.common
18 |
19 | /**
20 | * @author Stanislav Aleshin on 28.08.2024.
21 | */
22 | enum class DataTransferDirection {
23 | REMOTE_TO_LOCAL, LOCAL_TO_REMOTE
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/auth/ForgotCredentials.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.auth
18 |
19 | /**
20 | * @author Stanislav Aleshin on 05.07.2023.
21 | */
22 | data class ForgotCredentials(val email: String)
23 |
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/common/ContactInfo.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.common
18 |
19 | /**
20 | * @author Stanislav Aleshin on 27.04.2024.
21 | */
22 | data class ContactInfo(
23 | val label: String? = null,
24 | val value: String = "",
25 | )
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/common/ContactInfoType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.common
18 |
19 | /**
20 | * @author Stanislav Aleshin on 17.06.2024.
21 | */
22 | enum class ContactInfoType {
23 | EMAIL, PHONE, LOCATION, WEBSITE
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/goals/GoalType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.goals
18 |
19 | /**
20 | * @author Stanislav Aleshin on 18.04.2025.
21 | */
22 | enum class GoalType {
23 | HOMEWORK, TODO
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/settings/LanguageType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.settings
18 |
19 | /**
20 | * @author Stanislav Aleshin on 24.04.2024.
21 | */
22 | enum class LanguageType {
23 | DEFAULT, EN, RU
24 | }
25 |
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/settings/PrivacySettings.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.settings
18 |
19 | /**
20 | * @author Stanislav Aleshin on 21.04.2024.
21 | */
22 | data class PrivacySettings(
23 | val allowHomeworkRequest: Boolean = true,
24 | )
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/settings/ThemeType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.settings
18 |
19 | /**
20 | * @author Stanislav Aleshin on 24.04.2024.
21 | */
22 | enum class ThemeType {
23 | DEFAULT, LIGHT, DARK
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/settings/WeekScheduleViewType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.settings
18 |
19 | /**
20 | * @author Stanislav Aleshin on 09.06.2024.
21 | */
22 | enum class WeekScheduleViewType {
23 | COMMON, VERTICAL
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/tasks/TaskPriority.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.tasks
18 |
19 | /**
20 | * @author Stanislav Aleshin on 01.05.2024.
21 | */
22 | enum class TaskPriority {
23 | STANDARD, MEDIUM, HIGH
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/users/Gender.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.users
18 |
19 | /**
20 | * @author Stanislav Aleshin on 20.04.2024.
21 | */
22 | enum class Gender {
23 | NONE, FEMALE, MALE
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/users/Store.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.users
18 |
19 | /**
20 | * @author Stanislav Aleshin on 30.08.2024.
21 | */
22 | enum class Store {
23 | RU_STORE, GOOGLE_PLAY, APP_GALLERY, APP_STORE
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/entities/users/UserFriendStatus.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.entities.users
18 |
19 | /**
20 | * @author Stanislav Aleshin on 16.07.2024.
21 | */
22 | enum class UserFriendStatus {
23 | NOT_FRIENDS, REQUEST_SENT, REQUEST_RECEIVE, IN_FRIENDS
24 | }
--------------------------------------------------------------------------------
/shared/core/domain/src/commonMain/kotlin/ru/aleshin/studyassistant/core/domain/managers/RepeatWorkStatus.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.domain.managers
18 |
19 | /**
20 | * @author Stanislav Aleshin on 25.08.2024.
21 | */
22 | enum class RepeatWorkStatus {
23 | NOT_PLANNED,
24 | ENQUEUED,
25 | RUNNING,
26 | CANCELED
27 | }
--------------------------------------------------------------------------------
/shared/core/remote/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/core/remote/src/commonMain/kotlin/ru/aleshin/studyassistant/core/remote/datasources/message/GoogleAuthTokenProvider.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.remote.datasources.message
18 |
19 | /**
20 | * @author Stanislav Aleshin on 05.08.2024.
21 | */
22 | interface GoogleAuthTokenProvider {
23 | suspend fun fetchAccessToken(scope: String): String?
24 | }
--------------------------------------------------------------------------------
/shared/core/remote/src/commonMain/kotlin/ru/aleshin/studyassistant/core/remote/datasources/message/HmsAuthTokenProvider.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.remote.datasources.message
18 |
19 | /**
20 | * @author Stanislav Aleshin on 05.08.2024.
21 | */
22 | interface HmsAuthTokenProvider {
23 | suspend fun fetchAccessToken(): String?
24 | }
--------------------------------------------------------------------------------
/shared/core/remote/src/commonMain/kotlin/ru/aleshin/studyassistant/core/remote/di/CoreRemotePlatformModule.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.remote.di
18 |
19 | import org.kodein.di.DI
20 |
21 | /**
22 | * @author Stanislav Aleshin on 08.08.2024.
23 | */
24 | expect val coreRemotePlatformModule: DI.Module
--------------------------------------------------------------------------------
/shared/core/remote/src/commonMain/kotlin/ru/aleshin/studyassistant/core/remote/ktor/HttpEngineFactory.platform.kt:
--------------------------------------------------------------------------------
1 | package ru.aleshin.studyassistant.core.remote.ktor
2 |
3 | import io.ktor.client.engine.HttpClientEngineConfig
4 | import io.ktor.client.engine.HttpClientEngineFactory
5 |
6 | /**
7 | * @author Stanislav Aleshin on 01.08.2024.
8 | */
9 | expect class HttpEngineFactory constructor() {
10 | fun createEngine(): HttpClientEngineFactory
11 | }
--------------------------------------------------------------------------------
/shared/core/ui/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_additional_organization.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_alert_circle.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_alert_circle_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_birthday.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_book_study.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_calendar_today.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_church.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_class.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_classes_column.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_clock_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_description.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_duration.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_email.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_employee.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_gender.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_lecture.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_map_marker.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_movements.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_online_lesson.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_organization.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_organization_geo.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_organization_geo_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_organization_remove_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_organization_type.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_phone.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_practice.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_presentation.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_priority_high.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_profile.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_profile_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_select_date.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_seminar.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_soc_network.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_sorted_type.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_study.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_study_assistant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/shared/core/ui/src/commonMain/composeResources/drawable/ic_study_assistant.png
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_study_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_tasks.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_tasks_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_tasks_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_university.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_upload_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/ic_webinar.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/logo_facebook.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/logo_x.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/composeResources/drawable/logo_youtube.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/kotlin/ru/aleshin/studyassistant/core/ui/mappers/PlatformFileMapper.platform.kt:
--------------------------------------------------------------------------------
1 | import dev.gitlive.firebase.storage.File
2 | import io.github.vinceglb.filekit.core.PlatformFile
3 |
4 | /*
5 | * Copyright 2024 Stanislav Aleshin
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | */
19 |
20 | /**
21 | * @author Stanislav Aleshin on 03.08.2024.
22 | */
23 | expect fun PlatformFile.toStorageFile(): File
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/kotlin/ru/aleshin/studyassistant/core/ui/models/ThemeUiType.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.ui.models
18 |
19 | /**
20 | * @author Stanislav Aleshin on 27.01.2024.
21 | */
22 | enum class ThemeUiType {
23 | DEFAULT, LIGHT, DARK
24 | }
--------------------------------------------------------------------------------
/shared/core/ui/src/commonMain/kotlin/ru/aleshin/studyassistant/core/ui/views/NavigationBarColor.plarform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.ui.views
18 |
19 | import androidx.compose.runtime.Composable
20 |
21 | /**
22 | * @author Stanislav Aleshin on 25.04.2024.
23 | */
24 | @Composable
25 | internal expect fun NavigationBarColor(isDarkTheme: Boolean)
--------------------------------------------------------------------------------
/shared/core/ui/src/iosMain/kotlin/ru/aleshin/studyassistant/core/ui/mappers/PlatformFileMapper.platform.ios.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import dev.gitlive.firebase.storage.File
18 | import io.github.vinceglb.filekit.core.PlatformFile
19 |
20 | /**
21 | * @author Stanislav Aleshin on 03.08.2024.
22 | */
23 | actual fun PlatformFile.toStorageFile(): File {
24 | return File(url = nsUrl)
25 | }
--------------------------------------------------------------------------------
/shared/core/ui/src/iosMain/kotlin/ru/aleshin/studyassistant/core/ui/views/NavigationBarColor.ios.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.core.ui.views
18 |
19 | import androidx.compose.runtime.Composable
20 |
21 | /**
22 | * @author Stanislav Aleshin on 25.04.2024.
23 | */
24 | @Composable
25 | internal actual fun NavigationBarColor(isDarkTheme: Boolean) {}
--------------------------------------------------------------------------------
/shared/features/auth/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/auth/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/editor/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_break.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_circle_edit_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_clear_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_clock.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_color.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_employee_post.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_notify.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_star_circle_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_subject_name.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/composeResources/drawable/ic_worktime.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/editor/impl/src/commonMain/kotlin/ru/aleshin/studyassistant/editor/impl/domain/entities/ShiftTimeError.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.editor.impl.domain.entities
18 |
19 | /**
20 | * @author Stanislav Aleshin on 15.07.2024.
21 | */
22 | internal class ShiftTimeError : Exception()
--------------------------------------------------------------------------------
/shared/features/info/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/info/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/info/impl/src/commonMain/composeResources/drawable/ic_star_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/navigation/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/navigation/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/preview/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/preview/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/preview/impl/src/commonMain/composeResources/drawable/ic_textbox.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/profile/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/profile/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/profile/impl/src/commonMain/composeResources/drawable/ic_email_alert.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/profile/impl/src/commonMain/composeResources/drawable/ic_send_circle.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/profile/impl/src/commonMain/composeResources/drawable/ic_settings_privacy.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/profile/impl/src/commonMain/composeResources/drawable/ic_table.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_format_columns.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_format_grid.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_list_edit.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_open_table.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_table_edit.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/schedule/impl/src/commonMain/composeResources/drawable/ic_view_dashboard.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/settings/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/settings/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/settings/impl/src/commonMain/composeResources/drawable/ic_calendar_week.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_account_file_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_alert_triangular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_calendar_clock_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_timeline_in_progress.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_timer.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_view_array_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/tasks/impl/src/commonMain/composeResources/drawable/ic_view_day_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/features/users/api/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/features/users/impl/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shared/src/commonMain/kotlin/ru/aleshin/studyassistant/di/modules/PlatformModule.platform.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024 Stanislav Aleshin
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package ru.aleshin.studyassistant.di.modules
18 |
19 | import org.kodein.di.DI
20 |
21 | /**
22 | * @author Stanislav Aleshin on 24.04.2024.
23 | */
24 | expect val platformModule: DI.Module
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_account_file_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_additional_organization.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_alert_circle.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_alert_circle_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_alert_triangular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_birthday.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_book_study.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_break.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_calendar_clock_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_calendar_today.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_calendar_week.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_church.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_circle_edit_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_class.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_classes_column.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_clear_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_clock.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_clock_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_color.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_description.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_duration.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_email.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_email_alert.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_employee.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_employee_post.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_format_columns.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_format_grid.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_gender.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_lecture.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_list_edit.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_map_marker.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_movements.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_notify.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_number.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_online_lesson.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_open_table.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_organization.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_organization_geo.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_organization_geo_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_organization_remove_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_organization_type.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_phone.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_practice.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_presentation.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_priority_high.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_profile.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_profile_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_select_date.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_seminar.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_send_circle.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_settings_privacy.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_soc_network.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_sorted_type.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_star_circle_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_star_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_study.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_study_assistant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v1tzor/StudyAssistant/4ac81c0e4e5f24f431925f5036b22435b54fcb16/shared/src/commonMain/resources/drawable/ic_study_assistant.png
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_study_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_subject_name.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_table.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_table_edit.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_tasks.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_tasks_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_tasks_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_textbox.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_timeline_in_progress.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_timer.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_university.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_upload_circular.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_view_array_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_view_dashboard.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_view_day_outline.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_webinar.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/ic_worktime.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/logo_facebook.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/logo_x.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/shared/src/commonMain/resources/drawable/logo_youtube.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------