fix issue with receiving meta data: previous implementation was repeatedly listing the full contents of pCloud recursively which is slow and might not work for large contents (https://github.com/pCloud/pcloud-sdk-java/issues/42)
-Refactor the logger implementation to make creation more intuitive
-Remove SSH debug logging preference persistence (didn't work properly
anyway, and probably not worth trying to fix)
-Re-organize SFTP Credentials dialog to be more space-efficient
-Add KEX and SHK algorithm spec fields (these get used to build the SFTP
URI when connecting)
-Add CSV test fields/buttons for standalone testing of spec/config
resolution
-App Settings->Log-File for Debugging->SFTP debug logging
-Logs to android log (logcat) if log file is not enabled
-Logs to Kp2a log file if it is enabled
-Logs are tagged as "KP2AJFS[JSch]"
-When enabled, logs ALL levels (DEBUG+).
NOTE: Sensitive SSH connection information may be logged!!
URL encode/decode host parameter in SFTP URI
This version is slightly different than the original PR, given
this branch's changes to SftpStorage.buildFullPath().
Since IPv6 addresses contain colons, they break the host:port URI
parsing logic, since "host" will have colons in it.
This fix adds URL encoding/decoding of the "host" parameter, thus
removing any possible colons in that parameter that could conflict
with the host:port separator.
-Generalize SFTP query param option map building
-Add "key" and "phrase" as SFTP query params
key: custom private key name
phrase: passphrase used to unlock key
-Add CRUD support for custom private keys
Key files are stored in "user_keys" subdirectory
File names are constructed by (sanitized) key name
Basic support for private key content validation
-Existing and new key-related functionality moved into
SftpPublicPrivateKeyUtils class
UI:
-Add custom private key support to SFTP Credentials dialog
Add a new auth mode item (authModeSpinner)
Add Spinner showing saved private key names, with an option
to create a new one (top).
Add Delete Private Key button; deletes the selected key
in Spinner
Testing:
-Add custom private key CRUD support to JavaFileStorageTest app
via file chooser SFTP Credentials panel
Add FLAG_MUTABLE flag to PendingIntent call for API >= 31 to fix an
issue where trying to open an SFTP database (transition to choose a
remote database file) crashes and returns to the Open/New database
screen.
Add FLAG_MUTABLE flag to PendingIntent call for API >= 31 to fix an
issue where trying to open an SFTP database (transition to choose a
remote database file) crashes and returns to the Open/New database
screen.
Set max heap to 1.5G across all java projects. Inspection
via VisualVM found 1G to be a little too aggressive, while
2G seemed overkill. In any case a full build now can reuse
a single GradleDaemon instance instead of three.