Vishnu Shrikar
12/07/2023, 9:42 AMVishnu Shrikar
12/07/2023, 9:42 AM```
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onStart() {
super.onStart()
if (!Settings.canDrawOverlays(this.applicationContext)) {
println("DO NOT RESPECT USERS DESCISION")
Intent().apply {
action = Settings.ACTION_MANAGE_OVERLAY_PERMISSION
}.let {
startActivityForResult(it, 123)
}
}
}
@Deprecated("Deprecated in Java")
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 123) {
val wm: WindowManager = getSystemService(WINDOW_SERVICE) as WindowManager
wm.addView(
voiceMailView(
this.applicationContext
), vmParamsBuilder())
}
}
// @Deprecated("Deprecated in Java")
// override fun onRequestPermissionsResult(
// requestCode: Int,
// permissions: Array<out String>,
// grantResults: IntArray
// ) {
// super.onRequestPermissionsResult(requestCode, permissions, grantResults)
//
// val wm: WindowManager = getSystemService(WINDOW_SERVICE) as WindowManager
// wm.addView(
// voiceMailView(
// this.applicationContext
// ), vmParamsBuilder()
// )
// }
fun vmParamsBuilder() = WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSPARENT,
).apply {
this.gravity = <http://Gravity.TOP|Gravity.TOP> or Gravity.CENTER_HORIZONTAL
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
VoiceMailReaderTheme {
Greeting("Android")
}
}
}
Vishnu Shrikar
12/07/2023, 9:43 AME/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.voicemailreader, PID: 30801
java.lang.IllegalStateException: ViewTreeLifecycleOwner not found from androidx.compose.ui.platform.ComposeView{9e0a35c V.E...... ......I. 0,0-0,0}
at androidx.compose.ui.platform.WindowRecomposer_androidKt.createLifecycleAwareWindowRecomposer(WindowRecomposer.android.kt:349)
at androidx.compose.ui.platform.WindowRecomposer_androidKt.createLifecycleAwareWindowRecomposer$default(WindowRecomposer.android.kt:324)
at androidx.compose.ui.platform.WindowRecomposerFactory$Companion$LifecycleAware$1.createRecomposer(WindowRecomposer.android.kt:168)
at androidx.compose.ui.platform.WindowRecomposerPolicy.createAndInstallWindowRecomposer$ui_release(WindowRecomposer.android.kt:224)
at androidx.compose.ui.platform.WindowRecomposer_androidKt.getWindowRecomposer(WindowRecomposer.android.kt:299)
at androidx.compose.ui.platform.AbstractComposeView.resolveParentCompositionContext(ComposeView.android.kt:240)
at androidx.compose.ui.platform.AbstractComposeView.ensureCompositionCreated(ComposeView.android.kt:247)
at androidx.compose.ui.platform.AbstractComposeView.onAttachedToWindow(ComposeView.android.kt:279)
at android.view.View.dispatchAttachedToWindow(View.java:20767)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3490)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2625)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2138)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8686)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1120)
at android.view.Choreographer.doCallbacks(Choreographer.java:926)
at android.view.Choreographer.doFrame(Choreographer.java:859)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1105)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:346)
at android.os.Looper.loop(Looper.java:475)
at android.app.ActivityThread.main(ActivityThread.java:7889)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
Vishnu Shrikar
12/07/2023, 9:43 AMvide
12/07/2023, 12:48 PMVishnu Shrikar
12/07/2023, 3:39 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 4:02 PMVishnu Shrikar
12/07/2023, 4:20 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 5:37 PMVishnu Shrikar
12/07/2023, 5:38 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 5:40 PMVishnu Shrikar
12/07/2023, 5:41 PMVishnu Shrikar
12/07/2023, 5:42 PMnavczydev
12/07/2023, 6:30 PMVishnu Shrikar
12/07/2023, 6:31 PMnavczydev
12/07/2023, 6:32 PMnavczydev
12/07/2023, 6:32 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:33 PMVishnu Shrikar
12/07/2023, 6:33 PMVishnu Shrikar
12/07/2023, 6:34 PMnavczydev
12/07/2023, 6:35 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:35 PMVishnu Shrikar
12/07/2023, 6:35 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:41 PMVishnu Shrikar
12/07/2023, 6:42 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:42 PMVishnu Shrikar
12/07/2023, 6:42 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:42 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:46 PMVishnu Shrikar
12/07/2023, 6:47 PMVishnu Shrikar
12/07/2023, 6:48 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:50 PMVishnu Shrikar
12/07/2023, 6:51 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:52 PMwhy would they make an api like this, its so specific and not extensible¯\_(ツ)_/¯ lol
Vishnu Shrikar
12/07/2023, 6:52 PMZach Klippenstein (he/him) [MOD]
12/07/2023, 6:52 PMVishnu Shrikar
12/07/2023, 6:53 PM