Skip to content

Commit

Permalink
[feat] detail_image / 뷰 화면 기초세팅 (메뉴 띄우기(#90)
Browse files Browse the repository at this point in the history
  • Loading branch information
2chang5 committed Jul 22, 2022
1 parent 6ce5b06 commit 4e306ec
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
package com.photosurfer.android.search_result.detailimage

import android.content.Context
import android.os.Bundle
import android.view.ContextThemeWrapper
import android.view.Gravity
import android.view.MenuItem
import android.widget.ImageView
import android.widget.PopupMenu
import androidx.core.content.ContentProviderCompat.requireContext
import com.photosurfer.android.core.base.BaseActivity
import com.photosurfer.android.search_result.R
import com.photosurfer.android.search_result.databinding.ActivityDetailImageBinding
Expand All @@ -9,5 +16,35 @@ class DetailImageActivity :
BaseActivity<ActivityDetailImageBinding>(R.layout.activity_detail_image) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

onClickMenu()
}


private fun onClickMenu() {
binding.btnMore.setOnClickListener {
val wrapper: Context = androidx.appcompat.view.ContextThemeWrapper(
this,
com.photosurfer.android.shared.R.style.popupMenuStyle
)

val popupMenu = PopupMenu(wrapper, binding.btnMore, Gravity.RIGHT)
popupMenu.inflate(R.menu.menu_search_result)
popupMenu.setOnMenuItemClickListener { item ->
when (item?.itemId) {
R.id.tag_add -> true
R.id.tag_edit -> true
R.id.tag_delete -> true
else -> false
}
}
popupMenu.show()
}
}

companion object {
const val ADD = "ADD"
const val DELETE = "DELETE"
const val ADJUST = "ADJUST"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.photosurfer.android.search_result.detailimage

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.photosurfer.android.domain.entity.TagInfo
import com.photosurfer.android.search_result.detailimage.DetailImageActivity.Companion.ADD
import com.photosurfer.android.shared.databinding.ItemMutableChipDetailBinding

class DetailImageAdapter() :
ListAdapter<TagInfo, DetailImageAdapter.DetailImageViewHolder>(MutableChipComparator()) {

private var processState = ADD

fun updateProcessState(state: String) {
processState = state
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DetailImageViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val binding = ItemMutableChipDetailBinding.inflate(layoutInflater, parent, false)
return DetailImageViewHolder(binding)
}

override fun onBindViewHolder(holder: DetailImageViewHolder, position: Int) {
val mutableChip = getItem(position)
holder.bind(mutableChip)
}

class DetailImageViewHolder(
private val binding: ItemMutableChipDetailBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(MutableChip: TagInfo) {
binding.tagInfo = MutableChip
}
}

private class MutableChipComparator : DiffUtil.ItemCallback<TagInfo>() {
override fun areItemsTheSame(oldItem: TagInfo, newItem: TagInfo): Boolean {
return oldItem.id == newItem.id
}

override fun areContentsTheSame(oldItem: TagInfo, newItem: TagInfo): Boolean {
return oldItem == newItem
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.photosurfer.android.search_result.detailimage

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.photosurfer.android.core.base.BaseViewModel
import com.photosurfer.android.domain.entity.TagInfo
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

@HiltViewModel
class DetailImageViewModel @Inject constructor() : BaseViewModel(){

private val _tagInfoList = MutableLiveData<TagInfo>()
val tagInfoList: LiveData<TagInfo> = _tagInfoList

}
1 change: 0 additions & 1 deletion shared/src/main/res/layout/item_mutable_chip_detail.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

<import type="android.view.View" />


<variable
name="processState"
type="String" />
Expand Down

0 comments on commit 4e306ec

Please sign in to comment.