Livinglist / Hacki

A feature-rich Hacker News client.
https://apps.apple.com/us/app/hacki/id1602043763?platform=iphone
GNU General Public License v3.0
1.03k stars 100 forks source link

Can't open links #31

Closed Efreak closed 2 years ago

Efreak commented 2 years ago

I'm unable to open links. Tapping the title and the starburst icon does nothing at all. Similarly, tapping links in posts and links in the about page also does nothing (view licenses and close works; developer, source code, and like do not).

See a video here.

Version: 0.2.9 installed via fdroid. Android 12 on SM-T860 (Galaxy Tab S6)

logcat, error I'm pretty sure the relevant part is `ChromeCustomTabs is not available!`, however chrome is absolutely installed and up to date (though I mostly use [Lynket](https://github.com/arunkumar9t2/lynket-browser) with Firefox as renderer; I've got Chrome, Brave, Firefox, Firefox Nightly, jQuarks, Samsung Internet, and Samsung Internet Beta installed). Even if this wasn't the case for me, custom tabs should fall back to the default browser. The logcat below was created with [`pidcat com.jiaqifeng.hacki`](https://github.com/JakeWharton/pidcat). ``` Process com.jiaqifeng.hacki created for pre-top-activity {com.jiaqifeng.hacki/com.jiaqifeng.hacki.MainActivity} PID: 13708 UID: GIDs: b' ProcessState D Binder ioctl to enable oneway spam detection failed: Invalid argument' b' ActivityThread D setConscryptValidator' b' D setConscryptValidator - put' b' D handleBindApplication()++ app=com.jiaqifeng.hacki' b'atibilityChangeReporter D Compat change id reported: 171979766; UID 10611; state: DISABLED' b' jiaqifeng.hack W ClassLoaderContext classpath element mismatch. expected=/system_ext/framework/androidx.window.sidecar.jar, found=/system/system_ext/framework/androidx.window.sidecar.jar (PCL[]{PCL[/system_ext/framework/androidx.window.sidecar.jar*3941666722]} | PCL[]{PCL[/system/system_ext/framework/androidx.window.sidecar.jar*3941666722]})' b" GraphicsEnvironment V ANGLE Developer option for 'com.jiaqifeng.hacki' set to: 'default'" b' V App is not on the allowlist for updatable production driver.' b' LoadedApk D LoadedApk::makeApplication() appContext.mOpPackageName=com.jiaqifeng.hacki appContext.mBasePackageName=com.jiaqifeng.hacki' b' NetworkSecurityConfig D No Network Security Config specified, using platform default' b' D No Network Security Config specified, using platform default' b' WM-WrkMgrInitializer D Initializing WorkManager with default configuration.' b' ActivityThread D handleBindApplication() --' b' OpenGLRenderer D RenderThread::requireGlContext()' b' AdrenoGLES-0 I QUALCOMM build : 3dad7f8ed7, I593c16c433' b' I Build Date : 10/01/21' b' I OpenGL ES Shader Compiler Version: EV031.32.02.02' b' I Local Branch :' b' I Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.9.1.R1.11.00.00.604.073' b' I Remote Branch : NONE' b' I Reconstruct Branch : NOTHING' b' I Build Config : S P 10.0.7 AArch64' b' I Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so' b' I PFP: 0x016ee190, ME: 0x00000000' b'atibilityChangeReporter D Compat change id reported: 160794467; UID 10611; state: DISABLED' b' OpenGLRenderer D RenderThread::setGrContext()' b' WebViewFactory I Loading com.google.android.webview version 101.0.4951.61 (code 495106134)' b' cr_WVCFactoryProvider I Loaded version=101.0.4951.61 minSdkVersion=29 isBundle=true multiprocess=true packageId=2' b' cr_LibraryLoader I Successfully loaded native library' b' cr_CachingUmaRecorder I Flushed 8 samples from 8 histograms.' b'vityAndFragmentDelegate W A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.' b' DecorView I [INFO] isPopOver=false, config=true' b' I updateCaptionType >> DecorView@49e3df5[], isFloating=false, isApplication=true, hasWindowControllerCallback=true, hasWindowDecorCaption=false' b' D setCaptionType = 0, this = DecorView@49e3df5[]' b' I getCurrentDensityDpi: from real metrics. densityDpi=360 msg=resources_loaded' b' I notifyKeepScreenOnChanged: keepScreenOn=false' b'l@4a3a2d7[MainActivity] I setView = com.android.internal.policy.DecorView@49e3df5 TM=true' b' SurfaceView@cc5e00b I onWindowVisibilityChanged(0) true io.flutter.embedding.android.h{cc5e00b V.E...... ......I. 0,0-0,0} of ViewRootImpl@4a3a2d7[MainActivity]' b'l@4a3a2d7[MainActivity] I Relayout returned: old=(0,0,1600,2560) new=(0,0,1600,2560) req=(1600,2560)0 dur=12 res=0x7 s={true -5476376632029528064} ch=true fn=-1' b' SurfaceView@cc5e00b I windowStopped(false) true io.flutter.embedding.android.h{cc5e00b V.E...... ......ID 0,0-1600,2452} of ViewRootImpl@4a3a2d7[MainActivity]' b'l@4a3a2d7[MainActivity] I [DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:11374 android.view.ViewRootImpl.performTraversals:4167 android.view.ViewRootImpl.doTraversal:2893' b' hw-ProcessState D Binder ioctl to enable oneway spam detection failed: Invalid argument' b' OpenGLRenderer D eglCreateWindowSurface' b' SurfaceView@cc5e00b I pST: sr = Rect(0, 0 - 1600, 2452) sw = 1600 sh = 2452' b' I onSSPAndSRT: pl = 0 pt = 0 sx = 1.0 sy = 1.0' b' I pST: mTmpTransaction.apply, mTmpTransaction = android.view.SurfaceControl$Transaction@c06e7bc' b' I updateSurface: mVisible = true mSurface.isValid() = true' b' I updateSurface: mSurfaceCreated = false surfaceChanged = true visibleChanged = true' b' I surfaceCreated 1 #8 io.flutter.embedding.android.h{cc5e00b V.E...... ......ID 0,0-1600,2452}' b' I surfaceChanged (1600,2452) 1 #8 io.flutter.embedding.android.h{cc5e00b V.E...... ......ID 0,0-1600,2452}' b'l@4a3a2d7[MainActivity] I [DP] dp(2) 1 android.view.SurfaceView.updateSurface:1375 android.view.SurfaceView.lambda$new$1$SurfaceView:254 android.view.SurfaceView$$ExternalSyntheticLambda2.onPreDraw:2' b' I [DP] pdf(1) 1 android.view.SurfaceView.notifyDrawFinished:599 android.view.SurfaceView.performDrawFinished:586 android.view.SurfaceView.$r8$lambda$st27mCkd9jfJkTrN_P3qIGKX6NY:0' b' SurfaceView@cc5e00b I uSP: rtp = Rect(0, 0 - 1600, 2452) rtsw = 1600 rtsh = 2452' b' I onSSPAndSRT: pl = 0 pt = 0 sx = 1.0 sy = 1.0' b' I aOrMT: uB = true t = android.view.SurfaceControl$Transaction@f42345 fN = 1 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:319' b' I aOrMT: vR.mWNT, vR = ViewRootImpl@4a3a2d7[MainActivity]' b'l@4a3a2d7[MainActivity] I mWNT: t = android.view.SurfaceControl$Transaction@f42345 fN = 1 android.view.SurfaceView.applyOrMergeTransaction:1628 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728' b' I mWNT: merge t to BBQ' b' BufferQueueProducer I [ViewRootImpl@4a3a2d7[MainActivity]#0(BLAST Consumer)0](id:358c00000000,api:1,p:13708,c:13708) queueBuffer: queued for the first time.' b'l@4a3a2d7[MainActivity] I [DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4969 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938' b' I [DP] rdf()' b' D reportDrawFinished (fn: -1)' b' I MSG_WINDOW_FOCUS_CHANGED 1 1' b' InputMethodManager D startInputInner - Id : 0' b' I startInputInner - mService.startInputOrWindowGainedFocus' b' D startInputInner - Id : 0' b' BufferQueueProducer I [SurfaceView - com.jiaqifeng.hacki/com.jiaqifeng.hacki.MainActivity@cc5e00b@0#1(BLAST Consumer)1](id:358c00000001,api:1,p:13708,c:13708) queueBuffer: queued for the first time.' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' UrlLauncher I component name for https://www.priv.gc.ca/en/opc-news/news-and-announcements/2022/nr-c_220601/ is {kuesji.link_eye/kuesji.link_eye.Main}' b' flutter E [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(ChromeBrowserManager, ChromeCustomTabs is not available!, null, null)' b' E #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607)' b' E #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167)' b' E ' b' E #2 ChromeSafariBrowser.open (package:flutter_inappwebview/src/chrome_safari_browser/chrome_safari_browser.dart:112)' b' E ' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' UrlLauncher I component name for https://news.ycombinator.com/item?id=31585612 is {kuesji.link_eye/kuesji.link_eye.Main}' b' flutter E [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(ChromeBrowserManager, ChromeCustomTabs is not available!, null, null)' b' E #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607)' b' E #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167)' b' E ' b' E #2 ChromeSafariBrowser.open (package:flutter_inappwebview/src/chrome_safari_browser/chrome_safari_browser.dart:112)' b' E ' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' UrlLauncher I component name for https://livinglist.github.io is {kuesji.link_eye/kuesji.link_eye.Main}' b' flutter E [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(ChromeBrowserManager, ChromeCustomTabs is not available!, null, null)' b' E #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607)' b' E #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167)' b' E ' b' E #2 ChromeSafariBrowser.open (package:flutter_inappwebview/src/chrome_safari_browser/chrome_safari_browser.dart:112)' b' E ' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' UrlLauncher I component name for https://github.com/Livinglist/Hacki is {kuesji.link_eye/kuesji.link_eye.Main}' b' flutter E [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(ChromeBrowserManager, ChromeCustomTabs is not available!, null, null)' b' E #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607)' b' E #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167)' b' E ' b' E #2 ChromeSafariBrowser.open (package:flutter_inappwebview/src/chrome_safari_browser/chrome_safari_browser.dart:112)' b' E ' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' UrlLauncher I component name for https://play.google.com/store/apps/details?id=com.jiaqifeng.hacki&hl=en_US&gl=US is {com.android.vending/com.google.android.finsky.activities.MainActivity}' b' flutter E [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(ChromeBrowserManager, ChromeCustomTabs is not available!, null, null)' b' E #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607)' b' E #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167)' b' E ' b' E #2 ChromeSafariBrowser.open (package:flutter_inappwebview/src/chrome_safari_browser/chrome_safari_browser.dart:112)' b' E ' b'l@4a3a2d7[MainActivity] I ViewPostIme pointer 0' b' I ViewPostIme pointer 1' b' I ViewPostIme key 0' b' I ViewPostIme key 1' b' I MSG_WINDOW_FOCUS_CHANGED 0 1' b" InputTransport D Input channel destroyed: 'ClientS', fd=175" b'l@4a3a2d7[MainActivity] I handleAppVisibility mAppVisible=true visible=false' b' SurfaceView@cc5e00b I onWindowVisibilityChanged(8) false io.flutter.embedding.android.h{cc5e00b V.E...... ........ 0,0-1600,2452} of ViewRootImpl@4a3a2d7[MainActivity]' b' I pST: mTmpTransaction.apply, mTmpTransaction = android.view.SurfaceControl$Transaction@c06e7bc' b' I surfaceDestroyed callback.size 1 #2 io.flutter.embedding.android.h{cc5e00b V.E...... ........ 0,0-1600,2452}' b' I updateSurface: mVisible = false mSurface.isValid() = true' b' I tryReleaseSurfaces: set mRtReleaseSurfaces = true' b' I 112235436 wPL, frameNr = 0' b' I remove() from RT android.view.SurfaceView$SurfaceViewPositionUpdateListener@6b093ac Surface(name=SurfaceView - com.jiaqifeng.hacki/com.jiaqifeng.hacki.MainActivity@cc5e00b@0)/@0x9357875' b' I remove() io.flutter.embedding.android.h{cc5e00b V.E...... ........ 0,0-1600,2452} Surface(name=SurfaceView - com.jiaqifeng.hacki/com.jiaqifeng.hacki.MainActivity@cc5e00b@0)/@0x9357875' b' I aOrMT: uB = true t = android.view.SurfaceControl$Transaction@f693e98 fN = 0 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1785 android.graphics.RenderNode$CompositePositionUpdateListener.positionLost:326' b' I aOrMT: vR.mWNT, vR = ViewRootImpl@4a3a2d7[MainActivity]' b'l@4a3a2d7[MainActivity] I mWNT: t = android.view.SurfaceControl$Transaction@f693e98 fN = 0 android.view.SurfaceView.applyOrMergeTransaction:1628 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1785' b' I mWNT: merge t to BBQ' b' OpenGLRenderer D setSurface called with nullptr' b' D setSurface() destroyed EGLSurface' b' D destroyEglSurface' b'l@4a3a2d7[MainActivity] I Relayout returned: old=(0,0,1600,2560) new=(0,0,1600,2560) req=(1600,2560)8 dur=5 res=0x5 s={false 0} ch=true fn=34' b' SurfaceView@cc5e00b I windowStopped(true) false io.flutter.embedding.android.h{cc5e00b V.E...... ........ 0,0-1600,2452} of ViewRootImpl@4a3a2d7[MainActivity]' b' D updateSurface: surface is not valid' b' D updateSurface: surface is not valid' b'l@4a3a2d7[MainActivity] I stopped(true) old=false' b' SurfaceView@cc5e00b D updateSurface: surface is not valid' b' I onDetachedFromWindow: tryReleaseSurfaces()' b' OpenGLRenderer D setSurface called with nullptr' b'l@4a3a2d7[MainActivity] I dispatchDetachedFromWindow' b" InputTransport D Input channel destroyed: '678b920', fd=154" Process com.jiaqifeng.hacki (PID: 13708) ended ```
Livinglist commented 2 years ago

Hi there, thanks for opening the issue, will look into this ASAP

Efreak commented 2 years ago

This is fixed by setting my default browser to Firefox instead of LinkEye (an app that allows me to choose the browser on a per-link basis). Since this is the case, the solution is my comment from before (as not every browser supports custom tab protocol): custom tabs should fall back to the default browser.