diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e8067ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +/.gradle/ +local.properties \ No newline at end of file diff --git a/.gradle/4.4/fileChanges/last-build.bin b/.gradle/4.4/fileChanges/last-build.bin deleted file mode 100644 index f76dd23..0000000 Binary files a/.gradle/4.4/fileChanges/last-build.bin and /dev/null differ diff --git a/.gradle/4.4/fileContent/fileContent.lock b/.gradle/4.4/fileContent/fileContent.lock deleted file mode 100644 index ef41a23..0000000 Binary files a/.gradle/4.4/fileContent/fileContent.lock and /dev/null differ diff --git a/.gradle/4.4/fileHashes/fileHashes.bin b/.gradle/4.4/fileHashes/fileHashes.bin deleted file mode 100644 index 057744f..0000000 Binary files a/.gradle/4.4/fileHashes/fileHashes.bin and /dev/null differ diff --git a/.gradle/4.4/fileHashes/fileHashes.lock b/.gradle/4.4/fileHashes/fileHashes.lock deleted file mode 100644 index 81faeb0..0000000 Binary files a/.gradle/4.4/fileHashes/fileHashes.lock and /dev/null differ diff --git a/.gradle/4.4/fileHashes/resourceHashesCache.bin b/.gradle/4.4/fileHashes/resourceHashesCache.bin deleted file mode 100644 index d54e608..0000000 Binary files a/.gradle/4.4/fileHashes/resourceHashesCache.bin and /dev/null differ diff --git a/.gradle/4.4/javaCompile/classAnalysis.bin b/.gradle/4.4/javaCompile/classAnalysis.bin deleted file mode 100644 index 7f876da..0000000 Binary files a/.gradle/4.4/javaCompile/classAnalysis.bin and /dev/null differ diff --git a/.gradle/4.4/javaCompile/jarAnalysis.bin b/.gradle/4.4/javaCompile/jarAnalysis.bin deleted file mode 100644 index 4da0364..0000000 Binary files a/.gradle/4.4/javaCompile/jarAnalysis.bin and /dev/null differ diff --git a/.gradle/4.4/javaCompile/javaCompile.lock b/.gradle/4.4/javaCompile/javaCompile.lock deleted file mode 100644 index 9e37d6c..0000000 Binary files a/.gradle/4.4/javaCompile/javaCompile.lock and /dev/null differ diff --git a/.gradle/4.4/javaCompile/taskHistory.bin b/.gradle/4.4/javaCompile/taskHistory.bin deleted file mode 100644 index 41dbcd6..0000000 Binary files a/.gradle/4.4/javaCompile/taskHistory.bin and /dev/null differ diff --git a/.gradle/4.4/javaCompile/taskJars.bin b/.gradle/4.4/javaCompile/taskJars.bin deleted file mode 100644 index 51d01e4..0000000 Binary files a/.gradle/4.4/javaCompile/taskJars.bin and /dev/null differ diff --git a/.gradle/4.4/taskHistory/taskHistory.bin b/.gradle/4.4/taskHistory/taskHistory.bin deleted file mode 100644 index 5cee9d8..0000000 Binary files a/.gradle/4.4/taskHistory/taskHistory.bin and /dev/null differ diff --git a/.gradle/4.4/taskHistory/taskHistory.lock b/.gradle/4.4/taskHistory/taskHistory.lock deleted file mode 100644 index 4775c66..0000000 Binary files a/.gradle/4.4/taskHistory/taskHistory.lock and /dev/null differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index 7456a09..0000000 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index b804183..0000000 --- a/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Wed Jul 22 13:59:39 CEST 2020 -gradle.version=4.4 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin deleted file mode 100644 index efda7b6..0000000 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and /dev/null differ diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 5c98b42..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Default ignored files -/workspace.xml \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser deleted file mode 100644 index d2e245f..0000000 Binary files a/.idea/caches/build_file_checksums.ser and /dev/null differ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 681f41a..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -
- - - - xmlns:android - - ^$ - - - -
-
- - - - xmlns:.* - - ^$ - - - BY_NAME - -
-
- - - - .*:id - - http://schemas.android.com/apk/res/android - - - -
-
- - - - .*:name - - http://schemas.android.com/apk/res/android - - - -
-
- - - - name - - ^$ - - - -
-
- - - - style - - ^$ - - - -
-
- - - - .* - - ^$ - - - BY_NAME - -
-
- - - - .* - - http://schemas.android.com/apk/res/android - - - ANDROID_ATTRIBUTE_ORDER - -
-
- - - - .* - - .* - - - BY_NAME - -
-
-
-
-
-
\ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index ac6b0ae..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index 2be040e..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml deleted file mode 100644 index bf16fff..0000000 --- a/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml deleted file mode 100644 index 95e24ac..0000000 --- a/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml deleted file mode 100644 index 27b1867..0000000 --- a/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml deleted file mode 100644 index dbd0443..0000000 --- a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml deleted file mode 100644 index 6b3c46e..0000000 --- a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml deleted file mode 100644 index 0baccee..0000000 --- a/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml deleted file mode 100644 index 8bbdbf3..0000000 --- a/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml deleted file mode 100644 index a4a3649..0000000 --- a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml deleted file mode 100644 index 79c3eb5..0000000 --- a/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml deleted file mode 100644 index 5aa3756..0000000 --- a/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml deleted file mode 100644 index 2a1a3c0..0000000 --- a/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml deleted file mode 100644 index 80e4d73..0000000 --- a/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml deleted file mode 100644 index 44d5034..0000000 --- a/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml deleted file mode 100644 index d89ecac..0000000 --- a/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml deleted file mode 100644 index f8f55c6..0000000 --- a/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml deleted file mode 100644 index b1bd9bd..0000000 --- a/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml deleted file mode 100644 index 791da13..0000000 --- a/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml deleted file mode 100644 index dc895bd..0000000 --- a/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml deleted file mode 100644 index a0b9284..0000000 --- a/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml deleted file mode 100644 index 0bae025..0000000 --- a/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml deleted file mode 100644 index 8dda0c4..0000000 --- a/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml deleted file mode 100644 index cabc9c1..0000000 --- a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml deleted file mode 100644 index 1d6b56d..0000000 --- a/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml deleted file mode 100644 index 0fdecce..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml deleted file mode 100644 index 5f9d32b..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml deleted file mode 100644 index 4aa05e1..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml deleted file mode 100644 index 1286d75..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml deleted file mode 100644 index d48f642..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml deleted file mode 100644 index 8b7479b..0000000 --- a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml deleted file mode 100644 index 5ddf78f..0000000 --- a/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml deleted file mode 100644 index 6b6df9b..0000000 --- a/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml deleted file mode 100644 index f239ec7..0000000 --- a/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_google_code_gson_gson_2_7_jar.xml b/.idea/libraries/Gradle__com_google_code_gson_gson_2_7_jar.xml deleted file mode 100644 index 2f5eebc..0000000 --- a/.idea/libraries/Gradle__com_google_code_gson_gson_2_7_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml b/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml deleted file mode 100644 index 284170c..0000000 --- a/.idea/libraries/Gradle__com_google_dagger_dagger_2_16_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_jakewharton_butterknife_8_8_1_aar.xml b/.idea/libraries/Gradle__com_jakewharton_butterknife_8_8_1_aar.xml deleted file mode 100644 index 444b821..0000000 --- a/.idea/libraries/Gradle__com_jakewharton_butterknife_8_8_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_jakewharton_butterknife_annotations_8_8_1_jar.xml b/.idea/libraries/Gradle__com_jakewharton_butterknife_annotations_8_8_1_jar.xml deleted file mode 100644 index 18477cf..0000000 --- a/.idea/libraries/Gradle__com_jakewharton_butterknife_annotations_8_8_1_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_8_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_8_0_jar.xml deleted file mode 100644 index 2320883..0000000 --- a/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_8_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_okio_okio_1_13_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okio_okio_1_13_0_jar.xml deleted file mode 100644 index 3e834aa..0000000 --- a/.idea/libraries/Gradle__com_squareup_okio_okio_1_13_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_retrofit2_adapter_rxjava_2_3_0_jar.xml b/.idea/libraries/Gradle__com_squareup_retrofit2_adapter_rxjava_2_3_0_jar.xml deleted file mode 100644 index 08860f1..0000000 --- a/.idea/libraries/Gradle__com_squareup_retrofit2_adapter_rxjava_2_3_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_3_0_jar.xml b/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_3_0_jar.xml deleted file mode 100644 index 23dc45f..0000000 --- a/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_3_0_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_3_0_jar.xml b/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_3_0_jar.xml deleted file mode 100644 index 3981ae6..0000000 --- a/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_3_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__io_reactivex_rxandroid_1_2_1_aar.xml b/.idea/libraries/Gradle__io_reactivex_rxandroid_1_2_1_aar.xml deleted file mode 100644 index c503080..0000000 --- a/.idea/libraries/Gradle__io_reactivex_rxandroid_1_2_1_aar.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__io_reactivex_rxjava_1_3_8_jar.xml b/.idea/libraries/Gradle__io_reactivex_rxjava_1_3_8_jar.xml deleted file mode 100644 index 8a47df0..0000000 --- a/.idea/libraries/Gradle__io_reactivex_rxjava_1_3_8_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml deleted file mode 100644 index 5ac7d7b..0000000 --- a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml deleted file mode 100644 index 24e5b72..0000000 --- a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_1_8_15_jar.xml b/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_1_8_15_jar.xml deleted file mode 100644 index 889c54a..0000000 --- a/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_1_8_15_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_agent_1_8_15_jar.xml b/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_agent_1_8_15_jar.xml deleted file mode 100644 index d46c1ba..0000000 --- a/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_agent_1_8_15_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml deleted file mode 100644 index 6b1e2e7..0000000 --- a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_mockito_mockito_core_2_21_0_jar.xml b/.idea/libraries/Gradle__org_mockito_mockito_core_2_21_0_jar.xml deleted file mode 100644 index be6b6a8..0000000 --- a/.idea/libraries/Gradle__org_mockito_mockito_core_2_21_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_objenesis_objenesis_2_6_jar.xml b/.idea/libraries/Gradle__org_objenesis_objenesis_2_6_jar.xml deleted file mode 100644 index 699ee35..0000000 --- a/.idea/libraries/Gradle__org_objenesis_objenesis_2_6_jar.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 7bfef59..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 885b2f7..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules/GithubRepos.iml b/.idea/modules/GithubRepos.iml deleted file mode 100644 index e885953..0000000 --- a/.idea/modules/GithubRepos.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules/app/app.iml b/.idea/modules/app/app.iml deleted file mode 100644 index 3597cad..0000000 --- a/.idea/modules/app/app.iml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore index 796b96d..42afabf 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1 @@ -/build +/build \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9fd5c1f..2caee88 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,17 +1,17 @@ - + - - + + @@ -20,4 +20,6 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/azimolabs/mobile/task/GithubAppComponent.java b/app/src/main/java/com/azimolabs/mobile/task/GithubAppComponent.java index 4ad0374..24903df 100644 --- a/app/src/main/java/com/azimolabs/mobile/task/GithubAppComponent.java +++ b/app/src/main/java/com/azimolabs/mobile/task/GithubAppComponent.java @@ -2,6 +2,7 @@ import com.azimolabs.mobile.task.github.GitHubApiClientModule; import com.azimolabs.mobile.task.main.MainActivityComponent; +import com.azimolabs.mobile.task.di.UserProfileActivityComponent; import dagger.Component; @@ -16,4 +17,6 @@ public interface GithubAppComponent { void inject(GithubApplication application); MainActivityComponent plus(MainActivityComponent.MainActivityModule mainActivityModule); + + UserProfileActivityComponent plus(UserProfileActivityComponent.UserProfileActivityModule userProfileActivityModule); } diff --git a/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityComponent.java b/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityComponent.java new file mode 100644 index 0000000..1da98f2 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityComponent.java @@ -0,0 +1,26 @@ +package com.azimolabs.mobile.task.di; + +import com.azimolabs.mobile.task.base.BaseActivityModule; +import com.azimolabs.mobile.task.github.ActivityComponent; +import com.azimolabs.mobile.task.view.UserProfileActivity; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Subcomponent; + +@Singleton +@Subcomponent( + modules = UserProfileActivityComponent.UserProfileActivityModule.class +) +public interface UserProfileActivityComponent extends ActivityComponent { + UserProfileActivity inject(UserProfileActivity activity); + + @Module + class UserProfileActivityModule extends BaseActivityModule { + + public UserProfileActivityModule(UserProfileActivity activity) { + super(activity); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityPresenter.java b/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityPresenter.java new file mode 100644 index 0000000..5b0e344 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/di/UserProfileActivityPresenter.java @@ -0,0 +1,50 @@ +package com.azimolabs.mobile.task.di; + +import com.azimolabs.mobile.task.base.BasePresenter; +import com.azimolabs.mobile.task.main.UserFieldErrorDisposer; +import com.azimolabs.mobile.task.model.Repository; +import com.azimolabs.mobile.task.model.User; +import com.azimolabs.mobile.task.model.UserDetailsDownloader; +import com.azimolabs.mobile.task.view.UserProfileActivity; + +import java.util.List; + +import javax.inject.Inject; + +import static com.azimolabs.mobile.task.utils.ErrorType.NO_REPOSITORIES; +import static com.azimolabs.mobile.task.utils.ErrorType.UNKNOWN_USER; + +public class UserProfileActivityPresenter extends BasePresenter implements UserDetailsDownloader.OnFinishedListener { + private final UserProfileActivity view; + private final UserFieldErrorDisposer userFieldErrorDisposer; + + @Inject + public UserProfileActivityPresenter(UserProfileActivity view, UserFieldErrorDisposer userFieldErrorDisposer) { + this.view = view; + this.userFieldErrorDisposer = userFieldErrorDisposer; + } + + public void getUserDetails(String userName) { + UserDetailsDownloader.getInstance().getUserDetails(userName, this); + UserDetailsDownloader.getInstance().getUserRepoDetails(userName, this); + } + + @Override + public void onUserDetailsDownloaded(User user) { + if(user != null) { + view.showUserDetails(user); + } else { + view.showError(userFieldErrorDisposer.getErrorText(UNKNOWN_USER)); + } + } + + @Override + public void onUserReposDownloaded(List userRepoList) { + if(userRepoList.size() > 0) { + view.showUserRepoDetails(userRepoList); + } else { + view.showError(userFieldErrorDisposer.getErrorText(NO_REPOSITORIES)); + } + + } +} diff --git a/app/src/main/java/com/azimolabs/mobile/task/github/GitHubApiClientModule.java b/app/src/main/java/com/azimolabs/mobile/task/github/GitHubApiClientModule.java index 384fd45..8c04fb7 100644 --- a/app/src/main/java/com/azimolabs/mobile/task/github/GitHubApiClientModule.java +++ b/app/src/main/java/com/azimolabs/mobile/task/github/GitHubApiClientModule.java @@ -12,8 +12,10 @@ @Module public class GitHubApiClientModule { - - //TODO: Initialize Api interface + @Provides + public GithubApi gitHubApi(Retrofit retrofit){ + return retrofit.create(GithubApi.class); + } @Provides public Retrofit retrofit(OkHttpClient okHttpClient, GsonConverterFactory gsonConverterFactory) { diff --git a/app/src/main/java/com/azimolabs/mobile/task/github/GithubApi.java b/app/src/main/java/com/azimolabs/mobile/task/github/GithubApi.java new file mode 100644 index 0000000..fbf1dee --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/github/GithubApi.java @@ -0,0 +1,19 @@ +package com.azimolabs.mobile.task.github; + +import com.azimolabs.mobile.task.model.Repository; +import com.azimolabs.mobile.task.model.User; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Path; + +public interface GithubApi { + + @GET("users/{name}") + Call getUserDetails(@Path("name") String name); + + @GET("users/{name}/repos") + Call> getUserRepoDetails(@Path("name") String name); +} diff --git a/app/src/main/java/com/azimolabs/mobile/task/github/GithubApiComponent.java b/app/src/main/java/com/azimolabs/mobile/task/github/GithubApiComponent.java new file mode 100644 index 0000000..d604b72 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/github/GithubApiComponent.java @@ -0,0 +1,8 @@ +package com.azimolabs.mobile.task.github; + +import dagger.Component; + +@Component(modules = GitHubApiClientModule.class) +public interface GithubApiComponent { + GithubApi getGitHubApi(); +} \ No newline at end of file diff --git a/app/src/main/java/com/azimolabs/mobile/task/main/MainActivity.java b/app/src/main/java/com/azimolabs/mobile/task/main/MainActivity.java index 2f2e8b4..3cd50e2 100644 --- a/app/src/main/java/com/azimolabs/mobile/task/main/MainActivity.java +++ b/app/src/main/java/com/azimolabs/mobile/task/main/MainActivity.java @@ -22,8 +22,6 @@ public class MainActivity extends BaseActivity { - @BindView(R.id.pbLoadingRepos) - ProgressBar pbLoadingRepos; @BindView(R.id.etUserName) EditText etUserName; @BindView(R.id.tvUserError) @@ -73,14 +71,6 @@ public void hideError() { etUserName.getBackground().mutate().setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP); } - public void showLoading() { - pbLoadingRepos.setVisibility(View.VISIBLE); - } - - public void hideLoading() { - pbLoadingRepos.setVisibility(View.INVISIBLE); - } - public void hideKeyboard() { keyboardHelper.hideKeyboard(); } diff --git a/app/src/main/java/com/azimolabs/mobile/task/main/UserFieldError.java b/app/src/main/java/com/azimolabs/mobile/task/main/UserFieldError.java index 3a67c0e..3c5dd58 100644 --- a/app/src/main/java/com/azimolabs/mobile/task/main/UserFieldError.java +++ b/app/src/main/java/com/azimolabs/mobile/task/main/UserFieldError.java @@ -15,4 +15,8 @@ public UserFieldError(ErrorType type, String errorMessage) { public String getErrorMessage() { return errorMessage; } + + public ErrorType getType() { + return type; + } } diff --git a/app/src/main/java/com/azimolabs/mobile/task/model/Repository.java b/app/src/main/java/com/azimolabs/mobile/task/model/Repository.java new file mode 100644 index 0000000..5b93794 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/model/Repository.java @@ -0,0 +1,26 @@ +package com.azimolabs.mobile.task.model; + +import com.google.gson.annotations.SerializedName; + +public class Repository { + @SerializedName("name") + private String name; + @SerializedName("description") + private String description; + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/app/src/main/java/com/azimolabs/mobile/task/model/User.java b/app/src/main/java/com/azimolabs/mobile/task/model/User.java new file mode 100644 index 0000000..1c852be --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/model/User.java @@ -0,0 +1,57 @@ +package com.azimolabs.mobile.task.model; + +import com.google.gson.annotations.SerializedName; + +public class User { + @SerializedName("name") + private String name; + @SerializedName("company") + private String company; + @SerializedName("location") + private String location; + @SerializedName("followers") + private int followers; + @SerializedName("following") + private int following; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public int getFollowers() { + return followers; + } + + public void setFollowers(int followers) { + this.followers = followers; + } + + public int getFollowing() { + return following; + } + + public void setFollowing(int following) { + this.following = following; + } +} diff --git a/app/src/main/java/com/azimolabs/mobile/task/model/UserDetailsDownloader.java b/app/src/main/java/com/azimolabs/mobile/task/model/UserDetailsDownloader.java new file mode 100644 index 0000000..ddbec19 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/model/UserDetailsDownloader.java @@ -0,0 +1,87 @@ +package com.azimolabs.mobile.task.model; + +import android.util.Log; + +import com.azimolabs.mobile.task.github.DaggerGithubApiComponent; +import com.azimolabs.mobile.task.github.GithubApi; +import com.azimolabs.mobile.task.github.GithubApiComponent; + +import java.util.ArrayList; +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class UserDetailsDownloader { + private final String TAG = UserDetailsDownloader.class.getSimpleName(); + + private static UserDetailsDownloader userDetailsDownloader = null; + private GithubApi githubApi; + + public UserDetailsDownloader() { + GithubApiComponent gitHubAPIClientComponent = DaggerGithubApiComponent.builder().build(); + githubApi = gitHubAPIClientComponent.getGitHubApi(); + } + + public static UserDetailsDownloader getInstance() { + if (userDetailsDownloader == null) { + userDetailsDownloader = new UserDetailsDownloader(); + } + return userDetailsDownloader; + } + + public void getUserDetails(final String user, OnFinishedListener listener) { + Call call = githubApi.getUserDetails(user); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + User user = null; + if (response.isSuccessful()) { + user = response.body(); + } + + listener.onUserDetailsDownloaded(user); + } + + @Override + public void onFailure(Call call, Throwable t) { + call.cancel(); + listener.onUserDetailsDownloaded(null); + } + }); + } + + public void getUserRepoDetails(final String user, OnFinishedListener listener) { + Call> call = githubApi.getUserRepoDetails(user); + + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + List userRepoList = new ArrayList<>(); + if (response.isSuccessful()) { + userRepoList = response.body(); + + for (Repository repo : userRepoList) { + Log.d(TAG, ">> " + repo.getName()); + } + } + + listener.onUserReposDownloaded(userRepoList); + } + + @Override + public void onFailure(Call> call, Throwable t) { + call.cancel(); + listener.onUserDetailsDownloaded(null); + } + }); + } + + public interface OnFinishedListener { + void onUserDetailsDownloaded(User user); + + void onUserReposDownloaded(List userRepoList); + } +} diff --git a/app/src/main/java/com/azimolabs/mobile/task/utils/Navigator.java b/app/src/main/java/com/azimolabs/mobile/task/utils/Navigator.java index 4cafaaa..48e8854 100644 --- a/app/src/main/java/com/azimolabs/mobile/task/utils/Navigator.java +++ b/app/src/main/java/com/azimolabs/mobile/task/utils/Navigator.java @@ -1,8 +1,9 @@ package com.azimolabs.mobile.task.utils; -import android.widget.Toast; +import android.content.Intent; import com.azimolabs.mobile.task.base.BaseActivity; +import com.azimolabs.mobile.task.view.UserProfileActivity; import javax.inject.Inject; @@ -16,7 +17,8 @@ public Navigator(BaseActivity activity) { } public void navigateToUserDetailsActivity(String userName) { - //TODO: Navigate to user details screen - Toast.makeText(activity, "Here is the place for your solution!", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(activity, UserProfileActivity.class); + intent.putExtra("userName", userName); + activity.startActivity(intent); } } diff --git a/app/src/main/java/com/azimolabs/mobile/task/view/UserProfileActivity.java b/app/src/main/java/com/azimolabs/mobile/task/view/UserProfileActivity.java new file mode 100644 index 0000000..6212424 --- /dev/null +++ b/app/src/main/java/com/azimolabs/mobile/task/view/UserProfileActivity.java @@ -0,0 +1,194 @@ +package com.azimolabs.mobile.task.view; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.widget.DividerItemDecoration; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.azimolabs.mobile.task.GithubAppComponent; +import com.azimolabs.mobile.task.R; +import com.azimolabs.mobile.task.base.BaseActivity; +import com.azimolabs.mobile.task.base.BasePresenter; +import com.azimolabs.mobile.task.github.ActivityComponent; +import com.azimolabs.mobile.task.main.UserFieldError; +import com.azimolabs.mobile.task.di.UserProfileActivityComponent; +import com.azimolabs.mobile.task.di.UserProfileActivityPresenter; +import com.azimolabs.mobile.task.model.Repository; +import com.azimolabs.mobile.task.model.User; +import com.azimolabs.mobile.task.utils.ErrorType; + +import java.util.List; + +import javax.inject.Inject; + +import butterknife.BindView; + +public class UserProfileActivity extends BaseActivity { + @Inject + UserProfileActivityPresenter presenter; + + @BindView(R.id.pbLoadingRepos) + ProgressBar pbLoadingRepos; + @BindView(R.id.tvUserDetailsError) + TextView tvUserDetailsError; + @BindView(R.id.tvUserRepoError) + TextView tvUserRepoError; + @BindView(R.id.llUserDetails) + LinearLayout llUserDetails; + @BindView(R.id.tvUserName) + TextView tvUserName; + @BindView(R.id.tvUserDetails) + TextView tvUserDetails; + @BindView(R.id.tvFollow) + TextView tvFollow; + @BindView(R.id.rvRepoList) + RecyclerView rvRepoList; + + private boolean userDetailsLoaded; + private boolean userRepoDetailsLoaded; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_user_profile); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + showLoading(); + + Intent intent = getIntent(); + String userName = intent.getStringExtra("userName"); + presenter.getUserDetails(userName); + } + + @Override + protected ActivityComponent onCreateComponent(GithubAppComponent githubAppComponent) { + UserProfileActivityComponent component = githubAppComponent.plus(new UserProfileActivityComponent.UserProfileActivityModule(this)); + component.inject(this); + return component; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + protected BasePresenter getBasePresenter() { + return presenter; + } + + public void showError(UserFieldError error) { + if (error.getType() == ErrorType.UNKNOWN_USER) { + tvUserDetailsError.setText(error.getErrorMessage()); + tvUserDetailsError.setVisibility(View.VISIBLE); + llUserDetails.setVisibility(View.GONE); + hideLoading(); + } else if (error.getType() == ErrorType.NO_REPOSITORIES) { + tvUserRepoError.setText(error.getErrorMessage()); + tvUserRepoError.setVisibility(View.VISIBLE); + rvRepoList.setVisibility(View.GONE); + + userRepoDetailsLoaded = true; + if (userDetailsLoaded && userRepoDetailsLoaded) { + hideLoading(); + } + } + } + + public void showUserDetails(User user) { + tvUserName.setText(user.getName()); + tvUserDetails.setText(String.format(getString(R.string.user_details_txt), + user.getCompany() == null ? getString(R.string.na_txt) : user.getCompany(), + user.getLocation() == null ? getString(R.string.na_txt) : user.getLocation())); + tvFollow.setText(String.format(getString(R.string.follow_txt), user.getFollowing(), user.getFollowers())); + tvUserDetailsError.setVisibility(View.GONE); + llUserDetails.setVisibility(View.VISIBLE); + + userDetailsLoaded = true; + if (userDetailsLoaded && userRepoDetailsLoaded) { + hideLoading(); + } + } + + public void showUserRepoDetails(List userRepoList) { + RepoListAdapter adapter = new RepoListAdapter(userRepoList); + rvRepoList.setAdapter(adapter); + rvRepoList.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); + rvRepoList.setLayoutManager(new LinearLayoutManager(this)); + + userRepoDetailsLoaded = true; + if (userDetailsLoaded && userRepoDetailsLoaded) { + hideLoading(); + } + } + + public void showLoading() { + pbLoadingRepos.setVisibility(View.VISIBLE); + } + + public void hideLoading() { + pbLoadingRepos.setVisibility(View.INVISIBLE); + } + + + public class RepoListAdapter extends RecyclerView.Adapter { + private List repositoryList; + + public RepoListAdapter(List repositoryList) { + this.repositoryList = repositoryList; + } + + @Override + public RepoListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + Context context = parent.getContext(); + LayoutInflater inflater = LayoutInflater.from(context); + + View repoView = inflater.inflate(R.layout.item_repo_list, parent, false); + + ViewHolder viewHolder = new ViewHolder(repoView); + return viewHolder; + } + + @Override + public void onBindViewHolder(RepoListAdapter.ViewHolder holder, int position) { + Repository repository = repositoryList.get(position); + + TextView tvRepoName = holder.tvRepoName; + tvRepoName.setText(repository.getName()); + TextView tvRepoDescription = holder.tvRepoDescription; + tvRepoDescription.setText(repository.getDescription()); + } + + @Override + public int getItemCount() { + return repositoryList.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public TextView tvRepoName; + public TextView tvRepoDescription; + + public ViewHolder(View itemView) { + super(itemView); + + tvRepoName = (TextView) itemView.findViewById(R.id.tvRepoName); + tvRepoDescription = (TextView) itemView.findViewById(R.id.tvRepoDescription); + } + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fce5075..a883ff1 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,13 +7,6 @@ android:orientation="vertical" tools:context=".main.MainActivity"> - - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_repo_list.xml b/app/src/main/res/layout/item_repo_list.xml new file mode 100644 index 0000000..36a1392 --- /dev/null +++ b/app/src/main/res/layout/item_repo_list.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4f9daf9..e344cec 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -9,4 +9,5 @@ #0366d6 #F00 #E0E0E0 + #FFF diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 01360fa..be2c816 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,9 +4,12 @@ Issues Stars Forks - User doesn\'t exist! + Either user doesn\'t exist or there is a problem with your internet connection! Please try again later. Close Please fill in! User has no repositories! Connection error! + %d followers, %d following + %s, %s + N/A \ No newline at end of file diff --git a/local.properties b/local.properties deleted file mode 100644 index a802470..0000000 --- a/local.properties +++ /dev/null @@ -1,8 +0,0 @@ -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Wed Jul 22 13:57:23 CEST 2020 -sdk.dir=/Users/jakubkwiatek/Library/Android/sdk