diff --git a/app/src/main/kotlin/jackall/moncalc/adapter/AnalyzeFruitAdapter.kt b/app/src/main/kotlin/jackall/moncalc/adapter/AnalyzeFruitAdapter.kt new file mode 100644 index 0000000..72d69d9 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/adapter/AnalyzeFruitAdapter.kt @@ -0,0 +1,30 @@ +package jackall.moncalc.adapter + +import android.content.Context +import android.databinding.DataBindingUtil +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.ViewGroup +import jackall.moncalc.R +import jackall.moncalc.databinding.AnalyzeFruitListBinding +import jackall.moncalc.viewmodel.FruitAnalyzeItemViewModel + +/** + * Created by matsumoto_k on 2017/11/05. + */ +class AnalyzeFruitAdapter(val context: Context, val items: ArrayList) : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { + val binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.analyze_fruit_list, parent, false) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder?, position: Int) { + holder?.binding?.viewModel = items.get(position) + } + + override fun getItemCount(): Int { + return items.count() + } + + inner class ViewHolder(val binding: AnalyzeFruitListBinding) : RecyclerView.ViewHolder(binding.root) +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt b/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt index 89aedd1..62374d1 100644 --- a/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt +++ b/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt @@ -47,8 +47,20 @@ val results = realm.where(QuestRecord::class.java).equalTo("drops.gradeId", id).findAll() var count = 0 results.forEach { + count += it.drops.size + } + return count + } + + fun isDrop(fruitId: Int) = realm.where(QuestRecord::class.java).equalTo("drops.fruitId", fruitId).findAll().size > 0 + + fun countGrade(fruitId: Int, gradeId: Int): Int { + val results = realm.where(QuestRecord::class.java).equalTo("drops.fruitId", fruitId).equalTo("drops.gradeId", gradeId).findAll() + println("${fruitId}:${gradeId}") + var count = 0 + results.forEach { it.drops.forEach { - if (it.gradeId == id) + if (it.fruitId == fruitId) count++ } } @@ -60,6 +72,6 @@ } fun getSpecialPercent(templeId: Int): Float { - return (realm.where(QuestRecord::class.java).equalTo("templeId", templeId).sum("specialCount").toFloat() / realm.where(QuestRecord::class.java).equalTo("templeId",templeId).sum("dropCount").toFloat()) * 100 + return (realm.where(QuestRecord::class.java).equalTo("templeId", templeId).sum("specialCount").toFloat() / realm.where(QuestRecord::class.java).equalTo("templeId", templeId).sum("dropCount").toFloat()) * 100 } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeItemViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeItemViewModel.kt new file mode 100644 index 0000000..f5a8c94 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeItemViewModel.kt @@ -0,0 +1,18 @@ +package jackall.moncalc.viewmodel + +import android.arch.lifecycle.ViewModel + +/** + * Created by matsumoto_k on 2017/11/05. + */ +class FruitAnalyzeItemViewModel( + var fruitName: String = "", + var grade0: String = "", + var grade1: String = "", + var grade2: String = "", + var grade3: String = "", + var grade4: String = "", + var grade5: String = "" +) : ViewModel() { + fun isEmpty() = grade0.isBlank() and grade1.isBlank() and grade2.isBlank() and grade3.isBlank() and grade4.isBlank() and grade5.isBlank() +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt index f1c8b23..2f6ca24 100644 --- a/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt @@ -14,7 +14,7 @@ import com.github.mikephil.charting.formatter.IValueFormatter import com.github.mikephil.charting.utils.ViewPortHandler import jackall.moncalc.App -import jackall.moncalc.adapter.AnalyzeTempleAdapter +import jackall.moncalc.adapter.AnalyzeFruitAdapter import jackall.moncalc.db.MonstDataRealmHelper import jackall.moncalc.db.QuestRecordRealmHelper import jackall.moncalc.model.PieChartModel @@ -29,7 +29,7 @@ val monstDataRealmHelper = MonstDataRealmHelper() var pieData: PieData var pieChartModel: PieChartModel -// var items: ArrayList + var items: ArrayList init { val entries = ArrayList() @@ -42,28 +42,33 @@ pieChartModel = PieChartModel(entries, "") this.pieData = pieChartModel.pieData -// val items = ArrayList() -// items.add( -// TempleAnalyzeItemViewModel( -// "総合", -// questRealmHelper.findAll().size.toString(), -// "${String.format("%.1f", questRealmHelper.getAllSpecialPercent())}%" -// ) -// ) - //リストビューに入れる -// monstDataRealmHelper.findAll(Temple::class.java).forEach { -// val count = questRealmHelper.countById(it.id) -// if (count == 0) -// return@forEach -// items.add( -// TempleAnalyzeItemViewModel( -// monstDataRealmHelper.findNameById(Temple::class.java, it.id), -// count.toString(), -// "${String.format("%.1f", questRealmHelper.getSpecialPercent(it.id))}%" -// ) -// ) -// } -// this.items = items + val items = ArrayList() + items.add( + FruitAnalyzeItemViewModel( + "総合", + questRealmHelper.countGradeById(0).toString(), + questRealmHelper.countGradeById(1).toString(), + questRealmHelper.countGradeById(2).toString(), + questRealmHelper.countGradeById(3).toString(), + questRealmHelper.countGradeById(4).toString(), + questRealmHelper.countGradeById(5).toString() + ) + ) +// リストビューに入れる + monstDataRealmHelper.findAll(Fruit::class.java).forEach { + if (!questRealmHelper.isDrop(it.id)) + return@forEach + val item = FruitAnalyzeItemViewModel() + item.fruitName = monstDataRealmHelper.findNameById(Fruit::class.java, it.id) + item.grade0 = questRealmHelper.countGrade(it.id, 0).toString() + item.grade1 = questRealmHelper.countGrade(it.id, 1).toString() + item.grade2 = questRealmHelper.countGrade(it.id, 2).toString() + item.grade3 = questRealmHelper.countGrade(it.id, 3).toString() + item.grade4 = questRealmHelper.countGrade(it.id, 4).toString() + item.grade5 = questRealmHelper.countGrade(it.id, 5).toString() + items.add(item) + } + this.items = items } object Adapter { @@ -86,10 +91,10 @@ } @JvmStatic - @BindingAdapter("android:setAnalyzeTempleList") - fun hogehoge(view: RecyclerView, items: ArrayList) { + @BindingAdapter("android:setFruitTempleList") + fun setAnalyzeFruitList(view: RecyclerView, items: ArrayList) { view.layoutManager = LinearLayoutManager(App.instance) - view.adapter = AnalyzeTempleAdapter(App.instance, items) + view.adapter = AnalyzeFruitAdapter(App.instance, items) } } diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt index 05439ea..23b632e 100644 --- a/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt @@ -90,7 +90,7 @@ @JvmStatic @BindingAdapter("android:setAnalyzeTempleList") - fun hogehoge(view: RecyclerView, items: ArrayList) { + fun setAnalyzeTempleList(view: RecyclerView, items: ArrayList) { view.layoutManager = LinearLayoutManager(App.instance) view.adapter = AnalyzeTempleAdapter(App.instance, items) } diff --git a/app/src/main/res/layout/analyze_fruit_list.xml b/app/src/main/res/layout/analyze_fruit_list.xml new file mode 100644 index 0000000..e35319d --- /dev/null +++ b/app/src/main/res/layout/analyze_fruit_list.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_analyze_fruit.xml b/app/src/main/res/layout/fragment_analyze_fruit.xml index 12b8a58..5910be7 100644 --- a/app/src/main/res/layout/fragment_analyze_fruit.xml +++ b/app/src/main/res/layout/fragment_analyze_fruit.xml @@ -1,5 +1,6 @@ - + @@ -8,15 +9,122 @@ type="jackall.moncalc.viewmodel.FruitAnalyzeViewModel" /> - + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="400dp" + android:layout_marginEnd="8dp" + android:layout_marginStart="8dp" + android:fruitPieChart="@{fruitAnalyzeViewModel.pieData}" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/analyze_fruit_list" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_analyze_temple.xml b/app/src/main/res/layout/fragment_analyze_temple.xml index bd47dfa..f75ad34 100644 --- a/app/src/main/res/layout/fragment_analyze_temple.xml +++ b/app/src/main/res/layout/fragment_analyze_temple.xml @@ -33,7 +33,7 @@ + android:layout_height="match_parent">