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
kkjsw17 committed Jun 20, 2021
2 parents a3ef5ac + 4672c3e commit 655e158
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class TagAdapter(val context: Context, val data: MutableList<TagModel>,

// 클릭 이벤트 설정
subTagText.setOnClickListener {
itemClickListener?.onItemClick(this, subTagText, data[adapterPosition], adapterPosition)
subTagClickListener?.onItemClick(this, subTagText, data[adapterPosition], adapterPosition)
}

return subTagText
Expand Down
210 changes: 116 additions & 94 deletions app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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()
Expand All @@ -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() {
Expand All @@ -286,4 +304,8 @@ class CommunityFragment : Fragment(R.layout.fragment_community) {

articleRef.removeEventListener(listener)
}

companion object{
const val REQUEST_ARTICLE = 177
}
}

0 comments on commit 655e158

Please sign in to comment.