Skip to content

Commit 3d005a8

Browse files
Feat: Added new fonts
1 parent ad48114 commit 3d005a8

File tree

13 files changed

+43
-4
lines changed

13 files changed

+43
-4
lines changed
184 KB
Binary file not shown.
302 KB
Binary file not shown.
7.56 MB
Binary file not shown.
614 KB
Binary file not shown.

app/src/main/java/com/github/droidworksstudio/mlauncher/data/Constants.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.compose.runtime.Composable
77
import androidx.compose.ui.res.stringResource
88
import androidx.core.content.res.ResourcesCompat
99
import com.github.droidworksstudio.mlauncher.R
10+
import com.github.droidworksstudio.mlauncher.helper.getTrueSystemFont
1011
import java.util.Locale
1112

1213
interface EnumOption {
@@ -363,11 +364,15 @@ object Constants {
363364
Bitter,
364365
Doto,
365366
DroidSans,
367+
FiraCode,
366368
GreatVibes,
369+
Hack,
367370
Lato,
368371
Lobster,
369372
Merriweather,
373+
MiSans,
370374
Montserrat,
375+
NotoSans,
371376
OpenSans,
372377
Pacifico,
373378
Quicksand,
@@ -377,15 +382,19 @@ object Constants {
377382

378383
fun getFont(context: Context): Typeface? {
379384
return when (this) {
380-
System -> Typeface.DEFAULT
385+
System -> getTrueSystemFont()
381386
Bitter -> ResourcesCompat.getFont(context, R.font.bitter)
382387
Doto -> ResourcesCompat.getFont(context, R.font.doto)
388+
FiraCode -> ResourcesCompat.getFont(context, R.font.fira_code)
383389
DroidSans -> ResourcesCompat.getFont(context, R.font.open_sans)
384390
GreatVibes -> ResourcesCompat.getFont(context, R.font.great_vibes)
391+
Hack -> ResourcesCompat.getFont(context, R.font.hack)
385392
Lato -> ResourcesCompat.getFont(context, R.font.lato)
386393
Lobster -> ResourcesCompat.getFont(context, R.font.lobster)
387394
Merriweather -> ResourcesCompat.getFont(context, R.font.merriweather)
395+
MiSans -> ResourcesCompat.getFont(context, R.font.mi_sans)
388396
Montserrat -> ResourcesCompat.getFont(context, R.font.montserrat)
397+
NotoSans -> ResourcesCompat.getFont(context, R.font.noto_sans)
389398
OpenSans -> ResourcesCompat.getFont(context, R.font.open_sans)
390399
Pacifico -> ResourcesCompat.getFont(context, R.font.pacifico)
391400
Quicksand -> ResourcesCompat.getFont(context, R.font.quicksand)
@@ -402,11 +411,15 @@ object Constants {
402411
Bitter -> stringResource(R.string.settings_font_bitter)
403412
Doto -> stringResource(R.string.settings_font_doto)
404413
DroidSans -> stringResource(R.string.settings_font_droidsans)
414+
FiraCode -> stringResource(R.string.settings_font_firacode)
405415
GreatVibes -> stringResource(R.string.settings_font_greatvibes)
416+
Hack -> stringResource(R.string.settings_font_hack)
406417
Lato -> stringResource(R.string.settings_font_lato)
407418
Lobster -> stringResource(R.string.settings_font_lobster)
408419
Merriweather -> stringResource(R.string.settings_font_merriweather)
420+
MiSans -> stringResource(R.string.settings_font_misans)
409421
Montserrat -> stringResource(R.string.settings_font_montserrat)
422+
NotoSans -> stringResource(R.string.settings_font_notosans)
410423
OpenSans -> stringResource(R.string.settings_font_opensans)
411424
Pacifico -> stringResource(R.string.settings_font_pacifico)
412425
Quicksand -> stringResource(R.string.settings_font_quicksand)

app/src/main/java/com/github/droidworksstudio/mlauncher/helper/DialogBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ class DialogBuilder(val context: Context, val activity: Activity) {
182182

183183
// Set text, font, and size
184184
textView.text = itemStrings[position]
185-
textView.typeface = fonts?.getOrNull(position) ?: Typeface.DEFAULT
185+
textView.typeface = fonts?.getOrNull(position) ?: getTrueSystemFont()
186186
textView.textSize = fontSize
187187

188188
return view

app/src/main/java/com/github/droidworksstudio/mlauncher/helper/Utils.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import android.content.res.Resources
1515
import android.graphics.ColorFilter
1616
import android.graphics.PorterDuff
1717
import android.graphics.PorterDuffColorFilter
18+
import android.graphics.Typeface
1819
import android.net.Uri
1920
import android.os.Build
2021
import android.os.Process
@@ -40,6 +41,7 @@ import com.github.droidworksstudio.mlauncher.data.Constants
4041
import com.github.droidworksstudio.mlauncher.data.Prefs
4142
import kotlinx.coroutines.Dispatchers
4243
import kotlinx.coroutines.withContext
44+
import java.io.File
4345
import java.text.SimpleDateFormat
4446
import java.util.Calendar
4547
import java.util.Date
@@ -420,4 +422,24 @@ fun setThemeMode(context: Context, isDark: Boolean, view: View) {
420422

421423
// Apply the background color from styles.xml
422424
view.setBackgroundResource(typedValue.resourceId)
425+
}
426+
427+
fun getTrueSystemFont(): Typeface {
428+
val possibleSystemFonts = listOf(
429+
"/system/fonts/Roboto-Regular.ttf", // Stock Android (Pixel, AOSP)
430+
"/system/fonts/NotoSans-Regular.ttf", // Some Android One devices
431+
"/system/fonts/SamsungOne-Regular.ttf", // Samsung
432+
"/system/fonts/MiSans-Regular.ttf", // Xiaomi MIUI
433+
"/system/fonts/OPSans-Regular.ttf" // OnePlus
434+
)
435+
436+
for (fontPath in possibleSystemFonts) {
437+
val fontFile = File(fontPath)
438+
if (fontFile.exists()) {
439+
return Typeface.createFromFile(fontFile)
440+
}
441+
}
442+
443+
// Fallback to Roboto as a default if no system font is found
444+
return Typeface.DEFAULT
423445
}

app/src/main/java/com/github/droidworksstudio/mlauncher/ui/settings/FeaturesFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.github.droidworksstudio.mlauncher.ui.settings
33
import android.app.admin.DevicePolicyManager
44
import android.content.ComponentName
55
import android.content.Context
6-
import android.graphics.Typeface
76
import android.os.Bundle
87
import android.view.LayoutInflater
98
import android.view.View
@@ -37,6 +36,7 @@ import com.github.droidworksstudio.mlauncher.data.Prefs
3736
import com.github.droidworksstudio.mlauncher.databinding.FragmentSettingsBinding
3837
import com.github.droidworksstudio.mlauncher.helper.AppReloader
3938
import com.github.droidworksstudio.mlauncher.helper.DialogBuilder
39+
import com.github.droidworksstudio.mlauncher.helper.getTrueSystemFont
4040
import com.github.droidworksstudio.mlauncher.helper.isSystemInDarkMode
4141
import com.github.droidworksstudio.mlauncher.helper.setThemeMode
4242
import com.github.droidworksstudio.mlauncher.listener.DeviceAdmin
@@ -178,7 +178,7 @@ class FeaturesFragment : Fragment() {
178178
context = requireContext(),
179179
options = Constants.FontFamily.entries.toTypedArray(),
180180
fonts = Constants.FontFamily.entries.toTypedArray()
181-
.map { it.getFont(requireContext()) ?: Typeface.DEFAULT },
181+
.map { it.getFont(requireContext()) ?: getTrueSystemFont() },
182182
titleResId = R.string.font_family,
183183
onItemSelected = { newFontFamily ->
184184
selectedFontFamily = newFontFamily // Update state
2.4 MB
Binary file not shown.

app/src/main/res/font/hack.ttf

2.5 MB
Binary file not shown.

0 commit comments

Comments
 (0)