This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.

63 lines
2.7 KiB
JavaScript
Raw Normal View History

2021-04-02 02:24:13 +03:00
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const constants_1 = require("../constants");
const xml_manipulation_1 = require("../xml-manipulation");
const DRAWABLE_XML_FILE_PATH = './res/drawable/splashscreen.xml';
function configureDrawable(xml, resizeMode) {
const expected = {
elements: [
{
idx: 0,
comment: `\n This file was created by '@expo/configure-splash-screen' and some of it's content shouldn't be modified by hand\n`,
},
{
name: 'layer-list',
attributes: {
'xmlns:android': 'http://schemas.android.com/apk/res/android',
},
elements: {
newValue: [
{
name: 'item',
attributes: {
'android:drawable': '@color/splashscreen_background',
},
},
].concat(resizeMode !== constants_1.SplashScreenImageResizeMode.NATIVE
? []
: [
{
name: 'item',
elements: [
{
name: 'bitmap',
attributes: {
'android:gravity': 'center',
'android:src': '@drawable/splashscreen_image',
},
},
],
},
]),
},
},
],
};
const result = xml_manipulation_1.mergeXmlElements(xml, expected);
return result;
}
/**
* @param androidMainPath Path to the main directory containing code and resources in Android project. In general that would be `android/app/src/main`.
*/
async function configureDrawableXml(androidMainPath, config = {}) {
const filePath = path_1.default.resolve(androidMainPath, DRAWABLE_XML_FILE_PATH);
const xmlContent = await xml_manipulation_1.readXmlFile(filePath);
const configuredXmlContent = configureDrawable(xmlContent, config.imageResizeMode);
await xml_manipulation_1.writeXmlFile(filePath, configuredXmlContent);
}
exports.default = configureDrawableXml;
//# sourceMappingURL=Drawable.xml.js.map