diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..08d9b7f
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,12 @@
+# PULL REQUEST
+
+## Description
+
+
+## ScreenShots
+
+
+
+
+## Reference
+-
diff --git a/app/build.gradle b/app/build.gradle
index b1247a5..d279760 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -26,7 +26,7 @@ android {
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
- buildConfigField "String", "BASE_URL", "\"\""
+ buildConfigField "String", "BASE_URL", getBaseUrl("BASE_URL")
project.archivesBaseName = "android-" + defaultConfig.versionCode
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -129,3 +129,15 @@ dependencies {
testImplementation deps.test.archCore
testImplementation deps.test.robolectric
}
+
+String getBaseUrl(String name) {
+ try {
+ def properties = new Properties()
+ properties.load(new FileInputStream(rootProject.file("./local.properties")))
+ def baseUrl = properties.getProperty(name)
+ if(baseUrl != null) baseUrl else "\"https://fake.api.com\""
+ } catch(FileNotFoundException e) {
+ e.printStackTrace()
+ "\"https://fake.api.com\""
+ }
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Activity.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Activity.kt
similarity index 90%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Activity.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Activity.kt
index 5a10785..c0d9177 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Activity.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Activity.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 05. 19 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LiveData
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Context.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Context.kt
similarity index 87%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Context.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Context.kt
index 3b08826..d7f8d67 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Context.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Context.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 05. 19 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.content.Context
import androidx.annotation.DrawableRes
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Fragment.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Fragment.kt
similarity index 95%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Fragment.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Fragment.kt
index f82e37a..89aef62 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Fragment.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Fragment.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.graphics.drawable.Drawable
import androidx.annotation.ColorRes
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Glide.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Glide.kt
similarity index 96%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Glide.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Glide.kt
index d42f8d3..ddbb477 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Glide.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Glide.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.graphics.drawable.Drawable
import android.widget.ImageView
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/ImageView.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/ImageView.kt
similarity index 94%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/ImageView.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/ImageView.kt
index 31f0e4e..d5e5748 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/ImageView.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/ImageView.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.graphics.drawable.Drawable
import android.widget.ImageView
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Primitive.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Primitive.kt
similarity index 90%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Primitive.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Primitive.kt
index ef4c866..7d1bf56 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Primitive.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Primitive.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.content.Context
import android.content.res.Resources
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/RecyclerView.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/RecyclerView.kt
similarity index 92%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/RecyclerView.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/RecyclerView.kt
index e5d1417..3981ae0 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/RecyclerView.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/RecyclerView.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
diff --git a/app/src/main/kotlin/kr/tooni/tooni/extensions/Toast.kt b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Toast.kt
similarity index 95%
rename from app/src/main/kotlin/kr/tooni/tooni/extensions/Toast.kt
rename to app/src/main/kotlin/kr/tooni/tooni/core/extensions/Toast.kt
index 5614f78..e61e449 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/extensions/Toast.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/extensions/Toast.kt
@@ -1,7 +1,7 @@
/*
* Created by Leo on 2021. 04. 17 ..
*/
-package kr.tooni.tooni.extensions
+package kr.tooni.tooni.core.extensions
import android.content.Context
import android.widget.Toast
diff --git a/app/src/main/kotlin/kr/tooni/tooni/core/model/Author.kt b/app/src/main/kotlin/kr/tooni/tooni/core/model/Author.kt
new file mode 100644
index 0000000..869be36
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/model/Author.kt
@@ -0,0 +1,18 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.core.model
+
+data class Author(
+ val id: Long,
+ val name: String,
+) {
+
+ companion object {
+
+ val EMPTY = Author(
+ id = 0,
+ name = ""
+ )
+ }
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/core/model/Site.kt b/app/src/main/kotlin/kr/tooni/tooni/core/model/Site.kt
new file mode 100644
index 0000000..96bc90b
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/model/Site.kt
@@ -0,0 +1,29 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.core.model
+
+import com.google.gson.annotations.SerializedName
+
+data class Site(
+ val site: Type?,
+ val thumbnail: String?
+) {
+
+ enum class Type {
+ @SerializedName("NAVER")
+ NAVER,
+ @SerializedName("DAUM")
+ DAUM,
+ @SerializedName("NONE")
+ NONE
+ }
+
+ companion object {
+
+ val EMPTY = Site(
+ site = Type.NONE,
+ thumbnail = null
+ )
+ }
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/core/model/Webtoon.kt b/app/src/main/kotlin/kr/tooni/tooni/core/model/Webtoon.kt
new file mode 100644
index 0000000..c07f9d5
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/model/Webtoon.kt
@@ -0,0 +1,27 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.core.model
+
+data class Webtoon(
+ val id: Long,
+ val authors: List,
+ val site: Site,
+ val thumbnail: String,
+ val title: String
+) {
+
+ companion object {
+
+ val EMPTY = Webtoon(
+ id = 0,
+ authors = listOf(),
+ site = Site(
+ site = null,
+ thumbnail = null
+ ),
+ thumbnail = "",
+ title = ""
+ )
+ }
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/core/model/WeekDay.kt b/app/src/main/kotlin/kr/tooni/tooni/core/model/WeekDay.kt
new file mode 100644
index 0000000..e0be55d
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/core/model/WeekDay.kt
@@ -0,0 +1,14 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.core.model
+
+enum class WeekDay(val value: String) {
+ MON("mon"),
+ TUE("thu"),
+ WED("wed"),
+ THU("thu"),
+ FRI("fri"),
+ SAT("sat"),
+ SUN("sun")
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/data/api/ListApi.kt b/app/src/main/kotlin/kr/tooni/tooni/data/api/ListApi.kt
new file mode 100644
index 0000000..c7f75b2
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/data/api/ListApi.kt
@@ -0,0 +1,24 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.data.api
+
+import io.reactivex.rxjava3.core.Single
+import kr.tooni.tooni.data.response.WebtoonSearchResponse
+import kr.tooni.tooni.data.response.WebtoonWeekDayResponse
+import retrofit2.http.GET
+import retrofit2.http.Path
+import retrofit2.http.Query
+
+interface ListApi : Api {
+
+ @GET("search")
+ fun search(
+ @Query("query") query: String
+ ): Single
+
+ @GET("weekday/{weekday}")
+ fun getWebtoonsByDay(
+ @Path("weekday") weekday: String
+ ): Single
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/data/response/BaseResponse.kt b/app/src/main/kotlin/kr/tooni/tooni/data/response/BaseResponse.kt
new file mode 100644
index 0000000..f5ea872
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/data/response/BaseResponse.kt
@@ -0,0 +1,22 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.data.response
+
+import com.google.gson.annotations.SerializedName
+
+abstract class BaseResponse {
+ val status: Status? = null
+ val message: String? = null
+
+ enum class Status {
+ @SerializedName("OK")
+ OK,
+
+ @SerializedName("CLIENT_ERROR")
+ CLIENT_ERROR,
+
+ @SerializedName("SERVER_ERROR")
+ SERVER_ERROR
+ }
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/data/response/Response.kt b/app/src/main/kotlin/kr/tooni/tooni/data/response/Response.kt
deleted file mode 100644
index 1c91599..0000000
--- a/app/src/main/kotlin/kr/tooni/tooni/data/response/Response.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * Created by Leo on 2021. 04. 18 ..
- */
-package kr.tooni.tooni.data.response
-
-interface Response
diff --git a/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonSearchResponse.kt b/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonSearchResponse.kt
new file mode 100644
index 0000000..858f80a
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonSearchResponse.kt
@@ -0,0 +1,16 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.data.response
+
+import kr.tooni.tooni.core.model.Webtoon
+
+data class WebtoonSearchResponse(
+ val data: WebtoonSearch?
+) : BaseResponse() {
+
+ data class WebtoonSearch(
+ val query: String,
+ val webtoons: List
+ )
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonWeekDayResponse.kt b/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonWeekDayResponse.kt
new file mode 100644
index 0000000..1cdaf19
--- /dev/null
+++ b/app/src/main/kotlin/kr/tooni/tooni/data/response/WebtoonWeekDayResponse.kt
@@ -0,0 +1,17 @@
+/*
+ * Created by Leo on 2021. 05. 19 ..
+ */
+package kr.tooni.tooni.data.response
+
+import kr.tooni.tooni.core.model.Site
+import kr.tooni.tooni.core.model.Webtoon
+
+data class WebtoonWeekDayResponse(
+ val data: WebtoonWeekDay
+) : BaseResponse() {
+
+ data class WebtoonWeekDay(
+ val sites: List,
+ val webtoons: List
+ )
+}
diff --git a/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonFragment.kt b/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonFragment.kt
index 44402cd..75d8e62 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonFragment.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonFragment.kt
@@ -8,9 +8,15 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.disposables.CompositeDisposable
+import io.reactivex.rxjava3.schedulers.Schedulers
import kr.tooni.tooni.R
import kr.tooni.tooni.base.BaseFragment
+import kr.tooni.tooni.data.ApiProvider
+import kr.tooni.tooni.data.api.ListApi
import kr.tooni.tooni.databinding.FragmentWebtoonByDayBinding
+import timber.log.Timber
class DayWebtoonFragment :
BaseFragment(R.layout.fragment_webtoon_by_day) {
@@ -30,8 +36,6 @@ class DayWebtoonFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
- // do LiveData observe
}
companion object {
diff --git a/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonViewModel.kt b/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonViewModel.kt
index 16e3757..2b20547 100644
--- a/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonViewModel.kt
+++ b/app/src/main/kotlin/kr/tooni/tooni/features/day/DayWebtoonViewModel.kt
@@ -3,7 +3,22 @@
*/
package kr.tooni.tooni.features.day
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
import kr.tooni.tooni.base.BaseViewModel
+import kr.tooni.tooni.data.ApiProvider
+import kr.tooni.tooni.data.api.ListApi
+import timber.log.Timber
class DayWebtoonViewModel : BaseViewModel() {
+
+ init {
+ ApiProvider.create(ListApi::class.java).search("조석")
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ // do something
+ }, Timber::e)
+ .addDisposable()
+ }
}