From cde8349654df542df7ec0f3ccd123a0e82192a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96ppen?= Date: Wed, 9 Sep 2020 11:53:44 +0100 Subject: [PATCH] rebrand --- app/src/main/java/oppen/tva/Tva.kt | 2 +- .../ui/modals_menus/overflow/OverflowPopup.kt | 42 +++++++ app/src/main/res/drawable/vector_app_icon.xml | 111 +++++++++++++++++- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 6 +- 5 files changed, 152 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/oppen/tva/Tva.kt b/app/src/main/java/oppen/tva/Tva.kt index 7e91e2a..60a324d 100644 --- a/app/src/main/java/oppen/tva/Tva.kt +++ b/app/src/main/java/oppen/tva/Tva.kt @@ -5,7 +5,7 @@ import android.app.Application class Tva: Application() { companion object{ - const val DEFAULT_HOME_CAPSULE = "gemini://gemini.circumlunar.space/~oppen/tva/index.gmi" + const val DEFAULT_HOME_CAPSULE = "gemini://gemini.circumlunar.space/~oppen/gem/index.gmi" const val GEMINI_USER_SEARCH_BASE = "gemini://gus.guru/search?" const val GEMINI_BACKLINK_BASE = "gemini://gus.guru/backlinks?" } diff --git a/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt b/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt index 6082796..ecf3faa 100644 --- a/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt @@ -1,11 +1,20 @@ package oppen.tva.ui.modals_menus.overflow +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable +import android.text.SpannableStringBuilder +import android.text.style.ImageSpan +import android.view.Menu import android.view.MenuInflater +import android.view.MenuItem import android.view.View import androidx.appcompat.widget.PopupMenu import androidx.core.view.MenuCompat import oppen.tva.R + object OverflowPopup { fun show(view: View?, onMenuOption: (menuId: Int) -> Unit){ @@ -18,7 +27,40 @@ object OverflowPopup { true } MenuCompat.setGroupDividerEnabled(popup.menu, true) + insertMenuItemIcons(view.context, popup) popup.show() } } + + fun insertMenuItemIcons(context: Context, popupMenu: PopupMenu) { + val menu: Menu = popupMenu.menu + if (hasIcon(menu)) { + for (i in 0 until menu.size()) { + insertMenuItemIcon(context, menu.getItem(i)) + } + } + } + + private fun hasIcon(menu: Menu): Boolean { + for (i in 0 until menu.size()) { + if (menu.getItem(i).icon != null) return true + } + return false + } + + /** + * Converts the given MenuItem's title into a Spannable containing both its icon and title. + */ + private fun insertMenuItemIcon(context: Context, menuItem: MenuItem) { + var icon: Drawable = menuItem.icon + if (icon == null) icon = ColorDrawable(Color.TRANSPARENT) + val iconSize = context.resources.getDimensionPixelSize(R.dimen.menu_item_icon_size) + icon.setBounds(0, 0, iconSize, iconSize) + icon.setTint(Color.WHITE) + val imageSpan = ImageSpan(icon) + val ssb = SpannableStringBuilder(" " + menuItem.title) + ssb.setSpan(imageSpan, 1, 2, 0) + menuItem.title = ssb + menuItem.icon = null + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/vector_app_icon.xml b/app/src/main/res/drawable/vector_app_icon.xml index 6cdd984..bf20ab5 100644 --- a/app/src/main/res/drawable/vector_app_icon.xml +++ b/app/src/main/res/drawable/vector_app_icon.xml @@ -1,7 +1,106 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 83a96f1..b4bffc9 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -10,4 +10,5 @@ 18sp 32dp 50dp + 20dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f2b3bd6..231d602 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - Två + Gem gemini:// Enter gemini:// address Enter search term @@ -9,8 +9,8 @@ Gemini address Share Set Home - Home icon by Creative Stall from the Noun Project - Två: Gemini protocol client from Öppenlab + Home icon by Icongeek26 on FlatIcon.com + Gem: Gemini protocol client from Öppenlab GPL v3 Copyright © 2020 Öppenlab GNU General Public License, version 3\n