From 62492585b024757c0156fba1e9ea48223fe2b327 Mon Sep 17 00:00:00 2001 From: Pavel Haretskiy Date: Mon, 11 Jun 2018 14:35:29 +0300 Subject: [PATCH 01/23] minor changes --- app/src/main/java/com/haretskiy/pavel/gifrandom/Constants.kt | 1 + .../com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/Constants.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/Constants.kt index 544dd8d..b990f89 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/Constants.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/Constants.kt @@ -7,6 +7,7 @@ const val RESPONSE = "RESPONSE" const val EMPTY_STRING = "" const val DEFAULT_RATING = "Y" +const val ZERO = 0 const val BASE_URL = "https://api.giphy.com/v1/" const val API_KEY = "ixOZB0aOMOF7Ivx1vuTIBAeXdksNdGTB" diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt index b6e25c1..1730d9d 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt @@ -22,7 +22,7 @@ class MainViewModel(private val context: Application, lateinit var pagedListLiveData: LiveData> val searchWord: ObservableField = ObservableField() - val ratingSelectedPos = ObservableInt(0) + val ratingSelectedPos = ObservableInt(ZERO) val progress = ObservableInt(View.VISIBLE) fun initPaging() { From 613477b1abfb9ce82a60b0374aead1e45668dd3f Mon Sep 17 00:00:00 2001 From: Pavel Haretskiy Date: Mon, 11 Jun 2018 14:43:01 +0300 Subject: [PATCH 02/23] minor changes --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 0c9ab02..d190784 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,7 +49,7 @@ dependencies { implementation "pl.droidsonroids.gif:android-gif-drawable:1.2.10" implementation "com.github.bumptech.glide:glide:$glideVersion" - implementation 'com.android.support.constraint:constraint-layout:1.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.1' kapt "com.github.bumptech.glide:compiler:$glideVersion" // Koin for Kotlin From 335d407d2c304d3b13a62a59fbbbb7469e44af24 Mon Sep 17 00:00:00 2001 From: Pavel Haretskiy Date: Mon, 11 Jun 2018 15:00:52 +0300 Subject: [PATCH 03/23] API_KEY migrate in interceptor --- .../pavel/gifrandom/rest/JsonLoggingInterceptor.kt | 9 +++++++-- .../java/com/haretskiy/pavel/gifrandom/rest/RestApi.kt | 6 ++---- .../com/haretskiy/pavel/gifrandom/rest/RestApiImpl.kt | 5 ++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt index 66be238..6fd5ff2 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt @@ -6,6 +6,7 @@ import okhttp3.Interceptor import okhttp3.Response import okhttp3.ResponseBody + class JsonLoggingInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain): Response? { @@ -13,9 +14,13 @@ class JsonLoggingInterceptor : Interceptor { try { val t1 = System.nanoTime() - Log.d(START, "Sending request ${request.url()} Headers: ${request.headers()}") + val url = request.url().newBuilder().addQueryParameter("apikey", API_KEY).build() + val requestBuilder = request.newBuilder().url(url) + val newRequest = requestBuilder.build() + + Log.d(START, "Sending request ${newRequest.url()} Headers: ${newRequest.headers()}") - val response = chain.proceed(request) + val response = chain.proceed(newRequest) val responseBodyString = response.body()?.string() ?: EMPTY_STRING diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApi.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApi.kt index f70453b..9baaf7d 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApi.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApi.kt @@ -10,14 +10,12 @@ import retrofit2.http.Query interface RestApi { @GET("gifs/trending") - fun loadGifs(@Query("api_key") aipKey: String, - @Query("limit") limit: Int, + fun loadGifs(@Query("limit") limit: Int, @Query("rating") rating: String, @Query("offset") offset: String = ZERO_OFFSET): Observable @GET("gifs/search") - fun loadGifsBySearchWord(@Query("api_key") apiKey: String, - @Query("q") searchWord: String, + fun loadGifsBySearchWord(@Query("q") searchWord: String, @Query("limit") limit: Int, @Query("rating") rating: String, @Query("offset") offset: String = ZERO_OFFSET): Observable diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApiImpl.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApiImpl.kt index 5cacf71..e635f34 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApiImpl.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/RestApiImpl.kt @@ -1,13 +1,12 @@ package com.haretskiy.pavel.gifrandom.rest -import com.haretskiy.pavel.gifrandom.API_KEY import com.haretskiy.pavel.gifrandom.LIMIT import com.haretskiy.pavel.gifrandom.ZERO_OFFSET class RestApiImpl(private val restApi: RestApi) { - fun loadGifs(rating: String, offset: String = ZERO_OFFSET) = restApi.loadGifs(API_KEY, LIMIT, rating, offset) + fun loadGifs(rating: String, offset: String = ZERO_OFFSET) = restApi.loadGifs(LIMIT, rating, offset) - fun loadGifsByWord(word: String, rating: String, offset: String = ZERO_OFFSET) = restApi.loadGifsBySearchWord(API_KEY, word, LIMIT, rating, offset) + fun loadGifsByWord(word: String, rating: String, offset: String = ZERO_OFFSET) = restApi.loadGifsBySearchWord(word, LIMIT, rating, offset) } \ No newline at end of file From b5701f3a9572cf96c377a8b2e92d9ecff5fcb900 Mon Sep 17 00:00:00 2001 From: Pavel Haretskiy Date: Mon, 11 Jun 2018 15:02:42 +0300 Subject: [PATCH 04/23] minor changes --- app/src/main/java/com/haretskiy/pavel/gifrandom/di/Modules.kt | 4 ++-- .../rest/{JsonLoggingInterceptor.kt => JsonInterceptor.kt} | 2 +- .../com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) rename app/src/main/java/com/haretskiy/pavel/gifrandom/rest/{JsonLoggingInterceptor.kt => JsonInterceptor.kt} (97%) diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/di/Modules.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/di/Modules.kt index e6127ff..e256721 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/di/Modules.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/di/Modules.kt @@ -6,7 +6,7 @@ import com.haretskiy.pavel.gifrandom.BUNDLE_KEY_URL import com.haretskiy.pavel.gifrandom.adapters.GifAdapter import com.haretskiy.pavel.gifrandom.data.Repository import com.haretskiy.pavel.gifrandom.data.RepositoryImpl -import com.haretskiy.pavel.gifrandom.rest.JsonLoggingInterceptor +import com.haretskiy.pavel.gifrandom.rest.JsonInterceptor import com.haretskiy.pavel.gifrandom.rest.RestApi import com.haretskiy.pavel.gifrandom.rest.RestApiImpl import com.haretskiy.pavel.gifrandom.utils.* @@ -26,7 +26,7 @@ import retrofit2.converter.gson.GsonConverterFactory val restModule: Module = applicationContext { - bean { OkHttpClient.Builder().addInterceptor(JsonLoggingInterceptor()).build() } + bean { OkHttpClient.Builder().addInterceptor(JsonInterceptor()).build() } bean { GsonBuilder().setLenient().create() } bean { Retrofit.Builder() diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonInterceptor.kt similarity index 97% rename from app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt rename to app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonInterceptor.kt index 6fd5ff2..5df51a0 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonLoggingInterceptor.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/rest/JsonInterceptor.kt @@ -7,7 +7,7 @@ import okhttp3.Response import okhttp3.ResponseBody -class JsonLoggingInterceptor : Interceptor { +class JsonInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain): Response? { val request = chain.request() diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt index 1730d9d..6033a0b 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/viewModels/MainViewModel.kt @@ -56,6 +56,7 @@ class MainViewModel(private val context: Application, factory.rating = getCurrentRating() factory.word = searchWord.get() ?: EMPTY_STRING factory.invalidate() + //todo: problem with position } @Suppress("UNUSED_PARAMETER") From 15af6065be94ac999407f1fafe098ccd87687ffb Mon Sep 17 00:00:00 2001 From: Pavel Haretskiy Date: Mon, 11 Jun 2018 15:28:45 +0300 Subject: [PATCH 05/23] collaps toolbar (start) --- .../gifrandom/activities/MainActivity.kt | 2 +- app/src/main/res/layout/activity_main.xml | 61 ++-------------- app/src/main/res/layout/main_content.xml | 71 +++++++++++++++++++ 3 files changed, 79 insertions(+), 55 deletions(-) create mode 100644 app/src/main/res/layout/main_content.xml diff --git a/app/src/main/java/com/haretskiy/pavel/gifrandom/activities/MainActivity.kt b/app/src/main/java/com/haretskiy/pavel/gifrandom/activities/MainActivity.kt index b7817f7..055859f 100644 --- a/app/src/main/java/com/haretskiy/pavel/gifrandom/activities/MainActivity.kt +++ b/app/src/main/java/com/haretskiy/pavel/gifrandom/activities/MainActivity.kt @@ -9,7 +9,7 @@ import com.haretskiy.pavel.gifrandom.R import com.haretskiy.pavel.gifrandom.adapters.GifAdapter import com.haretskiy.pavel.gifrandom.databinding.ActivityMainBinding import com.haretskiy.pavel.gifrandom.viewModels.MainViewModel -import kotlinx.android.synthetic.main.activity_main.* +import kotlinx.android.synthetic.main.main_content.* import org.koin.android.architecture.ext.viewModel import org.koin.android.ext.android.inject diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c243f9f..85c4583 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -9,63 +9,16 @@ type="com.haretskiy.pavel.gifrandom.viewModels.MainViewModel" /> - + android:layout_height="match_parent" + android:orientation="vertical"> - + - - - - -