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 b6bbd4f..37e5fca 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 @@ -53,6 +53,7 @@ import kr.ac.konkuk.koogle.DBKeys.Companion.USER_EMAIL import kr.ac.konkuk.koogle.DBKeys.Companion.USER_ID import kr.ac.konkuk.koogle.DBKeys.Companion.USER_NAME import kr.ac.konkuk.koogle.DBKeys.Companion.USER_PROFILE_IMAGE_URL +import kr.ac.konkuk.koogle.Fragment.CommunityFragment import kr.ac.konkuk.koogle.Model.ArticleModel import kr.ac.konkuk.koogle.Model.Entity.SearchResultEntity import kr.ac.konkuk.koogle.Model.TagModel @@ -483,6 +484,11 @@ class ArticleActivity : AppCompatActivity() { data: TagModel, position: Int ) { + // 검색창으로 이동 + val intent = Intent() + intent.putExtra("tag", view.text.toString()) + setResult(CommunityFragment.REQUEST_ARTICLE, intent) + finish() } } binding.tagRecyclerView.adapter = tagRecyclerAdapter 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 8f8676e..a8fd108 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 @@ -235,19 +235,7 @@ class EditProfileActivity : ProfileCommonActivity() { binding.tagRecyclerView.addItemDecoration(DividerItemDecoration(this, 1)) tagAdapter = TagAdapter(this, data, true) - // 서브태그들 클릭했을 때 이벤트 구현 - /* - tagAdapter.subTagClickListener = object : TagAdapter.OnItemClickListener { - override fun onItemClick( - holder: TagAdapter.DefaultViewHolder, - view: EditText, - data: TagModel, - position: Int - ) { - Log.d("jan", "Click") - view.isEnabled = true - } - }*/ + binding.tagRecyclerView.adapter = tagAdapter val simpleCallBack = object : ItemTouchHelper.SimpleCallback( ItemTouchHelper.DOWN or ItemTouchHelper.UP, diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/TagAdapter.kt b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/TagAdapter.kt index 06ced6b..c0d4028 100644 --- a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/TagAdapter.kt +++ b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/TagAdapter.kt @@ -158,7 +158,7 @@ class TagAdapter(val context: Context, val data: MutableList, // 클릭 이벤트 설정 subTagText.setOnClickListener { - itemClickListener?.onItemClick(this, subTagText, data[adapterPosition], adapterPosition) + subTagClickListener?.onItemClick(this, subTagText, data[adapterPosition], adapterPosition) } return subTagText diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt b/app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt index 95af30e..ad87f9e 100644 --- a/app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt +++ b/app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt @@ -38,7 +38,6 @@ import kr.ac.konkuk.koogle.databinding.FragmentCommunityBinding class CommunityFragment : Fragment(R.layout.fragment_community) { - private var binding: FragmentCommunityBinding? = null private lateinit var communityAdapter: CommunityAdapter @@ -131,7 +130,7 @@ class CommunityFragment : Fragment(R.layout.fragment_community) { //fragment에서 다른 액티비티로 데이터 전달 Log.d("CommunityFragment", "articleId: ${articleModel.articleId}") - activity?.startActivity(intent) + startActivityForResult(intent, REQUEST_ARTICLE) } else { //로그인을 안한 상태 Toast.makeText(context, "로그인 후 사용해주세요", Toast.LENGTH_LONG).show() @@ -148,130 +147,149 @@ class CommunityFragment : Fragment(R.layout.fragment_community) { binding!!.articleRecyclerView.adapter = communityAdapter } - private fun initButton() { - val spinner = binding!!.searchSpinner - ArrayAdapter.createFromResource( - requireContext(), - R.array.search_spinner, - android.R.layout.simple_spinner_item - ).also { adapter -> - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) - spinner.adapter = adapter + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + Log.d("jan", "ok") + // 글에서 수신된 결과 (태그 선택) + if(requestCode == REQUEST_ARTICLE){ + val str:String? = data?.getStringExtra("tag") + Log.d("jan", "go ${str}") + if(!str.isNullOrBlank()){ + Log.d("jan", str) + binding!!.searchEditText.setText(str) + searchArticle() + } } + } - binding!!.btnAddArticle.setOnClickListener { + private fun searchArticle(){ + val searchText = binding!!.searchEditText.text.toString() + val articleRef = Firebase.database.reference.child(DB_ARTICLES) - context?.let { - if (auth.currentUser != null) { - startActivity(Intent(it, AddArticleActivity::class.java)) - } else { - Toast.makeText(context, "로그인 후 사용해주세요", Toast.LENGTH_SHORT).show() - startActivity(Intent(it, LogInActivity::class.java)) + if (searchText.isEmpty()) { + articleRef.addListenerForSingleValueEvent(object : ValueEventListener { + override fun onDataChange(snapshot: DataSnapshot) { + articleList.clear() + for (article in snapshot.children) { + articleList.add(0, article.getValue(ArticleModel::class.java)!!) + } + communityAdapter.submitList(articleList) + communityAdapter.notifyDataSetChanged() } - //이것도 가능 - //startActivity(Intent(requireContext(),ArticleAddActivity::class.java)) - } - } + override fun onCancelled(error: DatabaseError) {} - binding!!.searchImageView.setOnClickListener { - val searchText = binding!!.searchEditText.text.toString() - val articleRef = Firebase.database.reference.child(DB_ARTICLES) + }) + } else { + val position = binding!!.searchSpinner.selectedItemPosition - if (searchText.isEmpty()) { + if (position == 0) { + searchedArticleList.clear() articleRef.addListenerForSingleValueEvent(object : ValueEventListener { override fun onDataChange(snapshot: DataSnapshot) { - articleList.clear() for (article in snapshot.children) { - articleList.add(0, article.getValue(ArticleModel::class.java)!!) - } - communityAdapter.submitList(articleList) - communityAdapter.notifyDataSetChanged() - } - - override fun onCancelled(error: DatabaseError) {} - - }) - } else { - val position = binding!!.searchSpinner.selectedItemPosition - - if (position == 0) { - searchedArticleList.clear() - articleRef.addListenerForSingleValueEvent(object : ValueEventListener { - override fun onDataChange(snapshot: DataSnapshot) { - for (article in snapshot.children) { - for (tag in article.child(DB_MAIN_TAGS).children) { - var isContain = false - if (searchText in tag.key.toString()) { + for (tag in article.child(DB_MAIN_TAGS).children) { + var isContain = false + if (searchText in tag.key.toString()) { + searchedArticleList.add( + 0, + article.getValue(ArticleModel::class.java)!! + ) + break + } + for (subtag in tag.child(SUB_TAGS).children) { + if (searchText in subtag.key.toString()) { searchedArticleList.add( 0, article.getValue(ArticleModel::class.java)!! ) - break - } - for (subtag in tag.child(SUB_TAGS).children) { - if (searchText in subtag.key.toString()) { - searchedArticleList.add( - 0, - article.getValue(ArticleModel::class.java)!! - ) - isContain = true - break - } - } - if (isContain) { + isContain = true break } } + if (isContain) { + break + } } - communityAdapter.submitList(searchedArticleList) - communityAdapter.notifyDataSetChanged() } + communityAdapter.submitList(searchedArticleList) + communityAdapter.notifyDataSetChanged() + } - override fun onCancelled(error: DatabaseError) {} + override fun onCancelled(error: DatabaseError) {} - }) - } else if (position == 1) { - searchedArticleList.clear() - articleRef.addListenerForSingleValueEvent(object : ValueEventListener { - override fun onDataChange(snapshot: DataSnapshot) { - for (article in snapshot.children) { - if (searchText in article.child(ARTICLE_TITLE).value.toString()) { - searchedArticleList.add( - 0, - article.getValue(ArticleModel::class.java)!! - ) - } + }) + } else if (position == 1) { + searchedArticleList.clear() + articleRef.addListenerForSingleValueEvent(object : ValueEventListener { + override fun onDataChange(snapshot: DataSnapshot) { + for (article in snapshot.children) { + if (searchText in article.child(ARTICLE_TITLE).value.toString()) { + searchedArticleList.add( + 0, + article.getValue(ArticleModel::class.java)!! + ) } - communityAdapter.submitList(searchedArticleList) - communityAdapter.notifyDataSetChanged() } + communityAdapter.submitList(searchedArticleList) + communityAdapter.notifyDataSetChanged() + } - override fun onCancelled(error: DatabaseError) {} + override fun onCancelled(error: DatabaseError) {} - }) - } else { - searchedArticleList.clear() - articleRef.addListenerForSingleValueEvent(object : ValueEventListener { - override fun onDataChange(snapshot: DataSnapshot) { - for (article in snapshot.children) { - if (searchText in article.child(ARTICLE_CONTENT).value.toString()) { - searchedArticleList.add( - 0, - article.getValue(ArticleModel::class.java)!! - ) - } + }) + } else { + searchedArticleList.clear() + articleRef.addListenerForSingleValueEvent(object : ValueEventListener { + override fun onDataChange(snapshot: DataSnapshot) { + for (article in snapshot.children) { + if (searchText in article.child(ARTICLE_CONTENT).value.toString()) { + searchedArticleList.add( + 0, + article.getValue(ArticleModel::class.java)!! + ) } - communityAdapter.submitList(searchedArticleList) - communityAdapter.notifyDataSetChanged() } + communityAdapter.submitList(searchedArticleList) + communityAdapter.notifyDataSetChanged() + } - override fun onCancelled(error: DatabaseError) {} + override fun onCancelled(error: DatabaseError) {} - }) + }) + } + } + } + + private fun initButton() { + val spinner = binding!!.searchSpinner + ArrayAdapter.createFromResource( + requireContext(), + R.array.search_spinner, + android.R.layout.simple_spinner_item + ).also { adapter -> + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + spinner.adapter = adapter + } + + binding!!.btnAddArticle.setOnClickListener { + + context?.let { + if (auth.currentUser != null) { + startActivity(Intent(it, AddArticleActivity::class.java)) + } else { + Toast.makeText(context, "로그인 후 사용해주세요", Toast.LENGTH_SHORT).show() + startActivity(Intent(it, LogInActivity::class.java)) } + + //이것도 가능 + //startActivity(Intent(requireContext(),ArticleAddActivity::class.java)) } } + + binding!!.searchImageView.setOnClickListener { + searchArticle() + } } override fun onResume() { @@ -286,4 +304,8 @@ class CommunityFragment : Fragment(R.layout.fragment_community) { articleRef.removeEventListener(listener) } + + companion object{ + const val REQUEST_ARTICLE = 177 + } } \ No newline at end of file