UNPKG

4.54 kBSource Map (JSON)View Raw
1{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/android/StatusBar.ts"],"names":[],"mappings":";;AAAA,qCAMkB;AAClB,qCAKkB;AAGlB,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AACpE,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAE/D,SAAgB,iBAAiB,CAAC,MAAkB;;IAClD,OAAO,OAAA,MAAM,CAAC,gBAAgB,0CAAE,eAAe,KAAI,aAAa,CAAC;AACnE,CAAC;AAFD,8CAEC;AAED,SAAgB,iBAAiB,CAAC,MAAkB;;IAClD,OAAO,OAAA,MAAM,CAAC,gBAAgB,0CAAE,QAAQ,KAAI,eAAe,CAAC;AAC9D,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,kBAAkB,CAAC,MAAkB,EAAE,gBAAwB;IACnF,IAAI,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,MAAM,qCAA4B,CAAC,gBAAgB,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,qCAA4B,CAAC,gBAAgB,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,UAAU,GAAG,MAAM,2BAAkB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,GAAG,MAAM,2BAAkB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,cAAc,GAAc,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,SAAS,KAAK,aAAa,EAAE;QAC/B,sCAAsC;QACtC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC7B,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,yBAAyB,CAAC;KACtD;SAAM;QACL,6DAA6D;QAC7D,IAAI,cAAc,GAAc,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACxF,UAAU,GAAG,qBAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEtD,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,sBAAsB,EAAE,CAAC;QACzD,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,sBAAsB,CAAC;KACnD;IAED,gEAAgE;IAChE,IAAI,cAAc,KAAK,cAAc,EAAE;QACrC,IAAI,kBAAkB,GAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAC1F,UAAU,GAAG,sBAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;KAC5D;IAED,UAAU,GAAG,sBAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAEvD,IAAI;QACF,MAAM,4BAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,4BAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KACnD;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CACb,uEAAuE,UAAU,sBAAsB,UAAU,GAAG,CACrH,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA5CD,gDA4CC","sourcesContent":["import {\n XMLItem,\n getProjectStylesXMLPathAsync,\n readStylesXMLAsync,\n setStylesItem,\n writeStylesXMLAsync,\n} from './Styles';\nimport {\n getProjectColorsXMLPathAsync,\n readColorsXMLAsync,\n setColorItem,\n writeColorsXMLAsync,\n} from './Colors';\nimport { ExpoConfig } from '../Config.types';\n\nconst COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark';\nconst WINDOW_TRANSLUCENT_STATUS = 'android:windowTranslucentStatus';\nconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';\n\nexport function getStatusBarColor(config: ExpoConfig) {\n return config.androidStatusBar?.backgroundColor || 'translucent';\n}\n\nexport function getStatusBarStyle(config: ExpoConfig) {\n return config.androidStatusBar?.barStyle || 'light-content';\n}\n\nexport async function setStatusBarConfig(config: ExpoConfig, projectDirectory: string) {\n let hexString = getStatusBarColor(config);\n let statusBarStyle = getStatusBarStyle(config);\n\n const stylesPath = await getProjectStylesXMLPathAsync(projectDirectory);\n const colorsPath = await getProjectColorsXMLPathAsync(projectDirectory);\n if (!colorsPath || !stylesPath) {\n return false;\n }\n\n let stylesJSON = await readStylesXMLAsync(stylesPath);\n let colorsJSON = await readColorsXMLAsync(colorsPath);\n\n let styleItemToAdd: XMLItem[] = [{ _: '', $: { name: '' } }];\n if (hexString === 'translucent') {\n // translucent status bar set in theme\n styleItemToAdd[0]._ = 'true';\n styleItemToAdd[0].$.name = WINDOW_TRANSLUCENT_STATUS;\n } else {\n // Need to add a color key to colors.xml to use in styles.xml\n let colorItemToAdd: XMLItem[] = [{ _: hexString, $: { name: COLOR_PRIMARY_DARK_KEY } }];\n colorsJSON = setColorItem(colorItemToAdd, colorsJSON);\n\n styleItemToAdd[0]._ = `@color/${COLOR_PRIMARY_DARK_KEY}`;\n styleItemToAdd[0].$.name = COLOR_PRIMARY_DARK_KEY;\n }\n\n // Default is light-content, don't need to do anything to set it\n if (statusBarStyle === 'dark-content') {\n let statusBarStyleItem: XMLItem[] = [{ _: 'true', $: { name: WINDOW_LIGHT_STATUS_BAR } }];\n stylesJSON = setStylesItem(statusBarStyleItem, stylesJSON);\n }\n\n stylesJSON = setStylesItem(styleItemToAdd, stylesJSON);\n\n try {\n await writeColorsXMLAsync(colorsPath, colorsJSON);\n await writeStylesXMLAsync(stylesPath, stylesJSON);\n } catch (e) {\n throw new Error(\n `Error setting Android status bar config. Cannot write colors.xml to ${colorsPath}, or styles.xml to ${stylesPath}.`\n );\n }\n return true;\n}\n"]}
\No newline at end of file