-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
204 additions
and
45 deletions.
There are no files selected for viewing
16 changes: 16 additions & 0 deletions
16
app/src/main/java/com/chunbae/narchive/data/remote/api/SearchMovieService.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.chunbae.narchive.data.remote.api | ||
|
||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
import retrofit2.Response | ||
import retrofit2.http.GET | ||
import retrofit2.http.Query | ||
|
||
interface SearchMovieService { | ||
|
||
@GET("searchMovieList.json") | ||
suspend fun getMovieData( | ||
@Query("key", encoded = true) key : String, | ||
@Query("movieNm", encoded = true) movieNm : String, | ||
@Query("curPage", encoded = true) curPage : Int, | ||
) : Response<ResponseMovieData> | ||
} |
17 changes: 0 additions & 17 deletions
17
app/src/main/java/com/chunbae/narchive/data/remote/api/TmdbService.kt
This file was deleted.
Oops, something went wrong.
12 changes: 12 additions & 0 deletions
12
app/src/main/java/com/chunbae/narchive/data/remote/repository/MovieSearchRepositoryImpl.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package com.chunbae.narchive.data.remote.repository | ||
|
||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
import com.chunbae.narchive.domain.repository.MovieSearchRepository | ||
import com.chunbae.narchive.domain.source.MovieSearchSource | ||
import javax.inject.Inject | ||
|
||
class MovieSearchRepositoryImpl @Inject constructor(private val source: MovieSearchSource): MovieSearchRepository { | ||
override suspend fun getMovieLists(movieNm: String): Result<List<ResponseMovieData.ResultSearchMovie>> { | ||
return source.getMovieLists(movieNm) | ||
} | ||
} |
18 changes: 13 additions & 5 deletions
18
app/src/main/java/com/chunbae/narchive/data/remote/response/ResponseMovieData.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,20 @@ | ||
package com.chunbae.narchive.data.remote.response | ||
|
||
data class ResponseMovieData( | ||
val page : Int, | ||
val results : List<ResultSearchMovie> | ||
val movieListResult : Sub | ||
) { | ||
data class Sub( | ||
val totCnt : Int, | ||
val movieList : List<ResultSearchMovie> | ||
) | ||
data class ResultSearchMovie( | ||
val title : String, | ||
val release_date : String, | ||
|
||
val movieCd : String, | ||
val movieNm : String, | ||
var openDt : String, | ||
val genreAlt : String, | ||
val directors : List<Director> | ||
) | ||
data class Director ( | ||
val peopleNm : String | ||
) | ||
} |
19 changes: 19 additions & 0 deletions
19
app/src/main/java/com/chunbae/narchive/data/remote/source/MovieSearchRemoteSource.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package com.chunbae.narchive.data.remote.source | ||
|
||
import android.util.Log | ||
import com.chunbae.narchive.data.remote.api.SearchMovieService | ||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
import com.chunbae.narchive.domain.source.MovieSearchSource | ||
import javax.inject.Inject | ||
|
||
class MovieSearchRemoteSource @Inject constructor(private val service : SearchMovieService): MovieSearchSource { | ||
override suspend fun getMovieLists(movieNm: String): Result<List<ResponseMovieData.ResultSearchMovie>> { | ||
val res = service.getMovieData("f28ad8a4ed81962cbbffbd289eea80b1", movieNm, 1) | ||
if(res.isSuccessful) { | ||
Log.d("----", "getMovieLists: ${res.body()!!.movieListResult.movieList}") | ||
return Result.success(res.body()!!.movieListResult.movieList) | ||
} | ||
Log.d("----", "getMovieLists: ${res.message()}") | ||
return Result.failure(IllegalArgumentException(res.message())) | ||
} | ||
} |
8 changes: 8 additions & 0 deletions
8
app/src/main/java/com/chunbae/narchive/domain/repository/MovieSearchRepository.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.chunbae.narchive.domain.repository | ||
|
||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
|
||
interface MovieSearchRepository { | ||
|
||
suspend fun getMovieLists(movieNm : String) : Result<List<ResponseMovieData.ResultSearchMovie>> | ||
} |
8 changes: 8 additions & 0 deletions
8
app/src/main/java/com/chunbae/narchive/domain/source/MovieSearchSource.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.chunbae.narchive.domain.source | ||
|
||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
|
||
interface MovieSearchSource { | ||
|
||
suspend fun getMovieLists(movieNm : String) : Result<List<ResponseMovieData.ResultSearchMovie>> | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
36 changes: 36 additions & 0 deletions
36
...main/java/com/chunbae/narchive/presentation/ui/search/movie/adapter/SearchMovieAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package com.chunbae.narchive.presentation.ui.search.movie.adapter | ||
|
||
import android.view.LayoutInflater | ||
import android.view.ViewGroup | ||
import androidx.recyclerview.widget.RecyclerView | ||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
import com.chunbae.narchive.databinding.ItemSearchBookMovieListFormBinding | ||
import com.chunbae.narchive.presentation.ui.search.book.adapter.SearchBookAdapter | ||
|
||
class SearchMovieAdapter(private val onItemClick : (ResponseMovieData.ResultSearchMovie) -> Unit) : RecyclerView.Adapter<SearchMovieAdapter.SearchMovieViewHolder>() { | ||
var movieItems = mutableListOf<ResponseMovieData.ResultSearchMovie>() | ||
|
||
inner class SearchMovieViewHolder(private val binding : ItemSearchBookMovieListFormBinding) : RecyclerView.ViewHolder(binding.root) { | ||
fun bind(item : ResponseMovieData.ResultSearchMovie) { | ||
binding.type = "Movie" | ||
binding.movieData = item | ||
binding.root.setOnClickListener { onItemClick.invoke(item) } | ||
} | ||
} | ||
|
||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SearchMovieViewHolder { | ||
return SearchMovieViewHolder( | ||
ItemSearchBookMovieListFormBinding.inflate( | ||
LayoutInflater.from(parent.context), | ||
parent, | ||
false | ||
) | ||
) | ||
} | ||
|
||
override fun getItemCount(): Int = movieItems.size | ||
|
||
override fun onBindViewHolder(holder: SearchMovieViewHolder, position: Int) { | ||
holder.bind(movieItems[position]) | ||
} | ||
} |
46 changes: 44 additions & 2 deletions
46
...c/main/java/com/chunbae/narchive/presentation/ui/search/movie/view/SearchMovieActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,72 @@ | ||
package com.chunbae.narchive.presentation.ui.search.movie.view | ||
|
||
import android.content.Intent | ||
import android.os.Bundle | ||
import android.util.Log | ||
import android.widget.Toast | ||
import androidx.activity.viewModels | ||
import androidx.appcompat.app.AppCompatActivity | ||
import androidx.databinding.DataBindingUtil | ||
import androidx.recyclerview.widget.DividerItemDecoration | ||
import androidx.recyclerview.widget.LinearLayoutManager | ||
import com.chunbae.narchive.R | ||
import com.chunbae.narchive.data.data.BookData | ||
import com.chunbae.narchive.data.remote.response.ResponseMovieData | ||
import com.chunbae.narchive.databinding.ActivityBookMovieSearchBinding | ||
import com.chunbae.narchive.presentation.ui.search.movie.adapter.SearchMovieAdapter | ||
import com.chunbae.narchive.presentation.ui.search.movie.viewmodel.SearchMovieViewModel | ||
import com.chunbae.narchive.presentation.ui.write.book.view.WriteBookReviewActivity | ||
import dagger.hilt.android.AndroidEntryPoint | ||
|
||
@AndroidEntryPoint | ||
class SearchMovieActivity : AppCompatActivity() { | ||
|
||
private lateinit var binding : ActivityBookMovieSearchBinding | ||
private val viewModel : SearchMovieViewModel by viewModels() | ||
private val movieAdapter by lazy { | ||
SearchMovieAdapter(::onMovieSelected) | ||
} | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
|
||
binding = DataBindingUtil.setContentView(this, R.layout.activity_book_movie_search) | ||
|
||
initBinding() | ||
initMovieList() | ||
initMovieObserver() | ||
} | ||
|
||
private fun initBinding() { | ||
binding.type = "Movie" | ||
binding.movieActivity = this | ||
binding.movieViewModel = viewModel | ||
binding.lifecycleOwner = this | ||
} | ||
|
||
private fun initMovieList() { | ||
val dividerItemDecoration = DividerItemDecoration(this, LinearLayoutManager.VERTICAL) | ||
binding.searchRvContainer.adapter = movieAdapter | ||
binding.searchRvContainer.addItemDecoration(dividerItemDecoration) | ||
} | ||
|
||
private fun initMovieObserver() { | ||
viewModel.searchedMovieList.observe(this) { | ||
Log.d("----", "initMovieObserver: $it") | ||
movieAdapter.movieItems = it | ||
movieAdapter.notifyItemRangeChanged(0, it.size) | ||
} | ||
} | ||
|
||
fun searchMovie() { | ||
if(binding.searchEdtUserKeyword.text.isNotEmpty()) viewModel.getSearchedMovieData(binding.searchEdtUserKeyword.text.toString()) | ||
else Toast.makeText(this, "검색어를 입력해주세요.", Toast.LENGTH_SHORT).show() | ||
} | ||
|
||
fun click() { | ||
Toast.makeText(this, "MOVIE", Toast.LENGTH_SHORT).show() | ||
private fun onMovieSelected(item: ResponseMovieData.ResultSearchMovie) { | ||
val intent = Intent(this, WriteBookReviewActivity::class.java) | ||
intent.putExtra("Movie", item.movieCd) | ||
startActivity(intent) | ||
finish() | ||
} | ||
} |
Oops, something went wrong.