diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 12163e5..f5382d2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,7 +9,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Koogle">
-
+
+
@@ -60,10 +61,10 @@
android:value="@string/google_map" />
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/ArticleActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/ArticleActivity.kt
index e6a2c40..90e9787 100644
--- a/app/src/main/java/kr/ac/konkuk/koogle/Activity/ArticleActivity.kt
+++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/ArticleActivity.kt
@@ -263,6 +263,14 @@ class ArticleActivity : AppCompatActivity() {
intent.putExtra(MAP_INFO, mapInfo)
startActivity(intent)
}
+
+ //프로필을 누르면 상대방 프로필을 볼 수 있게
+ binding.profileImageView.setOnClickListener {
+ val intent = Intent(this, CheckProfileActivity::class.java)
+ intent.putExtra(WRITER_INFO, writerId)
+ Log.i("ArticleActivity", "writerId: $writerId")
+ startActivity(intent)
+ }
}
private fun initDB() {
@@ -414,5 +422,6 @@ class ArticleActivity : AppCompatActivity() {
companion object {
const val MAP_INFO = "MAP_INFO"
const val ARTICLE_INFO = "ARTICLE_INFO"
+ const val WRITER_INFO = "WRITER_INFO"
}
}
\ No newline at end of file
diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/CheckProfileActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/CheckProfileActivity.kt
new file mode 100644
index 0000000..230c205
--- /dev/null
+++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/CheckProfileActivity.kt
@@ -0,0 +1,184 @@
+package kr.ac.konkuk.koogle.Activity
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.widget.EditText
+import androidx.recyclerview.widget.DividerItemDecoration
+import androidx.recyclerview.widget.ItemTouchHelper
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.google.firebase.database.DataSnapshot
+import com.google.firebase.database.DatabaseError
+import com.google.firebase.database.DatabaseReference
+import com.google.firebase.database.ValueEventListener
+import com.google.firebase.database.ktx.database
+import com.google.firebase.ktx.Firebase
+import kr.ac.konkuk.koogle.Adapter.CommentAdapter
+import kr.ac.konkuk.koogle.Adapter.TagAdapter
+import kr.ac.konkuk.koogle.DBKeys.Companion.DB_COMMENTS
+import kr.ac.konkuk.koogle.DBKeys.Companion.DB_USERS
+import kr.ac.konkuk.koogle.Model.CommentModel
+import kr.ac.konkuk.koogle.Model.TagModel
+import kr.ac.konkuk.koogle.Model.UserModel
+import kr.ac.konkuk.koogle.R
+import kr.ac.konkuk.koogle.databinding.ActivityCheckProfileBinding
+
+class CheckProfileActivity : ProfileCommonActivity() {
+ private val profileEditRequest = 1110
+
+ lateinit var binding: ActivityCheckProfileBinding
+
+ lateinit var writerId: String
+
+ private lateinit var commentAdapter: CommentAdapter
+
+ private var userCommentList = mutableListOf()
+
+ private val userRef: DatabaseReference by lazy {
+ Firebase.database.reference.child(DB_USERS)
+ }
+
+ private val currentWriterRef: DatabaseReference by lazy {
+ userRef.child(writerId)
+ }
+
+ private val currentWriterCommentRef: DatabaseReference by lazy {
+ currentWriterRef.child(DB_COMMENTS)
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityCheckProfileBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ init()
+ }
+
+ private fun init() {
+ initDB()
+ initButton()
+ }
+
+ private fun initButton() {
+ binding.apply {
+ checkButton.setOnClickListener {
+ finish()
+ }
+ }
+
+ binding.backButton.setOnClickListener {
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
+ finish()
+ }
+ }
+
+
+ private fun initDB() {
+ //파이어베이스 데이터베이스의 정보 가져오기
+ intent.let{
+ writerId = it.getStringExtra(ArticleActivity.WRITER_INFO).toString()
+ Log.i("CheckProfileActivity", "writerId: $writerId")
+ }
+
+ currentWriterRef.addListenerForSingleValueEvent(object : ValueEventListener {
+ override fun onDataChange(snapshot: DataSnapshot) {
+ if (snapshot.exists()) {
+ val userModel: UserModel? = snapshot.getValue(UserModel::class.java)
+ if (userModel != null) {
+ Log.i("CheckProfileActivity", "userModel: $userModel ")
+ if (userModel.userProfileImageUrl.isEmpty()) {
+ binding.apply {
+ userProfileImage.setImageResource(R.drawable.profile_image)
+ }
+ } else {
+ Glide.with(binding.userProfileImage)
+ .load(userModel.userProfileImageUrl)
+ .into(binding.userProfileImage)
+ }
+ }
+ if (userModel != null) {
+ binding.writerNameText.text = userModel.userName
+ binding.userNameText.text = userModel.userName
+ }
+ }
+ }
+
+ override fun onCancelled(error: DatabaseError) {}
+ })
+
+ currentWriterCommentRef.addListenerForSingleValueEvent(object: ValueEventListener{
+ override fun onDataChange(dataSnapshot: DataSnapshot) {
+ for (snapshot in dataSnapshot.children) {
+ val commentModel = snapshot.getValue(CommentModel::class.java)
+ Log.i("CheckProfileActivity", "commentModel: $commentModel")
+ if (commentModel != null) {
+ userCommentList.add(commentModel)
+ }
+
+ }
+ //동기적 실행을 위해 위치 옮김
+ initCommentRecyclerView()
+ }
+
+ override fun onCancelled(error: DatabaseError) {
+
+ }
+ })
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ // 리사이클러뷰 갱신
+ if(requestCode==profileEditRequest){
+ initRecyclerView()
+ }
+ }
+
+ private fun initCommentRecyclerView() {
+ binding.commentRecyclerView.layoutManager = LinearLayoutManager(this)
+ binding.commentRecyclerView.addItemDecoration(DividerItemDecoration(this, 1))
+ commentAdapter = CommentAdapter()
+ binding.commentRecyclerView.adapter = commentAdapter
+ commentAdapter.submitList(userCommentList)
+ }
+
+ override fun initTagRecyclerView(data: ArrayList) {
+ binding.tagRecyclerView.layoutManager = LinearLayoutManager(this)
+ // 구분선 넣기
+ //binding.tagRecyclerView.addItemDecoration(DividerItemDecoration(this, 1))
+
+ tagAdapter = TagAdapter(this, data)
+ // 서브태그들 클릭했을 때 이벤트 구현
+ tagAdapter.subTagClickListener = object : TagAdapter.OnItemClickListener {
+ override fun onItemClick(
+ holder: TagAdapter.DefaultViewHolder,
+ view: EditText,
+ data: TagModel,
+ position: Int
+ ) {
+ }
+ }
+ binding.tagRecyclerView.adapter = tagAdapter
+ val simpleCallBack = object : ItemTouchHelper.SimpleCallback(
+ ItemTouchHelper.DOWN or ItemTouchHelper.UP,
+ ItemTouchHelper.RIGHT
+ ) {
+ override fun onMove(
+ recyclerView: RecyclerView,
+ viewHolder: RecyclerView.ViewHolder,
+ target: RecyclerView.ViewHolder
+ ): Boolean {
+ tagAdapter.moveItem(viewHolder.adapterPosition, target.adapterPosition)
+ return true
+ }
+
+ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
+ tagAdapter.removeItem(viewHolder.adapterPosition)
+ }
+ }
+ val itemTouchHelper = ItemTouchHelper(simpleCallBack)
+ itemTouchHelper.attachToRecyclerView(binding.tagRecyclerView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditArticleActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditArticleActivity.kt
index 6c04019..4911d55 100644
--- a/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditArticleActivity.kt
+++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/EditArticleActivity.kt
@@ -44,7 +44,6 @@ import kr.ac.konkuk.koogle.Model.ArticleModel
import kr.ac.konkuk.koogle.Model.Entity.SearchResultEntity
import kr.ac.konkuk.koogle.Model.UserModel
import kr.ac.konkuk.koogle.databinding.ActivityEditArticleBinding
-import java.io.File
//기존 글의 데이터 읽어오기
class EditArticleActivity : AppCompatActivity() {
diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Activity/ProfileCommonActivity.kt b/app/src/main/java/kr/ac/konkuk/koogle/Activity/ProfileCommonActivity.kt
index dc361ae..bf263ef 100644
--- a/app/src/main/java/kr/ac/konkuk/koogle/Activity/ProfileCommonActivity.kt
+++ b/app/src/main/java/kr/ac/konkuk/koogle/Activity/ProfileCommonActivity.kt
@@ -24,6 +24,11 @@ import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.StorageReference
import kr.ac.konkuk.koogle.Adapter.TagAdapter
import kr.ac.konkuk.koogle.DBKeys
+import kr.ac.konkuk.koogle.DBKeys.Companion.DB_USER_TAG
+import kr.ac.konkuk.koogle.DBKeys.Companion.SUB_TAGS
+import kr.ac.konkuk.koogle.DBKeys.Companion.TAG_INDEX
+import kr.ac.konkuk.koogle.DBKeys.Companion.TAG_TYPE
+import kr.ac.konkuk.koogle.DBKeys.Companion.TAG_VALUE
import kr.ac.konkuk.koogle.Model.TagModel
/*
@@ -60,20 +65,20 @@ abstract class ProfileCommonActivity: AppCompatActivity(){
// DB 에서 유저 태그 데이터 받아옴
val tagData: ArrayList = arrayListOf()
userTagRef = Firebase.database.reference
- .child(DBKeys.DB_USER_TAG).child(firebaseUser.uid)
- userTagRef.orderByChild(DBKeys.TAG_INDEX)
+ .child(DB_USER_TAG).child(firebaseUser.uid)
+ userTagRef.orderByChild(TAG_INDEX)
.limitToFirst(maxShowTag).addListenerForSingleValueEvent(object:ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
for(s in snapshot.children){
val newSubTag = arrayListOf()
- for(st in s.child(DBKeys.SUB_TAGS).children){
+ for(st in s.child(SUB_TAGS).children){
newSubTag.add(st.key.toString())
}
tagData.add(
TagModel(
s.key.toString(), newSubTag,
- s.child(DBKeys.TAG_VALUE).value.toString().toInt(),
- s.child(DBKeys.TAG_TYPE).value.toString().toInt()
+ s.child(TAG_VALUE).value.toString().toInt(),
+ s.child(TAG_TYPE).value.toString().toInt()
))
}
// 로딩 작업이 끝난 이후 RecyclerView 를 초기화하는 순서를 맞추기 위해 이곳에 넣음
diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/CommunityAdapter.kt b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/CommunityAdapter.kt
index c352406..10d22d3 100644
--- a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/CommunityAdapter.kt
+++ b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/CommunityAdapter.kt
@@ -3,6 +3,7 @@ package kr.ac.konkuk.koogle.Adapter
import android.annotation.SuppressLint
import android.graphics.Color
import android.view.LayoutInflater
+import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
@@ -44,6 +45,15 @@ class CommunityAdapter(val onItemClicked: (ArticleModel) -> Unit): ListAdapter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_edit_profile.xml b/app/src/main/res/layout/activity_edit_profile.xml
index b3144f5..ab11b80 100644
--- a/app/src/main/res/layout/activity_edit_profile.xml
+++ b/app/src/main/res/layout/activity_edit_profile.xml
@@ -174,11 +174,14 @@
-
+ android:src="@drawable/ic_baseline_add_24"
+ app:tint="@color/white"
+ android:backgroundTint="@color/colorMain"
+ android:layout_marginVertical="12dp"/>
diff --git a/app/src/main/res/layout/item_article.xml b/app/src/main/res/layout/item_article.xml
index db1ba9a..b52e3ed 100644
--- a/app/src/main/res/layout/item_article.xml
+++ b/app/src/main/res/layout/item_article.xml
@@ -8,31 +8,36 @@
android:padding="5dp"
android:orientation="horizontal" >
-
-
-
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
@@ -98,8 +112,8 @@
android:id="@+id/recruitmentNumberTextView"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_weight="2.5"
- android:gravity="start"
+ android:layout_weight="2"
+ android:gravity="center"
android:layout_marginTop="4dp"
android:text="4"
android:textSize="40sp" />
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 04009aa..b8c134f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -13,7 +13,7 @@
#CCCCCC
#ECECEC
#F7CAC9
- #3275ea
+ #5D91EC
#0077b6
#bde0fe