From c38b7a335c9306286bb0dd31f47b226ec4ba881e Mon Sep 17 00:00:00 2001 From: Tommaso Berlose Date: Sun, 4 Oct 2020 21:19:22 +0200 Subject: [PATCH] Add the font variant --- .gitignore | 1 + .idea/caches/build_file_checksums.ser | Bin 537 -> 537 bytes app/build.gradle | 6 +++ .../anotherwidget/global/Preferences.kt | 1 + .../helpers/SettingsStringHelper.kt | 13 ++++++ .../anotherwidget/helpers/WidgetHelper.kt | 1 + .../ui/activities/CustomFontActivity.kt | 18 ++++++++- .../ui/fragments/GeneralTabFragment.kt | 38 +++++++----------- .../ui/viewmodels/CustomFontViewModel.kt | 3 +- .../ui/viewmodels/MainViewModel.kt | 2 + app/src/main/res/values-it/strings.xml | 11 ++++- app/src/main/res/values/strings.xml | 9 +++++ 12 files changed, 76 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 363f48a..3b9685b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ .externalNativeBuild /tasksintegration/build /app/google-services.json +apikey.properties \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 3fdeb0f28dadb073df25d78f86380b4c52bf0629..8b3d4ea42ccf7493399eac8481d6f431f893de97 100644 GIT binary patch delta 32 ocmbQqGLvP(Oy(crxf|!?FbZy*e^HC)LzKq4gYjlIiZ9hF0NUvdUjP6A delta 32 ocmbQqGLvP(Oy-K>sEu=S7zIOj{Oe%(G~Ma_gGBqNXBTQJ0ON8GOaK4? diff --git a/app/build.gradle b/app/build.gradle index 2b532b5..a002d0d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,7 +10,12 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'realm-android' +def apikeyPropertiesFile = rootProject.file("apikey.properties") +def apikeyProperties = new Properties() +apikeyProperties.load(new FileInputStream(apikeyPropertiesFile)) + android { + compileSdkVersion 29 buildToolsVersion "29.0.3" @@ -22,6 +27,7 @@ android { versionName "2.0.13" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + buildConfigField("String", "GOOGLE_API_KEY", apikeyProperties['GOOGLE_API_KEY']) } buildTypes { diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt index 29ca963..356cda0 100755 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt @@ -94,6 +94,7 @@ object Preferences : KotprefModel() { var customFont by intPref(key = "PREF_CUSTOM_FONT", default = Constants.CUSTOM_FONT_GOOGLE_SANS) var customFontFile by stringPref(default = "") var customFontName by stringPref(default = "") + var customFontVariant by stringPref(default = "") var showNextEvent by booleanPref(key = "PREF_SHOW_NEXT_EVENT", default = true) var showDividers by booleanPref(default = true) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt index bb51343..dd88f73 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/SettingsStringHelper.kt @@ -63,6 +63,19 @@ object SettingsStringHelper { } } + fun getVariantLabel(context: Context, variant: String): String = when { + variant.contains("100") -> context.getString(R.string.font_100) + variant.contains("200") -> context.getString(R.string.font_200) + variant.contains("300") -> context.getString(R.string.font_300) + variant.contains("regular") || variant.contains("400") -> context.getString(R.string.font_400) + variant.contains("500") -> context.getString(R.string.font_500) + variant.contains("600") -> context.getString(R.string.font_600) + variant.contains("700") -> context.getString(R.string.font_700) + variant.contains("800") -> context.getString(R.string.font_800) + variant.contains("900") -> context.getString(R.string.font_900) + else -> context.getString(R.string.font_400) + } + fun getDifferenceText(context: Context, now: Long, start: Long): String { val nowDate = DateTime(now) val eventDate = DateTime(start) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt index d87f7cc..814ee3a 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt @@ -57,6 +57,7 @@ object WidgetHelper { fun runWithCustomTypeface(context: Context, function: (typeface: Typeface?) -> Unit) { if (Preferences.customFontFile != "") { + Log.d("ciao", Preferences.customFontFile) val request = FontRequest( "com.google.android.gms.fonts", "com.google.android.gms", diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt index d8762b7..c3c39dd 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomFontActivity.kt @@ -21,9 +21,12 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.chibatching.kotpref.blockingBulk import com.koolio.library.Font import com.tommasoberlose.anotherwidget.R +import com.tommasoberlose.anotherwidget.components.BottomSheetMenu import com.tommasoberlose.anotherwidget.databinding.ActivityCustomFontBinding import com.tommasoberlose.anotherwidget.global.Constants import com.tommasoberlose.anotherwidget.global.Preferences +import com.tommasoberlose.anotherwidget.helpers.DateHelper +import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper import com.tommasoberlose.anotherwidget.ui.viewmodels.CustomFontViewModel import kotlinx.android.synthetic.main.activity_choose_application.* import kotlinx.coroutines.* @@ -98,7 +101,17 @@ class CustomFontActivity : AppCompatActivity() { } injector.clicked(R.id.text) { - saveFont(item) + if (item.fontVariants.size <= 1) { + saveFont(item) + } else { + val dialog = BottomSheetMenu(this, header = item.fontFamily) + item.fontVariants.filter { !it.contains("italic") }.forEach { + dialog.addItem(SettingsStringHelper.getVariantLabel(this, it), it) + } + dialog.addOnSelectItemListener { value -> + saveFont(item, value) + }.show() + } } } .attachTo(list_view) @@ -154,12 +167,13 @@ class CustomFontActivity : AppCompatActivity() { } } - private fun saveFont(font: Font) { + private fun saveFont(font: Font, variant: String = "") { val resultIntent = Intent() Preferences.blockingBulk { customFont = Constants.CUSTOM_FONT_DOWNLOADED customFontName = font.fontFamily customFontFile = font.queryString + customFontVariant = variant } setResult(Activity.RESULT_OK, resultIntent) finish() diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt index 340def6..62358c5 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/GeneralTabFragment.kt @@ -295,6 +295,20 @@ class GeneralTabFragment : Fragment() { } }) + viewModel.customFontName.observe(viewLifecycleOwner, Observer { + maintainScrollPosition { + custom_font_label?.text = SettingsStringHelper.getCustomFontLabel(requireContext(), Preferences.customFont) + MainWidget.updateWidget(requireContext()) + } + }) + + viewModel.customFontVariant.observe(viewLifecycleOwner, Observer { + maintainScrollPosition { + custom_font_label?.text = SettingsStringHelper.getCustomFontLabel(requireContext(), Preferences.customFont) + MainWidget.updateWidget(requireContext()) + } + }) + viewModel.showDividers.observe(viewLifecycleOwner, Observer { maintainScrollPosition { show_dividers_label?.text = @@ -492,21 +506,10 @@ class GeneralTabFragment : Fragment() { customFont = value customFontFile = "" customFontName = "" + customFontVariant = "" } } }.show() - -/* - val intent = Intent(Intent.ACTION_GET_CONTENT) - intent.type = "* / *" TO FIX WITHOUT SPACE - intent.addCategory(Intent.CATEGORY_OPENABLE) - - try { - startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), Constants.CUSTOM_FONT_CHOOSER_REQUEST_CODE) - } catch (ex: android.content.ActivityNotFoundException) { - Toast.makeText(this, "Please install a File Manager.", Toast.LENGTH_SHORT).show() - } -*/ } action_show_dividers.setOnClickListener { @@ -518,17 +521,6 @@ class GeneralTabFragment : Fragment() { } } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - if (resultCode == Activity.RESULT_OK) { - when (requestCode) { - RequestCode.CUSTOM_FONT_CHOOSER_REQUEST_CODE.code -> { - - } - } - } - super.onActivityResult(requestCode, resultCode, data) - } - private fun maintainScrollPosition(callback: () -> Unit) { scrollView.isScrollable = false callback.invoke() diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomFontViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomFontViewModel.kt index b27fa27..affae88 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomFontViewModel.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomFontViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.viewModelScope import com.koolio.library.DownloadableFontList import com.koolio.library.Font import com.koolio.library.FontList +import com.tommasoberlose.anotherwidget.BuildConfig import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -33,7 +34,7 @@ class CustomFontViewModel(application: Application) : AndroidViewModel(applicati } } - DownloadableFontList.requestDownloadableFontList(fontListCallback, "AIzaSyCT_v2Qw1zCWfmc_ywsovj_4poSXr7k5f0") + DownloadableFontList.requestDownloadableFontList(fontListCallback, BuildConfig.GOOGLE_API_KEY) } } } \ No newline at end of file diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt index 1944edc..e3e7760 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt @@ -25,6 +25,8 @@ class MainViewModel : ViewModel() { val textShadowDark = Preferences.asLiveData(Preferences::textShadowDark) val customFont = Preferences.asLiveData(Preferences::customFont) val customFontFile = Preferences.asLiveData(Preferences::customFontFile) + val customFontName = Preferences.asLiveData(Preferences::customFontName) + val customFontVariant = Preferences.asLiveData(Preferences::customFontVariant) val secondRowInformation = Preferences.asLiveData(Preferences::secondRowInformation) val showDividers = Preferences.asLiveData(Preferences::showDividers) val secondRowTopMargin = Preferences.asLiveData(Preferences::secondRowTopMargin) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 465ed7d..e235bc6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -27,7 +27,16 @@ Formato data Sfondo widget Margine - Cerca font... + Cerca font… + Thin + Leggero + Lettura + Normale + Medio + Semigrassetto + Grassetto + Nero + Molto nero Calendario diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f2f2b5d..ad7f8c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,15 @@ Widget background Margin Custom font... + Thin + Light + Book + Regular + Medium + Semi-bold + Bold + Black + Heavy Calendar