update to pCloud SDK 1.2.0 and implement support for different dataHosts (depending on data server location). Closes #1257
This commit is contained in:
Binary file not shown.
BIN
src/PCloudBindings/Jars/pcloud-sdk-android-1.2.0.aar
Normal file
BIN
src/PCloudBindings/Jars/pcloud-sdk-android-1.2.0.aar
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/PCloudBindings/Jars/pcloud-sdk-java-core-1.2.0.jar
Normal file
BIN
src/PCloudBindings/Jars/pcloud-sdk-java-core-1.2.0.jar
Normal file
Binary file not shown.
@@ -55,7 +55,7 @@
|
||||
<ItemGroup>
|
||||
<None Include="Jars\AboutJars.txt" />
|
||||
<None Include="Additions\AboutAdditions.txt" />
|
||||
<LibraryProjectZip Include="Jars\pcloud-sdk-android-1.1.0.aar" />
|
||||
<LibraryProjectZip Include="Jars\pcloud-sdk-android-1.2.0.aar" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TransformFile Include="Transforms\Metadata.xml" />
|
||||
@@ -71,6 +71,6 @@
|
||||
</Target>
|
||||
-->
|
||||
<ItemGroup>
|
||||
<EmbeddedReferenceJar Include="Jars\pcloud-sdk-java-core-1.1.0.jar" />
|
||||
<EmbeddedReferenceJar Include="Jars\pcloud-sdk-java-core-1.2.0.jar" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -40,8 +40,8 @@ dependencies {
|
||||
compile('com.onedrive.sdk:onedrive-sdk-android:1.2.0') {
|
||||
transitive = false
|
||||
}
|
||||
compile 'com.pcloud.sdk:java-core:1.1.0'
|
||||
compile 'com.pcloud.sdk:android:1.1.0'
|
||||
compile 'com.pcloud.sdk:java-core:1.2.0'
|
||||
compile 'com.pcloud.sdk:android:1.2.0'
|
||||
compile 'com.google.code.gson:gson:2.3.1'
|
||||
compile 'com.microsoft.services.msa:msa-auth:0.8.6'
|
||||
compile 'com.microsoft.aad:adal:1.14.0'
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
android:versionName="1.0">
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="14"
|
||||
android:targetSdkVersion="14" />
|
||||
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.pcloud.sdk.ApiClient;
|
||||
import com.pcloud.sdk.ApiError;
|
||||
import com.pcloud.sdk.Authenticators;
|
||||
import com.pcloud.sdk.AuthorizationActivity;
|
||||
import com.pcloud.sdk.AuthorizationData;
|
||||
import com.pcloud.sdk.AuthorizationResult;
|
||||
import com.pcloud.sdk.Call;
|
||||
import com.pcloud.sdk.DataSource;
|
||||
@@ -40,6 +41,7 @@ public class PCloudFileStorage extends JavaFileStorageBase
|
||||
|
||||
final static private String SHARED_PREF_NAME = "PCLOUD";
|
||||
final static private String SHARED_PREF_AUTH_TOKEN = "AUTH_TOKEN";
|
||||
final static private String SHARED_PREF_API_HOST = "API_HOST";
|
||||
|
||||
private final Context ctx;
|
||||
|
||||
@@ -237,18 +239,18 @@ public class PCloudFileStorage extends JavaFileStorageBase
|
||||
public void onActivityResult(FileStorageSetupActivity activity, int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == PCLOUD_AUTHORIZATION_REQUEST_CODE && data != null) {
|
||||
activity.getState().putBoolean("hasStartedAuth", false);
|
||||
AuthorizationResult result = (AuthorizationResult)(
|
||||
data.getSerializableExtra(AuthorizationActivity.KEY_AUTHORIZATION_RESULT)
|
||||
);
|
||||
this.handleAuthResult(activity, result, data);
|
||||
AuthorizationData authData = AuthorizationActivity.getResult(data);
|
||||
|
||||
|
||||
this.handleAuthResult(activity, authData);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleAuthResult(FileStorageSetupActivity activity, AuthorizationResult authorizationResult,
|
||||
Intent data) {
|
||||
if (authorizationResult == AuthorizationResult.ACCESS_GRANTED) {
|
||||
String authToken = data.getStringExtra(AuthorizationActivity.KEY_ACCESS_TOKEN);
|
||||
setAuthToken(authToken);
|
||||
private void handleAuthResult(FileStorageSetupActivity activity, AuthorizationData authorizationData) {
|
||||
if (authorizationData.result == AuthorizationResult.ACCESS_GRANTED) {
|
||||
String authToken = authorizationData.token;
|
||||
String apiHost = authorizationData.apiHost;
|
||||
setAuthToken(authToken, apiHost);
|
||||
finishActivityWithSuccess(activity);
|
||||
} else {
|
||||
Activity castedActivity = (Activity)activity;
|
||||
@@ -267,19 +269,20 @@ public class PCloudFileStorage extends JavaFileStorageBase
|
||||
private ApiClient createApiClientFromSharedPrefs() {
|
||||
SharedPreferences prefs = this.ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
|
||||
String authToken = prefs.getString(SHARED_PREF_AUTH_TOKEN, null);
|
||||
return this.createApiClient(authToken);
|
||||
String apiHost = prefs.getString(SHARED_PREF_API_HOST, null);
|
||||
return this.createApiClient(authToken, apiHost);
|
||||
}
|
||||
|
||||
private ApiClient createApiClient(String authToken) {
|
||||
if (authToken == null) {
|
||||
private ApiClient createApiClient(String authToken, String apiHost) {
|
||||
if (authToken == null || apiHost == null) {
|
||||
return null;
|
||||
}
|
||||
ApiClient.Builder builder = PCloudSdk.newClientBuilder();
|
||||
builder = builder.apiHost(apiHost);
|
||||
|
||||
return (
|
||||
PCloudSdk.newClientBuilder()
|
||||
.authenticator(Authenticators.newOAuthAuthenticator(authToken))
|
||||
.create()
|
||||
);
|
||||
return builder
|
||||
.authenticator(Authenticators.newOAuthAuthenticator(authToken))
|
||||
.create();
|
||||
}
|
||||
|
||||
private boolean isConnected() {
|
||||
@@ -294,11 +297,12 @@ public class PCloudFileStorage extends JavaFileStorageBase
|
||||
edit.apply();
|
||||
}
|
||||
|
||||
private void setAuthToken(String authToken) {
|
||||
this.apiClient = this.createApiClient(authToken);
|
||||
private void setAuthToken(String authToken, String apiHost) {
|
||||
this.apiClient = this.createApiClient(authToken, apiHost);
|
||||
SharedPreferences prefs = this.ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor edit = prefs.edit();
|
||||
edit.putString(SHARED_PREF_AUTH_TOKEN, authToken);
|
||||
edit.putString(SHARED_PREF_API_HOST, apiHost);
|
||||
edit.apply();
|
||||
}
|
||||
|
||||
|
||||
@@ -147,12 +147,14 @@ import java.util.List;
|
||||
//import keepass2android.javafilestorage.DropboxCloudRailStorage;
|
||||
import keepass2android.javafilestorage.JavaFileStorage;
|
||||
import keepass2android.javafilestorage.JavaFileStorage.FileEntry;
|
||||
import keepass2android.javafilestorage.PCloudFileStorage;
|
||||
import keepass2android.javafilestorage.SftpStorage;
|
||||
import keepass2android.javafilestorage.UserInteractionRequiredException;
|
||||
import keepass2android.javafilestorage.WebDavStorage;
|
||||
import keepass2android.kp2afilechooser.StorageFileProvider;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.app.Activity;
|
||||
@@ -160,6 +162,7 @@ import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
@@ -471,7 +474,8 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
|
||||
|
||||
|
||||
findViewById(R.id.button_test_preparefileusage).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
|
||||
public void onClick(View v) {
|
||||
|
||||
final String path = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).getString("selectedPath", "");
|
||||
if (path.equals(""))
|
||||
@@ -534,7 +538,8 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
|
||||
}
|
||||
|
||||
static JavaFileStorage createStorageToTest(Context ctx, Context appContext, boolean simulateRestart) {
|
||||
storageToTest = new SftpStorage(ctx.getApplicationContext());
|
||||
//storageToTest = new SftpStorage(ctx.getApplicationContext());
|
||||
storageToTest = new PCloudFileStorage(ctx, "yCeH59Ffgtm");
|
||||
//storageToTest = new SkyDriveFileStorage("000000004010C234", appContext);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user