summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
new file mode 100644
index 000000000..4c947b786
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
@@ -0,0 +1,61 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu
+
+import android.app.Application
+import android.app.NotificationChannel
+import android.app.NotificationManager
+import android.content.Context
+import org.yuzu.yuzu_emu.utils.DirectoryInitialization
+import org.yuzu.yuzu_emu.utils.DocumentsTree
+import org.yuzu.yuzu_emu.utils.GpuDriverHelper
+import java.io.File
+
+fun Context.getPublicFilesDir() : File = getExternalFilesDir(null) ?: filesDir
+
+class YuzuApplication : Application() {
+ private fun createNotificationChannels() {
+ val emulationChannel = NotificationChannel(
+ getString(R.string.emulation_notification_channel_id),
+ getString(R.string.emulation_notification_channel_name),
+ NotificationManager.IMPORTANCE_LOW
+ )
+ emulationChannel.description = getString(R.string.emulation_notification_channel_description)
+ emulationChannel.setSound(null, null)
+ emulationChannel.vibrationPattern = null
+
+ val noticeChannel = NotificationChannel(
+ getString(R.string.notice_notification_channel_id),
+ getString(R.string.notice_notification_channel_name),
+ NotificationManager.IMPORTANCE_HIGH
+ )
+ noticeChannel.description = getString(R.string.notice_notification_channel_description)
+ noticeChannel.setSound(null, null)
+
+ // Register the channel with the system; you can't change the importance
+ // or other notification behaviors after this
+ val notificationManager = getSystemService(NotificationManager::class.java)
+ notificationManager.createNotificationChannel(emulationChannel)
+ notificationManager.createNotificationChannel(noticeChannel)
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ application = this
+ documentsTree = DocumentsTree()
+ DirectoryInitialization.start(applicationContext)
+ GpuDriverHelper.initializeDriverParameters(applicationContext)
+ NativeLibrary.logDeviceInfo()
+
+ createNotificationChannels();
+ }
+
+ companion object {
+ var documentsTree: DocumentsTree? = null
+ lateinit var application: YuzuApplication
+
+ val appContext: Context
+ get() = application.applicationContext
+ }
+}