diff --git a/src/Kp2aBusinessLogic/Io/PCloudFileStorage.cs b/src/Kp2aBusinessLogic/Io/PCloudFileStorage.cs
index 9f7449ef..efae6706 100644
--- a/src/Kp2aBusinessLogic/Io/PCloudFileStorage.cs
+++ b/src/Kp2aBusinessLogic/Io/PCloudFileStorage.cs
@@ -3,14 +3,15 @@ using Android.Content;
namespace keepass2android.Io
{
- public partial class PCloudFileStorage: JavaFileStorage
+ public class PCloudFileStorage: JavaFileStorage
{
private const string ClientId = "CkRWTQXY6Lm";
public PCloudFileStorage(Context ctx, IKp2aApp app) :
- base(new Keepass2android.Javafilestorage.PCloudFileStorage(ctx, ClientId), app)
+ base(new Keepass2android.Javafilestorage.PCloudFileStorage(ctx, ClientId, "pcloud", ""), app)
{
- }
+
+ }
public override bool UserShouldBackup
@@ -18,6 +19,23 @@ namespace keepass2android.Io
get { return false; }
}
}
+ public class PCloudFileStorageAll : JavaFileStorage
+ {
+ private const string ClientId = "FLm22de7bdS";
+
+ public PCloudFileStorageAll(Context ctx, IKp2aApp app) :
+ base(new Keepass2android.Javafilestorage.PCloudFileStorage(ctx, ClientId, "pcloudall", "PCLOUDALL_"), app)
+ {
+
+
+ }
+
+
+ public override bool UserShouldBackup
+ {
+ get { return false; }
+ }
+ }
}
#endif
\ No newline at end of file
diff --git a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/PCloudFileStorage.java b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/PCloudFileStorage.java
index 60594045..2652a4ef 100644
--- a/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/PCloudFileStorage.java
+++ b/src/java/JavaFileStorage/app/src/main/java/keepass2android/javafilestorage/PCloudFileStorage.java
@@ -48,11 +48,19 @@ public class PCloudFileStorage extends JavaFileStorageBase
private ApiClient apiClient;
private String clientId;
+ private String protocolId;
- public PCloudFileStorage(Context ctx, String clientId) {
+ ///prefix for SHARED_PREF keys so we can distinguish between different instances
+ private String sharedPrefPrefix;
+
+ public PCloudFileStorage(Context ctx, String clientId, String protocolId, String sharedPrefPrefix) {
this.ctx = ctx;
this.clientId = clientId;
+ this.protocolId = protocolId;
+ this.sharedPrefPrefix = sharedPrefPrefix;
+
this.apiClient = createApiClientFromSharedPrefs();
+ android.util.Log.d("KP2A", "Init pcloud with protocol " + protocolId + ", prefix=" + sharedPrefPrefix + ", clientId=" + clientId);
}
@Override
@@ -87,7 +95,8 @@ public class PCloudFileStorage extends JavaFileStorageBase
@Override
public String getProtocolId() {
- return "pcloud";
+
+ return protocolId;
}
@Override
@@ -239,6 +248,7 @@ public class PCloudFileStorage extends JavaFileStorageBase
activity.getState().putBoolean("hasStartedAuth", true);
}
+
}
@Override
@@ -279,7 +289,7 @@ public class PCloudFileStorage extends JavaFileStorageBase
}
private ApiClient createApiClientFromSharedPrefs() {
- SharedPreferences prefs = this.ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
+ SharedPreferences prefs = this.ctx.getSharedPreferences(sharedPrefPrefix + SHARED_PREF_NAME, Context.MODE_PRIVATE);
String authToken = prefs.getString(SHARED_PREF_AUTH_TOKEN, null);
String apiHost = prefs.getString(SHARED_PREF_API_HOST, null);
return this.createApiClient(authToken, apiHost);
diff --git a/src/keepass2android/Resources/drawable-mdpi/ic_storage_pcloudall.png b/src/keepass2android/Resources/drawable-mdpi/ic_storage_pcloudall.png
new file mode 100644
index 00000000..1e4decf4
Binary files /dev/null and b/src/keepass2android/Resources/drawable-mdpi/ic_storage_pcloudall.png differ
diff --git a/src/keepass2android/Resources/drawable-xhdpi/ic_storage_pcloudall.png b/src/keepass2android/Resources/drawable-xhdpi/ic_storage_pcloudall.png
new file mode 100644
index 00000000..26806fce
Binary files /dev/null and b/src/keepass2android/Resources/drawable-xhdpi/ic_storage_pcloudall.png differ
diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml
index 52f858ae..4c5bf8c4 100644
--- a/src/keepass2android/Resources/values/strings.xml
+++ b/src/keepass2android/Resources/values/strings.xml
@@ -614,8 +614,9 @@
Google Drive
Google Drive (KP2A files)
If you do not want to give KP2A access to your full Google Drive, you may select this option. Note that you need to create a database file first, existing files are not visible to the app. Either choose this option from the Create database screen or, if you already opened a database, by exporting the database choosing this option.
- PCloud
+ PCloud (KP2A folder)
This storage type will only request access to the pCloud folder "Applications/Keepass2Android". If you want to use an existing database from your pCloud account, please make sure the file is placed in this pCloud folder.
+ PCloud (Full access)
OneDrive
OneDrive
All files and shared files
diff --git a/src/keepass2android/app/App.cs b/src/keepass2android/app/App.cs
index 81b0aa7d..36d2810c 100644
--- a/src/keepass2android/app/App.cs
+++ b/src/keepass2android/app/App.cs
@@ -751,7 +751,8 @@ namespace keepass2android
new NetFtpFileStorage(LocaleManager.LocalizedAppContext, this),
new WebDavFileStorage(this),
new PCloudFileStorage(LocaleManager.LocalizedAppContext, this),
- new MegaFileStorage(App.Context),
+ new PCloudFileStorageAll(LocaleManager.LocalizedAppContext, this),
+ new MegaFileStorage(App.Context),
//new LegacyWebDavStorage(this),
//new LegacyFtpStorage(this),
#endif
diff --git a/src/keepass2android/keepass2android-app.csproj b/src/keepass2android/keepass2android-app.csproj
index 07af894c..dcc1a912 100644
--- a/src/keepass2android/keepass2android-app.csproj
+++ b/src/keepass2android/keepass2android-app.csproj
@@ -1979,6 +1979,12 @@
Designer
+
+
+
+
+
+