mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 19:59:05 +01:00
Compare commits
21 Commits
release-1.
...
beta-1.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47971517cd | ||
|
|
8db182d7e5 | ||
|
|
d44a609d0c | ||
|
|
0a1892d39f | ||
|
|
9b092da37a | ||
|
|
852e2c29e3 | ||
|
|
1b087d59d4 | ||
|
|
30ce8651b5 | ||
|
|
80a8ee4de9 | ||
|
|
354f3bc1cf | ||
|
|
1e6b018ff4 | ||
|
|
eba489bb98 | ||
|
|
2bfdcaaa42 | ||
|
|
c2e71ef52f | ||
|
|
9ee8fe74ba | ||
|
|
904d5b2ce2 | ||
|
|
1911b3dd97 | ||
|
|
bd430a1009 | ||
|
|
c16d0e8f45 | ||
|
|
847273c558 | ||
|
|
b9bac8b6a5 |
@@ -13,8 +13,8 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode 10417
|
versionCode 10418
|
||||||
versionName "1.4.17"
|
versionName "1.4.18"
|
||||||
consumerProguardFiles 'proguard-rules.txt'
|
consumerProguardFiles 'proguard-rules.txt'
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
@@ -40,8 +40,16 @@ configurations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':bramble-core', configuration: 'default')
|
// In theory this dependency shouldn't be needed, but without it Android Studio's linter will
|
||||||
|
// complain about unresolved symbols for bramble-api test classes in bramble-android tests,
|
||||||
|
// even though the bramble-api test classes are provided by the testImplementation dependency
|
||||||
|
// below and the compiler can find them
|
||||||
|
implementation project(':bramble-api')
|
||||||
|
|
||||||
|
implementation project(':bramble-core')
|
||||||
|
|
||||||
implementation 'androidx.annotation:annotation:1.5.0'
|
implementation 'androidx.annotation:annotation:1.5.0'
|
||||||
|
|
||||||
tor "org.briarproject:tor-android:$tor_version"
|
tor "org.briarproject:tor-android:$tor_version"
|
||||||
tor "org.briarproject:obfs4proxy-android:$obfs4proxy_version"
|
tor "org.briarproject:obfs4proxy-android:$obfs4proxy_version"
|
||||||
tor "org.briarproject:snowflake-android:$snowflake_version"
|
tor "org.briarproject:snowflake-android:$snowflake_version"
|
||||||
@@ -51,6 +59,7 @@ dependencies {
|
|||||||
compileOnly 'javax.annotation:jsr250-api:1.0'
|
compileOnly 'javax.annotation:jsr250-api:1.0'
|
||||||
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
|
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
testImplementation "org.jmock:jmock:$jmock_version"
|
testImplementation "org.jmock:jmock:$jmock_version"
|
||||||
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import static android.os.Process.myPid;
|
|||||||
import static android.os.Process.myTid;
|
import static android.os.Process.myTid;
|
||||||
import static android.os.Process.myUid;
|
import static android.os.Process.myUid;
|
||||||
import static android.provider.Settings.Secure.ANDROID_ID;
|
import static android.provider.Settings.Secure.ANDROID_ID;
|
||||||
import static org.briarproject.bramble.util.AndroidUtils.hasBtConnectPermission;
|
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
@@ -53,8 +52,8 @@ class AndroidSecureRandomProvider extends UnixSecureRandomProvider {
|
|||||||
ContentResolver contentResolver = appContext.getContentResolver();
|
ContentResolver contentResolver = appContext.getContentResolver();
|
||||||
String id = Settings.Secure.getString(contentResolver, ANDROID_ID);
|
String id = Settings.Secure.getString(contentResolver, ANDROID_ID);
|
||||||
if (id != null) out.writeUTF(id);
|
if (id != null) out.writeUTF(id);
|
||||||
// use bluetooth paired devices as well, if allowed
|
// On API 31 and higher we need permission to access bonded devices
|
||||||
if (hasBtConnectPermission(appContext)) {
|
if (SDK_INT < 31) {
|
||||||
Parcel parcel = Parcel.obtain();
|
Parcel parcel = Parcel.obtain();
|
||||||
BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();
|
BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();
|
||||||
if (bt != null) {
|
if (bt != null) {
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ apply from: 'witness.gradle'
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api 'org.briarproject:null-safety:0.1'
|
api 'org.briarproject:null-safety:0.1'
|
||||||
|
api 'com.google.code.findbugs:jsr305:3.0.2'
|
||||||
|
api 'javax.inject:javax.inject:1'
|
||||||
|
api "com.google.dagger:dagger:$dagger_version"
|
||||||
|
|
||||||
implementation "com.google.dagger:dagger:$dagger_version"
|
|
||||||
implementation 'com.google.code.findbugs:jsr305:3.0.2'
|
|
||||||
implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
|
implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
|
||||||
|
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
@@ -25,7 +26,7 @@ configurations {
|
|||||||
testOutput.extendsFrom(testCompile)
|
testOutput.extendsFrom(testCompile)
|
||||||
}
|
}
|
||||||
task jarTest(type: Jar, dependsOn: testClasses) {
|
task jarTest(type: Jar, dependsOn: testClasses) {
|
||||||
from sourceSets.test.output
|
from sourceSets.test.output, sourceSets.main.output
|
||||||
classifier = 'test'
|
classifier = 'test'
|
||||||
}
|
}
|
||||||
artifacts {
|
artifacts {
|
||||||
|
|||||||
@@ -9,23 +9,24 @@ apply from: 'witness.gradle'
|
|||||||
apply from: '../dagger.gradle'
|
apply from: '../dagger.gradle'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':bramble-api', configuration: 'default')
|
api project(':bramble-api')
|
||||||
implementation 'org.bouncycastle:bcprov-jdk15to18:1.71'
|
|
||||||
|
api 'org.briarproject:jtorctl:0.5'
|
||||||
|
|
||||||
|
implementation "org.bouncycastle:bcprov-jdk15to18:$bouncy_castle_version"
|
||||||
//noinspection GradleDependency
|
//noinspection GradleDependency
|
||||||
implementation 'com.h2database:h2:1.4.192' // The last version that supports Java 1.6
|
implementation 'com.h2database:h2:1.4.192' // The last version that supports Java 1.6
|
||||||
implementation 'org.bitlet:weupnp:0.1.4'
|
implementation 'org.bitlet:weupnp:0.1.4'
|
||||||
implementation 'net.i2p.crypto:eddsa:0.2.0'
|
implementation 'net.i2p.crypto:eddsa:0.2.0'
|
||||||
implementation 'org.whispersystems:curve25519-java:0.5.0'
|
implementation 'org.whispersystems:curve25519-java:0.5.0'
|
||||||
implementation 'org.briarproject:jtorctl:0.5'
|
|
||||||
implementation 'org.briarproject:socks-socket:0.1'
|
implementation 'org.briarproject:socks-socket:0.1'
|
||||||
|
|
||||||
//noinspection GradleDependency
|
|
||||||
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
||||||
|
|
||||||
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
|
|
||||||
testImplementation 'org.hsqldb:hsqldb:2.3.5' // The last version that supports Java 1.6
|
testImplementation 'org.hsqldb:hsqldb:2.3.5' // The last version that supports Java 1.6
|
||||||
testImplementation 'net.jodah:concurrentunit:0.4.2'
|
testImplementation 'net.jodah:concurrentunit:0.4.2'
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
@@ -52,7 +53,7 @@ configurations {
|
|||||||
testOutput.extendsFrom(testCompile)
|
testOutput.extendsFrom(testCompile)
|
||||||
}
|
}
|
||||||
task jarTest(type: Jar, dependsOn: testClasses) {
|
task jarTest(type: Jar, dependsOn: testClasses) {
|
||||||
from sourceSets.test.output
|
from sourceSets.test.output, sourceSets.main.output
|
||||||
classifier = 'test'
|
classifier = 'test'
|
||||||
}
|
}
|
||||||
artifacts {
|
artifacts {
|
||||||
|
|||||||
@@ -811,7 +811,8 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener {
|
|||||||
@Override
|
@Override
|
||||||
public void controlConnectionClosed() {
|
public void controlConnectionClosed() {
|
||||||
if (state.isTorRunning()) {
|
if (state.isTorRunning()) {
|
||||||
throw new RuntimeException("Control connection closed");
|
// TODO: Restart the Tor process
|
||||||
|
LOG.warning("Control connection closed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,13 @@ configurations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':bramble-core', configuration: 'default')
|
implementation project(':bramble-core')
|
||||||
|
|
||||||
implementation fileTree(dir: 'libs', include: '*.jar')
|
implementation fileTree(dir: 'libs', include: '*.jar')
|
||||||
def jna_version = '4.5.2'
|
def jna_version = '4.5.2'
|
||||||
implementation "net.java.dev.jna:jna:$jna_version"
|
implementation "net.java.dev.jna:jna:$jna_version"
|
||||||
implementation "net.java.dev.jna:jna-platform:$jna_version"
|
implementation "net.java.dev.jna:jna-platform:$jna_version"
|
||||||
|
|
||||||
tor "org.briarproject:tor-linux:$tor_version"
|
tor "org.briarproject:tor-linux:$tor_version"
|
||||||
tor "org.briarproject:tor-windows:$tor_version"
|
tor "org.briarproject:tor-windows:$tor_version"
|
||||||
tor "org.briarproject:obfs4proxy-linux:$obfs4proxy_version"
|
tor "org.briarproject:obfs4proxy-linux:$obfs4proxy_version"
|
||||||
@@ -28,9 +30,11 @@ dependencies {
|
|||||||
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||||
|
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
testImplementation "org.jmock:jmock:$jmock_version"
|
testImplementation "org.jmock:jmock:$jmock_version"
|
||||||
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
||||||
|
testImplementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
|
|
||||||
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ dependencyVerification {
|
|||||||
'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
|
'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
|
||||||
'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
|
'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
|
||||||
'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
|
'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
|
||||||
|
'com.squareup.okhttp3:okhttp:3.12.13:okhttp-3.12.13.jar:508234e024ef7e270ab1a6d5b356f5b98e786511239ca986d684fd1e2cf7bc82',
|
||||||
|
'com.squareup.okio:okio:1.15.0:okio-1.15.0.jar:693fa319a7e8843300602b204023b7674f106ebcb577f2dd5807212b66118bd2',
|
||||||
'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
|
'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
|
||||||
'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||||
'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3',
|
'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3',
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode 10417
|
versionCode 10418
|
||||||
versionName "1.4.17"
|
versionName "1.4.18"
|
||||||
applicationId "org.briarproject.briar.android"
|
applicationId "org.briarproject.briar.android"
|
||||||
buildConfigField "String", "TorVersion", "\"$tor_version\""
|
buildConfigField "String", "TorVersion", "\"$tor_version\""
|
||||||
|
|
||||||
@@ -98,10 +98,15 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':briar-core', configuration: 'default')
|
// In theory this dependency shouldn't be needed, but without it Android Studio's linter will
|
||||||
implementation project(path: ':bramble-core', configuration: 'default')
|
// complain about unresolved symbols for bramble-api test classes in briar-android tests,
|
||||||
|
// even though the bramble-api test classes are provided by the testImplementation dependency
|
||||||
|
// below and the compiler can find them
|
||||||
|
implementation project(':bramble-api')
|
||||||
|
|
||||||
|
implementation project(':bramble-core')
|
||||||
implementation project(':bramble-android')
|
implementation project(':bramble-android')
|
||||||
implementation 'org.briarproject:dont-kill-me-lib:0.2.5'
|
implementation project(':briar-core')
|
||||||
|
|
||||||
implementation 'androidx.fragment:fragment:1.3.4'
|
implementation 'androidx.fragment:fragment:1.3.4'
|
||||||
implementation 'androidx.preference:preference:1.1.1'
|
implementation 'androidx.preference:preference:1.1.1'
|
||||||
@@ -111,6 +116,9 @@ dependencies {
|
|||||||
implementation 'com.google.android.material:material:1.3.0'
|
implementation 'com.google.android.material:material:1.3.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview-selection:1.1.0'
|
implementation 'androidx.recyclerview:recyclerview-selection:1.1.0'
|
||||||
|
|
||||||
|
implementation 'org.briarproject:dont-kill-me-lib:0.2.5'
|
||||||
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
|
implementation "org.jsoup:jsoup:$jsoup_version"
|
||||||
implementation 'info.guardianproject.panic:panic:1.0'
|
implementation 'info.guardianproject.panic:panic:1.0'
|
||||||
implementation 'de.hdodenhof:circleimageview:3.1.0'
|
implementation 'de.hdodenhof:circleimageview:3.1.0'
|
||||||
implementation 'com.google.zxing:core:3.3.3' // newer version need minSdk 24
|
implementation 'com.google.zxing:core:3.3.3' // newer version need minSdk 24
|
||||||
@@ -130,9 +138,10 @@ dependencies {
|
|||||||
|
|
||||||
compileOnly 'javax.annotation:jsr250-api:1.0'
|
compileOnly 'javax.annotation:jsr250-api:1.0'
|
||||||
|
|
||||||
def espressoVersion = '3.3.0'
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||||
|
|
||||||
|
def espressoVersion = '3.3.0'
|
||||||
testImplementation 'androidx.test:runner:1.4.0'
|
testImplementation 'androidx.test:runner:1.4.0'
|
||||||
testImplementation 'androidx.test.ext:junit:1.1.3'
|
testImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
testImplementation 'androidx.fragment:fragment-testing:1.4.0'
|
testImplementation 'androidx.fragment:fragment-testing:1.4.0'
|
||||||
@@ -144,18 +153,24 @@ dependencies {
|
|||||||
testImplementation "org.jmock:jmock:$jmock_version"
|
testImplementation "org.jmock:jmock:$jmock_version"
|
||||||
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
testImplementation "org.jmock:jmock-junit4:$jmock_version"
|
||||||
testImplementation "org.jmock:jmock-imposters:$jmock_version"
|
testImplementation "org.jmock:jmock-imposters:$jmock_version"
|
||||||
|
|
||||||
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
|
|
||||||
androidTestImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
androidTestImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
|
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
|
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
|
||||||
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
|
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
|
||||||
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
|
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
|
||||||
androidTestImplementation 'androidx.test:runner:1.3.0'
|
androidTestImplementation 'androidx.test:runner:1.3.0'
|
||||||
androidTestUtil 'androidx.test:orchestrator:1.3.0'
|
|
||||||
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
|
||||||
androidTestCompileOnly 'javax.annotation:jsr250-api:1.0'
|
|
||||||
androidTestImplementation "junit:junit:$junit_version"
|
androidTestImplementation "junit:junit:$junit_version"
|
||||||
|
|
||||||
|
androidTestUtil 'androidx.test:orchestrator:1.3.0'
|
||||||
|
|
||||||
|
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
|
|
||||||
|
androidTestCompileOnly 'javax.annotation:jsr250-api:1.0'
|
||||||
|
|
||||||
androidTestScreenshotImplementation 'tools.fastlane:screengrab:2.1.1'
|
androidTestScreenshotImplementation 'tools.fastlane:screengrab:2.1.1'
|
||||||
androidTestScreenshotImplementation 'com.jraska:falcon:2.2.0'
|
androidTestScreenshotImplementation 'com.jraska:falcon:2.2.0'
|
||||||
androidTestScreenshotImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
|
androidTestScreenshotImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
|
||||||
|
|||||||
@@ -16,13 +16,12 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.widget.NestedScrollView;
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
|
||||||
import static android.view.View.FOCUS_DOWN;
|
|
||||||
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
|
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
|
||||||
|
import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
|
||||||
|
|
||||||
@MethodsNotNullByDefault
|
@MethodsNotNullByDefault
|
||||||
@ParametersNotNullByDefault
|
@ParametersNotNullByDefault
|
||||||
@@ -35,8 +34,6 @@ public class OfflineFragment extends Fragment {
|
|||||||
|
|
||||||
protected MailboxViewModel viewModel;
|
protected MailboxViewModel viewModel;
|
||||||
|
|
||||||
private NestedScrollView scrollView;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
@@ -54,7 +51,6 @@ public class OfflineFragment extends Fragment {
|
|||||||
View v = inflater
|
View v = inflater
|
||||||
.inflate(R.layout.fragment_offline, container, false);
|
.inflate(R.layout.fragment_offline, container, false);
|
||||||
|
|
||||||
scrollView = (NestedScrollView) v;
|
|
||||||
Button checkButton = v.findViewById(R.id.checkButton);
|
Button checkButton = v.findViewById(R.id.checkButton);
|
||||||
checkButton.setOnClickListener(view -> {
|
checkButton.setOnClickListener(view -> {
|
||||||
Intent i = new Intent(requireContext(), TransportsActivity.class);
|
Intent i = new Intent(requireContext(), TransportsActivity.class);
|
||||||
@@ -69,8 +65,7 @@ public class OfflineFragment extends Fragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
// Scroll down in case the screen is small, so the button is visible
|
hideViewOnSmallScreen(requireView().findViewById(R.id.iconView));
|
||||||
scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onTryAgainClicked() {
|
protected void onTryAgainClicked() {
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:color="?attr/colorControlHighlight">
|
||||||
|
<item
|
||||||
|
android:id="@android:id/mask"
|
||||||
|
android:drawable="@drawable/button_outline_mask" />
|
||||||
|
<item android:drawable="@drawable/button_outline_background" />
|
||||||
|
</ripple>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:insetLeft="4dp"
|
||||||
|
android:insetTop="6dp"
|
||||||
|
android:insetRight="4dp"
|
||||||
|
android:insetBottom="6dp">
|
||||||
|
<shape
|
||||||
|
android:shape="rectangle">
|
||||||
|
<corners android:radius="2dp" />
|
||||||
|
<solid android:color="@android:color/transparent" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@color/briar_button_outline" />
|
||||||
|
<padding
|
||||||
|
android:bottom="4dp"
|
||||||
|
android:left="8dp"
|
||||||
|
android:right="8dp"
|
||||||
|
android:top="4dp" />
|
||||||
|
</shape>
|
||||||
|
</inset>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:insetLeft="4dp"
|
||||||
|
android:insetTop="6dp"
|
||||||
|
android:insetRight="4dp"
|
||||||
|
android:insetBottom="6dp">
|
||||||
|
<shape
|
||||||
|
android:shape="rectangle">
|
||||||
|
<corners android:radius="2dp" />
|
||||||
|
<solid android:color="@android:color/white" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@android:color/white" />
|
||||||
|
<padding
|
||||||
|
android:bottom="4dp"
|
||||||
|
android:left="8dp"
|
||||||
|
android:right="8dp"
|
||||||
|
android:top="4dp" />
|
||||||
|
</shape>
|
||||||
|
</inset>
|
||||||
16
briar-android/src/main/res/drawable/button_outline.xml
Normal file
16
briar-android/src/main/res/drawable/button_outline.xml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:bottom="6dp"
|
||||||
|
android:left="4dp"
|
||||||
|
android:right="4dp"
|
||||||
|
android:top="6dp">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<corners android:radius="2dp" />
|
||||||
|
<solid android:color="@android:color/transparent" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@color/briar_button_outline" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
||||||
@@ -56,9 +56,7 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/feedbackButton"
|
android:id="@+id/feedbackButton"
|
||||||
style="@style/BriarButtonFlat.Positive"
|
style="@style/BriarButtonOutline.Neutral"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/send_feedback"
|
android:text="@string/send_feedback"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -30,9 +30,7 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/fallbackButton"
|
android:id="@+id/fallbackButton"
|
||||||
style="@style/BriarButtonFlat.Positive"
|
style="@style/BriarButtonOutline.Neutral"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/hotspot_help_fallback_button"
|
android:text="@string/hotspot_help_fallback_button"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -62,13 +62,12 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:layout_marginBottom="1dp"
|
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/hotspot_no_peers_connected"
|
android:text="@string/hotspot_no_peers_connected"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/coordinatorLayout"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/connectedButton"
|
app:layout_constraintBottom_toTopOf="@+id/connectedButton"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/coordinatorLayout" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/connectedButton"
|
android:id="@+id/connectedButton"
|
||||||
@@ -76,8 +75,8 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="1dp"
|
android:layout_marginTop="6dp"
|
||||||
android:layout_marginBottom="1dp"
|
android:drawablePadding="8dp"
|
||||||
android:text="@string/hotspot_button_connected"
|
android:text="@string/hotspot_button_connected"
|
||||||
app:drawableLeftCompat="@drawable/ic_check_white"
|
app:drawableLeftCompat="@drawable/ic_check_white"
|
||||||
app:drawableStartCompat="@drawable/ic_check_white"
|
app:drawableStartCompat="@drawable/ic_check_white"
|
||||||
@@ -85,16 +84,16 @@
|
|||||||
app:layout_constraintBottom_toTopOf="@+id/stopButton"
|
app:layout_constraintBottom_toTopOf="@+id/stopButton"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/connectedView"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/stopButton"
|
android:id="@+id/stopButton"
|
||||||
style="@style/BriarButtonFlat.Negative"
|
style="@style/BriarButtonOutline.Negative"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:layout_marginBottom="2dp"
|
|
||||||
android:drawablePadding="8dp"
|
android:drawablePadding="8dp"
|
||||||
android:text="@string/hotspot_button_stop_sharing"
|
android:text="@string/hotspot_button_stop_sharing"
|
||||||
app:drawableLeftCompat="@drawable/ic_portable_wifi_off"
|
app:drawableLeftCompat="@drawable/ic_portable_wifi_off"
|
||||||
@@ -103,6 +102,7 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/connectedButton"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|||||||
@@ -79,10 +79,11 @@
|
|||||||
|
|
||||||
<org.briarproject.briar.android.view.BriarButton
|
<org.briarproject.briar.android.view.BriarButton
|
||||||
android:id="@+id/button3"
|
android:id="@+id/button3"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
app:buttonStyle="@style/BriarButtonFlat.Negative"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
app:buttonStyle="@style/BriarButtonOutline.Negative"
|
||||||
app:text="@string/mailbox_status_unlink_button" />
|
app:text="@string/mailbox_status_unlink_button" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:context=".android.mailbox.MailboxActivity">
|
tools:context=".android.mailbox.MailboxActivity">
|
||||||
|
|
||||||
@@ -75,10 +75,11 @@
|
|||||||
|
|
||||||
<org.briarproject.briar.android.view.BriarButton
|
<org.briarproject.briar.android.view.BriarButton
|
||||||
android:id="@+id/button1_1_1"
|
android:id="@+id/button1_1_1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
app:buttonStyle="@style/BriarButtonFlat.Negative"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
app:buttonStyle="@style/BriarButtonOutline.Negative"
|
||||||
app:text="@string/mailbox_status_unlink_button" />
|
app:text="@string/mailbox_status_unlink_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -100,10 +101,11 @@
|
|||||||
|
|
||||||
<org.briarproject.briar.android.view.BriarButton
|
<org.briarproject.briar.android.view.BriarButton
|
||||||
android:id="@+id/button1_1_2"
|
android:id="@+id/button1_1_2"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
app:buttonStyle="@style/BriarButtonFlat.Negative"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
app:buttonStyle="@style/BriarButtonOutline.Negative"
|
||||||
app:text="@string/mailbox_status_unlink_button" />
|
app:text="@string/mailbox_status_unlink_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -125,10 +127,11 @@
|
|||||||
|
|
||||||
<org.briarproject.briar.android.view.BriarButton
|
<org.briarproject.briar.android.view.BriarButton
|
||||||
android:id="@+id/button1_1_3"
|
android:id="@+id/button1_1_3"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
app:buttonStyle="@style/BriarButtonFlat.Positive"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
app:buttonStyle="@style/BriarButtonOutline.Positive"
|
||||||
app:text="@string/mailbox_status_check_button" />
|
app:text="@string/mailbox_status_check_button" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -32,7 +32,8 @@
|
|||||||
android:id="@+id/statusTitleView"
|
android:id="@+id/statusTitleView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
|
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
@@ -47,62 +48,65 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/checkButton"
|
app:layout_constraintBottom_toTopOf="@+id/statusInfoView"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/statusTitleView"
|
app:layout_constraintTop_toBottomOf="@+id/statusTitleView"
|
||||||
tools:text="@string/mailbox_status_mailbox_too_old_message"
|
tools:text="@string/mailbox_status_mailbox_too_old_message"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<org.briarproject.briar.android.view.BriarButton
|
|
||||||
android:id="@+id/checkButton"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginHorizontal="16dp"
|
|
||||||
app:buttonStyle="@style/BriarButtonFlat.Neutral"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/statusInfoView"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/statusMessageView"
|
|
||||||
app:text="@string/mailbox_status_check_button" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/statusInfoView"
|
android:id="@+id/statusInfoView"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
|
app:layout_constraintBottom_toTopOf="@+id/checkButton"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/checkButton"
|
app:layout_constraintTop_toBottomOf="@+id/statusMessageView"
|
||||||
tools:text="@string/mailbox_status_connected_info" />
|
tools:text="@string/mailbox_status_connected_info" />
|
||||||
|
|
||||||
|
<org.briarproject.briar.android.view.BriarButton
|
||||||
|
android:id="@+id/checkButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
app:buttonStyle="@style/BriarButtonOutline.Neutral"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/wizardButton"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/statusInfoView"
|
||||||
|
app:text="@string/mailbox_status_check_button" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/wizardButton"
|
android:id="@+id/wizardButton"
|
||||||
style="@style/BriarButtonFlat.Positive"
|
style="@style/BriarButtonOutline.Neutral"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
android:text="@string/mailbox_error_wizard_button"
|
android:text="@string/mailbox_error_wizard_button"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:drawableTint="@color/briar_button_text_positive"
|
app:drawableTint="@color/briar_button_text_positive"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
|
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/statusInfoView"
|
app:layout_constraintTop_toBottomOf="@+id/checkButton"
|
||||||
app:layout_constraintVertical_bias="0.0"
|
app:layout_constraintVertical_bias="0.0"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/unlinkButton"
|
android:id="@+id/unlinkButton"
|
||||||
style="@style/BriarButtonFlat.Negative"
|
style="@style/BriarButtonOutline.Negative"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:text="@string/mailbox_status_unlink_button"
|
android:text="@string/mailbox_status_unlink_button"
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:fillViewport="true">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -44,38 +49,34 @@
|
|||||||
android:id="@+id/textView"
|
android:id="@+id/textView"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/margin_large"
|
||||||
android:layout_marginHorizontal="@dimen/margin_xlarge"
|
android:layout_marginHorizontal="@dimen/margin_xlarge"
|
||||||
android:layout_marginTop="@dimen/margin_xlarge"
|
|
||||||
android:layout_marginBottom="@dimen/margin_large"
|
|
||||||
android:text="@string/tor_offline_description"
|
android:text="@string/tor_offline_description"
|
||||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/checkButton"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/titleView" />
|
app:layout_constraintTop_toBottomOf="@+id/titleView" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/checkButton"
|
android:id="@+id/checkButton"
|
||||||
style="@style/BriarButtonFlat.Neutral"
|
style="@style/BriarButtonOutline.Neutral"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="@dimen/margin_large"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:text="@string/tor_offline_button_check"
|
android:text="@string/tor_offline_button_check" />
|
||||||
app:layout_constraintBottom_toTopOf="@+id/button"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button"
|
android:id="@+id/button"
|
||||||
style="@style/BriarButton"
|
style="@style/BriarButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="@dimen/margin_large"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:text="@string/try_again_button"
|
android:layout_marginTop="6dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:text="@string/try_again_button" />
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|||||||
@@ -226,6 +226,7 @@
|
|||||||
<string name="menu_contact">İletişim</string>
|
<string name="menu_contact">İletişim</string>
|
||||||
<!--Adding Contacts-->
|
<!--Adding Contacts-->
|
||||||
<string name="add_contact_title">Yakındaki Kişiyi Ekle</string>
|
<string name="add_contact_title">Yakındaki Kişiyi Ekle</string>
|
||||||
|
<string name="add_contact_error_two_way">Birbirinizin kare kodunu taradınız mı?</string>
|
||||||
<string name="face_to_face">Kişi olarak eklemek istediğiniz kişiyle buluşmanız gerekir.\n\nBu, gelecekte başkalarının sizin kimliğinize bürünmesini veya iletilerinizi okumasını engelleyecektir.</string>
|
<string name="face_to_face">Kişi olarak eklemek istediğiniz kişiyle buluşmanız gerekir.\n\nBu, gelecekte başkalarının sizin kimliğinize bürünmesini veya iletilerinizi okumasını engelleyecektir.</string>
|
||||||
<string name="continue_button">Devam et</string>
|
<string name="continue_button">Devam et</string>
|
||||||
<string name="try_again_button">Tekrar deneyin</string>
|
<string name="try_again_button">Tekrar deneyin</string>
|
||||||
@@ -241,6 +242,7 @@
|
|||||||
<string name="authenticating_with_device">Aygıtla kimlik doğrulama\u2026</string>
|
<string name="authenticating_with_device">Aygıtla kimlik doğrulama\u2026</string>
|
||||||
<string name="connection_error_title">Kişinizle bağlantı kurulamadı</string>
|
<string name="connection_error_title">Kişinizle bağlantı kurulamadı</string>
|
||||||
<string name="connection_error_feedback">Sorun devam ederse, uygulamayı geliştirmemize yardımcı olmak için <a href="feedback">geri bildirim gönderin</a>.</string>
|
<string name="connection_error_feedback">Sorun devam ederse, uygulamayı geliştirmemize yardımcı olmak için <a href="feedback">geri bildirim gönderin</a>.</string>
|
||||||
|
<string name="info_both_must_scan">Birbirinizin kare kodunu taramalısınız.</string>
|
||||||
<!--Adding Contacts Remotely-->
|
<!--Adding Contacts Remotely-->
|
||||||
<string name="add_contact_remotely_title_case">Uzaktaki Kişiyi Ekle</string>
|
<string name="add_contact_remotely_title_case">Uzaktaki Kişiyi Ekle</string>
|
||||||
<string name="add_contact_nearby_title">Yakındaki kişiyi ekle</string>
|
<string name="add_contact_nearby_title">Yakındaki kişiyi ekle</string>
|
||||||
@@ -298,6 +300,7 @@
|
|||||||
<string name="different_person_button">Farklı Kişi</string>
|
<string name="different_person_button">Farklı Kişi</string>
|
||||||
<string name="duplicate_link_dialog_text_3">%1$s ve %2$s size aynı bağlantıyı gönderdi.\n\nAralarından biri kişilerinizin kim olduğunu keşfetmeye çalışıyor olabilir.\n\nOnlara başkasından aynı bağlantıyı aldığınızı söylemeyin.</string>
|
<string name="duplicate_link_dialog_text_3">%1$s ve %2$s size aynı bağlantıyı gönderdi.\n\nAralarından biri kişilerinizin kim olduğunu keşfetmeye çalışıyor olabilir.\n\nOnlara başkasından aynı bağlantıyı aldığınızı söylemeyin.</string>
|
||||||
<string name="pending_contact_updated_toast">Bekleyen kişi güncellendi</string>
|
<string name="pending_contact_updated_toast">Bekleyen kişi güncellendi</string>
|
||||||
|
<string name="info_both_must_enter_links">Birbirinizin bağlantısını eklemelisiniz.</string>
|
||||||
<!--Peer trust levels-->
|
<!--Peer trust levels-->
|
||||||
<string name="peer_trust_level_unverified">Doğrulanmamış kişi</string>
|
<string name="peer_trust_level_unverified">Doğrulanmamış kişi</string>
|
||||||
<string name="peer_trust_level_verified">Doğrulanmış kişi</string>
|
<string name="peer_trust_level_verified">Doğrulanmış kişi</string>
|
||||||
@@ -331,6 +334,7 @@
|
|||||||
<string name="connect_via_bluetooth_intro">Bluetooth bağlantıları otomatik olarak çalışmadığında, elle bağlanmak için bu ekranı kullanabilirsiniz.\n\nBunun çalışması için kişinin yakınınızda olması gerekiyor.\n\nSizin ve kişinin aynı anda \"Başlat\" seçeneğine basması gerekiyor.</string>
|
<string name="connect_via_bluetooth_intro">Bluetooth bağlantıları otomatik olarak çalışmadığında, elle bağlanmak için bu ekranı kullanabilirsiniz.\n\nBunun çalışması için kişinin yakınınızda olması gerekiyor.\n\nSizin ve kişinin aynı anda \"Başlat\" seçeneğine basması gerekiyor.</string>
|
||||||
<string name="connect_via_bluetooth_already_discovering">Bluetooth ile zaten bağlanmaya çalışıyor. Lütfen daha sonra tekrar deneyin.</string>
|
<string name="connect_via_bluetooth_already_discovering">Bluetooth ile zaten bağlanmaya çalışıyor. Lütfen daha sonra tekrar deneyin.</string>
|
||||||
<string name="connect_via_bluetooth_no_location_permission">Konum izni olmadan devam edilemez</string>
|
<string name="connect_via_bluetooth_no_location_permission">Konum izni olmadan devam edilemez</string>
|
||||||
|
<string name="connect_via_bluetooth_no_bluetooth_permission">Yakındaki cihazlar izni olmadan devam edilemez</string>
|
||||||
<string name="connect_via_bluetooth_start">Bluetooth ile bağlanılıyor…</string>
|
<string name="connect_via_bluetooth_start">Bluetooth ile bağlanılıyor…</string>
|
||||||
<string name="connect_via_bluetooth_success">Bluetooth ile başarılı bir şekilde bağlandı</string>
|
<string name="connect_via_bluetooth_success">Bluetooth ile başarılı bir şekilde bağlandı</string>
|
||||||
<string name="connect_via_bluetooth_error">Bluetooth ile bağlanamıyor.</string>
|
<string name="connect_via_bluetooth_error">Bluetooth ile bağlanamıyor.</string>
|
||||||
@@ -729,11 +733,17 @@
|
|||||||
<string name="permission_location_request_body">Bluetooth aygıtlarını keşfetmek için, Briar\'ın konumunuza erişmesi gerekiyor.\n\nBriar konum bilginizi kaydetmez ve kimseyle paylaşmaz.</string>
|
<string name="permission_location_request_body">Bluetooth aygıtlarını keşfetmek için, Briar\'ın konumunuza erişmesi gerekiyor.\n\nBriar konum bilginizi kaydetmez ve kimseyle paylaşmaz.</string>
|
||||||
<string name="permission_camera_location_title">Kamera ve konum</string>
|
<string name="permission_camera_location_title">Kamera ve konum</string>
|
||||||
<string name="permission_camera_location_request_body">QR kodunu taramak için, Briar\'ın kameranıza erişmesi gerekiyor.\n\nBluetooth aygıtlarını keşfetmek için Briar\'ın konumunuza erişmesi gerekiyor.\n\nBriar konumunuzu saklamaz ve hiç kimseyle paylaşmaz.</string>
|
<string name="permission_camera_location_request_body">QR kodunu taramak için, Briar\'ın kameranıza erişmesi gerekiyor.\n\nBluetooth aygıtlarını keşfetmek için Briar\'ın konumunuza erişmesi gerekiyor.\n\nBriar konumunuzu saklamaz ve hiç kimseyle paylaşmaz.</string>
|
||||||
|
<string name="permission_camera_bluetooth_title">Kamera ve yakındaki cihazlar</string>
|
||||||
|
<string name="permission_camera_bluetooth_request_body">Kare kodunu taramak için Briar\'ın kameraya erişmesi gerekiyor.\n\nBluetooth cihazlarını keşfetmek için, Briar\'a yakındaki cihazları bulma ve bağlanma izni gerekiyor.</string>
|
||||||
<string name="permission_camera_denied_body">Kameraya erişimi engellediniz, ancak kişi eklemek için kamerayı kullanmanız gerekiyor.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
<string name="permission_camera_denied_body">Kameraya erişimi engellediniz, ancak kişi eklemek için kamerayı kullanmanız gerekiyor.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
||||||
<string name="permission_location_denied_body">Konuma erişimi engellediniz, ancak Briar\'ın Bluetooth aygıtlarını bulabilmek için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
<string name="permission_location_denied_body">Konuma erişimi engellediniz, ancak Briar\'ın Bluetooth aygıtlarını bulabilmek için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
||||||
<string name="permission_location_setting_title">Konum ayarı</string>
|
<string name="permission_location_setting_title">Konum ayarı</string>
|
||||||
<string name="permission_location_setting_body">Diğer aygıtları Bluetooth aracılığıyla bulmak için aygıtınızın konum ayarını açmanız gerekiyor. Devam etmek için lütfen konumu etkinleştirin. Daha sonra tekrar etkisizleştirebilirsiniz. </string>
|
<string name="permission_location_setting_body">Diğer aygıtları Bluetooth aracılığıyla bulmak için aygıtınızın konum ayarını açmanız gerekiyor. Devam etmek için lütfen konumu etkinleştirin. Daha sonra tekrar etkisizleştirebilirsiniz. </string>
|
||||||
|
<string name="permission_location_setting_hotspot_body">Wi-Fi bağlantı noktası oluşturmak için aygıtınızın konum ayarını açmanız gerekiyor. Devam etmek için lütfen konumu etkinleştirin. Daha sonra tekrar kapatabilirsiniz. </string>
|
||||||
<string name="permission_location_setting_button">Konumu etkinleştir</string>
|
<string name="permission_location_setting_button">Konumu etkinleştir</string>
|
||||||
|
<string name="permission_bluetooth_title">Yakındaki cihazlar izni</string>
|
||||||
|
<string name="permission_bluetooth_body">Bluetooth iletişimini kullanmak için Briar\'a yakındaki cihazları bulma ve bağlanma izni gerekiyor.</string>
|
||||||
|
<string name="permission_bluetooth_denied_body">Yakındaki cihazlar iznini engellediniz, ancak Briar\'ın Bluetooth kullanması için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
||||||
<string name="qr_code">QR kodu</string>
|
<string name="qr_code">QR kodu</string>
|
||||||
<string name="show_qr_code_fullscreen">QR kodunu tam ekran göster</string>
|
<string name="show_qr_code_fullscreen">QR kodunu tam ekran göster</string>
|
||||||
<!--App Locking-->
|
<!--App Locking-->
|
||||||
@@ -756,7 +766,9 @@
|
|||||||
<string name="hotspot_notification_title">Briar çevrimdışı paylaşılıyor</string>
|
<string name="hotspot_notification_title">Briar çevrimdışı paylaşılıyor</string>
|
||||||
<string name="hotspot_button_connected">İleri</string>
|
<string name="hotspot_button_connected">İleri</string>
|
||||||
<string name="permission_hotspot_location_request_body">Bir kablosuz erişim noktası oluşturmak için, Briar konumunuza erişme iznine ihtiyaç duyar.\n\nBriar konum bilginizi kaydetmez ve kimseyle paylaşmaz.</string>
|
<string name="permission_hotspot_location_request_body">Bir kablosuz erişim noktası oluşturmak için, Briar konumunuza erişme iznine ihtiyaç duyar.\n\nBriar konum bilginizi kaydetmez ve kimseyle paylaşmaz.</string>
|
||||||
|
<string name="permission_hotspot_location_request_precise_body">Bir kablosuz erişim noktası oluşturmak için, Briar kesin konumunuza erişim iznine ihtiyaç duyar.\n\nBriar konum bilginizi kaydetmez ve kimseyle paylaşmaz.</string>
|
||||||
<string name="permission_hotspot_location_denied_body">Konuma erişimi engellediniz, ancak Briar\'ın Wi-Fi erişim noktası oluşturmak için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
<string name="permission_hotspot_location_denied_body">Konuma erişimi engellediniz, ancak Briar\'ın Wi-Fi erişim noktası oluşturmak için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
||||||
|
<string name="permission_hotspot_location_denied_precise_body">Kesin konumunuza erişimi engellediniz, ancak Briar\'ın Wi-Fi erişim noktası oluşturmak için bu izne ihtiyacı var.\n\nLütfen erişim izni vermeyi düşünün.</string>
|
||||||
<string name="wifi_settings_title">Kablosuz ağ ayarları</string>
|
<string name="wifi_settings_title">Kablosuz ağ ayarları</string>
|
||||||
<string name="wifi_settings_request_enable_body">Bir kablosuz erişim noktası oluşturmak için Briar\'ın kablosuz ağı kullanması gerekiyor. Lütfen kablosuz ağı etkinleştirin.</string>
|
<string name="wifi_settings_request_enable_body">Bir kablosuz erişim noktası oluşturmak için Briar\'ın kablosuz ağı kullanması gerekiyor. Lütfen kablosuz ağı etkinleştirin.</string>
|
||||||
<string name="hotspot_tab_manual">El ile</string>
|
<string name="hotspot_tab_manual">El ile</string>
|
||||||
|
|||||||
@@ -80,6 +80,7 @@
|
|||||||
<color name="briar_button_text_neutral">@color/briar_night_500</color>
|
<color name="briar_button_text_neutral">@color/briar_night_500</color>
|
||||||
<color name="briar_button_text_negative">@color/briar_red_500</color>
|
<color name="briar_button_text_negative">@color/briar_red_500</color>
|
||||||
<color name="briar_button_text_disabled">#28000000</color>
|
<color name="briar_button_text_disabled">#28000000</color>
|
||||||
|
<color name="briar_button_outline">@android:color/secondary_text_dark</color>
|
||||||
|
|
||||||
<color name="thread_indicator">@color/briar_gray_500</color>
|
<color name="thread_indicator">@color/briar_gray_500</color>
|
||||||
<color name="thread_item_background">@color/window_background</color>
|
<color name="thread_item_background">@color/window_background</color>
|
||||||
|
|||||||
@@ -74,5 +74,4 @@
|
|||||||
<dimen name="blogs_avatar_comment_size">20dp</dimen>
|
<dimen name="blogs_avatar_comment_size">20dp</dimen>
|
||||||
|
|
||||||
<dimen name="text_input_height">42dp</dimen>
|
<dimen name="text_input_height">42dp</dimen>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -44,19 +44,20 @@
|
|||||||
<item name="android:textColor">@color/button_text</item>
|
<item name="android:textColor">@color/button_text</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButtonFlat.Negative" parent="Widget.AppCompat.Button.Borderless">
|
<style name="BriarButtonFlat" parent="Widget.AppCompat.Button.Borderless">
|
||||||
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BriarButtonFlat.Negative" parent="BriarButtonFlat">
|
||||||
<item name="android:textColor">@color/briar_button_text_negative</item>
|
<item name="android:textColor">@color/briar_button_text_negative</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButtonFlat.Positive" parent="Widget.AppCompat.Button.Borderless">
|
<style name="BriarButtonFlat.Positive" parent="BriarButtonFlat">
|
||||||
<item name="android:textColor">@color/briar_button_text_positive</item>
|
<item name="android:textColor">@color/briar_button_text_positive</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButtonFlat.Neutral" parent="Widget.AppCompat.Button.Borderless">
|
<style name="BriarButtonFlat.Neutral" parent="BriarButtonFlat">
|
||||||
<item name="android:textColor">@color/briar_button_text_neutral</item>
|
<item name="android:textColor">@color/briar_button_text_neutral</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButtonFlat.Positive.Tiny" parent="BriarButtonFlat.Positive">
|
<style name="BriarButtonFlat.Positive.Tiny" parent="BriarButtonFlat.Positive">
|
||||||
@@ -65,6 +66,26 @@
|
|||||||
<item name="android:minWidth">@dimen/button_size</item>
|
<item name="android:minWidth">@dimen/button_size</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="BriarButtonOutline" parent="Widget.AppCompat.Button.Borderless">
|
||||||
|
<item name="android:layout_width">match_parent</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
|
<item name="android:background">@drawable/button_outline</item>
|
||||||
|
<item name="android:padding">@dimen/margin_large</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BriarButtonOutline.Negative" parent="BriarButtonOutline">
|
||||||
|
<item name="android:textColor">@color/briar_button_text_negative</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BriarButtonOutline.Positive" parent="BriarButtonOutline">
|
||||||
|
<item name="android:textColor">@color/briar_button_text_positive</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BriarButtonOutline.Neutral" parent="BriarButtonOutline">
|
||||||
|
<item name="android:textColor">@color/briar_button_text_neutral</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="Divider">
|
<style name="Divider">
|
||||||
<item name="android:background">@color/divider</item>
|
<item name="android:background">@color/divider</item>
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ dependencyVerification {
|
|||||||
'com.google.zxing:core:3.3.3:core-3.3.3.jar:5820f81e943e4bce0329306621e2d6255d2930b0a6ce934c5c23c0d6d3f20599',
|
'com.google.zxing:core:3.3.3:core-3.3.3.jar:5820f81e943e4bce0329306621e2d6255d2930b0a6ce934c5c23c0d6d3f20599',
|
||||||
'com.ibm.icu:icu4j:53.1:icu4j-53.1.jar:e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab',
|
'com.ibm.icu:icu4j:53.1:icu4j-53.1.jar:e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab',
|
||||||
'com.jraska:falcon:2.2.0:falcon-2.2.0.aar:8b016c6e016ef99fb493b8614b2362cfba540a68ac16a9bb6da310ae10e30b81',
|
'com.jraska:falcon:2.2.0:falcon-2.2.0.aar:8b016c6e016ef99fb493b8614b2362cfba540a68ac16a9bb6da310ae10e30b81',
|
||||||
|
'com.squareup.okhttp3:okhttp:3.12.13:okhttp-3.12.13.jar:508234e024ef7e270ab1a6d5b356f5b98e786511239ca986d684fd1e2cf7bc82',
|
||||||
|
'com.squareup.okio:okio:1.15.0:okio-1.15.0.jar:693fa319a7e8843300602b204023b7674f106ebcb577f2dd5807212b66118bd2',
|
||||||
'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
|
'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
|
||||||
'com.squareup:javawriter:2.1.1:javawriter-2.1.1.jar:f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e',
|
'com.squareup:javawriter:2.1.1:javawriter-2.1.1.jar:f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e',
|
||||||
'com.vanniktech:emoji-google:0.7.0:emoji-google-0.7.0.aar:b98966812e3f607ee823cde15dd9b3823c6f02e5587572b860b9d95e3f971402',
|
'com.vanniktech:emoji-google:0.7.0:emoji-google-0.7.0.aar:b98966812e3f607ee823cde15dd9b3823c6f02e5587572b860b9d95e3f971402',
|
||||||
@@ -149,6 +151,7 @@ dependencyVerification {
|
|||||||
'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd',
|
'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd',
|
||||||
'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04',
|
'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04',
|
||||||
'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be',
|
'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be',
|
||||||
|
'org.jsoup:jsoup:1.15.3:jsoup-1.15.3.jar:e20a5e78b1372f2a4e620832db4442d5077e5cbde280b24c666a3770844999bc',
|
||||||
'org.mockito:mockito-core:3.9.0:mockito-core-3.9.0.jar:a1f64211407b8dc4cf80b16e07cc11aa9e5228d53dc4a5357326d66825f6a4ac',
|
'org.mockito:mockito-core:3.9.0:mockito-core-3.9.0.jar:a1f64211407b8dc4cf80b16e07cc11aa9e5228d53dc4a5357326d66825f6a4ac',
|
||||||
'org.nanohttpd:nanohttpd:2.3.1:nanohttpd-2.3.1.jar:de864c47818157141a24c9acb36df0c47d7bf15b7ff48c90610f3eb4e5df0e58',
|
'org.nanohttpd:nanohttpd:2.3.1:nanohttpd-2.3.1.jar:de864c47818157141a24c9acb36df0c47d7bf15b7ff48c90610f3eb4e5df0e58',
|
||||||
'org.objenesis:objenesis:3.2:objenesis-3.2.jar:03d960bd5aef03c653eb000413ada15eb77cdd2b8e4448886edf5692805e35f3',
|
'org.objenesis:objenesis:3.2:objenesis-3.2.jar:03d960bd5aef03c653eb000413ada15eb77cdd2b8e4448886edf5692805e35f3',
|
||||||
@@ -173,5 +176,6 @@ dependencyVerification {
|
|||||||
'org.robolectric:utils-reflector:4.4:utils-reflector-4.4.jar:35a77865bb9a451e99b95575cb154a5f08ecb007bd17e390817c0f31ab9db869',
|
'org.robolectric:utils-reflector:4.4:utils-reflector-4.4.jar:35a77865bb9a451e99b95575cb154a5f08ecb007bd17e390817c0f31ab9db869',
|
||||||
'org.robolectric:utils:4.4:utils-4.4.jar:f9756b5c57116ae9ec55a65ca52b64ba1f77d30b5eb7b55fef5d125fdf7d69d9',
|
'org.robolectric:utils:4.4:utils-4.4.jar:f9756b5c57116ae9ec55a65ca52b64ba1f77d30b5eb7b55fef5d125fdf7d69d9',
|
||||||
'tools.fastlane:screengrab:2.1.1:screengrab-2.1.1.aar:5a02781c0986e71ddbc691263115c2db70bdebb4b48d5b6dcf06ab1cb547d62d',
|
'tools.fastlane:screengrab:2.1.1:screengrab-2.1.1.aar:5a02781c0986e71ddbc691263115c2db70bdebb4b48d5b6dcf06ab1cb547d62d',
|
||||||
'uk.co.samuelwall:material-tap-target-prompt:3.3.0:material-tap-target-prompt-3.3.0.aar:00f16e8d7e55d01e3b41cf66e09eee8588870ca7285ba3c72267ca0482f1606e',]
|
'uk.co.samuelwall:material-tap-target-prompt:3.3.0:material-tap-target-prompt-3.3.0.aar:00f16e8d7e55d01e3b41cf66e09eee8588870ca7285ba3c72267ca0482f1606e',
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,11 @@ apply plugin: 'witness'
|
|||||||
apply from: 'witness.gradle'
|
apply from: 'witness.gradle'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':bramble-api', configuration: 'default')
|
implementation project(':bramble-api')
|
||||||
|
|
||||||
signature 'org.codehaus.mojo.signature:java16:1.1@signature'
|
signature 'org.codehaus.mojo.signature:java16:1.1@signature'
|
||||||
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
|
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,11 @@ public interface ForumManager {
|
|||||||
*/
|
*/
|
||||||
void removeForum(Forum f) throws DbException;
|
void removeForum(Forum f) throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unsubscribes from a forum.
|
||||||
|
*/
|
||||||
|
void removeForum(Transaction txn, Forum f) throws DbException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a local forum post.
|
* Creates a local forum post.
|
||||||
*/
|
*/
|
||||||
@@ -127,6 +132,11 @@ public interface ForumManager {
|
|||||||
*/
|
*/
|
||||||
void setReadFlag(GroupId g, MessageId m, boolean read) throws DbException;
|
void setReadFlag(GroupId g, MessageId m, boolean read) throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marks a message as read or unread and updates the group count.
|
||||||
|
*/
|
||||||
|
void setReadFlag(Transaction txn, GroupId g, MessageId m, boolean read) throws DbException;
|
||||||
|
|
||||||
interface RemoveForumHook {
|
interface RemoveForumHook {
|
||||||
/**
|
/**
|
||||||
* Called when a forum is being removed.
|
* Called when a forum is being removed.
|
||||||
|
|||||||
@@ -24,23 +24,48 @@ public interface SharingManager<S extends Shareable>
|
|||||||
void sendInvitation(GroupId shareableId, ContactId contactId,
|
void sendInvitation(GroupId shareableId, ContactId contactId,
|
||||||
@Nullable String text) throws DbException;
|
@Nullable String text) throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends an invitation to share the given group with the given contact,
|
||||||
|
* including optional text.
|
||||||
|
*/
|
||||||
|
void sendInvitation(Transaction txn, GroupId shareableId,
|
||||||
|
ContactId contactId, @Nullable String text) throws DbException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responds to a pending group invitation
|
* Responds to a pending group invitation
|
||||||
*/
|
*/
|
||||||
void respondToInvitation(S s, Contact c, boolean accept)
|
void respondToInvitation(S s, Contact c, boolean accept)
|
||||||
throws DbException;
|
throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responds to a pending group invitation
|
||||||
|
*/
|
||||||
|
void respondToInvitation(Transaction txn, S s, Contact c, boolean accept)
|
||||||
|
throws DbException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responds to a pending group invitation
|
* Responds to a pending group invitation
|
||||||
*/
|
*/
|
||||||
void respondToInvitation(ContactId c, SessionId id, boolean accept)
|
void respondToInvitation(ContactId c, SessionId id, boolean accept)
|
||||||
throws DbException;
|
throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responds to a pending group invitation
|
||||||
|
*/
|
||||||
|
void respondToInvitation(Transaction txn, ContactId c, SessionId id,
|
||||||
|
boolean accept) throws DbException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all invitations to groups.
|
* Returns all invitations to groups.
|
||||||
*/
|
*/
|
||||||
Collection<SharingInvitationItem> getInvitations() throws DbException;
|
Collection<SharingInvitationItem> getInvitations() throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns all invitations to groups.
|
||||||
|
*/
|
||||||
|
Collection<SharingInvitationItem> getInvitations(Transaction txn)
|
||||||
|
throws DbException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all contacts with whom the given group is shared.
|
* Returns all contacts with whom the given group is shared.
|
||||||
*/
|
*/
|
||||||
@@ -57,4 +82,10 @@ public interface SharingManager<S extends Shareable>
|
|||||||
*/
|
*/
|
||||||
boolean canBeShared(GroupId g, Contact c) throws DbException;
|
boolean canBeShared(GroupId g, Contact c) throws DbException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the group not already shared and no invitation is open
|
||||||
|
*/
|
||||||
|
boolean canBeShared(Transaction txn, GroupId g, Contact c)
|
||||||
|
throws DbException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,18 +9,20 @@ apply from: 'witness.gradle'
|
|||||||
apply from: '../dagger.gradle'
|
apply from: '../dagger.gradle'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':briar-api', configuration: 'default')
|
api project(':briar-api')
|
||||||
|
|
||||||
|
implementation project(':bramble-core')
|
||||||
|
|
||||||
implementation 'com.rometools:rome:1.15.0'
|
implementation 'com.rometools:rome:1.15.0'
|
||||||
implementation 'org.jdom:jdom2:2.0.6'
|
implementation 'org.jdom:jdom2:2.0.6'
|
||||||
//noinspection GradleDependency
|
implementation "org.jsoup:jsoup:$jsoup_version"
|
||||||
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
implementation 'org.jsoup:jsoup:1.15.3'
|
|
||||||
|
|
||||||
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
|
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'default')
|
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
|
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||||
|
|
||||||
testImplementation 'net.jodah:concurrentunit:0.4.2'
|
testImplementation 'net.jodah:concurrentunit:0.4.2'
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
testImplementation "org.jmock:jmock:$jmock_version"
|
testImplementation "org.jmock:jmock:$jmock_version"
|
||||||
@@ -37,7 +39,7 @@ configurations {
|
|||||||
testOutput.extendsFrom(testCompile)
|
testOutput.extendsFrom(testCompile)
|
||||||
}
|
}
|
||||||
task jarTest(type: Jar, dependsOn: testClasses) {
|
task jarTest(type: Jar, dependsOn: testClasses) {
|
||||||
from sourceSets.test.output
|
from sourceSets.test.output, sourceSets.main.output
|
||||||
classifier = 'test'
|
classifier = 'test'
|
||||||
}
|
}
|
||||||
artifacts {
|
artifacts {
|
||||||
|
|||||||
@@ -105,11 +105,14 @@ class ForumManagerImpl extends BdfIncomingMessageHook implements ForumManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeForum(Forum f) throws DbException {
|
public void removeForum(Forum f) throws DbException {
|
||||||
db.transaction(false, txn -> {
|
db.transaction(false, txn -> removeForum(txn, f));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeForum(Transaction txn, Forum f) throws DbException {
|
||||||
for (RemoveForumHook hook : removeHooks)
|
for (RemoveForumHook hook : removeHooks)
|
||||||
hook.removingForum(txn, f);
|
hook.removingForum(txn, f);
|
||||||
db.removeGroup(txn, f.getGroup());
|
db.removeGroup(txn, f.getGroup());
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -268,6 +271,12 @@ class ForumManagerImpl extends BdfIncomingMessageHook implements ForumManager {
|
|||||||
messageTracker.setReadFlag(txn, g, m, read));
|
messageTracker.setReadFlag(txn, g, m, read));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setReadFlag(Transaction txn, GroupId g, MessageId m,
|
||||||
|
boolean read) throws DbException {
|
||||||
|
messageTracker.setReadFlag(txn, g, m, read);
|
||||||
|
}
|
||||||
|
|
||||||
private Forum parseForum(Group g) throws FormatException {
|
private Forum parseForum(Group g) throws FormatException {
|
||||||
byte[] descriptor = g.getDescriptor();
|
byte[] descriptor = g.getDescriptor();
|
||||||
// Name, salt
|
// Name, salt
|
||||||
|
|||||||
@@ -259,8 +259,14 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
@Override
|
@Override
|
||||||
public void sendInvitation(GroupId shareableId, ContactId contactId,
|
public void sendInvitation(GroupId shareableId, ContactId contactId,
|
||||||
@Nullable String text) throws DbException {
|
@Nullable String text) throws DbException {
|
||||||
|
db.transaction(false,
|
||||||
|
txn -> sendInvitation(txn, shareableId, contactId, text));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendInvitation(Transaction txn, GroupId shareableId,
|
||||||
|
ContactId contactId, @Nullable String text) throws DbException {
|
||||||
SessionId sessionId = getSessionId(shareableId);
|
SessionId sessionId = getSessionId(shareableId);
|
||||||
Transaction txn = db.startTransaction(false);
|
|
||||||
try {
|
try {
|
||||||
Contact contact = db.getContact(txn, contactId);
|
Contact contact = db.getContact(txn, contactId);
|
||||||
if (!canBeShared(txn, shareableId, contact))
|
if (!canBeShared(txn, shareableId, contact))
|
||||||
@@ -286,11 +292,8 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
session = engine.onInviteAction(txn, session, text);
|
session = engine.onInviteAction(txn, session, text);
|
||||||
// Store the updated session
|
// Store the updated session
|
||||||
storeSession(txn, storageId, session);
|
storeSession(txn, storageId, session);
|
||||||
db.commitTransaction(txn);
|
|
||||||
} catch (FormatException e) {
|
} catch (FormatException e) {
|
||||||
throw new DbException(e);
|
throw new DbException(e);
|
||||||
} finally {
|
|
||||||
db.endTransaction(txn);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,6 +303,12 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
respondToInvitation(c.getId(), getSessionId(s.getId()), accept);
|
respondToInvitation(c.getId(), getSessionId(s.getId()), accept);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void respondToInvitation(Transaction txn, S s, Contact c,
|
||||||
|
boolean accept) throws DbException {
|
||||||
|
respondToInvitation(txn, c.getId(), getSessionId(s.getId()), accept);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void respondToInvitation(ContactId c, SessionId id, boolean accept)
|
public void respondToInvitation(ContactId c, SessionId id, boolean accept)
|
||||||
throws DbException {
|
throws DbException {
|
||||||
@@ -307,6 +316,12 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
txn -> respondToInvitation(txn, c, id, accept, false));
|
txn -> respondToInvitation(txn, c, id, accept, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void respondToInvitation(Transaction txn, ContactId c, SessionId id,
|
||||||
|
boolean accept) throws DbException {
|
||||||
|
respondToInvitation(txn, c, id, accept, false);
|
||||||
|
}
|
||||||
|
|
||||||
private void respondToInvitation(Transaction txn, ContactId c,
|
private void respondToInvitation(Transaction txn, ContactId c,
|
||||||
SessionId id, boolean accept, boolean isAutoDecline)
|
SessionId id, boolean accept, boolean isAutoDecline)
|
||||||
throws DbException {
|
throws DbException {
|
||||||
@@ -390,10 +405,15 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
@Override
|
@Override
|
||||||
public Collection<SharingInvitationItem> getInvitations()
|
public Collection<SharingInvitationItem> getInvitations()
|
||||||
throws DbException {
|
throws DbException {
|
||||||
|
return db.transactionWithResult(true, this::getInvitations);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<SharingInvitationItem> getInvitations(Transaction txn)
|
||||||
|
throws DbException {
|
||||||
List<SharingInvitationItem> items = new ArrayList<>();
|
List<SharingInvitationItem> items = new ArrayList<>();
|
||||||
BdfDictionary query = messageParser.getInvitesAvailableToAnswerQuery();
|
BdfDictionary query = messageParser.getInvitesAvailableToAnswerQuery();
|
||||||
Map<S, Collection<Contact>> sharers = new HashMap<>();
|
Map<S, Collection<Contact>> sharers = new HashMap<>();
|
||||||
Transaction txn = db.startTransaction(true);
|
|
||||||
try {
|
try {
|
||||||
// get invitations from each contact
|
// get invitations from each contact
|
||||||
for (Contact c : db.getContacts(txn)) {
|
for (Contact c : db.getContacts(txn)) {
|
||||||
@@ -423,12 +443,9 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
new SharingInvitationItem(s, subscribed, contacts);
|
new SharingInvitationItem(s, subscribed, contacts);
|
||||||
items.add(invitation);
|
items.add(invitation);
|
||||||
}
|
}
|
||||||
db.commitTransaction(txn);
|
|
||||||
return items;
|
return items;
|
||||||
} catch (FormatException e) {
|
} catch (FormatException e) {
|
||||||
throw new DbException(e);
|
throw new DbException(e);
|
||||||
} finally {
|
|
||||||
db.endTransaction(txn);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -461,7 +478,8 @@ abstract class SharingManagerImpl<S extends Shareable>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canBeShared(Transaction txn, GroupId g, Contact c)
|
@Override
|
||||||
|
public boolean canBeShared(Transaction txn, GroupId g, Contact c)
|
||||||
throws DbException {
|
throws DbException {
|
||||||
// The group can't be shared unless the contact supports the client
|
// The group can't be shared unless the contact supports the client
|
||||||
Visibility client = clientVersioningManager.getClientVisibility(txn,
|
Visibility client = clientVersioningManager.getClientVisibility(txn,
|
||||||
|
|||||||
@@ -17,17 +17,19 @@ sourceCompatibility = 1.8
|
|||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(path: ':briar-core', configuration: 'default')
|
implementation project(':bramble-core')
|
||||||
implementation project(path: ':bramble-java', configuration: 'default')
|
implementation project(':bramble-java')
|
||||||
|
implementation project(':briar-core')
|
||||||
|
|
||||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10'
|
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10'
|
||||||
implementation 'io.javalin:javalin:3.5.0'
|
implementation 'io.javalin:javalin:3.5.0'
|
||||||
implementation 'org.slf4j:slf4j-simple:1.7.30'
|
implementation 'org.slf4j:slf4j-simple:1.7.30'
|
||||||
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
|
||||||
implementation 'com.github.ajalt:clikt:2.2.0'
|
implementation 'com.github.ajalt:clikt:2.2.0'
|
||||||
|
implementation "org.bouncycastle:bcprov-jdk15to18:$bouncy_castle_version"
|
||||||
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
|
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
||||||
|
|
||||||
def daggerVersion = '2.24'
|
kapt "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
kapt "com.google.dagger:dagger-compiler:$daggerVersion"
|
|
||||||
|
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||||
@@ -36,15 +38,23 @@ dependencies {
|
|||||||
def junitVersion = '5.5.2'
|
def junitVersion = '5.5.2'
|
||||||
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"
|
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"
|
||||||
testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion"
|
testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion"
|
||||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
|
|
||||||
testImplementation 'io.mockk:mockk:1.12.4'
|
testImplementation 'io.mockk:mockk:1.12.4'
|
||||||
testImplementation 'org.skyscreamer:jsonassert:1.5.0'
|
testImplementation 'org.skyscreamer:jsonassert:1.5.0'
|
||||||
testImplementation "com.squareup.okhttp3:okhttp:4.10.0"
|
testImplementation "com.squareup.okhttp3:okhttp:4.10.0"
|
||||||
|
|
||||||
kaptTest "com.google.dagger:dagger-compiler:$daggerVersion"
|
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
|
||||||
|
|
||||||
|
kaptTest "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
void jarFactory(Jar jarTask, jarArchitecture) {
|
void jarFactory(Jar jarTask, jarArchitecture) {
|
||||||
|
jarTask.dependsOn(
|
||||||
|
':bramble-api:jar',
|
||||||
|
':bramble-core:jar',
|
||||||
|
':bramble-java:jar',
|
||||||
|
':briar-api:jar',
|
||||||
|
':briar-core:jar'
|
||||||
|
)
|
||||||
jarTask.dependsOn(jar)
|
jarTask.dependsOn(jar)
|
||||||
jarTask.doFirst {
|
jarTask.doFirst {
|
||||||
println 'Building ' + jarArchitecture + ' version has started'
|
println 'Building ' + jarArchitecture + ' version has started'
|
||||||
|
|||||||
@@ -5,21 +5,24 @@ dependencyVerification {
|
|||||||
'com.fasterxml.jackson.core:jackson-databind:2.13.4:jackson-databind-2.13.4.jar:c9faff420d9e2c7e1e4711dbeebec2506a32c9942027211c5c293d8d87807eb6',
|
'com.fasterxml.jackson.core:jackson-databind:2.13.4:jackson-databind-2.13.4.jar:c9faff420d9e2c7e1e4711dbeebec2506a32c9942027211c5c293d8d87807eb6',
|
||||||
'com.github.ajalt:clikt:2.2.0:clikt-2.2.0.jar:beb3136d06764ec8ce0810a8fd6c8b7b49d04287d1deef3a07c016e43a458d33',
|
'com.github.ajalt:clikt:2.2.0:clikt-2.2.0.jar:beb3136d06764ec8ce0810a8fd6c8b7b49d04287d1deef3a07c016e43a458d33',
|
||||||
'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
|
'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
|
||||||
'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f',
|
'com.google.dagger:dagger-compiler:2.43.2:dagger-compiler-2.43.2.jar:298c020ee6ed2f4cc651ebbfdb7f8de329b07c44b618d65be117846a850e2a03',
|
||||||
'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a',
|
'com.google.dagger:dagger-producers:2.43.2:dagger-producers-2.43.2.jar:e7f5d9ffc85d48a49c8e22e02833d418f7ccad5d7512f529964db5127ab915ff',
|
||||||
'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718',
|
'com.google.dagger:dagger-spi:2.43.2:dagger-spi-2.43.2.jar:3bae8d9dadeaaa5927da6f094389a560c12c05fec3d2711d2fa79292c7a7d7ad',
|
||||||
'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64',
|
'com.google.dagger:dagger:2.43.2:dagger-2.43.2.jar:c89681f7cbbf8c527bf4ac2748515d617fdb54a1d425c08d914fdc28192b5fe4',
|
||||||
'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a',
|
'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941',
|
||||||
|
'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3',
|
||||||
'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
|
'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
|
||||||
'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
|
'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
|
||||||
'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
|
'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
|
||||||
'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7',
|
'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
|
||||||
'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
|
'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
|
||||||
'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6',
|
'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
|
||||||
|
'com.squareup.okhttp3:okhttp:3.12.13:okhttp-3.12.13.jar:508234e024ef7e270ab1a6d5b356f5b98e786511239ca986d684fd1e2cf7bc82',
|
||||||
'com.squareup.okhttp3:okhttp:4.10.0:okhttp-4.10.0.jar:7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec',
|
'com.squareup.okhttp3:okhttp:4.10.0:okhttp-4.10.0.jar:7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec',
|
||||||
'com.squareup.okio:okio-jvm:3.0.0:okio-jvm-3.0.0.jar:be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907',
|
'com.squareup.okio:okio-jvm:3.0.0:okio-jvm-3.0.0.jar:be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907',
|
||||||
|
'com.squareup.okio:okio:1.15.0:okio-1.15.0.jar:693fa319a7e8843300602b204023b7674f106ebcb577f2dd5807212b66118bd2',
|
||||||
'com.squareup.okio:okio:3.0.0:okio-metadata-3.0.0.jar:dcbe63ed43b2c90c325e9e6a0863e2e7605980bff5e728c6de1088be5574979e',
|
'com.squareup.okio:okio:3.0.0:okio-metadata-3.0.0.jar:dcbe63ed43b2c90c325e9e6a0863e2e7605980bff5e728c6de1088be5574979e',
|
||||||
'com.squareup:javapoet:1.11.1:javapoet-1.11.1.jar:9cbf2107be499ec6e95afd36b58e3ca122a24166cdd375732e51267d64058e90',
|
'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
|
||||||
'com.vaadin.external.google:android-json:0.0.20131108.vaadin1:android-json-0.0.20131108.vaadin1.jar:dfb7bae2f404cfe0b72b4d23944698cb716b7665171812a0a4d0f5926c0fac79',
|
'com.vaadin.external.google:android-json:0.0.20131108.vaadin1:android-json-0.0.20131108.vaadin1.jar:dfb7bae2f404cfe0b72b4d23944698cb716b7665171812a0a4d0f5926c0fac79',
|
||||||
'io.javalin:javalin:3.5.0:javalin-3.5.0.jar:6618f99ad4c241eefcaf3a02c85adc52ec346c9710e8eb5a3f1a916e3d7acec4',
|
'io.javalin:javalin:3.5.0:javalin-3.5.0.jar:6618f99ad4c241eefcaf3a02c85adc52ec346c9710e8eb5a3f1a916e3d7acec4',
|
||||||
'io.mockk:mockk-agent-api:1.12.4:mockk-agent-api-1.12.4.jar:6eb3407b1f88c0c0ced9636f82874100786b74b3b06c4354c4d85229779fdec8',
|
'io.mockk:mockk-agent-api:1.12.4:mockk-agent-api-1.12.4.jar:6eb3407b1f88c0c0ced9636f82874100786b74b3b06c4354c4d85229779fdec8',
|
||||||
@@ -29,7 +32,6 @@ dependencyVerification {
|
|||||||
'io.mockk:mockk-dsl-jvm:1.12.4:mockk-dsl-jvm-1.12.4.jar:faee4b52def68fa182f89d23c2a45f2246ef88b6b1ba98346aa85f57e5ed630f',
|
'io.mockk:mockk-dsl-jvm:1.12.4:mockk-dsl-jvm-1.12.4.jar:faee4b52def68fa182f89d23c2a45f2246ef88b6b1ba98346aa85f57e5ed630f',
|
||||||
'io.mockk:mockk-dsl:1.12.4:mockk-dsl-1.12.4.jar:7fc96f9ed5118c915a3890ba2e4090c9b283ae7bdc37ab83885415bdf77650e4',
|
'io.mockk:mockk-dsl:1.12.4:mockk-dsl-1.12.4.jar:7fc96f9ed5118c915a3890ba2e4090c9b283ae7bdc37ab83885415bdf77650e4',
|
||||||
'io.mockk:mockk:1.12.4:mockk-1.12.4.jar:2c34a3690b958a3cf38b82d0f4910dc9992fb078dce6f56d71498293557bf805',
|
'io.mockk:mockk:1.12.4:mockk-1.12.4.jar:2c34a3690b958a3cf38b82d0f4910dc9992fb078dce6f56d71498293557bf805',
|
||||||
'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f',
|
|
||||||
'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||||
'javax.servlet:javax.servlet-api:3.1.0:javax.servlet-api-3.1.0.jar:af456b2dd41c4e82cf54f3e743bc678973d9fe35bd4d3071fa05c7e5333b8482',
|
'javax.servlet:javax.servlet-api:3.1.0:javax.servlet-api-3.1.0.jar:af456b2dd41c4e82cf54f3e743bc678973d9fe35bd4d3071fa05c7e5333b8482',
|
||||||
'net.bytebuddy:byte-buddy-agent:1.12.6:byte-buddy-agent-1.12.6.jar:9b29421fe4650b75fc3ed53590f914c54f932e334b3506cc00296dff73024183',
|
'net.bytebuddy:byte-buddy-agent:1.12.6:byte-buddy-agent-1.12.6.jar:9b29421fe4650b75fc3ed53590f914c54f932e334b3506cc00296dff73024183',
|
||||||
@@ -37,9 +39,9 @@ dependencyVerification {
|
|||||||
'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
|
'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
|
||||||
'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
|
'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
|
||||||
'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
|
'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
|
||||||
'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d',
|
'org.bouncycastle:bcprov-jdk15to18:1.71:bcprov-jdk15to18-1.71.jar:143aaa4a40edd5fc2a18db7900059f6c16f4d931b94b94b20f7e2238e6662886',
|
||||||
'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a',
|
'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
|
||||||
'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53',
|
'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb',
|
||||||
'org.eclipse.jetty.websocket:websocket-api:9.4.20.v20190813:websocket-api-9.4.20.v20190813.jar:779a29060cc17bdeeeba147efc884ebff972cfff93dad2d37b11c93f95d4f67b',
|
'org.eclipse.jetty.websocket:websocket-api:9.4.20.v20190813:websocket-api-9.4.20.v20190813.jar:779a29060cc17bdeeeba147efc884ebff972cfff93dad2d37b11c93f95d4f67b',
|
||||||
'org.eclipse.jetty.websocket:websocket-client:9.4.20.v20190813:websocket-client-9.4.20.v20190813.jar:df5df7ea0b2d40e1011946cfa5fe27c86047f0c4e77ccc0b8c0c7f5518278bf3',
|
'org.eclipse.jetty.websocket:websocket-client:9.4.20.v20190813:websocket-client-9.4.20.v20190813.jar:df5df7ea0b2d40e1011946cfa5fe27c86047f0c4e77ccc0b8c0c7f5518278bf3',
|
||||||
'org.eclipse.jetty.websocket:websocket-common:9.4.20.v20190813:websocket-common-9.4.20.v20190813.jar:a66eb0a5299e2f33addb0dca827cc95a0773c41a12ea70c0d52d51beabaecf65',
|
'org.eclipse.jetty.websocket:websocket-common:9.4.20.v20190813:websocket-common-9.4.20.v20190813.jar:a66eb0a5299e2f33addb0dca827cc95a0773c41a12ea70c0d52d51beabaecf65',
|
||||||
@@ -66,10 +68,15 @@ dependencyVerification {
|
|||||||
'org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10:kotlin-scripting-compiler-embeddable-1.7.10.jar:fcb8a0b3b7a95263dab8a0ccdd34fed02888700511eabb5613f75a007a4aa802',
|
'org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10:kotlin-scripting-compiler-embeddable-1.7.10.jar:fcb8a0b3b7a95263dab8a0ccdd34fed02888700511eabb5613f75a007a4aa802',
|
||||||
'org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10:kotlin-scripting-compiler-impl-embeddable-1.7.10.jar:7119205985ebd721179fb0f35d1d511f96de14fbd48e6465119fcac6bffc8090',
|
'org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10:kotlin-scripting-compiler-impl-embeddable-1.7.10.jar:7119205985ebd721179fb0f35d1d511f96de14fbd48e6465119fcac6bffc8090',
|
||||||
'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10:kotlin-scripting-jvm-1.7.10.jar:cf85511ce4e26fa3286d722f95ed54f16f2513a39ce3b85f2b567e575cb45a60',
|
'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10:kotlin-scripting-jvm-1.7.10.jar:cf85511ce4e26fa3286d722f95ed54f16f2513a39ce3b85f2b567e575cb45a60',
|
||||||
|
'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f',
|
||||||
'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10:kotlin-stdlib-common-1.7.10.jar:19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4',
|
'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10:kotlin-stdlib-common-1.7.10.jar:19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4',
|
||||||
|
'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239',
|
||||||
'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10:kotlin-stdlib-jdk7-1.7.10.jar:54f61351b1936ad88f4e53059fe781e723eae51d78ed9e7422d8b403574ec682',
|
'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10:kotlin-stdlib-jdk7-1.7.10.jar:54f61351b1936ad88f4e53059fe781e723eae51d78ed9e7422d8b403574ec682',
|
||||||
|
'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b',
|
||||||
'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10:kotlin-stdlib-jdk8-1.7.10.jar:8aafdd60c94f454c92e5066d266a5ed53ecc63c78f623b3fd9db56fea4032873',
|
'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10:kotlin-stdlib-jdk8-1.7.10.jar:8aafdd60c94f454c92e5066d266a5ed53ecc63c78f623b3fd9db56fea4032873',
|
||||||
|
'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05',
|
||||||
'org.jetbrains.kotlin:kotlin-stdlib:1.7.10:kotlin-stdlib-1.7.10.jar:e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901',
|
'org.jetbrains.kotlin:kotlin-stdlib:1.7.10:kotlin-stdlib-1.7.10.jar:e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901',
|
||||||
|
'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4',
|
||||||
'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
|
'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
|
||||||
'org.junit.jupiter:junit-jupiter-api:5.5.2:junit-jupiter-api-5.5.2.jar:249a2fdbd3931987c0298d00ca08ed248496e0fc11e0463c08c4f82e0cc79b1c',
|
'org.junit.jupiter:junit-jupiter-api:5.5.2:junit-jupiter-api-5.5.2.jar:249a2fdbd3931987c0298d00ca08ed248496e0fc11e0463c08c4f82e0cc79b1c',
|
||||||
'org.junit.jupiter:junit-jupiter-engine:5.5.2:junit-jupiter-engine-5.5.2.jar:6d777da9876e2ef7a0336e8f098f8d74a5a64f810aa3a4a2f5f3b766ce97837b',
|
'org.junit.jupiter:junit-jupiter-engine:5.5.2:junit-jupiter-engine-5.5.2.jar:6d777da9876e2ef7a0336e8f098f8d74a5a64f810aa3a4a2f5f3b766ce97837b',
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ buildscript {
|
|||||||
tor_version = "0.4.5.14"
|
tor_version = "0.4.5.14"
|
||||||
obfs4proxy_version = "0.0.14-tor1"
|
obfs4proxy_version = "0.0.14-tor1"
|
||||||
snowflake_version = "2.3.1"
|
snowflake_version = "2.3.1"
|
||||||
|
jsoup_version = '1.15.3'
|
||||||
|
bouncy_castle_version = '1.71'
|
||||||
junit_version = "4.13.2"
|
junit_version = "4.13.2"
|
||||||
jmock_version = '2.12.0'
|
jmock_version = '2.12.0'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,16 +6,17 @@ apply plugin: 'idea'
|
|||||||
apply from: '../dagger.gradle'
|
apply from: '../dagger.gradle'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'default')
|
testImplementation project(':bramble-api')
|
||||||
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-api', configuration: 'testOutput')
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'default')
|
testImplementation project(':bramble-core')
|
||||||
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
testImplementation project(path: ':bramble-core', configuration: 'testOutput')
|
||||||
testImplementation project(path: ':mailbox-core', configuration: 'default')
|
testImplementation project(':mailbox-core')
|
||||||
testImplementation project(path: ':mailbox-lib', configuration: 'default')
|
testImplementation project(':mailbox-lib')
|
||||||
|
|
||||||
testImplementation "junit:junit:$junit_version"
|
testImplementation "junit:junit:$junit_version"
|
||||||
testImplementation "ch.qos.logback:logback-classic:1.2.11"
|
testImplementation "ch.qos.logback:logback-classic:1.2.11"
|
||||||
testImplementation 'net.jodah:concurrentunit:0.4.6'
|
testImplementation 'net.jodah:concurrentunit:0.4.6'
|
||||||
|
testImplementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
|
|
||||||
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user