diff --git a/app/src/main/kotlin/jackall/moncalc/fragment/FruitAnalyze.kt b/app/src/main/kotlin/jackall/moncalc/fragment/FruitAnalyze.kt index daa17fd..ef6d35e 100644 --- a/app/src/main/kotlin/jackall/moncalc/fragment/FruitAnalyze.kt +++ b/app/src/main/kotlin/jackall/moncalc/fragment/FruitAnalyze.kt @@ -1,21 +1,29 @@ package jackall.moncalc.fragment +import android.arch.lifecycle.ViewModelProviders +import android.databinding.DataBindingUtil import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import jackall.moncalc.R +import jackall.moncalc.databinding.FragmentAnalyzeFruitBinding +import jackall.moncalc.viewmodel.FruitAnalyzeViewModel /** * Created by matsumoto_k on 2017/11/04. */ class FruitAnalyze : Fragment() { + lateinit var binding: FragmentAnalyzeFruitBinding + val fruitAnalyzeViewModel by lazy { ViewModelProviders.of(this, FruitAnalyzeViewModel.Factory()).get(FruitAnalyzeViewModel::class.java) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_analyze_fruit, container, false) + binding = DataBindingUtil.inflate(inflater, R.layout.fragment_analyze_fruit, container, false) + binding.fruitAnalyzeViewModel = fruitAnalyzeViewModel + return binding.root } } \ 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 index ad104b7..a0d58d8 100644 --- a/app/src/main/kotlin/jackall/moncalc/model/PieChartModel.kt +++ b/app/src/main/kotlin/jackall/moncalc/model/PieChartModel.kt @@ -28,6 +28,8 @@ val colors = ArrayList() for (c in ColorTemplate.VORDIPLOM_COLORS) colors.add(c) + for (c in ColorTemplate.JOYFUL_COLORS) + colors.add(c) dataSets.colors = colors dataSets.valueTextColor = Color.BLACK } diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt new file mode 100644 index 0000000..f1c8b23 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/FruitAnalyzeViewModel.kt @@ -0,0 +1,107 @@ +package jackall.moncalc.viewmodel + +import android.arch.lifecycle.ViewModel +import android.arch.lifecycle.ViewModelProvider +import android.databinding.BindingAdapter +import android.graphics.Color +import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.RecyclerView +import com.github.mikephil.charting.charts.PieChart +import com.github.mikephil.charting.components.Legend +import com.github.mikephil.charting.data.Entry +import com.github.mikephil.charting.data.PieData +import com.github.mikephil.charting.data.PieEntry +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.db.MonstDataRealmHelper +import jackall.moncalc.db.QuestRecordRealmHelper +import jackall.moncalc.model.PieChartModel +import jackall.moncalc.vo.Fruit +import jackall.moncalc.vo.Grade + +/** + * Created by matsumoto_k on 2017/11/04. + */ +class FruitAnalyzeViewModel : LifecycleViewModel() { + val questRealmHelper = QuestRecordRealmHelper() + val monstDataRealmHelper = MonstDataRealmHelper() + var pieData: PieData + var pieChartModel: PieChartModel +// var items: ArrayList + + init { + val entries = ArrayList() + for (fruitId in 0..5) { + val count = questRealmHelper.countGradeById(fruitId) + if (count > 0) { + entries.add(PieEntry(count.toFloat(), monstDataRealmHelper.findNameById(Grade::class.java, fruitId))) + } + } + 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 + } + + object Adapter { + @JvmStatic + @BindingAdapter("android:fruitPieChart") + fun hoge(mChart: PieChart, pieData: PieData) { + mChart.setEntryLabelColor(Color.BLACK) + mChart.isDrawHoleEnabled = false + mChart.legend.verticalAlignment = Legend.LegendVerticalAlignment.TOP + mChart.legend.horizontalAlignment = Legend.LegendHorizontalAlignment.RIGHT + mChart.legend.orientation = Legend.LegendOrientation.VERTICAL + mChart.isRotationEnabled = false + pieData.setValueFormatter(object : IValueFormatter { + override fun getFormattedValue(value: Float, entry: Entry?, dataSetIndex: Int, viewPortHandler: ViewPortHandler?): String { + return String.format("%.0f", value) + } + }) + mChart.description.text = "わくわくの実ドロップ数" + mChart.data = pieData + } + + @JvmStatic + @BindingAdapter("android:setAnalyzeTempleList") + fun hogehoge(view: RecyclerView, items: ArrayList) { + view.layoutManager = LinearLayoutManager(App.instance) + view.adapter = AnalyzeTempleAdapter(App.instance, items) + } + } + + class Factory() : ViewModelProvider.NewInstanceFactory() { + override fun create(modelClass: Class): T { + return FruitAnalyzeViewModel() as T + } + } + + override fun onDestroy() { + super.onDestroy() + questRealmHelper.close() + monstDataRealmHelper.close() + } +} \ 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 1a6f5d5..12b8a58 100644 --- a/app/src/main/res/layout/fragment_analyze_fruit.xml +++ b/app/src/main/res/layout/fragment_analyze_fruit.xml @@ -1,11 +1,22 @@ - + - + + + + + + android:layout_height="match_parent"> - \ No newline at end of file + + + + \ No newline at end of file