diff --git a/app/src/main/assets/data.json b/app/src/main/assets/data.json index 2f2622d..bfea10f 100644 --- a/app/src/main/assets/data.json +++ b/app/src/main/assets/data.json @@ -108,103 +108,143 @@ ], "temple": [ { + "attribute": 0, "id": 0, "name": "獄炎の神殿(修羅場)", + "shortName": "獄炎(修羅場)", "rank": 0 }, { + "attribute": 0, "id": 1, "name": "獄炎の神殿(時の間)", + "shortName": "獄炎(時の間)", "rank": 1 }, { + "attribute": 0, "id": 2, "name": "獄炎の神殿(銭の間)", + "shortName": "獄炎(銭の間)", "rank": 2 }, { + "attribute": 0, "id": 3, "name": "獄炎の神殿(秋の間)", + "shortName": "獄炎(秋の間)", "rank": 3 }, { + "attribute": 1, "id": 4, "name": "秘泉の神殿(修羅場)", + "shortName": "秘泉(修羅場)", "rank": 4 }, { + "attribute": 1, "id": 5, "name": "秘泉の神殿(時の間)", + "shortName": "秘泉(時の間)", "rank": 5 }, { + "attribute": 1, "id": 6, "name": "秘泉の神殿(銭の間)", + "shortName": "秘泉(銭の間)", "rank": 6 }, { + "attribute": 1, "id": 7, "name": "秘泉の神殿(秋の間)", + "shortName": "秘泉(秋の間)", "rank": 7 }, { + "attribute": 2, "id": 8, "name": "樹縛の神殿(修羅場)", + "shortName": "樹縛(修羅場)", "rank": 8 }, { + "attribute": 2, "id": 9, "name": "樹縛の神殿(時の間)", + "shortName": "樹縛(時の間)", "rank": 9 }, { + "attribute": 2, "id": 10, "name": "樹縛の神殿(銭の間)", + "shortName": "樹縛(銭の間)", "rank": 10 }, { + "attribute": 2, "id": 11, "name": "樹縛の神殿(秋の間)", + "shortName": "樹縛(秋の間)", "rank": 11 }, { + "attribute": 3, "id": 12, "name": "光明の神殿(修羅場)", + "shortName": "光明(修羅場)", "rank": 12 }, { + "attribute": 3, "id": 13, "name": "光明の神殿(時の間)", + "shortName": "光明(時の間)", "rank": 13 }, { + "attribute": 3, "id": 14, "name": "光明の神殿(銭の間)", + "shortName": "光明(銭の間)", "rank": 14 }, { + "attribute": 3, "id": 15, "name": "光明の神殿(秋の間)", + "shortName": "光明(秋の間)", "rank": 15 }, { + "attribute": 4, "id": 16, "name": "常闇の神殿(修羅場)", + "shortName": "常闇(修羅場)", "rank": 16 }, { + "attribute": 4, "id": 17, "name": "常闇の神殿(時の間)", + "shortName": "常闇(時の間)", "rank": 17 }, { + "attribute": 4, "id": 18, "name": "常闇の神殿(銭の間)", + "shortName": "常闇(銭の間)", "rank": 18 }, { + "attribute": 4, "id": 19, "name": "常闇の神殿(秋の間)", + "shortName": "常闇(秋の間)", "rank": 19 } ], diff --git a/app/src/main/kotlin/jackall/moncalc/db/MonstDataRealmHelper.kt b/app/src/main/kotlin/jackall/moncalc/db/MonstDataRealmHelper.kt index ce5cf41..cd29563 100644 --- a/app/src/main/kotlin/jackall/moncalc/db/MonstDataRealmHelper.kt +++ b/app/src/main/kotlin/jackall/moncalc/db/MonstDataRealmHelper.kt @@ -82,6 +82,14 @@ return "unknown" } + fun findTempleAttributeByRank(rank: Int): Int { + return realm.where(Temple::class.java).equalTo("rank", rank).findFirst().attribute + } + + fun findTempleShortName(id: Int): String { + return realm.where(Temple::class.java).equalTo("id", id).findFirst().shortName + } + fun close() { templeRealmHelper.close() fruitRealmHelper.close() diff --git a/app/src/main/kotlin/jackall/moncalc/fragment/TempleAnalyze.kt b/app/src/main/kotlin/jackall/moncalc/fragment/TempleAnalyze.kt index 00aa32d..86d3d26 100644 --- a/app/src/main/kotlin/jackall/moncalc/fragment/TempleAnalyze.kt +++ b/app/src/main/kotlin/jackall/moncalc/fragment/TempleAnalyze.kt @@ -1,21 +1,30 @@ 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.FragmentAnalyzeTempleBinding +import jackall.moncalc.viewmodel.TempleAnalyzeViewModel + /** * Created by matsumoto_k on 2017/11/03. */ class TempleAnalyze : Fragment() { + lateinit var binding: FragmentAnalyzeTempleBinding + val templeAnalyzeViewModel by lazy { ViewModelProviders.of(this, TempleAnalyzeViewModel.Factory()).get(TempleAnalyzeViewModel::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_temple, container, false) + binding = DataBindingUtil.inflate(inflater, R.layout.fragment_analyze_temple, container, false) + binding.templeAnalyzeViewModel = templeAnalyzeViewModel + return binding.root } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/OverlayRegistViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/OverlayRegistViewModel.kt index ca20324..9a6970c 100644 --- a/app/src/main/kotlin/jackall/moncalc/viewmodel/OverlayRegistViewModel.kt +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/OverlayRegistViewModel.kt @@ -34,6 +34,7 @@ fun onClickRegist(view: View) { questRecordRealmHelper.insert( QuestRecord( + attribute = monstDataRealmHelper.findTempleAttributeByRank(templeRank.get()), templeId = monstDataRealmHelper.findIdByRank(Temple::class.java, templeRank.get()), fruitId = monstDataRealmHelper.findIdByRank(Fruit::class.java, fruitRank.get()), gradeId = monstDataRealmHelper.findIdByRank(Grade::class.java, gradeRank.get()), diff --git a/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt new file mode 100644 index 0000000..bae0ab5 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/viewmodel/TempleAnalyzeViewModel.kt @@ -0,0 +1,86 @@ +package jackall.moncalc.viewmodel + +import android.arch.lifecycle.ViewModel +import android.arch.lifecycle.ViewModelProvider +import android.databinding.BindingAdapter +import android.graphics.Color +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 + + +/** + * Created by matsumoto_k on 2017/11/04. + */ +class TempleAnalyzeViewModel : LifecycleViewModel() { + + val questRealmHelper = QuestRecordRealmHelper() + val monstDataRealmHelper = MonstDataRealmHelper() + val baseTempleName by lazy { App.instance.resources.getStringArray(R.array.base_temple_name) } + var pieData: PieData + + 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) + } + } + 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 + } + + object Adapter { + @JvmStatic + @BindingAdapter("android:pieChart") + 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 + mChart.description.text = "神殿周回割合" + mChart.data = pieData + } + } + + override fun onDestroy() { + super.onDestroy() + questRealmHelper.close() + monstDataRealmHelper.close() + + } + + class Factory() : ViewModelProvider.NewInstanceFactory() { + override fun create(modelClass: Class): T { + return TempleAnalyzeViewModel() as T + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/vo/QuestRecord.kt b/app/src/main/kotlin/jackall/moncalc/vo/QuestRecord.kt index 5af6722..0e3b40a 100644 --- a/app/src/main/kotlin/jackall/moncalc/vo/QuestRecord.kt +++ b/app/src/main/kotlin/jackall/moncalc/vo/QuestRecord.kt @@ -7,6 +7,7 @@ * Created by matsumoto_k on 2017/11/03. */ open class QuestRecord( + open var attribute: Int = -1, open var templeId: Int = -1, open var fruitId: Int = -1, open var gradeId: Int = -1, diff --git a/app/src/main/kotlin/jackall/moncalc/vo/Temple.kt b/app/src/main/kotlin/jackall/moncalc/vo/Temple.kt index eb1ce82..dcd5eba 100644 --- a/app/src/main/kotlin/jackall/moncalc/vo/Temple.kt +++ b/app/src/main/kotlin/jackall/moncalc/vo/Temple.kt @@ -9,6 +9,8 @@ open class Temple( @PrimaryKey open var id: Int = -1, + open var attribute: Int = -1, open var name: String = "", + open var shortName: String = "", open var rank: Int = -1 ) : RealmObject() \ 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 d8fb324..1a6f5d5 100644 --- a/app/src/main/res/layout/fragment_analyze_fruit.xml +++ b/app/src/main/res/layout/fragment_analyze_fruit.xml @@ -1,6 +1,11 @@ - + + \ 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 d8fb324..231aa62 100644 --- a/app/src/main/res/layout/fragment_analyze_temple.xml +++ b/app/src/main/res/layout/fragment_analyze_temple.xml @@ -1,6 +1,21 @@ - + - \ No newline at end of file + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml new file mode 100644 index 0000000..21a984a --- /dev/null +++ b/app/src/main/res/values/arrays.xml @@ -0,0 +1,10 @@ + + + + 獄炎の神殿 + 秘泉の神殿 + 樹縛の神殿 + 光明の神殿 + 常闇の神殿 + + \ No newline at end of file