Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[둘리] 3, 4 단계 영화 티켓 예매 제출합니다. #47

Merged
merged 47 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
afc8cca
test: PriceCalculatorTest 생성
hyemdooly Apr 18, 2023
4ca2988
test: TicketTest 수정
hyemdooly Apr 18, 2023
aaace58
refactor: fold를 사용하여 코드 단축
hyemdooly Apr 18, 2023
067af6b
refactor: PlayingDateTimes로 클래스명과 코드 수정
hyemdooly Apr 18, 2023
f5c4730
refactor: package 이동으로 인한 수정
hyemdooly Apr 18, 2023
eeaeb22
refactor: 필요없는 주석 삭제
hyemdooly Apr 18, 2023
d8f91d8
refactor: TicketResultActivity View 세팅 코드 분리
hyemdooly Apr 18, 2023
417aca7
feat: SeatSelectActivity xml 작성
hyemdooly Apr 20, 2023
d9672f2
refactor: DateSpinnerListener 삭제, findViewById 한번만 하도록 수정
hyemdooly Apr 20, 2023
e174e3d
refactor: MovieListItemListener 분리
hyemdooly Apr 20, 2023
debeaca
fix: onItemClickListener -> SelectedListener 수정
hyemdooly Apr 20, 2023
76c0a90
feat: SeatView 구현
hyemdooly Apr 20, 2023
3738630
refactor: Ticket Model 구조 변경
hyemdooly Apr 20, 2023
e892f4b
feat: 좌석 선택 페이지로 넘어가도록 수정
hyemdooly Apr 20, 2023
2c8cc14
feat: 좌석 Grade 클래스 추가
hyemdooly Apr 20, 2023
21c892b
feat: TheaterInfo 생성
hyemdooly Apr 21, 2023
61f7022
feat: SeatSelectSystem 생성
hyemdooly Apr 21, 2023
09e0766
feat: SelectResult Success sead class 생성
hyemdooly Apr 21, 2023
cf52062
refactor: PriceCalculator 리팩토링
hyemdooly Apr 21, 2023
8291de2
feat: PriceSystem 생성
hyemdooly Apr 21, 2023
f4d6e7c
refactor: JUnit4 버전 수정
hyemdooly Apr 21, 2023
cd9c49e
feat: Seat 클래스 생성, seats custom getter 생성
hyemdooly Apr 21, 2023
e351227
refactor: 패키지명 수정
hyemdooly Apr 21, 2023
7ff59f2
feat: 좌석 선택 액티비티 구현
hyemdooly Apr 21, 2023
55df55c
feat: Listener 수정, 자리 선택 액티비티 구현 완료
hyemdooly Apr 21, 2023
025733a
refactor: Ticket 액티비티에서 자리 순서대로 출력하도록 수정
hyemdooly Apr 21, 2023
61c6a5f
refactor: count max값 추가
hyemdooly Apr 21, 2023
29d7245
refactor: PriceModel 구현 및 수정
hyemdooly Apr 22, 2023
a410609
feat: Dialog 구현
hyemdooly Apr 22, 2023
1e294bc
feat: Dialog NegativeButton Listener 추가
hyemdooly Apr 22, 2023
371ec72
refactor: UI 변경 사항 수정
hyemdooly Apr 22, 2023
9c41ac5
test: MovieDetailActivity, SeatSelectActivity UI Test 추가
hyemdooly Apr 22, 2023
21c60b1
test: TicketResultActivity UI Test 추가
hyemdooly Apr 22, 2023
04b076e
feat: ListView -> RecyclerView로 변경
hyemdooly Apr 22, 2023
74fbd10
feat: RecyclerView Ad View 추가
hyemdooly Apr 22, 2023
cc1abcc
refactor: ViewHolder property private 수정
hyemdooly Apr 22, 2023
3b89b78
test: MovieListActivityTest 추가
hyemdooly Apr 22, 2023
ea36840
docs: Update README.md
hyemdooly Apr 22, 2023
aa5050c
refactor: MovieDetailActivityTest 수정
hyemdooly Apr 24, 2023
8a3b1df
refactor: MovieDetailActivityTest 수정
hyemdooly Apr 24, 2023
55c309b
refactor: Listener interface 삭제
hyemdooly Apr 24, 2023
27c24b4
refactor: layoutManager xml에서 지정, View에서 Bundle이 아닌 Data 주입
hyemdooly Apr 24, 2023
03d294e
refactor: ReserveInfoModel 추가 및 수정
hyemdooly Apr 24, 2023
bb03b6a
refactor: sealed class view holder, view type enum class 생성, item들 xm…
hyemdooly Apr 24, 2023
0522cc9
Merge remote-tracking branch 'origin/step4' into step4
hyemdooly Apr 24, 2023
8f35ee7
refactor: 코드 변경에 따른 테스트 수정, 패키지 변경
hyemdooly Apr 24, 2023
9f09fcd
refactor: Log 삭제
hyemdooly Apr 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: ReserveInfoModel 추가 및 수정
  • Loading branch information
hyemdooly committed Apr 24, 2023
commit 03d294e34306debcbd3b1c34aa211aa6a1fc0349
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity
import woowacourse.movie.R
import woowacourse.movie.activity.seatselect.SeatSelectActivity
import woowacourse.movie.model.MovieModel
import woowacourse.movie.model.ReserveInfoModel
import woowacourse.movie.util.getSerializableExtraCompat
import java.time.LocalDateTime

Expand Down Expand Up @@ -40,9 +41,7 @@ class MovieDetailActivity : AppCompatActivity() {

private fun onClick(title: String, dateTime: LocalDateTime, count: Int) {
val intent = Intent(this, SeatSelectActivity::class.java)
intent.putExtra(SeatSelectActivity.TITLE_KEY, title)
intent.putExtra(SeatSelectActivity.DATETIME_KEY, dateTime)
intent.putExtra(SeatSelectActivity.COUNT_KEY, count)
intent.putExtra(SeatSelectActivity.INFO_KEY, ReserveInfoModel(title, dateTime, count))
startActivity(intent)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,29 @@ import woowacourse.movie.activity.ticketresult.TicketResultActivity
import woowacourse.movie.domain.price.PriceCalculator
import woowacourse.movie.domain.system.PriceSystem
import woowacourse.movie.domain.system.SeatSelectSystem
import woowacourse.movie.model.ReserveInfoModel
import woowacourse.movie.model.TicketModel
import woowacourse.movie.util.Theater
import woowacourse.movie.util.getSerializableExtraCompat
import java.time.LocalDateTime

class SeatSelectActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_seat_select)

val title = intent.getStringExtra(TITLE_KEY)
val dateTime = intent.getSerializableExtraCompat<LocalDateTime>(DATETIME_KEY)
val count = intent.getIntExtra(COUNT_KEY, -1)

if (isDataNull(title, dateTime, count)) {
val reserveInfo = intent.getSerializableExtraCompat<ReserveInfoModel>(INFO_KEY)
if (reserveInfo == null) {
Toast.makeText(this, DATA_LOADING_ERROR_MESSAGE, Toast.LENGTH_LONG).show()
finish()
return
}

val title = reserveInfo.title
val dateTime = reserveInfo.dateTime
val count = reserveInfo.count

val seatSelectSystem = SeatSelectSystem(Theater.info, count)
val priceSystem = PriceSystem(PriceCalculator(Theater.policies), dateTime!!)
val priceSystem = PriceSystem(PriceCalculator(Theater.policies), dateTime)
val seatView =
SeatSelectView(
findViewById(R.id.layout_select_seat),
Expand All @@ -40,24 +41,20 @@ class SeatSelectActivity : AppCompatActivity() {
::onClick,
)

seatView.set(title!!, dateTime)
seatView.set(title, dateTime)

Log.d("hyem", seatSelectSystem.seats.toString())
}

private fun isDataNull(title: String?, dateTime: LocalDateTime?, count: Int): Boolean {
return title == null || dateTime == null || count == -1
}

private fun onClick(model: TicketModel) {
val intent = Intent(this, TicketResultActivity::class.java)
intent.putExtra(TicketResultActivity.INFO_KEY, model)
startActivity(intent)
}

companion object {
const val INFO_KEY = "INFO"
private const val DATA_LOADING_ERROR_MESSAGE = "데이터가 로딩되지 않았습니다. 다시 시도해주세요."
private const val PRICE_KEY = "PRICE"
const val TITLE_KEY = "TITLE"
const val DATETIME_KEY = "DATETIME"
const val COUNT_KEY = "COUNT"
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/java/woowacourse/movie/model/ReserveInfoModel.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package woowacourse.movie.model

import java.time.LocalDateTime

data class ReserveInfoModel(
val title: String,
val dateTime: LocalDateTime,
val count: Int
) : java.io.Serializable