parent
5f7ed22711
commit
45e5494653
|
@ -2,6 +2,8 @@ package kr.co.vividnext.sodalive.audio_content.upload
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.app.DatePickerDialog
|
||||||
|
import android.app.TimePickerDialog
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
@ -28,9 +30,15 @@ import kr.co.vividnext.sodalive.common.RealPathUtil
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentUploadBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentUploadBinding
|
||||||
import kr.co.vividnext.sodalive.dialog.LiveDialog
|
import kr.co.vividnext.sodalive.dialog.LiveDialog
|
||||||
|
import kr.co.vividnext.sodalive.dialog.SodaLiveTimePickerDialog
|
||||||
|
import kr.co.vividnext.sodalive.extensions.convertDateFormat
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Calendar
|
||||||
|
import java.util.Date
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBinding>(
|
class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBinding>(
|
||||||
ActivityAudioContentUploadBinding::inflate
|
ActivityAudioContentUploadBinding::inflate
|
||||||
|
@ -111,6 +119,26 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val datePickerDialogListener =
|
||||||
|
DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
|
||||||
|
viewModel.releaseDate = String.format("%d-%02d-%02d", year, monthOfYear + 1, dayOfMonth)
|
||||||
|
viewModel.setReservationDate(
|
||||||
|
String.format(
|
||||||
|
"%d.%02d.%02d",
|
||||||
|
year,
|
||||||
|
monthOfYear + 1,
|
||||||
|
dayOfMonth
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private val timePickerDialogListener =
|
||||||
|
TimePickerDialog.OnTimeSetListener { _, hourOfDay, minute ->
|
||||||
|
val timeString = String.format("%02d:%02d", hourOfDay, minute)
|
||||||
|
viewModel.releaseTime = timeString
|
||||||
|
viewModel.setReservationTime(timeString.convertDateFormat("HH:mm", "a hh:mm"))
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
checkPermissions()
|
checkPermissions()
|
||||||
|
@ -173,6 +201,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||||
binding.llOnlyRental.setOnClickListener { viewModel.setIsOnlyRental(true) }
|
binding.llOnlyRental.setOnClickListener { viewModel.setIsOnlyRental(true) }
|
||||||
binding.llCommentNo.setOnClickListener { viewModel.setAvailableComment(false) }
|
binding.llCommentNo.setOnClickListener { viewModel.setAvailableComment(false) }
|
||||||
binding.llCommentYes.setOnClickListener { viewModel.setAvailableComment(true) }
|
binding.llCommentYes.setOnClickListener { viewModel.setAvailableComment(true) }
|
||||||
|
binding.llActiveNow.setOnClickListener { viewModel.setActiveReservation(false) }
|
||||||
|
binding.llActiveReservation.setOnClickListener { viewModel.setActiveReservation(true) }
|
||||||
|
|
||||||
binding.tvCancel.setOnClickListener { finish() }
|
binding.tvCancel.setOnClickListener { finish() }
|
||||||
binding.tvUpload.setOnClickListener {
|
binding.tvUpload.setOnClickListener {
|
||||||
|
@ -189,6 +219,71 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||||
).show(screenWidth)
|
).show(screenWidth)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.tvReservationDate.setOnClickListener {
|
||||||
|
val reservationDate = viewModel.releaseDate.split("-")
|
||||||
|
val datePicker: DatePickerDialog
|
||||||
|
|
||||||
|
if (reservationDate.isNotEmpty() && reservationDate.size == 3) {
|
||||||
|
datePicker = DatePickerDialog(
|
||||||
|
this,
|
||||||
|
R.style.DatePickerStyle,
|
||||||
|
datePickerDialogListener,
|
||||||
|
reservationDate[0].toInt(),
|
||||||
|
reservationDate[1].toInt() - 1,
|
||||||
|
reservationDate[2].toInt()
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
val dateString = SimpleDateFormat(
|
||||||
|
"yyyy.MM.dd",
|
||||||
|
Locale.getDefault()
|
||||||
|
).format(Date()).split(".")
|
||||||
|
|
||||||
|
datePicker = DatePickerDialog(
|
||||||
|
this,
|
||||||
|
R.style.DatePickerStyle,
|
||||||
|
datePickerDialogListener,
|
||||||
|
dateString[0].toInt(),
|
||||||
|
dateString[1].toInt() - 1,
|
||||||
|
dateString[2].toInt()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
datePicker.show()
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.tvReservationTime.setOnClickListener {
|
||||||
|
val reservationTime = viewModel.releaseTime.split(":")
|
||||||
|
val timePicker: TimePickerDialog
|
||||||
|
|
||||||
|
if (reservationTime.isNotEmpty() && reservationTime.size == 2) {
|
||||||
|
timePicker = SodaLiveTimePickerDialog(
|
||||||
|
this,
|
||||||
|
R.style.TimePickerStyle,
|
||||||
|
timePickerDialogListener,
|
||||||
|
reservationTime[0].toInt(),
|
||||||
|
reservationTime[1].toInt(),
|
||||||
|
false
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
val calendar = Calendar.getInstance().apply {
|
||||||
|
add(Calendar.HOUR_OF_DAY, 1)
|
||||||
|
}
|
||||||
|
val initialHour = calendar.get(Calendar.HOUR_OF_DAY)
|
||||||
|
val initialMinute = calendar.get(Calendar.MINUTE) / 15 * 15
|
||||||
|
|
||||||
|
timePicker = SodaLiveTimePickerDialog(
|
||||||
|
this,
|
||||||
|
R.style.TimePickerStyle,
|
||||||
|
timePickerDialogListener,
|
||||||
|
initialHour,
|
||||||
|
initialMinute,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
timePicker.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkPermissions() {
|
private fun checkPermissions() {
|
||||||
|
@ -406,6 +501,69 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.isActiveReservationLiveData.observe(this) {
|
||||||
|
if (it) {
|
||||||
|
checkActiveReservation()
|
||||||
|
} else {
|
||||||
|
checkActiveNow()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.reservationDateLiveData.observe(this) {
|
||||||
|
binding.tvReservationDate.text = it
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.reservationTimeLiveData.observe(this) {
|
||||||
|
binding.tvReservationTime.text = it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkActiveNow() {
|
||||||
|
binding.llReservationDatetime.visibility = View.GONE
|
||||||
|
|
||||||
|
binding.ivActiveNow.visibility = View.VISIBLE
|
||||||
|
binding.tvActiveNow.setTextColor(
|
||||||
|
ContextCompat.getColor(
|
||||||
|
applicationContext,
|
||||||
|
R.color.color_eeeeee
|
||||||
|
)
|
||||||
|
)
|
||||||
|
binding.llActiveNow.setBackgroundResource(R.drawable.bg_round_corner_6_7_3bb9f1)
|
||||||
|
|
||||||
|
binding.ivActiveReservation.visibility = View.GONE
|
||||||
|
binding.tvActiveReservation.setTextColor(
|
||||||
|
ContextCompat.getColor(
|
||||||
|
applicationContext,
|
||||||
|
R.color.color_3bb9f1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
binding.llActiveReservation.setBackgroundResource(
|
||||||
|
R.drawable.bg_round_corner_6_7_13181b
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkActiveReservation() {
|
||||||
|
binding.llReservationDatetime.visibility = View.VISIBLE
|
||||||
|
binding.ivActiveReservation.visibility = View.VISIBLE
|
||||||
|
binding.tvActiveReservation.setTextColor(
|
||||||
|
ContextCompat.getColor(
|
||||||
|
applicationContext,
|
||||||
|
R.color.color_eeeeee
|
||||||
|
)
|
||||||
|
)
|
||||||
|
binding.llActiveReservation.setBackgroundResource(R.drawable.bg_round_corner_6_7_3bb9f1)
|
||||||
|
|
||||||
|
binding.ivActiveNow.visibility = View.GONE
|
||||||
|
binding.tvActiveNow.setTextColor(
|
||||||
|
ContextCompat.getColor(
|
||||||
|
applicationContext,
|
||||||
|
R.color.color_3bb9f1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
binding.llActiveNow.setBackgroundResource(
|
||||||
|
R.drawable.bg_round_corner_6_7_13181b
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkPriceFree() {
|
private fun checkPriceFree() {
|
||||||
|
|
|
@ -20,6 +20,7 @@ import okio.BufferedSink
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
import java.util.TimeZone
|
||||||
|
|
||||||
class AudioContentUploadViewModel(
|
class AudioContentUploadViewModel(
|
||||||
private val repository: AudioContentRepository
|
private val repository: AudioContentRepository
|
||||||
|
@ -49,12 +50,26 @@ class AudioContentUploadViewModel(
|
||||||
val isPriceFreeLiveData: LiveData<Boolean>
|
val isPriceFreeLiveData: LiveData<Boolean>
|
||||||
get() = _isPriceFreeLiveData
|
get() = _isPriceFreeLiveData
|
||||||
|
|
||||||
|
private val _isActiveReservationLiveData = MutableLiveData(false)
|
||||||
|
val isActiveReservationLiveData: LiveData<Boolean>
|
||||||
|
get() = _isActiveReservationLiveData
|
||||||
|
|
||||||
|
private val _reservationDateLiveData = MutableLiveData("날짜를 선택해주세요")
|
||||||
|
val reservationDateLiveData: LiveData<String>
|
||||||
|
get() = _reservationDateLiveData
|
||||||
|
|
||||||
|
private val _reservationTimeLiveData = MutableLiveData("시간을 설정해주세요")
|
||||||
|
val reservationTimeLiveData: LiveData<String>
|
||||||
|
get() = _reservationTimeLiveData
|
||||||
|
|
||||||
lateinit var getRealPathFromURI: (Uri) -> String?
|
lateinit var getRealPathFromURI: (Uri) -> String?
|
||||||
|
|
||||||
var title = ""
|
var title = ""
|
||||||
var detail = ""
|
var detail = ""
|
||||||
var tags = ""
|
var tags = ""
|
||||||
var price = 0
|
var price = 0
|
||||||
|
var releaseDate = ""
|
||||||
|
var releaseTime = ""
|
||||||
var theme: GetAudioContentThemeResponse? = null
|
var theme: GetAudioContentThemeResponse? = null
|
||||||
var coverImageUri: Uri? = null
|
var coverImageUri: Uri? = null
|
||||||
var contentUri: Uri? = null
|
var contentUri: Uri? = null
|
||||||
|
@ -81,6 +96,10 @@ class AudioContentUploadViewModel(
|
||||||
_isOnlyRentalLiveData.postValue(isOnlyRental)
|
_isOnlyRentalLiveData.postValue(isOnlyRental)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setActiveReservation(isActiveReservation: Boolean) {
|
||||||
|
_isActiveReservationLiveData.postValue(isActiveReservation)
|
||||||
|
}
|
||||||
|
|
||||||
fun uploadAudioContent(onSuccess: () -> Unit) {
|
fun uploadAudioContent(onSuccess: () -> Unit) {
|
||||||
if (!_isLoading.value!! && validateData()) {
|
if (!_isLoading.value!! && validateData()) {
|
||||||
_isLoading.postValue(true)
|
_isLoading.postValue(true)
|
||||||
|
@ -90,6 +109,12 @@ class AudioContentUploadViewModel(
|
||||||
detail = detail,
|
detail = detail,
|
||||||
tags = tags,
|
tags = tags,
|
||||||
price = price,
|
price = price,
|
||||||
|
releaseDate = if (_isActiveReservationLiveData.value!!) {
|
||||||
|
"$releaseDate $releaseTime"
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
},
|
||||||
|
timezone = TimeZone.getDefault().id,
|
||||||
themeId = theme!!.id,
|
themeId = theme!!.id,
|
||||||
isAdult = _isAdultLiveData.value!!,
|
isAdult = _isAdultLiveData.value!!,
|
||||||
isOnlyRental = _isOnlyRentalLiveData.value!!,
|
isOnlyRental = _isOnlyRentalLiveData.value!!,
|
||||||
|
@ -281,6 +306,14 @@ class AudioContentUploadViewModel(
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
_isActiveReservationLiveData.value!! &&
|
||||||
|
(releaseDate.isBlank() || releaseTime.isBlank())
|
||||||
|
) {
|
||||||
|
_toastLiveData.postValue("예약날짜와 시간을 선택해주세요.")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,4 +340,12 @@ class AudioContentUploadViewModel(
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setReservationDate(dateString: String) {
|
||||||
|
_reservationDateLiveData.postValue(dateString)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setReservationTime(timeString: String) {
|
||||||
|
_reservationTimeLiveData.postValue(timeString)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,12 @@ data class CreateAudioContentRequest(
|
||||||
@SerializedName("detail") val detail: String,
|
@SerializedName("detail") val detail: String,
|
||||||
@SerializedName("tags") val tags: String,
|
@SerializedName("tags") val tags: String,
|
||||||
@SerializedName("price") val price: Int,
|
@SerializedName("price") val price: Int,
|
||||||
|
@SerializedName("releaseDate") val releaseDate: String?,
|
||||||
|
@SerializedName("timezone") val timezone: String,
|
||||||
@SerializedName("themeId") val themeId: Long,
|
@SerializedName("themeId") val themeId: Long,
|
||||||
@SerializedName("isAdult") val isAdult: Boolean,
|
@SerializedName("isAdult") val isAdult: Boolean,
|
||||||
@SerializedName("isOnlyRental") val isOnlyRental: Boolean,
|
@SerializedName("isOnlyRental") val isOnlyRental: Boolean,
|
||||||
@SerializedName("isCommentAvailable") val isCommentAvailable: Boolean,
|
@SerializedName("isCommentAvailable") val isCommentAvailable: Boolean,
|
||||||
@SerializedName("previewStartTime") val previewStartTime: String? = null,
|
@SerializedName("previewStartTime") val previewStartTime: String? = null,
|
||||||
@SerializedName("previewEndTime") val previewEndTime: String? = null
|
@SerializedName("previewEndTime") val previewEndTime: String? = null,
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package kr.co.vividnext.sodalive.dialog
|
||||||
|
|
||||||
|
import android.app.TimePickerDialog
|
||||||
|
import android.content.Context
|
||||||
|
import android.widget.TimePicker
|
||||||
|
|
||||||
|
class SodaLiveTimePickerDialog(
|
||||||
|
context: Context,
|
||||||
|
themeResId: Int,
|
||||||
|
private val onTimeSetListener: OnTimeSetListener,
|
||||||
|
hourOfDay: Int,
|
||||||
|
minute: Int,
|
||||||
|
is24HourView: Boolean
|
||||||
|
) : TimePickerDialog(context, themeResId, null, hourOfDay, minute, is24HourView) {
|
||||||
|
private var timePicker: TimePicker? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
this.setTitle("Select Time")
|
||||||
|
setOnShowListener {
|
||||||
|
timePicker = window?.findViewById(
|
||||||
|
context.resources.getIdentifier(
|
||||||
|
"android:id/timePicker",
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
)
|
||||||
|
)
|
||||||
|
timePicker?.apply {
|
||||||
|
setIs24HourView(is24HourView)
|
||||||
|
setOnTimeChangedListener { _, _, minute ->
|
||||||
|
// Snap minute to nearest quarter (0, 15, 30, 45)
|
||||||
|
val snappedMinute = minute / 15 * 15
|
||||||
|
if (snappedMinute != minute) {
|
||||||
|
this.minute = snappedMinute
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getButton(BUTTON_POSITIVE).setOnClickListener {
|
||||||
|
timePicker?.let { picker ->
|
||||||
|
onTimeSetListener.onTimeSet(picker, picker.hour, picker.minute)
|
||||||
|
}
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -534,6 +534,111 @@
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_config_preview_time"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:lineSpacingExtra="5sp"
|
||||||
|
android:text="미리듣기 시간 설정"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="16.7sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
|
android:text="미리듣기 시간을 직접 설정하지 않으면 콘텐츠 앞부분 30초가 자동으로 설정됩니다. 미리듣기의 시간제한은 없습니다."
|
||||||
|
android:textColor="@color/color_777777"
|
||||||
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
|
android:text="시작 시간"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/et_preview_start_time"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5.3dp"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_222222"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:hint="00:00:00"
|
||||||
|
android:importantForAutofill="no"
|
||||||
|
android:inputType="textWebEditText"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:paddingVertical="17dp"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textColorHint="@color/color_777777"
|
||||||
|
android:textCursorDrawable="@drawable/edit_text_cursor"
|
||||||
|
android:textSize="14.7sp"
|
||||||
|
android:theme="@style/EditTextStyle"
|
||||||
|
tools:ignore="LabelFor" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
|
android:text="종료 시간"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/et_preview_end_time"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5.3dp"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_222222"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:hint="00:30:00"
|
||||||
|
android:importantForAutofill="no"
|
||||||
|
android:inputType="textWebEditText"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:paddingVertical="17dp"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textColorHint="@color/color_777777"
|
||||||
|
android:textCursorDrawable="@drawable/edit_text_cursor"
|
||||||
|
android:textSize="14.7sp"
|
||||||
|
android:theme="@style/EditTextStyle"
|
||||||
|
tools:ignore="LabelFor" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_set_adult"
|
android:id="@+id/ll_set_adult"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -708,7 +813,7 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_config_preview_time"
|
android:id="@+id/ll_set_reservation"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="13.3dp"
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
@ -720,25 +825,85 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:lineSpacingExtra="5sp"
|
android:lineSpacingExtra="5sp"
|
||||||
android:text="미리듣기 시간 설정"
|
android:text="예약 공개"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="16.7sp" />
|
android:textSize="16.7sp" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
|
||||||
android:text="미리듣기 시간을 직접 설정하지 않으면 콘텐츠 앞부분 30초가 자동으로 설정됩니다. 미리듣기의 시간제한은 없습니다."
|
|
||||||
android:textColor="@color/color_777777"
|
|
||||||
android:textSize="13.3sp" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="13.3dp"
|
android:layout_marginTop="13.3dp"
|
||||||
android:baselineAligned="false">
|
android:baselineAligned="false">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_active_now"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="14.3dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_active_now"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="6.7dp"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_select_check"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_active_now"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="지금 공개"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="14.7sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_active_reservation"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="14.3dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_active_reservation"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="6.7dp"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_select_check"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_active_reservation"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="예약 공개"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="14.7sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_reservation_datetime"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="22.7dp"
|
||||||
|
android:background="@color/color_222222"
|
||||||
|
android:baselineAligned="false"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:paddingVertical="14.2dp"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -746,32 +911,26 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="시작 시간"
|
android:text="예약 날짜"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
<EditText
|
<TextView
|
||||||
android:id="@+id/et_preview_start_time"
|
android:id="@+id/tv_reservation_date"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="5.3dp"
|
android:layout_marginTop="6.7dp"
|
||||||
android:background="@drawable/bg_round_corner_6_7_222222"
|
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:hint="00:00:00"
|
android:paddingVertical="15.3dp"
|
||||||
android:importantForAutofill="no"
|
|
||||||
android:inputType="textWebEditText"
|
|
||||||
android:paddingHorizontal="13.3dp"
|
|
||||||
android:paddingVertical="17dp"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textColorHint="@color/color_777777"
|
|
||||||
android:textCursorDrawable="@drawable/edit_text_cursor"
|
|
||||||
android:textSize="14.7sp"
|
android:textSize="14.7sp"
|
||||||
android:theme="@style/EditTextStyle"
|
tools:text="2021.08.04" />
|
||||||
tools:ignore="LabelFor" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -782,32 +941,25 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="종료 시간"
|
android:text="예약 시간"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
<EditText
|
<TextView
|
||||||
android:id="@+id/et_preview_end_time"
|
android:id="@+id/tv_reservation_time"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="5.3dp"
|
android:layout_marginTop="6.7dp"
|
||||||
android:background="@drawable/bg_round_corner_6_7_222222"
|
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:hint="00:30:00"
|
android:paddingVertical="15.3dp"
|
||||||
android:importantForAutofill="no"
|
|
||||||
android:inputType="textWebEditText"
|
|
||||||
android:paddingHorizontal="13.3dp"
|
|
||||||
android:paddingVertical="17dp"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textColorHint="@color/color_777777"
|
|
||||||
android:textCursorDrawable="@drawable/edit_text_cursor"
|
|
||||||
android:textSize="14.7sp"
|
android:textSize="14.7sp"
|
||||||
android:theme="@style/EditTextStyle"
|
tools:text="오후 08 : 30" />
|
||||||
tools:ignore="LabelFor" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
Loading…
Reference in New Issue