question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

biometric prompt sometimes appearts twice

See original GitHub issue

Home Assistant Android version: beta-2000-2e0700f7-full Android version: 11 Phone model: OnePlus 8T Home Assistant version: core-2022.2.0b5 Last working Home Assistant release (if known): unknown Description of problem:

I have a fingerprint lock setting set. Occasionally (but noticeable) when I open the application, I get the blurred screen and the biometric prompt created at https://github.com/home-assistant/android/blob/be3b414fa97e6b83eb5e5f40e3fd9ef701b63363/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt#L877 After I perform a successful login with my fingerprint, the blur is disabled, and then the prompt appears again immediately (with the same title, which means it has to originate from the same line of code above). At this point, I can click outside of the prompt to make it go away, or I can authenticate again, in any case, I gain access to the app (as I mentioned, the blur is already gone)

**Traceback:**
01-31 23:33:01.798 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:01.798 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:01.806 28623 28623 V ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
01-31 23:33:01.806 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:01.836 28623 28623 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
01-31 23:33:01.838 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:01.838 28623 28623 D UrlRepository: Using external URL
01-31 23:33:01.838 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:01.840 28623 31162 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:01.848 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@e11493f[LaunchActivity]
01-31 23:33:01.849 28623 28623 D ViewRootImpl[LaunchActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:01.870 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:01.870 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:01.874 28623 28623 D PhoneWindow: setNavigationBarColor: ff111111
01-31 23:33:01.876 28623 28623 I System.out: recordForce value 5
01-31 23:33:01.876 28623 28623 D WebviewActivity: Current webview package com.google.android.webview and version 97.0.4692.98
01-31 23:33:01.879 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:01.900 28623 28623 V ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
01-31 23:33:01.903 28623 28623 D ViewRootImpl[LaunchActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:01.907 28623 28623 D OpScreenModeManager: setRefreshRate parent com.google.android.exoplayer2.ui.AspectRatioFrameLayout{ae823da V.E...... ......I. 0,0-0,0 #7f0a00e6 app:id/exo_content_frame} parent width 0 parent height 0 mRatio 1.2
01-31 23:33:01.907 28623 28623 D OpScreenModeManager: setRefreshRate view android.view.SurfaceView{780e985 G.E...... ......I. 0,0-0,0} viewRate 0 width 0 height 0
01-31 23:33:01.920 28623 28623 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
01-31 23:33:01.929 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@697eee8[WebViewActivity]
01-31 23:33:01.929 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:01.931 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:01.932 28623 31162 D SensorWorker: Updating all Sensors.
01-31 23:33:01.934 28623 28689 I WM-Processor: Moving WorkSpec (f18e0887-2907-4035-93bd-3541a5de7d6a) to the foreground
01-31 23:33:01.947 28623 28623 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) }
01-31 23:33:01.948 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:01.948 28623 28623 D UrlRepository: Using external URL
01-31 23:33:01.954 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:02.041 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:02.116 28623 17282 D LocBroadcastReceiver: High accuracy mode disabled, because bluetooth device(s) (false) not connected
01-31 23:33:02.158 28623 16295 D NextAlarm: Next alarm is scheduled by com.oneplus.deskclock with trigger time 1643697000000
01-31 23:33:02.185 28623 16295 D SensorReceiver: Nothing to update
01-31 23:33:02.185 28623 28691 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=f18e0887-2907-4035-93bd-3541a5de7d6a, tags={ io.homeassistant.companion.android.sensors.SensorWorker } ]
01-31 23:33:02.277 28623 28623 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
01-31 23:33:02.356 28623  9518 D WebviewActivity: External bus {"type":"config/get","id":1}
01-31 23:33:02.356 28623 28623 D WebviewActivity: externalBus({"id":1,"type":"result","success":true,"result":{"hasSettingsScreen":true,"canWriteTag":true,"hasExoPlayer":true}});
01-31 23:33:02.375 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:02.375 28623 28623 D UrlRepository: Using external URL
01-31 23:33:02.378 28623 28623 D WebviewActivity: Callback null
01-31 23:33:02.378 28623 28623 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111"
01-31 23:33:02.378 28623 28623 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111"
01-31 23:33:02.379 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#101e24".
01-31 23:33:02.379 28623 16295 I WebViewPresenterImpl: Found color -15720924.
01-31 23:33:02.379 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#111111".
01-31 23:33:02.379 28623 16295 I WebViewPresenterImpl: Found color -15658735.
01-31 23:33:02.381 28623 28623 D PhoneWindow: setNavigationBarColor: ff111111
01-31 23:33:02.569 28623  9518 D WebviewActivity: External bus {"type":"connection-status","payload":{"event":"connected"},"id":2}
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: Issue getting version/notifying of security issue.
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: java.lang.NumberFormatException: For input string: "0b4"
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at java.lang.Integer.parseInt(Integer.java:615)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at java.lang.Integer.parseInt(Integer.java:650)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl$checkSecurityVersion$1.invokeSuspend(WebViewPresenterImpl.kt:77)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at android.os.Handler.handleCallback(Handler.java:938)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at android.os.Looper.loop(Looper.java:233)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at android.app.ActivityThread.main(ActivityThread.java:8030)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at java.lang.reflect.Method.invoke(Native Method)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
01-31 23:33:02.569 28623 28623 E WebViewPresenterImpl: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
01-31 23:33:02.786 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:02.798 28623  9518 D WebviewActivity: External bus {"type":"theme-update","id":3}
01-31 23:33:02.870 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:02.891 28623 28623 D WebviewActivity: Color from webview is "rgba(63, 36, 75, 0.4)-SPACER-#2c2c2e"
01-31 23:33:02.891 28623 28623 D WebviewActivity: Color from webview is "rgba(63, 36, 75, 0.4)-SPACER-#2c2c2e"
01-31 23:33:02.892 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "rgba(63, 36, 75, 0.4)".
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: Could not get color from webview.
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: java.lang.IllegalArgumentException: Unknown color
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at android.graphics.Color.parseColor(Color.java:1400)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl.parseColorWithRgb(WebViewPresenterImpl.kt:212)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl.access$parseColorWithRgb(WebViewPresenterImpl.kt:25)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl$parseWebViewColor$2.invokeSuspend(WebViewPresenterImpl.kt:187)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
01-31 23:33:02.892 28623 16295 W WebViewPresenterImpl: Couldn't get color.
01-31 23:33:02.902 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#2c2c2e".
01-31 23:33:02.904 28623 16295 I WebViewPresenterImpl: Found color -13882322.
01-31 23:33:02.909 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:02.913 28623 28623 E WebviewActivity: Cannot set status bar color 0. Skipping coloring...
01-31 23:33:02.913 28623 28623 D PhoneWindow: setNavigationBarColor: ff2c2c2e
01-31 23:33:02.946 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:02.986 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:03.044 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:03.128 28623  9225 I 111     :  OptJank - high percentage:1
01-31 23:33:03.159 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:03.202 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:03.277 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:03.471 28623 28623 D WebviewActivity: Authentication successful, unlocking app
01-31 23:33:03.478 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@697eee8[WebViewActivity]
01-31 23:33:03.479 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:03.483 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:03.483 28623 28623 D UrlRepository: Using external URL
01-31 23:33:04.584 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:04.591 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:04.600 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:04.675 28623 16295 D SensorWorker: Updating all Sensors.
01-31 23:33:04.678 28623 28691 I WM-Processor: Moving WorkSpec (5d425038-61a8-4d81-add4-96785fb1481c) to the foreground
01-31 23:33:04.691 28623 28623 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) }
01-31 23:33:04.794 28623 28623 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
01-31 23:33:04.814 28623 28623 D LocBroadcastReceiver: Not requesting accurate location, last accurate location was too recent
01-31 23:33:04.827 28623 31162 D LocBroadcastReceiver: High accuracy mode disabled, because bluetooth device(s) (false) not connected
01-31 23:33:04.845 28623 16295 D NextAlarm: Next alarm is scheduled by com.oneplus.deskclock with trigger time 1643697000000
01-31 23:33:04.865 28623 16295 D SensorReceiver: Nothing to update
01-31 23:33:04.866 28623 28658 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=5d425038-61a8-4d81-add4-96785fb1481c, tags={ io.homeassistant.companion.android.sensors.SensorWorker } ]
01-31 23:33:05.326 28623 28623 D OpScreenModeManager: setRefreshRate parent com.google.android.exoplayer2.ui.AspectRatioFrameLayout{ae823da V.E...... ......I. 0,0-0,0 #7f0a00e6 app:id/exo_content_frame} parent width 0 parent height 0 mRatio 1.2
01-31 23:33:05.327 28623 28623 D OpScreenModeManager: setRefreshRate view android.view.SurfaceView{780e985 G.E...... ......I. 0,0-0,0} viewRate 0 width 0 height 0
01-31 23:33:06.114 28623 28623 V ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
01-31 23:33:06.128 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:06.136 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:06.156 28623 28623 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
01-31 23:33:06.158 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:06.158 28623 28623 D UrlRepository: Using external URL
01-31 23:33:06.159 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:06.163 28623 16295 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:06.178 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@3af78db[LaunchActivity]
01-31 23:33:06.179 28623 28623 D ViewRootImpl[LaunchActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:06.204 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:06.204 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:06.208 28623 28623 D PhoneWindow: setNavigationBarColor: ff111111
01-31 23:33:06.210 28623 28623 I System.out: recordForce value 5
01-31 23:33:06.210 28623 28623 D WebviewActivity: Current webview package com.google.android.webview and version 97.0.4692.98
01-31 23:33:06.212 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:06.214 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:06.234 28623 28623 V ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
01-31 23:33:06.237 28623 28623 D ViewRootImpl[LaunchActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:06.244 28623 28623 D OpScreenModeManager: setRefreshRate parent com.google.android.exoplayer2.ui.AspectRatioFrameLayout{8d1e013 V.E...... ......I. 0,0-0,0 #7f0a00e6 app:id/exo_content_frame} parent width 0 parent height 0 mRatio 1.2
01-31 23:33:06.244 28623 28623 D OpScreenModeManager: setRefreshRate view android.view.SurfaceView{7b17f02 G.E...... ......I. 0,0-0,0} viewRate 0 width 0 height 0
01-31 23:33:06.259 28623 28623 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
01-31 23:33:06.267 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@4c26c49[WebViewActivity]
01-31 23:33:06.268 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:06.270 28623 16295 D SensorWorker: Updating all Sensors.
01-31 23:33:06.272 28623 28689 I WM-Processor: Moving WorkSpec (4527c91f-d3ff-41e2-940b-5bf601e09ad9) to the foreground
01-31 23:33:06.275 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:06.275 28623 28623 D UrlRepository: Using external URL
01-31 23:33:06.297 28623 28623 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) }
01-31 23:33:06.354 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:06.378 28623 28623 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
01-31 23:33:06.436 28623 17282 D LocBroadcastReceiver: High accuracy mode disabled, because bluetooth device(s) (false) not connected
01-31 23:33:06.440 28623 28623 D LocBroadcastReceiver: Not requesting accurate location, last accurate location was too recent
01-31 23:33:06.479 28623 16295 D NextAlarm: Next alarm is scheduled by com.oneplus.deskclock with trigger time 1643697000000
01-31 23:33:06.508 28623 16295 D SensorReceiver: Nothing to update
01-31 23:33:06.509 28623 28658 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=4527c91f-d3ff-41e2-940b-5bf601e09ad9, tags={ io.homeassistant.companion.android.sensors.SensorWorker } ]
01-31 23:33:06.552 28623  9518 D WebviewActivity: External bus {"type":"config/get","id":1}
01-31 23:33:06.552 28623 28623 D WebviewActivity: externalBus({"id":1,"type":"result","success":true,"result":{"hasSettingsScreen":true,"canWriteTag":true,"hasExoPlayer":true}});
01-31 23:33:06.566 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:06.566 28623 28623 D UrlRepository: Using external URL
01-31 23:33:06.567 28623 28623 D WebviewActivity: Callback null
01-31 23:33:06.567 28623 28623 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111"
01-31 23:33:06.567 28623 28623 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111"
01-31 23:33:06.567 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#101e24".
01-31 23:33:06.567 28623 16295 I WebViewPresenterImpl: Found color -15720924.
01-31 23:33:06.567 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#111111".
01-31 23:33:06.567 28623 16295 I WebViewPresenterImpl: Found color -15658735.
01-31 23:33:06.568 28623 28623 D PhoneWindow: setNavigationBarColor: ff111111
01-31 23:33:06.695 28623  9518 D WebviewActivity: External bus {"type":"connection-status","payload":{"event":"connected"},"id":2}
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: Issue getting version/notifying of security issue.
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: java.lang.NumberFormatException: For input string: "0b4"
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at java.lang.Integer.parseInt(Integer.java:615)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at java.lang.Integer.parseInt(Integer.java:650)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl$checkSecurityVersion$1.invokeSuspend(WebViewPresenterImpl.kt:77)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at android.os.Handler.handleCallback(Handler.java:938)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at android.os.Looper.loop(Looper.java:233)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at android.app.ActivityThread.main(ActivityThread.java:8030)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at java.lang.reflect.Method.invoke(Native Method)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
01-31 23:33:06.695 28623 28623 E WebViewPresenterImpl: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
01-31 23:33:06.747 28623  9518 D WebviewActivity: External bus {"type":"theme-update","id":3}
01-31 23:33:06.750 28623 28623 D WebviewActivity: Color from webview is "rgba(63, 36, 75, 0.4)-SPACER-#2c2c2e"
01-31 23:33:06.750 28623 28623 D WebviewActivity: Color from webview is "rgba(63, 36, 75, 0.4)-SPACER-#2c2c2e"
01-31 23:33:06.750 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "rgba(63, 36, 75, 0.4)".
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: Could not get color from webview.
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: java.lang.IllegalArgumentException: Unknown color
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at android.graphics.Color.parseColor(Color.java:1400)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl.parseColorWithRgb(WebViewPresenterImpl.kt:212)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl.access$parseColorWithRgb(WebViewPresenterImpl.kt:25)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at io.homeassistant.companion.android.webview.WebViewPresenterImpl$parseWebViewColor$2.invokeSuspend(WebViewPresenterImpl.kt:187)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
01-31 23:33:06.750 28623 16295 W WebViewPresenterImpl: Couldn't get color.
01-31 23:33:06.750 28623 16295 D WebViewPresenterImpl: Try getting color from webview color "#2c2c2e".
01-31 23:33:06.751 28623 16295 I WebViewPresenterImpl: Found color -13882322.
01-31 23:33:06.751 28623 28623 E WebviewActivity: Cannot set status bar color 0. Skipping coloring...
01-31 23:33:06.751 28623 28623 D PhoneWindow: setNavigationBarColor: ff2c2c2e
01-31 23:33:06.899 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:06.931 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:07.077 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:07.077 28623  9225 I 111     :  OptJank - high percentage:0.75
01-31 23:33:07.165 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:07.271 28623 28638 W System  : A resource failed to call destroy. 
01-31 23:33:07.271 28623 28638 W System  : A resource failed to call destroy. 
01-31 23:33:07.642 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:07.708 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@4c26c49[WebViewActivity]
01-31 23:33:07.709 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:07.762 28623 28623 D WebviewActivity: Authentication successful, unlocking app
01-31 23:33:07.764 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:07.764 28623 28623 D UrlRepository: Using external URL
01-31 23:33:07.774 28623  9225 I 111     :  OptJank - continuously drops frames:4
01-31 23:33:07.882 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:07.933 28623  9225 I 111     :  OptJank - high percentage:0.7
01-31 23:33:09.513 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@4c26c49[WebViewActivity]
01-31 23:33:09.513 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:09.516 28623 28623 D UrlRepository: localUrl is: false and usesInternalSsid is: true
01-31 23:33:09.516 28623 28623 D UrlRepository: Using external URL
01-31 23:33:14.741 28623  9518 D WebviewActivity: External bus {"type":"config_screen/show","id":4}
01-31 23:33:14.752 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:14.767 28623 28623 D UrlRepository: Using external URL
01-31 23:33:14.767 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 2 lines
01-31 23:33:14.767 28623 28623 D UrlRepository: Using external URL
01-31 23:33:14.771 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.774 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:14.775 28623 28623 V ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
01-31 23:33:14.778 28623 28623 D ViewRootImpl[WebViewActivity]: windowFocusChanged hasFocus=false inTouchMode=true
01-31 23:33:14.807 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.810 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 42 lines
01-31 23:33:14.810 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.813 28623 28623 W Choreographer: Already have a pending vsync event.  There should only be one at a time.
01-31 23:33:14.815 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.817 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 14 lines
01-31 23:33:14.817 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.817 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.817 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.817 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 3 lines
01-31 23:33:14.817 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.827 28623 28623 D DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@6b87d8b[SettingsActivity]
01-31 23:33:14.827 28623 28623 D ViewRootImpl[SettingsActivity]: windowFocusChanged hasFocus=true inTouchMode=true
01-31 23:33:14.838 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.839 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 20 lines
01-31 23:33:14.839 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.842 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:14.843 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.845 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 20 lines
01-31 23:33:14.845 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.847 28623 28050 E sqlite3_android: ONEPLUS_NAME_PARTS_MATCH SQLITE_OK
01-31 23:33:14.848 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.848 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 2 lines
01-31 23:33:14.848 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.848 28623 16295 D SensorWorker: Updating all Sensors.
01-31 23:33:14.849 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.850 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 11 lines
01-31 23:33:14.850 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.850 28623 28689 I WM-Processor: Moving WorkSpec (f1eed858-d2ee-463d-bc46-45aa7cb6b240) to the foreground
01-31 23:33:14.850 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.850 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 3 lines
01-31 23:33:14.850 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:14.856 28623 28623 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) }
01-31 23:33:14.898 28623 28623 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
01-31 23:33:14.905 28623 28623 D LocBroadcastReceiver: Not requesting accurate location, last accurate location was too recent
01-31 23:33:14.910 28623 31162 D LocBroadcastReceiver: High accuracy mode disabled, because bluetooth device(s) (false) not connected
01-31 23:33:14.926 28623 16295 D NextAlarm: Next alarm is scheduled by com.oneplus.deskclock with trigger time 1643697000000
01-31 23:33:14.939 28623 16295 D SensorReceiver: Nothing to update
01-31 23:33:14.940 28623 28691 I WM-WorkerWrapper: Worker result SUCCESS for Work [ id=f1eed858-d2ee-463d-bc46-45aa7cb6b240, tags={ io.homeassistant.companion.android.sensors.SensorWorker } ]
01-31 23:33:15.075 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.076 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 12 lines
01-31 23:33:15.077 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.077 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.078 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 5 lines
01-31 23:33:15.078 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.078 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.079 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:15.081 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 20 lines
01-31 23:33:15.081 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:16.008 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:16.057 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 10 lines
01-31 23:33:16.057 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:16.066 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:16.743 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 96 lines
01-31 23:33:16.743 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:17.678 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:18.117 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 28 lines
01-31 23:33:18.117 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:18.124 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:18.218 28623 28623 I chatty  : uid=10241(io.homeassistant.companion.android) identical 105 lines
01-31 23:33:18.218 28623 28623 E mpanion.androi: Invalid ID 0x00000000.
01-31 23:33:18.242 28623 16295 D LogcatReader: Read logcat for pid 28623

Additional information:

I looked at the logs (See above traceback), and the strange thing is, that when it happens, and I use my fingerprint in the second appearance, the logline from https://github.com/home-assistant/android/blob/be3b414fa97e6b83eb5e5f40e3fd9ef701b63363/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt#L859 doesn’t appear twice, which baffles me… I tried to look online and I ran roughly through the code and I can’t see how this scenario is even possible… In the attached logs above, the first appearance of Authentication successful, unlocking app marks an authentication that didn’t have the second appearance in it. The second appearance of Authentication successful, unlocking app is the time I opened the app and the issue happened. Please ping me if you need any more information.

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:1
  • Comments:7 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
regevbrcommented, Feb 1, 2022

it does show the text and takes half the screen, but the recorder for some reason blacks out the screen (only in the recording) I can’t even take a screenshot when the prompt is shown to prove it to you - the os blocks it haha Just tried with the default theme and it happens again 😦

0reactions
leroylorencommented, Apr 2, 2022

Pixel 6/Android 12L same issue.

*version beta-2218-e4c069f7-full

04-02 11:41:36.003 29685 29871 D WebviewActivity: External bus {"type":"connection-status","payload":{"event":"connected"},"id":2} 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: Issue getting version/notifying of security issue. 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: java.lang.NumberFormatException: For input string: "0b1" 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at java.lang.Integer.parseInt(Integer.java:615) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at java.lang.Integer.parseInt(Integer.java:650) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at io.homeassistant.companion.android.webview.WebViewPresenterImpl$checkSecurityVersion$1.invokeSuspend(WebViewPresenterImpl.kt:77) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at android.os.Handler.handleCallback(Handler.java:938) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at android.os.Handler.dispatchMessage(Handler.java:99) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at android.os.Looper.loopOnce(Looper.java:201) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at android.os.Looper.loop(Looper.java:288) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at android.app.ActivityThread.main(ActivityThread.java:7870) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at java.lang.reflect.Method.invoke(Native Method) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 04-02 11:41:36.004 29685 29685 E WebViewPresenterImpl: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 04-02 11:41:36.045 29685 29871 D WebviewActivity: External bus {"type":"theme-update","id":3} 04-02 11:41:36.046 29685 29685 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111" 04-02 11:41:36.046 29685 29685 D WebviewActivity: Color from webview is "#101e24-SPACER-#111111" 04-02 11:41:36.046 29685 29867 D WebViewPresenterImpl: Try getting color from webview color "#101e24". 04-02 11:41:36.047 29685 29867 I WebViewPresenterImpl: Found color -15720924. 04-02 11:41:36.047 29685 29867 D WebViewPresenterImpl: Try getting color from webview color "#111111". 04-02 11:41:36.047 29685 29867 I WebViewPresenterImpl: Found color -15658735. 04-02 11:41:37.114 29685 29685 D WebviewActivity: Authentication successful, unlocking app 04-02 11:41:37.133 29685 29685 D UrlRepository: localUrl is: true and usesInternalSsid is: true 04-02 11:41:37.134 29685 29685 D UrlRepository: Using internal URL 04-02 11:41:38.970 29685 29685 D UrlRepository: localUrl is: true and usesInternalSsid is: true 04-02 11:41:38.971 29685 29685 D UrlRepository: Using internal URL 04-02 11:41:40.882 29685 29685 W Choreographer: Frame time is 0.006928 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. 04-02 11:41:43.530 29685 29871 D WebviewActivity: External bus {"type":"config_screen/show","id":4} 04-02 11:41:43.560 29685 29685 D UrlRepository: Using external URL 04-02 11:41:43.560 29685 29685 D UrlRepository: Using external URL 04-02 11:41:43.560 29685 29685 D UrlRepository: Using internal URL 04-02 11:41:43.560 29685 29685 D UrlRepository: Using internal URL 04-02 11:41:43.568 29685 29685 I ContentCaptureHelper: Setting logging level to OFF 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.622 29685 29685 W TextView: onProvideContentCaptureStructure(): calling assumeLayout() 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.622 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 W TextView: onProvideContentCaptureStructure(): calling assumeLayout() 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 W TextView: onProvideContentCaptureStructure(): calling assumeLayout() 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 W TextView: onProvideContentCaptureStructure(): calling assumeLayout() 04-02 11:41:43.623 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.623 29685 29685 W TextView: onProvideContentCaptureStructure(): calling assumeLayout() 04-02 11:41:43.645 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.645 29685 29685 E mpanion.androi: Invalid ID 0x00000000. 04-02 11:41:43.647 29685 29867 D SensorWorker: Updating all Sensors. 04-02 11:41:43.647 29685 29765 I WM-Processor: Moving WorkSpec (b21495cf-85aa-473d-9558-4d9616a6cb83) to the foreground 04-02 11:41:43.651 29685 29685 I WM-SystemFgDispatcher: Started foreground service Intent { act=ACTION_START_FOREGROUND cmp=io.homeassistant.companion.android/androidx.work.impl.foreground.SystemForegroundService (has extras) } 04-02 11:41:43.673 29685 29867 D SensorReceiver: Nothing to update

Read more comments on GitHub >

github_iconTop Results From Across the Web

Biometric unlock opens twice and blocks entire phone
It appears that with Cryptomator v1.5.9 under some circumstances the biometric unlock dialogue is opened twice in a row and only the second ......
Read more >
Prompt for login twice, but fingerprint works for first, not second.
So for some reason, recently my laptop started prompting for my password twice. I use fingerprint reader, and the first time it works....
Read more >
BiometricPrompt disappearing or dismissing after sometime
As mentioned in the answers there's an intentional behavior by biometric prompt to not re prompt once in the background.
Read more >
Fingerprint sensor occasionally disappearing - have to swipe ...
When double tapping to wake it does not ask for a PIN, it just displays the lock screen contents like usual, only the...
Read more >
LAContext evaluatePolicy not showing TouchID prompt
It seems one workaround is to call evaluatePolicy twice. The second call will cancel and dismiss the first. If the first prompt happened...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found