From d893fe005d9d43e28b2926f8fed4f13165843d3b Mon Sep 17 00:00:00 2001 From: Kisaragi Hiu Date: Tue, 30 Apr 2024 03:36:05 +0900 Subject: android: fix various places still using default Material Teal (#3555) These places include TextInput cursor, TextInput selection, and the spinner (ActivityIndicator) --- the default Material Teal is out of place wherever it shows up. This sets Expo's primaryColor to #1083fe, which is the color that defaultTheme.palette.default.brandText resolves to, then applies it as the native accent color via a plugin because Expo doesn't apply the accent color. --- plugins/withAndroidStylesAccentColorPlugin.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/withAndroidStylesAccentColorPlugin.js (limited to 'plugins/withAndroidStylesAccentColorPlugin.js') diff --git a/plugins/withAndroidStylesAccentColorPlugin.js b/plugins/withAndroidStylesAccentColorPlugin.js new file mode 100644 index 000000000..c45553788 --- /dev/null +++ b/plugins/withAndroidStylesAccentColorPlugin.js @@ -0,0 +1,25 @@ +/** + * @file Set accent color to primaryColor from app.config.js. + * This way we get a sane default color for spinners, text inputs, etc. + */ + +const {withAndroidStyles, AndroidConfig} = require('@expo/config-plugins') + +module.exports = function withAndroidStylesAccentColorPlugin(appConfig) { + return withAndroidStyles(appConfig, function (decoratedAppConfig) { + try { + decoratedAppConfig.modResults = AndroidConfig.Styles.assignStylesValue( + decoratedAppConfig.modResults, + { + add: true, + parent: AndroidConfig.Styles.getAppThemeLightNoActionBarGroup(), + name: 'colorAccent', + value: '@color/colorPrimary', + }, + ) + } catch (e) { + console.error(`withAndroidStylesAccentColorPlugin failed`, e) + } + return decoratedAppConfig + }) +} -- cgit 1.4.1