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
sudo-homebrew committed Jun 20, 2021
2 parents b83370a + 3cdd311 commit 8aa66ca
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 33 deletions.
106 changes: 79 additions & 27 deletions app/src/main/java/kr/ac/konkuk/koogle/Fragment/CommunityFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Toast
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
Expand All @@ -22,7 +24,9 @@ import kr.ac.konkuk.koogle.Activity.ArticleActivity
import kr.ac.konkuk.koogle.Activity.LogInActivity
import kr.ac.konkuk.koogle.Adapter.CommunityAdapter
import kr.ac.konkuk.koogle.DBKeys
import kr.ac.konkuk.koogle.DBKeys.Companion.ARTICLE_CONTENT
import kr.ac.konkuk.koogle.DBKeys.Companion.ARTICLE_ID
import kr.ac.konkuk.koogle.DBKeys.Companion.ARTICLE_TITLE
import kr.ac.konkuk.koogle.DBKeys.Companion.DB_ARTICLES
import kr.ac.konkuk.koogle.DBKeys.Companion.DB_MAIN_TAGS
import kr.ac.konkuk.koogle.DBKeys.Companion.DB_USERS
Expand Down Expand Up @@ -145,6 +149,16 @@ class CommunityFragment : Fragment(R.layout.fragment_community) {
}

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 {
Expand Down Expand Up @@ -175,49 +189,87 @@ class CommunityFragment : Fragment(R.layout.fragment_community) {
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) {
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()) {
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()) {
searchedArticleList.add(
0,
article.getValue(ArticleModel::class.java)!!
)
isContain = true
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) {
break
}
}
if (isContain) {
break
}
communityAdapter.submitList(searchedArticleList)
communityAdapter.notifyDataSetChanged()
}

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)!!
)
}
}
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)!!
)
}
}
communityAdapter.submitList(searchedArticleList)
communityAdapter.notifyDataSetChanged()
}

})
override fun onCancelled(error: DatabaseError) {}

})
}
}
}
}
Expand Down
10 changes: 4 additions & 6 deletions app/src/main/res/layout/fragment_community.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,15 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="6"
android:layout_weight="4.7"
android:hint="제목, 글 내용, 태그 등"
android:inputType="textNoSuggestions"/>

<ImageView
android:id="@+id/settingImageView"
<Spinner
android:id="@+id/searchSpinner"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:src="@drawable/ic_baseline_settings_24" />
android:layout_weight="2.3" />

</LinearLayout>

Expand Down
8 changes: 8 additions & 0 deletions app/src/main/res/values/spinner.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="search_spinner">
<item>태그명</item>
<item>제목</item>
<item>내용</item>
</string-array>
</resources>

0 comments on commit 8aa66ca

Please sign in to comment.