Skip to content

Commit

Permalink
Merge branch 'feature/add-to-fdroid-main-repo' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
SailReal committed Jun 4, 2022
2 parents 7034eab + a98be45 commit 91148d6
Show file tree
Hide file tree
Showing 242 changed files with 1,785 additions and 1,256 deletions.
16 changes: 9 additions & 7 deletions buildsystem/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ ext {
javaxAnnotationVersion = '1.0'

// support lib
androidSupportAnnotationsVersion = '1.2.0'
androidSupportAppcompatVersion = '1.3.1'
androidSupportDesignVersion = '1.4.0'
androidSupportAnnotationsVersion = '1.3.0'
androidSupportAppcompatVersion = '1.4.1'
androidMaterialDesignVersion = '1.6.0'

coreDesugaringVersion = '1.1.5'

Expand Down Expand Up @@ -102,15 +102,16 @@ ext {
uiautomatorVersion = '2.2.0'
androidxTestJunitKtlnVersion = '1.1.3'

androidxCoreVersion = '1.6.0'
androidxFragmentVersion = '1.3.6'
androidxCoreVersion = '1.7.0'
androidxFragmentVersion = '1.4.1'
androidxViewpagerVersion = '1.0.0'
androidxSwiperefreshVersion = '1.1.0'
androidxPreferenceVersion = '1.1.1'
androidxPreferenceVersion = '1.2.0'
androidxRecyclerViewVersion = '1.2.1'
androidxDocumentfileVersion = '1.0.1'
androidxBiometricVersion = '1.1.0'
androidxTestCoreVersion = '1.4.0'
androidxSplashscreenVersion = '1.0.0-rc01'

jsonWebTokenApiVersion = '0.11.5'

Expand All @@ -126,13 +127,14 @@ ext {
androidxPreference : "androidx.preference:preference:${androidxPreferenceVersion}",
documentFile : "androidx.documentfile:documentfile:${androidxDocumentfileVersion}",
recyclerView : "androidx.recyclerview:recyclerview:${androidxRecyclerViewVersion}",
androidxSplashscreen : "androidx.core:core-splashscreen:${androidxSplashscreenVersion}",
androidxTestCore : "androidx.test:core:${androidxTestCoreVersion}",
androidxTestJunitKtln : "androidx.test.ext:junit-ktx:${androidxTestJunitKtlnVersion}",
commonsCodec : "commons-codec:commons-codec:${commonsCodecVersion}",
cryptolib : "org.cryptomator:cryptolib:${cryptolibVersion}",
dagger : "com.google.dagger:dagger:${daggerVersion}",
daggerCompiler : "com.google.dagger:dagger-compiler:${daggerVersion}",
design : "com.google.android.material:material:${androidSupportDesignVersion}",
design : "com.google.android.material:material:${androidMaterialDesignVersion}",
coreDesugaring : "com.android.tools:desugar_jdk_libs:${coreDesugaringVersion}",
dropbox : "com.dropbox.core:dropbox-core-sdk:${dropboxVersion}",
espresso : "androidx.test.espresso:espresso-core:${espressoVersion}",
Expand Down
31 changes: 24 additions & 7 deletions data/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,27 @@ android {
fdroid {
dimension "version"
}

lite {
dimension "version"
}
}

sourceSets {
playstore {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/notFoss/java', 'src/notFoss/java/']
java.srcDirs = ['src/main/java/', 'src/apiKey/java/', 'src/apkStorePlaystore/java/']
}

apkstore {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/notFoss/java', 'src/notFoss/java/']
java.srcDirs = ['src/main/java/', 'src/apiKey/java/', 'src/apkStorePlaystore/java/']
}

fdroid {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/foss/java', 'src/foss/java/']
java.srcDirs = ['src/main/java/', 'src/apiKey/java/', 'src/fdroid/java/']
}

lite {
java.srcDirs = ['src/main/java/', 'src/lite/java/']
}
}
packagingOptions {
Expand Down Expand Up @@ -95,7 +103,9 @@ dependencies {

implementation project(':domain')
implementation project(':util')
implementation project(':pcloud-sdk-java')
playstoreImplementation project(':pcloud-sdk-java')
apkstoreImplementation project(':pcloud-sdk-java')
fdroidImplementation project(':pcloud-sdk-java')

coreLibraryDesugaring dependencies.coreDesugaring

Expand All @@ -113,9 +123,16 @@ dependencies {
implementation dependencies.jsonWebTokenJson

// cloud
implementation dependencies.dropbox
implementation dependencies.msgraphAuth
implementation dependencies.msgraph
playstoreImplementation dependencies.dropbox
apkstoreImplementation dependencies.dropbox
fdroidImplementation dependencies.dropbox

playstoreImplementation dependencies.msgraphAuth
apkstoreImplementation dependencies.msgraphAuth
fdroidImplementation dependencies.msgraphAuth
playstoreImplementation dependencies.msgraph
apkstoreImplementation dependencies.msgraph
fdroidImplementation dependencies.msgraph

implementation dependencies.stax
api dependencies.minIo
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.cryptomator.data.cloud;

import static java.util.Arrays.asList;

import org.cryptomator.data.cloud.crypto.CryptoCloudContentRepositoryFactory;
import org.cryptomator.data.cloud.dropbox.DropboxCloudContentRepositoryFactory;
import org.cryptomator.data.cloud.googledrive.GoogleDriveCloudContentRepositoryFactory;
Expand All @@ -16,8 +18,6 @@
import javax.inject.Inject;
import javax.inject.Singleton;

import static java.util.Arrays.asList;

@Singleton
public class CloudContentRepositoryFactories implements Iterable<CloudContentRepositoryFactory> {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.cryptomator.data.cloud;

import static java.util.Arrays.asList;

import org.cryptomator.data.cloud.crypto.CryptoCloudContentRepositoryFactory;
import org.cryptomator.data.cloud.local.LocalStorageContentRepositoryFactory;
import org.cryptomator.data.cloud.s3.S3CloudContentRepositoryFactory;
import org.cryptomator.data.cloud.webdav.WebDavCloudContentRepositoryFactory;
import org.cryptomator.data.repository.CloudContentRepositoryFactory;
import org.jetbrains.annotations.NotNull;

import java.util.Iterator;

import javax.inject.Inject;
import javax.inject.Singleton;

@Singleton
public class CloudContentRepositoryFactories implements Iterable<CloudContentRepositoryFactory> {

private final Iterable<CloudContentRepositoryFactory> factories;

@Inject
public CloudContentRepositoryFactories(
S3CloudContentRepositoryFactory s3Factory, //
CryptoCloudContentRepositoryFactory cryptoFactory, //
LocalStorageContentRepositoryFactory localStorageFactory, //
WebDavCloudContentRepositoryFactory webDavFactory) {

factories = asList(s3Factory, //
cryptoFactory, //
localStorageFactory, //
webDavFactory);
}

@NotNull
@Override
public Iterator<CloudContentRepositoryFactory> iterator() {
return factories.iterator();
}
}
47 changes: 45 additions & 2 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ platform :android do |options|
deployToPlaystore(alpha:options[:alpha], beta:options[:beta])
deployToServer(alpha:options[:alpha], beta:options[:beta])
deployToFDroid(alpha:options[:alpha], beta:options[:beta])
testLite(alpha:options[:alpha], beta:options[:beta])
createGitHubDraftRelease(alpha:options[:alpha], beta:options[:beta])

slack(
Expand Down Expand Up @@ -220,6 +221,29 @@ platform :android do |options|
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}_fdroid_signed.apk")
end

desc "Deploy new lite version"
lane :deployLite do |options|
gradle(task: "clean")

gradle(
task: "assemble",
build_type: "Release",
flavor: "lite",
print_command: false,
properties: {
"android.injected.signing.store.file" => ENV["SIGNING_KEYSTORE_PATH"],
"android.injected.signing.store.password" => ENV["SIGNING_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["SIGNING_KEY_ALIAS"],
"android.injected.signing.key.password" => ENV["SIGNING_KEY_PASSWORD"],
}
)

checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'lite')
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'lite')

FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}_lite_signed.apk")
end

desc "Check if tracking added in some dependency using Izzy's script"
lane :checkTrackingAddedInDependencyUsingIzzyScript do |options|
flavor = options[:flavor]
Expand Down Expand Up @@ -289,8 +313,9 @@ platform :android do |options|

website_apk_sha256 = Digest::SHA256.hexdigest File.read "release/Cryptomator-#{version}_signed.apk"
fdroid_apk_sha256 = Digest::SHA256.hexdigest File.read "release/Cryptomator-#{version}_fdroid_signed.apk"
lite_sha256 = Digest::SHA256.hexdigest File.read "release/Cryptomator-#{version}_lite_signed.apk"

release_note = "## What's New\n\n" + File.read(release_note_path_en) + "\n\n---\n\nSHA256 Signature: `#{website_apk_sha256}`\nSHA256 Signature fdroid: `#{fdroid_apk_sha256}`\n"
release_note = "## What's New\n\n" + File.read(release_note_path_en) + "\n\n---\n\nSHA256 Signature: `#{website_apk_sha256}`\nSHA256 Signature fdroid: `#{fdroid_apk_sha256}`\nSHA256 Signature lite: `#{lite_sha256}`\n"

puts release_note

Expand All @@ -303,7 +328,7 @@ platform :android do |options|
commitish: target_branch,
is_draft: true,
is_prerelease: prerelease,
upload_assets: ["fastlane/release/Cryptomator-#{version}_fdroid_signed.apk", "fastlane/release/Cryptomator-#{version}_signed.apk"]
upload_assets: ["fastlane/release/Cryptomator-#{version}_fdroid_signed.apk", "fastlane/release/Cryptomator-#{version}_lite_signed.apk", "fastlane/release/Cryptomator-#{version}_signed.apk"]
)
end

Expand Down Expand Up @@ -362,5 +387,23 @@ platform :android do |options|

checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'fdroid')
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'fdroid')

gradle(task: "clean")

gradle(
task: "assemble",
build_type: "Release",
flavor: "lite",
print_command: false,
properties: {
"android.injected.signing.store.file" => ENV["SIGNING_KEYSTORE_PATH"],
"android.injected.signing.store.password" => ENV["SIGNING_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["SIGNING_KEY_ALIAS"],
"android.injected.signing.key.password" => ENV["SIGNING_KEY_PASSWORD"],
}
)

checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'lite')
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'lite')
end
end
8 changes: 8 additions & 0 deletions fastlane/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ Deploy new version to server

Deploy new version to F-Droid

### android deployLite

```sh
[bundle exec] fastlane android deployLite
```

Deploy new lite version

### android checkTrackingAddedInDependencyUsingIzzyScript

```sh
Expand Down
2 changes: 1 addition & 1 deletion fastlane/izzyscript/result_apkstore.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion fastlane/izzyscript/result_fdroid.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions fastlane/izzyscript/result_lite.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion fastlane/izzyscript/result_playstore.json

Large diffs are not rendered by default.

35 changes: 25 additions & 10 deletions presentation/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ android {
buildConfigField "String", "PCLOUD_CLIENT_ID", "\"" + getApiKey('PCLOUD_CLIENT_ID') + "\""

manifestPlaceholders = [DROPBOX_API_KEY: getApiKey('DROPBOX_API_KEY'), ONEDRIVE_API_KEY_DECODED: getOnedriveApiKey()]

resValue "string", "app_id", androidApplicationId
}

debug {
Expand All @@ -69,8 +67,6 @@ android {

applicationIdSuffix ".debug"
versionNameSuffix '-DEBUG'

resValue "string", "app_id", androidApplicationId + applicationIdSuffix
}
}

Expand All @@ -88,19 +84,30 @@ android {
fdroid {
dimension "version"
}

lite {
dimension "version"

applicationIdSuffix ".lite"
resValue "string", "app_id", androidApplicationId + applicationIdSuffix
}
}

sourceSets {
playstore {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/notFoss/java', 'src/notFoss/java/']
java.srcDirs = ['src/main/java', 'src/apiKey/java/', 'src/apkStorePlaystore/java/']
}

apkstore {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/notFoss/java', 'src/notFoss/java/']
java.srcDirs = ['src/main/java/', 'src/apiKey/java/', 'src/apkStorePlaystore/java/']
}

fdroid {
java.srcDirs = ['src/main/java', 'src/main/java/', 'src/foss/java', 'src/foss/java/']
java.srcDirs = ['src/main/java/', 'src/apiKey/java/', 'src/fdroid/java/', 'src/fdroidAndLite/java/']
}

lite {
java.srcDirs = ['src/main/java/', 'src/lite/java/', 'src/fdroidAndLite/java/']
}
}
packagingOptions {
Expand Down Expand Up @@ -142,14 +149,22 @@ dependencies {
implementation dependencies.androidxCore
implementation dependencies.androidxFragment
implementation dependencies.androidxViewpager
implementation dependencies.androidxSplashscreen
implementation dependencies.androidxSwiperefresh
implementation dependencies.androidxPreference
implementation dependencies.androidxBiometric

// cloud
implementation dependencies.dropbox
implementation dependencies.msgraph
implementation dependencies.msgraphAuth
playstoreImplementation dependencies.dropbox
apkstoreImplementation dependencies.dropbox
fdroidImplementation dependencies.dropbox

playstoreImplementation dependencies.msgraphAuth
apkstoreImplementation dependencies.msgraphAuth
fdroidImplementation dependencies.msgraphAuth
playstoreImplementation dependencies.msgraph
apkstoreImplementation dependencies.msgraph
fdroidImplementation dependencies.msgraph

playstoreImplementation(dependencies.googleApiServicesDrive) {
exclude module: 'guava-jdk5'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.cryptomator.presentation.presenter

import android.content.Context
import com.dropbox.core.android.Auth
import org.cryptomator.presentation.BuildConfig

object DropboxAuthHelper {

fun startOAuth2Authentication(context: Context) {
Auth.startOAuth2Authentication(context, BuildConfig.DROPBOX_API_KEY)
}

fun getOAuth2Token(): String? {
return Auth.getOAuth2Token()
}

}
Loading

0 comments on commit 91148d6

Please sign in to comment.