├── android
├── .idea
│ ├── .name
│ ├── .gitignore
│ ├── compiler.xml
│ └── libraries
│ │ ├── Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_1.xml
│ │ ├── Gradle__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml
│ │ ├── Gradle__androidx_room_room_common_2_2_5.xml
│ │ ├── Gradle__androidx_room_room_common_2_4_0.xml
│ │ ├── Gradle__androidx_annotation_annotation_1_2_0.xml
│ │ ├── Gradle__androidx_annotation_annotation_1_3_0.xml
│ │ ├── Gradle__androidx_arch_core_core_common_2_1_0.xml
│ │ ├── Gradle__androidx_collection_collection_1_1_0.xml
│ │ ├── Gradle__androidx_room_room_migration_2_2_5.xml
│ │ ├── Gradle__androidx_datastore_datastore_core_1_0_0.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_common_2_3_1.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_common_2_5_0.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_reflect_1_5_31.xml
│ │ ├── Gradle__androidx_compose_compiler_compiler_1_2_0_alpha07.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_common_java8_2_5_0.xml
│ │ ├── Gradle__androidx_datastore_datastore_preferences_core_1_0_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_9_1.xml
│ │ ├── Gradle__androidx_constraintlayout_constraintlayout_2_0_1_aar.xml
│ │ ├── Gradle__com_ibm_icu_icu4j_53_1.xml
│ │ ├── Gradle__io_mockk_mockk_1_10_0.xml
│ │ ├── Gradle__org_json_json_20201115.xml
│ │ ├── Gradle__org_robolectric_junit_4_6.xml
│ │ ├── Gradle__org_robolectric_utils_4_6.xml
│ │ ├── Gradle__org_ow2_asm_asm_tree_9_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_util_9_0.xml
│ │ ├── Gradle__io_grpc_grpc_api_1_44_1.xml
│ │ ├── Gradle__io_grpc_grpc_core_1_44_1.xml
│ │ ├── Gradle__io_grpc_grpc_stub_1_44_1.xml
│ │ ├── Gradle__org_robolectric_sandbox_4_6.xml
│ │ ├── Gradle__com_google_truth_truth_1_1_3.xml
│ │ ├── Gradle__com_squareup_okio_okio_2_8_0.xml
│ │ ├── Gradle__io_mockk_mockk_dsl_1_10_0.xml
│ │ ├── Gradle__org_objenesis_objenesis_3_1.xml
│ │ ├── Gradle__com_google_dagger_dagger_2_40.xml
│ │ ├── Gradle__javax_inject_javax_inject_1.xml
│ │ ├── Gradle__com_squareup_okio_okio_2_10_0.xml
│ │ ├── Gradle__io_grpc_grpc_okhttp_1_44_1.xml
│ │ ├── Gradle__org_ow2_asm_asm_commons_9_0.xml
│ │ ├── Gradle__org_robolectric_pluginapi_4_6.xml
│ │ ├── Gradle__org_robolectric_resources_4_6.xml
│ │ ├── Gradle__org_robolectric_shadowapi_4_6.xml
│ │ ├── Gradle__com_google_code_gson_gson_2_8_9.xml
│ │ ├── Gradle__org_ow2_asm_asm_analysis_9_0.xml
│ │ ├── Gradle__com_squareup_moshi_moshi_1_13_0.xml
│ │ ├── Gradle__io_grpc_grpc_context_1_44_1.xml
│ │ ├── Gradle__com_squareup_okhttp_okhttp_2_7_5.xml
│ │ ├── Gradle__org_jetbrains_annotations_13_0.xml
│ │ ├── Gradle__com_google_dagger_hilt_core_2_40.xml
│ │ ├── Gradle__com_squareup_okhttp3_okhttp_4_9_3.xml
│ │ ├── Gradle__io_mockk_mockk_dsl_jvm_1_10_0.xml
│ │ ├── Gradle__org_hamcrest_hamcrest_core_1_3.xml
│ │ ├── Gradle__org_mockito_mockito_core_3_6_0.xml
│ │ ├── Gradle__org_robolectric_annotations_4_6.xml
│ │ ├── Gradle__org_robolectric_robolectric_4_6.xml
│ │ ├── Gradle__net_bytebuddy_byte_buddy_1_10_15.xml
│ │ ├── Gradle__org_jetbrains_annotations_20_1_0.xml
│ │ ├── Gradle__io_mockk_mockk_common_1_10_0.xml
│ │ ├── Gradle__app_cash_turbine_turbine_jvm_0_7_0.xml
│ │ ├── Gradle__com_google_code_findbugs_jsr305_3_0_1.xml
│ │ ├── Gradle__com_google_code_findbugs_jsr305_3_0_2.xml
│ │ ├── Gradle__org_mockito_mockito_inline_3_6_0.xml
│ │ ├── Gradle__com_squareup_retrofit2_retrofit_2_9_0.xml
│ │ ├── Gradle__org_robolectric_utils_reflector_4_6.xml
│ │ ├── Gradle__com_google_guava_failureaccess_1_0_1.xml
│ │ ├── Gradle__io_grpc_grpc_protobuf_lite_1_44_1.xml
│ │ ├── Gradle__org_bouncycastle_bcprov_jdk15on_1_68.xml
│ │ ├── Gradle__com_google_guava_guava_30_1_1_android.xml
│ │ ├── Gradle__org_robolectric_shadows_framework_4_6.xml
│ │ ├── Gradle__androidx_sqlite_sqlite_2_2_0_aar.xml
│ │ ├── Gradle__com_squareup_okhttp3_mockwebserver_4_9_3.xml
│ │ ├── Gradle__org_checkerframework_checker_qual_3_13_0.xml
│ │ ├── Gradle__net_bytebuddy_byte_buddy_agent_1_10_15.xml
│ │ ├── Gradle__androidx_compose_ui_ui_1_1_1_aar.xml
│ │ ├── Gradle__com_google_j2objc_j2objc_annotations_1_3.xml
│ │ ├── Gradle__com_squareup_okhttp3_okhttp_5_0_0_alpha_2.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml
│ │ ├── Gradle__androidx_cardview_cardview_1_0_0_aar.xml
│ │ ├── Gradle__com_almworks_sqlite4java_sqlite4java_1_0_392.xml
│ │ ├── Gradle__com_squareup_retrofit2_converter_moshi_2_9_0.xml
│ │ ├── Gradle__androidx_core_core_ktx_1_7_0_aar.xml
│ │ ├── Gradle__androidx_room_room_ktx_2_4_0_aar.xml
│ │ ├── Gradle__com_google_firebase_firebase_encoders_17_0_0.xml
│ │ ├── Gradle__com_google_protobuf_protobuf_javalite_3_19_2.xml
│ │ ├── Gradle__javax_annotation_javax_annotation_api_1_3_2.xml
│ │ ├── Gradle__androidx_compose_ui_ui_test_1_1_1_aar.xml
│ │ ├── Gradle__androidx_compose_ui_ui_text_1_1_1_aar.xml
│ │ ├── Gradle__androidx_compose_ui_ui_unit_1_1_1_aar.xml
│ │ ├── Gradle__com_nhaarman_mockitokotlin2_mockito_kotlin_2_1_0.xml
│ │ ├── Gradle__org_checkerframework_checker_compat_qual_2_5_5.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml
│ │ ├── Gradle__androidx_datastore_datastore_1_0_0_aar.xml
│ │ ├── Gradle__androidx_compose_runtime_runtime_1_1_1_aar.xml
│ │ ├── Gradle__com_google_firebase_firebase_annotations_16_1_0.xml
│ │ ├── Gradle__androidx_compose_ui_ui_tooling_1_1_1_aar.xml
│ │ ├── Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml
│ │ ├── Gradle__androidx_savedstate_savedstate_1_2_0_aar.xml
│ │ ├── Gradle__junit_junit_4_13_2.xml
│ │ ├── Gradle__androidx_compose_material_material_1_1_1_aar.xml
│ │ ├── Gradle__androidx_sqlite_sqlite_framework_2_2_0_aar.xml
│ │ ├── Gradle__androidx_activity_activity_ktx_1_5_0_aar.xml
│ │ ├── Gradle__androidx_compose_ui_ui_geometry_1_1_1_aar.xml
│ │ ├── Gradle__androidx_compose_ui_ui_graphics_1_1_1_aar.xml
│ │ ├── Gradle__com_google_auto_value_auto_value_annotations_1_8_1.xml
│ │ ├── Gradle__androidx_compose_animation_animation_1_1_1_aar.xml
│ │ ├── Gradle__androidx_hilt_hilt_navigation_1_0_0_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_runtime_2_5_0_aar.xml
│ │ ├── Gradle__com_google_errorprone_error_prone_annotations_2_7_1.xml
│ │ ├── Gradle__com_google_errorprone_error_prone_annotations_2_9_0.xml
│ │ ├── Gradle__com_google_firebase_firebase_encoders_proto_16_0_0.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml
│ │ ├── Gradle__androidx_compose_foundation_foundation_1_1_1_aar.xml
│ │ ├── Gradle__androidx_navigation_navigation_common_2_5_0_aar.xml
│ │ ├── Gradle__androidx_compose_ui_ui_test_junit4_1_1_1_aar.xml
│ │ ├── Gradle__androidx_navigation_navigation_runtime_2_5_0_aar.xml
│ │ ├── Gradle__androidx_savedstate_savedstate_ktx_1_2_0_aar.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_parcelize_runtime_1_6_10.xml
│ │ ├── Gradle__androidx_compose_ui_ui_tooling_data_1_1_1_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_viewmodel_2_5_0_aar.xml
│ │ └── Gradle__androidx_activity_activity_compose_1_5_0_aar.xml
├── core-ui
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ ├── main
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── res
│ │ │ │ ├── font
│ │ │ │ │ ├── roboto_bold.ttf
│ │ │ │ │ ├── roboto_italic.ttf
│ │ │ │ │ ├── roboto_medium.ttf
│ │ │ │ │ └── roboto_regular.ttf
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── values
│ │ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── splash.xml
│ │ │ │ ├── drawable
│ │ │ │ │ ├── ic_home.xml
│ │ │ │ │ ├── ic_logout.xml
│ │ │ │ │ ├── ic_wallpaper.xml
│ │ │ │ │ └── ic_default_android.xml
│ │ │ │ └── values-night
│ │ │ │ │ └── themes.xml
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── core_ui
│ │ │ │ ├── theme
│ │ │ │ ├── Shape.kt
│ │ │ │ ├── Color.kt
│ │ │ │ └── Dimensions.kt
│ │ │ │ └── composables
│ │ │ │ └── ComposablesText.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── iprayforgod
│ │ │ └── core_ui
│ │ │ └── ExampleInstrumentedTest.kt
│ ├── build.gradle.kts
│ └── proguard-rules.pro
├── core
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── iprayforgod
│ │ │ │ │ └── core
│ │ │ │ │ ├── platform
│ │ │ │ │ ├── base
│ │ │ │ │ │ └── BaseViewModel.kt
│ │ │ │ │ ├── ui
│ │ │ │ │ │ └── uiEvent
│ │ │ │ │ │ │ ├── UiEvent.kt
│ │ │ │ │ │ │ └── UiText.kt
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ └── Context.kt
│ │ │ │ │ └── functional
│ │ │ │ │ │ ├── State.kt
│ │ │ │ │ │ └── Resource.kt
│ │ │ │ │ ├── data
│ │ │ │ │ ├── implementation
│ │ │ │ │ │ ├── logger
│ │ │ │ │ │ │ └── utilities
│ │ │ │ │ │ │ │ ├── KeysFeatureNames.kt
│ │ │ │ │ │ │ │ ├── modules
│ │ │ │ │ │ │ │ ├── OrHaNoButModule.kt
│ │ │ │ │ │ │ │ └── CrashReportingTree.java
│ │ │ │ │ │ │ │ └── AppLogger.kt
│ │ │ │ │ │ ├── firebase
│ │ │ │ │ │ │ ├── utilities
│ │ │ │ │ │ │ │ └── endpoints
│ │ │ │ │ │ │ │ │ └── Constants.kt
│ │ │ │ │ │ │ ├── FirebaseAuthImpl.kt
│ │ │ │ │ │ │ └── FirebaseFirestoreImpl.kt
│ │ │ │ │ │ ├── preference
│ │ │ │ │ │ │ └── utilities
│ │ │ │ │ │ │ │ └── KeysPreferences.kt
│ │ │ │ │ │ └── parser
│ │ │ │ │ │ │ └── ParserFeatureImpl.kt
│ │ │ │ │ └── repository
│ │ │ │ │ │ ├── firebase
│ │ │ │ │ │ ├── FirebaseAuthRepository.kt
│ │ │ │ │ │ └── FirebaseFirestoreRepository.kt
│ │ │ │ │ │ ├── parser
│ │ │ │ │ │ └── ParserRepository.kt
│ │ │ │ │ │ └── logger
│ │ │ │ │ │ └── LoggerRepository.kt
│ │ │ │ │ ├── domain
│ │ │ │ │ ├── features
│ │ │ │ │ │ ├── analytics
│ │ │ │ │ │ │ └── AnalyticsFeature.kt
│ │ │ │ │ │ ├── firebase
│ │ │ │ │ │ │ ├── FirebaseAuthFeature.kt
│ │ │ │ │ │ │ └── FirebaseFirestoreFeature.kt
│ │ │ │ │ │ ├── parser
│ │ │ │ │ │ │ └── ParserFeature.kt
│ │ │ │ │ │ ├── logger
│ │ │ │ │ │ │ └── LoggerFeature.kt
│ │ │ │ │ │ └── preferences
│ │ │ │ │ │ │ └── PreferenceDatastore.kt
│ │ │ │ │ └── models
│ │ │ │ │ │ ├── RemoteLog.kt
│ │ │ │ │ │ ├── DeviceDetails.kt
│ │ │ │ │ │ └── User.kt
│ │ │ │ │ └── di
│ │ │ │ │ ├── qualifiers
│ │ │ │ │ └── Dispatchers.kt
│ │ │ │ │ └── modules
│ │ │ │ │ └── AnalyticsModule.kt
│ │ │ └── AndroidManifest.xml
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── iprayforgod
│ │ │ └── core
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle.kts
│ └── proguard-rules.pro
├── core-mock
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── droid
│ │ │ │ └── core_mock
│ │ │ │ ├── core
│ │ │ │ ├── domain
│ │ │ │ │ └── logger
│ │ │ │ │ │ └── FakeLoggerFeature.kt
│ │ │ │ └── modules
│ │ │ │ │ └── logger
│ │ │ │ │ └── repository
│ │ │ │ │ └── FakeLoggerRepository.kt
│ │ │ │ └── features
│ │ │ │ └── common
│ │ │ │ └── common_domain
│ │ │ │ └── repository
│ │ │ │ ├── FakeSuccessCommonRepository.kt
│ │ │ │ └── FakeFailureMsgCheckCommonRepository.kt
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── droid
│ │ │ └── core_mock
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle.kts
│ └── proguard-rules.pro
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── app
│ │ │ │ ├── navigation
│ │ │ │ └── Route.kt
│ │ │ │ ├── application
│ │ │ │ └── IPrayForGodApp.kt
│ │ │ │ └── MainVm.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── iprayforggod
│ │ │ ├── HiltTestRunner.kt
│ │ │ └── end_to_end_tests
│ │ │ └── LoginFunctionalityTest.kt
│ └── proguard-rules.pro
├── buildSrc
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ └── java
│ │ │ ├── Kotlin.kt
│ │ │ ├── Coil.kt
│ │ │ ├── SqlDelight.kt
│ │ │ ├── Google.kt
│ │ │ ├── Moshi.kt
│ │ │ ├── DaggerHilt.kt
│ │ │ ├── DataStorePreferences.kt
│ │ │ ├── ScriptPlugins.kt
│ │ │ ├── Room.kt
│ │ │ ├── SplashScreen.kt
│ │ │ ├── AndroidX.kt
│ │ │ ├── CustomLogging.kt
│ │ │ ├── Accompanist.kt
│ │ │ ├── Coroutines.kt
│ │ │ ├── ProjectConfig.kt
│ │ │ ├── FlavourUtils.kt
│ │ │ ├── Retrofit.kt
│ │ │ ├── Firebase.kt
│ │ │ └── Modules.kt
│ └── build.gradle.kts
├── features
│ ├── common
│ │ ├── common_data
│ │ │ ├── .gitignore
│ │ │ ├── consumer-rules.pro
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ └── java
│ │ │ │ │ │ └── com
│ │ │ │ │ │ └── iprayforgod
│ │ │ │ │ │ └── common_data
│ │ │ │ │ │ ├── repository
│ │ │ │ │ │ └── CommonRepositoryImpl.kt
│ │ │ │ │ │ └── di
│ │ │ │ │ │ └── SaveDataModule.kt
│ │ │ │ ├── test
│ │ │ │ │ └── java
│ │ │ │ │ │ └── com
│ │ │ │ │ │ └── iprayforgod
│ │ │ │ │ │ └── common_data
│ │ │ │ │ │ └── ExampleUnitTest.kt
│ │ │ │ └── androidTest
│ │ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── iprayforgod
│ │ │ │ │ └── common_data
│ │ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── build.gradle.kts
│ │ │ └── proguard-rules.pro
│ │ └── common_domain
│ │ │ ├── .gitignore
│ │ │ ├── consumer-rules.pro
│ │ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── iprayforgod
│ │ │ │ │ └── common_domain
│ │ │ │ │ ├── repository
│ │ │ │ │ └── CommonRepository.kt
│ │ │ │ │ ├── usecases
│ │ │ │ │ ├── CommonModuleUseCases.kt
│ │ │ │ │ └── module
│ │ │ │ │ │ └── SaveUserUseCase.kt
│ │ │ │ │ └── di
│ │ │ │ │ └── CommonDomainModule.kt
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── iprayforgod
│ │ │ │ │ └── common_domain
│ │ │ │ │ └── ExampleUnitTest.kt
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── common_domain
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── build.gradle.kts
│ │ │ └── proguard-rules.pro
│ └── login
│ │ ├── login_data
│ │ ├── .gitignore
│ │ ├── consumer-rules.pro
│ │ ├── src
│ │ │ ├── main
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── iprayforgod
│ │ │ │ │ └── login_data
│ │ │ │ │ └── ExampleUnitTest.kt
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── login_data
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── build.gradle.kts
│ │ └── proguard-rules.pro
│ │ ├── login_domain
│ │ ├── .gitignore
│ │ ├── consumer-rules.pro
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ │ └── iprayforgod
│ │ │ │ │ │ └── login_domain
│ │ │ │ │ │ ├── entities
│ │ │ │ │ │ └── inputs
│ │ │ │ │ │ │ ├── ForgotPwdInput.kt
│ │ │ │ │ │ │ ├── LoginInput.kt
│ │ │ │ │ │ │ └── RegistrationInput.kt
│ │ │ │ │ │ ├── utils
│ │ │ │ │ │ └── UseCaseUtils.kt
│ │ │ │ │ │ ├── ValidationResult.kt
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ ├── ForgotPwdService.kt
│ │ │ │ │ │ ├── LoginService.kt
│ │ │ │ │ │ └── RegistrationService.kt
│ │ │ │ │ │ ├── usecases
│ │ │ │ │ │ ├── forgotPassword
│ │ │ │ │ │ │ └── ForgotPwdUseCase.kt
│ │ │ │ │ │ ├── login
│ │ │ │ │ │ │ └── LoginUserUseCase.kt
│ │ │ │ │ │ └── registration
│ │ │ │ │ │ │ └── RegisterUserUseCase.kt
│ │ │ │ │ │ ├── repository
│ │ │ │ │ │ └── LoginRepository.kt
│ │ │ │ │ │ └── states
│ │ │ │ │ │ └── LoginViewStates.kt
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── login_domain
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── build.gradle.kts
│ │ └── proguard-rules.pro
│ │ └── login_presentation
│ │ ├── .gitignore
│ │ ├── consumer-rules.pro
│ │ ├── src
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── login_presentation
│ │ │ │ └── states
│ │ │ │ ├── forgotPassword
│ │ │ │ ├── ForgotPwdUiState.kt
│ │ │ │ └── ForgotPwdViewEvent.kt
│ │ │ │ ├── login
│ │ │ │ ├── LoginUiState.kt
│ │ │ │ ├── LoginViewResponseEvent.kt
│ │ │ │ └── LoginViewEvent.kt
│ │ │ │ └── registration
│ │ │ │ ├── RegistrationUiState.kt
│ │ │ │ └── RegistrationViewEvent.kt
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── iprayforgod
│ │ │ │ └── login_presentation
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── iprayforgod
│ │ │ └── login_presentation
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── build.gradle.kts
│ │ └── proguard-rules.pro
├── login.png
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
└── settings.gradle
└── assets
├── layer.png
├── hilt_img_new.png
├── mvvm_structure.png
├── output
├── login.png
├── forgot_pwd.png
└── registration.png
├── MadScore
├── jetpack.png
├── kotlin.png
├── studio.png
├── summary.png
└── mad_banner.png
├── KotlinAndroidStudio.png
├── compose_clean_arch.png
├── skeletal_structure_new.png
└── Clean-architecture-layered-interaction.png
/android/.idea/.name:
--------------------------------------------------------------------------------
1 | iPrayForGod
--------------------------------------------------------------------------------
/android/core-ui/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/core/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/core/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/core-mock/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/core-mock/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/core-ui/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | *.json
--------------------------------------------------------------------------------
/android/buildSrc/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | build
--------------------------------------------------------------------------------
/android/features/common/common_data/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/features/login/login_data/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/features/login/login_data/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/features/common/common_data/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/features/common/common_domain/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android/features/login/login_presentation/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Kotlin.kt:
--------------------------------------------------------------------------------
1 | object Kotlin {
2 | const val version = "1.6.10"
3 | }
--------------------------------------------------------------------------------
/android/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/login.png
--------------------------------------------------------------------------------
/assets/layer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/layer.png
--------------------------------------------------------------------------------
/assets/hilt_img_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/hilt_img_new.png
--------------------------------------------------------------------------------
/assets/mvvm_structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/mvvm_structure.png
--------------------------------------------------------------------------------
/assets/output/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/output/login.png
--------------------------------------------------------------------------------
/assets/MadScore/jetpack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/MadScore/jetpack.png
--------------------------------------------------------------------------------
/assets/MadScore/kotlin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/MadScore/kotlin.png
--------------------------------------------------------------------------------
/assets/MadScore/studio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/MadScore/studio.png
--------------------------------------------------------------------------------
/assets/MadScore/summary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/MadScore/summary.png
--------------------------------------------------------------------------------
/assets/KotlinAndroidStudio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/KotlinAndroidStudio.png
--------------------------------------------------------------------------------
/assets/MadScore/mad_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/MadScore/mad_banner.png
--------------------------------------------------------------------------------
/assets/compose_clean_arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/compose_clean_arch.png
--------------------------------------------------------------------------------
/assets/output/forgot_pwd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/output/forgot_pwd.png
--------------------------------------------------------------------------------
/assets/output/registration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/output/registration.png
--------------------------------------------------------------------------------
/assets/skeletal_structure_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/skeletal_structure_new.png
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Coil.kt:
--------------------------------------------------------------------------------
1 | object Coil {
2 | private const val version = "1.3.2"
3 | const val coilCompose = "io.coil-kt:coil-compose:$version"
4 | }
--------------------------------------------------------------------------------
/android/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import org.gradle.kotlin.dsl.`kotlin-dsl`
2 |
3 | repositories {
4 | mavenCentral()
5 | }
6 |
7 | plugins {
8 | `kotlin-dsl`
9 | }
--------------------------------------------------------------------------------
/android/core-ui/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/font/roboto_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/font/roboto_bold.ttf
--------------------------------------------------------------------------------
/assets/Clean-architecture-layered-interaction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/assets/Clean-architecture-layered-interaction.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/font/roboto_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/font/roboto_italic.ttf
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/font/roboto_medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/font/roboto_medium.ttf
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/font/roboto_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/font/roboto_regular.ttf
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/SqlDelight.kt:
--------------------------------------------------------------------------------
1 | object SqlDelight {
2 | private const val version = "1.5.2"
3 | const val repo = "com.squareup.sqldelight:gradle-plugin:$version"
4 | }
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Google.kt:
--------------------------------------------------------------------------------
1 | object Google {
2 | private const val materialVersion = "1.4.0"
3 | const val material = "com.google.android.material:material:$materialVersion"
4 | }
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devrath/droid-pure-kotlin-application/HEAD/android/core-ui/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/core-mock/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/base/BaseViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.base
2 |
3 | import androidx.lifecycle.ViewModel
4 |
5 | open class BaseViewModel : ViewModel()
6 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/entities/inputs/ForgotPwdInput.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.entities.inputs
2 |
3 | data class ForgotPwdInput(val email: String)
4 |
--------------------------------------------------------------------------------
/android/core/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(DataStorePreferences.datastorePreferences)
7 | "implementation"(AndroidX.coreKtx)
8 | }
9 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/entities/inputs/LoginInput.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.entities.inputs
2 |
3 | data class LoginInput(val email: String, val password: String)
4 |
--------------------------------------------------------------------------------
/android/features/common/common_data/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/features/login/login_data/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/features/login/login_data/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(project(Modules.core))
7 | "implementation"(project(Modules.featureLoginDomain))
8 | }
9 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Moshi.kt:
--------------------------------------------------------------------------------
1 | object Moshi {
2 | private const val version = "1.13.0"
3 | const val moshiRepo = "com.squareup.moshi:moshi:$version"
4 | const val moshiCodegen = "com.squareup.moshi:moshi-kotlin-codegen:$version"
5 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/logger/utilities/KeysFeatureNames.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.logger.utilities
2 |
3 | object KeysFeatureNames {
4 | const val FEATURE_LOGIN = "Login"
5 | }
6 |
--------------------------------------------------------------------------------
/android/features/common/common_data/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(project(Modules.core))
7 | "implementation"(project(Modules.featureCommonDomain))
8 | }
9 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/DaggerHilt.kt:
--------------------------------------------------------------------------------
1 | object DaggerHilt {
2 | const val version = "2.40"
3 | const val hiltAndroid = "com.google.dagger:hilt-android:$version"
4 | const val hiltCompiler = "com.google.dagger:hilt-android-compiler:$version"
5 | }
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/DataStorePreferences.kt:
--------------------------------------------------------------------------------
1 | object DataStorePreferences {
2 | private const val datastorePreferencesVersion = "1.0.0"
3 | const val datastorePreferences = "androidx.datastore:datastore-preferences:$datastorePreferencesVersion"
4 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/firebase/utilities/endpoints/Constants.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.firebase.utilities.endpoints
2 |
3 | object Constants {
4 | const val USERS: String = "users"
5 | }
6 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/ScriptPlugins.kt:
--------------------------------------------------------------------------------
1 | object ScriptPlugins {
2 | const val infrastructure = "scripts.infrastructure"
3 | const val variants = "scripts.variants"
4 | const val quality = "scripts.quality"
5 | const val compilation = "scripts.compilation"
6 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/analytics/AnalyticsFeature.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.analytics
2 |
3 | interface AnalyticsFeature {
4 | // fun loginStatus(userId: Int, isSuccessful: Boolean, reasonForFailure: String)
5 | }
6 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/firebase/FirebaseAuthFeature.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.firebase
2 |
3 | import com.google.firebase.auth.FirebaseAuth
4 |
5 | interface FirebaseAuthFeature {
6 | fun getFirebaseAuth(): FirebaseAuth
7 | }
8 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/parser/ParserFeature.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.parser
2 |
3 | import com.iprayforgod.core.domain.models.User
4 |
5 | interface ParserFeature {
6 | fun convertUserObjectToJson(user: User): String
7 | }
8 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Room.kt:
--------------------------------------------------------------------------------
1 | object Room {
2 | private const val version = "2.4.0"
3 | const val roomRuntime = "androidx.room:room-runtime:$version"
4 | const val roomCompiler = "androidx.room:room-compiler:$version"
5 | const val roomKtx = "androidx.room:room-ktx:$version"
6 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/ui/uiEvent/UiEvent.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.ui.uiEvent
2 |
3 | sealed class UiEvent {
4 | object Success : UiEvent()
5 | object NavigateUp : UiEvent()
6 | data class ShowSnackbar(val message: UiText) : UiEvent()
7 | }
8 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/SplashScreen.kt:
--------------------------------------------------------------------------------
1 | object SplashScreen {
2 | // In Android-11 and above, its automatically provided but for backward compatibility, we include this
3 | private const val version = "1.0.0-rc01"
4 | const val splashAndroidApi = "androidx.core:core-splashscreen:$version"
5 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/models/RemoteLog.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.models
2 |
3 | data class RemoteLog(
4 | var priority: String,
5 | var tag: String?,
6 | var message: String,
7 | var throwable: String?,
8 | val time: String
9 | )
10 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/AndroidX.kt:
--------------------------------------------------------------------------------
1 | object AndroidX {
2 | private const val coreKtxVersion = "1.7.0"
3 | const val coreKtx = "androidx.core:core-ktx:$coreKtxVersion"
4 |
5 | private const val appCompatVersion = "1.4.0"
6 | const val appCompat = "androidx.appcompat:appcompat:$appCompatVersion"
7 | }
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/CustomLogging.kt:
--------------------------------------------------------------------------------
1 | object CustomLogging {
2 | private const val timberVersion = "5.0.1"
3 | private const val orhanobutVersion = "2.2.0"
4 | const val timber = "com.jakewharton.timber:timber:$timberVersion"
5 | const val orhanobut = "com.orhanobut:logger:$orhanobutVersion"
6 | }
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/utils/UseCaseUtils.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.utils
2 |
3 | object UseCaseUtils {
4 |
5 | fun containsLettersAndDigits(password: String) = password.any { it.isDigit() } &&
6 | password.any { it.isLetter() }
7 | }
8 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/forgotPassword/ForgotPwdUiState.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.forgotPassword
2 |
3 | data class ForgotPwdUiState(
4 | val email: String = "",
5 | val isLoaderVisible: Boolean = false
6 | )
7 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/preference/utilities/KeysPreferences.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.preference.utilities
2 |
3 | object KeysPreferences {
4 | const val SHARED_PREFERENCES_NAME = "preferences_file"
5 | const val KEY_TEXT = "key_text"
6 | }
7 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/firebase/FirebaseFirestoreFeature.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.firebase
2 |
3 | import com.google.firebase.firestore.FirebaseFirestore
4 |
5 | interface FirebaseFirestoreFeature {
6 | fun getFirebaseFirestore(): FirebaseFirestore
7 | }
8 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/login/LoginUiState.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.login
2 |
3 | data class LoginUiState(
4 | val email: String = "",
5 | val pwd: String = "",
6 | val isLoaderVisible: Boolean = false
7 | )
8 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/ValidationResult.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain
2 |
3 | import com.iprayforgod.core.platform.ui.uiEvent.UiText
4 |
5 | data class ValidationResult(
6 | val successful: Boolean,
7 | val errorMessage: UiText.StringResource? = null
8 | )
9 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(project(Modules.core))
7 | "implementation"(Coroutines.coroutineLib)
8 | // For injecting the mocks
9 | "testImplementation"(project(Modules.coreMock))
10 | }
11 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(project(Modules.core))
7 | "implementation"(Coroutines.coroutineLib)
8 | // For injecting the mocks
9 | "testImplementation"(project(Modules.coreMock))
10 | }
11 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/iprayforgod/app/navigation/Route.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.app.navigation
2 |
3 | object Route {
4 | const val ON_BOARDING = "on_boarding"
5 | const val HOME = "home"
6 | const val LOGIN = "login"
7 | const val REGISTRATION = "registration"
8 | const val FORGOT_PASSWORD = "forgot_password"
9 | }
10 |
--------------------------------------------------------------------------------
/android/core-mock/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/base-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(AndroidX.coreKtx)
7 | "implementation"(project(Modules.core))
8 |
9 | "implementation"(project(Modules.featureLoginDomain))
10 | "implementation"(project(Modules.featureCommonDomain))
11 | }
12 |
--------------------------------------------------------------------------------
/android/core/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Accompanist.kt:
--------------------------------------------------------------------------------
1 | object Accompanist {
2 | private const val accompanistPagerVersion = "0.24.2-alpha"
3 | const val accompanistPager = "com.google.accompanist:accompanist-pager:$accompanistPagerVersion"
4 | const val accompanistPagerIndicators = "com.google.accompanist:accompanist-pager-indicators:$accompanistPagerVersion"
5 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/extensions/Context.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.extensions
2 |
3 | import android.content.Context
4 | import android.net.ConnectivityManager
5 |
6 | val Context.connectivityManager: ConnectivityManager
7 | get() =
8 | this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
9 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/entities/inputs/RegistrationInput.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.entities.inputs
2 |
3 | data class RegistrationInput(
4 | val firstName: String,
5 | val lastName: String,
6 | val email: String,
7 | val password: String,
8 | val confirmPassword: String
9 | )
10 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/drawable/ic_home.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/compose-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(project(Modules.core))
7 | "implementation"(project(Modules.coreUi))
8 | "implementation"(project(Modules.featureLoginDomain))
9 | "implementation"(project(Modules.featureCommonDomain))
10 | }
11 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF00C713
4 | #FF00790C
5 | #FF000000
6 | #FFFFFFFF
7 |
8 | #FFFFFF
9 |
10 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Coroutines.kt:
--------------------------------------------------------------------------------
1 | object Coroutines {
2 | const val version = "1.6.0"
3 | const val coroutineLib = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
4 | const val coroutineAndroidLib = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
5 | const val coroutinePlayServicesLib = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$version"
6 | }
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/ProjectConfig.kt:
--------------------------------------------------------------------------------
1 | object ProjectConfig {
2 | const val appId = "com.iprayforgod.app"
3 | const val compileSdk = 31
4 | const val minSdk = 21
5 | const val targetSdk = 31
6 | const val versionCode = 1
7 | const val versionName = "1.0"
8 | const val jvmTarget = "1.8"
9 | const val testRunner = "com.iprayforgod.app.TestRunner"
10 |
11 | }
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/main/java/com/iprayforgod/common_domain/repository/CommonRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain.repository
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import kotlinx.coroutines.flow.Flow
6 |
7 | interface CommonRepository {
8 | fun saveUser(input: User): Flow>
9 | }
10 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/java/com/iprayforgod/core_ui/theme/Shape.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core_ui.theme
2 |
3 | import androidx.compose.foundation.shape.RoundedCornerShape
4 | import androidx.compose.material.Shapes
5 | import androidx.compose.ui.unit.dp
6 |
7 | val Shapes = Shapes(
8 | small = RoundedCornerShape(4.dp),
9 | medium = RoundedCornerShape(4.dp),
10 | large = RoundedCornerShape(0.dp)
11 | )
12 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/service/ForgotPwdService.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.service
2 |
3 | import com.iprayforgod.core.platform.functional.State
4 | import com.iprayforgod.login_domain.entities.inputs.ForgotPwdInput
5 | import kotlinx.coroutines.flow.Flow
6 |
7 | interface ForgotPwdService {
8 | fun forgotPwd(input: ForgotPwdInput): Flow>
9 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/logger/LoggerFeature.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.logger
2 |
3 | interface LoggerFeature {
4 | fun d(featureName: String?, msg: String?)
5 | fun e(featureName: String?, msg: String?)
6 | fun w(featureName: String?, msg: String?)
7 | fun v(featureName: String?, msg: String?)
8 | fun i(featureName: String?, msg: String?)
9 | }
10 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/FlavourUtils.kt:
--------------------------------------------------------------------------------
1 | object FlavourUtils {
2 | object BuildTypes {
3 | const val DEBUG = "debug"
4 | const val RELEASE = "release"
5 | }
6 |
7 | object ProductFlavors {
8 | const val DEV = "dev"
9 | const val INTERNAL = "internal"
10 | const val PUBLIC = "public"
11 | }
12 |
13 | object FlavorDimensions {
14 | const val DEFAULT = "default"
15 | }
16 | }
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/values/splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/main/java/com/iprayforgod/common_domain/usecases/CommonModuleUseCases.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain.usecases
2 |
3 | import com.iprayforgod.common_domain.usecases.module.SaveUserUseCase
4 |
5 | data class CommonModuleUseCases(
6 | // --> ***************** REPO_CALL *******************
7 | val saveUserUseCase: SaveUserUseCase
8 | // --> ***************** REPO_CALL *******************
9 | )
10 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/registration/RegistrationUiState.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.registration
2 |
3 | data class RegistrationUiState(
4 | val firstName: String = "",
5 | val lastName: String = "",
6 | val email: String = "",
7 | val pwd: String = "",
8 | val confirmPwd: String = "",
9 | val isLoaderVisible: Boolean = false
10 | )
11 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/di/qualifiers/Dispatchers.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.di.qualifiers
2 |
3 | import javax.inject.Qualifier
4 |
5 | @Retention(AnnotationRetention.BINARY)
6 | @Qualifier
7 | annotation class DefaultDispatcher
8 |
9 | @Retention(AnnotationRetention.BINARY)
10 | @Qualifier
11 | annotation class IoDispatcher
12 |
13 | @Retention(AnnotationRetention.BINARY)
14 | @Qualifier
15 | annotation class MainDispatcher
16 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/service/LoginService.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.service
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import com.iprayforgod.login_domain.entities.inputs.LoginInput
6 | import kotlinx.coroutines.flow.Flow
7 |
8 | interface LoginService {
9 | fun loginUser(input: LoginInput): Flow>
10 | }
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/forgotPassword/ForgotPwdViewEvent.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.forgotPassword
2 |
3 | sealed class ForgotPwdViewEvent {
4 | object OnSubmitClick : ForgotPwdViewEvent()
5 | data class OnViewChangedEmail(val valueEmail: String) : ForgotPwdViewEvent()
6 | data class OnViewLoaderVisibility(val isVisible: Boolean) : ForgotPwdViewEvent()
7 | }
8 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jan 07 19:01:21 CET 2022
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 | # Modify the content of this from your machine of Java-11
8 | org.gradle.java.home=/Applications/Android Studio.app/Contents/jvm/jdk-11.0.15.1.jdk
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/features/preferences/PreferenceDatastore.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.features.preferences
2 |
3 | import kotlinx.coroutines.flow.Flow
4 |
5 | interface PreferenceDatastore {
6 |
7 | suspend fun saveCurrentUser(text: String)
8 | suspend fun readCurrentUser(): Flow
9 |
10 | suspend fun saveOnBoardingState(text: Boolean)
11 | suspend fun readOnBoardingState(): Flow
12 | }
13 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/drawable/ic_logout.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/firebase/FirebaseAuthImpl.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.firebase
2 |
3 | import com.google.firebase.auth.FirebaseAuth
4 | import com.iprayforgod.core.domain.features.firebase.FirebaseAuthFeature
5 |
6 | class FirebaseAuthImpl(
7 | private val firebaseAuth: FirebaseAuth
8 | ) : FirebaseAuthFeature {
9 |
10 | override fun getFirebaseAuth(): FirebaseAuth { return firebaseAuth }
11 | }
12 |
--------------------------------------------------------------------------------
/android/core/src/test/java/com/iprayforgod/core/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Retrofit.kt:
--------------------------------------------------------------------------------
1 | object Retrofit {
2 | private const val version = "2.9.0"
3 | const val retrofit = "com.squareup.retrofit2:retrofit:$version"
4 | const val moshiConverter = "com.squareup.retrofit2:converter-moshi:$version"
5 |
6 | private const val okHttpVersion = "5.0.0-alpha.2"
7 | const val okHttp = "com.squareup.okhttp3:okhttp:$okHttpVersion"
8 | const val okHttpLoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
9 | }
--------------------------------------------------------------------------------
/android/core-mock/src/test/java/com/droid/core_mock/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.droid.core_mock
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/service/RegistrationService.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.service
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import com.iprayforgod.login_domain.entities.inputs.RegistrationInput
6 | import kotlinx.coroutines.flow.Flow
7 |
8 | interface RegistrationService {
9 | fun registerUser(input: RegistrationInput): Flow>
10 | }
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/repository/firebase/FirebaseAuthRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.repository.firebase
2 |
3 | import com.google.firebase.auth.FirebaseAuth
4 | import com.iprayforgod.core.domain.features.firebase.FirebaseAuthFeature
5 |
6 | class FirebaseAuthRepository(
7 | private val authFeature: FirebaseAuthFeature
8 | ) {
9 |
10 | fun getFirebaseAuth(): FirebaseAuth {
11 | return authFeature.getFirebaseAuth()
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/repository/parser/ParserRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.repository.parser
2 |
3 | import com.iprayforgod.core.domain.features.parser.ParserFeature
4 | import com.iprayforgod.core.domain.models.User
5 |
6 | class ParserRepository(
7 | private val parserFeature: ParserFeature
8 | ) {
9 |
10 | fun convertUserObjectToJson(user: User): String {
11 | return parserFeature.convertUserObjectToJson(user)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/features/login/login_data/src/test/java/com/iprayforgod/login_data/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_data
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/features/common/common_data/src/test/java/com/iprayforgod/common_data/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_data
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/functional/State.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.functional
2 |
3 | sealed class State {
4 | class Loading : State()
5 | data class Success(val data: T) : State()
6 | data class Failed(val message: String) : State()
7 |
8 | companion object {
9 | fun loading() = Loading()
10 | fun success(data: T) = Success(data)
11 | fun failed(message: String) = Failed(message)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/test/java/com/iprayforgod/common_domain/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/java/com/iprayforgod/core_ui/theme/Color.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core_ui.theme
2 |
3 | import androidx.compose.ui.graphics.Color
4 |
5 | val BrightGreen = Color(0xFF00C713)
6 | val DarkGreen = Color(0xFF00790C)
7 | val Orange = Color(0xFFFFAA00)
8 | val CarbColor = Color(0xFFEEFF00)
9 | val ProteinColor = Orange
10 | val FatColor = Color(0xFFF44336)
11 | val LightGray = Color(0xFF808080)
12 | val MediumGray = Color(0xFF404040)
13 | val DarkGray = Color(0xFF202020)
14 | val TextWhite = Color(0xFFEEEEEE)
15 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/firebase/FirebaseFirestoreImpl.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.firebase
2 |
3 | import com.google.firebase.firestore.FirebaseFirestore
4 | import com.iprayforgod.core.domain.features.firebase.FirebaseFirestoreFeature
5 |
6 | class FirebaseFirestoreImpl(
7 | private val firebaseFirestore: FirebaseFirestore
8 | ) : FirebaseFirestoreFeature {
9 |
10 | override fun getFirebaseFirestore(): FirebaseFirestore { return firebaseFirestore }
11 | }
12 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/repository/firebase/FirebaseFirestoreRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.repository.firebase
2 |
3 | import com.google.firebase.firestore.FirebaseFirestore
4 | import com.iprayforgod.core.domain.features.firebase.FirebaseFirestoreFeature
5 |
6 | class FirebaseFirestoreRepository(
7 | private val fireStore: FirebaseFirestoreFeature
8 | ) {
9 |
10 | fun getFirebaseFirestore(): FirebaseFirestore {
11 | return fireStore.getFirebaseFirestore()
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/ui/uiEvent/UiText.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.ui.uiEvent
2 |
3 | import android.content.Context
4 |
5 | sealed class UiText {
6 | data class DynamicString(val text: String) : UiText()
7 | data class StringResource(val resId: Int) : UiText()
8 |
9 | fun asString(context: Context): String {
10 | return when (this) {
11 | is DynamicString -> text
12 | is StringResource -> context.getString(resId)
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/test/java/com/iprayforgod/login_presentation/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/login/LoginViewResponseEvent.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.login
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.ui.uiEvent.UiText
5 |
6 | sealed class LoginViewResponseEvent {
7 | object SaveUserSuccess : LoginViewResponseEvent()
8 | data class ShowSnackbar(val message: UiText) : LoginViewResponseEvent()
9 | data class LoginApiSuccess(val user: User) : LoginViewResponseEvent()
10 | }
11 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/java/com/iprayforgod/core_ui/theme/Dimensions.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core_ui.theme
2 |
3 | import androidx.compose.runtime.compositionLocalOf
4 | import androidx.compose.ui.unit.Dp
5 | import androidx.compose.ui.unit.dp
6 |
7 | data class Dimensions(
8 | val default: Dp = 0.dp,
9 | val spaceExtraSmall: Dp = 4.dp,
10 | val spaceSmall: Dp = 8.dp,
11 | val spaceMedium: Dp = 16.dp,
12 | val spaceLarge: Dp = 32.dp,
13 | val spaceExtraLarge: Dp = 64.dp
14 | )
15 |
16 | val LocalSpacing = compositionLocalOf { Dimensions() }
17 |
--------------------------------------------------------------------------------
/android/core-mock/src/main/java/com/droid/core_mock/core/domain/logger/FakeLoggerFeature.kt:
--------------------------------------------------------------------------------
1 | package com.droid.core_mock.core.domain.logger
2 |
3 | import com.iprayforgod.core.domain.features.logger.LoggerFeature
4 |
5 | class FakeLoggerFeature : LoggerFeature {
6 | override fun d(featureName: String?, msg: String?) {}
7 | override fun e(featureName: String?, msg: String?) {}
8 | override fun w(featureName: String?, msg: String?) {}
9 | override fun v(featureName: String?, msg: String?) {}
10 | override fun i(featureName: String?, msg: String?) {}
11 | }
12 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/iprayforgod/app/application/IPrayForGodApp.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.app.application
2 |
3 | import android.app.Application
4 | import com.iprayforgod.app.BuildConfig
5 | import com.iprayforgod.core.data.implementation.logger.utilities.AppLoggerConfig
6 | import dagger.hilt.android.HiltAndroidApp
7 |
8 | @HiltAndroidApp
9 | class IPrayForGodApp : Application() {
10 | override fun onCreate() {
11 | super.onCreate()
12 | if (BuildConfig.DEBUG) {
13 | AppLoggerConfig(this).initializeLogging()
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/models/DeviceDetails.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.models
2 |
3 | import android.os.Build
4 |
5 | data class DeviceDetails(
6 | val deviceId: String,
7 | val osVersion: String = Build.VERSION.RELEASE,
8 | val manufacturer: String = Build.MANUFACTURER,
9 | val brand: String = Build.BRAND,
10 | val device: String = Build.DEVICE,
11 | val model: String = Build.MODEL
12 | /*val appVersionName: String = BuildConfig.VERSION_NAME,
13 | val appVersionCode: Int = BuildConfig.VERSION_CODE*/
14 | )
15 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/androidTest/java/com/iprayforggod/HiltTestRunner.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforggod
2 |
3 | import android.app.Application
4 | import android.content.Context
5 | import androidx.test.runner.AndroidJUnitRunner
6 | import dagger.hilt.android.testing.HiltTestApplication
7 |
8 | class HiltTestRunner : AndroidJUnitRunner() {
9 |
10 | override fun newApplication(
11 | cl: ClassLoader?,
12 | className: String?,
13 | context: Context?
14 | ): Application {
15 | return super.newApplication(cl, HiltTestApplication::class.java.name, context)
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/main/java/com/iprayforgod/common_domain/usecases/module/SaveUserUseCase.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain.usecases.module
2 |
3 | import com.iprayforgod.common_domain.repository.CommonRepository
4 | import com.iprayforgod.core.domain.models.User
5 | import com.iprayforgod.core.platform.functional.State
6 | import kotlinx.coroutines.flow.Flow
7 |
8 | class SaveUserUseCase(
9 | private val commonRepository: CommonRepository
10 | ) {
11 |
12 | operator fun invoke(user: User): Flow> {
13 | return commonRepository.saveUser(user)
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/drawable/ic_wallpaper.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_room_room_common_2_2_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_room_room_common_2_4_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/iprayforgod/app/MainVm.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.app
2 |
3 | import androidx.lifecycle.ViewModel
4 | import androidx.lifecycle.viewModelScope
5 | import kotlinx.coroutines.delay
6 | import kotlinx.coroutines.flow.MutableStateFlow
7 | import kotlinx.coroutines.flow.asStateFlow
8 | import kotlinx.coroutines.launch
9 |
10 | class MainVm : ViewModel() {
11 |
12 | private val _isLoading = MutableStateFlow(true)
13 | val isLoading = _isLoading.asStateFlow()
14 |
15 | init {
16 | viewModelScope.launch {
17 | delay(0)
18 | _isLoading.value = false
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/android/core-mock/src/main/java/com/droid/core_mock/features/common/common_domain/repository/FakeSuccessCommonRepository.kt:
--------------------------------------------------------------------------------
1 | package com.droid.core_mock.features.common.common_domain.repository
2 |
3 | import com.iprayforgod.common_domain.repository.CommonRepository
4 | import com.iprayforgod.core.domain.models.User
5 | import com.iprayforgod.core.platform.functional.State
6 | import kotlinx.coroutines.flow.Flow
7 | import kotlinx.coroutines.flow.flow
8 |
9 | class FakeSuccessCommonRepository : CommonRepository {
10 | override fun saveUser(input: User): Flow> {
11 | return flow { emit(State.success(Unit)) }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/core-ui/build.gradle.kts:
--------------------------------------------------------------------------------
1 | apply {
2 | from("$rootDir/compose-module.gradle")
3 | }
4 |
5 | dependencies {
6 | "implementation"(Compose.compiler)
7 | "implementation"(Compose.ui)
8 | "implementation"(Compose.uiToolingPreview)
9 | "implementation"(Compose.hiltNavigationCompose)
10 | "implementation"(Compose.material)
11 | "implementation"(Compose.runtime)
12 | "implementation"(Compose.navigation)
13 | "implementation"(Compose.viewModelCompose)
14 | "implementation"(Compose.activityCompose)
15 |
16 | "implementation"(Google.material)
17 |
18 | "implementation"(SplashScreen.splashAndroidApi)
19 | }
20 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/login/LoginViewEvent.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.login
2 |
3 | import com.iprayforgod.core.domain.models.User
4 |
5 | sealed class LoginViewEvent {
6 | object OnLoginViewClick : LoginViewEvent()
7 | data class LoginSaveUserToPreference(val user: User) : LoginViewEvent()
8 | data class OnViewChangedEmail(val valueEmail: String) : LoginViewEvent()
9 | data class OnViewChangedPassword(val valuePwd: String) : LoginViewEvent()
10 | data class OnViewLoaderVisibility(val isVisible: Boolean) : LoginViewEvent()
11 | }
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_room_room_migration_2_2_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/usecases/forgotPassword/ForgotPwdUseCase.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.usecases.forgotPassword
2 |
3 | import com.iprayforgod.core.platform.functional.State
4 | import com.iprayforgod.login_domain.entities.inputs.ForgotPwdInput
5 | import com.iprayforgod.login_domain.repository.LoginRepository
6 | import kotlinx.coroutines.flow.Flow
7 |
8 | class ForgotPwdUseCase(
9 | private val loginRepo: LoginRepository
10 | ) {
11 |
12 | operator fun invoke(input: ForgotPwdInput): Flow> {
13 | return loginRepo.forgotPassword(input)
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/domain/models/User.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.domain.models
2 |
3 | import android.os.Parcelable
4 | import com.squareup.moshi.JsonClass
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * A data model class for User with required fields.
9 | */
10 | @JsonClass(generateAdapter = true)
11 | @Parcelize
12 | data class User(
13 | val id: String = "",
14 | val firstName: String = "",
15 | val lastName: String = "",
16 | val email: String = "",
17 | val image: String = "",
18 | val mobile: Long = 0,
19 | val gender: String = "",
20 | val profileCompleted: Int = 0
21 | ) : Parcelable
22 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_datastore_datastore_core_1_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/usecases/login/LoginUserUseCase.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.usecases.login
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import com.iprayforgod.login_domain.entities.inputs.LoginInput
6 | import com.iprayforgod.login_domain.repository.LoginRepository
7 | import kotlinx.coroutines.flow.Flow
8 |
9 | class LoginUserUseCase(
10 | private val loginRepo: LoginRepository
11 | ) {
12 |
13 | operator fun invoke(input: LoginInput): Flow> {
14 | return loginRepo.loginUser(input)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_reflect_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/parser/ParserFeatureImpl.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.parser
2 |
3 | import com.iprayforgod.core.domain.features.parser.ParserFeature
4 | import com.iprayforgod.core.domain.models.User
5 | import com.squareup.moshi.JsonAdapter
6 | import com.squareup.moshi.Moshi
7 |
8 | class ParserFeatureImpl(
9 | private val moshi: Moshi
10 | ) : ParserFeature {
11 |
12 | override fun convertUserObjectToJson(user: User): String {
13 | val jsonAdapter: JsonAdapter = moshi.adapter(User::class.java)
14 | jsonAdapter.toJson(user)?.let { return it } ?: run { return "" }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/di/modules/AnalyticsModule.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.di.modules
2 |
3 | import com.google.firebase.analytics.FirebaseAnalytics
4 | import com.google.firebase.analytics.ktx.analytics
5 | import com.google.firebase.ktx.Firebase
6 | import dagger.Module
7 | import dagger.Provides
8 | import dagger.hilt.InstallIn
9 | import dagger.hilt.components.SingletonComponent
10 | import javax.inject.Singleton
11 |
12 | @Module
13 | @InstallIn(SingletonComponent::class)
14 | object AnalyticsModule {
15 |
16 | @Provides
17 | @Singleton
18 | fun provideAnalytics(): FirebaseAnalytics {
19 | return Firebase.analytics
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_compiler_compiler_1_2_0_alpha07.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/usecases/registration/RegisterUserUseCase.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.usecases.registration
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import com.iprayforgod.login_domain.entities.inputs.RegistrationInput
6 | import com.iprayforgod.login_domain.repository.LoginRepository
7 | import kotlinx.coroutines.flow.Flow
8 |
9 | class RegisterUserUseCase(
10 | private val loginRepo: LoginRepository
11 | ) {
12 |
13 | operator fun invoke(input: RegistrationInput): Flow> {
14 | return loginRepo.registerUser(input)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/core-mock/src/main/java/com/droid/core_mock/core/modules/logger/repository/FakeLoggerRepository.kt:
--------------------------------------------------------------------------------
1 | package com.droid.core_mock.core.modules.logger.repository
2 |
3 | import com.droid.core_mock.core.domain.logger.FakeLoggerFeature
4 | import com.iprayforgod.core.data.repository.logger.LoggerRepository
5 |
6 | class FakeLoggerRepository : LoggerRepository(loggerFeature = FakeLoggerFeature()) {
7 | override fun d(featureName: String?, msg: String?) { }
8 | override fun e(featureName: String?, msg: String?) { }
9 | override fun w(featureName: String?, msg: String?) { }
10 | override fun v(featureName: String?, msg: String?) { }
11 | override fun i(featureName: String?, msg: String?) { }
12 | }
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_java8_2_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
3 | repositories {
4 | google()
5 | mavenCentral()
6 | jcenter() // Warning: this repository is going to shut down soon
7 | }
8 | }
9 | rootProject.name = "iPrayForGod"
10 | include ':app'
11 | include ':core'
12 | include ':core-ui'
13 | include ':features'
14 | include ':features:login'
15 | include ':features:login:login_data'
16 | include ':features:login:login_domain'
17 | include ':features:login:login_presentation'
18 | include ':features:common'
19 | include ':features:common:common_data'
20 | include ':features:common:common_domain'
21 | include ':core-mock'
22 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_datastore_datastore_preferences_core_1_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_9_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/repository/LoginRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.repository
2 |
3 | import com.iprayforgod.core.domain.models.User
4 | import com.iprayforgod.core.platform.functional.State
5 | import com.iprayforgod.login_domain.entities.inputs.ForgotPwdInput
6 | import com.iprayforgod.login_domain.entities.inputs.LoginInput
7 | import com.iprayforgod.login_domain.entities.inputs.RegistrationInput
8 | import kotlinx.coroutines.flow.Flow
9 |
10 | interface LoginRepository {
11 | fun registerUser(input: RegistrationInput): Flow>
12 | fun loginUser(input: LoginInput): Flow>
13 | fun forgotPassword(input: ForgotPwdInput): Flow>
14 | }
15 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_ibm_icu_icu4j_53_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_mockk_mockk_1_10_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_json_json_20201115.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/repository/logger/LoggerRepository.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.repository.logger
2 |
3 | import com.iprayforgod.core.domain.features.logger.LoggerFeature
4 |
5 | open class LoggerRepository(
6 | private val loggerFeature: LoggerFeature
7 | ) {
8 | open fun d(featureName: String?, msg: String?) { loggerFeature.d(featureName, msg) }
9 | open fun e(featureName: String?, msg: String?) { loggerFeature.e(featureName, msg) }
10 | open fun w(featureName: String?, msg: String?) { loggerFeature.w(featureName, msg) }
11 | open fun v(featureName: String?, msg: String?) { loggerFeature.v(featureName, msg) }
12 | open fun i(featureName: String?, msg: String?) { loggerFeature.i(featureName, msg) }
13 | }
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_junit_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_utils_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_tree_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_util_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/logger/utilities/modules/OrHaNoButModule.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.logger.utilities.modules
2 |
3 | import android.content.Context
4 | import com.iprayforgod.core.data.implementation.logger.utilities.adapters.AndroidDiskLogAdapter
5 | import com.iprayforgod.core.data.implementation.logger.utilities.adapters.AndroidLogCatAdapter
6 | import com.orhanobut.logger.Logger
7 |
8 | class OrHaNoButModule {
9 |
10 | fun initialize(context: Context) {
11 | // Log to be displayed in LogCat
12 | Logger.addLogAdapter(AndroidLogCatAdapter().initiate())
13 | // Log to be saved in the disk
14 | Logger.addLogAdapter(AndroidDiskLogAdapter().initiate(context))
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android/features/common/common_data/src/main/java/com/iprayforgod/common_data/repository/CommonRepositoryImpl.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_data.repository
2 |
3 | import com.iprayforgod.common_data.service.preferences.SaveUserService
4 | import com.iprayforgod.common_domain.repository.CommonRepository
5 | import com.iprayforgod.core.domain.models.User
6 | import com.iprayforgod.core.platform.functional.State
7 | import kotlinx.coroutines.flow.Flow
8 | import javax.inject.Inject
9 |
10 | class CommonRepositoryImpl @Inject constructor(
11 | private val saveUserService: SaveUserService
12 | ) : CommonRepository {
13 |
14 | // --> SAVE-USER
15 | override fun saveUser(input: User): Flow> {
16 | return saveUserService.saveUser(input)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_api_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_core_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_stub_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_sandbox_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_truth_truth_1_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_8_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_mockk_mockk_dsl_1_10_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_objenesis_objenesis_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_dagger_dagger_2_40.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/logger/utilities/AppLogger.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.logger.utilities
2 |
3 | import com.iprayforgod.core.data.implementation.logger.utilities.AppLoggerConfig.Companion.TAG_LOG_CAT
4 | import timber.log.Timber
5 |
6 | /**
7 | * Android Log wrapper class that can use [String.format] in logging message
8 | */
9 | object AppLogger {
10 | fun d(msg: String?) { msg?.let { Timber.tag(TAG_LOG_CAT).d(it) } }
11 | fun e(msg: String?) { msg?.let { Timber.tag(TAG_LOG_CAT).e(it) } }
12 | fun w(msg: String?) { msg?.let { Timber.tag(TAG_LOG_CAT).w(it) } }
13 | fun v(msg: String?) { msg?.let { Timber.tag(TAG_LOG_CAT).v(it) } }
14 | fun i(msg: String?) { msg?.let { Timber.tag(TAG_LOG_CAT).i(it) } }
15 | }
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_10_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_okhttp_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_commons_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_pluginapi_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_resources_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_shadowapi_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/platform/functional/Resource.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.platform.functional
2 |
3 | /**
4 | * By making a class a sealed class, We will be telling the compiler that only the sub-classes possible are the ones that we can put in here
5 | * ***
6 | * On comparing when with sealed class: -> When condition will have a else case but a sealed class already knows the number of conditions it has so there is no scenario of else condition
7 | */
8 | sealed class Resource(
9 | val data: T? = null,
10 | val error: Throwable? = null
11 | ) {
12 | class Success(data: T) : Resource(data)
13 | class Loading(data: T? = null) : Resource(data)
14 | class Error(throwable: Throwable, data: T? = null) : Resource(data, throwable)
15 | }
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_analysis_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_moshi_moshi_1_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_context_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core-mock/src/main/java/com/droid/core_mock/features/common/common_domain/repository/FakeFailureMsgCheckCommonRepository.kt:
--------------------------------------------------------------------------------
1 | package com.droid.core_mock.features.common.common_domain.repository
2 |
3 | import com.iprayforgod.common_domain.repository.CommonRepository
4 | import com.iprayforgod.core.domain.models.User
5 | import com.iprayforgod.core.platform.functional.State
6 | import kotlinx.coroutines.flow.Flow
7 | import kotlinx.coroutines.flow.flow
8 |
9 | class FakeFailureMsgCheckCommonRepository : CommonRepository {
10 |
11 | companion object {
12 | const val FAILURE_MSG_SAVE_USER = "Saving the user failed for the repository"
13 | }
14 |
15 | override fun saveUser(input: User): Flow> {
16 | return flow { emit(State.failed(FAILURE_MSG_SAVE_USER)) }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_7_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/androidTest/java/com/iprayforggod/end_to_end_tests/LoginFunctionalityTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforggod.end_to_end_tests
2 |
3 | import androidx.compose.ui.ExperimentalComposeUiApi
4 | import androidx.compose.ui.test.junit4.createAndroidComposeRule
5 | import androidx.navigation.NavHostController
6 | import com.iprayforgod.app.MainActivity
7 | import dagger.hilt.android.testing.HiltAndroidRule
8 | import dagger.hilt.android.testing.HiltAndroidTest
9 | import org.junit.Rule
10 |
11 | @ExperimentalComposeUiApi
12 | @HiltAndroidTest
13 | class LoginFunctionalityTest {
14 |
15 | @get:Rule
16 | val hiltRule = HiltAndroidRule(this)
17 |
18 | @get:Rule
19 | val composeRule = createAndroidComposeRule()
20 |
21 |
22 | private lateinit var navController: NavHostController
23 |
24 |
25 | }
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_dagger_hilt_core_2_40.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_mockk_mockk_dsl_jvm_1_10_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_mockito_mockito_core_3_6_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_annotations_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_robolectric_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_1_10_15.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_annotations_20_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_mockk_mockk_common_1_10_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__app_cash_turbine_turbine_jvm_0_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_mockito_mockito_inline_3_6_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core-ui/src/main/res/drawable/ic_default_android.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_utils_reflector_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.kts.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/core-mock/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/core-ui/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/core/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.kts.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_failureaccess_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_grpc_grpc_protobuf_lite_1_44_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_bouncycastle_bcprov_jdk15on_1_68.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Firebase.kt:
--------------------------------------------------------------------------------
1 | object Firebase {
2 | private const val firebaseBomVersion = "30.2.0"
3 | const val googleFirebase = "com.google.firebase:firebase-bom:$firebaseBomVersion"
4 |
5 | const val firebaseKtx = "com.google.firebase:firebase-common-ktx"
6 | const val firebaseDatabaseKtx = "com.google.firebase:firebase-database-ktx"
7 | const val firebaseAnalytics = "com.google.firebase:firebase-analytics"
8 | const val firebaseCrashlyticsKtx = "com.google.firebase:firebase-crashlytics-ktx"
9 | const val firebaseAnalyticsKtx = "com.google.firebase:firebase-analytics-ktx"
10 | const val firebaseAuthKtx = "com.google.firebase:firebase-auth-ktx"
11 |
12 | const val firebaseFirestoreKtx = "com.google.firebase:firebase-firestore-ktx"
13 | const val firebaseStorageKtx = "com.google.firebase:firebase-storage-ktx"
14 | }
--------------------------------------------------------------------------------
/android/core-ui/src/androidTest/java/com/iprayforgod/core_ui/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core_ui
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.com.iprayforgod.core_ui.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/main/java/com/iprayforgod/login_presentation/states/registration/RegistrationViewEvent.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation.states.registration
2 |
3 | sealed class RegistrationViewEvent {
4 | object OnRegisterViewClick : RegistrationViewEvent()
5 | data class OnViewChangedFirstName(val valueFirstName: String) : RegistrationViewEvent()
6 | data class OnViewChangedLastName(val valueLastName: String) : RegistrationViewEvent()
7 | data class OnViewChangedEmail(val valueEmail: String) : RegistrationViewEvent()
8 | data class OnViewChangedPassword(val valuePwd: String) : RegistrationViewEvent()
9 | data class OnViewChangedConfirmPassword(val valueConfirmPwd: String) : RegistrationViewEvent()
10 | data class OnViewLoaderVisibility(val isVisible: Boolean) : RegistrationViewEvent()
11 | }
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_guava_30_1_1_android.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_shadows_framework_4_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/login/login_data/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/features/common/common_data/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/features/common/common_domain/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/features/login/login_data/src/androidTest/java/com/iprayforgod/login_data/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_data
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.droid.login_data.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/main/java/com/iprayforgod/login_domain/states/LoginViewStates.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain.states
2 |
3 | import com.iprayforgod.core.platform.ui.uiEvent.UiText
4 | import com.iprayforgod.login_domain.ValidationResult
5 |
6 | sealed class LoginViewStates {
7 | object InitialState : LoginViewStates()
8 | object NoConnectivity : LoginViewStates()
9 | data class Loading(val isLoading: Boolean) : LoginViewStates()
10 | data class LoginStatus(val isUserLoggedIn: Boolean) : LoginViewStates()
11 | data class EmailValidationStatus(val result: ValidationResult) : LoginViewStates()
12 | data class PasswordValidationStatus(val result: ValidationResult) : LoginViewStates()
13 | object LoginValidationSuccessful : LoginViewStates()
14 | data class ErrorState(val errorMessage: UiText) : LoginViewStates()
15 | }
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_sqlite_sqlite_2_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okhttp3_mockwebserver_4_9_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_checkerframework_checker_qual_3_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/common/common_data/src/androidTest/java/com/iprayforgod/common_data/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_data
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.droid.common_data.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_agent_1_10_15.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/login/login_domain/src/androidTest/java/com/iprayforgod/login_domain/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_domain
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.droid.login_domain.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_5_0_0_alpha_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/common/common_data/src/main/java/com/iprayforgod/common_data/di/SaveDataModule.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_data.di
2 |
3 | import com.iprayforgod.common_data.repository.CommonRepositoryImpl
4 | import com.iprayforgod.common_data.service.preferences.SaveUserService
5 | import com.iprayforgod.common_domain.repository.CommonRepository
6 | import dagger.Module
7 | import dagger.Provides
8 | import dagger.hilt.InstallIn
9 | import dagger.hilt.components.SingletonComponent
10 | import javax.inject.Singleton
11 |
12 | @Module
13 | @InstallIn(SingletonComponent::class)
14 | object SaveDataModule {
15 |
16 | @Provides
17 | @Singleton
18 | fun provideLoginRepository(
19 | saveUserService: SaveUserService
20 | ): CommonRepository {
21 | return CommonRepositoryImpl(
22 | saveUserService = saveUserService
23 | )
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/androidTest/java/com/iprayforgod/common_domain/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.droid.common_domain.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_almworks_sqlite4java_sqlite4java_1_0_392.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_retrofit2_converter_moshi_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/login/login_presentation/src/androidTest/java/com/iprayforgod/login_presentation/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.login_presentation
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import androidx.test.platform.app.InstrumentationRegistry
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | /**
10 | * Instrumented test, which will execute on an Android device.
11 | *
12 | * See [testing documentation](http://d.android.com/tools/testing).
13 | */
14 | @RunWith(AndroidJUnit4::class)
15 | class ExampleInstrumentedTest {
16 | @Test
17 | fun useAppContext() {
18 | // Context of the app under test.
19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20 | assertEquals("com.droid.login_presentation.test", appContext.packageName)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_core_core_ktx_1_7_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_room_room_ktx_2_4_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_firebase_firebase_encoders_17_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_protobuf_protobuf_javalite_3_19_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_test_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_text_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_unit_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_nhaarman_mockitokotlin2_mockito_kotlin_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/core/src/main/java/com/iprayforgod/core/data/implementation/logger/utilities/modules/CrashReportingTree.java:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core.data.implementation.logger.utilities.modules;
2 |
3 | import android.util.Log;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import timber.log.Timber;
8 |
9 | public class CrashReportingTree extends Timber.Tree {
10 | @Override protected void log(int priority, String tag, @NonNull String message, Throwable t) {
11 | if (priority == Log.VERBOSE || priority == Log.DEBUG) {
12 | return;
13 | }
14 |
15 | /*FakeCrashLibrary.log(priority, tag, message);
16 |
17 | if (t != null) {
18 | if (priority == Log.ERROR) {
19 | FakeCrashLibrary.logError(t);
20 | } else if (priority == Log.WARN) {
21 | FakeCrashLibrary.logWarning(t);
22 | }
23 | }*/
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_checkerframework_checker_compat_qual_2_5_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_datastore_datastore_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_runtime_runtime_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_firebase_firebase_annotations_16_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_tooling_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__junit_junit_4_13_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_material_material_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_sqlite_sqlite_framework_2_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/buildSrc/src/main/java/Modules.kt:
--------------------------------------------------------------------------------
1 | object Modules {
2 | const val app = ":app"
3 |
4 | const val core = ":core"
5 | const val coreUi = ":core-ui"
6 |
7 | const val coreMock = ":core-mock"
8 |
9 | // -------------------- Login -------------------------->
10 | const val featureLogin = ":features:login"
11 | const val featureLoginData = ":features:login:login_data"
12 | const val featureLoginDomain = ":features:login:login_domain"
13 | const val featureLoginPresentation = ":features:login:login_presentation"
14 | // -------------------- Login -------------------------->
15 |
16 | // -------------------- Common ------------------------>
17 | const val featureCommon = ":features:common"
18 | const val featureCommonData = ":features:common:common_data"
19 | const val featureCommonDomain = ":features:common:common_domain"
20 | // -------------------- Common ------------------------>
21 |
22 | }
--------------------------------------------------------------------------------
/android/core-ui/src/main/java/com/iprayforgod/core_ui/composables/ComposablesText.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.core_ui.composables
2 |
3 | import androidx.compose.material.Text
4 | import androidx.compose.runtime.Composable
5 | import androidx.compose.ui.graphics.Color
6 | import androidx.compose.ui.text.TextStyle
7 | import androidx.compose.ui.text.font.FontFamily
8 | import androidx.compose.ui.text.style.TextAlign
9 | import androidx.compose.ui.unit.TextUnit
10 | import androidx.compose.ui.unit.sp
11 |
12 | @Composable
13 | fun CustomText(
14 | contentValue: String,
15 | textColor: Color,
16 | textAlign: TextAlign = TextAlign.Start,
17 | fontSize: TextUnit = 9.sp
18 | ) {
19 | Text(
20 | text = contentValue,
21 | color = textColor,
22 | textAlign = textAlign,
23 | style = TextStyle(
24 | fontSize = fontSize,
25 | fontFamily = FontFamily.Monospace
26 | )
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_activity_activity_ktx_1_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_geometry_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_graphics_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_8_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_animation_animation_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_hilt_hilt_navigation_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_7_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_firebase_firebase_encoders_proto_16_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/features/common/common_domain/src/main/java/com/iprayforgod/common_domain/di/CommonDomainModule.kt:
--------------------------------------------------------------------------------
1 | package com.iprayforgod.common_domain.di
2 |
3 | import com.iprayforgod.common_domain.repository.CommonRepository
4 | import com.iprayforgod.common_domain.usecases.CommonModuleUseCases
5 | import com.iprayforgod.common_domain.usecases.module.SaveUserUseCase
6 | import dagger.Module
7 | import dagger.Provides
8 | import dagger.hilt.InstallIn
9 | import dagger.hilt.android.components.ViewModelComponent
10 | import dagger.hilt.android.scopes.ViewModelScoped
11 |
12 | @Module
13 | @InstallIn(ViewModelComponent::class)
14 | object CommonDomainModule {
15 |
16 | @ViewModelScoped
17 | @Provides
18 | fun provideTrackerUseCases(
19 | commonRepo: CommonRepository
20 | ): CommonModuleUseCases {
21 | return CommonModuleUseCases(
22 | saveUserUseCase = SaveUserUseCase(commonRepository = commonRepo)
23 | )
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_foundation_foundation_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_navigation_navigation_common_2_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_test_junit4_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_navigation_navigation_runtime_2_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_ktx_1_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_parcelize_runtime_1_6_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_compose_ui_ui_tooling_data_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_activity_activity_compose_1_5_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------