Feature: Source Code Pro as default font

This commit is contained in:
zt515
2017-08-06 20:14:53 +08:00
parent dff650e68e
commit 55f564ac0a
4 changed files with 24 additions and 20 deletions

Binary file not shown.

View File

@ -1,7 +1,6 @@
package io.neoterm.customize.color package io.neoterm.customize.color
import android.content.Context import android.content.Context
import android.util.Log
import io.neoterm.App import io.neoterm.App
import io.neoterm.R import io.neoterm.R
import io.neoterm.frontend.preference.NeoPreference import io.neoterm.frontend.preference.NeoPreference
@ -32,13 +31,14 @@ class ColorSchemeService : NeoService {
private fun extractDefaultColor(context: Context): Boolean { private fun extractDefaultColor(context: Context): Boolean {
try { try {
val asset = context.assets val assets = context.assets
for (i in asset.list("colors")) { assets.list("colors")
val targetFile = File(NeoTermPath.COLORS_PATH, i) .map { File(NeoTermPath.COLORS_PATH, it) }
if (!targetFile.exists()) { .takeWhile { !it.exists() }
asset.open("colors/$i").use { .forEach {
FileUtils.writeFile(targetFile, it) val file = it
} assets.open("colors/${file.name}").use {
FileUtils.writeFile(file, it)
} }
} }
return true return true

View File

@ -4,9 +4,9 @@ import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import io.neoterm.App import io.neoterm.App
import io.neoterm.R import io.neoterm.R
import io.neoterm.frontend.service.NeoService
import io.neoterm.frontend.preference.NeoTermPath
import io.neoterm.frontend.preference.NeoPreference import io.neoterm.frontend.preference.NeoPreference
import io.neoterm.frontend.preference.NeoTermPath
import io.neoterm.frontend.service.NeoService
import io.neoterm.utils.FileUtils import io.neoterm.utils.FileUtils
import java.io.File import java.io.File
@ -25,7 +25,7 @@ class FontService : NeoService {
checkForFiles() checkForFiles()
} }
private val DEFAULT_FONT_NAME = "UbuntuMono" private val DEFAULT_FONT_NAME = "SourceCodePro"
private lateinit var DEFAULT_FONT: NeoFont private lateinit var DEFAULT_FONT: NeoFont
private lateinit var fonts: MutableMap<String, NeoFont> private lateinit var fonts: MutableMap<String, NeoFont>
@ -80,17 +80,21 @@ class FontService : NeoService {
} }
private fun loadDefaultFontFromAsset(context: Context): NeoFont { private fun loadDefaultFontFromAsset(context: Context): NeoFont {
return NeoFont(Typeface.createFromAsset(context.assets, "$DEFAULT_FONT_NAME.ttf")) return NeoFont(Typeface.createFromAsset(context.assets, "fonts/$DEFAULT_FONT_NAME.ttf"))
} }
private fun extractDefaultFont(context: Context, defaultFontFile: File): Boolean { private fun extractDefaultFont(context: Context): Boolean {
try { try {
val assets = context.assets val assets = context.assets
val input = assets.open("$DEFAULT_FONT_NAME.ttf") assets.list("fonts")
return input.use { .map { File(NeoTermPath.FONT_PATH, it) }
FileUtils.writeFile(defaultFontFile, it) .takeWhile { !it.exists() }
true .forEach { file ->
assets.open("fonts/${file.name}").use {
FileUtils.writeFile(file, it)
} }
}
return true
} catch (e: Exception) { } catch (e: Exception) {
return false return false
} }
@ -111,7 +115,7 @@ class FontService : NeoService {
val context = App.get() val context = App.get()
val defaultFontFile = fontFile(DEFAULT_FONT_NAME) val defaultFontFile = fontFile(DEFAULT_FONT_NAME)
if (!defaultFontFile.exists()) { if (!defaultFontFile.exists()) {
if (!extractDefaultFont(context, defaultFontFile)) { if (!extractDefaultFont(context)) {
DEFAULT_FONT = loadDefaultFontFromAsset(context) DEFAULT_FONT = loadDefaultFontFromAsset(context)
fonts.put(DEFAULT_FONT_NAME, DEFAULT_FONT) fonts.put(DEFAULT_FONT_NAME, DEFAULT_FONT)
return return