diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4cbc226b..9eb09dc4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -92,12 +92,12 @@ android:screenOrientation="portrait" /> diff --git a/app/src/main/java/sopt/uni/presentation/HistoryAdapter.kt b/app/src/main/java/sopt/uni/presentation/HistoryAdapter.kt index 5a9f13fc..636fed1a 100644 --- a/app/src/main/java/sopt/uni/presentation/HistoryAdapter.kt +++ b/app/src/main/java/sopt/uni/presentation/HistoryAdapter.kt @@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView import sopt.uni.data.entity.history.HistoryItem import sopt.uni.databinding.ItemHistorylistBinding import sopt.uni.util.extension.ItemDiffCallback +import sopt.uni.util.extension.setOnSingleClickListener class HistoryAdapter( private val context: Context, @@ -65,7 +66,7 @@ class HistoryAdapter( historyItemGameResult.text = item.result historyItemRightImage.setImageDrawable(binding.root.context.getDrawable(item.next)) - historyItemRightImage.setOnClickListener { + historyItemRightImage.setOnSingleClickListener { // 클릭 이벤트 처리 val item = getItem(adapterPosition) itemClickedListener.invoke(item) diff --git a/app/src/main/java/sopt/uni/presentation/HistoryDialog.kt b/app/src/main/java/sopt/uni/presentation/HistoryDialog.kt new file mode 100644 index 00000000..1e705e4b --- /dev/null +++ b/app/src/main/java/sopt/uni/presentation/HistoryDialog.kt @@ -0,0 +1,22 @@ +package sopt.uni.presentation + +import android.os.Bundle +import android.view.View +import sopt.uni.R +import sopt.uni.databinding.TitleAction1DialogBinding +import sopt.uni.util.extension.setOnSingleClickListener + +// 예시용 입니다! 히스토리는 다이얼로그 없어용 +class HistoryDialog : + BindingDialogFragment(R.layout.title_action1_dialog) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + // 텍스트 넣기 + binding.dialogBody.setText("내용임둥") + binding.dialogTitle.setText("제목임둥") + // 클릭시 로직 처리 + binding.btnPositive.setOnSingleClickListener { + dismiss() + } + } +} diff --git a/app/src/main/java/sopt/uni/presentation/MainHistoryActivity.kt b/app/src/main/java/sopt/uni/presentation/HistoryMainActivity.kt similarity index 82% rename from app/src/main/java/sopt/uni/presentation/MainHistoryActivity.kt rename to app/src/main/java/sopt/uni/presentation/HistoryMainActivity.kt index 4dd08495..4e34c1ec 100644 --- a/app/src/main/java/sopt/uni/presentation/MainHistoryActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/HistoryMainActivity.kt @@ -10,12 +10,12 @@ import sopt.uni.data.entity.history.HistoryList import sopt.uni.databinding.ActivityMainHistoryBinding import sopt.uni.util.binding.BindingActivity -class MainHistoryActivity : +class HistoryMainActivity : BindingActivity(R.layout.activity_main_history) { private val historyAdapter by lazy { HistoryAdapter( - context = this@MainHistoryActivity, + context = this@HistoryMainActivity, onEmptyList = { isEmpty -> if (isEmpty) { binding.itemHistoryEmptylist.visibility = View.VISIBLE @@ -24,7 +24,7 @@ class MainHistoryActivity : } }, itemClickedListener = { historyItem -> - val intent = Intent(this, SubHistoryActivity::class.java) + val intent = Intent(this, HistorySubActivity::class.java) startActivity(intent) }, ) @@ -35,14 +35,17 @@ class MainHistoryActivity : setContentView(binding.root) binding.rvHistoryList.adapter = historyAdapter - binding.rvHistoryList.layoutManager = LinearLayoutManager(this@MainHistoryActivity) + binding.rvHistoryList.layoutManager = LinearLayoutManager(this@HistoryMainActivity) + + // 다이얼로그 띄우는 부분 + HistoryDialog().show(supportFragmentManager, "HistoryDialog") historyAdapter.submitList(HistoryList) val dividerItemDecoration = DividerItemDecoration( binding.rvHistoryList.context, - LinearLayoutManager(this@MainHistoryActivity).orientation, + LinearLayoutManager(this@HistoryMainActivity).orientation, ) binding.rvHistoryList.addItemDecoration(dividerItemDecoration) diff --git a/app/src/main/java/sopt/uni/presentation/SubHistoryActivity.kt b/app/src/main/java/sopt/uni/presentation/HistorySubActivity.kt similarity index 85% rename from app/src/main/java/sopt/uni/presentation/SubHistoryActivity.kt rename to app/src/main/java/sopt/uni/presentation/HistorySubActivity.kt index 5240837e..aa07102f 100644 --- a/app/src/main/java/sopt/uni/presentation/SubHistoryActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/HistorySubActivity.kt @@ -6,14 +6,14 @@ import sopt.uni.R import sopt.uni.databinding.ActivitySubHistoryBinding import sopt.uni.util.binding.BindingActivity -class SubHistoryActivity : +class HistorySubActivity : BindingActivity(R.layout.activity_sub_history) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) binding.historySubBack.setOnClickListener { - val intent = Intent(this, MainHistoryActivity::class.java) + val intent = Intent(this, HistoryMainActivity::class.java) startActivity(intent) finish() } diff --git a/app/src/main/java/sopt/uni/presentation/HistoryViewModel.kt b/app/src/main/java/sopt/uni/presentation/HistoryViewModel.kt deleted file mode 100644 index ebe7bc9c..00000000 --- a/app/src/main/java/sopt/uni/presentation/HistoryViewModel.kt +++ /dev/null @@ -1,120 +0,0 @@ -package sopt.uni.presentation - -import androidx.annotation.DrawableRes -import androidx.lifecycle.ViewModel -import sopt.uni.R - -class HistoryViewModel : ViewModel() { - data class Repo( - val date: String, - @DrawableRes val result_img: Int, - val title: String, - val result: String, - @DrawableRes val next: Int, - ) - - private val mockRepoList = listOf( - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - Repo( - date = "23.06.20", - result_img = R.drawable.rectangle, - title = "대답 유도하기", - result = "숭리", - next = R.drawable.right, - ), - ) - - fun getMockRepoList(): List { - return mockRepoList - } -} diff --git a/app/src/main/java/sopt/uni/util/binding/BindingDialogFragment.kt b/app/src/main/java/sopt/uni/util/binding/BindingDialogFragment.kt new file mode 100644 index 00000000..18b9468c --- /dev/null +++ b/app/src/main/java/sopt/uni/util/binding/BindingDialogFragment.kt @@ -0,0 +1,40 @@ +package sopt.uni.presentation + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import androidx.annotation.LayoutRes +import androidx.databinding.DataBindingUtil +import androidx.databinding.ViewDataBinding +import androidx.fragment.app.DialogFragment + +abstract class BindingDialogFragment(@LayoutRes private val layoutRes: Int) : + DialogFragment() { + private var _binding: B? = null + val binding get() = requireNotNull(_binding!!) { "${this::class.java.simpleName}에서 에러가 발생했습니다." } + + override fun onStart() { + super.onStart() + dialog?.window?.setLayout( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT, + ) + dialog?.window?.setBackgroundDrawableResource(android.R.color.transparent) + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View { + _binding = DataBindingUtil.inflate(inflater, layoutRes, container, false) + return binding.root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} diff --git a/app/src/main/java/sopt/uni/util/binding/BindingFragment.kt b/app/src/main/java/sopt/uni/util/binding/BindingFragment.kt index 5c42d116..94f42325 100644 --- a/app/src/main/java/sopt/uni/util/binding/BindingFragment.kt +++ b/app/src/main/java/sopt/uni/util/binding/BindingFragment.kt @@ -11,7 +11,7 @@ import androidx.fragment.app.Fragment import sopt.uni.R abstract class BindingFragment( - @LayoutRes private val layoutRes: Int + @LayoutRes private val layoutRes: Int, ) : Fragment() { private var _binding: T? = null protected val binding get() = _binding ?: error(getString(R.string.binding_error)) @@ -19,7 +19,7 @@ abstract class BindingFragment( override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + savedInstanceState: Bundle?, ): View? { _binding = DataBindingUtil.inflate(inflater, layoutRes, container, false) binding.lifecycleOwner = viewLifecycleOwner diff --git a/app/src/main/res/layout/activity_mission_detail_create.xml b/app/src/main/res/layout/activity_mission_detail_create.xml index 38b32a0f..9bdc6b9a 100644 --- a/app/src/main/res/layout/activity_mission_detail_create.xml +++ b/app/src/main/res/layout/activity_mission_detail_create.xml @@ -216,7 +216,8 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" - android:layout_marginVertical="16dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="40dp" android:background="@drawable/bg_mission_detail_button_rounded" android:fontFamily="@font/pretendard_semibold" android:paddingVertical="12dp" diff --git a/app/src/main/res/layout/activity_sub_history.xml b/app/src/main/res/layout/activity_sub_history.xml index 8d79717e..2e333d2e 100644 --- a/app/src/main/res/layout/activity_sub_history.xml +++ b/app/src/main/res/layout/activity_sub_history.xml @@ -12,7 +12,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/Gray_100" - tools:context=".presentation.SubHistoryActivity"> + tools:context=".presentation.HistorySubActivity"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/no_title_action1_dialog.xml b/app/src/main/res/layout/no_title_action1_dialog.xml new file mode 100644 index 00000000..3f9979fc --- /dev/null +++ b/app/src/main/res/layout/no_title_action1_dialog.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/no_title_action2_dialog.xml b/app/src/main/res/layout/no_title_action2_dialog.xml new file mode 100644 index 00000000..7c24f683 --- /dev/null +++ b/app/src/main/res/layout/no_title_action2_dialog.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/title_action1_dialog.xml b/app/src/main/res/layout/title_action1_dialog.xml new file mode 100644 index 00000000..6ee20dcc --- /dev/null +++ b/app/src/main/res/layout/title_action1_dialog.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/title_action2_dialog.xml b/app/src/main/res/layout/title_action2_dialog.xml new file mode 100644 index 00000000..7da9d008 --- /dev/null +++ b/app/src/main/res/layout/title_action2_dialog.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2e55b682..328353c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -76,6 +76,12 @@ 카카오 로그인 Google계정으로 로그인 + + 취소 + 적용하기 + body + 확인 + Title 한판승부