From ca5465bc756b3c45f518bccbf268c1c555af5eac Mon Sep 17 00:00:00 2001 From: soraefir Date: Fri, 9 Feb 2024 00:12:01 +0100 Subject: [PATCH] Added Stat activity, helpers and cleanup --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 7 + .../helcel/beendroid/activity/EditActivity.kt | 19 +-- .../beendroid/activity/FoldingListAdapter.kt | 50 +++---- .../helcel/beendroid/activity/MainActivity.kt | 13 +- .../beendroid/activity/SettingsActivity.kt | 7 +- .../helcel/beendroid/activity/StatActivity.kt | 127 ++++++++++++++++++ .../net/helcel/beendroid/countries/Visited.kt | 8 +- .../java/net/helcel/beendroid/helper/Data.kt | 7 + .../java/net/helcel/beendroid/helper/Theme.kt | 25 +++- .../net/helcel/beendroid/svg/CSSWrapper.kt | 6 +- .../net/helcel/beendroid/svg/PSVGWrapper.kt | 20 +-- .../drawable-v24/ic_launcher_foreground.xml | 2 +- app/src/main/res/drawable/about.xml | 4 +- app/src/main/res/drawable/chevron.xml | 2 +- .../res/drawable/ic_launcher_background.xml | 2 +- app/src/main/res/layout/activity_main.xml | 1 - app/src/main/res/layout/activity_stat.xml | 13 ++ app/src/main/res/menu/menu_main.xml | 2 +- app/src/main/res/values/colors.xml | 11 +- app/src/main/res/values/en.xml | 3 +- app/src/main/res/values/themes.xml | 6 +- 22 files changed, 229 insertions(+), 107 deletions(-) create mode 100644 app/src/main/java/net/helcel/beendroid/activity/StatActivity.kt create mode 100644 app/src/main/java/net/helcel/beendroid/helper/Data.kt create mode 100644 app/src/main/res/layout/activity_stat.xml diff --git a/app/build.gradle b/app/build.gradle index 6006048..c2d66b2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -52,6 +52,7 @@ dependencies { implementation 'com.caverock:androidsvg-aar:1.4' implementation 'com.github.chrisbanes:PhotoView:2.3.0' + implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' implementation 'com.mikepenz:aboutlibraries:10.10.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 41249f9..41fd8c9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,6 +30,13 @@ + + + + + diff --git a/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt index 73b8445..bc2b996 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt @@ -6,35 +6,24 @@ import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import net.helcel.beendroid.R -import net.helcel.beendroid.activity.fragment.AboutFragment -import net.helcel.beendroid.activity.fragment.LicenseFragment -import net.helcel.beendroid.activity.fragment.SettingsFragment -import net.helcel.beendroid.countries.Visited import net.helcel.beendroid.countries.World -import net.helcel.beendroid.helper.colorPrimary +import net.helcel.beendroid.helper.createActionBar +import net.helcel.beendroid.helper.visited class EditActivity : AppCompatActivity() { private lateinit var list : RecyclerView - private lateinit var visited : Visited override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit) - - // Create action bar - supportActionBar?.setBackgroundDrawable(colorPrimary(this)) - supportActionBar?.title = getString(R.string.action_edit) - supportActionBar?.setDisplayHomeAsUpEnabled(true) - - visited = Visited(this) - visited.load() + createActionBar(this, getString(R.string.action_edit)) list = findViewById(R.id.list) list.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) - list.adapter = FoldingListAdapter(this, World.WWW.children, visited) { } + list.adapter = FoldingListAdapter(this, World.WWW.children, visited!!) } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt b/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt index 6d9ebae..45878ef 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt @@ -1,10 +1,7 @@ package net.helcel.beendroid.activity import android.content.Context -import android.graphics.Color import android.graphics.Typeface -import android.graphics.drawable.ColorDrawable -import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,16 +12,17 @@ import com.google.android.material.checkbox.MaterialCheckBox import net.helcel.beendroid.R import net.helcel.beendroid.countries.GeoLoc import net.helcel.beendroid.countries.Visited +import net.helcel.beendroid.helper.colorBackground +import net.helcel.beendroid.helper.colorPanelBackground import java.util.* class FoldingListAdapter( private val ctx: Context, l: List, private val visited: Visited, - private val parentLambda: () -> Unit, ) : RecyclerView.Adapter() { - private var cg : MutableMap = l.sortedBy { it.fullName }.fold(LinkedHashMap()) { acc, e -> + private val cg : MutableMap = l.sortedBy { it.fullName }.fold(LinkedHashMap()) { acc, e -> acc[e] = false acc } @@ -38,8 +36,8 @@ class FoldingListAdapter( override fun onBindViewHolder(holder: FoldingListViewHolder, position: Int) { val el = cg.toList()[position] - holder.bind(el) { parentLambda() } + holder.bind(el) holder.addListeners( { if (!el.first.isEnd) { cg[el.first] = !el.second @@ -48,7 +46,6 @@ class FoldingListAdapter( !el.first.isEnd }, { visited.setVisited(el.first, it) - parentLambda() }) } @@ -66,47 +63,32 @@ class FoldingListAdapter( private val list: RecyclerView = itemView.findViewById(R.id.list_list) init { list.layoutManager = LinearLayoutManager(ctx, RecyclerView.VERTICAL, false) + list.setItemAnimator(null) //TODO: Fix slow recycler expansion + //list.setHasFixedSize(true) } - fun bind(el: Pair, parentLambda: () -> Unit) { + fun bind(el: Pair) { subItemView.visibility = if (el.second) View.VISIBLE else View.GONE textView.text = el.first.fullName if (el.first.children.isEmpty()) { - val colorBackgroundTyped = TypedValue() - ctx.theme.resolveAttribute( - android.R.attr.colorBackground, - colorBackgroundTyped, - true - ) + textView.backgroundTintList = null - textView.background = ColorDrawable(colorBackgroundTyped.data) + textView.background = colorBackground(ctx) textView.isActivated = false }else { textView.setTypeface(null, Typeface.BOLD) - progressView.text = "${(el.first.children.map { visited.visited(it) }.count { it })}/${el.first.children.size}" + progressView.text = ctx.getString(R.string.rate,(el.first.children.map { visited.getVisited(it) }.count { it }),el.first.children.size) - val colorGrayTyped = TypedValue() - ctx.theme.resolveAttribute( - android.R.attr.panelColorBackground, - colorGrayTyped, - true - ) - val color = Color.valueOf(colorGrayTyped.data) - textView.setBackgroundColor( - Color.valueOf( - color.red(), - color.green(), - color.blue(), - 0.5f - ).toArgb() - ) - list.adapter = FoldingListAdapter(ctx, el.first.children, visited, parentLambda) + textView.background = colorPanelBackground(ctx) + textView.background.alpha = 128 + + list.adapter = FoldingListAdapter(ctx, el.first.children, visited) textView.parent.parent.requestChildFocus(textView, textView) } checkBox.checkedState = - if (visited.visited(el.first)) MaterialCheckBox.STATE_CHECKED - else if (el.first.children.any { visited.visited(it) }) MaterialCheckBox.STATE_INDETERMINATE + if (visited.getVisited(el.first)) MaterialCheckBox.STATE_CHECKED + else if (el.first.children.any { visited.getVisited(it) }) MaterialCheckBox.STATE_INDETERMINATE else MaterialCheckBox.STATE_UNCHECKED } diff --git a/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt index 3383d05..3e07e32 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt @@ -2,9 +2,9 @@ package net.helcel.beendroid.activity import android.content.Intent import android.content.SharedPreferences -import android.graphics.drawable.ColorDrawable import android.graphics.drawable.PictureDrawable import android.os.Bundle +import android.util.Log import android.view.Menu import android.view.MenuInflater import android.view.MenuItem @@ -31,7 +31,6 @@ class MainActivity : AppCompatActivity() { private lateinit var photoView : PhotoView - private lateinit var visited : Visited private lateinit var psvg : PSVGWrapper private lateinit var css : CSSWrapper @@ -63,11 +62,10 @@ class MainActivity : AppCompatActivity() { true } R.id.action_stats -> { - // TODO: Write stats activity + startActivity(Intent(this@MainActivity, StatActivity::class.java)) true } R.id.action_settings -> { - // Open settings startActivity(Intent(this@MainActivity, SettingsActivity::class.java)) true } @@ -80,11 +78,12 @@ class MainActivity : AppCompatActivity() { }) // Restore visited countries - visited = Visited(this) + visited = Visited(this).load() + // Wrap lists of countries psvg = PSVGWrapper(this) - css = CSSWrapper(visited) + css = CSSWrapper(visited!!) // Populate map from list of countries setContentView(R.layout.activity_main) @@ -97,12 +96,10 @@ class MainActivity : AppCompatActivity() { } private fun refreshMap() { - visited.load() val opt : RenderOptions = RenderOptions.create() CoroutineScope(Dispatchers.IO).launch { opt.css(css.get()) } - photoView.setImageLevel(1) photoView.setImageDrawable(PictureDrawable(psvg.get().renderToPicture(opt))) } diff --git a/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt index 4cd9ef4..61323c6 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt @@ -14,13 +14,8 @@ class SettingsActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // Bind activity to XML layout with fragment view setContentView(R.layout.activity_settings) - - // Create action bar - supportActionBar?.setBackgroundDrawable(colorPrimary(this)) - supportActionBar?.title = getString(R.string.action_settings) - supportActionBar?.setDisplayHomeAsUpEnabled(true) + createActionBar(this, getString(R.string.action_settings)) // Populate activity with settings fragment supportFragmentManager.beginTransaction() diff --git a/app/src/main/java/net/helcel/beendroid/activity/StatActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/StatActivity.kt new file mode 100644 index 0000000..582a269 --- /dev/null +++ b/app/src/main/java/net/helcel/beendroid/activity/StatActivity.kt @@ -0,0 +1,127 @@ +package net.helcel.beendroid.activity + +import android.graphics.Color +import android.os.Bundle +import android.util.Log +import android.view.MenuItem +import androidx.appcompat.app.AppCompatActivity +import com.github.mikephil.charting.animation.Easing +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.formatter.PercentFormatter +import com.github.mikephil.charting.utils.ColorTemplate +import com.github.mikephil.charting.utils.MPPointF +import net.helcel.beendroid.R +import net.helcel.beendroid.countries.World +import net.helcel.beendroid.helper.createActionBar +import net.helcel.beendroid.helper.visited + + +class StatActivity : AppCompatActivity() { + + private lateinit var chart : PieChart + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.activity_stat) + createActionBar(this, getString(R.string.action_stat)) + + + chart = findViewById(R.id.chart) + chart.setUsePercentValues(true) + chart.description.isEnabled = false + chart.setExtraOffsets(5F, 10F, 5F, 5F) + + chart.setDragDecelerationFrictionCoef(0.95f) + + chart.centerText = "Country Area" + + chart.isDrawHoleEnabled = true + chart.setTransparentCircleColor(Color.TRANSPARENT) + chart.setHoleColor(Color.TRANSPARENT) + chart.setCenterTextColor(Color.WHITE) + chart.setTransparentCircleAlpha(0) + chart.holeRadius = 40F + chart.transparentCircleRadius = 45F + chart.setDrawCenterText(true) + chart.setRotationAngle(0F) + chart.isRotationEnabled = true + chart.isHighlightPerTapEnabled = false + + + + // chart.spin(2000, 0, 360); + val l: Legend = chart.legend + l.verticalAlignment = Legend.LegendVerticalAlignment.TOP + l.horizontalAlignment = Legend.LegendHorizontalAlignment.RIGHT + l.orientation = Legend.LegendOrientation.VERTICAL + l.setDrawInside(false) + l.xEntrySpace = 7F + l.yEntrySpace = 0F + l.yOffset = 0F + + chart.setEntryLabelColor(Color.WHITE) + chart.setEntryLabelTextSize(12f) + + bind() + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + finish() + return super.onOptionsItemSelected(item) + } + + + private fun bind() { + val entries = ArrayList() + val VIS_continents = World.WWW.children.groupBy { visited!!.getVisited(it) }.map { Pair(it.key,it.value.map { c-> c.area }.fold(0){acc,i-> acc+i}) } + val VIS_country = World.WWW.children.map { it.children }.flatten().groupBy { visited!!.getVisited(it) }.map { Pair(it.key,it.value.map { c-> c.area }.fold(0){acc,i-> acc+i}) } + val vis = VIS_country + Log.d("VIS",vis.toString()) + val max = vis.fold(0,) {acc, i -> acc+i.second} + vis.forEach { + entries.add(PieEntry(it.second.toFloat().div(max.toFloat()),it.first.toString())) + } + val dataSet = PieDataSet(entries, "GG1") + + dataSet.valueTextColor = Color.BLACK + dataSet.sliceSpace = 3f + dataSet.iconsOffset = MPPointF(0f, 40f) + dataSet.selectionShift = 5f + + // add a lot of colors + val colors = ArrayList() + + for (c in ColorTemplate.VORDIPLOM_COLORS) colors.add(c) + + for (c in ColorTemplate.JOYFUL_COLORS) colors.add(c) + + for (c in ColorTemplate.COLORFUL_COLORS) colors.add(c) + + for (c in ColorTemplate.LIBERTY_COLORS) colors.add(c) + + for (c in ColorTemplate.PASTEL_COLORS) colors.add(c) + + colors.add(ColorTemplate.getHoloBlue()) + + dataSet.colors = colors + + val data = PieData(dataSet) + data.setDrawValues(false) + data.setValueFormatter(PercentFormatter()) + data.setValueTextSize(11f) + data.setValueTextColor(Color.BLACK) + chart.setEntryLabelColor(Color.BLACK) + chart.data = data + chart.highlightValues(null) + chart.invalidate() + } + + + + +} \ No newline at end of file diff --git a/app/src/main/java/net/helcel/beendroid/countries/Visited.kt b/app/src/main/java/net/helcel/beendroid/countries/Visited.kt index 4436fb4..50c33cd 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/Visited.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/Visited.kt @@ -11,8 +11,7 @@ class Visited(ctx: Context) { private val pref = ctx.getSharedPreferences("Visited", Context.MODE_PRIVATE) private val editor = pref.edit() - fun load() { - + fun load(): Visited { Group.entries.forEach { locs[it] = pref.getBoolean(it.code, false) } @@ -23,9 +22,10 @@ class Visited(ctx: Context) { locs[it] = pref.getBoolean(it.code, false) } editor.apply() + return this } - fun setVisited(key: GeoLoc, b: Boolean){ + fun setVisited(key: GeoLoc, b: Boolean) { locs[key] = b CoroutineScope(Dispatchers.Main).launch { editor.putBoolean(key.code, b) @@ -33,7 +33,7 @@ class Visited(ctx: Context) { } } - fun visited(key: GeoLoc): Boolean { + fun getVisited(key: GeoLoc): Boolean { return locs.getOrDefault(key,false) } diff --git a/app/src/main/java/net/helcel/beendroid/helper/Data.kt b/app/src/main/java/net/helcel/beendroid/helper/Data.kt new file mode 100644 index 0000000..6c5157b --- /dev/null +++ b/app/src/main/java/net/helcel/beendroid/helper/Data.kt @@ -0,0 +1,7 @@ +package net.helcel.beendroid.helper + +import net.helcel.beendroid.countries.Visited + + +var visited : Visited? = null +//= Visited(this) diff --git a/app/src/main/java/net/helcel/beendroid/helper/Theme.kt b/app/src/main/java/net/helcel/beendroid/helper/Theme.kt index b836acb..02486ce 100644 --- a/app/src/main/java/net/helcel/beendroid/helper/Theme.kt +++ b/app/src/main/java/net/helcel/beendroid/helper/Theme.kt @@ -3,11 +3,28 @@ package net.helcel.beendroid.helper import android.content.Context import android.graphics.drawable.ColorDrawable import android.util.TypedValue +import androidx.appcompat.app.AppCompatActivity - - -fun colorPrimary(ctx : Context): ColorDrawable { +fun colorWrapper(ctx : Context, res: Int): ColorDrawable { val colorPrimaryTyped = TypedValue() - ctx.theme.resolveAttribute(android.R.attr.colorPrimary, colorPrimaryTyped, true) + ctx.theme.resolveAttribute(res, colorPrimaryTyped, true) return ColorDrawable(colorPrimaryTyped.data) } + +fun colorPrimary(ctx : Context): ColorDrawable { + return colorWrapper(ctx, android.R.attr.colorPrimary) +} + +fun colorBackground(ctx : Context): ColorDrawable { + return colorWrapper(ctx, android.R.attr.colorBackground) +} + +fun colorPanelBackground(ctx: Context): ColorDrawable { + return colorWrapper(ctx, android.R.attr.panelColorBackground) +} + +fun createActionBar(ctx: AppCompatActivity, title: String) { + ctx.supportActionBar?.setBackgroundDrawable(colorPrimary(ctx)) + ctx.supportActionBar?.title = title + ctx.supportActionBar?.setDisplayHomeAsUpEnabled(true) +} \ No newline at end of file diff --git a/app/src/main/java/net/helcel/beendroid/svg/CSSWrapper.kt b/app/src/main/java/net/helcel/beendroid/svg/CSSWrapper.kt index 1ad9312..33e96a8 100644 --- a/app/src/main/java/net/helcel/beendroid/svg/CSSWrapper.kt +++ b/app/src/main/java/net/helcel/beendroid/svg/CSSWrapper.kt @@ -9,13 +9,13 @@ class CSSWrapper(private val visited: Visited) { fun get() : String { return listOf(World.WWW.children - .filter { visited.visited(it)} + .filter { visited.getVisited(it)} .map { ".${it.code}{fill:$colorPrimary;}"} .fold(""){acc, s-> acc + s}, World.WWW.children - .filter { !visited.visited(it) } + .filter { !visited.getVisited(it) } .map { cg -> cg.children - .filter { visited.visited(it) } + .filter { visited.getVisited(it) } .map { ".${it.code}{fill:$colorPrimary;}"} .fold(""){acc, s-> acc + s} }.fold(""){acc,s->acc+s}, diff --git a/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt b/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt index 5350c27..6ddb8b2 100644 --- a/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt +++ b/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt @@ -1,30 +1,24 @@ package net.helcel.beendroid.svg import android.content.Context -import android.util.TypedValue +import android.util.Log import com.caverock.androidsvg.SVG +import net.helcel.beendroid.R import net.helcel.beendroid.countries.Country import net.helcel.beendroid.countries.GeoLoc import net.helcel.beendroid.countries.World +import net.helcel.beendroid.helper.colorWrapper +@OptIn(ExperimentalStdlibApi::class) class PSVGWrapper(ctx: Context) { private val cm = HashMap() private var fm = "" - private val colorForeground: String - private val colorBackground: String + private val colorForeground: String = colorWrapper(ctx, R.color.darkgray).color.toHexString().substring(2) + private val colorBackground: String = colorWrapper(ctx, R.color.black).color.toHexString().substring(2) init { - val colorSecondaryTyped = TypedValue() - ctx.theme.resolveAttribute(android.R.attr.panelColorBackground, colorSecondaryTyped, true) - colorForeground = "\"#${Integer.toHexString(colorSecondaryTyped.data).subSequence(2, 8)}\"" - - val colorBackgroundTyped = TypedValue() - ctx.theme.resolveAttribute(android.R.attr.colorBackground, colorBackgroundTyped, true) - colorBackground = "\"#${Integer.toHexString(colorBackgroundTyped.data).subSequence(2, 8)}\"" - - Country.entries.forEach { cm[it] = PSVGLoader(ctx, it, Level.ZERO).load() } @@ -45,7 +39,7 @@ class PSVGWrapper(ctx: Context) { } fun get(): SVG { - return SVG.getFromString("$fm") + return SVG.getFromString("$fm") } } \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index c92c40d..756360c 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -6,7 +6,7 @@ android:viewportHeight="1600" > diff --git a/app/src/main/res/drawable/chevron.xml b/app/src/main/res/drawable/chevron.xml index 6d21775..488b005 100644 --- a/app/src/main/res/drawable/chevron.xml +++ b/app/src/main/res/drawable/chevron.xml @@ -4,6 +4,6 @@ android:viewportWidth="320" android:viewportHeight="512"> diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 01d1b63..7f86e93 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -5,6 +5,6 @@ android:viewportWidth="960" android:viewportHeight="960"> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f8d81bb..80305a2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 19bb106..bd65510 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -14,7 +14,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orderInCategory="100" - android:title="@string/action_stats" + android:title="@string/action_stat" app:showAsAction="never" /> - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03AFFF - #FF0187FF - #FFFFDD00 #FF000000 - #FF555555 - #FFBBBBBB + #FF0C1D2E + #FF93A9BE + #FF3193F5 #FFFFFFFF diff --git a/app/src/main/res/values/en.xml b/app/src/main/res/values/en.xml index 3dc5f7d..e78542a 100644 --- a/app/src/main/res/values/en.xml +++ b/app/src/main/res/values/en.xml @@ -3,7 +3,7 @@ BeenDroid 1.0 Settings - Stats + Stats Edit Welcome! Change language @@ -13,6 +13,7 @@ Dark Licenses About + %1$d/%2$d BeenDroid is free and open source software, licensed under the GNU General Public License (version 3 or later) Project repository: https://git.helcel.net/helcel/beendroid\n Feel free to report issues or contribute to the project. Free and open source dependencies and licenses diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 377d487..4f86374 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,11 +1,9 @@