GoogleDriveFileStorage: update libraries and reimplement authentication workflow to show consent screen (verification by Google now passed); migrate Java filestorage and filechooser projects to AndroidX; disable "app is blocked" message; see #1833
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -171,3 +171,4 @@ src/java/Keepass2AndroidPluginSDK2/build/generated/mockable-Google-Inc.-Google-A
|
|||||||
/src/java/KP2ASoftkeyboard_AS/app/src/main/libs
|
/src/java/KP2ASoftkeyboard_AS/app/src/main/libs
|
||||||
/src/java/KP2AKdbLibrary/app/.cxx
|
/src/java/KP2AKdbLibrary/app/.cxx
|
||||||
/src/ActionViewFilterTest
|
/src/ActionViewFilterTest
|
||||||
|
/docs/gdrive-verification
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/JavaFileStorageBindings/Jars/gdrive/grpc-context-1.22.1.jar
Normal file
BIN
src/JavaFileStorageBindings/Jars/gdrive/grpc-context-1.22.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/JavaFileStorageBindings/Jars/gdrive/jsr305-3.0.2.jar
Normal file
BIN
src/JavaFileStorageBindings/Jars/gdrive/jsr305-3.0.2.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/JavaFileStorageBindings/Jars/gson-2.8.6.jar
Normal file
BIN
src/JavaFileStorageBindings/Jars/gson-2.8.6.jar
Normal file
Binary file not shown.
@@ -1,5 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.props" Condition="Exists('..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.props')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.props" Condition="Exists('..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
@@ -11,9 +13,11 @@
|
|||||||
<AssemblyName>JavaFileStorageBindings</AssemblyName>
|
<AssemblyName>JavaFileStorageBindings</AssemblyName>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
|
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
|
||||||
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
|
||||||
<AndroidClassParser>class-parse</AndroidClassParser>
|
<AndroidClassParser>class-parse</AndroidClassParser>
|
||||||
<AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
|
<AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
@@ -46,11 +50,22 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="Java.Interop" />
|
||||||
<Reference Include="Mono.Android" />
|
<Reference Include="Mono.Android" />
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="GooglePlayServicesLib">
|
<Reference Include="System.Net.Http" />
|
||||||
<HintPath>..\Components\googleplayservices-19.0.0\lib\android\GooglePlayServicesLib.dll</HintPath>
|
<Reference Include="System.Numerics" />
|
||||||
|
<Reference Include="System.Numerics.Vectors" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="Xamarin.Google.Guava, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Xamarin.Google.Guava.28.2.0.1\lib\monoandroid90\Xamarin.Google.Guava.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xamarin.Google.Guava.FailureAccess, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\lib\monoandroid90\Xamarin.Google.Guava.FailureAccess.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xamarin.Google.Guava.ListenableFuture, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.3\lib\monoandroid90\Xamarin.Google.Guava.ListenableFuture.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -62,6 +77,7 @@
|
|||||||
</LibraryProjectZip>
|
</LibraryProjectZip>
|
||||||
<None Include="Jars\AboutJars.txt" />
|
<None Include="Jars\AboutJars.txt" />
|
||||||
<None Include="Additions\AboutAdditions.txt" />
|
<None Include="Additions\AboutAdditions.txt" />
|
||||||
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<TransformFile Include="Transforms\Metadata.xml" />
|
<TransformFile Include="Transforms\Metadata.xml" />
|
||||||
@@ -97,30 +113,12 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\commons-logging-1.1.1.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\commons-logging-1.1.1.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-client-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-client-android-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-services-drive-v2-rev102-1.16.0-rc.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-services-drive-v2-rev102-1.16.0-rc.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-android-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-jackson-1.16.0-rc.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-jackson-1.16.0-rc.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-jackson2-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-oauth-client-1.16.0-rc.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\httpclient-4.0.3.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\httpclient-4.0.3.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -133,18 +131,12 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\json_simple-1.1.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\json_simple-1.1.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\jsr305-1.3.9.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-gson-1.16.0-rc.jar" />
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-gson-1.16.0-rc.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\jackson-core-2.7.4.jar" />
|
<EmbeddedReferenceJar Include="Jars\jackson-core-2.7.4.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedReferenceJar Include="Jars\gson-2.8.1.jar" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedReferenceJar Include="Jars\okhttp-digest-2.5.jar" />
|
<EmbeddedReferenceJar Include="Jars\okhttp-digest-2.5.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -157,4 +149,102 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedJar Include="Jars\dropbox-core-sdk-4.0.0.jar" />
|
<EmbeddedJar Include="Jars\dropbox-core-sdk-4.0.0.jar" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gson-2.8.6.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-android-1.32.1.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\jsr305-3.0.2.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-1.32.1.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-http-client-jackson2-1.32.1.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-client-1.30.5.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-api-client-android-1.30.5.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\google-oauth-client-1.30.4.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\opencensus-contrib-http-util-0.24.0.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\grpc-context-1.22.1.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedReferenceJar Include="Jars\gdrive\opencensus-api-0.24.0.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Annotation.Experimental.1.0.0.9\build\monoandroid9.0\Xamarin.AndroidX.Annotation.Experimental.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Annotation.Experimental.1.0.0.9\build\monoandroid9.0\Xamarin.AndroidX.Annotation.Experimental.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Annotation.Experimental.1.0.0.9\build\monoandroid9.0\Xamarin.AndroidX.Annotation.Experimental.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Annotation.Experimental.1.0.0.9\build\monoandroid9.0\Xamarin.AndroidX.Annotation.Experimental.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.MultiDex.2.0.1.5\build\monoandroid90\Xamarin.AndroidX.MultiDex.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.MultiDex.2.0.1.5\build\monoandroid90\Xamarin.AndroidX.MultiDex.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Annotation.1.2.0\build\monoandroid9.0\Xamarin.AndroidX.Annotation.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Annotation.1.2.0\build\monoandroid9.0\Xamarin.AndroidX.Annotation.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Arch.Core.Common.2.1.0.8\build\monoandroid9.0\Xamarin.AndroidX.Arch.Core.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Arch.Core.Common.2.1.0.8\build\monoandroid9.0\Xamarin.AndroidX.Arch.Core.Common.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Collection.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Collection.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Collection.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Collection.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Lifecycle.Common.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Lifecycle.Common.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Common.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Lifecycle.LiveData.Core.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.LiveData.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Lifecycle.LiveData.Core.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.LiveData.Core.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Lifecycle.Runtime.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Runtime.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Lifecycle.Runtime.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Runtime.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Lifecycle.ViewModel.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Lifecycle.ViewModel.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModel.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.SavedState.1.1.0.1\build\monoandroid9.0\Xamarin.AndroidX.SavedState.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.SavedState.1.1.0.1\build\monoandroid9.0\Xamarin.AndroidX.SavedState.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.VersionedParcelable.1.1.1.7\build\monoandroid9.0\Xamarin.AndroidX.VersionedParcelable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.VersionedParcelable.1.1.1.7\build\monoandroid9.0\Xamarin.AndroidX.VersionedParcelable.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Core.1.3.2.3\build\monoandroid9.0\Xamarin.AndroidX.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Core.1.3.2.3\build\monoandroid9.0\Xamarin.AndroidX.Core.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Activity.1.2.2\build\monoandroid9.0\Xamarin.AndroidX.Activity.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Activity.1.2.2\build\monoandroid9.0\Xamarin.AndroidX.Activity.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.CustomView.1.1.0.6\build\monoandroid9.0\Xamarin.AndroidX.CustomView.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.CustomView.1.1.0.6\build\monoandroid9.0\Xamarin.AndroidX.CustomView.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Loader.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Loader.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Loader.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Loader.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.ViewPager.1.0.0.7\build\monoandroid9.0\Xamarin.AndroidX.ViewPager.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.ViewPager.1.0.0.7\build\monoandroid9.0\Xamarin.AndroidX.ViewPager.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.AndroidX.Fragment.1.3.2\build\monoandroid9.0\Xamarin.AndroidX.Fragment.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.AndroidX.Fragment.1.3.2\build\monoandroid9.0\Xamarin.AndroidX.Fragment.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Basement.117.6.0.4\build\monoandroid90\Xamarin.GooglePlayServices.Basement.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Basement.117.6.0.4\build\monoandroid90\Xamarin.GooglePlayServices.Basement.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Tasks.117.2.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Tasks.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Tasks.117.2.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Tasks.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Base.117.6.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Base.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Base.117.6.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Base.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Auth.Api.Phone.117.5.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Api.Phone.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Auth.Api.Phone.117.5.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Api.Phone.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Auth.Base.117.1.4.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Base.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Auth.Base.117.1.4.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Base.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Auth.119.2.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Auth.119.2.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\build\monoandroid90\Xamarin.Google.Guava.FailureAccess.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\build\monoandroid90\Xamarin.Google.Guava.FailureAccess.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.3\build\monoandroid90\Xamarin.Google.Guava.ListenableFuture.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.3\build\monoandroid90\Xamarin.Google.Guava.ListenableFuture.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Xamarin.Google.Guava.28.2.0.1\build\monoandroid90\Xamarin.Google.Guava.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Google.Guava.28.2.0.1\build\monoandroid90\Xamarin.Google.Guava.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.MultiDex.2.0.1.5\build\monoandroid90\Xamarin.AndroidX.MultiDex.targets" Condition="Exists('..\packages\Xamarin.AndroidX.MultiDex.2.0.1.5\build\monoandroid90\Xamarin.AndroidX.MultiDex.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Migration.1.0.8\build\monoandroid90\Xamarin.AndroidX.Migration.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Annotation.1.2.0\build\monoandroid9.0\Xamarin.AndroidX.Annotation.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Annotation.1.2.0\build\monoandroid9.0\Xamarin.AndroidX.Annotation.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Arch.Core.Common.2.1.0.8\build\monoandroid9.0\Xamarin.AndroidX.Arch.Core.Common.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Arch.Core.Common.2.1.0.8\build\monoandroid9.0\Xamarin.AndroidX.Arch.Core.Common.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Collection.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Collection.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Collection.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Collection.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Lifecycle.Common.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Common.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Lifecycle.Common.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Common.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Lifecycle.LiveData.Core.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.LiveData.Core.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Lifecycle.LiveData.Core.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.LiveData.Core.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Lifecycle.Runtime.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Runtime.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Lifecycle.Runtime.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.Runtime.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Lifecycle.ViewModel.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModel.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Lifecycle.ViewModel.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModel.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.SavedState.1.1.0.1\build\monoandroid9.0\Xamarin.AndroidX.SavedState.targets" Condition="Exists('..\packages\Xamarin.AndroidX.SavedState.1.1.0.1\build\monoandroid9.0\Xamarin.AndroidX.SavedState.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.2.3.1\build\monoandroid9.0\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.VersionedParcelable.1.1.1.7\build\monoandroid9.0\Xamarin.AndroidX.VersionedParcelable.targets" Condition="Exists('..\packages\Xamarin.AndroidX.VersionedParcelable.1.1.1.7\build\monoandroid9.0\Xamarin.AndroidX.VersionedParcelable.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Core.1.3.2.3\build\monoandroid9.0\Xamarin.AndroidX.Core.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Core.1.3.2.3\build\monoandroid9.0\Xamarin.AndroidX.Core.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Activity.1.2.2\build\monoandroid9.0\Xamarin.AndroidX.Activity.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Activity.1.2.2\build\monoandroid9.0\Xamarin.AndroidX.Activity.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.CustomView.1.1.0.6\build\monoandroid9.0\Xamarin.AndroidX.CustomView.targets" Condition="Exists('..\packages\Xamarin.AndroidX.CustomView.1.1.0.6\build\monoandroid9.0\Xamarin.AndroidX.CustomView.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Loader.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Loader.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Loader.1.1.0.7\build\monoandroid9.0\Xamarin.AndroidX.Loader.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.ViewPager.1.0.0.7\build\monoandroid9.0\Xamarin.AndroidX.ViewPager.targets" Condition="Exists('..\packages\Xamarin.AndroidX.ViewPager.1.0.0.7\build\monoandroid9.0\Xamarin.AndroidX.ViewPager.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.AndroidX.Fragment.1.3.2\build\monoandroid9.0\Xamarin.AndroidX.Fragment.targets" Condition="Exists('..\packages\Xamarin.AndroidX.Fragment.1.3.2\build\monoandroid9.0\Xamarin.AndroidX.Fragment.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.targets" Condition="Exists('..\packages\Xamarin.Build.Download.0.10.0\build\Xamarin.Build.Download.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Basement.117.6.0.4\build\monoandroid90\Xamarin.GooglePlayServices.Basement.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Basement.117.6.0.4\build\monoandroid90\Xamarin.GooglePlayServices.Basement.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Tasks.117.2.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Tasks.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Tasks.117.2.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Tasks.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Base.117.6.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Base.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Base.117.6.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Base.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Auth.Api.Phone.117.5.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Api.Phone.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Auth.Api.Phone.117.5.1.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Api.Phone.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Auth.Base.117.1.4.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Base.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Auth.Base.117.1.4.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.Base.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.GooglePlayServices.Auth.119.2.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Auth.119.2.0.3\build\monoandroid90\Xamarin.GooglePlayServices.Auth.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\build\monoandroid90\Xamarin.Google.Guava.FailureAccess.targets" Condition="Exists('..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\build\monoandroid90\Xamarin.Google.Guava.FailureAccess.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.3\build\monoandroid90\Xamarin.Google.Guava.ListenableFuture.targets" Condition="Exists('..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.3\build\monoandroid90\Xamarin.Google.Guava.ListenableFuture.targets')" />
|
||||||
|
<Import Project="..\packages\Xamarin.Google.Guava.28.2.0.1\build\monoandroid90\Xamarin.Google.Guava.targets" Condition="Exists('..\packages\Xamarin.Google.Guava.28.2.0.1\build\monoandroid90\Xamarin.Google.Guava.targets')" />
|
||||||
</Project>
|
</Project>
|
||||||
32
src/JavaFileStorageBindings/packages.config
Normal file
32
src/JavaFileStorageBindings/packages.config
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Xamarin.AndroidX.Activity" version="1.2.2" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Annotation" version="1.2.0" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Annotation.Experimental" version="1.0.0.9" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Arch.Core.Common" version="2.1.0.8" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Collection" version="1.1.0.7" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Core" version="1.3.2.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.CustomView" version="1.1.0.6" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Fragment" version="1.3.2" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Lifecycle.Common" version="2.3.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Lifecycle.LiveData.Core" version="2.3.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Lifecycle.Runtime" version="2.3.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Lifecycle.ViewModel" version="2.3.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Lifecycle.ViewModelSavedState" version="2.3.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Loader" version="1.1.0.7" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.Migration" version="1.0.8" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.MultiDex" version="2.0.1.5" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.SavedState" version="1.1.0.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.VersionedParcelable" version="1.1.1.7" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.AndroidX.ViewPager" version="1.0.0.7" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.Build.Download" version="0.10.0" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.Google.Guava" version="28.2.0.1" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.Google.Guava.FailureAccess" version="1.0.1.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.Google.Guava.ListenableFuture" version="1.0.0.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Auth" version="119.2.0.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Auth.Api.Phone" version="117.5.1.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Auth.Base" version="117.1.4.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Base" version="117.6.0.3" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Basement" version="117.6.0.4" targetFramework="monoandroid90" />
|
||||||
|
<package id="Xamarin.GooglePlayServices.Tasks" version="117.2.1.3" targetFramework="monoandroid90" />
|
||||||
|
</packages>
|
||||||
@@ -29,20 +29,24 @@ dependencies {
|
|||||||
|
|
||||||
compile 'com.squareup.okhttp3:okhttp:4.10.0-RC1'
|
compile 'com.squareup.okhttp3:okhttp:4.10.0-RC1'
|
||||||
compile 'com.burgstaller:okhttp-digest:2.5'
|
compile 'com.burgstaller:okhttp-digest:2.5'
|
||||||
compile 'com.google.android.gms:play-services:4.0.30'
|
|
||||||
compile 'com.google.http-client:google-http-client-gson:1.20.0'
|
compile 'com.google.http-client:google-http-client-gson:1.20.0'
|
||||||
compile('com.google.api-client:google-api-client-android:1.16.0-rc') {
|
compile('com.google.api-client:google-api-client-android:1.30.5') {
|
||||||
exclude group: 'com.google.android.google-play-services'
|
exclude group: 'com.google.android.google-play-services'
|
||||||
}
|
}
|
||||||
compile 'com.google.apis:google-api-services-drive:v2-rev102-1.16.0-rc'
|
compile 'com.google.apis:google-api-services-drive:v2-rev102-1.16.0-rc'
|
||||||
compile 'com.dropbox.core:dropbox-core-sdk:4.0.0'
|
compile 'com.dropbox.core:dropbox-core-sdk:4.0.0'
|
||||||
|
implementation 'com.google.api-client:google-api-client:1.30.5'
|
||||||
|
implementation 'com.google.api-client:google-api-client-android:1.30.5'
|
||||||
|
|
||||||
|
implementation 'com.google.android.gms:play-services-auth:19.2.0'
|
||||||
//onedrive:
|
//onedrive:
|
||||||
compile('com.onedrive.sdk:onedrive-sdk-android:1.2.0') {
|
compile('com.onedrive.sdk:onedrive-sdk-android:1.2.0') {
|
||||||
transitive = false
|
transitive = false
|
||||||
}
|
}
|
||||||
compile 'com.pcloud.sdk:java-core:1.2.0'
|
compile 'com.pcloud.sdk:java-core:1.2.0'
|
||||||
compile 'com.pcloud.sdk:android:1.2.0'
|
compile 'com.pcloud.sdk:android:1.2.0'
|
||||||
compile 'com.google.code.gson:gson:2.3.1'
|
compile 'com.google.code.gson:gson:2.8.6'
|
||||||
compile 'com.microsoft.services.msa:msa-auth:0.8.6'
|
compile 'com.microsoft.services.msa:msa-auth:0.8.6'
|
||||||
compile 'com.microsoft.aad:adal:1.14.0'
|
compile 'com.microsoft.aad:adal:1.14.0'
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import com.google.api.client.googleapis.json.GoogleJsonResponseException;
|
|||||||
import com.google.api.client.http.ByteArrayContent;
|
import com.google.api.client.http.ByteArrayContent;
|
||||||
import com.google.api.client.http.GenericUrl;
|
import com.google.api.client.http.GenericUrl;
|
||||||
import com.google.api.client.http.HttpResponse;
|
import com.google.api.client.http.HttpResponse;
|
||||||
|
import com.google.api.client.http.HttpTransport;
|
||||||
import com.google.api.client.json.gson.GsonFactory;
|
import com.google.api.client.json.gson.GsonFactory;
|
||||||
import com.google.api.services.drive.Drive;
|
import com.google.api.services.drive.Drive;
|
||||||
import com.google.api.services.drive.DriveScopes;
|
import com.google.api.services.drive.DriveScopes;
|
||||||
@@ -37,6 +38,19 @@ import android.os.AsyncTask;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.google.android.gms.auth.api.signin.GoogleSignIn;
|
||||||
|
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
|
||||||
|
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
|
||||||
|
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
|
||||||
|
import com.google.android.gms.common.Scopes;
|
||||||
|
import com.google.android.gms.common.SignInButton;
|
||||||
|
import com.google.android.gms.common.api.ApiException;
|
||||||
|
import com.google.android.gms.common.api.Scope;
|
||||||
|
import com.google.android.gms.tasks.OnCompleteListener;
|
||||||
|
import com.google.android.gms.tasks.Task;
|
||||||
|
|
||||||
|
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
|
||||||
@@ -48,7 +62,10 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
static final int MAGIC_GDRIVE=2082334;
|
static final int MAGIC_GDRIVE=2082334;
|
||||||
static final int REQUEST_ACCOUNT_PICKER = MAGIC_GDRIVE+1;
|
static final int REQUEST_ACCOUNT_PICKER = MAGIC_GDRIVE+1;
|
||||||
static final int REQUEST_AUTHORIZATION = MAGIC_GDRIVE+2;
|
static final int REQUEST_AUTHORIZATION = MAGIC_GDRIVE+2;
|
||||||
|
static final int REQUEST_SIGN_IN = MAGIC_GDRIVE+3;
|
||||||
private boolean mRequiresRuntimePermissions = false;
|
private boolean mRequiresRuntimePermissions = false;
|
||||||
|
private int MY_REQUEST_AUTHORIZATION;
|
||||||
|
private GoogleSignInClient mGoogleSignInClient;
|
||||||
|
|
||||||
|
|
||||||
class FileSystemEntryData
|
class FileSystemEntryData
|
||||||
@@ -281,8 +298,6 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
@Override
|
@Override
|
||||||
public InputStream openFileForRead(String path) throws Exception {
|
public InputStream openFileForRead(String path) throws Exception {
|
||||||
|
|
||||||
throwAppBlocked();
|
|
||||||
|
|
||||||
logDebug("openFileForRead...");
|
logDebug("openFileForRead...");
|
||||||
GDrivePath gdrivePath = new GDrivePath(path);
|
GDrivePath gdrivePath = new GDrivePath(path);
|
||||||
Drive driveService = getDriveService(gdrivePath.getAccount());
|
Drive driveService = getDriveService(gdrivePath.getAccount());
|
||||||
@@ -300,14 +315,10 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void throwAppBlocked() throws Exception {
|
|
||||||
throw new Exception("Built-in Google Drive access is currently blocked by Google. Please use Open file > System file picker > Google Drive.");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private File getFileForPath(GDrivePath path, Drive driveService)
|
private File getFileForPath(GDrivePath path, Drive driveService)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
logDebug("getFileForPath... ");
|
logDebug("getFileForPath... ");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -335,7 +346,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private InputStream getFileContent(File driveFile, Drive driveService) throws Exception {
|
private InputStream getFileContent(File driveFile, Drive driveService) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
if (driveFile.getDownloadUrl() != null && driveFile.getDownloadUrl().length() > 0) {
|
if (driveFile.getDownloadUrl() != null && driveFile.getDownloadUrl().length() > 0) {
|
||||||
|
|
||||||
GenericUrl downloadUrl = new GenericUrl(driveFile.getDownloadUrl());
|
GenericUrl downloadUrl = new GenericUrl(driveFile.getDownloadUrl());
|
||||||
@@ -353,7 +364,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
@Override
|
@Override
|
||||||
public void uploadFile(String path, byte[] data, boolean writeTransactional)
|
public void uploadFile(String path, byte[] data, boolean writeTransactional)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
logDebug("upload file...");
|
logDebug("upload file...");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -364,6 +375,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
File driveFile = getFileForPath(gdrivePath, driveService);
|
File driveFile = getFileForPath(gdrivePath, driveService);
|
||||||
getDriveService(gdrivePath.getAccount()).files()
|
getDriveService(gdrivePath.getAccount()).files()
|
||||||
.update(driveFile.getId(), driveFile, content).execute();
|
.update(driveFile.getId(), driveFile, content).execute();
|
||||||
|
|
||||||
logDebug("upload file ok.");
|
logDebug("upload file ok.");
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -375,7 +387,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createFolder(String parentPath, String newDirName) throws Exception {
|
public String createFolder(String parentPath, String newDirName) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
File body = new File();
|
File body = new File();
|
||||||
body.setTitle(newDirName);
|
body.setTitle(newDirName);
|
||||||
body.setMimeType(FOLDER_MIME_TYPE);
|
body.setMimeType(FOLDER_MIME_TYPE);
|
||||||
@@ -401,7 +413,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createFilePath(String parentPath, String newFileName) throws Exception {
|
public String createFilePath(String parentPath, String newFileName) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
File body = new File();
|
File body = new File();
|
||||||
body.setTitle(newFileName);
|
body.setTitle(newFileName);
|
||||||
GDrivePath parentGdrivePath = new GDrivePath(parentPath);
|
GDrivePath parentGdrivePath = new GDrivePath(parentPath);
|
||||||
@@ -424,7 +436,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FileEntry> listFiles(String parentPath) throws Exception {
|
public List<FileEntry> listFiles(String parentPath) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
GDrivePath gdrivePath = new GDrivePath(parentPath);
|
GDrivePath gdrivePath = new GDrivePath(parentPath);
|
||||||
String parentId = gdrivePath.getGDriveId();
|
String parentId = gdrivePath.getGDriveId();
|
||||||
|
|
||||||
@@ -434,9 +446,12 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
AccountData accountData = mAccountData.get(gdrivePath.getAccount());
|
||||||
|
|
||||||
|
if (!parentId.equals(accountData.mRootFolderId)) {
|
||||||
if (driveService.files().get(parentId).execute().getLabels().getTrashed())
|
if (driveService.files().get(parentId).execute().getLabels().getTrashed())
|
||||||
throw new FileNotFoundException(parentPath + " is trashed!");
|
throw new FileNotFoundException(parentPath + " is trashed!");
|
||||||
|
}
|
||||||
logDebug("listing files in "+parentId);
|
logDebug("listing files in "+parentId);
|
||||||
Files.List request = driveService.files().list()
|
Files.List request = driveService.files().list()
|
||||||
.setQ("trashed=false and '" + parentId + "' in parents");
|
.setQ("trashed=false and '" + parentId + "' in parents");
|
||||||
@@ -512,11 +527,24 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileEntry getFileEntry(String filename) throws Exception {
|
public FileEntry getFileEntry(String filename) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
logDebug("getFileEntry "+filename);
|
|
||||||
GDrivePath gdrivePath = new GDrivePath(filename);
|
GDrivePath gdrivePath = new GDrivePath(filename);
|
||||||
|
logDebug("getFileEntry "+filename + ". local = " + gdrivePath.mAccountLocalPath);
|
||||||
|
|
||||||
|
if (gdrivePath.mAccountLocalPath.equals(""))
|
||||||
|
{
|
||||||
|
FileEntry res = new FileEntry();
|
||||||
|
res.userData = "";
|
||||||
|
res.canRead = true;
|
||||||
|
res.canWrite = true;
|
||||||
|
res.displayName = "";
|
||||||
|
res.isDirectory = true;
|
||||||
|
return res;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
FileEntry res = convertToFileEntry(
|
FileEntry res = convertToFileEntry(
|
||||||
getFileForPath(gdrivePath, getDriveService(gdrivePath.getAccount())),
|
getFileForPath(gdrivePath, getDriveService(gdrivePath.getAccount())),
|
||||||
filename);
|
filename);
|
||||||
@@ -532,7 +560,6 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(String path) throws Exception {
|
public void delete(String path) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
GDrivePath gdrivePath = new GDrivePath(path);
|
GDrivePath gdrivePath = new GDrivePath(path);
|
||||||
Drive driveService = getDriveService(gdrivePath.getAccount());
|
Drive driveService = getDriveService(gdrivePath.getAccount());
|
||||||
try
|
try
|
||||||
@@ -546,13 +573,14 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final HttpTransport HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport();
|
||||||
|
|
||||||
private Drive createDriveService(String accountName, Context appContext) {
|
private Drive createDriveService(String accountName, Context appContext) {
|
||||||
logDebug("createDriveService "+accountName);
|
logDebug("createDriveService "+accountName);
|
||||||
GoogleAccountCredential credential = createCredential(appContext);
|
GoogleAccountCredential credential = createCredential(appContext);
|
||||||
credential.setSelectedAccountName(accountName);
|
credential.setSelectedAccountName(accountName);
|
||||||
|
|
||||||
return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
|
return new Drive.Builder(HTTP_TRANSPORT, new GsonFactory(), credential)
|
||||||
.setApplicationName(getApplicationName())
|
.setApplicationName(getApplicationName())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@@ -573,7 +601,36 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityResult(final JavaFileStorage.FileStorageSetupActivity setupAct, int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(final JavaFileStorage.FileStorageSetupActivity setupAct, int requestCode, int resultCode, Intent data) {
|
||||||
logDebug("ActivityResult: " + requestCode + "/" + resultCode);
|
logDebug("ActivityResult: " + requestCode + "/" + resultCode);
|
||||||
|
|
||||||
switch (requestCode) {
|
switch (requestCode) {
|
||||||
|
case REQUEST_SIGN_IN:
|
||||||
|
Activity activity = (Activity)setupAct;
|
||||||
|
Task<GoogleSignInAccount> completedTask = GoogleSignIn.getSignedInAccountFromIntent(data);
|
||||||
|
|
||||||
|
Log.d(TAG, "handleSignInResult:" + completedTask.isSuccessful());
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Signed in successfully
|
||||||
|
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
|
||||||
|
if (GoogleSignIn.hasPermissions(account, new Scope(Scopes.DRIVE_FULL))) {
|
||||||
|
initializeAccountOrPath(setupAct, account.getAccount().name);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (ApiException e) {
|
||||||
|
// Signed out, show unauthenticated UI.
|
||||||
|
Log.w(TAG, "handleSignInResult:error", e);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
((Activity)setupAct).setResult(Activity.RESULT_CANCELED, data);
|
||||||
|
((Activity)setupAct).finish();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
break;
|
||||||
case REQUEST_ACCOUNT_PICKER:
|
case REQUEST_ACCOUNT_PICKER:
|
||||||
logDebug("ActivityResult: REQUEST_ACCOUNT_PICKER");
|
logDebug("ActivityResult: REQUEST_ACCOUNT_PICKER");
|
||||||
if (resultCode == Activity.RESULT_OK && data != null && data.getExtras() != null) {
|
if (resultCode == Activity.RESULT_OK && data != null && data.getExtras() != null) {
|
||||||
@@ -655,7 +712,16 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
setupAct.getState().putString(EXTRA_PATH, getRootPathForAccount(accountName));
|
setupAct.getState().putString(EXTRA_PATH, getRootPathForAccount(accountName));
|
||||||
|
|
||||||
return new AsyncTaskResult<String>("ok");
|
return new AsyncTaskResult<String>("ok");
|
||||||
} catch ( Exception anyError) {
|
}
|
||||||
|
catch (UserRecoverableAuthIOException recoverableAuthIOException)
|
||||||
|
{
|
||||||
|
activity.startActivityForResult(
|
||||||
|
((UserRecoverableAuthIOException) recoverableAuthIOException).getIntent(),
|
||||||
|
MY_REQUEST_AUTHORIZATION);
|
||||||
|
return new AsyncTaskResult<String>("wait");
|
||||||
|
}
|
||||||
|
|
||||||
|
catch ( Exception anyError) {
|
||||||
return new AsyncTaskResult<String>(anyError);
|
return new AsyncTaskResult<String>(anyError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -704,7 +770,6 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
private void initializeAccount(final Context appContext,
|
private void initializeAccount(final Context appContext,
|
||||||
final String accountName) throws Exception {
|
final String accountName) throws Exception {
|
||||||
throwAppBlocked();
|
|
||||||
logDebug("Init account for " + accountName);
|
logDebug("Init account for " + accountName);
|
||||||
if (!mAccountData.containsKey(accountName))
|
if (!mAccountData.containsKey(accountName))
|
||||||
{
|
{
|
||||||
@@ -712,6 +777,7 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
newAccountData.drive = createDriveService(accountName, appContext);
|
newAccountData.drive = createDriveService(accountName, appContext);
|
||||||
mAccountData.put(accountName, newAccountData);
|
mAccountData.put(accountName, newAccountData);
|
||||||
logDebug("Added account data for " + accountName);
|
logDebug("Added account data for " + accountName);
|
||||||
|
//sign out the SignInClient to bring up the account picker next time again.
|
||||||
}
|
}
|
||||||
AccountData accountData = mAccountData.get(accountName);
|
AccountData accountData = mAccountData.get(accountName);
|
||||||
//try to finish the initialization. If this fails, we throw.
|
//try to finish the initialization. If this fails, we throw.
|
||||||
@@ -725,17 +791,19 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
private void finishInitialization(AccountData newAccountData, String accountName) throws IOException
|
private void finishInitialization(AccountData newAccountData, String accountName) throws IOException
|
||||||
{
|
{
|
||||||
|
|
||||||
if (TextUtils.isEmpty(newAccountData.mRootFolderId))
|
if (TextUtils.isEmpty(newAccountData.mRootFolderId))
|
||||||
{
|
{
|
||||||
logDebug("Finish init account for " + accountName);
|
logDebug("Finish init account for " + accountName);
|
||||||
About about = newAccountData.drive.about().get().execute();
|
About about = newAccountData.drive.about().get().execute();
|
||||||
newAccountData.mRootFolderId = about.getRootFolderId();
|
newAccountData.mRootFolderId = about.getRootFolderId();
|
||||||
|
logDebug("Finish init account for " + accountName + " complete with folder id = " + newAccountData.mRootFolderId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logDebug("Account for " + accountName + " already fully initialized.");
|
logDebug("Account for " + accountName + " already fully initialized.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -755,7 +823,6 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
public void prepareFileUsage(Context appContext, String path) throws UserInteractionRequiredException, Throwable
|
public void prepareFileUsage(Context appContext, String path) throws UserInteractionRequiredException, Throwable
|
||||||
{
|
{
|
||||||
throwAppBlocked();
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
logDebug("prepareFileUsage " + path + "...");
|
logDebug("prepareFileUsage " + path + "...");
|
||||||
@@ -811,10 +878,27 @@ public class GoogleDriveFileStorage extends JavaFileStorageBase {
|
|||||||
|
|
||||||
if (PROCESS_NAME_SELECTFILE.equals(setupAct.getProcessName()))
|
if (PROCESS_NAME_SELECTFILE.equals(setupAct.getProcessName()))
|
||||||
{
|
{
|
||||||
GoogleAccountCredential credential = createCredential(activity.getApplicationContext());
|
// [START configure_signin]
|
||||||
|
// Configure sign-in to request the user's ID, email address, and basic
|
||||||
|
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
|
||||||
|
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
|
||||||
|
.requestScopes(new Scope(Scopes.DRIVE_FULL))
|
||||||
|
.requestEmail()
|
||||||
|
.build();
|
||||||
|
// [END configure_signin]
|
||||||
|
|
||||||
|
// [START build_client]
|
||||||
|
// Build a GoogleSignInClient with access to the Google Sign-In API and the
|
||||||
|
// options specified by gso.
|
||||||
|
mGoogleSignInClient = GoogleSignIn.getClient(activity, gso);
|
||||||
|
// [END build_client]
|
||||||
|
|
||||||
|
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
|
||||||
|
//make sure the user will be prompted to select the account to be used:
|
||||||
|
mGoogleSignInClient.signOut();
|
||||||
|
activity.startActivityForResult(signInIntent, REQUEST_SIGN_IN);
|
||||||
|
|
||||||
|
|
||||||
logDebug("starting REQUEST_ACCOUNT_PICKER");
|
|
||||||
activity.startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PROCESS_NAME_FILE_USAGE_SETUP.equals(setupAct.getProcessName()))
|
if (PROCESS_NAME_FILE_USAGE_SETUP.equals(setupAct.getProcessName()))
|
||||||
|
|||||||
@@ -5,12 +5,9 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.onedrive.sdk.concurrency.ICallback;
|
|
||||||
import com.onedrive.sdk.core.ClientException;
|
|
||||||
import com.onedrive.sdk.core.DefaultClientConfig;
|
import com.onedrive.sdk.core.DefaultClientConfig;
|
||||||
import com.onedrive.sdk.core.IClientConfig;
|
import com.onedrive.sdk.core.IClientConfig;
|
||||||
import com.onedrive.sdk.core.OneDriveErrorCodes;
|
import com.onedrive.sdk.core.OneDriveErrorCodes;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package keepass2android.javafilestorage;
|
package keepass2android.javafilestorage;
|
||||||
|
|
||||||
import android.app.Notification;
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -12,7 +11,7 @@ import android.os.Looper;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Messenger;
|
import android.os.Messenger;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.jcraft.jsch.UserInfo;
|
import com.jcraft.jsch.UserInfo;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ android {
|
|||||||
buildToolsVersion '28.0.3'
|
buildToolsVersion '28.0.3'
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.crocoapps.javafilestoragetest"
|
applicationId "com.crocoapps.javafilestoragetest2"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 1
|
versionCode 1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.crocoapps.javafilestoragetest;
|
package com.crocoapps.javafilestoragetest2;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.test.ApplicationTestCase;
|
import android.test.ApplicationTestCase;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.crocoapps.javafilestoragetest">
|
package="com.crocoapps.javafilestoragetest2">
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
<activity android:name=".MainActivity">
|
<activity android:name="com.crocoapps.javafilestoragetest2.MainActivity">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
@@ -17,6 +17,9 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<meta-data android:name="com.google.android.gms.version"
|
||||||
|
android:value="@integer/google_play_services_version" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="keepass2android.kp2afilechooser.StorageFileProvider"
|
android:name="keepass2android.kp2afilechooser.StorageFileProvider"
|
||||||
android:authorities="keepass2android.kp2afilechooser.StorageFileProvider"
|
android:authorities="keepass2android.kp2afilechooser.StorageFileProvider"
|
||||||
@@ -24,13 +27,13 @@
|
|||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="group.pals.android.lib.ui.filechooser.providers.localfile.LocalFileProvider"
|
android:name="group.pals.android.lib.ui.filechooser.providers.localfile.LocalFileProvider"
|
||||||
android:authorities="com.crocoapps.javafilestoragetest.android-filechooser.localfile"
|
android:authorities="com.crocoapps.javafilestoragetest2.android-filechooser.localfile"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="group.pals.android.lib.ui.filechooser.providers.history.HistoryProvider"
|
android:name="group.pals.android.lib.ui.filechooser.providers.history.HistoryProvider"
|
||||||
android:authorities="com.crocoapps.javafilestoragetest.android-filechooser.history"
|
android:authorities="com.crocoapps.javafilestoragetest2.android-filechooser.history"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|
||||||
|
|
||||||
@@ -41,7 +44,7 @@
|
|||||||
android:theme="@style/Afc.Theme.Light" />
|
android:theme="@style/Afc.Theme.Light" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.crocoapps.javafilestoragetest.FileStorageSetupActivity"
|
android:name="com.crocoapps.javafilestoragetest2.FileStorageSetupActivity"
|
||||||
android:label="@string/title_activity_file_storage_setup" >
|
android:label="@string/title_activity_file_storage_setup" >
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.crocoapps.javafilestoragetest;
|
package com.crocoapps.javafilestoragetest2;
|
||||||
|
|
||||||
import keepass2android.javafilestorage.JavaFileStorage;
|
import keepass2android.javafilestorage.JavaFileStorage;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.crocoapps.javafilestoragetest;
|
package com.crocoapps.javafilestoragetest2;
|
||||||
|
|
||||||
//
|
//
|
||||||
//import java.io.IOException;
|
//import java.io.IOException;
|
||||||
@@ -145,10 +145,9 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
//import keepass2android.javafilestorage.DropboxCloudRailStorage;
|
//import keepass2android.javafilestorage.DropboxCloudRailStorage;
|
||||||
import keepass2android.javafilestorage.DropboxV2Storage;
|
import keepass2android.javafilestorage.GoogleDriveFileStorage;
|
||||||
import keepass2android.javafilestorage.JavaFileStorage;
|
import keepass2android.javafilestorage.JavaFileStorage;
|
||||||
import keepass2android.javafilestorage.JavaFileStorage.FileEntry;
|
import keepass2android.javafilestorage.JavaFileStorage.FileEntry;
|
||||||
import keepass2android.javafilestorage.PCloudFileStorage;
|
|
||||||
import keepass2android.javafilestorage.SftpStorage;
|
import keepass2android.javafilestorage.SftpStorage;
|
||||||
import keepass2android.javafilestorage.UserInteractionRequiredException;
|
import keepass2android.javafilestorage.UserInteractionRequiredException;
|
||||||
import keepass2android.javafilestorage.WebDavStorage;
|
import keepass2android.javafilestorage.WebDavStorage;
|
||||||
@@ -163,7 +162,7 @@ import android.app.AlertDialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.support.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -218,7 +217,7 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
|
|||||||
String filename = path+"file.text";*/
|
String filename = path+"file.text";*/
|
||||||
fs.uploadFile(filename2,textToUpload2.getBytes(),true);
|
fs.uploadFile(filename2,textToUpload2.getBytes(),true);
|
||||||
|
|
||||||
FileEntry e1 = fs.getFileEntry(parentPath);
|
// FileEntry e1 = fs.getFileEntry(parentPath);
|
||||||
FileEntry e2 = fs.getFileEntry(path);
|
FileEntry e2 = fs.getFileEntry(path);
|
||||||
|
|
||||||
boolean receivedFileNotFoundException;
|
boolean receivedFileNotFoundException;
|
||||||
@@ -544,7 +543,7 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
|
|||||||
//storageToTest = new SkyDriveFileStorage("000000004010C234", appContext);
|
//storageToTest = new SkyDriveFileStorage("000000004010C234", appContext);
|
||||||
|
|
||||||
|
|
||||||
//storageToTest = new GoogleDriveFileStorage();
|
storageToTest = new GoogleDriveFileStorage();
|
||||||
/*storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
|
/*storageToTest = new WebDavStorage(new ICertificateErrorHandler() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onValidationError(String error) {
|
public boolean onValidationError(String error) {
|
||||||
@@ -557,7 +556,7 @@ public class MainActivity extends Activity implements JavaFileStorage.FileStorag
|
|||||||
}
|
}
|
||||||
});*/
|
});*/
|
||||||
|
|
||||||
storageToTest = new DropboxV2Storage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
|
//storageToTest = new DropboxV2Storage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
|
||||||
//storageToTest = new DropboxFileStorage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
|
//storageToTest = new DropboxFileStorage(ctx,"4ybka4p4a1027n6", "1z5lv528un9nre8", !simulateRestart);
|
||||||
//storageToTest = new DropboxAppFolderFileStorage(ctx,"ax0268uydp1ya57", "3s86datjhkihwyc", true);
|
//storageToTest = new DropboxAppFolderFileStorage(ctx,"ax0268uydp1ya57", "3s86datjhkihwyc", true);
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@ package keepass2android.kp2afilechooser;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.crocoapps.javafilestoragetest.MainActivity;
|
import com.crocoapps.javafilestoragetest2.MainActivity;
|
||||||
|
|
||||||
public class StorageFileProvider extends Kp2aFileProvider {
|
public class StorageFileProvider extends Kp2aFileProvider {
|
||||||
|
|
||||||
|
|||||||
@@ -17,4 +17,6 @@
|
|||||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||||
# org.gradle.parallel=true
|
# org.gradle.parallel=true
|
||||||
|
|
||||||
|
android.enableJetifier=true
|
||||||
|
android.useAndroidX=true
|
||||||
org.gradle.jvmargs=-Xmx2048m
|
org.gradle.jvmargs=-Xmx2048m
|
||||||
@@ -23,5 +23,5 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'com.android.support:support-v4:28.0.0'
|
compile 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import java.util.ArrayList;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.v4.widget.ResourceCursorAdapter;
|
import androidx.cursoradapter.widget.ResourceCursorAdapter;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import android.content.Context;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.widget.GridView;
|
import android.widget.GridView;
|
||||||
|
|||||||
@@ -49,10 +49,10 @@ import android.net.Uri;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.v4.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.support.v4.app.LoaderManager;
|
import androidx.loader.app.LoaderManager;
|
||||||
import android.support.v4.content.CursorLoader;
|
import androidx.loader.content.CursorLoader;
|
||||||
import android.support.v4.content.Loader;
|
import androidx.loader.content.Loader;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
<AndroidEnableMultiDex>false</AndroidEnableMultiDex>
|
<AndroidEnableMultiDex>false</AndroidEnableMultiDex>
|
||||||
<AndroidUseAapt2>true</AndroidUseAapt2>
|
<AndroidUseAapt2>true</AndroidUseAapt2>
|
||||||
<AndroidDexTool>d8</AndroidDexTool>
|
<AndroidDexTool>d8</AndroidDexTool>
|
||||||
<AndroidLinkTool>r8</AndroidLinkTool>
|
|
||||||
<MandroidI18n />
|
<MandroidI18n />
|
||||||
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
||||||
<AndroidSupportedAbis />
|
<AndroidSupportedAbis />
|
||||||
@@ -81,6 +80,9 @@
|
|||||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.3" />
|
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.3" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V13" Version="1.0.0.5" />
|
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V13" Version="1.0.0.5" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.AppCompat.Resources" Version="1.1.0" />
|
<PackageReference Include="Xamarin.AndroidX.AppCompat.Resources" Version="1.1.0" />
|
||||||
|
<PackageReference Include="Xamarin.GooglePlayServices.Drive">
|
||||||
|
<Version>117.0.0.4</Version>
|
||||||
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Kotlin.StdLib.Common">
|
<PackageReference Include="Xamarin.Kotlin.StdLib.Common">
|
||||||
<Version>1.3.50.1</Version>
|
<Version>1.3.50.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
@@ -1857,10 +1859,7 @@
|
|||||||
<Version>1.0.0</Version>
|
<Version>1.0.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Auth">
|
<PackageReference Include="Xamarin.GooglePlayServices.Auth">
|
||||||
<Version>71.1600.0</Version>
|
<Version>119.2.0.3</Version>
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Drive">
|
|
||||||
<Version>71.1600.0</Version>
|
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Android.Support.Compat">
|
<PackageReference Include="Xamarin.Android.Support.Compat">
|
||||||
<Version>28.0.0.3</Version>
|
<Version>28.0.0.3</Version>
|
||||||
|
|||||||
Reference in New Issue
Block a user