I'm not really focusing on adding new sync methods currently. Oftentimes the apps for the various servers, like NextCloud, will open their files in PasswdSafe and allow for saving. Be sure to test a change, but last I checked NextCloud does work properly.
passwdsafe: file: Add TOTP config record fields
passwdsafe: file: Add 40-bit save PwsTimeField format
passwdsafe: file: Remove unused offsets from Util utilities
passwdsafe: file: Refactor PwsTimeField formats
project: Ignore test file .ibak and .plk files
github: Update build action versions
github: Update to CodeQL v4
passwdsafe: Update dialogs to use listener-specific keys
sync: SyncLogsFragment: Convert to MenuProvider
sync: SyncedFilesFragment: Convert to MenuProvider
passwdsafe: SyncProviderFilesFragment: Convert to MenuProvider
passwdsafe: SyncProviderFragment: Convert to MenuProvider
passwdsafe: StorageFileListFragment: Convert to MenuProvider
passwdsafe: Use activity result contract to choose record shortcuts
passwdsafe: Use activity result contract to choose the default file
passwdsafe: Use activity result contract to open a file
passwdsafe: Use activity result contract to create a file
project: Ignore isEmpty calls to StringBuilder
project: Use native line separator
all: Update libraries
gradle: Update
You can follow the feature on github at https://github.com/jefftharris/passwdsafe/issues/14. I'm fairly close to having basic support. it's more a matter of finding time on the weekends.
I would suggest saving from the email to some location in your internal storage. The email will be subject to the email app providing the file attachment which could cause the inconstancy.
The app only manages the backup files itself. They are in a private app directory that you shouldn't be able to access. The app doesn't do any special management for the user file. New files normally are created in the top directory of the internal storage, though the user can choose some other directory. I'd suggest opening and checking any file before deleting to make sure it's not one you need.
Unfortunately, there's no built-in backup of the full file. If you modified it before, there may be a backup you can restore. Check the top-left menu for the backups. If there's a file, you can open it and restore.
passwdsafe: LauncherRecordShortcuts: Cleanup file data view properly
passwdsafe: Use ViewPager2 with PasswdSafeRecordFragment
passwdsafe: PasswdSafePolicyListFragment: Convert to MenuProvider
passwdsafe: Use fragment results with PasswdPolicyEditDialog
passwdsafe: Use fragment results with NewGroupDialog
passwdsafe: Use fragment results with TimePickerDialogFragment
project: Update extends code style to wrap all items
passwdsafe: Use fragment results with DatePickerDialogFragment
passwdsafe: Cleanup analyzer issues
passwdsafe: Use fragment results with ConfirmPromptDialog
lib: Utils: Add getEnum method for bundles
passwdsafe: PasswdSafeEditRecordFragment: Show TOTP value
passwdsafe: PasswdSafeRecordTotpViewModel: Reset state values if TOTP not OK
passwdsafe: PasswdSafeRecordFragment: Show alias/shortcut TOTP from linked
passwdsafe: PasswdSafeRecordTotpViewModel: Add more steps to TOTP progress
passwdsafe: PasswdSafeEditRecordFragment: Add TOTP config
passwdsafe: Rename to PasswdSafeRecordTotpViewModel
passwdsafe: PasswdSafeRecordPasswordFragment: Show TOTP config
passwdsafe: file: Add TOTP tests from PC Password Safe
passwdsafe: file: Use lenient Base32 decoding for secret key
passwdsafe: file: Support same TOTP secret key characters as Password Safe
passwdsafe: file: Add Totp equals method
passwdsafe: file: Add accessors for Totp configuration fields
passwdsafe: PasswdSafeRecordBasicViewModel: Rename for TOTP state
passwdsafe: CloseableLiveData: Do not set value during finalize
project: Disable isEmpty inspection on CharSequence
The warning is there to make sure you really want to copy the password. The clipboard is readable by all apps, typically, so it's not the best security to have passwords there. There's no clear Android call apps can make to clear the clipboard, and some devices have a clipboard history that can save the contents and such. The app tries to mark the password as secure, but it's not as good as the custom keyboard. From that warning dialog, there should be an option to got to the 'languages and input'...
I've never tried Graphene, but I'd imagine PasswdSafe would work via the Play store install. The app doesn't require lots of special permissions. The github project has the signed apk files if you need to sideload it.
passwdsafe: Add auth code to PasswdSafeRecordBasicFragment menus
passwdsafe: Show TOTP auth code in PasswdSafeRecordBasicFragment
passwdsafe: file: Support two-factor key field for TOTP authentication code
passwdsafe: Refactor use of PasswdTimeoutPref in PasswdSafeRecordBasicFragment
passwdsafe: Add RFC 6238 TOTP generator
passwdsafe: file: Add PwsPassword equals method
passwdsafe: lib: Add nullability annotation to Util.clearArray
passwdsafe: CloseableLiveData: When inactive, close only if no observers
passwdsafe: CloseableLiveData: Close value before setting next
passwdsafe: CloseableLiveData: Add ctor with value
passwdsafe: Use AutoCloseable instead of Closeable
passwdsafe: Cleanup calls to finalize
passwdsafe: Use an async call to auto open the debug file
test: Add TOTP entry to test.psafe3
all: Update libraries
gradle: Update
passwdsafe: Convert PasswdSafeOpenFileViewModelData.ResolveData to record class
passwdsafe: Convert PasswdSafeOpenFileFragment.OpenResult to record class
passwdsafe: Convert PasswdSafeListFragment ItemSection to record class
passwdsafe: Convert PasswdSafeIME.RefreshResult to record class
passwdsafe: Convert PasswdRecordListData to record class
passwdsafe: Convert RecordPolicyStrs and ParsedFields to record class
passwdsafe: Convert PasswdFileUri.FilePerms to record class
passwdsafe: Convert PasswdExpiration to record class
passwdsafe: Convert Pair to record class
passwdsafe: Convert EditRecordResult to record class
passwdsafe: Convert RecordInfo to record class
lib,passwdsafe,sync: Suppress record class conversion inspection
project: Disable record class inspection on Entity classes
project: Set code style for record classes
passwdsafe: test: Add test for ASCII time encoding in header
passwdsafe: file: Add non-default prefs and tree display V3 header fields
passwdsafe: test: Add V3 header field tests
passwdsafe: file: Use typed fields for the header record
passwdsafe: file: PwsTimeField: Add stored time format
passwdsafe: file: Add major and minor fields for PwsVersionField
passwdsafe: file: Use PwsVersionField class for version field
Yea, it must be something happening with the Drive app timing-out the URL for the file. Unfortunately, PasswdSafe can't force Drive to create more permanent links to its files. Does marking the file as "available offline" in the Drive app help? Otherwise, you may be able to use the Drive app to create a shortcut to the file on your home screen.
I tested opening a psafe file stored in my Google Drive using the PasswdSafe file chooser, and the item seemed to stay in the recent files list. From the Files screen, I clicked the bottom-right icon to open the chooser, selected the Drive account and file, and opened it. Were you opening some other way, say from the Drive app? Only files from the chooser are remembered, currently.
Normally, Android questions should be over at its project site at https://sourceforge.net/projects/passwdsafe/support, but I can help here some. Where do you have the file stored? Android uses URLs for files, and the app has to ask whether the URLs still exist when it refreshes the list. Depending on where the file is stored, the app providing the file may not have stable URLs, and so the file may disappear.
In the top-left menu, under Preferences -> File, there is an option for the default file to open. Check whether anything is selected.
passwdsafe: file: Refactor record type for headers
passwdsafe: file: Normalize date of new PwsTimeField
passwdsafe: file: Rename PwsField fields