diff --git a/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt b/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt index 82304a8..2afbe05 100644 --- a/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt +++ b/app/src/main/kotlin/jackall/moncalc/db/QuestRecordRealmHelper.kt @@ -34,4 +34,8 @@ override fun findAll(): RealmResults { return realm.where(QuestRecord::class.java).findAll() } + + fun countByAttribute(attribute: Int): Int { + return realm.where(QuestRecord::class.java).equalTo("attribute", attribute).findAll().size + } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/model/PieChartModel.kt b/app/src/main/kotlin/jackall/moncalc/model/PieChartModel.kt new file mode 100644 index 0000000..ad104b7 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/model/PieChartModel.kt @@ -0,0 +1,34 @@ +package jackall.moncalc.model + +import android.graphics.Color +import com.github.mikephil.charting.data.PieData +import com.github.mikephil.charting.data.PieDataSet +import com.github.mikephil.charting.data.PieEntry +import com.github.mikephil.charting.utils.ColorTemplate + +/** + * Created by matsumoto_k on 2017/11/04. + */ +class PieChartModel(entries: ArrayList, labels: String) { + val dataSets = PieDataSet(entries, labels) + val pieData by lazy { + val pieData = PieData(dataSets) + pieData.setValueTextColor(Color.BLACK) + pieData + } + + init { + setDataSetsConfig() + } + + fun setDataSetsConfig() { + dataSets.setSliceSpace(2f) + dataSets.setValueTextSize(15f) + dataSets.setXValuePosition(PieDataSet.ValuePosition.INSIDE_SLICE); + val colors = ArrayList() + for (c in ColorTemplate.VORDIPLOM_COLORS) + colors.add(c) + dataSets.colors = colors + dataSets.valueTextColor = Color.BLACK + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt index bae0ab5..c526036 100644 --- a/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt @@ -7,13 +7,12 @@ import com.github.mikephil.charting.charts.PieChart import com.github.mikephil.charting.components.Legend import com.github.mikephil.charting.data.PieData -import com.github.mikephil.charting.data.PieDataSet import com.github.mikephil.charting.data.PieEntry -import com.github.mikephil.charting.utils.ColorTemplate import jackall.moncalc.App import jackall.moncalc.R import jackall.moncalc.db.MonstDataRealmHelper import jackall.moncalc.db.QuestRecordRealmHelper +import jackall.moncalc.model.PieChartModel /** @@ -25,35 +24,18 @@ val monstDataRealmHelper = MonstDataRealmHelper() val baseTempleName by lazy { App.instance.resources.getStringArray(R.array.base_temple_name) } var pieData: PieData + var pieChartModel: PieChartModel init { - val hoge = HashMap() val entries = ArrayList() - val labels = ArrayList() - questRealmHelper.findAll().forEach { - if (hoge.get(it.attribute) == null) { - hoge.put(it.attribute, 1f) - } else { - hoge.put(it.attribute, hoge.get(it.attribute)!! + 1f) + for (attribute in 0..4) { + val count = questRealmHelper.countByAttribute(attribute) + if (count > 0) { + entries.add(PieEntry(count.toFloat(), baseTempleName.get(attribute))) } } - hoge.forEach { - entries.add(PieEntry(it.value, baseTempleName.get(it.key))) - } - val dataSets = PieDataSet(entries, "") - dataSets.setSliceSpace(2f) - dataSets.setValueTextSize(15f) - dataSets.setXValuePosition(PieDataSet.ValuePosition.INSIDE_SLICE); - val colors = ArrayList() - - for (c in ColorTemplate.VORDIPLOM_COLORS) - colors.add(c) - - dataSets.colors = colors - dataSets.valueTextColor = Color.BLACK - val pieData = PieData(dataSets) - pieData.setValueTextColor(Color.BLACK) - this.pieData = pieData + pieChartModel = PieChartModel(entries, "") + this.pieData = pieChartModel.pieData } object Adapter {