-
Notifications
You must be signed in to change notification settings - Fork 7
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
three issues + one feature request #93
Comments
Thanks for the detailed report and glad you like the app!
Hmm, I wasn't aware of this. It looks like both
What were the exact filenames of the files that could and could not be selected for importing? I think this might be caused by the file extension. There's a chance it might only be allowing you to select files where the extension is unrecognized by Android. This should be an easy fix once I know what's going on.
It is expected for the list to extend into the navigation bar, but there is supposed to be extra padding after scrolling to the very bottom. This one might be a bug in Android's compatibility libraries. "edge to edge" mode is now mandatory in Android 15, but the Google's compatibility layer is meant to make it work properly in previous versions of Android too. I'll see if I can find a workaround for this. |
The app should already follow the system dark/light theme mode. (Or are you asking for a new option to force it to be always light or always dark?) |
… API >=30 Previous Android versions do not support it. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
Thanks a lot for the (very!) prompt reply.
I quickly checked functionality with KeePassDX, it has seperated biometrics and device credentials (two seperate toggle bars), biometric enabling worked fine (did not test further with a fingerprint), device credential as well, prompting me to enter device pin/password/gesture (worked fine, showing pin/password/gesture menu). The fix might be as easy as replacing (line 220 in PreferenceBaseActivity.kt)
with
as detailed here and here. It seems as though the above call is API agnostic (everything done under the hood) for down to API 23 (?). For instantiating a crypto object (maybe i missed it), possibly relevant post for that here.
Im not sure if it is file extension dependent. The pre-existing selectable files i saw had .zdjBDp and .ini extensions. Duplicating (in total commander) any file created by the app is also openable, irrespective of extension (tried multiple extensions). Copying a .conf file into android (from a PC) is not openable. No discernible differences between files created by RSAF or externally according to total commander (both show uid 0, gid 9997, -rw-rw----).
No worries about this one, minor enough i think.
Yep, but as I mentioned, not really critical, thanks a lot again. |
Thanks for the hint about KeePassDX. I'll check that out and see how they handle device credential auth. If it's too painful to implement, I'll just stick with biometric auth only for older Android versions.
Interesting. The way it's set up right now is that RSAF asks Android to allow picking any file with the I think it probably makes the most sense to just remove the filter. It doesn't seem all that useful anyway. |
Oh, one quick question about the file selection: when you selected the files, was it from the hamburger menu -> "Downloads" section of the file picker or from hamburger menu -> (Phone name) -> Downloads folder? (The reason I ask is because they are not the same and the files go through two completely different components in Android that may not treat file types the same way.) |
Both choices exhibit the same behaviour it seems. |
Although androidx.biometric can handle biometric auth on legacy Android versions, we're intentionally not using it. The legacy device credential API does both biometric and device credential auth and it is not possible to disable just the biometric part, so just let the legacy API handle everything. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
I wonder if that behavior is Sony-specific. I can't reproduce it with a Samsung Galaxy Note 9 running Android 9. Anyway, I'll just remove the filter. |
I was able to get biometric + device credential auth working on Android 9 (#94). It was a lot easier than I initially thought. |
Although androidx.biometric can handle biometric auth on legacy Android versions, we're intentionally not using it. The legacy device credential API does both biometric and device credential auth and it is not possible to disable just the biometric part, so just let the legacy API handle everything. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
Although androidx.biometric can handle biometric auth on legacy Android versions, we're intentionally not using it. The legacy device credential API does both biometric and device credential auth and it is not possible to disable just the biometric part, so just let the legacy API handle everything. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
I can test run a test apk if you'd like (i'd compile the test branch and do it myself but the android dev environment i have around atm is quite outdated - was trying to resolve dependencies for the past half hour lol) |
is there a possibilty of a conflict with different content providers? But im not seeing anything in logcat tbh. Would there be a way to debug this further? |
On older Android versions (at least API 29 and 30), the window insets callback on the RecyclerView is never called if the MaterialToolbar consumes the insets, even though the RecyclerView is not its child. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
Yeah, sure! Could you give this a try? ShowMime.zip It's a dumb little app (requests no permissions) where you select a file and it shows the MIME type that Android detects. The zip also includes the source code in case you prefer to build it yourself. As for an RSAF test build:
These are signed with the release key, so they can be installed on top of an existing release build. They include #94 and #95. |
Interesting, it may not be a bug in RSAF after all - instead a bug with CIFS Documents Provider. When copying a text file using the above the mime type of the file shows up as "*/*". Copying the file over using either RSAF or Total Commander the mime appears as "application/octet-stream" and openable by RSAF. A quick search yielded this and this, so its either a (very specific) android issue or an issue with CIFSDP. I'll let them know i guess. wa2c/cifs-documents-provider
#94 I can verify auth now works (pin/password/gesture, I assume biometrics too but did not test). Great job, thanks a lot for your time :) |
While Android's builtin FileSystemProvider for local files guesses the MIME type based on the file extension, other document providers may not do so and could report something other than application/octet-stream or text/plain. Let's just let the user select any file. Issue: #93 Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
Thanks for testing! I only took a quick look and didn't see anything obviously wrong with what they do. They also guess based on the file extension. Maybe it is a weird Android issue, like you said. In any case, I've removed the MIME type filter in #97. |
Hello,
thanks a lot for your efforts, its a quite nice app after a first look. Below are three issues (one important possibly) and a feature request.
Device: G8441, Android version 9, API 28
(Issue) App crashes when enabling require authentication
After enabling "require authentication", app crashes on open, clearing data is necessary (to clear the condition) in order to restore app to functional. ADB/logcat shows the following:
As i understand it is just an unsupported API call for this Android version, maybe a catch around the exception would mitigate this. Further, as I am not interested in the biometric aspect of authentication but rather the PIN functionality, maybe there is an easy conditional to split the options for older API versions?
(Issue) App cannot open any file on filesystem, other than files it has created
If i try to import a config file from the local filesystem, all (most) files including the config file are greyed out and non-selectable.
Workaround
If I then however (2) export a blank config file from the app (works, no errors), (2) edit the config file externally and adding information and (3) attempt to import it, that particular file is still selectable and I am able to import it. This looks to be some obscure FS permission issue (?) with no relevant logcat information (even when verbose mode is selected)
logcat info upon pressing "import configuration" are not relevant (at least upon first inspection):
logcat info upon pressing a greyed out file is a drawing update, also not relevant:
I also checked whether there are any fs permissions missing but I do not have any available selectable permissions at all for the app.
(Minor issue) App window overextends under bottom navigation bar
This is not as important, the app borders do not snap to within the active display area and overextend under the bottom navigation bar (maybe the minSize sets are too large - given i am using a small display).
(Feature request) Selectable theme
A dark (selectable) theme would be nice but not really of any importance.
Again thanks a lot for your efforts and a nice app :)
The text was updated successfully, but these errors were encountered: