diff --git a/app/build.gradle b/app/build.gradle index 7f3fa56..0642544 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.gomsang.lab.nearmask" minSdkVersion 22 targetSdkVersion 29 - versionCode 4 - versionName "1.3" + versionCode 5 + versionName "1.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/gomsang/lab/publicmask/libs/http/mask/Mask.kt b/app/src/main/java/com/gomsang/lab/publicmask/libs/http/mask/Mask.kt index a075e11..27b54e5 100644 --- a/app/src/main/java/com/gomsang/lab/publicmask/libs/http/mask/Mask.kt +++ b/app/src/main/java/com/gomsang/lab/publicmask/libs/http/mask/Mask.kt @@ -1,17 +1,60 @@ package com.gomsang.lab.publicmask.libs.http.mask import com.gomsang.lab.publicmask.libs.constants.WebAddresses -import com.gomsang.lab.publicmask.libs.http.kakao.KakaoAPI +import com.google.gson.Gson +import com.google.gson.GsonBuilder +import com.google.gson.TypeAdapter +import com.google.gson.TypeAdapterFactory +import com.google.gson.reflect.TypeToken +import com.google.gson.stream.JsonReader +import com.google.gson.stream.JsonToken +import com.google.gson.stream.JsonWriter import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +import java.io.IOException + class Mask { val api: MaskAPI constructor() { + + class StringAdapter : TypeAdapter() { + @Throws(IOException::class) + override fun read(reader: JsonReader): String { + if (reader.peek() === JsonToken.NULL) { + reader.nextNull() + return "" + } + return reader.nextString() + } + + @Throws(IOException::class) + override fun write(writer: JsonWriter, value: String?) { + if (value == null) { + writer.nullValue() + return + } + writer.value(value) + } + } + + + class NullStringToEmptyAdapterFactory : TypeAdapterFactory { + override fun create(gson: Gson, type: TypeToken): TypeAdapter? { + val rawType = type.rawType as Class + return if (rawType != String::class.java) { + null + } else StringAdapter() as TypeAdapter + } + } + + val gson = + GsonBuilder().registerTypeAdapterFactory(NullStringToEmptyAdapterFactory()).create() + val retrofit: Retrofit = Retrofit.Builder() .baseUrl(WebAddresses.URL_MASK_API) - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .build() api = retrofit.create(MaskAPI::class.java) } diff --git a/app/src/main/java/com/gomsang/lab/publicmask/libs/util/StatUtil.kt b/app/src/main/java/com/gomsang/lab/publicmask/libs/util/StatUtil.kt index 60c6ab7..e582510 100644 --- a/app/src/main/java/com/gomsang/lab/publicmask/libs/util/StatUtil.kt +++ b/app/src/main/java/com/gomsang/lab/publicmask/libs/util/StatUtil.kt @@ -8,7 +8,7 @@ object StatUtil { "few" -> return "1+" "empty" -> return "재고소진" } - return "error" + return "에러" } fun convertStatToDetailString(stat : String): String{ when (stat) { @@ -17,7 +17,7 @@ object StatUtil { "few" -> return "1개 이상 30개 미만" "empty" -> return "재고소진" } - return "error" + return "에러" } fun convertTypeToString(type : String): String { diff --git a/app/src/main/java/com/gomsang/lab/publicmask/ui/map/MapFragment.kt b/app/src/main/java/com/gomsang/lab/publicmask/ui/map/MapFragment.kt index 5081552..c015de5 100644 --- a/app/src/main/java/com/gomsang/lab/publicmask/ui/map/MapFragment.kt +++ b/app/src/main/java/com/gomsang/lab/publicmask/ui/map/MapFragment.kt @@ -66,6 +66,7 @@ class MapFragment : BaseFragment(), OnMapReady stocks.forEach { stock -> Logger.log("CAMERA_CHANGED", Gson().toJson(stock)) + if (stock.remainStat == null) stock.remainStat = "" val infoWindow = InfoWindow() infoWindow.adapter = object : InfoWindow.DefaultTextAdapter(context!!) { override fun getText(infoWindow: InfoWindow): CharSequence { @@ -88,6 +89,9 @@ class MapFragment : BaseFragment(), OnMapReady marker.icon = MarkerIcons.RED "empty" -> marker.icon = MarkerIcons.GRAY + else -> { + marker.icon = MarkerIcons.GRAY + } } marker.map = map infoWindow.open(marker) diff --git a/app/src/main/java/com/gomsang/lab/publicmask/ui/search/SearchFragment.kt b/app/src/main/java/com/gomsang/lab/publicmask/ui/search/SearchFragment.kt index 50623ba..9697218 100644 --- a/app/src/main/java/com/gomsang/lab/publicmask/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/gomsang/lab/publicmask/ui/search/SearchFragment.kt @@ -97,7 +97,7 @@ class SearchFragment : BaseFragment() { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - if (!viewModel.latestSearchKeyword.equals(s.toString())) { + if (viewModel.latestSearchKeyword != s.toString()) { layoutSwitch(false) } }