mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-16 04:39:54 +01:00
Merge branch 'giant-indentation-patch' into 'master'
Indent everything with tabs Probably the most exciting MR you'll ever read. Bonus points if you spot the NSA backdoor hidden among the whitespace changes. See merge request !90
This commit is contained in:
@@ -2,97 +2,97 @@ apply plugin: 'com.android.application'
|
|||||||
apply plugin: 'witness'
|
apply plugin: 'witness'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
def supportVersion = '23.1.1'
|
def supportVersion = '23.1.1'
|
||||||
compile project(':briar-api')
|
compile project(':briar-api')
|
||||||
compile project(':briar-core')
|
compile project(':briar-core')
|
||||||
compile fileTree(dir: 'libs', include: '*.jar')
|
compile fileTree(dir: 'libs', include: '*.jar')
|
||||||
compile "com.android.support:support-v4:$supportVersion"
|
compile "com.android.support:support-v4:$supportVersion"
|
||||||
compile("com.android.support:appcompat-v7:$supportVersion") {
|
compile("com.android.support:appcompat-v7:$supportVersion") {
|
||||||
exclude module: 'support-v4'
|
exclude module: 'support-v4'
|
||||||
}
|
}
|
||||||
compile("com.android.support:preference-v7:$supportVersion") {
|
compile("com.android.support:preference-v7:$supportVersion") {
|
||||||
exclude module: 'support-v4'
|
exclude module: 'support-v4'
|
||||||
}
|
}
|
||||||
compile("com.android.support:preference-v14:$supportVersion") {
|
compile("com.android.support:preference-v14:$supportVersion") {
|
||||||
exclude module: 'support-v4'
|
exclude module: 'support-v4'
|
||||||
exclude module: 'preference-v7'
|
exclude module: 'preference-v7'
|
||||||
exclude module: 'recyclerview-v7'
|
exclude module: 'recyclerview-v7'
|
||||||
}
|
}
|
||||||
compile("com.android.support:design:$supportVersion") {
|
compile("com.android.support:design:$supportVersion") {
|
||||||
exclude module: 'support-v4'
|
exclude module: 'support-v4'
|
||||||
exclude module: 'recyclerview-v7'
|
exclude module: 'recyclerview-v7'
|
||||||
}
|
}
|
||||||
compile "org.roboguice:roboguice:2.0"
|
compile "org.roboguice:roboguice:2.0"
|
||||||
compile "info.guardianproject.panic:panic:0.5"
|
compile "info.guardianproject.panic:panic:0.5"
|
||||||
compile "info.guardianproject.trustedintents:trustedintents:0.2"
|
compile "info.guardianproject.trustedintents:trustedintents:0.2"
|
||||||
compile "de.hdodenhof:circleimageview:2.0.0"
|
compile "de.hdodenhof:circleimageview:2.0.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'com.android.support:support-v4:5c7dceb6c824089fe80f502e5206264048ef8bffa4e8ddeab180b81723e79b7f',
|
'com.android.support:support-v4:5c7dceb6c824089fe80f502e5206264048ef8bffa4e8ddeab180b81723e79b7f',
|
||||||
'com.android.support:appcompat-v7:0a8762214382b7e8d4b989b4ac10b5c846b957d767ccb7bccbc6be5afa885a82',
|
'com.android.support:appcompat-v7:0a8762214382b7e8d4b989b4ac10b5c846b957d767ccb7bccbc6be5afa885a82',
|
||||||
'com.android.support:preference-v7:4b6dabaa4400cbed885c7edc885aa6372468f48d628cc0d4a04b9ccd128ed324',
|
'com.android.support:preference-v7:4b6dabaa4400cbed885c7edc885aa6372468f48d628cc0d4a04b9ccd128ed324',
|
||||||
'com.android.support:preference-v14:a69906c2b29b315ac3c1fdf01537a7557660a65b8ea1cf891baa8665e1197459',
|
'com.android.support:preference-v14:a69906c2b29b315ac3c1fdf01537a7557660a65b8ea1cf891baa8665e1197459',
|
||||||
'com.android.support:design:41a9cd75ca78f25df5f573db7cedf8bb66beae00c330943923ba9f3e2051736d',
|
'com.android.support:design:41a9cd75ca78f25df5f573db7cedf8bb66beae00c330943923ba9f3e2051736d',
|
||||||
'com.android.support:support-annotations:f347a35b9748a4103b39a6714a77e2100f488d623fd6268e259c177b200e9d82',
|
'com.android.support:support-annotations:f347a35b9748a4103b39a6714a77e2100f488d623fd6268e259c177b200e9d82',
|
||||||
'com.android.support:recyclerview-v7:7606373da0931a1e62588335465a0e390cd676c98117edab29220317495faefd',
|
'com.android.support:recyclerview-v7:7606373da0931a1e62588335465a0e390cd676c98117edab29220317495faefd',
|
||||||
'org.roboguice:roboguice:c5302f2648170ee6015a0d18fe0fcc87e09e415a34aeae3566e8d1a9dbb53f28',
|
'org.roboguice:roboguice:c5302f2648170ee6015a0d18fe0fcc87e09e415a34aeae3566e8d1a9dbb53f28',
|
||||||
'info.guardianproject.panic:panic:a7ed9439826db2e9901649892cf9afbe76f00991b768d8f4c26332d7c9406cb2',
|
'info.guardianproject.panic:panic:a7ed9439826db2e9901649892cf9afbe76f00991b768d8f4c26332d7c9406cb2',
|
||||||
'info.guardianproject.trustedintents:trustedintents:6221456d8821a8d974c2acf86306900237cf6afaaa94a4c9c44e161350f80f3e',
|
'info.guardianproject.trustedintents:trustedintents:6221456d8821a8d974c2acf86306900237cf6afaaa94a4c9c44e161350f80f3e',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 23
|
compileSdkVersion 23
|
||||||
buildToolsVersion "23.0.2"
|
buildToolsVersion "23.0.2"
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
java.srcDirs = ['src']
|
java.srcDirs = ['src']
|
||||||
resources.srcDirs = ['src']
|
resources.srcDirs = ['src']
|
||||||
aidl.srcDirs = ['src']
|
aidl.srcDirs = ['src']
|
||||||
renderscript.srcDirs = ['src']
|
renderscript.srcDirs = ['src']
|
||||||
res.srcDirs = ['res']
|
res.srcDirs = ['res']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move the tests to tests/java, tests/res, etc...
|
// Move the tests to tests/java, tests/res, etc...
|
||||||
instrumentTest.setRoot('tests')
|
instrumentTest.setRoot('tests')
|
||||||
|
|
||||||
// Move the build types to build-types/<type>
|
// Move the build types to build-types/<type>
|
||||||
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
|
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
|
||||||
// This moves them out of them default location under src/<type>/... which would
|
// This moves them out of them default location under src/<type>/... which would
|
||||||
// conflict with src/ being used by the main source set.
|
// conflict with src/ being used by the main source set.
|
||||||
// Adding new build types or product flavors should be accompanied
|
// Adding new build types or product flavors should be accompanied
|
||||||
// by a similar customization.
|
// by a similar customization.
|
||||||
debug.setRoot('build-types/debug')
|
debug.setRoot('build-types/debug')
|
||||||
release.setRoot('build-types/release')
|
release.setRoot('build-types/release')
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
debug {
|
debug {
|
||||||
// Set this to true to run proguard in debug
|
// Set this to true to run proguard in debug
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||||
}
|
}
|
||||||
release {
|
release {
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_6
|
sourceCompatibility JavaVersion.VERSION_1_6
|
||||||
targetCompatibility JavaVersion.VERSION_1_6
|
targetCompatibility JavaVersion.VERSION_1_6
|
||||||
}
|
}
|
||||||
lintOptions {
|
lintOptions {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,17 +16,17 @@
|
|||||||
-keep public class com.android.vending.licensing.ILicensingService
|
-keep public class com.android.vending.licensing.ILicensingService
|
||||||
-keepclasseswithmembers class * { native <methods>; }
|
-keepclasseswithmembers class * { native <methods>; }
|
||||||
-keepclasseswithmembers class * {
|
-keepclasseswithmembers class * {
|
||||||
public <init> (android.content.Context, android.util.AttributeSet);
|
public <init> (android.content.Context, android.util.AttributeSet);
|
||||||
}
|
}
|
||||||
-keepclasseswithmembers class * {
|
-keepclasseswithmembers class * {
|
||||||
public <init> (android.content.Context, android.util.AttributeSet, int);
|
public <init> (android.content.Context, android.util.AttributeSet, int);
|
||||||
}
|
}
|
||||||
-keepclassmembers class * implements android.os.Parcelable { static android.os.Parcelable$Creator *; }
|
-keepclassmembers class * implements android.os.Parcelable { static android.os.Parcelable$Creator *; }
|
||||||
-keepclassmembers class **.R$* { public static <fields>; }
|
-keepclassmembers class **.R$* { public static <fields>; }
|
||||||
-keepclasseswithmembernames class * { native <methods>; }
|
-keepclasseswithmembernames class * { native <methods>; }
|
||||||
-keepclassmembers enum * {
|
-keepclassmembers enum * {
|
||||||
public static **[] values();
|
public static **[] values();
|
||||||
public static ** valueOf(java.lang.String);
|
public static ** valueOf(java.lang.String);
|
||||||
}
|
}
|
||||||
-keepclassmembers class * extends android.app.Activity {
|
-keepclassmembers class * extends android.app.Activity {
|
||||||
public void *(android.view.View);
|
public void *(android.view.View);
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
}
|
}
|
||||||
# Just in case Roboguice events are used
|
# Just in case Roboguice events are used
|
||||||
-keepclassmembers class * {
|
-keepclassmembers class * {
|
||||||
void *(**On*Event);
|
void *(**On*Event);
|
||||||
}
|
}
|
||||||
|
|
||||||
-keep class org.h2.** { *; }
|
-keep class org.h2.** { *; }
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="499.24373dp"
|
android:width="499.24373dp"
|
||||||
android:height="175.49413dp"
|
android:height="175.49413dp"
|
||||||
android:viewportWidth="499.24373"
|
android:viewportWidth="499.24373"
|
||||||
android:viewportHeight="175.49413">
|
android:viewportHeight="175.49413">
|
||||||
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#000000"
|
android:fillColor="#000000"
|
||||||
android:pathData="M459.809,171.16 L455.482,166.826 L448.412,164.399
|
android:pathData="M459.809,171.16 L455.482,166.826 L448.412,164.399
|
||||||
C444.524,163.064,439.689,161.403,437.668,160.708 L433.994,159.445
|
C444.524,163.064,439.689,161.403,437.668,160.708 L433.994,159.445
|
||||||
L437.518,159.272 C445.76,158.868,450.506,155.265,451.854,148.388
|
L437.518,159.272 C445.76,158.868,450.506,155.265,451.854,148.388
|
||||||
C452.65,144.327,452.983,131.09,452.684,115.347
|
C452.65,144.327,452.983,131.09,452.684,115.347
|
||||||
@@ -50,9 +50,9 @@ C403.518,135.894,402.071,136.503,400.474,138.066
|
|||||||
C398.229,140.264,397.72,143.505,399.173,146.353
|
C398.229,140.264,397.72,143.505,399.173,146.353
|
||||||
C399.886,147.751,401.694,149.362,403.135,149.883
|
C399.886,147.751,401.694,149.362,403.135,149.883
|
||||||
C404.632,150.425,406.975,150.358,408.344,149.734 Z" />
|
C404.632,150.425,406.975,150.358,408.344,149.734 Z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#000000"
|
android:fillColor="#000000"
|
||||||
android:pathData="M39.4343,171.16 L43.7609,166.826 L50.8305,164.399
|
android:pathData="M39.4343,171.16 L43.7609,166.826 L50.8305,164.399
|
||||||
C54.7188,163.064,59.5534,161.403,61.574,160.708 L65.248,159.445 L61.724,159.272
|
C54.7188,163.064,59.5534,161.403,61.574,160.708 L65.248,159.445 L61.724,159.272
|
||||||
C53.4822,158.868,48.7362,155.265,47.3877,148.388
|
C53.4822,158.868,48.7362,155.265,47.3877,148.388
|
||||||
C46.5914,144.327,46.2588,131.09,46.5575,115.347
|
C46.5914,144.327,46.2588,131.09,46.5575,115.347
|
||||||
@@ -94,24 +94,24 @@ C95.7256,135.894,97.1733,136.503,98.7696,138.066
|
|||||||
C101.015,140.264,101.524,143.505,100.071,146.353
|
C101.015,140.264,101.524,143.505,100.071,146.353
|
||||||
C99.3579,147.751,97.5496,149.362,96.1089,149.883
|
C99.3579,147.751,97.5496,149.362,96.1089,149.883
|
||||||
C94.6118,150.425,92.2689,150.358,90.9,149.734 Z" />
|
C94.6118,150.425,92.2689,150.358,90.9,149.734 Z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#0a3d91"
|
android:fillColor="#0a3d91"
|
||||||
android:pathData="M247.254,75.9792 L251.99,75.9792
|
android:pathData="M247.254,75.9792 L251.99,75.9792
|
||||||
C265.155,75.9792,275.753,86.5777,275.753,99.7427 L275.753,131.917
|
C265.155,75.9792,275.753,86.5777,275.753,99.7427 L275.753,131.917
|
||||||
C275.753,145.082,265.154,155.68,251.99,155.68 L247.254,155.68
|
C275.753,145.082,265.154,155.68,251.99,155.68 L247.254,155.68
|
||||||
C234.089,155.68,223.491,145.081,223.491,131.917 L223.491,99.7424
|
C234.089,155.68,223.491,145.081,223.491,131.917 L223.491,99.7424
|
||||||
C223.491,86.5774,234.09,75.9789,247.254,75.9789 Z" />
|
C223.491,86.5774,234.09,75.9789,247.254,75.9789 Z" />
|
||||||
<path
|
<path
|
||||||
android:strokeColor="#ffffff"
|
android:strokeColor="#ffffff"
|
||||||
android:strokeWidth="4.32805729"
|
android:strokeWidth="4.32805729"
|
||||||
android:pathData="M236.311,102.927 L261.218,127.997 L249.214,142.533 L249.214,90.5963
|
android:pathData="M236.311,102.927 L261.218,127.997 L249.214,142.533 L249.214,90.5963
|
||||||
L261.218,104.479 L236.311,128.896" />
|
L261.218,104.479 L236.311,128.896" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#0a3d91"
|
android:fillColor="#0a3d91"
|
||||||
android:strokeWidth="7.55000019"
|
android:strokeWidth="7.55000019"
|
||||||
android:strokeLineJoin="round"
|
android:strokeLineJoin="round"
|
||||||
android:strokeLineCap="round"
|
android:strokeLineCap="round"
|
||||||
android:pathData="M143.679,27.5571 C142.089,30.1809,143.861,33.1318,146.464,34.1998
|
android:pathData="M143.679,27.5571 C142.089,30.1809,143.861,33.1318,146.464,34.1998
|
||||||
C149.159,35.7722,152.635,39.187,155.612,36.432
|
C149.159,35.7722,152.635,39.187,155.612,36.432
|
||||||
C157.845,34.3925,156.213,30.7041,153.571,29.7617
|
C157.845,34.3925,156.213,30.7041,153.571,29.7617
|
||||||
C150.507,28.085,147.019,24.2469,143.68,27.5572 Z M351.705,27.1294
|
C150.507,28.085,147.019,24.2469,143.68,27.5572 Z M351.705,27.1294
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24"
|
android:viewportHeight="24"
|
||||||
android:alpha="0.56">
|
android:alpha="0.56">
|
||||||
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M12,2 C6.48,2,2,6.48,2,12 S6.48,22,12,22 S22,17.52,22,12 S17.52,2,12,2 Z M12,20
|
android:pathData="M12,2 C6.48,2,2,6.48,2,12 S6.48,22,12,22 S22,17.52,22,12 S17.52,2,12,2 Z M12,20
|
||||||
C7.58,20,4,16.42,4,12 S7.58,4,12,4 S20,7.58,20,12 S16.42,20,12,20 Z" />
|
C7.58,20,4,16.42,4,12 S7.58,4,12,4 S20,7.58,20,12 S16.42,20,12,20 Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M0,0 L24,0 L24,24 L0,24 Z" />
|
android:pathData="M0,0 L24,0 L24,24 L0,24 Z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#95d220"
|
android:fillColor="#95d220"
|
||||||
android:strokeWidth="0.76779664"
|
android:strokeWidth="0.76779664"
|
||||||
android:strokeLineJoin="round"
|
android:strokeLineJoin="round"
|
||||||
android:strokeLineCap="round"
|
android:strokeLineCap="round"
|
||||||
android:pathData="M10.8972,19.9503 C6.5514,19.3493,3.43091,15.2154,4.0625,10.896
|
android:pathData="M10.8972,19.9503 C6.5514,19.3493,3.43091,15.2154,4.0625,10.896
|
||||||
C4.55452,7.53099,7.09451,4.8236,10.394,4.14714
|
C4.55452,7.53099,7.09451,4.8236,10.394,4.14714
|
||||||
C14.2569,3.35517,18.1698,5.54347,19.5236,9.25295
|
C14.2569,3.35517,18.1698,5.54347,19.5236,9.25295
|
||||||
C20.0698,10.7495,20.1616,12.4612,19.777,13.9758
|
C20.0698,10.7495,20.1616,12.4612,19.777,13.9758
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="24dp"
|
<vector android:alpha="0.56" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,18c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
|
<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,18c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:height="24dp"
|
<vector android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FFFFFFFF" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
|
<path android:fillColor="#FFFFFFFF" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="16dp"
|
<vector android:alpha="0.56" android:height="16dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zm4.24,-1.41L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/>
|
<path android:fillColor="#FF000000" android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zm4.24,-1.41L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="16dp"
|
<vector android:alpha="0.56" android:height="16dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
|
<path android:fillColor="#FF000000" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="16dp"
|
<vector android:alpha="0.56" android:height="16dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillAlpha=".9" android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
|
<path android:fillAlpha=".9" android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="24dp"
|
<vector android:alpha="0.56" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
|
<path android:fillColor="#FF000000" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.56" android:height="24dp"
|
<vector android:alpha="0.56" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
|
<path android:fillColor="#FF000000" android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.54" android:height="24dp"
|
<vector android:alpha="0.54" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M17.71,7.71L12,2h-1v7.59L6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 11,14.41V22h1l5.71,-5.71 -4.3,-4.29 4.3,-4.29zM13,5.83l1.88,1.88L13,9.59V5.83zm1.88,10.46L13,18.17v-3.76l1.88,1.88z"/>
|
<path android:fillColor="#FF000000" android:pathData="M17.71,7.71L12,2h-1v7.59L6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 11,14.41V22h1l5.71,-5.71 -4.3,-4.29 4.3,-4.29zM13,5.83l1.88,1.88L13,9.59V5.83zm1.88,10.46L13,18.17v-3.76l1.88,1.88z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<vector android:alpha="0.54" android:height="24dp"
|
<vector android:alpha="0.54" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillAlpha=".3" android:fillColor="#FF000000" android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"/>
|
<path android:fillAlpha=".3" android:fillColor="#FF000000" android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"/>
|
||||||
<path android:fillColor="#FF000000" android:pathData="M3.53,10.95l8.46,10.54 0.01,0.01 0.01,-0.01 8.46,-10.54C20.04,10.62 16.81,8 12,8c-4.81,0 -8.04,2.62 -8.47,2.95z"/>
|
<path android:fillColor="#FF000000" android:pathData="M3.53,10.95l8.46,10.54 0.01,0.01 0.01,-0.01 8.46,-10.54C20.04,10.62 16.81,8 12,8c-4.81,0 -8.04,2.62 -8.47,2.95z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<vector android:alpha="0.54" android:height="24dp"
|
<vector android:alpha="0.54" android:height="24dp"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zm6.93,6h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2H4.26zm0.82,2h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zm2.95,-8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14H9.66c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zm0.25,5.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
|
<path android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zm6.93,6h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2H4.26zm0.82,2h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zm2.95,-8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14H9.66c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zm0.25,5.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -1,79 +1,79 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ScrollView
|
<ScrollView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
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"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingBottom="@dimen/margin_activity_vertical"
|
android:paddingBottom="@dimen/margin_activity_vertical"
|
||||||
android:paddingEnd="@dimen/margin_activity_horizontal"
|
android:paddingEnd="@dimen/margin_activity_horizontal"
|
||||||
android:paddingRight="@dimen/margin_activity_horizontal"
|
android:paddingRight="@dimen/margin_activity_horizontal"
|
||||||
android:paddingStart="@dimen/margin_activity_horizontal"
|
android:paddingStart="@dimen/margin_activity_horizontal"
|
||||||
android:paddingLeft="@dimen/margin_activity_horizontal"
|
android:paddingLeft="@dimen/margin_activity_horizontal"
|
||||||
android:paddingTop="@dimen/margin_activity_vertical">
|
android:paddingTop="@dimen/margin_activity_vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title_password"
|
android:id="@+id/title_password"
|
||||||
style="@style/BriarTextTitle"
|
style="@style/BriarTextTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:padding="@dimen/margin_large"
|
android:padding="@dimen/margin_large"
|
||||||
android:text="@string/enter_password" />
|
android:text="@string/enter_password" />
|
||||||
|
|
||||||
<android.support.design.widget.TextInputLayout
|
<android.support.design.widget.TextInputLayout
|
||||||
android:id="@+id/password_layout"
|
android:id="@+id/password_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_below="@id/title_password"
|
android:layout_below="@id/title_password"
|
||||||
app:errorEnabled="true">
|
app:errorEnabled="true">
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/edit_password"
|
android:id="@+id/edit_password"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="textPassword"
|
android:inputType="textPassword"
|
||||||
android:maxLines="1" />
|
android:maxLines="1" />
|
||||||
</android.support.design.widget.TextInputLayout>
|
</android.support.design.widget.TextInputLayout>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btn_sign_in"
|
android:id="@+id/btn_sign_in"
|
||||||
style="@style/BriarButton.Default"
|
style="@style/BriarButton.Default"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/password_layout"
|
android:layout_below="@id/password_layout"
|
||||||
android:layout_marginTop="@dimen/margin_medium"
|
android:layout_marginTop="@dimen/margin_medium"
|
||||||
android:onClick="onSignInClick"
|
android:onClick="onSignInClick"
|
||||||
android:text="@string/sign_in_button" />
|
android:text="@string/sign_in_button" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/progress_wheel"
|
android:id="@+id/progress_wheel"
|
||||||
style="?android:attr/progressBarStyleInverse"
|
style="?android:attr/progressBarStyleInverse"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignTop="@id/btn_sign_in"
|
android:layout_alignTop="@id/btn_sign_in"
|
||||||
android:layout_alignBottom="@id/btn_sign_in"
|
android:layout_alignBottom="@id/btn_sign_in"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/btn_sign_in"
|
android:layout_below="@id/btn_sign_in"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_marginTop="@dimen/margin_large"
|
android:layout_marginTop="@dimen/margin_large"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:onClick="onForgottenPasswordClick"
|
android:onClick="onForgottenPasswordClick"
|
||||||
android:text="@string/forgotten_password"
|
android:text="@string/forgotten_password"
|
||||||
android:textColor="?android:attr/textColorLink" />
|
android:textColor="?android:attr/textColorLink" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
@@ -1,25 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:padding="@dimen/margin_activity_horizontal">
|
android:padding="@dimen/margin_activity_horizontal">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/headlineView"
|
android:id="@+id/headlineView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
style="@style/BriarTextTitle"
|
style="@style/BriarTextTitle"
|
||||||
android:text="@string/startup_failed_notification_title"
|
android:text="@string/startup_failed_notification_title"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginTop="7dp"
|
android:layout_marginTop="7dp"
|
||||||
android:layout_marginBottom="7dp"/>
|
android:layout_marginBottom="7dp"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/errorView"
|
android:id="@+id/errorView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/startup_failed_notification_text"/>
|
android:text="@string/startup_failed_notification_text"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
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.support.v7.widget.RecyclerView
|
<android.support.v7.widget.RecyclerView
|
||||||
android:id="@+id/recyclerView"
|
android:id="@+id/recyclerView"
|
||||||
|
|||||||
@@ -1,123 +1,123 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ScrollView
|
<ScrollView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
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">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingBottom="@dimen/margin_activity_vertical"
|
android:paddingBottom="@dimen/margin_activity_vertical"
|
||||||
android:paddingEnd="@dimen/margin_activity_horizontal"
|
android:paddingEnd="@dimen/margin_activity_horizontal"
|
||||||
android:paddingRight="@dimen/margin_activity_horizontal"
|
android:paddingRight="@dimen/margin_activity_horizontal"
|
||||||
android:paddingStart="@dimen/margin_activity_horizontal"
|
android:paddingStart="@dimen/margin_activity_horizontal"
|
||||||
android:paddingLeft="@dimen/margin_activity_horizontal"
|
android:paddingLeft="@dimen/margin_activity_horizontal"
|
||||||
android:paddingTop="@dimen/margin_activity_vertical">
|
android:paddingTop="@dimen/margin_activity_vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/stepView"
|
android:id="@+id/stepView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="end"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
tools:text="Step 3/3"
|
tools:text="Step 3/3"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignParentEnd="true"/>
|
android:layout_alignParentEnd="true"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/connectedView"
|
android:id="@+id/connectedView"
|
||||||
style="@style/BriarTextTitle"
|
style="@style/BriarTextTitle"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/connected_to_contact"
|
android:text="@string/connected_to_contact"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/stepView"
|
android:layout_below="@+id/stepView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:drawableLeft="@drawable/navigation_accept"
|
android:drawableLeft="@drawable/navigation_accept"
|
||||||
android:drawableStart="@drawable/navigation_accept"
|
android:drawableStart="@drawable/navigation_accept"
|
||||||
android:gravity="center_vertical"/>
|
android:gravity="center_vertical"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/yourConfirmationCodeView"
|
android:id="@+id/yourConfirmationCodeView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/your_confirmation_code"
|
android:text="@string/your_confirmation_code"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/connectedView"
|
android:layout_below="@+id/connectedView"
|
||||||
android:layout_centerHorizontal="true"/>
|
android:layout_centerHorizontal="true"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/codeView"
|
android:id="@+id/codeView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:textSize="50sp"
|
android:textSize="50sp"
|
||||||
android:layout_below="@+id/yourConfirmationCodeView"
|
android:layout_below="@+id/yourConfirmationCodeView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
tools:text="1337"/>
|
tools:text="1337"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/waitingView"
|
android:id="@+id/waitingView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/searching_format"
|
android:text="@string/searching_format"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/codeView"
|
android:layout_below="@+id/codeView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:gravity="center_horizontal"/>
|
android:gravity="center_horizontal"/>
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/progressBar"
|
android:id="@+id/progressBar"
|
||||||
style="?android:attr/progressBarStyleLarge"
|
style="?android:attr/progressBarStyleLarge"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:indeterminate="true"
|
android:indeterminate="true"
|
||||||
android:layout_below="@+id/waitingView"
|
android:layout_below="@+id/waitingView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/enterCodeTextView"
|
android:id="@+id/enterCodeTextView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/enter_confirmation_code"
|
android:text="@string/enter_confirmation_code"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/codeView"
|
android:layout_below="@+id/codeView"
|
||||||
android:layout_centerHorizontal="true"/>
|
android:layout_centerHorizontal="true"/>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/codeEntryView"
|
android:id="@+id/codeEntryView"
|
||||||
layout="@layout/view_code_entry"
|
layout="@layout/view_code_entry"
|
||||||
android:layout_below="@+id/enterCodeTextView"
|
android:layout_below="@+id/enterCodeTextView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="@dimen/margin_medium"/>
|
android:layout_margin="@dimen/margin_medium"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/continueButton"
|
android:id="@+id/continueButton"
|
||||||
style="@style/BriarButton.Default"
|
style="@style/BriarButton.Default"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/continue_button"
|
android:text="@string/continue_button"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:layout_below="@+id/codeEntryView"
|
android:layout_below="@+id/codeEntryView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_margin="@dimen/margin_medium"/>
|
android:layout_margin="@dimen/margin_medium"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
@@ -1,109 +1,109 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ScrollView
|
<ScrollView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
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">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingBottom="@dimen/margin_activity_vertical"
|
android:paddingBottom="@dimen/margin_activity_vertical"
|
||||||
android:paddingEnd="@dimen/margin_activity_horizontal"
|
android:paddingEnd="@dimen/margin_activity_horizontal"
|
||||||
android:paddingRight="@dimen/margin_activity_horizontal"
|
android:paddingRight="@dimen/margin_activity_horizontal"
|
||||||
android:paddingStart="@dimen/margin_activity_horizontal"
|
android:paddingStart="@dimen/margin_activity_horizontal"
|
||||||
android:paddingLeft="@dimen/margin_activity_horizontal"
|
android:paddingLeft="@dimen/margin_activity_horizontal"
|
||||||
android:paddingTop="@dimen/margin_activity_vertical">
|
android:paddingTop="@dimen/margin_activity_vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/stepView"
|
android:id="@+id/stepView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="end"
|
||||||
android:layout_marginTop="@dimen/margin_medium"
|
android:layout_marginTop="@dimen/margin_medium"
|
||||||
tools:text="Step 2/3"
|
tools:text="Step 2/3"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignParentEnd="true"/>
|
android:layout_alignParentEnd="true"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/yourCodeView"
|
android:id="@+id/yourCodeView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/your_invitation_code"
|
android:text="@string/your_invitation_code"
|
||||||
android:layout_marginTop="@dimen/margin_medium"
|
android:layout_marginTop="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/stepView"
|
android:layout_below="@+id/stepView"
|
||||||
android:layout_centerHorizontal="true"/>
|
android:layout_centerHorizontal="true"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/codeView"
|
android:id="@+id/codeView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/margin_medium"
|
android:layout_marginTop="@dimen/margin_medium"
|
||||||
android:textSize="50sp"
|
android:textSize="50sp"
|
||||||
android:layout_below="@+id/yourCodeView"
|
android:layout_below="@+id/yourCodeView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
tools:text="1337"/>
|
tools:text="1337"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/waitingView"
|
android:id="@+id/waitingView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/searching_format"
|
android:text="@string/searching_format"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginTop="@dimen/margin_medium"
|
android:layout_marginTop="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/codeView"
|
android:layout_below="@+id/codeView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:gravity="center_horizontal"/>
|
android:gravity="center_horizontal"/>
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/progressBar"
|
android:id="@+id/progressBar"
|
||||||
style="?android:attr/progressBarStyleLarge"
|
style="?android:attr/progressBarStyleLarge"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:indeterminate="true"
|
android:indeterminate="true"
|
||||||
android:layout_below="@+id/waitingView"
|
android:layout_below="@+id/waitingView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/enterCodeTextView"
|
android:id="@+id/enterCodeTextView"
|
||||||
style="@style/BriarTextBody"
|
style="@style/BriarTextBody"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/enter_invitation_code"
|
android:text="@string/enter_invitation_code"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:padding="@dimen/margin_medium"
|
android:padding="@dimen/margin_medium"
|
||||||
android:layout_below="@+id/codeView"
|
android:layout_below="@+id/codeView"
|
||||||
android:layout_centerHorizontal="true"/>
|
android:layout_centerHorizontal="true"/>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/codeEntryView"
|
android:id="@+id/codeEntryView"
|
||||||
layout="@layout/view_code_entry"
|
layout="@layout/view_code_entry"
|
||||||
android:layout_below="@+id/enterCodeTextView"
|
android:layout_below="@+id/enterCodeTextView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="@dimen/margin_medium"/>
|
android:layout_margin="@dimen/margin_medium"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/continueButton"
|
android:id="@+id/continueButton"
|
||||||
style="@style/BriarButton.Default"
|
style="@style/BriarButton.Default"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/continue_button"
|
android:text="@string/continue_button"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:layout_below="@+id/codeEntryView"
|
android:layout_below="@+id/codeEntryView"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_margin="@dimen/margin_medium"/>
|
android:layout_margin="@dimen/margin_medium"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
@@ -1,41 +1,41 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:paddingBottom="@dimen/margin_activity_vertical"
|
android:paddingBottom="@dimen/margin_activity_vertical"
|
||||||
android:paddingEnd="@dimen/margin_activity_horizontal"
|
android:paddingEnd="@dimen/margin_activity_horizontal"
|
||||||
android:paddingStart="@dimen/margin_activity_horizontal"
|
android:paddingStart="@dimen/margin_activity_horizontal"
|
||||||
android:paddingTop="@dimen/margin_activity_vertical">
|
android:paddingTop="@dimen/margin_activity_vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/errorTextView"
|
android:id="@+id/errorTextView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/connection_failed"
|
android:text="@string/connection_failed"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
android:drawableStart="@drawable/alerts_and_states_error"
|
android:drawableStart="@drawable/alerts_and_states_error"
|
||||||
android:drawableLeft="@drawable/alerts_and_states_error"
|
android:drawableLeft="@drawable/alerts_and_states_error"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:padding="@dimen/margin_medium"/>
|
android:padding="@dimen/margin_medium"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/explanationTextView"
|
android:id="@+id/explanationTextView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/interfering"
|
android:text="@string/interfering"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:padding="@dimen/margin_medium"/>
|
android:padding="@dimen/margin_medium"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/tryAgainButton"
|
android:id="@+id/tryAgainButton"
|
||||||
style="@style/BriarButton.Default"
|
style="@style/BriarButton.Default"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/try_again_button"
|
android:text="@string/try_again_button"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_margin="@dimen/margin_medium"/>
|
android:layout_margin="@dimen/margin_medium"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<EditText
|
<EditText
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/codeEntryView"
|
android:id="@+id/codeEntryView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:textSize="@dimen/text_size_xlarge"
|
android:textSize="@dimen/text_size_xlarge"
|
||||||
android:ems="4"
|
android:ems="4"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:maxLength="6"
|
android:maxLength="6"
|
||||||
android:layout_margin="@dimen/margin_medium"
|
android:layout_margin="@dimen/margin_medium"
|
||||||
android:imeOptions="actionGo"
|
android:imeOptions="actionGo"
|
||||||
tools:text="123456"/>
|
tools:text="123456"/>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<style name="BriarTheme" parent="BriarBaseTheme">
|
<style name="BriarTheme" parent="BriarBaseTheme">
|
||||||
<!-- This fixes a UI bug in the support preference library -->
|
<!-- This fixes a UI bug in the support preference library -->
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButton.Default">
|
<style name="BriarButton.Default">
|
||||||
<item name="android:textAllCaps">true</item>
|
<item name="android:textAllCaps">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="window_background">#EEEEEE</color>
|
<color name="window_background">#EEEEEE</color>
|
||||||
<color name="action_bar_text">#FFFFFF</color>
|
<color name="action_bar_text">#FFFFFF</color>
|
||||||
<color name="action_bar_background">#2D3E50</color>
|
<color name="action_bar_background">#2D3E50</color>
|
||||||
<color name="button_bar_background">#FFFFFF</color>
|
<color name="button_bar_background">#FFFFFF</color>
|
||||||
<color name="dashboard_background">#FFFFFF</color>
|
<color name="dashboard_background">#FFFFFF</color>
|
||||||
<color name="private_message_date">#AAAAAA</color>
|
<color name="private_message_date">#AAAAAA</color>
|
||||||
<color name="unread_background">#FFFFFF</color>
|
<color name="unread_background">#FFFFFF</color>
|
||||||
<color name="horizontal_border">#CCCCCC</color>
|
<color name="horizontal_border">#CCCCCC</color>
|
||||||
<color name="forums_available_background">#FCCF1C</color>
|
<color name="forums_available_background">#FCCF1C</color>
|
||||||
<color name="no_private_messages">#AAAAAA</color>
|
<color name="no_private_messages">#AAAAAA</color>
|
||||||
@@ -14,20 +14,20 @@
|
|||||||
<color name="settings_title_text">#2D3E50</color>
|
<color name="settings_title_text">#2D3E50</color>
|
||||||
<color name="settings_title_underline">#2D3E50</color>
|
<color name="settings_title_underline">#2D3E50</color>
|
||||||
|
|
||||||
<color name="briar_primary">#2D3E50</color>
|
<color name="briar_primary">#2D3E50</color>
|
||||||
<color name="briar_primary_dark">#0f1720</color>
|
<color name="briar_primary_dark">#0f1720</color>
|
||||||
<color name="briar_accent">#2D3E50</color>
|
<color name="briar_accent">#2D3E50</color>
|
||||||
|
|
||||||
<color name="briar_text_link">#75ab0d</color>
|
<color name="briar_text_link">#75ab0d</color>
|
||||||
<color name="briar_green_light">#95d220</color>
|
<color name="briar_green_light">#95d220</color>
|
||||||
<color name="briar_green_dark">#75ab0d</color>
|
<color name="briar_green_dark">#75ab0d</color>
|
||||||
<color name="briar_text_primary">#333333</color>
|
<color name="briar_text_primary">#333333</color>
|
||||||
<color name="briar_text_primary_inverse">#ffffff</color>
|
<color name="briar_text_primary_inverse">#ffffff</color>
|
||||||
|
|
||||||
<!-- this is needed as preference_category_material layout uses this color as the text color -->
|
<!-- this is needed as preference_category_material layout uses this color as the text color -->
|
||||||
<color name="preference_fallback_accent_color">@color/briar_accent</color>
|
<color name="preference_fallback_accent_color">@color/briar_accent</color>
|
||||||
<color name="default_background">#ffffff</color>
|
<color name="default_background">#ffffff</color>
|
||||||
<color name="default_seperator">#000000</color>
|
<color name="default_seperator">#000000</color>
|
||||||
<color name="default_seperator_inverted">#ffffff</color>
|
<color name="default_seperator_inverted">#ffffff</color>
|
||||||
<color name="menu_background">#FFFFFF</color>
|
<color name="menu_background">#FFFFFF</color>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,155 +1,155 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="nav_drawer_open_description">Open the navigation drawer</string>
|
<string name="nav_drawer_open_description">Open the navigation drawer</string>
|
||||||
<string name="nav_drawer_close_description">Close the navigation drawer</string>
|
<string name="nav_drawer_close_description">Close the navigation drawer</string>
|
||||||
<string name="app_name">Briar</string>
|
<string name="app_name">Briar</string>
|
||||||
<string name="crash_report_title">Briar Crash Report</string>
|
<string name="crash_report_title">Briar Crash Report</string>
|
||||||
<string name="ongoing_notification_title">Signed into Briar</string>
|
<string name="ongoing_notification_title">Signed into Briar</string>
|
||||||
<string name="ongoing_notification_text">Touch to show the dashboard.</string>
|
<string name="ongoing_notification_text">Touch to show the dashboard.</string>
|
||||||
<string name="setup_title">Briar Setup</string>
|
<string name="setup_title">Briar Setup</string>
|
||||||
<string name="choose_nickname">Choose your nickname:</string>
|
<string name="choose_nickname">Choose your nickname:</string>
|
||||||
<string name="choose_password">Choose your password:</string>
|
<string name="choose_password">Choose your password:</string>
|
||||||
<string name="confirm_password">Confirm your password:</string>
|
<string name="confirm_password">Confirm your password:</string>
|
||||||
<string name="name_too_long">Name is too long</string>
|
<string name="name_too_long">Name is too long</string>
|
||||||
<string name="password_too_weak">Password is too weak</string>
|
<string name="password_too_weak">Password is too weak</string>
|
||||||
<string name="passwords_do_not_match">Passwords do not match</string>
|
<string name="passwords_do_not_match">Passwords do not match</string>
|
||||||
<string name="create_account_button">Create Account</string>
|
<string name="create_account_button">Create Account</string>
|
||||||
<string name="enter_password">Enter your password:</string>
|
<string name="enter_password">Enter your password:</string>
|
||||||
<string name="password_hint">Password</string>
|
<string name="password_hint">Password</string>
|
||||||
<string name="forgotten_password">I have forgotten my password</string>
|
<string name="forgotten_password">I have forgotten my password</string>
|
||||||
<string name="try_again">Wrong password, try again</string>
|
<string name="try_again">Wrong password, try again</string>
|
||||||
<string name="sign_in_button">Sign In</string>
|
<string name="sign_in_button">Sign In</string>
|
||||||
<string name="startup_failed_notification_title">Briar could not start</string>
|
<string name="startup_failed_notification_title">Briar could not start</string>
|
||||||
<string name="startup_failed_notification_text">You may need to reinstall Briar.</string>
|
<string name="startup_failed_notification_text">You may need to reinstall Briar.</string>
|
||||||
<string name="startup_failed_activity_title">Briar Startup Failure</string>
|
<string name="startup_failed_activity_title">Briar Startup Failure</string>
|
||||||
<string name="startup_failed_db_error">For some reason, your Briar database is corrupted beyond repair. Your account, your data and all your contact connections are lost. Unfortunately, you need to reinstall Briar und set up a new account.</string>
|
<string name="startup_failed_db_error">For some reason, your Briar database is corrupted beyond repair. Your account, your data and all your contact connections are lost. Unfortunately, you need to reinstall Briar und set up a new account.</string>
|
||||||
<string name="startup_failed_service_error">Briar was unable to start a required plugin. Reinstalling Briar usually solves this problem. However, please note that you will then lose your account and all data associated with it since Briar is not using central servers to store your data on.</string>
|
<string name="startup_failed_service_error">Briar was unable to start a required plugin. Reinstalling Briar usually solves this problem. However, please note that you will then lose your account and all data associated with it since Briar is not using central servers to store your data on.</string>
|
||||||
<string name="expiry_warning">This software has expired.\nPlease install a newer version.</string>
|
<string name="expiry_warning">This software has expired.\nPlease install a newer version.</string>
|
||||||
<string name="contact_list_button">Contacts</string>
|
<string name="contact_list_button">Contacts</string>
|
||||||
<string name="delete_contact">Delete contact</string>
|
<string name="delete_contact">Delete contact</string>
|
||||||
<string name="contact_deleted_toast">Contact deleted</string>
|
<string name="contact_deleted_toast">Contact deleted</string>
|
||||||
<string name="forums_button">Forums</string>
|
<string name="forums_button">Forums</string>
|
||||||
<string name="settings_button">Settings</string>
|
<string name="settings_button">Settings</string>
|
||||||
<string name="sign_out_button">Sign Out</string>
|
<string name="sign_out_button">Sign Out</string>
|
||||||
<string name="contact_list_title">Contacts</string>
|
<string name="contact_list_title">Contacts</string>
|
||||||
<string name="no_contacts">No contacts</string>
|
<string name="no_contacts">No contacts</string>
|
||||||
<string name="add_contact_title">Add a Contact</string>
|
<string name="add_contact_title">Add a Contact</string>
|
||||||
<string name="your_nickname">Choose the identity you want to use:</string>
|
<string name="your_nickname">Choose the identity you want to use:</string>
|
||||||
<string name="face_to_face">You must be face-to-face with the person you want to add as a contact. This will prevent anyone from impersonating you or reading your messages in future.</string>
|
<string name="face_to_face">You must be face-to-face with the person you want to add as a contact. This will prevent anyone from impersonating you or reading your messages in future.</string>
|
||||||
<string name="continue_button">Continue</string>
|
<string name="continue_button">Continue</string>
|
||||||
<string name="your_invitation_code">Your invitation code is</string>
|
<string name="your_invitation_code">Your invitation code is</string>
|
||||||
<string name="enter_invitation_code">Please enter your contact\'s invitation code:</string>
|
<string name="enter_invitation_code">Please enter your contact\'s invitation code:</string>
|
||||||
<string name="searching_format">Searching for contact with invitation code %06d\u2026</string>
|
<string name="searching_format">Searching for contact with invitation code %06d\u2026</string>
|
||||||
<string name="connection_failed">Connection failed</string>
|
<string name="connection_failed">Connection failed</string>
|
||||||
<string name="could_not_find_contact">Briar could not find your contact nearby</string>
|
<string name="could_not_find_contact">Briar could not find your contact nearby</string>
|
||||||
<string name="try_again_button">Try Again</string>
|
<string name="try_again_button">Try Again</string>
|
||||||
<string name="connected_to_contact">Connected to contact</string>
|
<string name="connected_to_contact">Connected to contact</string>
|
||||||
<string name="calculating_confirmation_code">Calculating confirmation code\u2026</string>
|
<string name="calculating_confirmation_code">Calculating confirmation code\u2026</string>
|
||||||
<string name="your_confirmation_code">Your confirmation code is</string>
|
<string name="your_confirmation_code">Your confirmation code is</string>
|
||||||
<string name="enter_confirmation_code">Please enter your contact\'s confirmation code:</string>
|
<string name="enter_confirmation_code">Please enter your contact\'s confirmation code:</string>
|
||||||
<string name="waiting_for_contact">Waiting for contact\u2026</string>
|
<string name="waiting_for_contact">Waiting for contact\u2026</string>
|
||||||
<string name="exchanging_contact_details">Exchanging contact details\u2026</string>
|
<string name="exchanging_contact_details">Exchanging contact details\u2026</string>
|
||||||
<string name="codes_do_not_match">Codes do not match</string>
|
<string name="codes_do_not_match">Codes do not match</string>
|
||||||
<string name="interfering">This could mean that someone is trying to interfere with your connection</string>
|
<string name="interfering">This could mean that someone is trying to interfere with your connection</string>
|
||||||
<string name="contact_added_toast">Contact added: %s</string>
|
<string name="contact_added_toast">Contact added: %s</string>
|
||||||
<string name="no_private_messages">No messages</string>
|
<string name="no_private_messages">No messages</string>
|
||||||
<string name="private_message_hint">Type message</string>
|
<string name="private_message_hint">Type message</string>
|
||||||
<string name="message_sent_toast">Message sent</string>
|
<string name="message_sent_toast">Message sent</string>
|
||||||
<string name="forums_title">Forums</string>
|
<string name="forums_title">Forums</string>
|
||||||
<string name="no_forums">No forums</string>
|
<string name="no_forums">No forums</string>
|
||||||
<plurals name="forums_shared">
|
<plurals name="forums_shared">
|
||||||
<item quantity="one">%d forum shared by contacts</item>
|
<item quantity="one">%d forum shared by contacts</item>
|
||||||
<item quantity="other">%d forums shared by contacts</item>
|
<item quantity="other">%d forums shared by contacts</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="unsubscribe">Unsubscribe</string>
|
<string name="unsubscribe">Unsubscribe</string>
|
||||||
<string name="unsubscribed_toast">Unsubscribed</string>
|
<string name="unsubscribed_toast">Unsubscribed</string>
|
||||||
<string name="no_forum_posts">No posts</string>
|
<string name="no_forum_posts">No posts</string>
|
||||||
<string name="create_forum_title">New Forum</string>
|
<string name="create_forum_title">New Forum</string>
|
||||||
<string name="choose_forum_name">Choose a name for your forum:</string>
|
<string name="choose_forum_name">Choose a name for your forum:</string>
|
||||||
<string name="create_forum_button">Create Forum</string>
|
<string name="create_forum_button">Create Forum</string>
|
||||||
<string name="forum_created_toast">Forum created</string>
|
<string name="forum_created_toast">Forum created</string>
|
||||||
<string name="forum_share_with_all">Share this forum with all contacts</string>
|
<string name="forum_share_with_all">Share this forum with all contacts</string>
|
||||||
<string name="forum_share_with_some">Share this forum with chosen contacts</string>
|
<string name="forum_share_with_some">Share this forum with chosen contacts</string>
|
||||||
<string name="share_button">Share Forum</string>
|
<string name="share_button">Share Forum</string>
|
||||||
<string name="from">From:</string>
|
<string name="from">From:</string>
|
||||||
<string name="anonymous">Anonymous</string>
|
<string name="anonymous">Anonymous</string>
|
||||||
<string name="new_identity_item">New identity\u2026</string>
|
<string name="new_identity_item">New identity\u2026</string>
|
||||||
<string name="new_identity_title">New Identity</string>
|
<string name="new_identity_title">New Identity</string>
|
||||||
<string name="create_identity_button">Create Identity</string>
|
<string name="create_identity_button">Create Identity</string>
|
||||||
<string name="identity_created_toast">Identity created</string>
|
<string name="identity_created_toast">Identity created</string>
|
||||||
<string name="forum_post_hint">Type forum post</string>
|
<string name="forum_post_hint">Type forum post</string>
|
||||||
<string name="available_forums_title">Available Forums</string>
|
<string name="available_forums_title">Available Forums</string>
|
||||||
<string name="subscribed_toast">Subscribed</string>
|
<string name="subscribed_toast">Subscribed</string>
|
||||||
<string name="shared_by_format">Shared by %s</string>
|
<string name="shared_by_format">Shared by %s</string>
|
||||||
<string name="no_contacts_prompt">You don\'t have any contacts. Add a contact now?</string>
|
<string name="no_contacts_prompt">You don\'t have any contacts. Add a contact now?</string>
|
||||||
<string name="add_button">Add</string>
|
<string name="add_button">Add</string>
|
||||||
<string name="cancel_button">Cancel</string>
|
<string name="cancel_button">Cancel</string>
|
||||||
<string name="done_button">Done</string>
|
<string name="done_button">Done</string>
|
||||||
<string name="delete_button">Delete</string>
|
<string name="delete_button">Delete</string>
|
||||||
<string name="post_sent_toast">Forum post sent</string>
|
<string name="post_sent_toast">Forum post sent</string>
|
||||||
<plurals name="private_message_notification_text">
|
<plurals name="private_message_notification_text">
|
||||||
<item quantity="one">New private message.</item>
|
<item quantity="one">New private message.</item>
|
||||||
<item quantity="other">%d new private messages.</item>
|
<item quantity="other">%d new private messages.</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<plurals name="forum_post_notification_text">
|
<plurals name="forum_post_notification_text">
|
||||||
<item quantity="one">New forum post.</item>
|
<item quantity="one">New forum post.</item>
|
||||||
<item quantity="other">%d new forum posts.</item>
|
<item quantity="other">%d new forum posts.</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="settings_title">Settings</string>
|
<string name="settings_title">Settings</string>
|
||||||
<string name="bluetooth_setting_title">BLUETOOTH</string>
|
<string name="bluetooth_setting_title">BLUETOOTH</string>
|
||||||
<string name="bluetooth_setting">Connect via Bluetooth</string>
|
<string name="bluetooth_setting">Connect via Bluetooth</string>
|
||||||
<string name="bluetooth_setting_enabled">Whenever contacts are nearby</string>
|
<string name="bluetooth_setting_enabled">Whenever contacts are nearby</string>
|
||||||
<string name="bluetooth_setting_disabled">Only when adding contacts</string>
|
<string name="bluetooth_setting_disabled">Only when adding contacts</string>
|
||||||
<string name="tor_wifi_setting_title">TOR</string>
|
<string name="tor_wifi_setting_title">TOR</string>
|
||||||
<string name="tor_wifi_setting">Connect via Tor</string>
|
<string name="tor_wifi_setting">Connect via Tor</string>
|
||||||
<string name="tor_wifi_setting_enabled">Only when using Wi-Fi</string>
|
<string name="tor_wifi_setting_enabled">Only when using Wi-Fi</string>
|
||||||
<string name="tor_wifi_setting_disabled">When using Wi-Fi or mobile data</string>
|
<string name="tor_wifi_setting_disabled">When using Wi-Fi or mobile data</string>
|
||||||
<string name="panic_setting">Panic Button Setup</string>
|
<string name="panic_setting">Panic Button Setup</string>
|
||||||
<string name="panic_setting_title">PANIC BUTTON</string>
|
<string name="panic_setting_title">PANIC BUTTON</string>
|
||||||
<string name="panic_setting_hint">Configure how Briar will react when you use a panic button app</string>
|
<string name="panic_setting_hint">Configure how Briar will react when you use a panic button app</string>
|
||||||
<string name="notification_settings_title">NOTIFICATIONS</string>
|
<string name="notification_settings_title">NOTIFICATIONS</string>
|
||||||
<string name="notify_private_messages_setting">Show alerts for private messages</string>
|
<string name="notify_private_messages_setting">Show alerts for private messages</string>
|
||||||
<string name="notify_forum_posts_setting">Show alerts for forum posts</string>
|
<string name="notify_forum_posts_setting">Show alerts for forum posts</string>
|
||||||
<string name="notify_vibration_setting">Vibrate</string>
|
<string name="notify_vibration_setting">Vibrate</string>
|
||||||
<string name="notify_sound_setting">Sound</string>
|
<string name="notify_sound_setting">Sound</string>
|
||||||
<string name="notify_sound_setting_default">Default ringtone</string>
|
<string name="notify_sound_setting_default">Default ringtone</string>
|
||||||
<string name="notify_sound_setting_disabled">None</string>
|
<string name="notify_sound_setting_disabled">None</string>
|
||||||
<string name="choose_ringtone_title">Choose ringtone</string>
|
<string name="choose_ringtone_title">Choose ringtone</string>
|
||||||
<string name="panic_app_setting_title">Panic Button App</string>
|
<string name="panic_app_setting_title">Panic Button App</string>
|
||||||
<string name="panic_app_setting_summary">No app has been set</string>
|
<string name="panic_app_setting_summary">No app has been set</string>
|
||||||
<string name="panic_app_setting_none">None</string>
|
<string name="panic_app_setting_none">None</string>
|
||||||
<string name="lock_setting_title">Sign Out</string>
|
<string name="lock_setting_title">Sign Out</string>
|
||||||
<string name="lock_setting_summary">Sign out of Briar if a panic button is pressed</string>
|
<string name="lock_setting_summary">Sign out of Briar if a panic button is pressed</string>
|
||||||
<string name="purge_setting_title">Delete Account</string>
|
<string name="purge_setting_title">Delete Account</string>
|
||||||
<string name="purge_setting_summary">Delete your Briar account if a panic button is pressed. Caution: This will permanently delete your identities, contacts and messages</string>
|
<string name="purge_setting_summary">Delete your Briar account if a panic button is pressed. Caution: This will permanently delete your identities, contacts and messages</string>
|
||||||
<string name="uninstall_setting_title">Uninstall Briar</string>
|
<string name="uninstall_setting_title">Uninstall Briar</string>
|
||||||
<string name="uninstall_setting_summary">This requires manual confirmation in a panic event</string>
|
<string name="uninstall_setting_summary">This requires manual confirmation in a panic event</string>
|
||||||
<string name="step">Step %1$d/%2$d</string>
|
<string name="step">Step %1$d/%2$d</string>
|
||||||
<string name="online">Online</string>
|
<string name="online">Online</string>
|
||||||
<string name="offline">Offline</string>
|
<string name="offline">Offline</string>
|
||||||
<string name="send">Send</string>
|
<string name="send">Send</string>
|
||||||
<string name="transport_tor">Internet</string>
|
<string name="transport_tor">Internet</string>
|
||||||
<string name="transport_bt">Bluetooth</string>
|
<string name="transport_bt">Bluetooth</string>
|
||||||
<string name="transport_lan">Wi-Fi</string>
|
<string name="transport_lan">Wi-Fi</string>
|
||||||
<string name="no_data">No data</string>
|
<string name="no_data">No data</string>
|
||||||
<string name="unknown_app">an unknown app</string>
|
<string name="unknown_app">an unknown app</string>
|
||||||
|
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="dialog_title_lost_password">Lost Password</string>
|
<string name="dialog_title_lost_password">Lost Password</string>
|
||||||
<string name="dialog_message_lost_password">Password recovery is not possible. Do you want to delete your account?\n\nCaution: This will permanently delete your identities, contacts and messages</string>
|
<string name="dialog_message_lost_password">Password recovery is not possible. Do you want to delete your account?\n\nCaution: This will permanently delete your identities, contacts and messages</string>
|
||||||
<string name="dialog_title_delete_contact">Confirm Contact Deletion</string>
|
<string name="dialog_title_delete_contact">Confirm Contact Deletion</string>
|
||||||
<string name="dialog_message_delete_contact">Are you sure that you want to remove this contact and all messages exchanged with this contact?</string>
|
<string name="dialog_message_delete_contact">Are you sure that you want to remove this contact and all messages exchanged with this contact?</string>
|
||||||
<string name="dialog_title_connect_panic_app">Confirm Panic App</string>
|
<string name="dialog_title_connect_panic_app">Confirm Panic App</string>
|
||||||
<string name="dialog_message_connect_panic_app">Are you sure that you want to allow %1$s to trigger destructive panic button actions?</string>
|
<string name="dialog_message_connect_panic_app">Are you sure that you want to allow %1$s to trigger destructive panic button actions?</string>
|
||||||
<string name="dialog_title_welcome">Welcome to Briar</string>
|
<string name="dialog_title_welcome">Welcome to Briar</string>
|
||||||
<string name="dialog_welcome_message">Add a contact to start communicating securely or press the icon in the upper left corner of the screen for more options.</string>
|
<string name="dialog_welcome_message">Add a contact to start communicating securely or press the icon in the upper left corner of the screen for more options.</string>
|
||||||
<string name="dialog_button_ok">OK</string>
|
<string name="dialog_button_ok">OK</string>
|
||||||
<!-- Toolbar headers -->
|
<!-- Toolbar headers -->
|
||||||
<string name="dashboard_toolbar_header">Briar</string>
|
<string name="dashboard_toolbar_header">Briar</string>
|
||||||
<string name="settings_toolbar_header">Settings</string>
|
<string name="settings_toolbar_header">Settings</string>
|
||||||
<string name="contacts_toolbar_header">Contacts</string>
|
<string name="contacts_toolbar_header">Contacts</string>
|
||||||
<string name="forums_toolbar_header">Forums</string>
|
<string name="forums_toolbar_header">Forums</string>
|
||||||
<!-- Progress titles -->
|
<!-- Progress titles -->
|
||||||
<string name="progress_title_logout">Signing out of Briar..</string>
|
<string name="progress_title_logout">Signing out of Briar..</string>
|
||||||
<string name="progress_title_please_wait">Please wait..</string>
|
<string name="progress_title_please_wait">Please wait..</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,104 +1,104 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<style name="BriarBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
<style name="BriarBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
<item name="actionBarStyle">@style/BriarActionBar</item>
|
<item name="actionBarStyle">@style/BriarActionBar</item>
|
||||||
<item name="colorPrimary">@color/briar_primary</item>
|
<item name="colorPrimary">@color/briar_primary</item>
|
||||||
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
|
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
|
||||||
<item name="colorAccent">@color/briar_accent</item>
|
<item name="colorAccent">@color/briar_accent</item>
|
||||||
<item name="android:textColorPrimary">@color/briar_text_primary</item>
|
<item name="android:textColorPrimary">@color/briar_text_primary</item>
|
||||||
<item name="android:textColorPrimaryInverse">@color/briar_text_primary_inverse</item>
|
<item name="android:textColorPrimaryInverse">@color/briar_text_primary_inverse</item>
|
||||||
<item name="android:textColorSecondary">@color/briar_text_primary</item>
|
<item name="android:textColorSecondary">@color/briar_text_primary</item>
|
||||||
<item name="android:textColorLink">@color/briar_text_link</item>
|
<item name="android:textColorLink">@color/briar_text_link</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
|
<style name="BriarThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
|
||||||
<item name="toolbarStyle">@style/BriarToolbar</item>
|
<item name="toolbarStyle">@style/BriarToolbar</item>
|
||||||
<item name="colorPrimary">@color/briar_primary</item>
|
<item name="colorPrimary">@color/briar_primary</item>
|
||||||
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
|
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
|
||||||
<item name="colorAccent">@color/briar_primary</item>
|
<item name="colorAccent">@color/briar_primary</item>
|
||||||
<item name="android:textColorPrimary">@color/briar_text_primary</item>
|
<item name="android:textColorPrimary">@color/briar_text_primary</item>
|
||||||
<item name="android:textColorPrimaryInverse">@color/briar_text_primary_inverse</item>
|
<item name="android:textColorPrimaryInverse">@color/briar_text_primary_inverse</item>
|
||||||
<item name="android:textColorSecondary">@color/briar_text_primary</item>
|
<item name="android:textColorSecondary">@color/briar_text_primary</item>
|
||||||
<item name="android:textColorLink">@color/briar_text_link</item>
|
<item name="android:textColorLink">@color/briar_text_link</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarThemeNoActionBar.Default" />
|
<style name="BriarThemeNoActionBar.Default" />
|
||||||
|
|
||||||
<style name="BriarToolbar" parent="Widget.AppCompat.Toolbar">
|
<style name="BriarToolbar" parent="Widget.AppCompat.Toolbar">
|
||||||
<item name="android:background">?colorPrimary</item>
|
<item name="android:background">?colorPrimary</item>
|
||||||
<item name="android:textColorPrimary">@color/briar_text_primary_inverse</item>
|
<item name="android:textColorPrimary">@color/briar_text_primary_inverse</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="colorPrimary">@color/briar_primary</item>
|
<item name="colorPrimary">@color/briar_primary</item>
|
||||||
<item name="titleTextAppearance">@style/BriarToolbarTextAppearance</item>
|
<item name="titleTextAppearance">@style/BriarToolbarTextAppearance</item>
|
||||||
<item name="android:theme">@style/BriarToolbarTheme</item>
|
<item name="android:theme">@style/BriarToolbarTheme</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarToolbarTheme">
|
<style name="BriarToolbarTheme">
|
||||||
<item name="colorControlNormal">@color/briar_text_primary_inverse</item>
|
<item name="colorControlNormal">@color/briar_text_primary_inverse</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarToolbarTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
|
<style name="BriarToolbarTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
|
||||||
<item name="android:textColor">@color/briar_text_primary_inverse</item>
|
<item name="android:textColor">@color/briar_text_primary_inverse</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarTheme" parent="BriarBaseTheme">
|
<style name="BriarTheme" parent="BriarBaseTheme">
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
||||||
<item name="android:listSeparatorTextViewStyle">@style/BriarTheme.ListSeparatorTextView</item>
|
<item name="android:listSeparatorTextViewStyle">@style/BriarTheme.ListSeparatorTextView</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarActionBar" parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
|
<style name="BriarActionBar" parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
|
||||||
<item name="elevation">1dp</item>
|
<item name="elevation">1dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButton">
|
<style name="BriarButton">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:padding">@dimen/margin_large</item>
|
<item name="android:padding">@dimen/margin_large</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarButton.Default"/>
|
<style name="BriarButton.Default"/>
|
||||||
|
|
||||||
<style name="BriarTextTitle">
|
<style name="BriarTextTitle">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@android:color/primary_text_light</item>
|
<item name="android:textColor">@android:color/primary_text_light</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarTextTitleInverted" parent="BriarTextTitle">
|
<style name="BriarTextTitleInverted" parent="BriarTextTitle">
|
||||||
<item name="android:textColor">@android:color/primary_text_dark</item>
|
<item name="android:textColor">@android:color/primary_text_dark</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="BriarTextBody">
|
<style name="BriarTextBody">
|
||||||
<item name="android:textSize">@dimen/text_size_small</item>
|
<item name="android:textSize">@dimen/text_size_small</item>
|
||||||
<item name="android:textColor">@android:color/primary_text_light</item>
|
<item name="android:textColor">@android:color/primary_text_light</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Divider">
|
<style name="Divider">
|
||||||
<item name="android:background">?android:attr/listDivider</item>
|
<item name="android:background">?android:attr/listDivider</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Divider.Horizontal">
|
<style name="Divider.Horizontal">
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">1px</item>
|
<item name="android:layout_height">1px</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="NavMenuButton" parent="Widget.AppCompat.Button.Borderless.Colored">
|
<style name="NavMenuButton" parent="Widget.AppCompat.Button.Borderless.Colored">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@android:color/tertiary_text_light</item>
|
<item name="android:textColor">@android:color/tertiary_text_light</item>
|
||||||
<item name="android:paddingTop">@dimen/margin_large</item>
|
<item name="android:paddingTop">@dimen/margin_large</item>
|
||||||
<item name="android:paddingBottom">@dimen/margin_large</item>
|
<item name="android:paddingBottom">@dimen/margin_large</item>
|
||||||
<item name="android:drawablePadding">@dimen/margin_xlarge</item>
|
<item name="android:drawablePadding">@dimen/margin_xlarge</item>
|
||||||
<item name="android:gravity">left|center_vertical</item>
|
<item name="android:gravity">left|center_vertical</item>
|
||||||
<item name="android:layout_margin">0dp</item>
|
<item name="android:layout_margin">0dp</item>
|
||||||
<item name="android:paddingLeft">@dimen/margin_large</item>
|
<item name="android:paddingLeft">@dimen/margin_large</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- This fixes a UI bug in the support preference library -->
|
<!-- This fixes a UI bug in the support preference library -->
|
||||||
<style name="BriarTheme.ListSeparatorTextView">
|
<style name="BriarTheme.ListSeparatorTextView">
|
||||||
<item name="android:textSize">14sp</item>
|
<item name="android:textSize">14sp</item>
|
||||||
<item name="android:textStyle">bold</item>
|
<item name="android:textStyle">bold</item>
|
||||||
<item name="android:textColor">@color/briar_accent</item>
|
<item name="android:textColor">@color/briar_accent</item>
|
||||||
<item name="android:paddingTop">16dp</item>
|
<item name="android:paddingTop">16dp</item>
|
||||||
<item name="android:layout_marginBottom">16dp</item>
|
<item name="android:layout_marginBottom">16dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -7,7 +7,7 @@ package im.delight.android.identicons;
|
|||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -28,57 +28,57 @@ import roboguice.RoboGuice;
|
|||||||
|
|
||||||
public class AsymmetricIdenticon extends IdenticonView {
|
public class AsymmetricIdenticon extends IdenticonView {
|
||||||
|
|
||||||
@Inject private CryptoComponent mCrypto;
|
@Inject private CryptoComponent mCrypto;
|
||||||
private IdenticonBase mDelegate;
|
private IdenticonBase mDelegate;
|
||||||
|
|
||||||
public AsymmetricIdenticon(Context context) {
|
public AsymmetricIdenticon(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AsymmetricIdenticon(Context context, AttributeSet attrs) {
|
public AsymmetricIdenticon(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AsymmetricIdenticon(Context context, AttributeSet attrs, int defStyleAttr) {
|
public AsymmetricIdenticon(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IdenticonBase getDelegate() {
|
protected IdenticonBase getDelegate() {
|
||||||
return mDelegate;
|
return mDelegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDelegate() {
|
private void initDelegate() {
|
||||||
RoboGuice.injectMembers(getContext(), this);
|
RoboGuice.injectMembers(getContext(), this);
|
||||||
mDelegate = new IdenticonBase() {
|
mDelegate = new IdenticonBase() {
|
||||||
@Override
|
@Override
|
||||||
protected CryptoComponent getCrypto() {
|
protected CryptoComponent getCrypto() {
|
||||||
return mCrypto;
|
return mCrypto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getRowCount() {
|
protected int getRowCount() {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getColumnCount() {
|
protected int getColumnCount() {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isCellVisible(int row, int column) {
|
protected boolean isCellVisible(int row, int column) {
|
||||||
return getByte(3 + row * getColumnCount() + column) >= 0;
|
return getByte(3 + row * getColumnCount() + column) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getIconColor() {
|
protected int getIconColor() {
|
||||||
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,118 +10,118 @@ import org.briarproject.api.crypto.CryptoComponent;
|
|||||||
* Created by saiimons on 05/10/14.
|
* Created by saiimons on 05/10/14.
|
||||||
*/
|
*/
|
||||||
public abstract class IdenticonBase {
|
public abstract class IdenticonBase {
|
||||||
private final CryptoComponent mCrypto;
|
private final CryptoComponent mCrypto;
|
||||||
private final int mRowCount;
|
private final int mRowCount;
|
||||||
private final int mColumnCount;
|
private final int mColumnCount;
|
||||||
private final Paint mPaint;
|
private final Paint mPaint;
|
||||||
private volatile int mCellWidth;
|
private volatile int mCellWidth;
|
||||||
private volatile int mCellHeight;
|
private volatile int mCellHeight;
|
||||||
private volatile byte[] mHash;
|
private volatile byte[] mHash;
|
||||||
private volatile int[][] mColors;
|
private volatile int[][] mColors;
|
||||||
private volatile boolean mReady;
|
private volatile boolean mReady;
|
||||||
|
|
||||||
public IdenticonBase() {
|
public IdenticonBase() {
|
||||||
mCrypto = getCrypto();
|
mCrypto = getCrypto();
|
||||||
mRowCount = getRowCount();
|
mRowCount = getRowCount();
|
||||||
mColumnCount = getColumnCount();
|
mColumnCount = getColumnCount();
|
||||||
mPaint = new Paint();
|
mPaint = new Paint();
|
||||||
|
|
||||||
mPaint.setStyle(Paint.Style.FILL);
|
mPaint.setStyle(Paint.Style.FILL);
|
||||||
mPaint.setAntiAlias(true);
|
mPaint.setAntiAlias(true);
|
||||||
mPaint.setDither(true);
|
mPaint.setDither(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getHash(byte[] input) {
|
public byte[] getHash(byte[] input) {
|
||||||
byte[] mHash;
|
byte[] mHash;
|
||||||
// if the input was null
|
// if the input was null
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
// we can't create a hash value and have nothing to show (draw to the view)
|
// we can't create a hash value and have nothing to show (draw to the view)
|
||||||
mHash = null;
|
mHash = null;
|
||||||
} else {
|
} else {
|
||||||
// generate a hash from the input to get unique but deterministic byte values
|
// generate a hash from the input to get unique but deterministic byte values
|
||||||
try {
|
try {
|
||||||
mHash = mCrypto.hash(input);
|
mHash = mCrypto.hash(input);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
mHash = null;
|
mHash = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mHash;
|
return mHash;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setupColors() {
|
protected void setupColors() {
|
||||||
mColors = new int[mRowCount][mColumnCount];
|
mColors = new int[mRowCount][mColumnCount];
|
||||||
int colorVisible = getIconColor();
|
int colorVisible = getIconColor();
|
||||||
int colorInvisible = getBackgroundColor();
|
int colorInvisible = getBackgroundColor();
|
||||||
|
|
||||||
for (int r = 0; r < mRowCount; r++) {
|
for (int r = 0; r < mRowCount; r++) {
|
||||||
for (int c = 0; c < mColumnCount; c++) {
|
for (int c = 0; c < mColumnCount; c++) {
|
||||||
if (isCellVisible(r, c)) {
|
if (isCellVisible(r, c)) {
|
||||||
mColors[r][c] = colorVisible;
|
mColors[r][c] = colorVisible;
|
||||||
} else {
|
} else {
|
||||||
mColors[r][c] = colorInvisible;
|
mColors[r][c] = colorInvisible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(byte[] input) {
|
public void show(byte[] input) {
|
||||||
if(input != null) {
|
if(input != null) {
|
||||||
mHash = getHash(input);
|
mHash = getHash(input);
|
||||||
} else {
|
} else {
|
||||||
mHash = null;
|
mHash = null;
|
||||||
}
|
}
|
||||||
// set up the cell colors according to the input that was provided via show(...)
|
// set up the cell colors according to the input that was provided via show(...)
|
||||||
setupColors();
|
setupColors();
|
||||||
|
|
||||||
// this view may now be drawn (and thus must be re-drawn)
|
// this view may now be drawn (and thus must be re-drawn)
|
||||||
mReady = true;
|
mReady = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getByte(int index) {
|
public byte getByte(int index) {
|
||||||
if (mHash == null) {
|
if (mHash == null) {
|
||||||
return -128;
|
return -128;
|
||||||
} else {
|
} else {
|
||||||
return mHash[index % mHash.length];
|
return mHash[index % mHash.length];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract protected CryptoComponent getCrypto();
|
abstract protected CryptoComponent getCrypto();
|
||||||
|
|
||||||
abstract protected int getRowCount();
|
abstract protected int getRowCount();
|
||||||
|
|
||||||
abstract protected int getColumnCount();
|
abstract protected int getColumnCount();
|
||||||
|
|
||||||
abstract protected boolean isCellVisible(int row, int column);
|
abstract protected boolean isCellVisible(int row, int column);
|
||||||
|
|
||||||
abstract protected int getIconColor();
|
abstract protected int getIconColor();
|
||||||
|
|
||||||
protected int getBackgroundColor() {
|
protected int getBackgroundColor() {
|
||||||
float[] hsv = new float[3];
|
float[] hsv = new float[3];
|
||||||
Color.colorToHSV(getIconColor(), hsv);
|
Color.colorToHSV(getIconColor(), hsv);
|
||||||
if (hsv[2] < 0.5)
|
if (hsv[2] < 0.5)
|
||||||
return Color.parseColor("#ffeeeeee"); // @color/background_material_light
|
return Color.parseColor("#ffeeeeee"); // @color/background_material_light
|
||||||
else
|
else
|
||||||
return Color.parseColor("#ff303030"); // @color/background_material_dark
|
return Color.parseColor("#ff303030"); // @color/background_material_dark
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateSize(int w, int h) {
|
public void updateSize(int w, int h) {
|
||||||
mCellWidth = w / mColumnCount;
|
mCellWidth = w / mColumnCount;
|
||||||
mCellHeight = h / mRowCount;
|
mCellHeight = h / mRowCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void draw(Canvas canvas) {
|
protected void draw(Canvas canvas) {
|
||||||
if (mReady) {
|
if (mReady) {
|
||||||
int x, y;
|
int x, y;
|
||||||
for (int r = 0; r < mRowCount; r++) {
|
for (int r = 0; r < mRowCount; r++) {
|
||||||
for (int c = 0; c < mColumnCount; c++) {
|
for (int c = 0; c < mColumnCount; c++) {
|
||||||
x = mCellWidth * c;
|
x = mCellWidth * c;
|
||||||
y = mCellHeight * r;
|
y = mCellHeight * r;
|
||||||
|
|
||||||
mPaint.setColor(mColors[r][c]);
|
mPaint.setColor(mColors[r][c]);
|
||||||
|
|
||||||
canvas.drawRect(x, y + mCellHeight, x + mCellWidth, y, mPaint);
|
canvas.drawRect(x, y + mCellHeight, x + mCellWidth, y, mPaint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,90 +13,90 @@ import org.briarproject.api.crypto.CryptoComponent;
|
|||||||
* Created by saiimons on 05/10/14.
|
* Created by saiimons on 05/10/14.
|
||||||
*/
|
*/
|
||||||
public class IdenticonDrawable extends Drawable {
|
public class IdenticonDrawable extends Drawable {
|
||||||
private IdenticonBase mDelegate;
|
private IdenticonBase mDelegate;
|
||||||
|
|
||||||
private static final int CENTER_COLUMN_INDEX = 5;
|
private static final int CENTER_COLUMN_INDEX = 5;
|
||||||
|
|
||||||
public IdenticonDrawable(final CryptoComponent crypto, byte[] toShow) {
|
public IdenticonDrawable(final CryptoComponent crypto, byte[] toShow) {
|
||||||
super();
|
super();
|
||||||
mDelegate = new IdenticonBase() {
|
mDelegate = new IdenticonBase() {
|
||||||
@Override
|
@Override
|
||||||
protected CryptoComponent getCrypto() {
|
protected CryptoComponent getCrypto() {
|
||||||
return crypto;
|
return crypto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getRowCount() {
|
protected int getRowCount() {
|
||||||
return 9;
|
return 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getColumnCount() {
|
protected int getColumnCount() {
|
||||||
return 9;
|
return 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isCellVisible(int row, int column) {
|
protected boolean isCellVisible(int row, int column) {
|
||||||
return getByte(3 + row * CENTER_COLUMN_INDEX + getSymmetricColumnIndex(column)) >= 0;
|
return getByte(3 + row * CENTER_COLUMN_INDEX + getSymmetricColumnIndex(column)) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getIconColor() {
|
protected int getIconColor() {
|
||||||
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mDelegate.show(toShow);
|
mDelegate.show(toShow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getIntrinsicHeight() {
|
public int getIntrinsicHeight() {
|
||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getIntrinsicWidth() {
|
public int getIntrinsicWidth() {
|
||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBounds(Rect bounds) {
|
public void setBounds(Rect bounds) {
|
||||||
super.setBounds(bounds);
|
super.setBounds(bounds);
|
||||||
Log.d("IDENTICON", "SIZE : " + (bounds.right - bounds.left) + " " + (bounds.bottom - bounds.top));
|
Log.d("IDENTICON", "SIZE : " + (bounds.right - bounds.left) + " " + (bounds.bottom - bounds.top));
|
||||||
mDelegate.updateSize(bounds.right - bounds.left, bounds.bottom - bounds.top);
|
mDelegate.updateSize(bounds.right - bounds.left, bounds.bottom - bounds.top);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBounds(int left, int top, int right, int bottom) {
|
public void setBounds(int left, int top, int right, int bottom) {
|
||||||
super.setBounds(left, top, right, bottom);
|
super.setBounds(left, top, right, bottom);
|
||||||
mDelegate.updateSize(right - left, bottom - top);
|
mDelegate.updateSize(right - left, bottom - top);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Canvas canvas) {
|
public void draw(Canvas canvas) {
|
||||||
Log.d("IDENTICON", "DRAW IN PROGRESS");
|
Log.d("IDENTICON", "DRAW IN PROGRESS");
|
||||||
mDelegate.draw(canvas);
|
mDelegate.draw(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setAlpha(int alpha) {
|
public void setAlpha(int alpha) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setColorFilter(ColorFilter cf) {
|
public void setColorFilter(ColorFilter cf) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getOpacity() {
|
public int getOpacity() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int getSymmetricColumnIndex(int row) {
|
protected int getSymmetricColumnIndex(int row) {
|
||||||
if (row < CENTER_COLUMN_INDEX) {
|
if (row < CENTER_COLUMN_INDEX) {
|
||||||
return row;
|
return row;
|
||||||
} else {
|
} else {
|
||||||
return mDelegate.getColumnCount() - row - 1;
|
return mDelegate.getColumnCount() - row - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package im.delight.android.identicons;
|
|||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -26,97 +26,97 @@ import android.view.View;
|
|||||||
abstract public class IdenticonView extends View {
|
abstract public class IdenticonView extends View {
|
||||||
|
|
||||||
|
|
||||||
public IdenticonView(Context context) {
|
public IdenticonView(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdenticonView(Context context, AttributeSet attrs) {
|
public IdenticonView(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdenticonView(Context context, AttributeSet attrs, int defStyleAttr) {
|
public IdenticonView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
protected void init() {
|
protected void init() {
|
||||||
setWillNotDraw(false);
|
setWillNotDraw(false);
|
||||||
if (Build.VERSION.SDK_INT >= 11) {
|
if (Build.VERSION.SDK_INT >= 11) {
|
||||||
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(byte[] input) {
|
public void show(byte[] input) {
|
||||||
getDelegate().show(input);
|
getDelegate().show(input);
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(String input) {
|
public void show(String input) {
|
||||||
show(input.getBytes());
|
show(input.getBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(int input) {
|
public void show(int input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(long input) {
|
public void show(long input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(float input) {
|
public void show(float input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(double input) {
|
public void show(double input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(byte input) {
|
public void show(byte input) {
|
||||||
show(new byte[] { input });
|
show(new byte[] { input });
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(char input) {
|
public void show(char input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(boolean input) {
|
public void show(boolean input) {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(Object input) {
|
public void show(Object input) {
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
getDelegate().show(null);
|
getDelegate().show(null);
|
||||||
} else {
|
} else {
|
||||||
show(String.valueOf(input));
|
show(String.valueOf(input));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected byte getByte(int index) {
|
protected byte getByte(int index) {
|
||||||
return getDelegate().getByte(index);
|
return getDelegate().getByte(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract protected IdenticonBase getDelegate();
|
abstract protected IdenticonBase getDelegate();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
||||||
super.onSizeChanged(w, h, oldw, oldh);
|
super.onSizeChanged(w, h, oldw, oldh);
|
||||||
getDelegate().updateSize(w, h);
|
getDelegate().updateSize(w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
int size = Math.min(getMeasuredWidth(), getMeasuredHeight());
|
int size = Math.min(getMeasuredWidth(), getMeasuredHeight());
|
||||||
setMeasuredDimension(size, size);
|
setMeasuredDimension(size, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDraw(Canvas canvas) {
|
protected void onDraw(Canvas canvas) {
|
||||||
super.onDraw(canvas);
|
super.onDraw(canvas);
|
||||||
getDelegate().draw(canvas);
|
getDelegate().draw(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package im.delight.android.identicons;
|
|||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@@ -28,67 +28,67 @@ import roboguice.RoboGuice;
|
|||||||
|
|
||||||
public class SymmetricIdenticon extends IdenticonView {
|
public class SymmetricIdenticon extends IdenticonView {
|
||||||
|
|
||||||
private static final int CENTER_COLUMN_INDEX = 5;
|
private static final int CENTER_COLUMN_INDEX = 5;
|
||||||
|
|
||||||
@Inject private CryptoComponent mCrypto;
|
@Inject private CryptoComponent mCrypto;
|
||||||
private IdenticonBase mDelegate;
|
private IdenticonBase mDelegate;
|
||||||
|
|
||||||
public SymmetricIdenticon(Context context) {
|
public SymmetricIdenticon(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SymmetricIdenticon(Context context, AttributeSet attrs) {
|
public SymmetricIdenticon(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SymmetricIdenticon(Context context, AttributeSet attrs, int defStyleAttr) {
|
public SymmetricIdenticon(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
initDelegate();
|
initDelegate();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDelegate() {
|
private void initDelegate() {
|
||||||
RoboGuice.injectMembers(getContext(), this);
|
RoboGuice.injectMembers(getContext(), this);
|
||||||
mDelegate = new IdenticonBase() {
|
mDelegate = new IdenticonBase() {
|
||||||
@Override
|
@Override
|
||||||
protected CryptoComponent getCrypto() {
|
protected CryptoComponent getCrypto() {
|
||||||
return mCrypto;
|
return mCrypto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getRowCount() {
|
protected int getRowCount() {
|
||||||
return 9;
|
return 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getColumnCount() {
|
protected int getColumnCount() {
|
||||||
return 9;
|
return 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isCellVisible(int row, int column) {
|
protected boolean isCellVisible(int row, int column) {
|
||||||
return getByte(3 + row * CENTER_COLUMN_INDEX + getSymmetricColumnIndex(column)) >= 0;
|
return getByte(3 + row * CENTER_COLUMN_INDEX + getSymmetricColumnIndex(column)) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getIconColor() {
|
protected int getIconColor() {
|
||||||
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
return Color.rgb(getByte(0) + 128, getByte(1) + 128, getByte(2) + 128);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IdenticonBase getDelegate() {
|
protected IdenticonBase getDelegate() {
|
||||||
return mDelegate;
|
return mDelegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int getSymmetricColumnIndex(int row) {
|
protected int getSymmetricColumnIndex(int row) {
|
||||||
if (row < CENTER_COLUMN_INDEX) {
|
if (row < CENTER_COLUMN_INDEX) {
|
||||||
return row;
|
return row;
|
||||||
} else {
|
} else {
|
||||||
return getDelegate().getColumnCount() - row - 1;
|
return getDelegate().getColumnCount() - row - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,25 +5,25 @@ targetCompatibility = 1.6
|
|||||||
apply plugin: 'witness'
|
apply plugin: 'witness'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile "javax.inject:javax.inject:1"
|
compile "javax.inject:javax.inject:1"
|
||||||
compile "com.google.inject:guice:3.0:no_aop"
|
compile "com.google.inject:guice:3.0:no_aop"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||||
'com.google.inject:guice:7c0624d0986ae2bd7a8f1cf4789bcaae5b82a042a7e3d27ba3041ed7b7f2cd3a',
|
'com.google.inject:guice:7c0624d0986ae2bd7a8f1cf4789bcaae5b82a042a7e3d27ba3041ed7b7f2cd3a',
|
||||||
'aopalliance:aopalliance:0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08',
|
'aopalliance:aopalliance:0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08',
|
||||||
'org.sonatype.sisu.inject:cglib:42e1dfb26becbf1a633f25b47e39fcc422b85e77e4c0468d9a44f885f5fa0be2',
|
'org.sonatype.sisu.inject:cglib:42e1dfb26becbf1a633f25b47e39fcc422b85e77e4c0468d9a44f885f5fa0be2',
|
||||||
'asm:asm:333ff5369043975b7e031b8b27206937441854738e038c1f47f98d072a20437a',
|
'asm:asm:333ff5369043975b7e031b8b27206937441854738e038c1f47f98d072a20437a',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs = ['src']
|
main.java.srcDirs = ['src']
|
||||||
main.resources.srcDirs = ['src']
|
main.resources.srcDirs = ['src']
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class MessagesSentEvent extends Event {
|
|||||||
private final Collection<MessageId> messageIds;
|
private final Collection<MessageId> messageIds;
|
||||||
|
|
||||||
public MessagesSentEvent(ContactId contactId,
|
public MessagesSentEvent(ContactId contactId,
|
||||||
Collection<MessageId> messageIds) {
|
Collection<MessageId> messageIds) {
|
||||||
this.contactId = contactId;
|
this.contactId = contactId;
|
||||||
this.messageIds = messageIds;
|
this.messageIds = messageIds;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,24 +5,24 @@ targetCompatibility = 1.6
|
|||||||
apply plugin: 'witness'
|
apply plugin: 'witness'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':briar-api')
|
compile project(':briar-api')
|
||||||
compile fileTree(dir: 'libs', include: '*.jar')
|
compile fileTree(dir: 'libs', include: '*.jar')
|
||||||
compile "com.madgag.spongycastle:core:1.54.0.0"
|
compile "com.madgag.spongycastle:core:1.54.0.0"
|
||||||
compile "com.h2database:h2:1.4.190"
|
compile "com.h2database:h2:1.4.190"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'com.madgag.spongycastle:core:1e7fa4b19ccccd1011364ab838d0b4702470c178bbbdd94c5c90b2d4d749ea1e',
|
'com.madgag.spongycastle:core:1e7fa4b19ccccd1011364ab838d0b4702470c178bbbdd94c5c90b2d4d749ea1e',
|
||||||
'com.h2database:h2:23ba495a07bbbb3bd6c3084d10a96dad7a23741b8b6d64b213459a784195a98c',
|
'com.h2database:h2:23ba495a07bbbb3bd6c3084d10a96dad7a23741b8b6d64b213459a784195a98c',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs = ['src']
|
main.java.srcDirs = ['src']
|
||||||
main.resources.srcDirs = ['src']
|
main.resources.srcDirs = ['src']
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,17 +5,17 @@ targetCompatibility = 1.6
|
|||||||
apply plugin: 'witness'
|
apply plugin: 'witness'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':briar-api')
|
compile project(':briar-api')
|
||||||
compile fileTree(dir: '../briar-core/libs', include: '*.jar')
|
compile fileTree(dir: '../briar-core/libs', include: '*.jar')
|
||||||
compile project(':briar-core')
|
compile project(':briar-core')
|
||||||
compile fileTree(dir: 'libs', include: '*.jar')
|
compile fileTree(dir: 'libs', include: '*.jar')
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs = ['src']
|
main.java.srcDirs = ['src']
|
||||||
main.resources.srcDirs = ['src']
|
main.resources.srcDirs = ['src']
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,37 +5,37 @@ targetCompatibility = 1.6
|
|||||||
apply plugin: 'witness'
|
apply plugin: 'witness'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':briar-api')
|
compile project(':briar-api')
|
||||||
compile project(':briar-core')
|
compile project(':briar-core')
|
||||||
compile fileTree(dir: '../briar-desktop/libs', include: '*.jar')
|
compile fileTree(dir: '../briar-desktop/libs', include: '*.jar')
|
||||||
compile project(':briar-desktop')
|
compile project(':briar-desktop')
|
||||||
|
|
||||||
compile "junit:junit:4.12"
|
compile "junit:junit:4.12"
|
||||||
compile "org.jmock:jmock:2.8.1"
|
compile "org.jmock:jmock:2.8.1"
|
||||||
compile "org.hamcrest:hamcrest-library:1.3"
|
compile "org.hamcrest:hamcrest-library:1.3"
|
||||||
compile "org.hamcrest:hamcrest-core:1.3"
|
compile "org.hamcrest:hamcrest-core:1.3"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'junit:junit:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
|
'junit:junit:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
|
||||||
'org.jmock:jmock:75d4bdaf636879f0215830c5e6ab99407069a625eaffde5d57b32d887b75dc14',
|
'org.jmock:jmock:75d4bdaf636879f0215830c5e6ab99407069a625eaffde5d57b32d887b75dc14',
|
||||||
'org.hamcrest:hamcrest-library:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c',
|
'org.hamcrest:hamcrest-library:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c',
|
||||||
'org.hamcrest:hamcrest-core:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',
|
'org.hamcrest:hamcrest-core:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs = ['src']
|
main.java.srcDirs = ['src']
|
||||||
main.resources.srcDirs = ['src']
|
main.resources.srcDirs = ['src']
|
||||||
test.java.srcDirs = ['src']
|
test.java.srcDirs = ['src']
|
||||||
test.resources.srcDirs = ['src']
|
test.resources.srcDirs = ['src']
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(Test) {
|
tasks.withType(Test) {
|
||||||
systemProperty 'java.library.path', '../briar-desktop/libs'
|
systemProperty 'java.library.path', '../briar-desktop/libs'
|
||||||
}
|
}
|
||||||
|
|||||||
14
build.gradle
14
build.gradle
@@ -1,10 +1,10 @@
|
|||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:1.5.0'
|
classpath 'com.android.tools.build:gradle:1.5.0'
|
||||||
classpath files('briar-core/libs/gradle-witness.jar')
|
classpath files('briar-core/libs/gradle-witness.jar')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user