diff --git a/front/apps/mobile/app.config.js b/front/apps/mobile/app.config.js
deleted file mode 100644
index b0abf42a..00000000
--- a/front/apps/mobile/app.config.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Kyoo - A portable and vast media library solution.
- * Copyright (c) Kyoo.
- *
- * See AUTHORS.md and LICENSE file in the project root for full license information.
- *
- * Kyoo is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * Kyoo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Kyoo. If not, see .
- */
-
-const IS_DEV = process.env.APP_VARIANT === "development";
-
-// Defined outside the config because dark splashscreen needs to be platform specific.
-const splash = {
- image: "./assets/icon.png",
- resizeMode: "contain",
- backgroundColor: "#eff1f5",
- dark: {
- image: "./assets/icon.png",
- resizeMode: "contain",
- backgroundColor: "#1e1e2e",
- },
-};
-
-const config = {
- expo: {
- name: IS_DEV ? "Kyoo Development" : "Kyoo",
- slug: "kyoo",
- scheme: "kyoo",
- version: "1.0.0",
- orientation: "default",
- icon: "./assets/icon.png",
- userInterfaceStyle: "automatic",
- splash,
- assetBundlePatterns: ["**/*"],
- ios: {
- supportsTablet: true,
- },
- android: {
- package: IS_DEV ? "dev.zoriya.kyoo.dev" : "dev.zoriya.kyoo",
- adaptiveIcon: {
- foregroundImage: "./assets/icon.png",
- backgroundColor: "#eff1f5",
- },
- splash,
- },
- updates: {
- url: "https://u.expo.dev/55de6b52-c649-4a15-9a45-569ff5ed036c",
- fallbackToCacheTimeout: 0,
- },
- runtimeVersion: {
- policy: "sdkVersion",
- },
- extra: {
- eas: {
- projectId: "55de6b52-c649-4a15-9a45-569ff5ed036c",
- },
- },
- plugins: ["expo-build-properties", "expo-localization"],
- },
-};
-export default config;
diff --git a/front/apps/mobile/app.config.ts b/front/apps/mobile/app.config.ts
new file mode 100644
index 00000000..ecf8cb7b
--- /dev/null
+++ b/front/apps/mobile/app.config.ts
@@ -0,0 +1,88 @@
+/*
+ * Kyoo - A portable and vast media library solution.
+ * Copyright (c) Kyoo.
+ *
+ * See AUTHORS.md and LICENSE file in the project root for full license information.
+ *
+ * Kyoo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Kyoo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Kyoo. If not, see .
+ */
+
+// import "ts-node/register"; // Add this to import TypeScript files
+import type { ExpoConfig } from "expo/config";
+import { withAndroidManifest } from "expo/config-plugins";
+
+const IS_DEV = process.env.APP_VARIANT === "development";
+
+// Defined outside the config because dark splashscreen needs to be platform specific.
+const splash = {
+ image: "./assets/icon.png",
+ resizeMode: "contain",
+ backgroundColor: "#eff1f5",
+ dark: {
+ image: "./assets/icon.png",
+ resizeMode: "contain",
+ backgroundColor: "#1e1e2e",
+ },
+} as const;
+
+const config: ExpoConfig = {
+ name: IS_DEV ? "Kyoo Development" : "Kyoo",
+ slug: "kyoo",
+ scheme: "kyoo",
+ version: "1.0.0",
+ orientation: "default",
+ icon: "./assets/icon.png",
+ userInterfaceStyle: "automatic",
+ splash,
+ assetBundlePatterns: ["**/*"],
+ ios: {
+ supportsTablet: true,
+ },
+ android: {
+ package: IS_DEV ? "dev.zoriya.kyoo.dev" : "dev.zoriya.kyoo",
+ adaptiveIcon: {
+ foregroundImage: "./assets/icon.png",
+ backgroundColor: "#eff1f5",
+ },
+ splash,
+ permissions: [
+ "android.permission.FOREGROUND_SERVICE",
+ "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK",
+ ],
+ },
+ updates: {
+ url: "https://u.expo.dev/55de6b52-c649-4a15-9a45-569ff5ed036c",
+ fallbackToCacheTimeout: 0,
+ },
+ runtimeVersion: {
+ policy: "sdkVersion",
+ },
+ extra: {
+ eas: {
+ projectId: "55de6b52-c649-4a15-9a45-569ff5ed036c",
+ },
+ },
+ plugins: ["expo-build-properties", "expo-localization"],
+};
+
+const withForegroundService = (c: ExpoConfig): ExpoConfig => {
+ return withAndroidManifest(c, async (config) => {
+ const manifest = config.modResults.manifest;
+ console.log(manifest);
+ // manifest.application!.push();
+ return config;
+ });
+};
+
+export default withForegroundService(config);