XilinJia / Podcini

Open source podcast instrument for Android in Kotlin with media3, supporting channels, playlists and single media from YouTube and YT Music.
GNU General Public License v3.0
149 stars 6 forks source link

Database import/export not working: "Only accepting file extension:.realm" #86

Closed AurelWeinhold closed 1 week ago

AurelWeinhold commented 1 week ago

Checklist

App version

6.5.2

Where did you get the app from

F-Droid

Android version

14

Device model

Pixel 5 to Pixel 8

First occurred

I don't know, but think it also happened in version 6.5.1.

Steps to reproduce

Export the database on one phone, import the database export (a .realm file) on another device.

Expected behaviour

The database is imported.

Current behaviour

The export is created, but the import does not work. It says: "Only accepting file extension:.realm", which it has.

Logs

How do I find logs? I will be happy to provide them.

XilinJia commented 1 week ago

So you are coming from version 5? I'm glad you see that message, as in the initial phase I didn't have that check and the DB imported was messed up.

To migrate to version 6, please see the migration instruction: https://github.com/XilinJia/Podcini/blob/main/migrationTo6.md

XilinJia commented 1 week ago

I'm sorry, maybe I misunderstood. So you exported the .realm DB (from version 6) and try to import it on another device and you got that message? Let me check.

XilinJia commented 1 week ago

I just tried importing .realm DB files (one from older version and one from newer version), both succeeded. Can you give more detail?

AurelWeinhold commented 1 week ago

yes, on both phones its version 6.5.2 . The old phone (export) runs stock Android 14 and the new phone (import) runs Graphene OS, which is also on Android 14.

I have found some system logs.

type: logcat
osVersion: google/shiba/shiba:14/AP2A.240905.003/2024090400:user/release-keys
packageName: ac.mdiq.podcini.R:3020237
buffers: main,system,crash,events,kernel
level: verbose

--------- beginning of events
09-05 11:48:15.717 10631 10631 I wm_on_restart_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performRestart,time=0ms]
09-05 11:48:15.726 10631 10631 I wm_on_start_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=handleStartActivity,time=8ms]
09-05 11:48:15.728 10631 10631 I wm_on_resume_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=RESUME_ACTIVITY,time=1ms]
09-05 11:48:15.729 10631 10631 I wm_on_top_resumed_gained_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topStateChangedWhenResumed]
09-05 11:48:15.748 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Start draw after previous draw not visible]
09-05 11:48:15.827 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:17.614 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:19.125 10631 10631 I wm_on_top_resumed_lost_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topStateChangedWhenResumed]
09-05 11:48:19.125 10631 10631 I wm_on_paused_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performPause,time=0ms]
09-05 11:48:19.892 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Not drawing due to not visible]
09-05 11:48:19.909 10631 10631 I wm_on_stop_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=STOP_ACTIVITY_ITEM,time=14ms]
09-05 11:48:29.140 10631 10631 I wm_on_restart_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performRestart,time=0ms]
--------- beginning of main
09-05 11:48:29.141 10631 10631 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
09-05 11:48:29.141 10631 10631 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
--------- switch to events
09-05 11:48:29.142 10631 10631 I wm_on_start_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=handleStartActivity,time=2ms]
--------- switch to main
09-05 11:48:29.151 10631 10631 E ac.mdiq.podcini.R: Invalid resource ID 0x00000000.
--------- switch to events
09-05 11:48:29.164 10631 10631 I wm_on_activity_result_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=ACTIVITY_RESULT]
09-05 11:48:29.165 10631 10631 I wm_on_resume_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=RESUME_ACTIVITY,time=0ms]
09-05 11:48:29.165 10631 10631 I wm_on_top_resumed_gained_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topWhenResuming]
09-05 11:48:29.170 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Start draw after previous draw not visible]
09-05 11:48:29.178 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:29.199 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:29.208 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
--------- switch to main
09-05 11:48:30.881 10631 10631 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@f2f30c9
09-05 11:48:30.886 10631 10669 D HWUI    : endAllActiveAnimators on 0xc4d34a907200 (RippleDrawable) with handle 0xc3a26fb28570
09-05 11:48:35.947 10631 10631 E ac.mdiq.podcini.R: Invalid resource ID 0x00000000.
--------- switch to events
09-05 11:48:35.990 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
--------- switch to main
09-05 11:48:36.778 10631 10631 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@71b2063
09-05 11:48:36.779 10631 10669 D HWUI    : endAllActiveAnimators on 0xc4d34a8e4400 (RippleDrawable) with handle 0xc3a26f91ae10
--------- switch to events
09-05 11:48:36.785 10631 10631 I wm_on_top_resumed_lost_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topStateChangedWhenResumed]
09-05 11:48:36.786 10631 10631 I wm_on_paused_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performPause,time=1ms]
--------- switch to main
09-05 11:48:37.392 10631 10631 D VRI[PreferenceActivity]: visibilityChanged oldVisibility=true newVisibility=false
--------- switch to events
09-05 11:48:37.431 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Not drawing due to not visible]
09-05 11:48:37.435 10631 10631 I wm_on_stop_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=STOP_ACTIVITY_ITEM,time=2ms]
09-05 11:48:38.710 10631 10631 I wm_on_restart_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performRestart,time=0ms]
--------- switch to main
09-05 11:48:38.710 10631 10631 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
09-05 11:48:38.710 10631 10631 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
--------- switch to events
09-05 11:48:38.711 10631 10631 I wm_on_start_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=handleStartActivity,time=1ms]
--------- switch to main
09-05 11:48:38.717 10631 10631 E ac.mdiq.podcini.R: Invalid resource ID 0x00000000.
--------- switch to events
09-05 11:48:38.735 10631 10631 I wm_on_activity_result_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=ACTIVITY_RESULT]
09-05 11:48:38.735 10631 10631 I wm_on_resume_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=RESUME_ACTIVITY,time=0ms]
09-05 11:48:38.735 10631 10631 I wm_on_top_resumed_gained_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topWhenResuming]
09-05 11:48:38.741 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Start draw after previous draw not visible]
09-05 11:48:38.750 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:38.768 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
09-05 11:48:38.777 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=reportDrawFinished seqId=0]
--------- switch to main
09-05 11:48:39.965 10631 10631 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@f0b7c9e
09-05 11:48:39.969 10631 10669 D HWUI    : endAllActiveAnimators on 0xc4d34a8b5c00 (RippleDrawable) with handle 0xc3a26fb4ea50
--------- switch to events
09-05 11:48:40.349 10631 10631 I wm_on_top_resumed_lost_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=topStateChangedWhenResumed]
09-05 11:48:40.376 10631 10631 I view_enqueue_input_event: [eventType=Motion - Cancel,action=ac.mdiq.podcini.R/ac.mdiq.podcini.ui.activity.PreferenceActivity]
09-05 11:48:41.624 10631 10631 I wm_on_paused_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=performPause,time=0ms]
--------- switch to main
09-05 11:48:42.022 10631 10631 D VRI[PreferenceActivity]: visibilityChanged oldVisibility=true newVisibility=false
--------- switch to events
09-05 11:48:42.047 10631 10631 I viewroot_draw_event: [window=VRI[PreferenceActivity],event=Not drawing due to not visible]
09-05 11:48:42.050 10631 10631 I wm_on_stop_called: [Token=68609358,Component Name=ac.mdiq.podcini.ui.activity.PreferenceActivity,Reason=STOP_ACTIVITY_ITEM,time=1ms]

It seems to me this is a permission error, except that I can't grant any more permissions to the app.

I have successfully imported preferences in other applications on the new phone.

XilinJia commented 1 week ago

Not sure if the log indicate anything.

So you can access the directory from Podcini, but not the .realm file? Could you try put the file in some common directory? Or could you import say an opml file from any directory?

AurelWeinhold commented 1 week ago

I managed to import the database export by moving it to a different directory, where the app apparently had permission to access the file. I reinstalled the app to see if I ever got asked to grant permissions to a specific directory and which does not happen. Also the logs indicate that

09-05 11:48:38.717 10631 10631 E ac.mdiq.podcini.R: Invalid resource ID 0x00000000.

which the app seems to not identify. Maybe this is an error that can be caught at a different place allowing for a more concise error message than "Only accepting file extension:.realm"?

Also other apps, e.g. NewPipe, had no issue importing their exports from the same directory I tried to import the podcini database export from. Maybe there is some inspiration to be found there :)

Anyway, thank you for the app and your time!

XilinJia commented 1 week ago

OK, thanks for the info. I will check upon it.

No, that log message about resource should not be related to this. Should be about some icons or images. In fact I see it often, perhaps with certain phones, but I haven't figured out what cause it.

Glad Podcini serves you some value.

XilinJia commented 1 week ago

In deed permission was not explicitly requested when importing database (SAF is supposed to grant temporary permission on user picks). But I added some extra request anyhow in 6.5.6. It's not affecting me on my S21 Android 14.

AurelWeinhold commented 5 days ago

Thank you very much!

XilinJia commented 5 days ago

So the new edition works for you?