package com.unitreactnativecomponents.getapplicationid import android.content.pm.PackageManager import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.unitreactnativecomponents.extensions.getAppIdentifier import com.unitreactnativecomponents.extensions.getAppName import com.unitreactnativecomponents.extensions.getVersionCode import com.unitreactnativecomponents.extensions.getVersionName class UNAppInfoModule(var reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { @ReactMethod fun getAppName(promise: Promise) { try { promise.resolve(reactContext.applicationContext.getAppName()) } catch (e: PackageManager.NameNotFoundException) { promise.reject(e) } } @ReactMethod fun getAppIdentifier(promise: Promise) { try { promise.resolve(reactContext.applicationContext.getAppIdentifier()) } catch (e: PackageManager.NameNotFoundException) { promise.reject(e) } } @ReactMethod fun getVersion(promise: Promise) { try { promise.resolve(reactContext.applicationContext.getVersionName()) } catch (e: PackageManager.NameNotFoundException) { promise.reject(e) } } @ReactMethod fun getBuildNumber(promise: Promise) { try { promise.resolve(reactContext.applicationContext.getVersionCode().toString()) } catch (e: PackageManager.NameNotFoundException) { promise.reject(e) } } @ReactMethod fun readFontFileAsBase64(fileName: String, promise: Promise) { // iOS-only — on Android, fonts are loaded via file:///android_asset/ paths promise.resolve("") } override fun getName(): String { return MODULE_NAME } companion object { private const val MODULE_NAME = "UNAppInfoModule" } }