-
Notifications
You must be signed in to change notification settings - Fork 1
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
[BSVR-82/FEAT] 시야 후기 등록 1차 UI 구현 #12
Changes from all commits
77bc782
cc9e72e
38d3731
5b07584
0e5c0db
b6334e9
6f62e11
a743311
a4b00e0
e78f9c0
65b222f
483c998
b3acfb6
876b668
1436503
f73f8d1
c82b2d0
6ebc923
76155b6
6208360
2ab8683
d5cc58d
bc24c87
11ec6e4
5641869
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
4 | ||
3 | ||
0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.depromeet.presentation.seatReview | ||
|
||
import android.os.Bundle | ||
import android.view.View | ||
import com.depromeet.core.base.BindingBottomSheetDialog | ||
import com.depromeet.presentation.R | ||
import com.depromeet.presentation.databinding.FragmentDatePickerBottomSheetBinding | ||
import dagger.hilt.android.AndroidEntryPoint | ||
import java.util.Calendar | ||
|
||
@AndroidEntryPoint | ||
class DatePickerDialog : BindingBottomSheetDialog<FragmentDatePickerBottomSheetBinding>( | ||
R.layout.fragment_date_picker_bottom_sheet, | ||
FragmentDatePickerBottomSheetBinding::inflate, | ||
) { | ||
var onDateSelected: ((year: Int, month: Int, day: Int) -> Unit)? = null | ||
|
||
companion object { | ||
private val calendarInstance: Calendar by lazy { | ||
Calendar.getInstance() | ||
} | ||
} | ||
|
||
private var selectedYear: Int = calendarInstance.get(Calendar.YEAR) | ||
private var selectedMonth: Int = calendarInstance.get(Calendar.MONTH) | ||
private var selectedDay: Int = calendarInstance.get(Calendar.DAY_OF_MONTH) | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
|
||
binding.dpDatePicker.init(selectedYear, selectedMonth, selectedDay) { _, year, month, day -> | ||
selectedYear = year | ||
selectedMonth = month | ||
selectedDay = day | ||
} | ||
} | ||
|
||
override fun onDestroyView() { | ||
super.onDestroyView() | ||
onDateSelected?.invoke(selectedYear, selectedMonth, selectedDay) | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
package com.depromeet.presentation.seatReview | ||
|
||
import android.app.Activity.RESULT_OK | ||
import android.content.Context | ||
import android.content.Intent | ||
import android.graphics.Bitmap | ||
import android.net.Uri | ||
import android.os.Bundle | ||
import android.provider.MediaStore | ||
import android.view.View | ||
import androidx.activity.result.ActivityResultLauncher | ||
import androidx.activity.result.PickVisualMediaRequest | ||
import androidx.activity.result.contract.ActivityResultContracts | ||
import androidx.core.os.bundleOf | ||
import androidx.fragment.app.setFragmentResult | ||
import com.depromeet.core.base.BindingBottomSheetDialog | ||
import com.depromeet.presentation.R | ||
import com.depromeet.presentation.databinding.FragmentUploadBottomSheetBinding | ||
import com.depromeet.presentation.extension.setOnSingleClickListener | ||
import dagger.hilt.android.AndroidEntryPoint | ||
import java.io.ByteArrayOutputStream | ||
|
||
@AndroidEntryPoint | ||
class ImageUploadDialog : BindingBottomSheetDialog<FragmentUploadBottomSheetBinding>( | ||
R.layout.fragment_upload_bottom_sheet, | ||
FragmentUploadBottomSheetBinding::inflate, | ||
) { | ||
|
||
companion object { | ||
private const val REQUEST_KEY = "requestKey" | ||
private const val SELECTED_IMAGES = "selected_images" | ||
private const val IMAGE_TITLE = "image" | ||
} | ||
|
||
private lateinit var pickMultipleMediaLauncher: ActivityResultLauncher<PickVisualMediaRequest> | ||
private lateinit var takePhotoLauncher: ActivityResultLauncher<Intent> | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
setStyle(STYLE_NORMAL, R.style.TransparentBottomSheetDialogFragment) | ||
setupPickMultipleMediaLauncher() | ||
setupTakePhotoLauncher() | ||
} | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
setupUploadMethod() | ||
} | ||
|
||
private fun setupPickMultipleMediaLauncher() { | ||
pickMultipleMediaLauncher = | ||
registerForActivityResult(ActivityResultContracts.PickMultipleVisualMedia(3)) { uris -> | ||
val uriList = uris.map { it.toString() } | ||
val bundle = bundleOf(SELECTED_IMAGES to uriList) | ||
setFragmentResult(REQUEST_KEY, bundle) | ||
dismiss() | ||
} | ||
} | ||
|
||
private fun setupTakePhotoLauncher() { | ||
takePhotoLauncher = | ||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> | ||
if (result.resultCode == RESULT_OK) { | ||
val data: Intent? = result.data | ||
val bitmap = data?.extras?.get("data") as Bitmap? | ||
bitmap?.let { | ||
val uri = getImageUri(requireContext(), it) | ||
val bundle = Bundle().apply { | ||
putStringArrayList(SELECTED_IMAGES, arrayListOf(uri.toString())) | ||
} | ||
setFragmentResult(REQUEST_KEY, bundle) | ||
dismiss() | ||
} | ||
} | ||
} | ||
} | ||
|
||
private fun setupUploadMethod() { | ||
binding.layoutGallery.setOnSingleClickListener { | ||
pickMultipleMediaLauncher.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)) | ||
} | ||
binding.layoutTakePhoto.setOnSingleClickListener { | ||
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) | ||
takePhotoLauncher.launch(takePictureIntent) | ||
} | ||
} | ||
|
||
private fun getImageUri(context: Context, bitmap: Bitmap): Uri { | ||
val bytes = ByteArrayOutputStream() | ||
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes) | ||
val path = MediaStore.Images.Media.insertImage( | ||
context.contentResolver, | ||
bitmap, | ||
IMAGE_TITLE, | ||
null, | ||
) | ||
return Uri.parse(path) | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
package com.depromeet.presentation.seatReview | ||
|
||
import android.app.DatePickerDialog | ||
import android.net.Uri | ||
import android.os.Bundle | ||
import android.view.View | ||
import android.widget.ImageView | ||
import androidx.core.view.isVisible | ||
import coil.load | ||
import coil.transform.RoundedCornersTransformation | ||
import com.depromeet.core.base.BaseActivity | ||
import com.depromeet.presentation.databinding.ActivityMainReviewBinding | ||
import com.depromeet.presentation.extension.setOnSingleClickListener | ||
import dagger.hilt.android.AndroidEntryPoint | ||
import java.text.SimpleDateFormat | ||
import java.util.Calendar | ||
import java.util.Locale | ||
|
||
@AndroidEntryPoint | ||
class ReviewMainActivity : BaseActivity<ActivityMainReviewBinding>({ | ||
ActivityMainReviewBinding.inflate(it) | ||
}) { | ||
|
||
private val imageViews: List<View> by lazy { | ||
listOf( | ||
binding.ivFirstImage, | ||
binding.ivSecondImage, | ||
binding.ivThirdImage, | ||
) | ||
} | ||
private var selectedImageUris: MutableList<String> = mutableListOf() | ||
|
||
companion object { | ||
private const val DATE_FORMAT = "yy.MM.dd" | ||
private const val FRAGMENT_RESULT_KEY = "requestKey" | ||
private const val SELECTED_IMAGES = "selected_images" | ||
} | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
initUploadDialog() | ||
initDatePickerDialog() | ||
setupFragmentResultListener() | ||
} | ||
|
||
private fun initUploadDialog() { | ||
binding.btnAddImage.setOnClickListener { | ||
val uploadDialogFragment = ImageUploadDialog() | ||
uploadDialogFragment.show(supportFragmentManager, uploadDialogFragment.tag) | ||
} | ||
} | ||
|
||
private fun initDatePickerDialog() { | ||
val today = Calendar.getInstance() | ||
val dateFormat = SimpleDateFormat(DATE_FORMAT, Locale.getDefault()) | ||
with(binding) { | ||
tvDate.text = dateFormat.format(today.time) | ||
layoutDatePicker.setOnSingleClickListener { | ||
val datePickerDialogFragment = DatePickerDialog().apply { | ||
onDateSelected = { year, month, day -> | ||
val selectedDate = Calendar.getInstance() | ||
selectedDate.set(year, month, day) | ||
tvDate.text = dateFormat.format(selectedDate.time) | ||
} | ||
} | ||
datePickerDialogFragment.show(supportFragmentManager, datePickerDialogFragment.tag) | ||
} | ||
} | ||
} | ||
|
||
private fun setupFragmentResultListener() { | ||
supportFragmentManager.setFragmentResultListener(FRAGMENT_RESULT_KEY, this) { _, bundle -> | ||
val newSelectedImages = bundle.getStringArrayList(SELECTED_IMAGES) | ||
newSelectedImages?.let { addSelectedImages(it) } | ||
} | ||
} | ||
|
||
private fun addSelectedImages(newImageUris: List<String>) { | ||
selectedImageUris.addAll(newImageUris.filterNot { selectedImageUris.contains(it) }) | ||
updateImageViews() | ||
} | ||
|
||
private fun updateImageViews() { | ||
with(binding) { | ||
layoutAddDefaultImage.isVisible = selectedImageUris.isEmpty() | ||
selectedImageUris.forEachIndexed { index, uri -> | ||
if (index < imageViews.size) { | ||
val image = imageViews[index] as ImageView | ||
image.isVisible = true | ||
image.setImageURI(Uri.parse(uri)) | ||
image.load(Uri.parse(uri)) { | ||
transformations(RoundedCornersTransformation(26f)) | ||
} | ||
} | ||
} | ||
for (index in selectedImageUris.size until imageViews.size) { | ||
val image = imageViews[index] as ImageView | ||
image.isVisible = false | ||
} | ||
if (selectedImageUris.size == 3) { | ||
svAddImage.post { svAddImage.fullScroll(View.FOCUS_RIGHT) } | ||
} | ||
btnAddImage.isVisible = selectedImageUris.size < imageViews.size | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="24dp" | ||
android:height="24dp" | ||
android:viewportWidth="24" | ||
android:viewportHeight="24"> | ||
<path | ||
android:pathData="M9.558,1C9.448,1 9.352,1 9.26,1.005C8.103,1.076 7.09,1.806 6.658,2.881C6.624,2.966 6.594,3.057 6.559,3.162L6.551,3.184C6.505,3.323 6.495,3.352 6.486,3.373C6.342,3.731 6.005,3.975 5.619,3.998C5.596,4 5.562,4 5.406,4L5.35,4C5.035,4 4.804,4 4.606,4.019C2.708,4.207 1.207,5.708 1.02,7.606C1,7.803 1,8.026 1,8.325L1,16.241C1,17.046 1,17.711 1.044,18.252C1.09,18.814 1.189,19.331 1.436,19.816C1.819,20.569 2.431,21.181 3.184,21.564C3.669,21.811 4.186,21.91 4.748,21.956C5.289,22 5.954,22 6.759,22H17.241C18.046,22 18.711,22 19.252,21.956C19.814,21.91 20.331,21.811 20.816,21.564C21.569,21.181 22.181,20.569 22.564,19.816C22.811,19.331 22.91,18.814 22.956,18.252C23,17.711 23,17.046 23,16.241L23,8.325C23,8.026 23,7.803 22.98,7.606C22.792,5.708 21.292,4.207 19.394,4.019C19.197,4 18.965,4 18.65,4L18.594,4C18.438,4 18.404,4 18.381,3.998C17.996,3.975 17.658,3.731 17.514,3.373C17.505,3.352 17.495,3.323 17.449,3.184L17.441,3.162C17.406,3.057 17.376,2.966 17.342,2.881C16.91,1.806 15.897,1.076 14.74,1.005C14.648,1 14.552,1 14.442,1H9.558ZM16,12.5C16,14.709 14.209,16.5 12,16.5C9.791,16.5 8,14.709 8,12.5C8,10.291 9.791,8.5 12,8.5C14.209,8.5 16,10.291 16,12.5Z" | ||
android:fillColor="#C8C8C8" | ||
android:fillType="evenOdd"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="22dp" | ||
android:height="22dp" | ||
android:viewportWidth="22" | ||
android:viewportHeight="22"> | ||
<path | ||
android:pathData="M7.601,17.149C7.244,16.791 7.244,16.21 7.601,15.852L12.453,11L7.601,6.149C7.244,5.791 7.244,5.21 7.601,4.852C7.959,4.494 8.54,4.494 8.898,4.852L14.398,10.352C14.756,10.71 14.756,11.29 14.398,11.649L8.898,17.149C8.54,17.507 7.959,17.507 7.601,17.149Z" | ||
android:fillColor="#7B7B7B" | ||
android:fillType="evenOdd"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="20dp" | ||
android:height="20dp" | ||
android:viewportWidth="20" | ||
android:viewportHeight="20"> | ||
<path | ||
android:pathData="M14.265,19.538C14.441,19.712 14.671,19.801 14.901,19.801C15.131,19.801 15.363,19.712 15.538,19.537C15.889,19.184 15.888,18.615 15.536,18.264L7.173,9.922L15.538,1.536C15.889,1.184 15.888,0.615 15.536,0.264C15.184,-0.088 14.614,-0.087 14.263,0.265L5.263,9.288C5.095,9.458 5,9.688 5,9.925C5.001,10.165 5.096,10.394 5.265,10.561L14.265,19.538Z" | ||
android:fillColor="#333333" | ||
android:fillType="evenOdd"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="24dp" | ||
android:height="24dp" | ||
android:viewportWidth="24" | ||
android:viewportHeight="24"> | ||
<path | ||
android:pathData="M12,12m-11,0a11,11 0,1 1,22 0a11,11 0,1 1,-22 0" | ||
android:fillColor="#000000" | ||
android:fillAlpha="0.25"/> | ||
<path | ||
android:pathData="M16.756,8.423C17.081,8.097 17.081,7.57 16.756,7.244C16.431,6.919 15.903,6.919 15.577,7.244L12,10.821L8.423,7.244C8.097,6.919 7.57,6.919 7.244,7.244C6.919,7.57 6.919,8.097 7.244,8.423L10.821,12L7.244,15.577C6.919,15.903 6.919,16.431 7.244,16.756C7.57,17.081 8.097,17.081 8.423,16.756L12,13.179L15.577,16.756C15.903,17.081 16.431,17.081 16.756,16.756C17.081,16.431 17.081,15.903 16.756,15.577L13.179,12L16.756,8.423Z" | ||
android:fillColor="#ffffff"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="24dp" | ||
android:height="24dp" | ||
android:viewportWidth="24" | ||
android:viewportHeight="24"> | ||
<path | ||
android:pathData="M8.5,5.5C6.843,5.5 5.5,6.843 5.5,8.5C5.5,10.157 6.843,11.5 8.5,11.5C10.157,11.5 11.5,10.157 11.5,8.5C11.5,6.843 10.157,5.5 8.5,5.5Z" | ||
android:fillColor="#C8C8C8" | ||
android:fillType="evenOdd"/> | ||
<path | ||
android:pathData="M7.759,2H16.241C17.046,2 17.711,2 18.252,2.044C18.814,2.09 19.331,2.189 19.816,2.436C20.569,2.819 21.181,3.431 21.564,4.184C21.811,4.669 21.91,5.186 21.956,5.748C22,6.289 22,6.954 22,7.759V14.989L22,15V16.241C22,17.046 22,17.711 21.956,18.252C21.929,18.58 21.884,18.894 21.802,19.194C21.761,19.343 21.711,19.489 21.65,19.632C21.624,19.694 21.595,19.755 21.564,19.816C21.181,20.569 20.569,21.181 19.816,21.564C19.331,21.811 18.814,21.91 18.252,21.956C17.711,22 17.046,22 16.241,22H7.75C7.631,22 7.516,22 7.403,22H6.894C6.624,22 6.358,22 6.144,21.981L6.122,21.979C5.991,21.973 5.867,21.965 5.748,21.956C5.186,21.91 4.669,21.811 4.184,21.564C3.431,21.181 2.819,20.569 2.436,19.816C2.189,19.331 2.09,18.814 2.044,18.252C2,17.711 2,17.046 2,16.241V7.759C2,6.954 2,6.289 2.044,5.748C2.09,5.186 2.189,4.669 2.436,4.184C2.819,3.431 3.431,2.819 4.184,2.436C4.669,2.189 5.186,2.09 5.748,2.044C6.289,2 6.954,2 7.759,2ZM20,7.8V12.586L17.816,10.401C17.638,10.223 17.464,10.049 17.305,9.914C17.13,9.766 16.908,9.606 16.618,9.512C16.216,9.381 15.784,9.381 15.382,9.512C15.092,9.606 14.87,9.766 14.696,9.914C14.536,10.049 14.363,10.223 14.184,10.401L5.632,18.953C5.441,19.145 5.253,19.332 5.115,19.497C5.073,19.548 5.015,19.618 4.957,19.706C4.642,19.514 4.386,19.238 4.218,18.908C4.138,18.752 4.073,18.527 4.038,18.089C4.001,17.639 4,17.057 4,16.2V7.8C4,6.943 4.001,6.361 4.038,5.911C4.073,5.473 4.138,5.248 4.218,5.092C4.41,4.716 4.716,4.41 5.092,4.218C5.248,4.138 5.473,4.073 5.911,4.038C6.361,4.001 6.943,4 7.8,4H16.2C17.057,4 17.639,4.001 18.089,4.038C18.527,4.073 18.752,4.138 18.908,4.218C19.284,4.41 19.59,4.716 19.782,5.092C19.862,5.248 19.927,5.473 19.962,5.911C19.999,6.361 20,6.943 20,7.8Z" | ||
android:fillColor="#C8C8C8" | ||
android:fillType="evenOdd"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="12dp" | ||
android:height="12dp" | ||
android:viewportWidth="12" | ||
android:viewportHeight="12"> | ||
<path | ||
android:pathData="M9.354,0.646C9.158,0.451 8.842,0.451 8.646,0.646C8.451,0.842 8.451,1.158 8.646,1.354L10.646,3.354C10.842,3.549 11.158,3.549 11.354,3.354C11.549,3.158 11.549,2.842 11.354,2.646L9.354,0.646Z" | ||
android:fillColor="#AFAFAF"/> | ||
<path | ||
android:pathData="M7.268,2.14C7.419,2.091 7.581,2.091 7.732,2.14C7.848,2.178 7.932,2.241 7.988,2.288C8.036,2.329 8.086,2.379 8.128,2.421L9.579,3.872C9.621,3.914 9.671,3.964 9.712,4.012C9.759,4.068 9.822,4.152 9.86,4.268C9.909,4.419 9.909,4.581 9.86,4.732C9.822,4.848 9.759,4.932 9.712,4.988C9.671,5.036 9.621,5.086 9.579,5.128L4.385,10.322C4.292,10.415 4.209,10.498 4.114,10.567C4.03,10.629 3.94,10.681 3.845,10.724C3.737,10.772 3.625,10.802 3.497,10.837L1.132,11.482C0.958,11.53 0.773,11.48 0.646,11.354C0.52,11.227 0.47,11.042 0.518,10.868L1.163,8.503C1.198,8.375 1.228,8.263 1.276,8.155C1.319,8.06 1.371,7.97 1.433,7.886C1.502,7.791 1.585,7.708 1.678,7.615L6.872,2.421C6.914,2.379 6.964,2.329 7.012,2.288C7.068,2.241 7.152,2.178 7.268,2.14Z" | ||
android:fillColor="#AFAFAF"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="32dp" | ||
android:height="32dp" | ||
android:viewportWidth="32" | ||
android:viewportHeight="32"> | ||
<path | ||
android:pathData="M17.333,6.666C17.333,5.93 16.736,5.333 16,5.333C15.263,5.333 14.666,5.93 14.666,6.666V14.666H6.666C5.93,14.666 5.333,15.263 5.333,16C5.333,16.736 5.93,17.333 6.666,17.333H14.666V25.333C14.666,26.069 15.263,26.666 16,26.666C16.736,26.666 17.333,26.069 17.333,25.333V17.333H25.333C26.069,17.333 26.666,16.736 26.666,16C26.666,15.263 26.069,14.666 25.333,14.666H17.333V6.666Z" | ||
android:fillColor="#7B7B7B"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners android:radius="16dp" /> | ||
<solid android:color="#F4F4F4" /> | ||
</shape> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners android:radius="6dp" /> | ||
<solid android:color="#C8C8C8" /> | ||
</shape> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners android:radius="30dp" /> | ||
<solid android:color="#F4F4F4" /> | ||
</shape> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 컨벤션이 아직 명확하지 않은거 같은데 ``rect_gray50_fill_gray900_line_10``` There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 오호 .. 그거까진 컨벤션을 안정했긴 한데 나중에 디자인 시스템 받구 다같이 정해보자 ! |
||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners android:radius="12dp" /> | ||
<solid android:color="#F4F4F4" /> | ||
<stroke | ||
android:width="1dp" | ||
android:color="#E5E5E5" /> | ||
</shape> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners android:radius="12dp" /> | ||
<solid android:color="#7B7B7B" /> | ||
</shape> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:shape="rectangle"> | ||
<corners | ||
android:topLeftRadius="32dp" | ||
android:topRightRadius="32dp" /> | ||
<solid android:color="@color/white" /> | ||
|
||
</shape> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@androidentrypoint 어노테이션을 ImageUploadDialog 이미지 업로드 다이얼로그도 동일하게 적용시켜줘야 할거 같은데?!