Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: update translations and test for rtl #130

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

aanorbel
Copy link
Member

@aanorbel aanorbel commented Oct 1, 2024

Observations

iOS seems to ignore RTL language alignments (We have had issues about this reported before.)

Android iOS
Screenshot_20241001_102739 Simulator Screenshot - iPhone 16 Pro Max - 2024-10-01 at 10 27 46
Screenshot_20241001_102805 Simulator Screenshot - iPhone 16 Pro Max - 2024-10-01 at 10 27 59

@aanorbel
Copy link
Member Author

aanorbel commented Oct 1, 2024

refusing notification permission on iOS causes a crash

Uncaught Kotlin exception: kotlin.IllegalStateException: notifications permission failed
    at 0   OONI Probe.debug.dylib              0x10d72177f        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 119 
    at 1   OONI Probe.debug.dylib              0x10d71aaab        kfun:kotlin.Exception#<init>(kotlin.String?){} + 115 
    at 2   OONI Probe.debug.dylib              0x10d71accb        kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 115 
    at 3   OONI Probe.debug.dylib              0x10d71b2f3        kfun:kotlin.IllegalStateException#<init>(kotlin.String?){} + 115 
    at 4   OONI Probe.debug.dylib              0x10e90e2bf        kfun:dev.icerock.moko.permissions.ios.RemoteNotificationPermissionDelegate.$providePermissionCOROUTINE$0.invokeSuspend#internal + 2891 
    at 5   OONI Probe.debug.dylib              0x10d8760db        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any?-trampoline + 71 
    at 6   OONI Probe.debug.dylib              0x10d726e83        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 647 
    at 7   OONI Probe.debug.dylib              0x10d8761c7        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
    at 8   OONI Probe.debug.dylib              0x10d9a9907        kfun:kotlinx.coroutines.DispatchedTask#run(){} + 1959 
    at 9   OONI Probe.debug.dylib              0x10d9d964b        kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 91 
    at 10  OONI Probe.debug.dylib              0x10de455bb        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.dispatch$lambda$1$lambda$0#internal + 475 
    at 11  OONI Probe.debug.dylib              0x10de46bff        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$lambda$0$FUNCTION_REFERENCE$4.invoke#internal + 75 
    at 12  OONI Probe.debug.dylib              0x10de46cfb        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$lambda$0$FUNCTION_REFERENCE$4.$<bridge-DNN>invoke(){}#internal + 71 
    at 13  OONI Probe.debug.dylib              0x10d8732bf        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
    at 14  OONI Probe.debug.dylib              0x10de44e5b        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.performRun#internal + 319 
    at 15  OONI Probe.debug.dylib              0x10de45763        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.dispatch$lambda$1#internal + 255 
    at 16  OONI Probe.debug.dylib              0x10de4669b        kfun:androidx.compose.ui.platform.FlushCoroutineDispatcher.$dispatch$lambda$1$FUNCTION_REFERENCE$0.invoke#internal + 139 
    at 17  OONI Probe.debug.dylib              0x10d8767eb        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 18  OONI Probe.debug.dylib              0x10d72a8c7        kfun:kotlin.coroutines.intrinsics.object-4.invokeSuspend#internal + 739 
    at 19  OONI Probe.debug.dylib              0x10d8760db        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any?-trampoline + 71 
    at 20  OONI Probe.debug.dylib              0x10d726e83        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 647 
    at 21  OONI Probe.debug.dylib              0x10d8761c7        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
    at 22  OONI Probe.debug.dylib              0x10d9a9907        kfun:kotlinx.coroutines.DispatchedTask#run(){} + 1959 
    at 23  OONI Probe.debug.dylib              0x10d9d964b        kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 91 
    at 24  OONI Probe.debug.dylib              0x10d9d4d5f        kfun:kotlinx.coroutines.DarwinMainDispatcher.dispatch$lambda$0#internal + 67 
    at 25  OONI Probe.debug.dylib              0x10d9d4fe7        kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.invoke#internal + 71 
    at 26  OONI Probe.debug.dylib              0x10d9d50b7        kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.$<bridge-DNN>invoke(){}#internal + 71 
    at 27  OONI Probe.debug.dylib              0x10d8732bf        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
    at 28  OONI Probe.debug.dylib              0x10d9d605f        _6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f72652f6f70742f6275696c644167656e742f776f726b2f343465633665383530643563363366302f6b6f746c696e782d636f726f7574696e65732d636f72652f6e617469766544617277696e2f7372632f44697370617463686572732e6b74_knbridge13 + 203 
    at 29  libdispatch.dylib                   0x102aecebf        _dispatch_call_block_and_release + 23 
    at 30  libdispatch.dylib                   0x102aee7b7        _dispatch_client_callout + 15 
    at 31  libdispatch.dylib                   0x102afe45b        _dispatch_main_queue_drain + 1223 
    at 32  libdispatch.dylib                   0x102afdf83        _dispatch_main_queue_callback_4CF + 39 
    at 33  CoreFoundation                      0x18041ae3b        __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 11 
    at 34  CoreFoundation                      0x180415533        __CFRunLoopRun + 1943 
    at 35  CoreFoundation                      0x18041495f        CFRunLoopRunSpecific + 535 
    at 36  GraphicsServices                    0x190183b0f        GSEventRunModal + 159 
    at 37  UIKitCore                           0x185aa2b3f        -[UIApplication _run] + 795 
    at 38  UIKitCore                           0x185aa6d37        UIApplicationMain + 123 
    at 39  SwiftUI                             0x1d1e2eab3        $s7SwiftUI17KitRendererCommon33_ACC2C5639A7D76F611E170E831FCA491LLys5NeverOyXlXpFAESpySpys4Int8VGSgGXEfU_ + 163 
    at 40  SwiftUI                             0x1d1e2e7db        $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 83 
    at 41  SwiftUI                             0x1d1b70c8b        $s7SwiftUI3AppPAAE4mainyyFZ + 147 
    at 42  OONI Probe.debug.dylib              0x10c7a23ff        $s10OONI_Probe6iOSAppV5$mainyyFZ + 39 
    at 43  OONI Probe.debug.dylib              0x10c7a24af        __debug_main_executable_dylib_entry_point + 11 (/Users/aanorbel/Code/ooni/probe-multiplatform/iosApp/iosApp/iOSApp.swift:5:8)
    at 44  dyld                                0x102b8940f        0x0 + 4340618255 
    at 45  ???                                 0x102dae273        0x0 + 4342866547 
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.BroadcastFrameClock@4790680, StandaloneCoroutine{Cancelling}@2852e7a0, FlushCoroutineDispatcher@aea42a8]
        at 0   OONI Probe.debug.dylib              0x10d72177f        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 119 
        at 1   OONI Probe.debug.dylib              0x10d71aaab        kfun:kotlin.Exception#<init>(kotlin.String?){} + 115 
        at 2   OONI Probe.debug.dylib              0x10d71accb        kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 115 
        at 3   OONI Probe.debug.dylib              0x10d9d256b        kfun:kotlinx.coroutines.internal.DiagnosticCoroutineContextException#<init>(kotlin.coroutines.CoroutineContext){} + 171 
        at 4   OONI Probe.debug.dylib              0x10d9a5993        kfun:kotlinx.coroutines.internal#handleUncaughtCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 655 
        at 5   OONI Probe.debug.dylib              0x10d92fe3f        kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 531 
        at 6   OONI Probe.debug.dylib              0x10d9237b3        kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 171 
        at 7   OONI Probe.debug.dylib              0x10d9da817        kfun:kotlinx.coroutines.JobSupport#handleJobException(kotlin.Throwable){}kotlin.Boolean-trampoline + 63 
        at 8   OONI Probe.debug.dylib              0x10d93a073        kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1215 
        at 9   OONI Probe.debug.dylib              0x10d9429bf        kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2171 
        at 10  OONI Probe.debug.dylib              0x10d942103        kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 755 
        at 11  OONI Probe.debug.dylib              0x10d941c23        kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 379 
        at 12  OONI Probe.debug.dylib              0x10d91f907        kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 215 
        at 13  OONI Probe.debug.dylib              0x10d8761c7        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        at 14  OONI Probe.debug.dylib              0x10d7270bb        kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1215 
        at 15  OONI Probe.debug.dylib              0x10d8761c7        kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 99 
        ... and 38 more common stack frames skipped

@aanorbel
Copy link
Member Author

aanorbel commented Oct 1, 2024

. .
Simulator Screenshot - iPhone 16 Pro Max - 2024-10-01 at 12 30 53 Simulator Screenshot - iPhone 16 Pro Max - 2024-10-01 at 12 30 57

@aanorbel aanorbel requested a review from sdsantos October 1, 2024 11:32
@aanorbel
Copy link
Member Author

aanorbel commented Oct 1, 2024

Accessibility note: Some text in the onboarding screen cuts out when the font size is increased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant