diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8d92ac4..918c186 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,10 +12,14 @@
android:supportsRtl="true"
android:theme="@style/Theme.CatFlipScreen"
tools:targetApi="31">
+
+
diff --git a/app/src/main/java/net/mezimmah/catflipscreen/FlipScreenService.kt b/app/src/main/java/net/mezimmah/catflipscreen/FlipScreenService.kt
new file mode 100644
index 0000000..6456e71
--- /dev/null
+++ b/app/src/main/java/net/mezimmah/catflipscreen/FlipScreenService.kt
@@ -0,0 +1,41 @@
+package net.mezimmah.catflipscreen
+
+import android.app.Service
+import android.content.Context
+import android.content.Intent
+import android.media.MediaRouter
+import android.os.IBinder
+import android.util.Log
+
+class FlipScreenService : Service() {
+
+ override fun onBind(intent: Intent): IBinder {
+ TODO("Return the communication channel to the service.")
+ }
+
+ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
+ showPresentationScreen()
+
+ return super.onStartCommand(intent, flags, startId)
+ }
+
+ private fun showPresentationScreen() {
+ val selectedRoute =
+ (this.getSystemService(Context.MEDIA_ROUTER_SERVICE) as MediaRouter).getSelectedRoute(1)
+ val presentationDisplay = selectedRoute?.presentationDisplay
+ val mPresentation =
+ PresentationScreen(this, presentationDisplay)
+ Log.i("StatusBar", "Showing presentation on display: $presentationDisplay")
+ try {
+ mPresentation.requestWindowFeature(1)
+ mPresentation.show()
+ Log.i("StatusBar", "Showing presentation.")
+ } catch (e: Exception) {
+ Log.w(
+ "StatusBar",
+ "Couldn't show presentation! Display was removed in the meantime.",
+ e
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/net/mezimmah/catflipscreen/MainActivity.kt b/app/src/main/java/net/mezimmah/catflipscreen/MainActivity.kt
index 8a60853..aa897ca 100644
--- a/app/src/main/java/net/mezimmah/catflipscreen/MainActivity.kt
+++ b/app/src/main/java/net/mezimmah/catflipscreen/MainActivity.kt
@@ -1,5 +1,6 @@
package net.mezimmah.catflipscreen
+import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
@@ -26,7 +27,9 @@ class MainActivity : ComponentActivity() {
}
}
}
+ startService(Intent(this, FlipScreenService::class.java))
}
+
}
@Composable
diff --git a/app/src/main/java/net/mezimmah/catflipscreen/PresentationScreen.kt b/app/src/main/java/net/mezimmah/catflipscreen/PresentationScreen.kt
new file mode 100644
index 0000000..12606b2
--- /dev/null
+++ b/app/src/main/java/net/mezimmah/catflipscreen/PresentationScreen.kt
@@ -0,0 +1,17 @@
+package net.mezimmah.catflipscreen
+
+import android.app.Presentation
+import android.content.Context
+import android.os.Bundle
+import android.view.Display
+
+class PresentationScreen(outerContext: Context?, display: Display?) :
+ Presentation(outerContext, display) {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ setContentView(R.layout.layout_screen)
+
+ }
+}
diff --git a/app/src/main/res/layout/layout_screen.xml b/app/src/main/res/layout/layout_screen.xml
new file mode 100644
index 0000000..f44a377
--- /dev/null
+++ b/app/src/main/res/layout/layout_screen.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file