From c87c65d5e80e0bcb3b327d746de9ac2b15fa4335 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 25 Jan 2026 23:16:09 +0530 Subject: [PATCH] feat: add font customization --- CHANGELOG.md | 3 +++ .../main/kotlin/org/fossify/clock/views/AutoFitTextView.kt | 5 +++++ app/src/main/kotlin/org/fossify/clock/views/MyTextClock.kt | 5 +++++ app/src/main/res/layout/fragment_clock.xml | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c12c4710..b49593dff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Added support for custom fonts + ### Fixed - Fixed overlap/truncation in stopwatch lap times ([#346]) diff --git a/app/src/main/kotlin/org/fossify/clock/views/AutoFitTextView.kt b/app/src/main/kotlin/org/fossify/clock/views/AutoFitTextView.kt index 1db41d8f8..a0929f2fc 100644 --- a/app/src/main/kotlin/org/fossify/clock/views/AutoFitTextView.kt +++ b/app/src/main/kotlin/org/fossify/clock/views/AutoFitTextView.kt @@ -5,6 +5,7 @@ import android.content.Context import android.util.AttributeSet import android.util.TypedValue import android.widget.TextView +import org.fossify.commons.extensions.applyFontToTextView /** * A simple wrapper TextView that restores the original text size @@ -17,6 +18,10 @@ class AutoFitTextView @JvmOverloads constructor( defStyle: Int = 0, ) : TextView(context, attrs, defStyle) { + init { + if (!isInEditMode) context.applyFontToTextView(this) + } + private var originalTextSize: Float = textSize private var originalWidth: Int = 0 diff --git a/app/src/main/kotlin/org/fossify/clock/views/MyTextClock.kt b/app/src/main/kotlin/org/fossify/clock/views/MyTextClock.kt index baecc40b8..63477eb73 100644 --- a/app/src/main/kotlin/org/fossify/clock/views/MyTextClock.kt +++ b/app/src/main/kotlin/org/fossify/clock/views/MyTextClock.kt @@ -8,6 +8,7 @@ import android.util.AttributeSet import android.widget.TextClock import androidx.annotation.AttrRes import org.fossify.clock.extensions.config +import org.fossify.commons.extensions.applyFontToTextView import java.text.DateFormatSymbols private const val AM_PM_SCALE = 0.4f @@ -18,6 +19,10 @@ class MyTextClock @JvmOverloads constructor( @AttrRes defStyleAttr: Int = android.R.attr.textViewStyle, ) : TextClock(context, attrs, defStyleAttr) { + init { + if (!isInEditMode) context.applyFontToTextView(this) + } + private val amPmStrings by lazy { DateFormatSymbols.getInstance( resources.configuration.locales[0] diff --git a/app/src/main/res/layout/fragment_clock.xml b/app/src/main/res/layout/fragment_clock.xml index c213a8c30..b6affe50b 100644 --- a/app/src/main/res/layout/fragment_clock.xml +++ b/app/src/main/res/layout/fragment_clock.xml @@ -28,7 +28,7 @@ android:textSize="@dimen/clock_text_size" tools:text="00:00:00" /> -