Skip to content

Commit 8044475

Browse files
committed
Initial open source commit 🎉
1 parent 95c85b4 commit 8044475

File tree

959 files changed

+55670
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

959 files changed

+55670
-91
lines changed

‎.github/workflows/build.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Build
2+
3+
on:
4+
[push]
5+
6+
jobs:
7+
build:
8+
name: Test
9+
runs-on: ubuntu-latest
10+
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
11+
steps:
12+
- uses: actions/checkout@v2
13+
with:
14+
submodules: true
15+
fetch-depth: 0
16+
- uses: actions/setup-java@v1
17+
with:
18+
java-version: 1.8
19+
- name: Build and Test
20+
run: bash ./gradlew clean test --stacktrace

‎.gitignore

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
secrets.properties
2+
3+
###IntelliJ###
4+
5+
*.iml
6+
*.ipr
7+
*.iws
8+
.idea/
9+
10+
###Android###
11+
12+
# Built application files
13+
*.apk
14+
*.aab
15+
*.ap_
16+
17+
# Java class files
18+
*.class
19+
20+
# Generated files
21+
bin/
22+
gen/
23+
**/**/debug/output.json
24+
**/**/release/output.json
25+
26+
# Gradle files
27+
.gradle/
28+
build/
29+
**/release/output-metadata.json
30+
**/debug/output-metadata.json
31+
32+
# Local configuration file (sdk path, etc)
33+
local.properties
34+
35+
# fastlane
36+
secret_key_file.json
37+
**/**/fastlane/fastlane/**
38+
**/**/fastlane/metadata/**
39+
**/**/fastlane/report.xml
40+
**/**/fastlane/mappings/**
41+
**/**/fastlane/release_notes/**
42+
**/**/fastlane/latest_versions/**
43+
.env.default

‎.gitmodules

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "msa-auth-for-android"]
2+
path = msa-auth-for-android
3+
url = https://github.com/SailReal/msa-auth-for-android.git
4+
[submodule "subsampling-scale-image-view"]
5+
path = subsampling-scale-image-view
6+
url = https://github.com/SailReal/subsampling-scale-image-view.git

‎LICENSE.txt

+674
Large diffs are not rendered by default.

‎README.md

+24-5
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,31 @@
44
[![Community](https://img.shields.io/badge/help-Community-orange.svg)](https://community.cryptomator.org)
55
[![Documentation](https://img.shields.io/badge/help-Docs-orange.svg)](https://docs.cryptomator.org)
66

7-
Cryptomator for Android is available on Google play: [Download Cryptomator for Android](https://play.google.com/store/apps/details?id=org.cryptomator)
7+
Cryptomator offers multi-platform transparent client-side encryption of your files in the cloud.
88

9-
## Open Core
9+
Cryptomator for Android is currently available in the following distribution channels:
1010

11-
Cryptomator for Android is an _open core_ project. This repository is used for collecting issues regarding the Android app of Cryptomator.
11+
1. [Using Google Play](https://play.google.com/store/apps/details?id=org.cryptomator)
12+
2. [Using Cryptomator's Website](https://cryptomator.org/android/)
13+
3. Building from source using Gradle (instructions below)
1214

13-
You can find the open source Java crypto library to access Cryptomator vaults at this repository: [cryptomator/cryptolib](https://github.com/cryptomator/cryptolib)
15+
## Building
1416

15-
For more information on the security details visit [cryptomator.org](https://cryptomator.org/architecture/).
17+
### Dependencies
18+
19+
* Git
20+
* JDK 8
21+
* Gradle
22+
23+
### Run Git and Gradle
24+
25+
```
26+
git submodule init && git submodule update // (not necessary if cloned using --recurse-submodules)
27+
./gradlew assembleLicenseDebug
28+
```
29+
30+
Before connecting to Onedrive or Dropbox you have to enter valid API keys in [secrets.properties](https://github.com/cryptomator/android/blob/master/secrets.properties).
31+
32+
## License
33+
34+
This project is dual-licensed under the GPLv3 for FOSS projects as well as a commercial license for independent software vendors and resellers. If you want to modify this application under different conditions, feel free to contact our support team.

‎build.gradle

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
apply from: 'buildsystem/ci.gradle'
2+
apply from: 'buildsystem/dependencies.gradle'
3+
apply plugin: "com.vanniktech.android.junit.jacoco"
4+
5+
buildscript {
6+
ext.kotlin_version = '1.4.21'
7+
repositories {
8+
jcenter()
9+
mavenCentral()
10+
google()
11+
}
12+
dependencies {
13+
classpath 'com.android.tools.build:gradle:4.1.1'
14+
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
15+
classpath 'com.fernandocejas.frodo:frodo-plugin:0.8.3'
16+
classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.16.0'
17+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
18+
classpath "de.mannodermaus.gradle.plugins:android-junit5:1.7.0.0"
19+
}
20+
}
21+
22+
def getVersionCode = { ->
23+
try {
24+
def branchName = new ByteArrayOutputStream()
25+
exec {
26+
commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
27+
standardOutput = branchName
28+
}
29+
def appBuild = new ByteArrayOutputStream()
30+
exec {
31+
commandLine 'git', 'rev-list', '--count', branchName.toString().trim()
32+
standardOutput = appBuild
33+
}
34+
return Integer.parseInt(appBuild.toString().trim()) + 1958 // adding 1958 for legacy reasons
35+
}
36+
catch (ignored) {
37+
return -1
38+
}
39+
}
40+
41+
allprojects {
42+
ext {
43+
androidApplicationId = 'org.cryptomator'
44+
androidVersionCode = getVersionCode()
45+
androidVersionName = '1.5.11-SNAPSHOT'
46+
}
47+
repositories {
48+
mavenCentral()
49+
maven {
50+
url "https://maven.google.com"
51+
}
52+
flatDir {
53+
dirs '../libs'
54+
}
55+
google()
56+
}
57+
}
58+
59+
task clean(type: Delete) {
60+
delete rootProject.buildDir
61+
}

‎buildsystem/ci.gradle

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def ciServer = 'TRAVIS'
2+
def executingOnCI = "true" == System.getenv(ciServer)
3+
4+
// Since for CI we always do full clean builds, we don't want to pre-dex
5+
// See http://tools.android.com/tech-docs/new-build-system/tips
6+
subprojects {
7+
project.plugins.whenPluginAdded { plugin ->
8+
if ('com.android.build.gradle.AppPlugin' == plugin.class.name ||
9+
'com.android.build.gradle.LibraryPlugin' == plugin.class.name) {
10+
project.android.dexOptions.preDexLibraries = !executingOnCI
11+
}
12+
}
13+
}

‎buildsystem/dependencies.gradle

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
allprojects {
2+
repositories {
3+
jcenter()
4+
}
5+
}
6+
7+
ext {
8+
androidBuildToolsVersion = "29.0.2"
9+
androidMinSdkVersion = 23
10+
androidTargetSdkVersion = 29
11+
androidCompileSdkVersion = 29
12+
13+
// android and java libs
14+
androidVersion = '4.1.1.4'
15+
multidexVersion = '2.0.1'
16+
javaxAnnotationVersion = '1.0'
17+
18+
// support lib
19+
androidSupportAnnotationsVersion = '1.1.0'
20+
androidSupportAppcompatVersion = '1.2.0' // check https://stackoverflow.com/questions/41025200/android-view-inflateexception-error-inflating-class-android-webkit-webview/57968071#57968071 !!!!!!
21+
androidSupportDesignVersion = '1.2.1'
22+
23+
// app frameworks and utilities
24+
25+
rxJavaVersion = '2.2.20'
26+
rxAndroidVersion = '2.1.1'
27+
rxBindingVersion = '2.2.0'
28+
29+
daggerVersion = '2.30.1'
30+
31+
gsonVersion = '2.8.6'
32+
33+
okHttpVersion = '4.9.0'
34+
okHttpDigestVersion = '2.5'
35+
36+
velocityVersion = '1.7'
37+
38+
timberVersion = '4.7.1'
39+
40+
zxcvbnVersion = '1.3.1'
41+
42+
scaleImageViewVersion = '3.10.0'
43+
44+
lruFileCacheVersion = '1.0'
45+
46+
// KEEP IN SYNC WITH GENERATOR VERSION IN root build.gradle
47+
greenDaoVersion = '3.3.0'
48+
49+
// cloud provider libs
50+
51+
// do not update to 1.4.0 until dropping minsdk 4.x
52+
cryptolibVersion = '1.3.0'
53+
54+
dropboxVersion = '3.1.5'
55+
56+
googleApiServicesVersion = 'v3-rev197-1.25.0'
57+
googlePlayServicesVersion = '19.0.0'
58+
googleClientVersion = '1.31.1'
59+
60+
msgraphVersion = '2.5.0'
61+
msaAuthVersion = '0.10.0'
62+
63+
commonsCodecVersion = '1.15'
64+
65+
recyclerViewFastScrollVersion = '2.0.1'
66+
67+
// testing dependencies
68+
69+
jUnitVersion = '5.7.0'
70+
jUnit4Version = '4.13.1'
71+
assertJVersion = '1.7.1'
72+
mockitoVersion = '3.6.28'
73+
mockitoInlineVersion = '3.6.28'
74+
hamcrestVersion = '1.3'
75+
dexmakerVersion = '1.0'
76+
espressoVersion = '3.3.0'
77+
testingSupportLibVersion = '0.1'
78+
runnerVersion = '1.3.0'
79+
rulesVersion = '1.3.0'
80+
contributionVersion = '3.3.0'
81+
uiautomatorVersion = '2.2.0'
82+
83+
androidxCoreVersion = '1.3.2'
84+
androidxFragmentVersion = '1.2.5'
85+
androidxViewpagerVersion = '1.0.0'
86+
androidxSwiperefreshVersion = '1.1.0'
87+
androidxPreferenceVersion = '1.0.0' // 1.1.0 and 1.1.2 does have a bug with the text size
88+
androidxRecyclerViewVersion = '1.1.0'
89+
androidxDocumentfileVersion = '1.0.1'
90+
androidxBiometricVersion = '1.0.1'
91+
androidxTestCoreVersion = '1.3.0'
92+
93+
jsonWebTokenApiVersion = '0.11.2'
94+
95+
dependencies = [
96+
android : "com.google.android:android:${androidVersion}",
97+
androidAnnotations : "androidx.annotation:annotation:${androidSupportAnnotationsVersion}",
98+
appcompat : "androidx.appcompat:appcompat:${androidSupportAppcompatVersion}",
99+
androidxBiometric : "androidx.biometric:biometric:${androidxBiometricVersion}",
100+
androidxCore : "androidx.core:core-ktx:${androidxCoreVersion}",
101+
androidxFragment : "androidx.fragment:fragment-ktx:${androidxFragmentVersion}",
102+
androidxViewpager : "androidx.viewpager:viewpager:${androidxViewpagerVersion}",
103+
androidxSwiperefresh : "androidx.swiperefreshlayout:swiperefreshlayout:${androidxSwiperefreshVersion}",
104+
androidxPreference : "androidx.preference:preference:${androidxPreferenceVersion}",
105+
documentFile : "androidx.documentfile:documentfile:${androidxDocumentfileVersion}",
106+
recyclerView : "androidx.recyclerview:recyclerview:${androidxRecyclerViewVersion}",
107+
androidxTestCore : "androidx.test:core:${androidxTestCoreVersion}",
108+
commonsCodec : "commons-codec:commons-codec:${commonsCodecVersion}",
109+
cryptolib : "org.cryptomator:cryptolib:${cryptolibVersion}",
110+
dagger : "com.google.dagger:dagger:${daggerVersion}",
111+
daggerCompiler : "com.google.dagger:dagger-compiler:${daggerVersion}",
112+
design : "com.google.android.material:material:${androidSupportDesignVersion}",
113+
dropbox : "com.dropbox.core:dropbox-core-sdk:${dropboxVersion}",
114+
espresso : "androidx.test.espresso:espresso-core:${espressoVersion}",
115+
googleApiClientAndroid: "com.google.api-client:google-api-client-android:${googleClientVersion}",
116+
googleApiServicesDrive: "com.google.apis:google-api-services-drive:${googleApiServicesVersion}",
117+
googlePlayServicesAuth: "com.google.android.gms:play-services-auth:${googlePlayServicesVersion}",
118+
greenDao : "org.greenrobot:greendao:${greenDaoVersion}",
119+
gson : "com.google.code.gson:gson:${gsonVersion}",
120+
hamcrest : "org.hamcrest:hamcrest-all:${hamcrestVersion}",
121+
javaxAnnotation : "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
122+
junit : "org.junit.jupiter:junit-jupiter:${jUnitVersion}",
123+
junitApi : "org.junit.jupiter:junit-jupiter-api:${jUnitVersion}",
124+
junitEngine : "org.junit.jupiter:junit-jupiter-engine:${jUnitVersion}",
125+
junitParams : "org.junit.jupiter:junit-jupiter-params:${jUnitVersion}",
126+
junit4 : "org.junit.jupiter:junit-jupiter:${jUnit4Version}",
127+
junit4Engine : "org.junit.vintage:junit-vintage-engine:${jUnitVersion}",
128+
msgraph : "com.microsoft.graph:microsoft-graph:${msgraphVersion}",
129+
msaAuth : "com.microsoft.graph:msa-auth-for-android-adapter:${msaAuthVersion}",
130+
mockito : "org.mockito:mockito-core:${mockitoVersion}",
131+
mockitoInline : "org.mockito:mockito-inline:${mockitoInlineVersion}",
132+
multidex : "androidx.multidex:multidex:${multidexVersion}",
133+
okHttp : "com.squareup.okhttp3:okhttp:${okHttpVersion}",
134+
okHttpDigest : "com.burgstaller:okhttp-digest:${okHttpDigestVersion}",
135+
recyclerViewFastScroll: "com.simplecityapps:recyclerview-fastscroll:${recyclerViewFastScrollVersion}",
136+
rxJava : "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
137+
rxAndroid : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
138+
rxBinding : "com.jakewharton.rxbinding2:rxbinding:${rxBindingVersion}",
139+
testingSupportLib : "com.android.support.test:testing-support-lib:${testingSupportLibVersion}",
140+
timber : "com.jakewharton.timber:timber:${timberVersion}",
141+
velocity : "org.apache.velocity:velocity:${velocityVersion}",
142+
runner : "androidx.test:runner:${runnerVersion}",
143+
rules : "androidx.test:rules:${rulesVersion}",
144+
contribution : "androidx.test.espresso:espresso-contrib:${contributionVersion}",
145+
uiAutomator : "androidx.test.uiautomator:uiautomator:${uiautomatorVersion}",
146+
zxcvbn : "com.nulab-inc:zxcvbn:${zxcvbnVersion}",
147+
scaleImageView : "com.davemorrissey.labs:subsampling-scale-image-view:${scaleImageViewVersion}",
148+
lruFileCache : "com.tomclaw.cache:cache:${lruFileCacheVersion}",
149+
jsonWebTokenApi : "io.jsonwebtoken:jjwt-api:${jsonWebTokenApiVersion}",
150+
jsonWebTokenImpl : "io.jsonwebtoken:jjwt-impl:${jsonWebTokenApiVersion}",
151+
jsonWebTokenJson : "io.jsonwebtoken:jjwt-orgjson:${jsonWebTokenApiVersion}"
152+
]
153+
154+
}

‎data/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

0 commit comments

Comments
 (0)