diff --git a/app/build.gradle b/app/build.gradle index 1f596f0..a10a562 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' -apply plugin: 'kotlinx-serialization' apply plugin: 'koin' apply plugin: 'com.google.gms.google-services' @@ -43,6 +42,7 @@ android { } dependencies { + implementation project(':data') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.1' @@ -91,7 +91,6 @@ dependencies { implementation "com.squareup.okhttp3:logging-interceptor:$ok_http_version" testImplementation "com.squareup.okhttp3:mockwebserver:$ok_http_version" - implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0" implementation "androidx.cardview:cardview:1.0.0" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7" diff --git a/app/src/main/java/com/dhruvdroid/sampleott/adapter/ContentListAdapter.kt b/app/src/main/java/com/dhruvdroid/sampleott/adapter/ContentListAdapter.kt index 8b8250f..d9d9bc8 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/adapter/ContentListAdapter.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/adapter/ContentListAdapter.kt @@ -5,8 +5,8 @@ import android.view.ViewGroup import android.widget.Filter import android.widget.Filterable import androidx.recyclerview.widget.RecyclerView +import com.dhruvdroid.data.Content import com.dhruvdroid.sampleott.R -import com.dhruvdroid.sampleott.data.Content import com.dhruvdroid.sampleott.databinding.MovieItemBinding // @@ -15,7 +15,7 @@ import com.dhruvdroid.sampleott.databinding.MovieItemBinding class ContentListAdapter(val list: MutableList) : RecyclerView.Adapter(), Filterable { - private lateinit var listFiltered: MutableList + private var listFiltered: MutableList init { listFiltered = list @@ -33,7 +33,7 @@ class ContentListAdapter(val list: MutableList) : inner class MovieViewHolder(private val viewBinder: MovieItemBinding) : RecyclerView.ViewHolder(viewBinder.root) { - fun viewBinding(data: Content) { + fun viewBinding(data: com.dhruvdroid.data.Content) { viewBinder.title.text = data.name viewBinder.movieCard.setBackgroundResource(getDrawableResource(data.posterImage)) } @@ -82,7 +82,7 @@ class ContentListAdapter(val list: MutableList) : return listFiltered.size } - fun updateList(content: List) { + fun updateList(content: List) { this.list.addAll(content) notifyDataSetChanged() } @@ -94,7 +94,7 @@ class ContentListAdapter(val list: MutableList) : listFiltered = if (charString.isEmpty()) { list } else { - val filteredList: MutableList = ArrayList() + val filteredList: MutableList = ArrayList() for (item in list) { if (item.name.toLowerCase().contains(charString.toLowerCase())) { filteredList.add(item) @@ -109,7 +109,7 @@ class ContentListAdapter(val list: MutableList) : } override fun publishResults(charSequence: CharSequence, filterResults: FilterResults) { - listFiltered = filterResults.values as MutableList + listFiltered = filterResults.values as MutableList notifyDataSetChanged() } } diff --git a/app/src/main/java/com/dhruvdroid/sampleott/adapter/MovieListAdapter.kt b/app/src/main/java/com/dhruvdroid/sampleott/adapter/MovieListAdapter.kt index 577e802..e0d8275 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/adapter/MovieListAdapter.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/adapter/MovieListAdapter.kt @@ -6,22 +6,21 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.dhruvdroid.sampleott.R -import com.dhruvdroid.sampleott.data.Content import com.dhruvdroid.sampleott.databinding.MovieItemBinding // // Created by Dhruv on 15/08/20. // -class MovieListAdapter : ListAdapter(DIFF_CHECK) { +class MovieListAdapter : ListAdapter(DIFF_CHECK) { companion object { - private val DIFF_CHECK = object : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: Content, newItem: Content): Boolean { + private val DIFF_CHECK = object : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: com.dhruvdroid.data.Content, newItem: com.dhruvdroid.data.Content): Boolean { return oldItem.id == newItem.id } - override fun areContentsTheSame(oldItem: Content, newItem: Content): Boolean { + override fun areContentsTheSame(oldItem: com.dhruvdroid.data.Content, newItem: com.dhruvdroid.data.Content): Boolean { return oldItem == newItem } @@ -40,7 +39,7 @@ class MovieListAdapter : ListAdapter( inner class MovieViewHolder(private val viewBinder: MovieItemBinding) : RecyclerView.ViewHolder(viewBinder.root) { - fun viewBinding(data: Content) { + fun viewBinding(data: com.dhruvdroid.data.Content) { viewBinder.title.text = data.name viewBinder.movieCard.setBackgroundResource(getDrawableResource(data.posterImage)) } diff --git a/app/src/main/java/com/dhruvdroid/sampleott/data/Content.kt b/app/src/main/java/com/dhruvdroid/sampleott/data/Content.kt deleted file mode 100755 index 3058339..0000000 --- a/app/src/main/java/com/dhruvdroid/sampleott/data/Content.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.dhruvdroid.sampleott.data - -import com.google.gson.annotations.SerializedName - -// -// Created by Dhruv on 14/08/20. -// - -data class Content( - @field:SerializedName("name") val name: String, - var id: String, - @field:SerializedName("poster-image") val posterImage: String -) \ No newline at end of file diff --git a/app/src/main/java/com/dhruvdroid/sampleott/data/ContentList.kt b/app/src/main/java/com/dhruvdroid/sampleott/data/ContentList.kt deleted file mode 100755 index 7ce1961..0000000 --- a/app/src/main/java/com/dhruvdroid/sampleott/data/ContentList.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.dhruvdroid.sampleott.data - -import com.google.gson.annotations.SerializedName - -// -// Created by Dhruv on 14/08/20. -// - -data class ContentList( - @field:SerializedName("content") val content: List -) - - diff --git a/app/src/main/java/com/dhruvdroid/sampleott/data/Page.kt b/app/src/main/java/com/dhruvdroid/sampleott/data/Page.kt deleted file mode 100755 index 21a760c..0000000 --- a/app/src/main/java/com/dhruvdroid/sampleott/data/Page.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.dhruvdroid.sampleott.data - -import com.google.gson.annotations.SerializedName - -// -// Created by Dhruv on 14/08/20. -// -data class Page ( - @SerializedName("title") val title : String, - @SerializedName("total-content-items") val totalContentItems : Int, - @SerializedName("page-num") val pageNum : Int, - @SerializedName("page-size") val pageSize : Int, - @SerializedName("content-items") val contentItems : ContentList -) \ No newline at end of file diff --git a/app/src/main/java/com/dhruvdroid/sampleott/data/Tray.kt b/app/src/main/java/com/dhruvdroid/sampleott/data/Tray.kt deleted file mode 100755 index 5d67ec8..0000000 --- a/app/src/main/java/com/dhruvdroid/sampleott/data/Tray.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.dhruvdroid.sampleott.data - -// -// Created by Dhruv on 14/08/20. -// -data class Tray(val page: Page) \ No newline at end of file diff --git a/app/src/main/java/com/dhruvdroid/sampleott/database/TrayDao.kt b/app/src/main/java/com/dhruvdroid/sampleott/database/TrayDao.kt index 3eb8e91..5e9b20d 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/database/TrayDao.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/database/TrayDao.kt @@ -3,7 +3,6 @@ package com.dhruvdroid.sampleott.database import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy -import com.dhruvdroid.sampleott.data.Tray // // Created by Dhruv on 14/08/20. @@ -13,7 +12,7 @@ import com.dhruvdroid.sampleott.data.Tray interface TrayDao { @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertMovieList(movieList: List) + suspend fun insertMovieList(movieList: List) // @Query("SELECT * FROM Tray WHERE page = :page_") // suspend fun getMovieList(page_: Int): List diff --git a/app/src/main/java/com/dhruvdroid/sampleott/network/MovieService.kt b/app/src/main/java/com/dhruvdroid/sampleott/network/MovieService.kt index c8917b6..d4e8903 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/network/MovieService.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/network/MovieService.kt @@ -1,6 +1,5 @@ package com.dhruvdroid.sampleott.network -import com.dhruvdroid.sampleott.data.Tray import retrofit2.http.GET import retrofit2.http.Url @@ -11,5 +10,5 @@ import retrofit2.http.Url interface MovieService { @GET - suspend fun fetchList(@Url path: String): Tray + suspend fun fetchList(@Url path: String): com.dhruvdroid.data.Tray } diff --git a/app/src/main/java/com/dhruvdroid/sampleott/repository/MainRepository.kt b/app/src/main/java/com/dhruvdroid/sampleott/repository/MainRepository.kt index ed56b73..cb0fd27 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/repository/MainRepository.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/repository/MainRepository.kt @@ -1,9 +1,6 @@ package com.dhruvdroid.sampleott.repository import android.util.Log -import com.dhruvdroid.sampleott.data.Content -import com.dhruvdroid.sampleott.data.MovieResult -import com.dhruvdroid.sampleott.data.Tray import com.dhruvdroid.sampleott.network.MovieService import com.dhruvdroid.sampleott.utilities.AppUtils import com.dhruvdroid.sampleott.utilities.AppUtils.getRandomId @@ -23,7 +20,7 @@ class MainRepository constructor( private val service: MovieService ) : Repository { - private val searchResults = ConflatedBroadcastChannel() + private val searchResults = ConflatedBroadcastChannel() // keep the last requested page. When the request is successful, increment the page number. private var lastRequestedPage = START_PAGE_INDEX @@ -31,9 +28,9 @@ class MainRepository constructor( // avoid triggering multiple requests in the same time private var isApiInProgress = false - private var memoryCache = mutableListOf() + private var memoryCache = mutableListOf() - suspend fun getMovieList(): Flow { + suspend fun getMovieList(): Flow { lastRequestedPage = 1 memoryCache.clear() requestData() @@ -48,18 +45,18 @@ class MainRepository constructor( Log.d("--", "lastRequestedPage == $lastRequestedPage") val response = service.fetchList(AppUtils.getApiUrl(lastRequestedPage)) memoryCache.addAll(response.page.contentItems.content) - searchResults.offer(MovieResult.Success(filterItem(response))) + searchResults.offer(com.dhruvdroid.data.MovieResult.Success(filterItem(response))) isSuccess = true } catch (exception: IOException) { - searchResults.offer(MovieResult.Error(exception)) + searchResults.offer(com.dhruvdroid.data.MovieResult.Error(exception)) } catch (exception: HttpException) { - searchResults.offer(MovieResult.Error(exception)) + searchResults.offer(com.dhruvdroid.data.MovieResult.Error(exception)) } isApiInProgress = false return isSuccess } - private fun filterItem(response: Tray): Tray { + private fun filterItem(response: com.dhruvdroid.data.Tray): com.dhruvdroid.data.Tray { // adding random id to the API response val array = ByteArray(7) Random().nextBytes(array) diff --git a/app/src/main/java/com/dhruvdroid/sampleott/ui/MainActivity.kt b/app/src/main/java/com/dhruvdroid/sampleott/ui/MainActivity.kt index 94490a8..72f0e40 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/ui/MainActivity.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/ui/MainActivity.kt @@ -15,10 +15,6 @@ import com.dhruvdroid.sampleott.R import com.dhruvdroid.sampleott.adapter.ContentListAdapter import com.dhruvdroid.sampleott.adapter.MovieListAdapter import com.dhruvdroid.sampleott.base.BaseActivity -import com.dhruvdroid.sampleott.data.Content -import com.dhruvdroid.sampleott.data.MovieResult -import com.dhruvdroid.sampleott.data.Page -import com.dhruvdroid.sampleott.data.Tray import com.dhruvdroid.sampleott.layoutmanager.CustomGridLayoutManager import com.dhruvdroid.sampleott.layoutmanager.ListDecorator import com.dhruvdroid.sampleott.utilities.AppUtils @@ -35,7 +31,7 @@ class MainActivity : BaseActivity() { private var totalCount = 0 private var contentAdapter: ContentListAdapter? = null - private lateinit var list: List + private lateinit var list: List private val movieAdapter = MovieListAdapter() private val viewModel: MainViewModel by viewModel() @@ -53,12 +49,12 @@ class MainActivity : BaseActivity() { viewModel.movieResult.observe(this) { result -> when (result) { - is MovieResult.Success -> { + is com.dhruvdroid.data.MovieResult.Success -> { showEmptyList(result.data.page) setUiData(result.data) } - is MovieResult.Error -> { + is com.dhruvdroid.data.MovieResult.Error -> { Toast.makeText( this, " $result.message}", @@ -69,13 +65,13 @@ class MainActivity : BaseActivity() { } } - private fun setUiData(data: Tray) { + private fun setUiData(data: com.dhruvdroid.data.Tray) { // list = data.page.contentItems.content // movieAdapter.submitList(list) if (contentAdapter == null) { contentAdapter = - ContentListAdapter(data.page.contentItems.content as MutableList) + ContentListAdapter(data.page.contentItems.content as MutableList) rvList.apply { // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView @@ -91,13 +87,13 @@ class MainActivity : BaseActivity() { } } else { totalCount += data.page.contentItems.content.size - contentAdapter?.updateList(data.page.contentItems.content as MutableList) + contentAdapter?.updateList(data.page.contentItems.content as MutableList) } setupScrollListener() } - private fun showEmptyList(page: Page) { + private fun showEmptyList(page: com.dhruvdroid.data.Page) { if (page.contentItems.content.isEmpty()) { emptyList.visibility = View.VISIBLE rvList.visibility = View.GONE diff --git a/app/src/main/java/com/dhruvdroid/sampleott/ui/MainViewModel.kt b/app/src/main/java/com/dhruvdroid/sampleott/ui/MainViewModel.kt index 8cd32cc..b8bc300 100644 --- a/app/src/main/java/com/dhruvdroid/sampleott/ui/MainViewModel.kt +++ b/app/src/main/java/com/dhruvdroid/sampleott/ui/MainViewModel.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.asLiveData import androidx.lifecycle.liveData import androidx.lifecycle.viewModelScope import com.dhruvdroid.sampleott.base.BaseViewModel -import com.dhruvdroid.sampleott.data.MovieResult import com.dhruvdroid.sampleott.repository.MainRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -20,7 +19,7 @@ class MainViewModel constructor( private val repo: MainRepository ) : BaseViewModel() { - var movieResult: LiveData + var movieResult: LiveData companion object { @@ -28,7 +27,7 @@ class MainViewModel constructor( } init { - movieResult = liveData { + movieResult = liveData { val list = repo.getMovieList().asLiveData(Dispatchers.Main) emitSource(list) } diff --git a/app/src/test/java/com/dhruvdroid/sampleott/MainViewModelTest.kt b/app/src/test/java/com/dhruvdroid/sampleott/MainViewModelTest.kt index c79fa1f..70520e8 100644 --- a/app/src/test/java/com/dhruvdroid/sampleott/MainViewModelTest.kt +++ b/app/src/test/java/com/dhruvdroid/sampleott/MainViewModelTest.kt @@ -5,8 +5,6 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.LiveData import androidx.lifecycle.Observer import androidx.lifecycle.asLiveData -import com.dhruvdroid.sampleott.data.MovieResult -import com.dhruvdroid.sampleott.data.Tray import com.dhruvdroid.sampleott.network.MovieService import com.dhruvdroid.sampleott.repository.MainRepository import com.dhruvdroid.sampleott.ui.MainViewModel @@ -53,12 +51,12 @@ class MainViewModelTest { @Test fun fetchMovieTest() = runBlocking { - val mockData = Json.parse(MockUtil.loadJSONFromAsset(context, "page1.json")) + val mockData = Json.parse(MockUtil.loadJSONFromAsset(context, "page1.json")) whenever(movieService.fetchList("https://run.mocky.io/v3/1297c2bf-7399-48f1-b8ee-d0f98ca45a34")) .thenReturn(mockData) - val observer: Observer = mock() - val fetchedData: LiveData = + val observer: Observer = mock() + val fetchedData: LiveData = mainRepository.getMovieList().asLiveData() fetchedData.observeForever(observer) diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..ade4ff3 --- /dev/null +++ b/data/README.md @@ -0,0 +1,11 @@ +# Different types of JSON parsing technique + +**Below mentioned - ** +1. Moshi- +@Json(name = "vote_count") val voteCount: Int = -1 + +2. GSON- +@SerializedName(“vote_count”) val voteCount: Int = -1 + +3. Jackson - +@JsonProperty("vote_count") val voteCount: Int = -1 diff --git a/data/build.gradle b/data/build.gradle new file mode 100644 index 0000000..4e668d1 --- /dev/null +++ b/data/build.gradle @@ -0,0 +1,13 @@ +apply plugin: 'java-library' +apply plugin: 'kotlin' +apply plugin: 'kotlinx-serialization' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0" + implementation "com.squareup.moshi:moshi-kotlin:1.9.3" +} + +sourceCompatibility = "1.7" +targetCompatibility = "1.7" \ No newline at end of file diff --git a/data/src/main/java/com/dhruvdroid/data/Content.kt b/data/src/main/java/com/dhruvdroid/data/Content.kt new file mode 100755 index 0000000..3b7539b --- /dev/null +++ b/data/src/main/java/com/dhruvdroid/data/Content.kt @@ -0,0 +1,19 @@ +package com.dhruvdroid.data + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +// +// Created by Dhruv on 14/08/20. +// + +// this will make sure to generate the JsonAdapter to handle serialization and de-serialization +@JsonClass(generateAdapter = true) +data class Content( + val name: String, + var id: String, + @Json(name = "poster-image") val posterImage: String +// @field:SerializedName("name") val name: String, +// var id: String, +// @field:SerializedName("poster-image") val posterImage: String +) \ No newline at end of file diff --git a/data/src/main/java/com/dhruvdroid/data/ContentList.kt b/data/src/main/java/com/dhruvdroid/data/ContentList.kt new file mode 100755 index 0000000..906ee54 --- /dev/null +++ b/data/src/main/java/com/dhruvdroid/data/ContentList.kt @@ -0,0 +1,13 @@ +package com.dhruvdroid.data + +import com.squareup.moshi.JsonClass + +// +// Created by Dhruv on 14/08/20. +// +@JsonClass(generateAdapter = true) +data class ContentList( + val content: List +) + + diff --git a/app/src/main/java/com/dhruvdroid/sampleott/data/MovieResult.kt b/data/src/main/java/com/dhruvdroid/data/MovieResult.kt similarity index 89% rename from app/src/main/java/com/dhruvdroid/sampleott/data/MovieResult.kt rename to data/src/main/java/com/dhruvdroid/data/MovieResult.kt index ca9b802..f06a154 100755 --- a/app/src/main/java/com/dhruvdroid/sampleott/data/MovieResult.kt +++ b/data/src/main/java/com/dhruvdroid/data/MovieResult.kt @@ -1,4 +1,4 @@ -package com.dhruvdroid.sampleott.data +package com.dhruvdroid.data // // Created by Dhruv on 15/08/20. diff --git a/data/src/main/java/com/dhruvdroid/data/Page.kt b/data/src/main/java/com/dhruvdroid/data/Page.kt new file mode 100755 index 0000000..350e871 --- /dev/null +++ b/data/src/main/java/com/dhruvdroid/data/Page.kt @@ -0,0 +1,16 @@ +package com.dhruvdroid.data + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +// +// Created by Dhruv on 14/08/20. +// +@JsonClass(generateAdapter = true) +data class Page( + val title: String, + @Json(name = "total-content-items") val totalContentItems: Int, + @Json(name = "page-num") val pageNum: Int, + @Json(name = "page-size") val pageSize: Int, + @Json(name = "content-items") val contentItems: ContentList +) \ No newline at end of file diff --git a/data/src/main/java/com/dhruvdroid/data/Tray.kt b/data/src/main/java/com/dhruvdroid/data/Tray.kt new file mode 100755 index 0000000..fdc02e6 --- /dev/null +++ b/data/src/main/java/com/dhruvdroid/data/Tray.kt @@ -0,0 +1,6 @@ +package com.dhruvdroid.data + +// +// Created by Dhruv on 14/08/20. +// +data class Tray(val page: com.dhruvdroid.data.Page) \ No newline at end of file diff --git a/domain/.gitignore b/domain/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/domain/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/domain/build.gradle b/domain/build.gradle new file mode 100644 index 0000000..4b8089c --- /dev/null +++ b/domain/build.gradle @@ -0,0 +1,10 @@ +apply plugin: 'java-library' +apply plugin: 'kotlin' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +sourceCompatibility = "1.7" +targetCompatibility = "1.7" \ No newline at end of file diff --git a/domain/src/main/java/com/dhruvdroid/domain/MyClass.kt b/domain/src/main/java/com/dhruvdroid/domain/MyClass.kt new file mode 100644 index 0000000..fde439c --- /dev/null +++ b/domain/src/main/java/com/dhruvdroid/domain/MyClass.kt @@ -0,0 +1,4 @@ +package com.dhruvdroid.domain + +class MyClass { +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index a77a401..85f0f8b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,5 @@ +include ':usesases' +include ':data' +include ':domain' include ':app' rootProject.name = "SampleOTT" \ No newline at end of file diff --git a/usesases/.gitignore b/usesases/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/usesases/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/usesases/build.gradle b/usesases/build.gradle new file mode 100644 index 0000000..4b8089c --- /dev/null +++ b/usesases/build.gradle @@ -0,0 +1,10 @@ +apply plugin: 'java-library' +apply plugin: 'kotlin' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +sourceCompatibility = "1.7" +targetCompatibility = "1.7" \ No newline at end of file diff --git a/usesases/src/main/java/com/dhruvdroid/usesases/MyClass.kt b/usesases/src/main/java/com/dhruvdroid/usesases/MyClass.kt new file mode 100644 index 0000000..42adef7 --- /dev/null +++ b/usesases/src/main/java/com/dhruvdroid/usesases/MyClass.kt @@ -0,0 +1,4 @@ +package com.dhruvdroid.usesases + +class MyClass { +} \ No newline at end of file