diff --git a/.idea/misc.xml b/.idea/misc.xml index 3b59434..44c0c42 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/AddNewTagActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/AddNewTagActivity.kt index 8ba8a47..ae44ba7 100644 --- a/app/src/main/java/kr/ac/konkuk/koogle/Activity/AddNewTagActivity.kt +++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/AddNewTagActivity.kt @@ -37,8 +37,6 @@ class AddNewTagActivity:AppCompatActivity() { lateinit var adapter: AddTagAdapter lateinit var rootRef:DatabaseReference lateinit var tagRef:DatabaseReference - // 처음 5명이 사용하기 전까지는 추천에 뜨지 않게 하기 - val TAG_INIT_NUM = 5 //Firebase Auth를 initialize 해주는 코드 private val auth: FirebaseAuth by lazy { @@ -102,35 +100,6 @@ class AddNewTagActivity:AppCompatActivity() { setDataRecyclerView(null) } -/* - private fun commitMainTag(mainTag: String): Boolean{ - tagRef.orderByChild(DBKeys.TAG_ID) - .equalTo(mainTag).addListenerForSingleValueEvent(object:ValueEventListener{ - override fun onDataChange(snapshot: DataSnapshot) { - if(snapshot.childrenCount>0){ - // 있으면 tagNum만 늘어난다. - tagRef.child(mainTag).child(DBKeys.USED_NUM).setValue( - snapshot.child(mainTag).child(DBKeys.USED_NUM).value.toString().toInt() + 1 - ) - - }else{ - // 없으면 추가하고 false 반환 - val newTag = mutableMapOf() - - newTag[DBKeys.TAG_ID] = mainTag - newTag[DBKeys.USED_NUM] = TAG_INIT_NUM - tagRef.child(mainTag).updateChildren(newTag) - } - } - - override fun onCancelled(error: DatabaseError) { - TODO("Not yet implemented") - } - - }) - return false - } -*/ private fun commitSubTag(mainTag: String): Boolean{ // 이미 DB에 있는 태그인지 확인한다 @@ -149,7 +118,7 @@ class AddNewTagActivity:AppCompatActivity() { private fun initView() { binding.apply { // 새 태그 버튼: 검색 창에 있는 태그가 DB에 있으면 무시, 없으면 목록에 추가한다 - // DB 에는 아직 추가하지 않음. 유저가 최종적으로 프로필에 적용했을 때 추가한다 + // sub Tag 는 DB 에는 아직 추가하지 않음. 유저가 최종적으로 프로필에 적용했을 때 추가한다 addNewTagBtn.setOnClickListener { // 입력 창에 아무 것도 없으면 무시 if(searchEditText.length() == 0){ @@ -164,7 +133,6 @@ class AddNewTagActivity:AppCompatActivity() { Toast.makeText(this@AddNewTagActivity, R.string.msg_exist_tag, Toast.LENGTH_SHORT).show() return - }else{ // 없으면 목록에 추가한다 val newTag = mutableMapOf() @@ -234,4 +202,8 @@ class AddNewTagActivity:AppCompatActivity() { }) } } + companion object{ + // 처음 5명이 사용하기 전까지는 추천에 뜨지 않게 하기 + const val TAG_INIT_NUM = 5 + } } \ No newline at end of file diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditProfileActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditProfileActivity.kt index 50cd064..592b4ed 100644 --- a/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditProfileActivity.kt +++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditProfileActivity.kt @@ -3,6 +3,7 @@ package kr.ac.konkuk.koogle.Activity import android.content.Intent import android.net.Uri import android.os.Bundle +import android.util.Log import android.view.View import android.widget.TextView import android.widget.Toast @@ -47,12 +48,32 @@ class EditProfileActivity : ProfileCommonActivity() { initButton() } - // 현재 상태를 DB에 저장 + // 전체 Tag DB 에 변경사항 반영 ( 사용 횟수 증가) + private fun pushDBTag(){ + var tagRef = Firebase.database.reference.child(DBKeys.DB_MAIN_TAGS) + + for ((key, value) in tagAdapter.data) { + tagRef.child(key) + .addListenerForSingleValueEvent(object : ValueEventListener { + override fun onDataChange(snapshot: DataSnapshot) { + // DB 에 같은 값이 있음: 사용 회수 증가 + if (snapshot.childrenCount > 0) { + // 사용 회수 의미적으로 증가(=감소) + tagRef.child(key).child(DBKeys.USED).setValue( + snapshot.child(DBKeys.USED).value.toString().toInt() - 1 + ) + } + } + override fun onCancelled(error: DatabaseError) {} + }) + } + } + + // 현재 상태를 user DB에 저장 // 기존의 데이터는 사라진다. private fun saveTag(){ userTagRef = Firebase.database.reference .child(DBKeys.DB_USER_TAG).child(firebaseUser.uid) - var j = tagAdapter.itemCount val tags = mutableMapOf() for(value in tagAdapter.data) { @@ -101,6 +122,7 @@ class EditProfileActivity : ProfileCommonActivity() { .start(this@EditProfileActivity); } profileEditButton.setOnClickListener { + pushDBTag() saveTag() finish() }