package io.github.lamtran.moviebooking.presentation.util; import io.github.lamtran.moviebooking.R; import io.github.lamtran.moviebooking.data.model.theatre.seat.ChosenSeat; import io.github.lamtran.moviebooking.data.model.theatre.seat.EmptySeat; import io.github.lamtran.moviebooking.data.model.theatre.seat.ReservedSeat; import io.github.lamtran.moviebooking.data.model.theatre.seat.Seat; import io.github.lamtran.moviebooking.data.model.theatre.seat.UnChosenSeat; import java.util.ArrayList; import java.util.List; /** * Author: JONATHAN MERRITT * Year: 2017 * Contact: 11R00TT00RR11@GMAIL.COM */ public class TheatreUtils { public static List<Seat> seats() { final List<Seat> seats = new ArrayList<>(); int number = 1, total = 0; do { number = number + 4; seats.add(UnChosenSeat.create(number - 4)); seats.add(UnChosenSeat.create(number - 3)); seats.add(EmptySeat.create(number - 2)); seats.add(UnChosenSeat.create(number - 1)); total++; } while (total < 8); return seats; } public static Seat resolveSeat(Seat last, Class<? extends Seat> cLass) { return UnChosenSeat.check(cLass) ? UnChosenSeat.copy(last) : ChosenSeat.check(cLass) ? ChosenSeat.copy(last) : ReservedSeat.check(cLass) ? ReservedSeat.copy(last) : EmptySeat.copy(last); } public static int resolveLayout(Class<? extends Seat> cLass) { return UnChosenSeat.check(cLass) ? R.layout.holder_unchosen_seat : ChosenSeat.check(cLass) ? R.layout.holder_chosen_seat : ReservedSeat.check(cLass) ? R.layout.holder_reserved_seat : R.layout.holder_empty_seat; } public static Class<? extends Seat> swapSeat(Class<? extends Seat> cLass) { return UnChosenSeat.check(cLass) ? ChosenSeat.class : ChosenSeat.check(cLass) ? UnChosenSeat.class : ReservedSeat.check(cLass) ? EmptySeat.class : EmptySeat.check(cLass) ? ReservedSeat.class : EmptySeat.class; } public static Class<? extends Seat> swapSeatAlt(Class<? extends Seat> cLass) { return UnChosenSeat.check(cLass) ? ReservedSeat.class : ChosenSeat.check(cLass) ? EmptySeat.class : ReservedSeat.check(cLass) ? UnChosenSeat.class : EmptySeat.check(cLass) ? ChosenSeat.class : EmptySeat.class; } }