├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── themes.xml │ │ │ │ └── colors.xml │ │ │ ├── drawable │ │ │ │ ├── upload_icon.png │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── androidapptouploadfile │ │ │ │ ├── utils │ │ │ │ ├── RetrofitErrorType.kt │ │ │ │ ├── Constants.kt │ │ │ │ ├── garbage │ │ │ │ └── ExtentionFunctions.kt │ │ │ │ ├── domain │ │ │ │ ├── models │ │ │ │ │ ├── UploadFileDomainModel.kt │ │ │ │ │ └── UriDetailsDomainModel.kt │ │ │ │ ├── repository │ │ │ │ │ ├── local │ │ │ │ │ │ └── DatastoreRepository.kt │ │ │ │ │ └── remote │ │ │ │ │ │ └── RemoteServerRepository.kt │ │ │ │ └── usecase │ │ │ │ │ ├── upload_use_case │ │ │ │ │ ├── UploadUseCases.kt │ │ │ │ │ └── UploadUseCasesImpl.kt │ │ │ │ │ └── local_data_store_use_cases │ │ │ │ │ ├── LocalDatastoreUseCases.kt │ │ │ │ │ └── LocalDatastoreUseCasesImpl.kt │ │ │ │ ├── presentation │ │ │ │ ├── models │ │ │ │ │ ├── UploadFileUiModel.kt │ │ │ │ │ └── UriDetailsUiModel.kt │ │ │ │ ├── ui │ │ │ │ │ ├── components │ │ │ │ │ │ ├── CircularLoading.kt │ │ │ │ │ │ └── PermissionDialog.kt │ │ │ │ │ ├── theme │ │ │ │ │ │ ├── Color.kt │ │ │ │ │ │ ├── Type.kt │ │ │ │ │ │ └── Theme.kt │ │ │ │ │ ├── main │ │ │ │ │ │ ├── viewmodel │ │ │ │ │ │ │ ├── states │ │ │ │ │ │ │ │ └── MainScreenState.kt │ │ │ │ │ │ │ └── MainViewModel.kt │ │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ │ └── services │ │ │ │ │ │ │ └── UploadFileService.kt │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── mappers │ │ │ │ │ ├── UploadFileDomainToUi.kt │ │ │ │ │ ├── UriDetailsDomainModelToUiModel.kt │ │ │ │ │ └── UriDetailsUiModelToDomainModel.kt │ │ │ │ └── di │ │ │ │ │ └── MainModule.kt │ │ │ │ ├── data │ │ │ │ ├── local │ │ │ │ │ ├── models │ │ │ │ │ │ └── UriDetailsLocalModel.kt │ │ │ │ │ ├── mappers │ │ │ │ │ │ ├── UriDetailsDomainModelToLocalModel.kt │ │ │ │ │ │ └── UriDetailsLocalModelToDomainModel.kt │ │ │ │ │ ├── di │ │ │ │ │ │ └── LocalModule.kt │ │ │ │ │ └── repository │ │ │ │ │ │ └── DatastoreRepositoryImpl.kt │ │ │ │ └── remote │ │ │ │ │ ├── dtos │ │ │ │ │ └── UploadFileDto.kt │ │ │ │ │ ├── mappers │ │ │ │ │ └── UploadFileDtoToDomain.kt │ │ │ │ │ ├── api │ │ │ │ │ ├── RetrofitApi.kt │ │ │ │ │ └── UploadStreamRequestBody.kt │ │ │ │ │ ├── repository │ │ │ │ │ └── RemoteServerRepositoryImpl.kt │ │ │ │ │ └── di │ │ │ │ │ └── NetworkModule.kt │ │ │ │ ├── MyApplication.kt │ │ │ │ └── di │ │ │ │ └── AppModule.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── androidapptouploadfile │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── example │ │ └── androidapptouploadfile │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle.kts ├── .idea ├── .gitignore ├── compiler.xml ├── kotlinc.xml ├── vcs.xml ├── misc.xml ├── gradle.xml └── deploymentTargetDropDown.xml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle.kts ├── LICENSE ├── gradle.properties ├── README.md ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AndroidAppToUploadFile 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable/upload_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/drawable/upload_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedMaherHosny/AndroidAppToUploadFile/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/java/com/example/androidapptouploadfile/utils/RetrofitErrorType.kt: -------------------------------------------------------------------------------- 1 | package com.example.androidapptouploadfile.utils 2 | 3 | enum class RetrofitErrorType { 4 | NETWORK_ERROR 5 | } -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |