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

Files can't be edited in Android NC client #3892

Closed
meaz opened this issue Mar 5, 2023 · 22 comments
Closed

Files can't be edited in Android NC client #3892

meaz opened this issue Mar 5, 2023 · 22 comments
Labels
bug Something isn't working

Comments

@meaz
Copy link

meaz commented Mar 5, 2023

Describe the bug

  • I can open and edit .md files (just an example, it works with .txt also) from webclient.
  • I can't edit the same files from Nextcloud android app, I can only open/see them. What actually happens is that when I click on a file from NC android app, for example a .md, it downloads it, so I can read it. But can not edit it.

To Reproduce
Steps to reproduce the behavior:

  1. Verify Text works in Files on the web client
  2. Click on the same file from the android client

Expected behavior
The file should be editable.

**Client details:** - OS: Android 13 - Version: 3.24.1

Text app version:
3.6.0

Operating system:
debian stable

Web server:
nginx

Database:
mariadb 10.5.18

PHP version:
8.0

Nextcloud version:
25.0.3

Logs

Nextcloud log (data/nextcloud.log)

Nothing relevant, even when set to debug.

Browser log

adb logcat --pid=$(adb shell pidof -s 'com.nextcloud.client') gives:

03-05 10:43:03.053 15050 17081 D OpenGLRenderer: --- Failed to create image decoder with message 'unimplemented'
03-05 10:43:03.058 15050 17081 D OpenGLRenderer: --- Failed to create image decoder with message 'unimplemented'
03-05 10:43:03.058 15050 17081 D ThumbnailsCacheManager: generate thumbnail: file_for_test.md URI: https://myinstance.org/index.php/apps/files/api/v1/thumbnail/256/256/file_for_test.md
03-05 10:43:03.059 15050 17081 D OwnCloudClient #0: REQUEST GET /index.php/apps/files/api/v1/thumbnail/256/256/file_for_test.md
03-05 10:43:03.071 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 0 0
03-05 10:43:03.082 15050 15050 I ViewRootImpl@798dc69[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
03-05 10:43:03.082 15050 15050 D ViewRootImpl@798dc69[FileDisplayActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400006fa7a1fbe0}
03-05 10:43:03.083 15050 15050 D InputMethodManager: startInputInner - Id : 0
03-05 10:43:03.083 15050 15050 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
03-05 10:43:03.682 15050 17081 D ThumbnailsCacheManager: add thumbnail to cache: file_for_test.md
03-05 10:43:04.268 15050 15050 I ViewRootImpl@798dc69[FileDisplayActivity]: ViewPostIme pointer 0
03-05 10:43:04.324 15050 15050 I ViewRootImpl@798dc69[FileDisplayActivity]: ViewPostIme pointer 1
03-05 10:43:04.336 15050 15050 W OnBackInvokedCallback: OnBackInvokedCallback is not enabled for the application.
03-05 10:43:04.336 15050 15050 W OnBackInvokedCallback: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
03-05 10:43:04.338 15050 15050 I MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@2505831[FileDisplayActivity]
03-05 10:43:04.339 15050 15088 D OpenGLRenderer: setSurface called with nullptr
03-05 10:43:04.339 15050 15088 D OpenGLRenderer: setSurface() destroyed EGLSurface
03-05 10:43:04.341 15050 15088 D OpenGLRenderer: destroyEglSurface
03-05 10:43:04.349 15050 15088 D OpenGLRenderer: endAllActiveAnimators on 0xb400006f37a8bf70 (RippleDrawable) with handle 0xb400006e47b41860
03-05 10:43:04.349 15050 15050 I ViewRootImpl@798dc69[FileDisplayActivity]: dispatchDetachedFromWindow
03-05 10:43:04.366 15050 15050 D InputTransport: Input channel destroyed: '67be289', fd=112
03-05 10:43:04.370 15050 15050 I Dialog  : mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
03-05 10:43:04.372 15050 15050 I DecorView: [INFO] isPopOver=false config=false
03-05 10:43:04.372 15050 15050 I DecorView: updateCaptionType: isFloating=true isApplication=true hasWindowDecorCaption=false this=DecorView@986fb4f[]
03-05 10:43:04.372 15050 15050 D DecorView: setCaptionType = 0, this = DecorView@986fb4f[]
03-05 10:43:04.373 15050 15050 I DecorView: setWindowBackground: isPopOver=false color=ff010101 d=android.graphics.drawable.InsetDrawable@564afe5
03-05 10:43:04.373 15050 15050 I DecorView: setWindowBackground: isPopOver=false color=ff010101 d=android.graphics.drawable.InsetDrawable@b31b0c8
03-05 10:43:04.381 15050 15050 D ScrollView: initGoToTop
03-05 10:43:04.387 15050 15088 D NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
03-05 10:43:04.387 15050 15050 I DecorView: notifyKeepScreenOnChanged: keepScreenOn=false
03-05 10:43:04.393 15050 15050 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.625} cutoutSpec={M 0,0 M 0,12.25101276465640 a 10.60613009248640,10.60613009248640 0 1,0 0,21.21226018497290 a 10.60613009248640,10.60613009248640 0 1,0 0,-21.21226018497290 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2316)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2316)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(964, 0 - 1080, 88) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2361][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][78,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1002,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,120], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2316][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.nextcloud.client/com.owncloud.android.ui.activity.FileDisplayActivity from=android.view.ViewRootImpl.setView:1700
03-05 10:43:04.394 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: setView = com.android.internal.policy.DecorView@986fb4f TM=true
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: performTraversals params={(0,0)(wrapxwrap) gr=CENTER sim={adjust=pan forwardNavigation} ty=APPLICATION fmt=TRANSLUCENT wanim=0x7f140002 surfaceInsets=Rect(40, 40 - 40, 40)
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   fl=1820002
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   pfl=42000000
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   vsysui=10
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   apr=LIGHT_NAVIGATION_BARS
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   bhv=DEFAULT
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:  dimAmount=0.32 naviIconColor=0}
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: performTraversals mFirst=true windowShouldResize=true viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(wrapxwrap) gr=CENTER sim={adjust=pan forwardNavigation} ty=APPLICATION fmt=TRANSLUCENT wanim=0x7f140002 surfaceInsets=Rect(40, 40 - 40, 40)
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   fl=1820002
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   pfl=42000000
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   vsysui=10
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   apr=LIGHT_NAVIGATION_BARS
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   bhv=DEFAULT
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR
03-05 10:43:04.397 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]:  dimAmount=0.32 naviIconColor=0}
03-05 10:43:04.402 15050 15050 D BLASTBufferQueue: new BLASTBufferQueue, mNativeObject= 0xb400006f17a28110 name= ViewRootImpl@ef2c10d[FileDisplayActivity] sc.mNativeObject= 0xb400006ea7a6cd30 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2789 android.view.ViewRootImpl.relayoutWindow:9635 android.view.ViewRootImpl.performTraversals:3759 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 android.view.Choreographer.doCallbacks:923 android.view.Choreographer.doFrame:852 android.view.Choreographer$FrameDisplayEventReceiver.run:1283 
03-05 10:43:04.402 15050 15050 D BLASTBufferQueue: update, w= 1160 h= 1111 mNativeObject= 0xb400006f17a28110 sc.mNativeObject= 0xb400006ea7a6cd30 format= -3 caller= android.graphics.BLASTBufferQueue.<init>:76 android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2789 android.view.ViewRootImpl.relayoutWindow:9635 android.view.ViewRootImpl.performTraversals:3759 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 
03-05 10:43:04.403 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: Relayout returned: old=(0,88,1080,2361) new=(0,709,1080,1740) req=(1080,1031)0 dur=5 res=0x3 s={true 0xb400006fa7a1fbe0} ch=true seqId=0
03-05 10:43:04.403 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: mThreadedRenderer.initialize() mSurface={isValid=true 0xb400006fa7a1fbe0} hwInitialized=true
03-05 10:43:04.403 15050 15088 D OpenGLRenderer: eglCreateWindowSurface
03-05 10:43:04.404 15050 15050 D ScrollView:  onsize change changed 
03-05 10:43:04.404 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: reportNextDraw android.view.ViewRootImpl.performTraversals:4313 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 
03-05 10:43:04.404 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: Setup new sync id=0
03-05 10:43:04.404 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: Setting syncFrameCallback
03-05 10:43:04.405 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: registerCallbacksForSync syncBuffer=false
03-05 10:43:04.408 15050 15108 D ViewRootImpl@ef2c10d[FileDisplayActivity]: Received frameDrawingCallback syncResult=0 frameNum=1.
03-05 10:43:04.408 15050 15108 D ViewRootImpl@ef2c10d[FileDisplayActivity]: Setting up sync and frameCommitCallback
03-05 10:43:04.409 15050 15088 D BLASTBufferQueue: [ViewRootImpl@ef2c10d[FileDisplayActivity]#24](f:0,a:0) onFrameAvailable the first frame is available
03-05 10:43:04.409 15050 15088 D ViewRootImpl@ef2c10d[FileDisplayActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
03-05 10:43:04.410 15050 15088 D OpenGLRenderer: CFMS:: SetUp Pid : 15050    Tid : 15088
03-05 10:43:04.410 15050 15088 W Parcel  : Expecting binder but got null!
03-05 10:43:04.410 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: onSyncComplete
03-05 10:43:04.410 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: setupSync seqId=0 mSyncId=0 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4373 
03-05 10:43:04.411 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0xb400006ed7a053f0
03-05 10:43:04.411 15050 15050 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.625} cutoutSpec={M 0,0 M 0,12.25101276465640 a 10.60613009248640,10.60613009248640 0 1,0 0,21.21226018497290 a 10.60613009248640,10.60613009248640 0 1,0 0,-21.21226018497290 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2316)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2316)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(964, 0 - 1080, 88) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2361][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][78,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1002,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,120], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2316][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.nextcloud.client/com.owncloud.android.ui.activity.FileDisplayActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6534
03-05 10:43:04.413 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
03-05 10:43:04.413 15050 15050 D ViewRootImpl@cad2cb1[FileDisplayActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400006fa7a2a630}
03-05 10:43:04.414 15050 15050 D InputMethodManager: startInputInner - Id : 0
03-05 10:43:04.414 15050 15050 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
03-05 10:43:04.431 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 0 0
03-05 10:43:04.437 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
03-05 10:43:04.437 15050 15050 D ViewRootImpl@ef2c10d[FileDisplayActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400006fa7a1fbe0}
03-05 10:43:05.256 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: ViewPostIme pointer 0
03-05 10:43:05.302 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: ViewPostIme pointer 1
03-05 10:43:05.313 15050 15050 D FileActivity: show loading dialog
03-05 10:43:05.313 15050 15050 W OnBackInvokedCallback: OnBackInvokedCallback is not enabled for the application.
03-05 10:43:05.313 15050 15050 W OnBackInvokedCallback: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
03-05 10:43:05.316 15050 15050 I Dialog  : mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
03-05 10:43:05.334 15050 15050 I DecorView: [INFO] isPopOver=false config=false
03-05 10:43:05.334 15050 15050 I DecorView: updateCaptionType: isFloating=true isApplication=true hasWindowDecorCaption=false this=DecorView@afcab80[]
03-05 10:43:05.334 15050 15050 D DecorView: setCaptionType = 0, this = DecorView@afcab80[]
03-05 10:43:05.335 15050 15050 I DecorView: setWindowBackground: isPopOver=false color=ff010101 d=android.graphics.drawable.InsetDrawable@ba96dfe
03-05 10:43:05.340 15050 15088 D NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
03-05 10:43:05.340 15050 15050 I DecorView: notifyKeepScreenOnChanged: keepScreenOn=false
03-05 10:43:05.347 15050 15050 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.625} cutoutSpec={M 0,0 M 0,12.25101276465640 a 10.60613009248640,10.60613009248640 0 1,0 0,21.21226018497290 a 10.60613009248640,10.60613009248640 0 1,0 0,-21.21226018497290 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2316)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2316)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(964, 0 - 1080, 88) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2361][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][78,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1002,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,120], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2316][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1409][1080,2400], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.nextcloud.client/com.owncloud.android.ui.activity.FileDisplayActivity from=android.view.ViewRootImpl.setView:1700
03-05 10:43:05.348 15050 15050 I ViewRootImpl@22a6c0a[FileDisplayActivity]: setView = com.android.internal.policy.DecorView@afcab80 TM=true
03-05 10:43:05.349 15050 15050 I MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@986fb4f[FileDisplayActivity]
03-05 10:43:05.349 15050 15088 D OpenGLRenderer: setSurface called with nullptr
03-05 10:43:05.349 15050 15088 D OpenGLRenderer: setSurface() destroyed EGLSurface
03-05 10:43:05.349 15050 15088 D OpenGLRenderer: destroyEglSurface
03-05 10:43:05.350 15050 15088 D OpenGLRenderer: endAllActiveAnimators on 0xb400006f37aa8ef0 (RippleDrawable) with handle 0xb400006e47ad04c0
03-05 10:43:05.350 15050 15050 I ViewRootImpl@ef2c10d[FileDisplayActivity]: dispatchDetachedFromWindow
03-05 10:43:05.356 15050 15050 D InputTransport: Input channel destroyed: 'de95969', fd=112
03-05 10:43:05.357 15050 15050 D OperationsService: Starting command with id 5
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: performTraversals params={(0,0)(wrapxwrap) gr=CENTER sim={adjust=pan forwardNavigation} ty=APPLICATION fmt=TRANSLUCENT wanim=0x103030a surfaceInsets=Rect(105, 105 - 105, 105)
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   fl=1800002
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   pfl=42000000
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   vsysui=10
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   apr=LIGHT_NAVIGATION_BARS
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   bhv=DEFAULT
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR
03-05 10:43:05.358 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:  dimAmount=0.6 naviIconColor=0}
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: performTraversals mFirst=true windowShouldResize=true viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(wrapxwrap) gr=CENTER sim={adjust=pan forwardNavigation} ty=APPLICATION fmt=TRANSLUCENT wanim=0x103030a surfaceInsets=Rect(105, 105 - 105, 105)
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   fl=1800002
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   pfl=42000000
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   vsysui=10
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   apr=LIGHT_NAVIGATION_BARS
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   bhv=DEFAULT
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR
03-05 10:43:05.359 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]:  dimAmount=0.6 naviIconColor=0}
03-05 10:43:05.362 15050 17014 I ViewRootImpl@22a6c0a[FileDisplayActivity]: Resizing android.view.ViewRootImpl@b0b3ed6: frame = [206,1077][873,1371] reportDraw = true forceLayout = false syncSeqId = 0
03-05 10:43:05.365 15050 15050 D BLASTBufferQueue: new BLASTBufferQueue, mNativeObject= 0xb400006f17a2d570 name= ViewRootImpl@22a6c0a[FileDisplayActivity] sc.mNativeObject= 0xb400006ea7a7a040 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2789 android.view.ViewRootImpl.relayoutWindow:9635 android.view.ViewRootImpl.performTraversals:3759 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 android.view.Choreographer.doCallbacks:923 android.view.Choreographer.doFrame:852 android.view.Choreographer$FrameDisplayEventReceiver.run:1283 
03-05 10:43:05.365 15050 15050 D BLASTBufferQueue: update, w= 877 h= 504 mNativeObject= 0xb400006f17a2d570 sc.mNativeObject= 0xb400006ea7a7a040 format= -3 caller= android.graphics.BLASTBufferQueue.<init>:76 android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2789 android.view.ViewRootImpl.relayoutWindow:9635 android.view.ViewRootImpl.performTraversals:3759 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 
03-05 10:43:05.365 15050 15050 I ViewRootImpl@22a6c0a[FileDisplayActivity]: Relayout returned: old=(0,88,1080,2361) new=(206,1077,873,1371) req=(667,294)0 dur=6 res=0x3 s={true 0xb400006fa7a1fbe0} ch=true seqId=0
03-05 10:43:05.366 15050 15088 D OpenGLRenderer: eglCreateWindowSurface
03-05 10:43:05.366 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: mThreadedRenderer.initialize() mSurface={isValid=true 0xb400006fa7a1fbe0} hwInitialized=true
03-05 10:43:05.367 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: reportNextDraw android.view.ViewRootImpl.performTraversals:4313 android.view.ViewRootImpl.doTraversal:2991 android.view.ViewRootImpl$TraversalRunnable.run:10665 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 
03-05 10:43:05.367 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setup new sync id=0
03-05 10:43:05.367 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setting syncFrameCallback
03-05 10:43:05.367 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: registerCallbacksForSync syncBuffer=false
03-05 10:43:05.368 15050 15107 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Received frameDrawingCallback syncResult=0 frameNum=1.
03-05 10:43:05.368 15050 15107 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setting up sync and frameCommitCallback
03-05 10:43:05.369 15050 15088 D BLASTBufferQueue: [ViewRootImpl@22a6c0a[FileDisplayActivity]#25](f:0,a:0) onFrameAvailable the first frame is available
03-05 10:43:05.369 15050 15088 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
03-05 10:43:05.370 15050 15088 D OpenGLRenderer: CFMS:: SetUp Pid : 15050    Tid : 15088
03-05 10:43:05.370 15050 15088 W Parcel  : Expecting binder but got null!
03-05 10:43:05.370 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: onSyncComplete
03-05 10:43:05.371 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: setupSync seqId=0 mSyncId=0 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4373 
03-05 10:43:05.371 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0xb400006ed7a78110
03-05 10:43:05.372 15050 15050 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.625} cutoutSpec={M 0,0 M 0,12.25101276465640 a 10.60613009248640,10.60613009248640 0 1,0 0,21.21226018497290 a 10.60613009248640,10.60613009248640 0 1,0 0,-21.21226018497290 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2316)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2316)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(964, 0 - 1080, 88) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2361][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][78,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1002,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,120], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2316][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1409][1080,2400], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.nextcloud.client/com.owncloud.android.ui.activity.FileDisplayActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6534
03-05 10:43:05.372 15050 15050 W OnBackInvokedCallback: OnBackInvokedCallback is not enabled for the application.
03-05 10:43:05.372 15050 15050 W OnBackInvokedCallback: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
03-05 10:43:05.373 15050 15050 I ViewRootImpl@22a6c0a[FileDisplayActivity]: handleResized, msg = 5 frames=ClientWindowFrames{frame=[206,1077][873,1371] display=[0,88][1080,2361] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
03-05 10:43:05.373 15050 15050 I ViewRootImpl@22a6c0a[FileDisplayActivity]: handleResized mSyncSeqId = 0
03-05 10:43:05.374 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: reportNextDraw android.view.ViewRootImpl.handleResized:2380 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6522 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6491 android.os.Handler.dispatchMessage:106 
03-05 10:43:05.379 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setup new sync id=1
03-05 10:43:05.379 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setting syncFrameCallback
03-05 10:43:05.379 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: registerCallbacksForSync syncBuffer=false
03-05 10:43:05.381 15050 15108 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Received frameDrawingCallback syncResult=0 frameNum=3.
03-05 10:43:05.381 15050 15108 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Setting up sync and frameCommitCallback
03-05 10:43:05.381 15050 15088 D ViewRootImpl@22a6c0a[FileDisplayActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=3 didProduceBuffer=true
03-05 10:43:05.382 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: onSyncComplete
03-05 10:43:05.382 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: setupSync seqId=0 mSyncId=1 fn=3 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4373 
03-05 10:43:05.382 15050 15050 D ViewRootImpl@22a6c0a[FileDisplayActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=3 mSurfaceChangedTransaction=0xb400006ed7a78110
03-05 10:43:05.388 15050 15101 D FileDataStorageManager: Number of files updated with CONFLICT: 1
03-05 10:43:05.388 15050 15101 D FileDataStorageManager: checking parents to remove conflict; STARTING with /
03-05 10:43:05.390 15050 15101 D FileDataStorageManager: STILL 1 in /
03-05 10:43:05.391 15050 15101 D FileDataStorageManager: checking parents to remove conflict; NEXT 
03-05 10:43:05.391 15050 15050 D FileActivity: Received result of operation in FileActivity - common behaviour for all the FileActivities 
03-05 10:43:05.391 15050 15050 D FileActivity: dismiss loading dialog
03-05 10:43:05.391 15050 15050 I MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@afcab80[FileDisplayActivity]
03-05 10:43:05.391 15050 15101 D OperationsService: Called 1 listeners
03-05 10:43:05.391 15050 15101 D OperationsService: Stopping after command with id 5
03-05 10:43:05.391 15050 15088 D OpenGLRenderer: setSurface called with nullptr
03-05 10:43:05.391 15050 15088 D OpenGLRenderer: setSurface() destroyed EGLSurface
03-05 10:43:05.391 15050 15088 D OpenGLRenderer: destroyEglSurface
03-05 10:43:05.392 15050 15050 I ViewRootImpl@22a6c0a[FileDisplayActivity]: dispatchDetachedFromWindow
03-05 10:43:05.402 15050 15050 D InputTransport: Input channel destroyed: 'd437777', fd=189
03-05 10:43:05.402 15050 15050 W OnBackInvokedCallback: OnBackInvokedCallback is not enabled for the application.
03-05 10:43:05.402 15050 15050 W OnBackInvokedCallback: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
03-05 10:43:05.413 15050 15050 D FileDataStorageManager: getFolderContent - start
03-05 10:43:05.438 15050 15050 D FileDataStorageManager: getFolderContent - finished
03-05 10:43:05.460 15050 17081 D ThumbnailsCacheManager: generate thumbnail: file_for_test.md URI: https://myinstance.org/index.php/apps/files/api/v1/thumbnail/256/256/file_for_test.md
03-05 10:43:05.461 15050 17081 D OwnCloudClient #0: REQUEST GET /index.php/apps/files/api/v1/thumbnail/256/256/file_for_test.md
03-05 10:43:05.481 15050 17091 D ThumbnailsCacheManager: generate thumbnail: Readme.md URI: https://myinstance.org/index.php/apps/files/api/v1/thumbnail/256/256/Readme.md
03-05 10:43:05.482 15050 17091 D OwnCloudClient #0: REQUEST GET /index.php/apps/files/api/v1/thumbnail/256/256/Readme.md
03-05 10:43:05.496 15050 15050 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.625} cutoutSpec={M 0,0 M 0,12.25101276465640 a 10.60613009248640,10.60613009248640 0 1,0 0,21.21226018497290 a 10.60613009248640,10.60613009248640 0 1,0 0,-21.21226018497290 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2316)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2316)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(964, 0 - 1080, 88) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2361][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][78,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1002,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,120], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2316][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2400], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,88], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.nextcloud.client/com.owncloud.android.ui.activity.FileDisplayActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6534
03-05 10:43:05.497 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
03-05 10:43:05.497 15050 15050 D ViewRootImpl@cad2cb1[FileDisplayActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400006fa7a2a630}
03-05 10:43:05.498 15050 15050 D InputMethodManager: startInputInner - Id : 0
03-05 10:43:05.498 15050 15050 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
03-05 10:43:06.592 15050 17081 D ThumbnailsCacheManager: add thumbnail to cache: file_for_test.md
03-05 10:43:27.296 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: ViewPostIme pointer 0
03-05 10:43:27.358 15050 15050 I ViewRootImpl@cad2cb1[FileDisplayActivity]: ViewPostIme pointer 1
03-05 10:43:27.365 15050 15050 W OnBackInvokedCallback: OnBackInvokedCallback is not enabled for the application.
03-05 10:43:27.365 15050 15050 W OnBackInvokedCallback: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.

when I click on the fileI want to edit on Nextcloud android client.

@meaz meaz added the bug Something isn't working label Mar 5, 2023
@meaz meaz changed the title Files can't be edited in Android cNC lient Files can't be edited in Android NC client Mar 15, 2023
@Tux12Fun
Copy link

Tux12Fun commented Apr 4, 2023

Have also problems to edit MD files in the app. Sometimes the Android App can open the file and sometimes it hangs in the loading process. I've seen a 404 for session fetch is this normal.

NC 26 with the newest App

@juliushaertl
Copy link
Member

@tobiasKaminsky I cannot see any hint on the direct editing related entries in the android log above. Also downloading looks like the client does not consider direct editing to be available, right?

@Tux12Fun @meaz Can you maybe run the following curl and post the output against your Nextcloud servers?

curl -u admin:password http://nextcloud.dev.local/ocs/v2.php/cloud/capabilities\?format\=json -H 'OCS-ApiRequest: true'

@Tux12Fun
Copy link

Tux12Fun commented Apr 5, 2023

The Response is:

(Replaced the Domain with xxxxxxxxxxxxxxxx because I don't like to publish my RP4 Domain)

{
   "ocs":{
      "meta":{
         "status":"ok",
         "statuscode":200,
         "message":"OK"
      },
      "data":{
         "version":{
            "major":26,
            "minor":0,
            "micro":0,
            "string":"26.0.0",
            "edition":"",
            "extendedSupport":false
         },
         "capabilities":{
            "core":{
               "pollinterval":60,
               "webdav-root":"remote.php\/webdav",
               "reference-api":true,
               "reference-regex":"(\\s|\\n|^)(https?:\\\/\\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|\\n|$)"
            },
            "bruteforce":{
               "delay":0
            },
            "metadataAvailable":{
               "size":[
                  "\/image\\\/.*\/"
               ],
               "gps":[
                  "\/image\\\/.*\/"
               ]
            },
            "files":{
               "bigfilechunking":true,
               "blacklisted_files":[
                  ".htaccess"
               ],
               "directEditing":{
                  "url":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/ocs\/v2.phpnextcloud\/ocsapp\/apps\/files\/api\/v1\/directEditing",
                  "etag":"f04030fc05cebbb2ab8b98f195a370b9",
                  "supportsFileId":true
               },
               "undelete":true,
               "versioning":true,
               "version_labeling":true,
               "version_deletion":true
            },
            "activity":{
               "apiv2":[
                  "filters",
                  "filters-api",
                  "previews",
                  "rich-strings"
               ]
            },
            "ocm":{
               "enabled":true,
               "apiVersion":"1.0-proposal1",
               "endPoint":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/ocm",
               "resourceTypes":[
                  {
                     "name":"file",
                     "shareTypes":[
                        "user",
                        "group"
                     ],
                     "protocols":{
                        "webdav":"\/public.php\/webdav\/"
                     }
                  }
               ]
            },
            "dav":{
               "chunking":"1.0",
               "bulkupload":"1.0"
            },
            "external":{
               "v1":[
                  "sites",
                  "device",
                  "groups",
                  "redirect"
               ]
            },
            "files_sharing":{
               "api_enabled":true,
               "public":{
                  "enabled":true,
                  "password":{
                     "enforced":false,
                     "askForOptionalPassword":false
                  },
                  "expire_date":{
                     "enabled":false
                  },
                  "multiple_links":true,
                  "expire_date_internal":{
                     "enabled":false
                  },
                  "expire_date_remote":{
                     "enabled":false
                  },
                  "send_mail":false,
                  "upload":true,
                  "upload_files_drop":true
               },
               "resharing":true,
               "user":{
                  "send_mail":false,
                  "expire_date":{
                     "enabled":true
                  }
               },
               "group_sharing":true,
               "group":{
                  "enabled":true,
                  "expire_date":{
                     "enabled":true
                  }
               },
               "default_permissions":31,
               "federation":{
                  "outgoing":true,
                  "incoming":true,
                  "expire_date":{
                     "enabled":true
                  },
                  "expire_date_supported":{
                     "enabled":true
                  }
               },
               "sharee":{
                  "query_lookup_default":false,
                  "always_show_unique":true
               }
            },
            "notifications":{
               "ocs-endpoints":[
                  "list",
                  "get",
                  "delete",
                  "delete-all",
                  "icons",
                  "rich-strings",
                  "action-web",
                  "user-status"
               ],
               "push":[
                  "devices",
                  "object-data",
                  "delete"
               ],
               "admin-notifications":[
                  "ocs",
                  "cli"
               ]
            },
            "password_policy":{
               "minLength":10,
               "enforceNonCommonPassword":true,
               "enforceNumericCharacters":false,
               "enforceSpecialCharacters":false,
               "enforceUpperLowerCase":false,
               "api":{
                  "generate":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/ocs\/v2.phpnextcloud\/ocsapp\/apps\/password_policy\/api\/v1\/generate",
                  "validate":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/ocs\/v2.phpnextcloud\/ocsapp\/apps\/password_policy\/api\/v1\/validate"
               }
            },
            "provisioning_api":{
               "version":"1.16.0",
               "AccountPropertyScopesVersion":2,
               "AccountPropertyScopesFederatedEnabled":false,
               "AccountPropertyScopesPublishedEnabled":true
            },
            "theming":{
               "name":"Nextcloud",
               "url":"https:\/\/nextcloud.com",
               "slogan":"ein sicherer Ort f\u00fcr all deine Daten",
               "color":"#3794ac",
               "color-text":"#ffffff",
               "color-element":"#3794ac",
               "color-element-bright":"#3794ac",
               "color-element-dark":"#3794ac",
               "logo":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/core\/img\/logo\/logo.svg?v=0",
               "background":"#3794ac",
               "background-plain":true,
               "background-default":true,
               "logoheader":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/core\/img\/logo\/logo.svg?v=0",
               "favicon":"https:\/\/xxxxxxxxxxxxxxxx.spdns.de\/_priv\/nextcloud\/core\/img\/logo\/logo.svg?v=0"
            }
         }
      }
   }
}

@Tux12Fun
Copy link

Tux12Fun commented Apr 5, 2023

I notieced also if I create a new empy file in the Android App, the App is always unable to display the Text Editor and hangs in a never ending loding Process with this screen.

Server Log

80.187.105.75 - thomas [05/Apr/2023:14:07:05 +0200] "GET /_priv/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing/templates/text/textdocument?format=json HTTP/1.1" 200 192 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:07:14 +0200] "POST /_priv/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing/create?format=json HTTP/1.1" 200 236 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:07:14 +0200] "PROPFIND /_priv/nextcloud/remote.php/dav/files/thomas/Test/test123.md HTTP/1.1" 207 1230 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:07:14 +0200] "GET /_priv/nextcloud/ocs/v2.php/cloud/user?format=json HTTP/2.0" 200 566 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:07:14 +0200] "GET /_priv/nextcloud/apps/files/directEditing/Wer7ggkri6prXtfzKJqRDbFqjSeJattNbRs4ptm8MF4fRBRXcwKAxGTH5GGRJc7q HTTP/2.0" 200 4226 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:07:14 +0200] "GET /_priv/nextcloud/core/js/oc.js?v=b4162360 HTTP/2.0" 200 4447 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:07:16 +0200] "POST /_priv/nextcloud/apps/text/session/fetch HTTP/2.0" 404 1212 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"

image

@Tux12Fun
Copy link

Tux12Fun commented Apr 5, 2023

A second access delivers:

80.187.105.75 - thomas [05/Apr/2023:14:12:50 +0200] "PROPFIND /_priv/nextcloud/remote.php/dav/files/thomas/Test/ HTTP/1.1" 207 1176 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:12:50 +0200] "GET /_priv/nextcloud/ocs/v2.php/apps/files_sharing/api/v1/shares?path=%2FTest%2F&reshares=true&subfiles=true HTTP/1.1" 200 138 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:12:52 +0200] "POST /_priv/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing/open?format=json HTTP/1.1" 200 236 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - thomas [05/Apr/2023:14:12:52 +0200] "GET /_priv/nextcloud/ocs/v2.php/cloud/user?format=json HTTP/2.0" 200 564 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:12:53 +0200] "GET /_priv/nextcloud/apps/files/directEditing/kxaSQ6C9LA7NS2iWkK67kJi9obc5jy7WaGtdn2jxN4jYHQDFd4w3pSdYNk6ka8F8 HTTP/2.0" 200 4233 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:12:53 +0200] "GET /_priv/nextcloud/core/js/oc.js?v=b4162360 HTTP/2.0" 200 4447 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"
80.187.105.75 - - [05/Apr/2023:14:12:55 +0200] "POST /_priv/nextcloud/apps/text/session/fetch HTTP/2.0" 404 1213 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.24.2"

image

@foss-
Copy link

foss- commented Apr 5, 2023

This issue is not limited to Android but also affects iOS. Maybe the title can be updated accordingly?

@juliushaertl
Copy link
Member

With Nextcloud 26 the fetch endpoint should not be used anymore. It looks a bit like you have outdated javascript that is being loaded there for some reason.

Can you double check that your instance is not in debug mode and if the files in apps/text/js/ are the same as the ones shipped in the actual Nextcloud 26 release bundle?

@Tux12Fun
Copy link

Tux12Fun commented Apr 5, 2023

I should have no mixed files from older versions. Yesterday I had the problem that NC 25.3 was not compatible with php8.2 and NC 26 was not installable due to the absence of php8. So I did the following

mv nextcloud nextcloud.old
Extract a fresh nextcloud download
Copyed config file from old to new
Fixed file and dir permissions
Moved data folder from old to new

Cleaned opcache and restarted nginx run occ upgrade command. So I have a complete fresh nextcloud instance without any old app related files.

I ll test a reset of my nextcloud client app on the cellphone and give feedback if this fixes something

@meaz
Copy link
Author

meaz commented Apr 9, 2023

Sorry, I was long. Here is what I get:

{
   "ocs":{
      "meta":{
         "status":"ok",
         "statuscode":200,
         "message":"OK"
      },
      "data":{
         "version":{
            "major":25,
            "minor":0,
            "micro":5,
            "string":"25.0.5",
            "edition":"",
            "extendedSupport":false
         },
         "capabilities":{
            "bruteforce":{
               "delay":0
            },
            "metadataAvailable":{
               "size":[
                  "\/image\\\/.*\/"
               ],
               "gps":[
                  "\/image\\\/.*\/"
               ]
            },
            "spreed":{
               "features":[
                  "audio",
                  "video",
                  "chat-v2",
                  "conversation-v4",
                  "guest-signaling",
                  "empty-group-room",
                  "guest-display-names",
                  "multi-room-users",
                  "favorites",
                  "last-room-activity",
                  "no-ping",
                  "system-messages",
                  "delete-messages",
                  "mention-flag",
                  "in-call-flags",
                  "conversation-call-flags",
                  "notification-levels",
                  "invite-groups-and-mails",
                  "locked-one-to-one-rooms",
                  "read-only-rooms",
                  "listable-rooms",
                  "chat-read-marker",
                  "chat-unread",
                  "webinary-lobby",
                  "start-call-flag",
                  "chat-replies",
                  "circles-support",
                  "force-mute",
                  "sip-support",
                  "sip-support-nopin",
                  "chat-read-status",
                  "phonebook-search",
                  "raise-hand",
                  "room-description",
                  "rich-object-sharing",
                  "temp-user-avatar-api",
                  "geo-location-sharing",
                  "voice-message-sharing",
                  "signaling-v3",
                  "publishing-permissions",
                  "clear-history",
                  "direct-mention-flag",
                  "notification-calls",
                  "conversation-permissions",
                  "rich-object-list-media",
                  "rich-object-delete",
                  "unified-search",
                  "chat-permission",
                  "silent-send",
                  "silent-call",
                  "send-call-notification",
                  "talk-polls",
                  "message-expiration",
                  "reactions",
                  "chat-reference-id"
               ],
               "config":{
                  "attachments":{
                     "allowed":false
                  },
                  "call":{
                     "enabled":true
                  },
                  "chat":{
                     "max-length":32000,
                     "read-privacy":0
                  },
                  "conversations":{
                     "can-create":false
                  },
                  "previews":{
                     "max-gif-size":3145728
                  },
                  "signaling":{
                     "session-ping-limit":200,
                     "hello-v2-token-key":"-----BEGIN PUBLIC KEY-----\nMFkwEwYKoZI7DHISo+pw3g==\n-----END PUBLIC KEY-----\n"
                  }
               },
               "version":"15.0.5"
            },
            "theming":{
               "name":"My Server Cloud",
               "url":"https:\/\/myserver.ord",
               "slogan":"Powered by Nextcloud",
               "color":"#50162D",
               "color-text":"#ffffff",
               "color-element":"#50162D",
               "color-element-bright":"#50162D",
               "color-element-dark":"#50162D",
               "logo":"https:\/\/myserver.ord\/apps\/theming\/image\/logo?useSvg=1&v=96",
               "background":"https:\/\/myserver.ord\/apps\/theming\/image\/background?v=96",
               "background-plain":false,
               "background-default":false,
               "logoheader":"https:\/\/myserver.ord\/apps\/theming\/image\/logo?useSvg=1&v=96",
               "favicon":"https:\/\/myserver.ord\/apps\/theming\/image\/logo?useSvg=1&v=96"
            }
         }
      }
   }
}

@Tux12Fun
Copy link

Thank you very for your hint. Resetting the App Nextcloud, deleting Data form

  • android/data/com.nextcloud.client
  • android/media/com.nextcloud.client
  • nextcloud.

Delete App Data + Cache + Android System Webview
solved the Problems for me.

@juliushaertl
Copy link
Member

@tobiasKaminsky Any idea why cleaning up the android app data would work? Anything you could think of where the direct editing from capabilities is cached and not properly outdated?

@tobiasKaminsky
Copy link
Member

No real idea. Caching is in place, but should be invalidated by server, right?

@Tux12Fun
Copy link

Tux12Fun commented May 2, 2023

I can confirm it has to be something that is stored on the android App/phone. The same issue on my girlfriends phone solved with the same procedure

@meaz
Copy link
Author

meaz commented May 4, 2023

That doesn't

Thank you very for your hint. Resetting the App Nextcloud, deleting Data form

* android/data/com.nextcloud.client

* android/media/com.nextcloud.client

* nextcloud.

Delete App Data + Cache + Android System Webview solved the Problems for me.

That doesn't fix anything on my side...

@juliushaertl
Copy link
Member

Next step would be to write some temporary logging patch for server to trace back if the capabilities and direct editing classes are properly called. Then this could help to further narrow down the possible reasons why the clients are not able to open files.

@juliushaertl
Copy link
Member

@meaz Can you mabye also post the output of occ config:list for further reference?

@meaz
Copy link
Author

meaz commented Jul 11, 2023

here you go @juliushaertl (I couldn't copy and paste, so I attach a file)

nextcloud.txt

@juliushaertl
Copy link
Member

Thanks nothing suspicious in there as far as I see.

Can you maybe also send the output of the following curl command towards your instance and user?

curl -v http://nextcloud.local/ocs/v2.php/apps/files/api/v1/directEditing -u admin:password -H 'OCS-APIRequest: true'

@meaz
Copy link
Author

meaz commented Jul 16, 2023

Here you go:

<?xml version="1.0"?>
<ocs>
 <meta>
  <status>ok</status>
  <statuscode>200</statuscode>
  <message>OK</message>
 </meta>
 <data>
  <editors/>
  <creators/>
 </data>
</ocs>

(don't know if you also needs headers...)

@juliushaertl
Copy link
Member

Are you using server side encryption without a master key by any chance? #3762 (comment)

@meaz
Copy link
Author

meaz commented Jul 26, 2023

yes we do: encryption is enabled with per-user keys

@joshtrichards
Copy link
Member

@meaz Then this is expected behavior, sorry: nextcloud/ios#1340 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

8 participants