This commit is contained in:
Philipp Crocoll
2018-11-11 06:36:40 +01:00
8 changed files with 22 additions and 13 deletions

View File

@@ -2,7 +2,7 @@ Keepass2Android's apk is pretty big, e.g. when comparing to Keepassdroid. The ma
Here's a list of what is contained in the Keepass2Android 0.9.1 application package: Here's a list of what is contained in the Keepass2Android 0.9.1 application package:
{{ ```
Mono for Android Mono for Android
.net dlls 5.0 MB .net dlls 5.0 MB
Runtime 2.5 MB Runtime 2.5 MB
@@ -22,4 +22,4 @@ Java/Mono bindings 0.5 MB
rest 0.3 MB rest 0.3 MB
TOTAL 13 MB TOTAL 13 MB
}} ```

View File

@@ -1,3 +1,6 @@
<h1 align="center"><img src="/src/keepass2android/Resources/mipmap-xxxhdpi/ic_launcher_online.png" align="center" width="100" alt="Keepass2Android Logo">Keepass2Android</h1>
# What is Keepass2Android? # What is Keepass2Android?
Keepass2Android is a password manager app. It allows to store and retrieve passwords and other sensitive information in a file called "database". This database is secured with a so-called master password. The master password typically is a strong password and can be complemented with a second factor for additional security. Keepass2Android is a password manager app. It allows to store and retrieve passwords and other sensitive information in a file called "database". This database is secured with a so-called master password. The master password typically is a strong password and can be complemented with a second factor for additional security.
The password database file can be synchronized across different devices. This works best using one of the built-in cloud storage options, but can also be performed with third-party apps. Keepass2Android is compatible with Keepass 1 and Keepass 2 on Windows and KeepassX on Linux. The password database file can be synchronized across different devices. This works best using one of the built-in cloud storage options, but can also be performed with third-party apps. Keepass2Android is compatible with Keepass 1 and Keepass 2 on Windows and KeepassX on Linux.

View File

@@ -178,7 +178,9 @@ namespace keepass2android.Io
if (!IsCached(ioc)) if (!IsCached(ioc))
throw; throw;
Kp2aLog.Log("couldn't open from remote " + ioc.Path); #if DEBUG
Kp2aLog.Log("couldn't open from remote " + ioc.Path);
#endif
Kp2aLog.Log(ex.ToString()); Kp2aLog.Log(ex.ToString());
_cacheSupervisor.CouldntOpenFromRemote(ioc, ex); _cacheSupervisor.CouldntOpenFromRemote(ioc, ex);

View File

@@ -233,7 +233,6 @@ namespace keepass2android.Io
public FileDescription GetFileDescription(IOConnectionInfo ioc) public FileDescription GetFileDescription(IOConnectionInfo ioc)
{ {
Kp2aLog.Log("GetFileDescription "+ioc.Path);
try try
{ {
return ConvertToFileDescription(Jfs.GetFileEntry(IocToPath(ioc))); return ConvertToFileDescription(Jfs.GetFileEntry(IocToPath(ioc)));
@@ -302,7 +301,9 @@ namespace keepass2android.Io
public void OnResume(IFileStorageSetupActivity activity) public void OnResume(IFileStorageSetupActivity activity)
{ {
#if DEBUG
Kp2aLog.Log("JFS/OnResume Ioc.Path=" +activity.Ioc.Path+". Path="+((IJavaFileStorageFileStorageSetupActivity)activity).Path); Kp2aLog.Log("JFS/OnResume Ioc.Path=" +activity.Ioc.Path+". Path="+((IJavaFileStorageFileStorageSetupActivity)activity).Path);
#endif
_jfs.OnResume(((IJavaFileStorageFileStorageSetupActivity) activity)); _jfs.OnResume(((IJavaFileStorageFileStorageSetupActivity) activity));
} }
@@ -366,4 +367,4 @@ namespace keepass2android.Io
} }
} }
#endif #endif
} }

View File

@@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import java.util.UUID;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import com.pcloud.sdk.ApiClient; import com.pcloud.sdk.ApiClient;
@@ -52,7 +53,7 @@ public class PCloudFileStorage extends JavaFileStorageBase
@Override @Override
public boolean requiresSetup(String path) { public boolean requiresSetup(String path) {
return true; return !this.isConnected();
} }
@Override @Override
@@ -135,8 +136,10 @@ public class PCloudFileStorage extends JavaFileStorageBase
String filePath = path.substring(0, path.lastIndexOf("/") + 1); String filePath = path.substring(0, path.lastIndexOf("/") + 1);
RemoteFolder remoteFolder = this.getRemoteFolderByPath(filePath); RemoteFolder remoteFolder = this.getRemoteFolderByPath(filePath);
String tempName = "." + UUID.randomUUID().toString();
try { try {
this.apiClient.createFile(remoteFolder, filename, dataSource).execute(); RemoteFile remoteFile = this.apiClient.createFile(remoteFolder, tempName, dataSource).execute();
this.apiClient.rename(remoteFile, filename).execute();
} catch (ApiError e) { } catch (ApiError e) {
throw convertApiError(e); throw convertApiError(e);
} }
@@ -372,7 +375,7 @@ public class PCloudFileStorage extends JavaFileStorageBase
private Exception convertApiError(ApiError e) { private Exception convertApiError(ApiError e) {
String strErrorCode = String.valueOf(e.errorCode()); String strErrorCode = String.valueOf(e.errorCode());
if (strErrorCode.startsWith("1") || "2000".equals(strErrorCode)) { if (strErrorCode.startsWith("1") || "2000".equals(strErrorCode) || "2095".equals(strErrorCode)) {
this.clearAuthToken(); this.clearAuthToken();
return new UserInteractionRequiredException("Unlinked from PCloud! User must re-link.", e); return new UserInteractionRequiredException("Unlinked from PCloud! User must re-link.", e);
} else if (strErrorCode.startsWith("2")) { } else if (strErrorCode.startsWith("2")) {

View File

@@ -515,8 +515,8 @@
<string name="enter_owncloud_login_title">Enter OwnCloud login data:</string> <string name="enter_owncloud_login_title">Enter OwnCloud login data:</string>
<string name="hint_owncloud_url">OwnCloud URL (ex: owncloud.me.com)</string> <string name="hint_owncloud_url">OwnCloud URL (ex: owncloud.me.com)</string>
<string name="enter_nextcloud_login_title">Enter NextCloud login data:</string> <string name="enter_nextcloud_login_title">Enter Nextcloud login data:</string>
<string name="hint_nextcloud_url">NextCloud URL (ex: nextcloud.me.com)</string> <string name="hint_nextcloud_url">Nextcloud URL (ex: nextcloud.me.com)</string>
<string name="hint_sftp_host">host (ex: 192.168.0.1)</string> <string name="hint_sftp_host">host (ex: 192.168.0.1)</string>
<string name="hint_sftp_port">port</string> <string name="hint_sftp_port">port</string>
@@ -538,7 +538,7 @@
<string name="filestoragename_http">HTTP (WebDav)</string> <string name="filestoragename_http">HTTP (WebDav)</string>
<string name="filestoragename_https">HTTPS (WebDav)</string> <string name="filestoragename_https">HTTPS (WebDav)</string>
<string name="filestoragename_owncloud">OwnCloud</string> <string name="filestoragename_owncloud">OwnCloud</string>
<string name="filestoragename_nextcloud">NextCloud</string> <string name="filestoragename_nextcloud">Nextcloud</string>
<string name="filestoragename_dropbox">Dropbox</string> <string name="filestoragename_dropbox">Dropbox</string>
<string name="filestoragename_dropboxKP2A">Dropbox (KP2A folder)</string> <string name="filestoragename_dropboxKP2A">Dropbox (KP2A folder)</string>
<string name="filestoragehelp_dropboxKP2A">If you do not want to give KP2A access to your full Dropbox, you may select this option. It will request only access to the folder Apps/Keepass2Android. This is especially suited when creating a new database. If you already have a database, click this option to create the folder, then place your file inside the folder (from your PC) and then select this option again for opening the file.</string> <string name="filestoragehelp_dropboxKP2A">If you do not want to give KP2A access to your full Dropbox, you may select this option. It will request only access to the folder Apps/Keepass2Android. This is especially suited when creating a new database. If you already have a database, click this option to create the folder, then place your file inside the folder (from your PC) and then select this option again for opening the file.</string>

View File

@@ -44,7 +44,7 @@ namespace keepass2android.fileselect
Ioc = new IOConnectionInfo(); Ioc = new IOConnectionInfo();
Util.SetIoConnectionFromIntent(Ioc, Intent); Util.SetIoConnectionFromIntent(Ioc, Intent);
Kp2aLog.Log("FSSA.OnCreate with " + Ioc.Path); Kp2aLog.Log("FSSA.OnCreate");
ProcessName = Intent.GetStringExtra(FileStorageSetupDefs.ExtraProcessName); ProcessName = Intent.GetStringExtra(FileStorageSetupDefs.ExtraProcessName);
IsForSave = Intent.GetBooleanExtra(FileStorageSetupDefs.ExtraIsForSave, false); IsForSave = Intent.GetBooleanExtra(FileStorageSetupDefs.ExtraIsForSave, false);

View File

@@ -32,7 +32,7 @@ namespace keepass2android
public void StartSelectFileProcess(IOConnectionInfo ioc, bool isForSave, int requestCode) public void StartSelectFileProcess(IOConnectionInfo ioc, bool isForSave, int requestCode)
{ {
Kp2aLog.Log("FSSIA: StartSelectFileProcess "+ioc.Path); Kp2aLog.Log("FSSIA: StartSelectFileProcess ");
Intent fileStorageSetupIntent = new Intent(_activity, typeof(FileStorageSetupActivity)); Intent fileStorageSetupIntent = new Intent(_activity, typeof(FileStorageSetupActivity));
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraProcessName, FileStorageSetupDefs.ProcessNameSelectfile); fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraProcessName, FileStorageSetupDefs.ProcessNameSelectfile);
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraIsForSave, isForSave); fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraIsForSave, isForSave);