Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
easyhooon committed Jun 19, 2021
2 parents 7b803ce + b56478f commit 75ddfd3
Show file tree
Hide file tree
Showing 10 changed files with 187 additions and 112 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ class AddNewTagActivity:AppCompatActivity() {
tagRef.orderByChild(DBKeys.USED).addListenerForSingleValueEvent(object:ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
// 리스트 만들기
val list: MutableList<TagModel?> = ArrayList<TagModel?>()
val list: MutableList<TagModel> = ArrayList<TagModel>()
for (s in snapshot.children) {
// 태그로 더 많이 쓰였으면 태그형으로 보여주고, 수치로 더 많이 쓰였으면 수치로 보여준다.
val used_tags = s.child(DBKeys.USED_TAGS).value.toString().toInt()
val used_value = s.child(DBKeys.USED_VALUE).value.toString().toInt()
val tagType: Int = if(used_tags >= used_value)TagType.TAG else TagType.VALUE
val usedTags = s.child(DBKeys.USED_TAGS).value.toString().toInt()
val usedValue = s.child(DBKeys.USED_VALUE).value.toString().toInt()
val tagType: Int = if(usedTags >= usedValue)TagType.TAG else TagType.VALUE

// Tag 의 key 값으로 name 이 들어감
val tagModel = TagModel(s.key!!, tagType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.google.firebase.database.*
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.StorageReference
import com.theartofdev.edmodo.cropper.CropImage
import kr.ac.konkuk.koogle.Adapter.AddTagAdapter
import kr.ac.konkuk.koogle.Adapter.TagAdapter
Expand Down Expand Up @@ -48,28 +47,35 @@ class EditProfileActivity : ProfileCommonActivity() {
initUserInfo()
initButton()
}

// new Tag Activity 로부터 전달받은 데이타가 잘 DB에 들어가는 지 확인하기 위한 함수
// resultData: new Tag Activity 로부터 전해받은 Data
private fun test(resultData: HashMap<String, TagModel>? = null){
/*

// 현재 상태를 DB에 저장
// 기존의 데이터는 사라진다.
private fun saveTag(){
userTagRef = Firebase.database.reference
.child(DBKeys.DB_USER_TAG).child(firebaseUser.uid)
// 임시: 화면에 뿌려주어야 하는데 일단은 DB에 넣도록 구현함

var j = tagAdapter.itemCount
for((key, value) in resultData!!){
val tags = mutableMapOf<String, Any>()
for(value in tagAdapter.data) {
val newTag = mutableMapOf<String, Any>()
val newSubTag = mutableMapOf<String, Any>()
for((i, s) in value.sub_tag_list.withIndex()){
for ((i, s) in value.sub_tag_list.withIndex()) {
newSubTag[s] = i
}
newTag[DBKeys.TAG_INDEX] = j
newTag[DBKeys.SUB_TAGS] = newSubTag
newTag[DBKeys.TAG_TYPE] = value.tag_type
newTag[DBKeys.TAG_VALUE] = value.value
userTagRef.child(key).setValue(newTag)
tags[value.main_tag_name] = newTag
j++
}*/
}
userTagRef.setValue(tags)
}

// new Tag Activity 로부터 전달받은 데이타가 잘 DB에 들어가는 지 확인하기 위한 함수
// resultData: new Tag Activity 로부터 전해받은 Data
private fun test(resultData: HashMap<String, TagModel>? = null){

// 수정 방향: adapter 에 그대로 전달하기
var newList:ArrayList<TagModel> = arrayListOf()
for((key, value) in resultData!!){
Expand Down Expand Up @@ -104,6 +110,7 @@ class EditProfileActivity : ProfileCommonActivity() {
.start(this);
}
binding.profileEditButton.setOnClickListener {
saveTag()
finish()
}
}
Expand Down Expand Up @@ -133,46 +140,6 @@ class EditProfileActivity : ProfileCommonActivity() {
Toast.makeText(this, "닉네임을 변경하였습니다", Toast.LENGTH_SHORT).show()
}
}

/*
private fun initData() {
// 임시 데이터
tag_debug_data.add(TagModel("언어", arrayListOf("한국어", "영어"), -1, 0))
tag_debug_data.add(TagModel("성격", arrayListOf("활동적인", "솔직한"), -1, 0))
tag_debug_data.add(
TagModel(
"취미", arrayListOf(
"영화감상", "게임", "서핑",
"여행", "독서", "술", "요리", "그림그리기"
), -1, 0
)
)
tag_debug_data.add(TagModel("전공", arrayListOf("컴퓨터", "컴퓨터공학"), -1, 0))
tag_debug_data.add(TagModel("언어", arrayListOf("한국어", "영어"), -1, 0))
tag_debug_data.add(TagModel("성격", arrayListOf("활동적인", "솔직한"), -1, 0))
tag_debug_data.add(
TagModel(
"해외여행", arrayListOf(
"러시아", "태국", "중국",
"싱가폴", "미국", "캐나다", "브라질", "그린란드", "영국", "대만"
), -1 ,0
)
)
tag_debug_data.add(TagModel("전공", arrayListOf("컴퓨터", "컴퓨터공학"), -1 ,0))
tag_debug_data.add(TagModel("언어", arrayListOf("한국어", "영어"), -1 ,0))
tag_debug_data.add(TagModel("성격", arrayListOf("활동적인", "솔직한"), -1 ,0))
tag_debug_data.add(
TagModel(
"취미", arrayListOf(
"영화감상", "게임", "서핑",
"여행", "독서", "술", "요리", "그림그리기"
), -1 ,0
)
)
tag_debug_data.add(TagModel("전공", arrayListOf("컴퓨터", "컴퓨터공학"), -1 ,0))
}
*/
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

Expand Down Expand Up @@ -205,7 +172,7 @@ class EditProfileActivity : ProfileCommonActivity() {
}
val uid = firebaseUser.uid

fileRef = FirebaseStorage.getInstance().reference.child(USER_PROFILE_IMAGE_PATH).child("$uid.jpg")
fileRef = storage.reference.child(USER_PROFILE_IMAGE_PATH).child("$uid.jpg")

val uploadTask = fileRef.putFile(imageUri)

Expand Down Expand Up @@ -243,7 +210,7 @@ class EditProfileActivity : ProfileCommonActivity() {
tagAdapter = TagAdapter(this, data)
tagAdapter.itemClickListener = object : TagAdapter.OnItemClickListener {
override fun onItemClick(
holder: TagAdapter.ViewHolder,
holder: TagAdapter.DefaultViewHolder,
view: View,
data: TagModel,
position: Int
Expand Down
15 changes: 11 additions & 4 deletions app/src/main/java/kr/ac/konkuk/koogle/Activity/ProfileActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import kr.ac.konkuk.koogle.databinding.ActivityProfileBinding
*/

class ProfileActivity : ProfileCommonActivity() {
private val profileEditRequest = 1110
// private var tag_debug_data: ArrayList<TagModel> = ArrayList()
lateinit var binding: ActivityProfileBinding
lateinit var commentAdapter: CommentAdapter
Expand Down Expand Up @@ -74,7 +75,7 @@ class ProfileActivity : ProfileCommonActivity() {

binding.profileEditButton.setOnClickListener {
val intent = Intent(this, EditProfileActivity::class.java)
startActivity(intent)
startActivityForResult(intent, profileEditRequest)
}

binding.backButton.setOnClickListener {
Expand Down Expand Up @@ -126,9 +127,15 @@ class ProfileActivity : ProfileCommonActivity() {
override fun onCancelled(error: DatabaseError) {

}

})
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// 리사이클러뷰 갱신
if(requestCode==profileEditRequest){
initRecyclerView()
}

}

Expand All @@ -144,12 +151,12 @@ class ProfileActivity : ProfileCommonActivity() {
override fun initTagRecyclerView(data: ArrayList<TagModel>) {
binding.tagRecyclerView.layoutManager = LinearLayoutManager(this)
// 구분선 넣기
binding.tagRecyclerView.addItemDecoration(DividerItemDecoration(this, 1))
//binding.tagRecyclerView.addItemDecoration(DividerItemDecoration(this, 1))

tagAdapter = TagAdapter(this, data)
tagAdapter.itemClickListener = object : TagAdapter.OnItemClickListener {
override fun onItemClick(
holder: TagAdapter.ViewHolder,
holder: TagAdapter.DefaultViewHolder,
view: View,
data: TagModel,
position: Int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ abstract class ProfileCommonActivity: AppCompatActivity(){
}
//DB 객체 초기화
open val firebaseUser = auth.currentUser!!
private val storage = FirebaseStorage.getInstance()
open val storage = FirebaseStorage.getInstance()
lateinit var userTagRef: DatabaseReference
lateinit var imageUri: Uri
lateinit var fileRef: StorageReference
Expand All @@ -56,7 +56,7 @@ abstract class ProfileCommonActivity: AppCompatActivity(){
}

// 리사이클러뷰 초기화
private fun initRecyclerView(){
protected fun initRecyclerView(){
// DB 에서 유저 태그 데이터 받아옴
val tagData: ArrayList<TagModel> = arrayListOf()
userTagRef = Firebase.database.reference
Expand All @@ -72,8 +72,8 @@ abstract class ProfileCommonActivity: AppCompatActivity(){
tagData.add(
TagModel(
s.key.toString(), newSubTag,
s.child(DBKeys.TAG_TYPE).value.toString().toInt(),
s.child(DBKeys.TAG_VALUE).value.toString().toInt()
s.child(DBKeys.TAG_VALUE).value.toString().toInt(),
s.child(DBKeys.TAG_TYPE).value.toString().toInt()
))
}
// 로딩 작업이 끝난 이후 RecyclerView 를 초기화하는 순서를 맞추기 위해 이곳에 넣음
Expand Down
80 changes: 56 additions & 24 deletions app/src/main/java/kr/ac/konkuk/koogle/Adapter/AddTagAdapter.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package kr.ac.konkuk.koogle.Adapter

import android.content.Context
import android.text.Editable
import android.text.TextWatcher
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.children
Expand Down Expand Up @@ -31,28 +35,9 @@ import kr.ac.konkuk.koogle.R
selected
*/
class AddTagAdapter(val context: Context, val data: MutableList<TagModel?>)
:RecyclerView.Adapter<RecyclerView.ViewHolder>(){
var selectedList: HashMap<String, TagModel> = hashMapOf<String, TagModel>()

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view: View

return when (viewType) {
TagType.TAG ->{
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag, parent, false)
DefaultViewHolder(view)
}
TagType.VALUE->{
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag_value, parent, false)
ValueViewHolder(view)
}
else -> {
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag, parent, false)
DefaultViewHolder(view)
}
}
}
class AddTagAdapter(open val context: Context, open val data: MutableList<TagModel>)
: RecyclerView.Adapter<RecyclerView.ViewHolder>(){
var selectedList: HashMap<String, TagModel> = hashMapOf()

// name: sub tag
// selected: 해당 sub tag를 유저가 선택하였는지 여부
Expand All @@ -68,7 +53,7 @@ class AddTagAdapter(val context: Context, val data: MutableList<TagModel?>)
var subTagList: ArrayList<subTagModel> = arrayListOf()

// SubTag 한 칸을 생성한다.
private fun makeSubTagView(tagName: String): TextView{
fun makeSubTagView(tagName: String): TextView{
var subTagText = TextView(context)
subTagText.text = tagName
// 모서리가 둥근 태그 스타일 적용(임시)
Expand Down Expand Up @@ -199,8 +184,55 @@ class AddTagAdapter(val context: Context, val data: MutableList<TagModel?>)
// Tag 밑에 수치형 데이터 가 있는 형태의 row
inner class ValueViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
val mainTagText: TextView = itemView.findViewById(R.id.mainTagText)
val valueText: EditText = itemView.findViewById(R.id.tagValueText)
var mainTag: String = ""
init {
valueText.addTextChangedListener(object: TextWatcher{
override fun beforeTextChanged(
s: CharSequence?,
start: Int,
count: Int,
after: Int
) {
}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
// 선택 리스트에 추가하기
if(valueText.length() != 0){
// 이미 리스트에 있으면 값만 변경, 없으면 태그 모델 만들기
if(selectedList[mainTag]!=null){
selectedList[mainTag]!!.value = valueText.text.toString().toInt()
}else{
selectedList[mainTag] =
TagModel(mainTag, arrayListOf(),
valueText.text.toString().toInt(), TagType.VALUE)
}
}
// 선택 리스트에서 제거하기
else selectedList.remove(mainTag)
}
})
}
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view: View

return when (viewType) {
TagType.TAG ->{
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag, parent, false)
DefaultViewHolder(view)
}
TagType.VALUE->{
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag_value, parent, false)
ValueViewHolder(view)
}
else -> {
view = LayoutInflater.from(context).inflate(R.layout.row_add_tag, parent, false)
DefaultViewHolder(view)
}
}
}

Expand All @@ -209,7 +241,7 @@ class AddTagAdapter(val context: Context, val data: MutableList<TagModel?>)
if(holder is DefaultViewHolder){
holder.mainTag = tagName
holder.mainTagText.text = tagName
holder.settingSubTags(tagName, 10)
holder.settingSubTags(tagName, 20)
}else if(holder is ValueViewHolder){
holder.mainTag = tagName
holder.mainTagText.text = tagName
Expand Down

0 comments on commit 75ddfd3

Please sign in to comment.