1{"version":3,"file":"withAndroidSplashLegacyMainActivity.js","names":["_configPlugins","data","require","_codeMod","_generateCode","_debug","_interopRequireDefault","_getAndroidSplashConfig","obj","__esModule","default","debug","Debug","SHOW_SPLASH_ID","withAndroidSplashLegacyMainActivity","config","withMainActivity","modResults","contents","setSplashScreenLegacyMainActivity","language","exports","mainActivity","_config$androidStatus","splashConfig","getAndroidSplashConfig","mod","removeContents","src","tag","didClear","statusBarTranslucent","androidStatusBar","translucent","resizeMode","isJava","LE","addImports","match","onCreateBlock","mergeContents","anchor","offset","comment","newSrc","join","split","filter","line","test","toUpperCase"],"sources":["../../../../src/plugins/unversioned/expo-splash-screen/withAndroidSplashLegacyMainActivity.ts"],"sourcesContent":["import { ConfigPlugin, withMainActivity } from '@expo/config-plugins';\nimport { addImports } from '@expo/config-plugins/build/android/codeMod';\nimport { mergeContents, removeContents } from '@expo/config-plugins/build/utils/generateCode';\nimport { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\n\nimport { getAndroidSplashConfig } from './getAndroidSplashConfig';\n\nconst debug = Debug('expo:prebuild-config:expo-splash-screen:android:mainActivity');\n\n// DO NOT CHANGE\nconst SHOW_SPLASH_ID = 'expo-splash-screen-mainActivity-onCreate-show-splash';\n\nexport const withAndroidSplashLegacyMainActivity: ConfigPlugin = (config) => {\n  return withMainActivity(config, (config) => {\n    config.modResults.contents = setSplashScreenLegacyMainActivity(\n      config,\n      config.modResults.contents,\n      config.modResults.language\n    );\n    return config;\n  });\n};\n\nexport function setSplashScreenLegacyMainActivity(\n  config: Pick<ExpoConfig, 'android' | 'androidStatusBar' | 'userInterfaceStyle'>,\n  mainActivity: string,\n  language: 'java' | 'kt'\n): string {\n  debug(`Modify with language: \"${language}\"`);\n  const splashConfig = getAndroidSplashConfig(config);\n\n  if (!splashConfig) {\n    // Remove our generated code safely...\n    const mod = removeContents({\n      src: mainActivity,\n      tag: SHOW_SPLASH_ID,\n    });\n\n    mainActivity = mod.contents;\n    if (mod.didClear) {\n      debug('Removed SplashScreen.show()');\n    }\n    return mainActivity;\n  }\n  // TODO: Translucent is weird\n  const statusBarTranslucent = !!config.androidStatusBar?.translucent;\n\n  const { resizeMode } = splashConfig;\n  const isJava = language === 'java';\n  const LE = isJava ? ';' : '';\n\n  mainActivity = addImports(\n    mainActivity,\n    [\n      'expo.modules.splashscreen.SplashScreen',\n      'expo.modules.splashscreen.SplashScreenImageResizeMode',\n      'android.os.Bundle',\n    ],\n    isJava\n  );\n\n  if (!mainActivity.match(/(?<=^.*super\\.onCreate.*$)/m)) {\n    const onCreateBlock = isJava\n      ? [\n          '    @Override',\n          '    protected void onCreate(Bundle savedInstanceState) {',\n          '      super.onCreate(savedInstanceState);',\n          '    }',\n        ]\n      : [\n          '    override fun onCreate(savedInstanceState: Bundle?) {',\n          '      super.onCreate(savedInstanceState)',\n          '    }',\n        ];\n\n    mainActivity = mergeContents({\n      src: mainActivity,\n      // insert just below super.onCreate\n      anchor: isJava\n        ? /(?<=public\\s+class\\s+.*\\s+extends\\s+.*\\s+{.*$)/m\n        : /(?<=class\\s+.*\\s+:\\s+.*\\s+{.*$)/m,\n      offset: 1,\n      comment: '//',\n      tag: 'expo-splash-screen-mainActivity-onCreate',\n      newSrc: onCreateBlock.join('\\n'),\n    }).contents;\n  }\n\n  // Remove our generated code safely...\n  mainActivity = removeContents({\n    src: mainActivity,\n    tag: SHOW_SPLASH_ID,\n  }).contents;\n\n  // Remove code from `@expo/configure-splash-screen`\n  mainActivity = mainActivity\n    .split('\\n')\n    .filter((line) => {\n      return !/SplashScreen\\.show\\(this,\\s?SplashScreenImageResizeMode\\./.test(line);\n    })\n    .join('\\n');\n\n  // Reapply generated code.\n  mainActivity = mergeContents({\n    src: mainActivity,\n    // insert just below super.onCreate\n    anchor: /(?<=^.*super\\.onCreate.*$)/m,\n    offset: 1,\n    comment: '//',\n    tag: SHOW_SPLASH_ID,\n    newSrc: `    SplashScreen.show(this, SplashScreenImageResizeMode.${resizeMode.toUpperCase()}, ReactRootView${\n      isJava ? '.class' : '::class.java'\n    }, ${statusBarTranslucent})${LE}`,\n  }).contents;\n\n  // TODO: Remove old `SplashScreen.show`\n\n  return mainActivity;\n}\n"],"mappings":"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"}