mirror of
https://github.com/readest/readest.git
synced 2026-04-30 04:20:53 +00:00
This commit is contained in:
parent
6b290f09f5
commit
4f6f45fe8a
10 changed files with 47 additions and 14 deletions
|
|
@ -296,7 +296,11 @@ class NativeBridgePlugin(private val activity: Activity): Plugin(activity) {
|
|||
.trim()
|
||||
fontList.add(fontName)
|
||||
}
|
||||
ret.put("fonts", JSONArray(fontList))
|
||||
var fontDict = JSObject()
|
||||
for (fontName in fontList) {
|
||||
fontDict.put(fontName, fontName)
|
||||
}
|
||||
ret.put("fonts", fontDict)
|
||||
} catch (e: Exception) {
|
||||
ret.put("error", e.message)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,22 +299,24 @@ class NativeBridgePlugin: Plugin {
|
|||
}
|
||||
|
||||
@objc public func get_sys_fonts_list(_ invoke: Invoke) throws {
|
||||
var fontList: [String] = []
|
||||
var fontDict: [String: String] = [:]
|
||||
|
||||
for family in UIFont.familyNames.sorted() {
|
||||
if let localized = getLocalizedDisplayName(familyName: family) {
|
||||
fontList.append(localized)
|
||||
fontDict[family] = localized
|
||||
} else {
|
||||
let fontNames = UIFont.fontNames(forFamilyName: family)
|
||||
if fontNames.isEmpty {
|
||||
fontList.append(family)
|
||||
fontDict[family] = family
|
||||
} else {
|
||||
fontList.append(contentsOf: fontNames)
|
||||
for fontName in fontNames {
|
||||
fontDict[fontName] = family
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
invoke.resolve(["fonts": fontList])
|
||||
invoke.resolve(["fonts": fontDict])
|
||||
}
|
||||
|
||||
@objc public func intercept_keys(_ invoke: Invoke) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
use serde::de::DeserializeOwned;
|
||||
use std::collections::HashMap;
|
||||
use tauri::{plugin::PluginApi, AppHandle, Runtime};
|
||||
|
||||
use crate::models::*;
|
||||
|
|
@ -50,9 +51,9 @@ impl<R: Runtime> NativeBridge<R> {
|
|||
|
||||
pub fn get_sys_fonts_list(&self) -> crate::Result<GetSysFontsListResponse> {
|
||||
let font_collection = font_enumeration::Collection::new().unwrap();
|
||||
let mut fonts = Vec::new();
|
||||
let mut fonts = HashMap::new();
|
||||
for font in font_collection.all() {
|
||||
fonts.push(font.font_name.clone());
|
||||
fonts.insert(font.font_name.clone(), font.family_name.clone());
|
||||
}
|
||||
Ok(GetSysFontsListResponse { fonts, error: None })
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
|
|
@ -69,7 +70,7 @@ pub struct GetStatusBarHeightResponse {
|
|||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GetSysFontsListResponse {
|
||||
pub fonts: Vec<String>,
|
||||
pub fonts: HashMap<String, String>,
|
||||
pub error: Option<String>,
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue