commit
fba943c675
261 changed files with 5278 additions and 2000 deletions
|
@ -6,7 +6,7 @@ android:
|
||||||
- platform-tools
|
- platform-tools
|
||||||
- tools
|
- tools
|
||||||
|
|
||||||
- build-tools-29.0.2
|
- build-tools-29.0.3
|
||||||
- android-29
|
- android-29
|
||||||
|
|
||||||
- extra-google-m2repository
|
- extra-google-m2repository
|
||||||
|
|
44
CHANGELOG.md
44
CHANGELOG.md
|
@ -1,5 +1,49 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
#### v0.8.0
|
||||||
|
|
||||||
|
* New feature: **Storage Access Framework** (remove all manual storage permissions and use the SAF everywhere)
|
||||||
|
* New feature: New setting to block autofill access to important fields (Issue #493)
|
||||||
|
* Improvement: Improve some English strings (Issue #149, PR #571 and #576 by @jsoberg)
|
||||||
|
* Improvement: Don't automatically backup when updating last used or when moving cards
|
||||||
|
* Improvement: Enable the "append date to backups" option by default
|
||||||
|
* Improvement: Strip issuer from the label when adding via URL/QR code (Issue #551, PR #560 by @shivasheeshyadav)
|
||||||
|
* Improvement: Remove the "new backup format warning" (has been there long enough)
|
||||||
|
* Improvement: Show requirements for auto backups in the settings (Issue #492)
|
||||||
|
* Improvement: Fix some accessibility issues (Issue #498)
|
||||||
|
* Bug fix: Make the automatic thumbnail selection case insensitive (Issue #564)
|
||||||
|
* Bug fix: Validate Integer input for counter, digits and period (Issue #569, PR #570 by @jsoberg)
|
||||||
|
* Bug fix: Visibility of the password confirmation field (Issue #580, PR #582 by @jsoberg)
|
||||||
|
* Internal: Update Gradle and build tools
|
||||||
|
* Internal: Min API Level set to 22 (Lollipop 5.1)
|
||||||
|
* Internal: Refactoring and reducing build warnings
|
||||||
|
* Thumbnails: Lots of new ones (thanks to all contributors)
|
||||||
|
|
||||||
|
#### v0.7.1.1
|
||||||
|
|
||||||
|
* Bug fix: Fix migration of old tap-to-reveal setting
|
||||||
|
* Bug fix: Cache encryption key when recreating main activity
|
||||||
|
|
||||||
|
#### v0.7.1
|
||||||
|
|
||||||
|
* Deprecation notice: This will be the last version to support Android versions below 5.1
|
||||||
|
* New feature: Show QR codes of stored accounts (PR #501 by @tilosp)
|
||||||
|
* New feature: Support Steam URIs (Issue #510)
|
||||||
|
* New feature: Move Steam out of the Special features
|
||||||
|
* New feature: Unify the edit dialog for entries (Issue #241)
|
||||||
|
* New feature: Add an option to hide the global timeout bar (Issue #166)
|
||||||
|
* New feature: Add an option to show individual timeout bars for all cards (Issue #166)
|
||||||
|
* New feature: Add options to configure single and double taps on entries (Issue #489)
|
||||||
|
* Improvement: Increase the iterations for the password generation to 150000
|
||||||
|
* Improvement: Show cards as transparent while dragging (Issue #487, PR #488 by @Ullas-Aithal)
|
||||||
|
* Improvement: Rewording of the last used dialog (Issue #485)
|
||||||
|
* Improvement: Handle the back key to close open drawers or the FAB overlay (Issue #499)
|
||||||
|
* Improvement: Validate secrets during manual entry (Issue #500)
|
||||||
|
* Bug fix: Fix some remaining issues with the intro dialog (Issue #486)
|
||||||
|
* Bug fix: Fix images containing gradients on API versions below 24 (Issue #539)
|
||||||
|
* Thumbnails: Lots of new ones (thanks to all contributors)
|
||||||
|
* Translations: Bulgarian (thanks to all the contributors on Crowdin)
|
||||||
|
|
||||||
#### v0.7.0
|
#### v0.7.0
|
||||||
|
|
||||||
* New feature: Generate a new HOTP token when revealing (Issue #334, PR #366 by @moritzgloeckl)
|
* New feature: Generate a new HOTP token when revealing (Issue #334, PR #366 by @moritzgloeckl)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 2017-2018 Jakob Nixdorf <andotp@shadowice.org>
|
Copyright (C) 2017-2020 Jakob Nixdorf <andotp@shadowice.org>
|
||||||
Copyright (C) 2015 Bruno Bierbaumer
|
Copyright (C) 2015 Bruno Bierbaumer
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
# andOTP - Android OTP Authenticator
|
# andOTP - Android OTP Authenticator
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP)
|
[![Build Status](https://travis-ci.org/andOTP/andOTP.svg?branch=master)](https://travis-ci.org/andOTP/andOTP)
|
||||||
[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.7.0/andOTP_v0.7.0.apk)
|
[![Current release](https://img.shields.io/github/release/andOTP/andOTP/all.svg)](https://github.com/andOTP/andOTP/releases/download/v0.8.0-beta1/andOTP_v0.8.0-beta1.apk)
|
||||||
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/andotp/localized.svg)](https://crowdin.com/project/andotp)
|
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/andotp/localized.svg)](https://crowdin.com/project/andotp)
|
||||||
[![Chat - Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/andOTP)
|
[![Chat - Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/andOTP)
|
||||||
[![Chat - Matrix](https://img.shields.io/badge/chat-Matrix-blue.svg)](https://matrix.to/#/#andOTP:privacytools.io)
|
[![Chat - Matrix](https://img.shields.io/badge/chat-Matrix-blue.svg)](https://matrix.to/#/#andOTP:privacytools.io)
|
||||||
|
|
||||||
![andOTP](./assets/logo.png)
|
![andOTP](./assets/logo.png)
|
||||||
|
|
||||||
andOTP is a two-factor authentication App for Android 4.4+.
|
andOTP is a two-factor authentication App for Android 5.1+.
|
||||||
|
|
||||||
It implements Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP).
|
It implements Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP).
|
||||||
Simply scan the QR code and login with the generated 6-digit code.
|
Simply scan the QR code and login with the generated 6-digit code.
|
||||||
|
@ -152,7 +152,7 @@ If you want to show your appreciation for our work with a small donation you can
|
||||||
|
|
||||||
## License:
|
## License:
|
||||||
```
|
```
|
||||||
Copyright (C) 2017-2018 Jakob Nixdorf <andotp@shadowice.org>
|
Copyright (C) 2017-2020 Jakob Nixdorf <andotp@shadowice.org>
|
||||||
Copyright (C) 2015 Bruno Bierbaumer
|
Copyright (C) 2015 Bruno Bierbaumer
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
|
|
@ -6,11 +6,12 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "org.shadowice.flocke.andotp"
|
applicationId "org.shadowice.flocke.andotp"
|
||||||
minSdkVersion 19
|
minSdkVersion 22
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 28
|
versionCode 33
|
||||||
versionName "0.7.0"
|
versionName "0.8.0-beta1"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
|
@ -21,13 +22,17 @@ android {
|
||||||
applicationIdSuffix = ".dev"
|
applicationIdSuffix = ".dev"
|
||||||
versionNameSuffix = "-dev"
|
versionNameSuffix = "-dev"
|
||||||
testCoverageEnabled = true
|
testCoverageEnabled = true
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lintOptions {
|
lintOptions {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
dataBinding {
|
buildFeatures{
|
||||||
enabled = true
|
dataBinding = true
|
||||||
}
|
}
|
||||||
flavorDimensions 'market'
|
flavorDimensions 'market'
|
||||||
productFlavors {
|
productFlavors {
|
||||||
|
@ -40,6 +45,10 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
// Flag to enable support for the new language APIs
|
||||||
|
coreLibraryDesugaringEnabled true
|
||||||
|
|
||||||
|
// Sets Java compatibility to Java 8
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
@ -54,10 +63,11 @@ dependencies {
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||||
implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-process:${lifecycle_version}"
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-common-java8:${lifecycle_version}"
|
||||||
implementation 'com.google.android.material:material:1.1.0'
|
implementation 'com.google.android.material:material:1.1.0'
|
||||||
|
|
||||||
|
//noinspection GradleDependency - because they messed up their version numbering
|
||||||
implementation "commons-codec:commons-codec:1.14"
|
implementation "commons-codec:commons-codec:1.14"
|
||||||
implementation "com.github.aakira:expandable-layout:1.6.0"
|
implementation "com.github.aakira:expandable-layout:1.6.0"
|
||||||
implementation "com.heinrichreimersoftware:material-intro:2.0.0"
|
implementation "com.heinrichreimersoftware:material-intro:2.0.0"
|
||||||
|
@ -67,4 +77,8 @@ dependencies {
|
||||||
implementation "org.sufficientlysecure:openpgp-api:12.0"
|
implementation "org.sufficientlysecure:openpgp-api:12.0"
|
||||||
implementation "com.leinardi.android:speed-dial:3.1.1"
|
implementation "com.leinardi.android:speed-dial:3.1.1"
|
||||||
implementation "com.mikepenz:aboutlibraries:6.2.3"
|
implementation "com.mikepenz:aboutlibraries:6.2.3"
|
||||||
|
|
||||||
|
androidTestImplementation "androidx.test.espresso:espresso-core:3.2.0"
|
||||||
|
|
||||||
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
@ -23,14 +23,14 @@
|
||||||
|
|
||||||
package org.shadowice.flocke.andotp;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.test.ApplicationTestCase;
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import org.apache.commons.codec.DecoderException;
|
import org.apache.commons.codec.DecoderException;
|
||||||
import org.apache.commons.codec.binary.Base32;
|
import org.apache.commons.codec.binary.Base32;
|
||||||
import org.apache.commons.codec.binary.Hex;
|
import org.apache.commons.codec.binary.Hex;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
import org.junit.Test;
|
||||||
import org.shadowice.flocke.andotp.Database.Entry;
|
import org.shadowice.flocke.andotp.Database.Entry;
|
||||||
import org.shadowice.flocke.andotp.Utilities.Constants;
|
import org.shadowice.flocke.andotp.Utilities.Constants;
|
||||||
import org.shadowice.flocke.andotp.Utilities.DatabaseHelper;
|
import org.shadowice.flocke.andotp.Utilities.DatabaseHelper;
|
||||||
|
@ -58,12 +58,12 @@ import javax.crypto.SecretKey;
|
||||||
import javax.crypto.spec.IvParameterSpec;
|
import javax.crypto.spec.IvParameterSpec;
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
|
|
||||||
public class ApplicationTest extends ApplicationTestCase<Application> {
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public ApplicationTest() {
|
public class ApplicationTest {
|
||||||
super(Application.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testTOTPCalculation(){
|
public void testTOTPCalculation(){
|
||||||
// Test Vectors from https://tools.ietf.org/html/rfc6238
|
// Test Vectors from https://tools.ietf.org/html/rfc6238
|
||||||
byte[] keySHA1 = "12345678901234567890".getBytes(StandardCharsets.US_ASCII);
|
byte[] keySHA1 = "12345678901234567890".getBytes(StandardCharsets.US_ASCII);
|
||||||
|
@ -95,6 +95,7 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
assertEquals(47863826, TokenCalculator.TOTP_RFC6238(keySHA512, TokenCalculator.TOTP_DEFAULT_PERIOD, 20000000000L, 8, TokenCalculator.HashAlgorithm.SHA512));
|
assertEquals(47863826, TokenCalculator.TOTP_RFC6238(keySHA512, TokenCalculator.TOTP_DEFAULT_PERIOD, 20000000000L, 8, TokenCalculator.HashAlgorithm.SHA512));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testHOTPCalculation() {
|
public void testHOTPCalculation() {
|
||||||
// Test cases from https://tools.ietf.org/html/rfc4226
|
// Test cases from https://tools.ietf.org/html/rfc4226
|
||||||
byte[] keySHA1 = "12345678901234567890".getBytes(StandardCharsets.US_ASCII);
|
byte[] keySHA1 = "12345678901234567890".getBytes(StandardCharsets.US_ASCII);
|
||||||
|
@ -111,19 +112,21 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
assertEquals("520489", TokenCalculator.HOTP(keySHA1, 9, 6, TokenCalculator.HashAlgorithm.SHA1));
|
assertEquals("520489", TokenCalculator.HOTP(keySHA1, 9, 6, TokenCalculator.HashAlgorithm.SHA1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testEntry() throws Exception {
|
public void testEntry() throws Exception {
|
||||||
byte secret[] = "Das System ist sicher".getBytes();
|
byte secret[] = "Das System ist sicher".getBytes();
|
||||||
String label = "5 von 5 Sterne";
|
String label = "5 von 5 Sterne";
|
||||||
int period = 30;
|
int period = 30;
|
||||||
|
|
||||||
String s = "{\"secret\":\"" + new String(new Base32().encode(secret)) + "\"," +
|
String s = "{\"secret\":\"" + new String(new Base32().encode(secret)) + "\"," +
|
||||||
|
"\"issuer\":\"\"," +
|
||||||
"\"label\":\"" + label + "\"," +
|
"\"label\":\"" + label + "\"," +
|
||||||
"\"digits\":6," +
|
"\"digits\":6," +
|
||||||
"\"type\":\"TOTP\"," +
|
"\"type\":\"TOTP\"," +
|
||||||
"\"algorithm\":\"SHA1\"," +
|
"\"algorithm\":\"SHA1\"," +
|
||||||
"\"thumbnail\":\"Default\"," +
|
"\"thumbnail\":\"Default\"," +
|
||||||
"\"last_used\":0," +
|
"\"last_used\":0," +
|
||||||
|
"\"used_frequency\":0," +
|
||||||
"\"period\":" + Integer.toString(period) + "," +
|
"\"period\":" + Integer.toString(period) + "," +
|
||||||
"\"tags\":[\"test1\",\"test2\"]}";
|
"\"tags\":[\"test1\",\"test2\"]}";
|
||||||
|
|
||||||
|
@ -139,7 +142,7 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testEntryURL() throws Exception {
|
public void testEntryURL() throws Exception {
|
||||||
try {
|
try {
|
||||||
new Entry("DON'T CARE");
|
new Entry("DON'T CARE");
|
||||||
|
@ -168,13 +171,19 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Entry entry = new Entry("otpauth://totp/ACME%20Co:john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&ALGORITHM=SHA1&digits=6&period=30");
|
Entry entry = new Entry("otpauth://totp/ACME%20Co:john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&ALGORITHM=SHA1&digits=6&period=30");
|
||||||
assertEquals("ACME Co - ACME Co:john.doe@email.com", entry.getLabel());
|
assertEquals("john.doe@email.com", entry.getLabel());
|
||||||
|
|
||||||
|
Entry entry2 = new Entry("otpauth://totp/ :john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&ALGORITHM=SHA1&digits=6&period=30");
|
||||||
|
assertEquals(":john.doe@email.com", entry2.getLabel());
|
||||||
|
|
||||||
|
Entry entry3 = new Entry("otpauth://totp/ :john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=%20&ALGORITHM=SHA1&digits=6&period=30");
|
||||||
|
assertEquals("john.doe@email.com", entry3.getLabel());
|
||||||
|
|
||||||
assertEquals("HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ", new String(new Base32().encode(entry.getSecret())));
|
assertEquals("HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ", new String(new Base32().encode(entry.getSecret())));
|
||||||
|
|
||||||
|
|
||||||
entry = new Entry("otpauth://totp/ACME%20Co:john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&ALGORITHM=SHA1&digits=6&period=30&tags=test1&tags=test2");
|
entry = new Entry("otpauth://totp/ACME%20Co:john.doe@email.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&ALGORITHM=SHA1&digits=6&period=30&tags=test1&tags=test2");
|
||||||
assertEquals("ACME Co - ACME Co:john.doe@email.com", entry.getLabel());
|
assertEquals("john.doe@email.com", entry.getLabel());
|
||||||
|
|
||||||
assertEquals("HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ", new String(new Base32().encode(entry.getSecret())));
|
assertEquals("HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ", new String(new Base32().encode(entry.getSecret())));
|
||||||
String[] tags = new String[]{"test1", "test2"};
|
String[] tags = new String[]{"test1", "test2"};
|
||||||
|
@ -182,8 +191,9 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
assertTrue(Arrays.equals(tags, entry.getTags().toArray(new String[entry.getTags().size()])));
|
assertTrue(Arrays.equals(tags, entry.getTags().toArray(new String[entry.getTags().size()])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testSettingsHelper() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException {
|
public void testSettingsHelper() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException {
|
||||||
Context context = getContext();
|
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||||
|
|
||||||
final KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
|
final KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
|
||||||
keyStore.load(null);
|
keyStore.load(null);
|
||||||
|
@ -216,6 +226,7 @@ public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||||
new File(context.getFilesDir() + "/" + Constants.FILENAME_ENCRYPTED_KEY).delete();
|
new File(context.getFilesDir() + "/" + Constants.FILENAME_ENCRYPTED_KEY).delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testEncryptionHelper() throws NoSuchPaddingException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, UnsupportedEncodingException, InvalidAlgorithmParameterException, DecoderException {
|
public void testEncryptionHelper() throws NoSuchPaddingException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, UnsupportedEncodingException, InvalidAlgorithmParameterException, DecoderException {
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,6 @@
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
package="org.shadowice.flocke.andotp">
|
package="org.shadowice.flocke.andotp">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:backupAgent=".Utilities.BackupAgent"
|
android:backupAgent=".Utilities.BackupAgent"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -23,6 +23,7 @@
|
||||||
package org.shadowice.flocke.andotp.Activities;
|
package org.shadowice.flocke.andotp.Activities;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import com.google.android.material.textfield.TextInputEditText;
|
import com.google.android.material.textfield.TextInputEditText;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
@ -92,6 +93,9 @@ public class AuthenticateActivity extends ThemedActivity
|
||||||
if (settings.getBlockAccessibility())
|
if (settings.getBlockAccessibility())
|
||||||
passwordLayout.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
|
passwordLayout.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && settings.getBlockAutofill())
|
||||||
|
passwordLayout.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
|
||||||
|
|
||||||
passwordLabel.setText(labelMsg);
|
passwordLabel.setText(labelMsg);
|
||||||
|
|
||||||
authMethod = settings.getAuthMethod();
|
authMethod = settings.getAuthMethod();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -22,20 +22,16 @@
|
||||||
|
|
||||||
package org.shadowice.flocke.andotp.Activities;
|
package org.shadowice.flocke.andotp.Activities;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentSender;
|
import android.content.IntentSender;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.app.ActivityCompat;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -117,7 +113,7 @@ public class BackupActivity extends BaseActivity {
|
||||||
restorePlain.setOnClickListener(new View.OnClickListener() {
|
restorePlain.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_READ_IMPORT_PLAIN);
|
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -137,21 +133,21 @@ public class BackupActivity extends BaseActivity {
|
||||||
backupCrypt.setOnClickListener(new View.OnClickListener() {
|
backupCrypt.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT);
|
showSaveFileSelector(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
restoreCrypt.setOnClickListener(new View.OnClickListener() {
|
restoreCrypt.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT, Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT);
|
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
restoreCryptOld.setOnClickListener(new View.OnClickListener() {
|
restoreCryptOld.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD, Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD);
|
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -179,37 +175,19 @@ public class BackupActivity extends BaseActivity {
|
||||||
backupPGP.setOnClickListener(new View.OnClickListener() {
|
backupPGP.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP);
|
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
restorePGP.setOnClickListener(new View.OnClickListener() {
|
restorePGP.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
openFileWithPermissions(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP, Constants.PERMISSIONS_BACKUP_READ_IMPORT_PGP);
|
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
replace = v.findViewById(R.id.backup_replace);
|
replace = v.findViewById(R.id.backup_replace);
|
||||||
|
|
||||||
if (! settings.getNewBackupFormatDialogShown()) {
|
|
||||||
showNewBackupInfo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showNewBackupInfo() {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
||||||
builder.setTitle(R.string.backup_new_format_dialog_title)
|
|
||||||
.setMessage(R.string.backup_new_format_dialog_msg)
|
|
||||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {
|
|
||||||
settings.setNewBackupFormatDialogShown(true);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.create()
|
|
||||||
.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// End with a result
|
// End with a result
|
||||||
|
@ -241,56 +219,6 @@ public class BackupActivity extends BaseActivity {
|
||||||
pgpServiceConnection.unbindFromService();
|
pgpServiceConnection.unbindFromService();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the result from permission requests
|
|
||||||
@Override
|
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
||||||
if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_PLAIN) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showSaveFileSelector(Constants.BACKUP_MIMETYPE_CRYPT, Constants.BackupType.ENCRYPTED, Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_READ_IMPORT_PGP) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else if (requestCode == Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PGP) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PGP, Constants.BackupType.OPEN_PGP, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the result from external activities
|
// Get the result from external activities
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||||
|
@ -332,7 +260,6 @@ public class BackupActivity extends BaseActivity {
|
||||||
/* Generic functions for all backup/restore options */
|
/* Generic functions for all backup/restore options */
|
||||||
|
|
||||||
private void showOpenFileSelector(int intentId) {
|
private void showOpenFileSelector(int intentId) {
|
||||||
if (settings.getBackupAsk() || settings.getIsAppendingDateTimeToBackups()) {
|
|
||||||
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
|
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
|
||||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
intent.setType("*/*");
|
intent.setType("*/*");
|
||||||
|
@ -352,16 +279,6 @@ public class BackupActivity extends BaseActivity {
|
||||||
Log.d(TAG, "Failed to use ACTION_GET_CONTENT, no matching activity found!");
|
Log.d(TAG, "Failed to use ACTION_GET_CONTENT, no matching activity found!");
|
||||||
Toast.makeText(this, R.string.backup_toast_file_selection_failed, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.backup_toast_file_selection_failed, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_PLAIN)
|
|
||||||
doRestorePlain(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PLAIN));
|
|
||||||
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT)
|
|
||||||
doRestoreCrypt(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_CRYPT), false);
|
|
||||||
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD)
|
|
||||||
doRestoreCrypt(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_CRYPT), true);
|
|
||||||
else if (intentId == Constants.INTENT_BACKUP_OPEN_DOCUMENT_PGP)
|
|
||||||
restoreEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), Constants.BACKUP_FILENAME_PGP), null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showSaveFileSelector(String mimeType, Constants.BackupType backupType, int intentId) {
|
private void showSaveFileSelector(String mimeType, Constants.BackupType backupType, int intentId) {
|
||||||
|
@ -372,32 +289,32 @@ public class BackupActivity extends BaseActivity {
|
||||||
intent.putExtra(Intent.EXTRA_TITLE, BackupHelper.backupFilename(this, backupType));
|
intent.putExtra(Intent.EXTRA_TITLE, BackupHelper.backupFilename(this, backupType));
|
||||||
startActivityForResult(intent, intentId);
|
startActivityForResult(intent, intentId);
|
||||||
} else {
|
} else {
|
||||||
if (Tools.mkdir(settings.getBackupDir())) {
|
if (settings.isBackupLocationSet()) {
|
||||||
if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN)
|
if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN) {
|
||||||
doBackupPlain(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.PLAIN_TEXT)));
|
BackupHelper.BackupFile plainBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.PLAIN_TEXT);
|
||||||
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT)
|
|
||||||
doBackupCrypt(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.ENCRYPTED)));
|
|
||||||
else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP)
|
|
||||||
backupEncryptedWithPGP(Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(this, Constants.BackupType.OPEN_PGP)), null);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_mkdir_failed, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void openFileWithPermissions(int intentId, int requestId) {
|
if (plainBackupFile.file != null)
|
||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
doBackupPlain(plainBackupFile.file.getUri());
|
||||||
showOpenFileSelector(intentId);
|
else
|
||||||
} else {
|
Toast.makeText(this, plainBackupFile.errorMessage, Toast.LENGTH_LONG).show();
|
||||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, requestId);
|
} else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_CRYPT) {
|
||||||
}
|
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
|
||||||
}
|
|
||||||
|
|
||||||
private void saveFileWithPermissions(String mimeType, Constants.BackupType backupType, int intentId, int requestId) {
|
if (cryptBackupFile.file != null)
|
||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
doBackupCrypt(cryptBackupFile.file.getUri());
|
||||||
showSaveFileSelector(mimeType, backupType, intentId);
|
else
|
||||||
|
Toast.makeText(this, cryptBackupFile.errorMessage, Toast.LENGTH_LONG).show();
|
||||||
|
} else if (intentId == Constants.INTENT_BACKUP_SAVE_DOCUMENT_PGP) {
|
||||||
|
BackupHelper.BackupFile pgpBackupFile = BackupHelper.backupFile(this, settings.getBackupLocation(), Constants.BackupType.OPEN_PGP);
|
||||||
|
|
||||||
|
if (pgpBackupFile.file != null)
|
||||||
|
backupEncryptedWithPGP(pgpBackupFile.file.getUri(), null);
|
||||||
|
else
|
||||||
|
Toast.makeText(this, pgpBackupFile.errorMessage, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestId);
|
Toast.makeText(this, R.string.backup_toast_no_location, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +376,7 @@ public class BackupActivity extends BaseActivity {
|
||||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
saveFileWithPermissions(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN, Constants.PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN);
|
showSaveFileSelector(Constants.BACKUP_MIMETYPE_PLAIN, Constants.BackupType.PLAIN_TEXT, Constants.INTENT_BACKUP_SAVE_DOCUMENT_PLAIN);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
|
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
|
||||||
|
@ -477,7 +394,7 @@ public class BackupActivity extends BaseActivity {
|
||||||
String password = settings.getBackupPasswordEnc();
|
String password = settings.getBackupPasswordEnc();
|
||||||
|
|
||||||
if (password.isEmpty()) {
|
if (password.isEmpty()) {
|
||||||
PasswordEntryDialog pwDialog = new PasswordEntryDialog(this, PasswordEntryDialog.Mode.ENTER, settings.getBlockAccessibility(), new PasswordEntryDialog.PasswordEnteredCallback() {
|
PasswordEntryDialog pwDialog = new PasswordEntryDialog(this, PasswordEntryDialog.Mode.ENTER, settings.getBlockAccessibility(), settings.getBlockAutofill(), new PasswordEntryDialog.PasswordEnteredCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onPasswordEntered(String newPassword) {
|
public void onPasswordEntered(String newPassword) {
|
||||||
doRestoreCryptWithPassword(uri, newPassword, old_format);
|
doRestoreCryptWithPassword(uri, newPassword, old_format);
|
||||||
|
@ -533,7 +450,7 @@ public class BackupActivity extends BaseActivity {
|
||||||
String password = settings.getBackupPasswordEnc();
|
String password = settings.getBackupPasswordEnc();
|
||||||
|
|
||||||
if (password.isEmpty()) {
|
if (password.isEmpty()) {
|
||||||
PasswordEntryDialog pwDialog = new PasswordEntryDialog(this, PasswordEntryDialog.Mode.UPDATE, settings.getBlockAccessibility(), new PasswordEntryDialog.PasswordEnteredCallback() {
|
PasswordEntryDialog pwDialog = new PasswordEntryDialog(this, PasswordEntryDialog.Mode.UPDATE, settings.getBlockAccessibility(), settings.getBlockAutofill(), new PasswordEntryDialog.PasswordEnteredCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onPasswordEntered(String newPassword) {
|
public void onPasswordEntered(String newPassword) {
|
||||||
doBackupCryptWithPassword(uri, newPassword);
|
doBackupCryptWithPassword(uri, newPassword);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 Jakob Nixdorf
|
* Copyright (C) 2018-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -27,10 +27,6 @@ import android.animation.ObjectAnimator;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.google.android.material.textfield.TextInputEditText;
|
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -47,8 +43,12 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputEditText;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.heinrichreimersoftware.materialintro.app.IntroActivity;
|
import com.heinrichreimersoftware.materialintro.app.IntroActivity;
|
||||||
import com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener;
|
|
||||||
import com.heinrichreimersoftware.materialintro.app.SlideFragment;
|
import com.heinrichreimersoftware.materialintro.app.SlideFragment;
|
||||||
import com.heinrichreimersoftware.materialintro.slide.FragmentSlide;
|
import com.heinrichreimersoftware.materialintro.slide.FragmentSlide;
|
||||||
import com.heinrichreimersoftware.materialintro.slide.SimpleSlide;
|
import com.heinrichreimersoftware.materialintro.slide.SimpleSlide;
|
||||||
|
@ -87,12 +87,7 @@ public class IntroScreenActivity extends IntroActivity {
|
||||||
encryptionFragment = new EncryptionFragment();
|
encryptionFragment = new EncryptionFragment();
|
||||||
authenticationFragment = new AuthenticationFragment();
|
authenticationFragment = new AuthenticationFragment();
|
||||||
|
|
||||||
encryptionFragment.setEncryptionChangedCallback(new EncryptionFragment.EncryptionChangedCallback() {
|
encryptionFragment.setEncryptionChangedCallback(newEncryptionType -> authenticationFragment.updateEncryptionType(newEncryptionType));
|
||||||
@Override
|
|
||||||
public void onEncryptionChanged(Constants.EncryptionType newEncryptionType) {
|
|
||||||
authenticationFragment.updateEncryptionType(newEncryptionType);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
setButtonBackFunction(BUTTON_BACK_FUNCTION_BACK);
|
setButtonBackFunction(BUTTON_BACK_FUNCTION_BACK);
|
||||||
|
|
||||||
|
@ -132,12 +127,9 @@ public class IntroScreenActivity extends IntroActivity {
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
addOnNavigationBlockedListener(new OnNavigationBlockedListener() {
|
addOnNavigationBlockedListener((position, direction) -> {
|
||||||
@Override
|
|
||||||
public void onNavigationBlocked(int position, int direction) {
|
|
||||||
if (position == 2)
|
if (position == 2)
|
||||||
authenticationFragment.flashWarning();
|
authenticationFragment.flashWarning();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
|
@ -363,50 +355,11 @@ public class IntroScreenActivity extends IntroActivity {
|
||||||
Constants.AuthMethod authMethod = selectionMapping.get(i);
|
Constants.AuthMethod authMethod = selectionMapping.get(i);
|
||||||
|
|
||||||
if (authMethod == Constants.AuthMethod.PASSWORD) {
|
if (authMethod == Constants.AuthMethod.PASSWORD) {
|
||||||
credentialsLayout.setVisibility(View.VISIBLE);
|
setupForPasswordInput();
|
||||||
|
|
||||||
passwordLayout.setHint(getString(R.string.settings_hint_password));
|
|
||||||
passwordConfirm.setHint(R.string.settings_hint_password_confirm);
|
|
||||||
|
|
||||||
passwordInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
|
||||||
passwordConfirm.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
|
||||||
|
|
||||||
passwordInput.setTransformationMethod(new PasswordTransformationMethod());
|
|
||||||
passwordConfirm.setTransformationMethod(new PasswordTransformationMethod());
|
|
||||||
|
|
||||||
minLength = Constants.AUTH_MIN_PASSWORD_LENGTH;
|
|
||||||
lengthWarning = getString(R.string.settings_label_short_password, minLength);
|
|
||||||
noPasswordWarning = getString(R.string.intro_slide3_warn_no_password);
|
|
||||||
confirmPasswordWarning = getString(R.string.intro_slide3_warn_confirm_password);
|
|
||||||
|
|
||||||
if (getIntroActivity().getCurrentSlidePosition() == slidePos) {
|
|
||||||
passwordInput.requestFocus();
|
|
||||||
UIHelper.showKeyboard(getContext(), passwordInput);
|
|
||||||
}
|
|
||||||
} else if (authMethod == Constants.AuthMethod.PIN) {
|
} else if (authMethod == Constants.AuthMethod.PIN) {
|
||||||
credentialsLayout.setVisibility(View.VISIBLE);
|
setupForPinInput();
|
||||||
|
|
||||||
passwordLayout.setHint(getString(R.string.settings_hint_pin));
|
|
||||||
passwordConfirm.setHint(R.string.settings_hint_pin_confirm);
|
|
||||||
|
|
||||||
passwordInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
|
|
||||||
passwordConfirm.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
|
|
||||||
|
|
||||||
passwordInput.setTransformationMethod(new PasswordTransformationMethod());
|
|
||||||
passwordConfirm.setTransformationMethod(new PasswordTransformationMethod());
|
|
||||||
|
|
||||||
minLength = Constants.AUTH_MIN_PIN_LENGTH;
|
|
||||||
lengthWarning = getString(R.string.settings_label_short_pin, minLength);
|
|
||||||
noPasswordWarning = getString(R.string.intro_slide3_warn_no_pin);
|
|
||||||
confirmPasswordWarning = getString(R.string.intro_slide3_warn_confirm_pin);
|
|
||||||
|
|
||||||
if (getIntroActivity().getCurrentSlidePosition() == slidePos) {
|
|
||||||
passwordInput.requestFocus();
|
|
||||||
UIHelper.showKeyboard(getContext(), passwordInput);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
credentialsLayout.setVisibility(View.INVISIBLE);
|
credentialsLayout.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
UIHelper.hideKeyboard(getIntroActivity(), root);
|
UIHelper.hideKeyboard(getIntroActivity(), root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,6 +371,78 @@ public class IntroScreenActivity extends IntroActivity {
|
||||||
updateNavigation();
|
updateNavigation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setupForPasswordInput() {
|
||||||
|
credentialsLayout.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
passwordLayout.setHint(getString(R.string.settings_hint_password));
|
||||||
|
passwordConfirm.setHint(R.string.settings_hint_password_confirm);
|
||||||
|
|
||||||
|
passwordInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||||
|
passwordConfirm.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||||
|
|
||||||
|
setPasswordTransformationMethod();
|
||||||
|
|
||||||
|
minLength = Constants.AUTH_MIN_PASSWORD_LENGTH;
|
||||||
|
lengthWarning = getString(R.string.settings_label_short_password, minLength);
|
||||||
|
noPasswordWarning = getString(R.string.intro_slide3_warn_no_password);
|
||||||
|
confirmPasswordWarning = getString(R.string.intro_slide3_warn_confirm_password);
|
||||||
|
|
||||||
|
focusOnPasswordInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setPasswordTransformationMethod() {
|
||||||
|
passwordLayout.setEndIconOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
boolean wasShowingPassword = passwordInput.getTransformationMethod() instanceof PasswordTransformationMethod;
|
||||||
|
// Dispatch password visibility change to both password and confirm inputs
|
||||||
|
dispatchPasswordVisibilityChange(passwordInput, wasShowingPassword);
|
||||||
|
dispatchPasswordVisibilityChange(passwordConfirm, wasShowingPassword);
|
||||||
|
passwordLayout.refreshDrawableState();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
passwordInput.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||||
|
passwordConfirm.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dispatchPasswordVisibilityChange(EditText editText, boolean wasShowingPassword) {
|
||||||
|
final int selection = editText.getSelectionEnd();
|
||||||
|
if (wasShowingPassword) {
|
||||||
|
editText.setTransformationMethod(null);
|
||||||
|
} else {
|
||||||
|
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||||
|
}
|
||||||
|
if (selection >= 0) {
|
||||||
|
editText.setSelection(selection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void focusOnPasswordInput() {
|
||||||
|
if (getIntroActivity().getCurrentSlidePosition() == slidePos) {
|
||||||
|
passwordInput.requestFocus();
|
||||||
|
UIHelper.showKeyboard(getContext(), passwordInput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupForPinInput() {
|
||||||
|
credentialsLayout.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
passwordLayout.setHint(getString(R.string.settings_hint_pin));
|
||||||
|
passwordConfirm.setHint(R.string.settings_hint_pin_confirm);
|
||||||
|
|
||||||
|
passwordInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
|
||||||
|
passwordConfirm.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
|
||||||
|
|
||||||
|
setPasswordTransformationMethod();
|
||||||
|
|
||||||
|
minLength = Constants.AUTH_MIN_PIN_LENGTH;
|
||||||
|
lengthWarning = getString(R.string.settings_label_short_pin, minLength);
|
||||||
|
noPasswordWarning = getString(R.string.intro_slide3_warn_no_pin);
|
||||||
|
confirmPasswordWarning = getString(R.string.intro_slide3_warn_confirm_pin);
|
||||||
|
|
||||||
|
focusOnPasswordInput();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNothingSelected(AdapterView<?> adapterView) {
|
public void onNothingSelected(AdapterView<?> adapterView) {
|
||||||
}
|
}
|
||||||
|
@ -474,10 +499,7 @@ public class IntroScreenActivity extends IntroActivity {
|
||||||
} else if (authMethod == Constants.AuthMethod.DEVICE) {
|
} else if (authMethod == Constants.AuthMethod.DEVICE) {
|
||||||
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
|
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
|
if (! km.isKeyguardSecure()) {
|
||||||
updateWarning(R.string.settings_toast_auth_device_pre_lollipop);
|
|
||||||
return false;
|
|
||||||
} else if (! km.isKeyguardSecure()) {
|
|
||||||
updateWarning(R.string.settings_toast_auth_device_not_secure);
|
updateWarning(R.string.settings_toast_auth_device_not_secure);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
@ -23,22 +23,17 @@
|
||||||
|
|
||||||
package org.shadowice.flocke.andotp.Activities;
|
package org.shadowice.flocke.andotp.Activities;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.app.ActivityCompat;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.core.view.GravityCompat;
|
import androidx.core.view.GravityCompat;
|
||||||
import androidx.drawerlayout.widget.DrawerLayout;
|
import androidx.drawerlayout.widget.DrawerLayout;
|
||||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||||
|
@ -106,6 +101,9 @@ public class MainActivity extends BaseActivity
|
||||||
private EncryptionType encryptionType = EncryptionType.KEYSTORE;
|
private EncryptionType encryptionType = EncryptionType.KEYSTORE;
|
||||||
private boolean requireAuthentication = false;
|
private boolean requireAuthentication = false;
|
||||||
|
|
||||||
|
private boolean recreateActivity = false;
|
||||||
|
private boolean cacheEncKey = false;
|
||||||
|
|
||||||
private Handler handler;
|
private Handler handler;
|
||||||
private Runnable handlerTask;
|
private Runnable handlerTask;
|
||||||
|
|
||||||
|
@ -136,7 +134,7 @@ public class MainActivity extends BaseActivity
|
||||||
|
|
||||||
if (authMethod == AuthMethod.DEVICE) {
|
if (authMethod == AuthMethod.DEVICE) {
|
||||||
KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
|
KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP && km.isKeyguardSecure()) {
|
if (km.isKeyguardSecure()) {
|
||||||
Intent authIntent = km.createConfirmDeviceCredentialIntent(getString(R.string.dialog_title_auth), getString(R.string.dialog_msg_auth));
|
Intent authIntent = km.createConfirmDeviceCredentialIntent(getString(R.string.dialog_title_auth), getString(R.string.dialog_msg_auth));
|
||||||
startActivityForResult(authIntent, Constants.INTENT_MAIN_AUTHENTICATE);
|
startActivityForResult(authIntent, Constants.INTENT_MAIN_AUTHENTICATE);
|
||||||
}
|
}
|
||||||
|
@ -210,6 +208,8 @@ public class MainActivity extends BaseActivity
|
||||||
speedDial = findViewById(R.id.speedDial);
|
speedDial = findViewById(R.id.speedDial);
|
||||||
speedDial.inflate(R.menu.menu_fab);
|
speedDial.inflate(R.menu.menu_fab);
|
||||||
|
|
||||||
|
speedDial.getMainFab().setContentDescription(getString(R.string.button_add));
|
||||||
|
|
||||||
speedDial.setOnActionSelectedListener(new SpeedDialView.OnActionSelectedListener() {
|
speedDial.setOnActionSelectedListener(new SpeedDialView.OnActionSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onActionSelected(SpeedDialActionItem speedDialActionItem) {
|
public boolean onActionSelected(SpeedDialActionItem speedDialActionItem) {
|
||||||
|
@ -221,7 +221,7 @@ public class MainActivity extends BaseActivity
|
||||||
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
||||||
return false;
|
return false;
|
||||||
case R.id.fabScanQRFromImage:
|
case R.id.fabScanQRFromImage:
|
||||||
openFileWithPermissions(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
|
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
|
||||||
return false;
|
return false;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@ -229,6 +229,22 @@ public class MainActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
speedDial.setOnChangeListener(new SpeedDialView.OnChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onMainActionSelected() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onToggleChanged(boolean isOpen) {
|
||||||
|
if (isOpen) {
|
||||||
|
speedDial.getMainFab().setContentDescription(getString(R.string.button_close_menu));
|
||||||
|
} else {
|
||||||
|
speedDial.getMainFab().setContentDescription(getString(R.string.button_add));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
final ProgressBar progressBar = findViewById(R.id.progressBar);
|
final ProgressBar progressBar = findViewById(R.id.progressBar);
|
||||||
progressBar.setVisibility(settings.isHideGlobalTimeoutEnabled() ? View.GONE : View.VISIBLE);
|
progressBar.setVisibility(settings.isHideGlobalTimeoutEnabled() ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
|
@ -241,6 +257,14 @@ public class MainActivity extends BaseActivity
|
||||||
tagsDrawerAdapter = new TagsAdapter(this, new HashMap<String, Boolean>());
|
tagsDrawerAdapter = new TagsAdapter(this, new HashMap<String, Boolean>());
|
||||||
adapter = new EntriesCardAdapter(this, tagsDrawerAdapter);
|
adapter = new EntriesCardAdapter(this, tagsDrawerAdapter);
|
||||||
|
|
||||||
|
if (savedInstanceState != null) {
|
||||||
|
byte[] encKey = savedInstanceState.getByteArray("encKey");
|
||||||
|
if (encKey != null) {
|
||||||
|
adapter.setEncryptionKey(EncryptionHelper.generateSymmetricKey(encKey));
|
||||||
|
requireAuthentication = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
recList.setAdapter(adapter);
|
recList.setAdapter(adapter);
|
||||||
|
|
||||||
touchHelperCallback = new SimpleItemTouchHelperCallback(adapter);
|
touchHelperCallback = new SimpleItemTouchHelperCallback(adapter);
|
||||||
|
@ -306,7 +330,7 @@ public class MainActivity extends BaseActivity
|
||||||
if (intentAction.equals(INTENT_SCAN_QR)) {
|
if (intentAction.equals(INTENT_SCAN_QR)) {
|
||||||
scanQRCode();
|
scanQRCode();
|
||||||
} else if (intentAction.equals(INTENT_IMPORT_QR)) {
|
} else if (intentAction.equals(INTENT_IMPORT_QR)) {
|
||||||
openFileWithPermissions(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
|
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
|
||||||
} else if (intentAction.equals(INTENT_ENTER_DETAILS)) {
|
} else if (intentAction.equals(INTENT_ENTER_DETAILS)) {
|
||||||
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
||||||
} else if (intentAction.equals(Intent.ACTION_VIEW)) {
|
} else if (intentAction.equals(Intent.ACTION_VIEW)) {
|
||||||
|
@ -393,6 +417,11 @@ public class MainActivity extends BaseActivity
|
||||||
protected void onSaveInstanceState(Bundle outState) {
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
outState.putString("filterString", filterString);
|
outState.putString("filterString", filterString);
|
||||||
|
|
||||||
|
if (cacheEncKey) {
|
||||||
|
outState.putByteArray("encKey", adapter.getEncryptionKey().getEncoded());
|
||||||
|
cacheEncKey = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
|
||||||
|
@ -412,7 +441,7 @@ public class MainActivity extends BaseActivity
|
||||||
key.equals(getString(R.string.settings_key_label_highlight_token)) ||
|
key.equals(getString(R.string.settings_key_label_highlight_token)) ||
|
||||||
key.equals(getString(R.string.settings_key_card_layout)) ||
|
key.equals(getString(R.string.settings_key_card_layout)) ||
|
||||||
key.equals(getString(R.string.settings_key_hide_global_timeout))) {
|
key.equals(getString(R.string.settings_key_hide_global_timeout))) {
|
||||||
recreate();
|
recreateActivity = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,15 +472,15 @@ public class MainActivity extends BaseActivity
|
||||||
|
|
||||||
if (encryptionChanged)
|
if (encryptionChanged)
|
||||||
updateEncryption(newKey);
|
updateEncryption(newKey);
|
||||||
|
|
||||||
|
if (recreateActivity) {
|
||||||
|
cacheEncKey = true;
|
||||||
|
recreate();
|
||||||
|
}
|
||||||
} else if (requestCode == Constants.INTENT_MAIN_AUTHENTICATE) {
|
} else if (requestCode == Constants.INTENT_MAIN_AUTHENTICATE) {
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
Toast.makeText(getBaseContext(), R.string.toast_auth_failed_fatal, Toast.LENGTH_LONG).show();
|
Toast.makeText(getBaseContext(), R.string.toast_auth_failed_fatal, Toast.LENGTH_LONG).show();
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
finishAndRemoveTask();
|
finishAndRemoveTask();
|
||||||
} else {
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
requireAuthentication = false;
|
requireAuthentication = false;
|
||||||
|
|
||||||
|
@ -812,14 +841,6 @@ public class MainActivity extends BaseActivity
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openFileWithPermissions(int intentId){
|
|
||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(intentId);
|
|
||||||
} else {
|
|
||||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, Constants.PERMISSIONS_MAIN_QR_READ_IMAGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showOpenFileSelector(int intentId){
|
private void showOpenFileSelector(int intentId){
|
||||||
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
|
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
|
||||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
|
@ -827,19 +848,6 @@ public class MainActivity extends BaseActivity
|
||||||
startActivityForResult(intent, intentId);
|
startActivityForResult(intent, intentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
||||||
if (requestCode == Constants.PERMISSIONS_MAIN_QR_READ_IMAGE) {
|
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
showOpenFileSelector(Constants.INTENT_MAIN_QR_OPEN_IMAGE);
|
|
||||||
} else {
|
|
||||||
Toast.makeText(this, R.string.backup_toast_storage_permissions, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addQRCode(String result){
|
private void addQRCode(String result){
|
||||||
if(!TextUtils.isEmpty(result)) {
|
if(!TextUtils.isEmpty(result)) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017 Carlos Melero
|
* Copyright (C) 2017 Carlos Melero
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -27,6 +27,8 @@ import android.app.AlertDialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.EditTextPreference;
|
import android.preference.EditTextPreference;
|
||||||
|
@ -36,6 +38,8 @@ import android.preference.PreferenceCategory;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
|
||||||
|
import android.provider.DocumentsContract;
|
||||||
import android.view.ViewStub;
|
import android.view.ViewStub;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
@ -85,6 +89,15 @@ public class SettingsActivity extends BaseActivity
|
||||||
if (keyMaterial != null && keyMaterial.length > 0)
|
if (keyMaterial != null && keyMaterial.length > 0)
|
||||||
encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
|
encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
|
||||||
|
|
||||||
|
if (savedInstanceState != null) {
|
||||||
|
encryptionChanged = savedInstanceState.getBoolean(Constants.EXTRA_SETTINGS_ENCRYPTION_CHANGED, false);
|
||||||
|
|
||||||
|
byte[] encKey = savedInstanceState.getByteArray(Constants.EXTRA_SETTINGS_ENCRYPTION_KEY);
|
||||||
|
if (encKey != null) {
|
||||||
|
encryptionKey = EncryptionHelper.generateSymmetricKey(encKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fragment = new SettingsFragment();
|
fragment = new SettingsFragment();
|
||||||
|
|
||||||
getFragmentManager().beginTransaction()
|
getFragmentManager().beginTransaction()
|
||||||
|
@ -95,6 +108,14 @@ public class SettingsActivity extends BaseActivity
|
||||||
sharedPref.registerOnSharedPreferenceChangeListener(this);
|
sharedPref.registerOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
|
||||||
|
outState.putBoolean(Constants.EXTRA_SETTINGS_ENCRYPTION_CHANGED, encryptionChanged);
|
||||||
|
outState.putByteArray(Constants.EXTRA_SETTINGS_ENCRYPTION_KEY, encryptionKey.getEncoded());
|
||||||
|
}
|
||||||
|
|
||||||
public void finishWithResult() {
|
public void finishWithResult() {
|
||||||
Intent data = new Intent();
|
Intent data = new Intent();
|
||||||
|
|
||||||
|
@ -124,7 +145,8 @@ public class SettingsActivity extends BaseActivity
|
||||||
|
|
||||||
if (key.equals(getString(R.string.settings_key_theme)) ||
|
if (key.equals(getString(R.string.settings_key_theme)) ||
|
||||||
key.equals(getString(R.string.settings_key_locale)) ||
|
key.equals(getString(R.string.settings_key_locale)) ||
|
||||||
key.equals(getString(R.string.settings_key_special_features))) {
|
key.equals(getString(R.string.settings_key_special_features)) ||
|
||||||
|
key.equals(getString(R.string.settings_key_backup_location))) {
|
||||||
recreate();
|
recreate();
|
||||||
} else if(key.equals(getString(R.string.settings_key_encryption))) {
|
} else if(key.equals(getString(R.string.settings_key_encryption))) {
|
||||||
if (settings.getEncryption() != EncryptionType.PASSWORD) {
|
if (settings.getEncryption() != EncryptionType.PASSWORD) {
|
||||||
|
@ -146,11 +168,7 @@ public class SettingsActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fragment.useAutoBackup != null) {
|
fragment.updateAutoBackup();
|
||||||
fragment.useAutoBackup.setEnabled(BackupHelper.autoBackupType(this) == Constants.BackupType.ENCRYPTED);
|
|
||||||
if (!fragment.useAutoBackup.isEnabled())
|
|
||||||
fragment.useAutoBackup.setValue(Constants.AutoBackup.OFF.toString().toLowerCase(Locale.ENGLISH));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateNewEncryptionKey() {
|
private void generateNewEncryptionKey() {
|
||||||
|
@ -215,6 +233,19 @@ public class SettingsActivity extends BaseActivity
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void requestBackupAccess() {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
|
||||||
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
|
||||||
|
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
||||||
|
| Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
|
||||||
|
| Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
|
||||||
|
|
||||||
|
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && settings.isBackupLocationSet())
|
||||||
|
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, settings.getBackupLocation());
|
||||||
|
|
||||||
|
startActivityForResult(intent, Constants.INTENT_SETTINGS_BACKUP_LOCATION);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
@ -233,6 +264,13 @@ public class SettingsActivity extends BaseActivity
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, R.string.settings_toast_encryption_auth_failed, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.settings_toast_encryption_auth_failed, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
} else if (requestCode == Constants.INTENT_SETTINGS_BACKUP_LOCATION && resultCode == RESULT_OK) {
|
||||||
|
Uri treeUri = data.getData();
|
||||||
|
if (treeUri != null) {
|
||||||
|
final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
|
getContentResolver().takePersistableUriPermission(treeUri, takeFlags);
|
||||||
|
settings.setBackupLocation(treeUri);
|
||||||
|
}
|
||||||
} else if (fragment.pgpSigningKey.handleOnActivityResult(requestCode, resultCode, data)) {
|
} else if (fragment.pgpSigningKey.handleOnActivityResult(requestCode, resultCode, data)) {
|
||||||
// handled by OpenPgpKeyPreference
|
// handled by OpenPgpKeyPreference
|
||||||
return;
|
return;
|
||||||
|
@ -244,6 +282,7 @@ public class SettingsActivity extends BaseActivity
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
ListPreference encryption;
|
ListPreference encryption;
|
||||||
|
Preference backupLocation;
|
||||||
ListPreference useAutoBackup;
|
ListPreference useAutoBackup;
|
||||||
CheckBoxPreference useAndroidSync;
|
CheckBoxPreference useAndroidSync;
|
||||||
|
|
||||||
|
@ -273,6 +312,20 @@ public class SettingsActivity extends BaseActivity
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateAutoBackup() {
|
||||||
|
if (useAutoBackup != null) {
|
||||||
|
useAutoBackup.setEnabled(BackupHelper.autoBackupType(getActivity()) == Constants.BackupType.ENCRYPTED);
|
||||||
|
if (!useAutoBackup.isEnabled())
|
||||||
|
useAutoBackup.setValue(Constants.AutoBackup.OFF.toString().toLowerCase(Locale.ENGLISH));
|
||||||
|
|
||||||
|
if (useAutoBackup.isEnabled()) {
|
||||||
|
useAutoBackup.setSummary(R.string.settings_desc_auto_backup_password_enc);
|
||||||
|
} else {
|
||||||
|
useAutoBackup.setSummary(R.string.settings_desc_auto_backup_requirements);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -291,6 +344,15 @@ public class SettingsActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
CheckBoxPreference blockAutofill = (CheckBoxPreference) findPreference(getString(R.string.settings_key_block_autofill));
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
blockAutofill.setEnabled(true);
|
||||||
|
blockAutofill.setSummary(R.string.settings_desc_block_autofill);
|
||||||
|
} else {
|
||||||
|
blockAutofill.setEnabled(false);
|
||||||
|
blockAutofill.setSummary(R.string.settings_desc_block_autofill_android);
|
||||||
|
}
|
||||||
|
|
||||||
// Authentication
|
// Authentication
|
||||||
catSecurity = (PreferenceCategory) findPreference(getString(R.string.settings_key_cat_security));
|
catSecurity = (PreferenceCategory) findPreference(getString(R.string.settings_key_cat_security));
|
||||||
encryption = (ListPreference) findPreference(getString(R.string.settings_key_encryption));
|
encryption = (ListPreference) findPreference(getString(R.string.settings_key_encryption));
|
||||||
|
@ -325,6 +387,23 @@ public class SettingsActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Backup location
|
||||||
|
backupLocation = findPreference(getString(R.string.settings_key_backup_location));
|
||||||
|
|
||||||
|
if (settings.isBackupLocationSet()) {
|
||||||
|
backupLocation.setSummary(R.string.settings_desc_backup_location_set);
|
||||||
|
} else {
|
||||||
|
backupLocation.setSummary(R.string.settings_desc_backup_location);
|
||||||
|
}
|
||||||
|
|
||||||
|
backupLocation.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
((SettingsActivity) getActivity()).requestBackupAccess();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// OpenPGP
|
// OpenPGP
|
||||||
pgpProvider = (OpenPgpAppPreference) findPreference(getString(R.string.settings_key_openpgp_provider));
|
pgpProvider = (OpenPgpAppPreference) findPreference(getString(R.string.settings_key_openpgp_provider));
|
||||||
pgpEncryptionKey = (EditTextPreference) findPreference(getString(R.string.settings_key_openpgp_key_encrypt));
|
pgpEncryptionKey = (EditTextPreference) findPreference(getString(R.string.settings_key_openpgp_key_encrypt));
|
||||||
|
@ -354,9 +433,7 @@ public class SettingsActivity extends BaseActivity
|
||||||
});
|
});
|
||||||
|
|
||||||
useAutoBackup = (ListPreference)findPreference(getString(R.string.settings_key_auto_backup_password_enc));
|
useAutoBackup = (ListPreference)findPreference(getString(R.string.settings_key_auto_backup_password_enc));
|
||||||
useAutoBackup.setEnabled(BackupHelper.autoBackupType(getActivity()) == Constants.BackupType.ENCRYPTED);
|
updateAutoBackup();
|
||||||
if(!useAutoBackup.isEnabled())
|
|
||||||
useAutoBackup.setValue(Constants.AutoBackup.OFF.toString().toLowerCase(Locale.ENGLISH));
|
|
||||||
|
|
||||||
useAndroidSync = (CheckBoxPreference) findPreference(getString(R.string.settings_key_enable_android_backup_service));
|
useAndroidSync = (CheckBoxPreference) findPreference(getString(R.string.settings_key_enable_android_backup_service));
|
||||||
useAndroidSync.setEnabled(settings.getEncryption() == EncryptionType.PASSWORD);
|
useAndroidSync.setEnabled(settings.getEncryption() == EncryptionType.PASSWORD);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
@ -130,10 +130,10 @@ public class Entry {
|
||||||
}
|
}
|
||||||
|
|
||||||
String secret = uri.getQueryParameter("secret");
|
String secret = uri.getQueryParameter("secret");
|
||||||
String label = uri.getPath().substring(1);
|
|
||||||
|
|
||||||
String counter = uri.getQueryParameter("counter");
|
String counter = uri.getQueryParameter("counter");
|
||||||
String issuer = uri.getQueryParameter("issuer");
|
String issuer = uri.getQueryParameter("issuer");
|
||||||
|
String label = getStrippedLabel(issuer, uri.getPath().substring(1));
|
||||||
String period = uri.getQueryParameter("period");
|
String period = uri.getQueryParameter("period");
|
||||||
String digits = uri.getQueryParameter("digits");
|
String digits = uri.getQueryParameter("digits");
|
||||||
String algorithm = uri.getQueryParameter("algorithm");
|
String algorithm = uri.getQueryParameter("algorithm");
|
||||||
|
@ -235,7 +235,7 @@ public class Entry {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.thumbnail = EntryThumbnail.EntryThumbnails.valueOf(jsonObj.getString(JSON_THUMBNAIL));
|
this.thumbnail = EntryThumbnail.EntryThumbnails.valueOfIgnoreCase(jsonObj.getString(JSON_THUMBNAIL));
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
this.thumbnail = EntryThumbnail.EntryThumbnails.Default;
|
this.thumbnail = EntryThumbnail.EntryThumbnails.Default;
|
||||||
}
|
}
|
||||||
|
@ -533,4 +533,18 @@ public class Entry {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the label with issuer prefix removed (if present)
|
||||||
|
* @param issuer
|
||||||
|
* @param label
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getStrippedLabel(String issuer, String label) {
|
||||||
|
if (issuer == null || issuer.isEmpty() || !label.startsWith(issuer + ":")) {
|
||||||
|
return label.trim();
|
||||||
|
} else {
|
||||||
|
return label.substring(issuer.length() + 1).trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -277,28 +277,37 @@ public class ManualEntryDialog {
|
||||||
@Override
|
@Override
|
||||||
public void afterTextChanged(Editable editable) {
|
public void afterTextChanged(Editable editable) {
|
||||||
if ((TextUtils.isEmpty(labelInput.getText()) && TextUtils.isEmpty(issuerInput.getText())) ||
|
if ((TextUtils.isEmpty(labelInput.getText()) && TextUtils.isEmpty(issuerInput.getText())) ||
|
||||||
TextUtils.isEmpty(secretInput.getText()) ||
|
(TextUtils.isEmpty(secretInput.getText()) && isNewEntry) ||
|
||||||
TextUtils.isEmpty(digitsInput.getText()) ||
|
!isNonZeroIntegerInput(digitsInput)) {
|
||||||
Integer.parseInt(digitsInput.getText().toString()) == 0) {
|
|
||||||
positiveButton.setEnabled(false);
|
positiveButton.setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
Entry.OTPType type = (Entry.OTPType) typeInput.getSelectedItem();
|
Entry.OTPType type = (Entry.OTPType) typeInput.getSelectedItem();
|
||||||
if (type == Entry.OTPType.HOTP) {
|
if (type == Entry.OTPType.HOTP) {
|
||||||
if (TextUtils.isEmpty(counterInput.getText())) {
|
positiveButton.setEnabled(isZeroOrPositiveLongInput(counterInput));
|
||||||
positiveButton.setEnabled(false);
|
|
||||||
} else {
|
|
||||||
positiveButton.setEnabled(true);
|
|
||||||
}
|
|
||||||
} else if (type == Entry.OTPType.TOTP || type == Entry.OTPType.STEAM) {
|
} else if (type == Entry.OTPType.TOTP || type == Entry.OTPType.STEAM) {
|
||||||
if (TextUtils.isEmpty(periodInput.getText()) || Integer.parseInt(periodInput.getText().toString()) == 0) {
|
positiveButton.setEnabled(isNonZeroIntegerInput(periodInput));
|
||||||
positiveButton.setEnabled(false);
|
|
||||||
} else {
|
} else {
|
||||||
positiveButton.setEnabled(true);
|
positiveButton.setEnabled(true);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
positiveButton.setEnabled(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isNonZeroIntegerInput(EditText editText) {
|
||||||
|
try {
|
||||||
|
Editable text = editText.getText();
|
||||||
|
return !TextUtils.isEmpty(text) && (Integer.parseInt(text.toString()) != 0);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isZeroOrPositiveLongInput(EditText editText) {
|
||||||
|
try {
|
||||||
|
Editable text = editText.getText();
|
||||||
|
return !TextUtils.isEmpty(text) && (Long.parseLong(text.toString()) >= 0);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.google.android.material.textfield.TextInputEditText;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatDialog;
|
import androidx.appcompat.app.AppCompatDialog;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -31,7 +33,7 @@ public class PasswordEntryDialog extends AppCompatDialog
|
||||||
private EditText passwordConfirm;
|
private EditText passwordConfirm;
|
||||||
private Button okButton;
|
private Button okButton;
|
||||||
|
|
||||||
public PasswordEntryDialog(Context context, Mode newMode, boolean blockAccessibility, PasswordEnteredCallback newCallback) {
|
public PasswordEntryDialog(Context context, Mode newMode, boolean blockAccessibility, boolean blockAutofill, PasswordEnteredCallback newCallback) {
|
||||||
super(context, Tools.getThemeResource(context, R.attr.dialogTheme));
|
super(context, Tools.getThemeResource(context, R.attr.dialogTheme));
|
||||||
|
|
||||||
setTitle(R.string.dialog_title_enter_password);
|
setTitle(R.string.dialog_title_enter_password);
|
||||||
|
@ -46,6 +48,11 @@ public class PasswordEntryDialog extends AppCompatDialog
|
||||||
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && blockAutofill) {
|
||||||
|
passwordLayout.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
|
||||||
|
passwordConfirm.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
|
||||||
|
}
|
||||||
|
|
||||||
okButton = findViewById(R.id.buttonOk);
|
okButton = findViewById(R.id.buttonOk);
|
||||||
Button cancelButton = findViewById(R.id.buttonCancel);
|
Button cancelButton = findViewById(R.id.buttonCancel);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 RichyHBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -25,9 +25,8 @@ package org.shadowice.flocke.andotp.Preferences;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
import android.preference.DialogPreference;
|
import android.preference.DialogPreference;
|
||||||
import com.google.android.material.textfield.TextInputEditText;
|
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -43,6 +42,9 @@ import android.widget.ListView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputEditText;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.R;
|
import org.shadowice.flocke.andotp.R;
|
||||||
import org.shadowice.flocke.andotp.Utilities.Constants;
|
import org.shadowice.flocke.andotp.Utilities.Constants;
|
||||||
import org.shadowice.flocke.andotp.Utilities.Settings;
|
import org.shadowice.flocke.andotp.Utilities.Settings;
|
||||||
|
@ -132,6 +134,11 @@ public class CredentialsPreference extends DialogPreference
|
||||||
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && settings.getBlockAutofill()) {
|
||||||
|
passwordLayout.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
|
||||||
|
passwordConfirm.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
|
||||||
|
}
|
||||||
|
|
||||||
toShortWarning = view.findViewById(R.id.toShortWarning);
|
toShortWarning = view.findViewById(R.id.toShortWarning);
|
||||||
|
|
||||||
passwordInput.addTextChangedListener(this);
|
passwordInput.addTextChangedListener(this);
|
||||||
|
@ -174,10 +181,7 @@ public class CredentialsPreference extends DialogPreference
|
||||||
if (value == AuthMethod.DEVICE) {
|
if (value == AuthMethod.DEVICE) {
|
||||||
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
|
KeyguardManager km = (KeyguardManager) getContext().getSystemService(KEYGUARD_SERVICE);
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
|
if (! km.isKeyguardSecure()) {
|
||||||
Toast.makeText(getContext(), R.string.settings_toast_auth_device_pre_lollipop, Toast.LENGTH_LONG).show();
|
|
||||||
return;
|
|
||||||
} else if (! km.isKeyguardSecure()) {
|
|
||||||
Toast.makeText(getContext(), R.string.settings_toast_auth_device_not_secure, Toast.LENGTH_LONG).show();
|
Toast.makeText(getContext(), R.string.settings_toast_auth_device_not_secure, Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -25,6 +25,7 @@ package org.shadowice.flocke.andotp.Preferences;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
|
import android.os.Build;
|
||||||
import android.preference.DialogPreference;
|
import android.preference.DialogPreference;
|
||||||
import com.google.android.material.textfield.TextInputEditText;
|
import com.google.android.material.textfield.TextInputEditText;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
@ -104,6 +105,11 @@ public class PasswordEncryptedPreference extends DialogPreference
|
||||||
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
passwordConfirm.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && settings.getBlockAutofill()) {
|
||||||
|
passwordLayout.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
|
||||||
|
passwordConfirm.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
|
||||||
|
}
|
||||||
|
|
||||||
Button btnCancel = view.findViewById(R.id.btnCancel);
|
Button btnCancel = view.findViewById(R.id.btnCancel);
|
||||||
btnSave = view.findViewById(R.id.btnSave);
|
btnSave = view.findViewById(R.id.btnSave);
|
||||||
btnSave.setEnabled(false);
|
btnSave.setEnabled(false);
|
||||||
|
|
|
@ -23,37 +23,15 @@
|
||||||
|
|
||||||
package org.shadowice.flocke.andotp.Receivers;
|
package org.shadowice.flocke.andotp.Receivers;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.R;
|
|
||||||
import org.shadowice.flocke.andotp.Utilities.Constants;
|
|
||||||
import org.shadowice.flocke.andotp.Utilities.NotificationHelper;
|
|
||||||
import org.shadowice.flocke.andotp.Utilities.Settings;
|
import org.shadowice.flocke.andotp.Utilities.Settings;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
public abstract class BackupBroadcastReceiver extends BroadcastReceiver {
|
public abstract class BackupBroadcastReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
protected boolean canSaveBackup(Context context) {
|
protected boolean canSaveBackup(Context context) {
|
||||||
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_receiver_read_permission_failed);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_receiver_write_permission_failed);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Settings settings = new Settings(context);
|
Settings settings = new Settings(context);
|
||||||
File backupDir = new File(settings.getBackupDir());
|
return settings.isBackupLocationSet();
|
||||||
if(!backupDir.exists())
|
|
||||||
backupDir.mkdirs();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 Jakob Nixdorf
|
* Copyright (C) 2018-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2018 Richy HBM
|
* Copyright (C) 2018-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -25,7 +25,6 @@ package org.shadowice.flocke.andotp.Receivers;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.Database.Entry;
|
import org.shadowice.flocke.andotp.Database.Entry;
|
||||||
import org.shadowice.flocke.andotp.R;
|
import org.shadowice.flocke.andotp.R;
|
||||||
|
@ -56,8 +55,6 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
if (!canSaveBackup(context))
|
if (!canSaveBackup(context))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Uri savePath = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED));
|
|
||||||
|
|
||||||
String password = settings.getBackupPasswordEnc();
|
String password = settings.getBackupPasswordEnc();
|
||||||
|
|
||||||
if (password.isEmpty()) {
|
if (password.isEmpty()) {
|
||||||
|
@ -65,7 +62,7 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SecretKey encryptionKey = null;
|
SecretKey encryptionKey;
|
||||||
|
|
||||||
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
|
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
|
||||||
encryptionKey = KeyStoreHelper.loadEncryptionKeyFromKeyStore(context, false);
|
encryptionKey = KeyStoreHelper.loadEncryptionKeyFromKeyStore(context, false);
|
||||||
|
@ -75,6 +72,13 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tools.isExternalStorageWritable()) {
|
if (Tools.isExternalStorageWritable()) {
|
||||||
|
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
|
||||||
|
|
||||||
|
if (cryptBackupFile.file == null) {
|
||||||
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, cryptBackupFile.errorMessage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
|
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
|
||||||
String plain = DatabaseHelper.entriesToString(entries);
|
String plain = DatabaseHelper.entriesToString(entries);
|
||||||
|
|
||||||
|
@ -92,9 +96,9 @@ public class EncryptedBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
System.arraycopy(salt, 0, data, Constants.INT_LENGTH, Constants.ENCRYPTION_IV_LENGTH);
|
System.arraycopy(salt, 0, data, Constants.INT_LENGTH, Constants.ENCRYPTION_IV_LENGTH);
|
||||||
System.arraycopy(encrypted, 0, data, Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH, encrypted.length);
|
System.arraycopy(encrypted, 0, data, Constants.INT_LENGTH + Constants.ENCRYPTION_IV_LENGTH, encrypted.length);
|
||||||
|
|
||||||
StorageAccessHelper.saveFile(context, savePath, data);
|
StorageAccessHelper.saveFile(context, cryptBackupFile.file.getUri(), data);
|
||||||
|
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, savePath.getPath());
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, cryptBackupFile.file.getName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);
|
||||||
|
|
|
@ -25,7 +25,6 @@ package org.shadowice.flocke.andotp.Receivers;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.Database.Entry;
|
import org.shadowice.flocke.andotp.Database.Entry;
|
||||||
import org.shadowice.flocke.andotp.R;
|
import org.shadowice.flocke.andotp.R;
|
||||||
|
@ -53,8 +52,6 @@ public class PlainTextBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
if (!canSaveBackup(context))
|
if (!canSaveBackup(context))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Uri savePath = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.PLAIN_TEXT));
|
|
||||||
|
|
||||||
SecretKey encryptionKey = null;
|
SecretKey encryptionKey = null;
|
||||||
|
|
||||||
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
|
if (settings.getEncryption() == Constants.EncryptionType.KEYSTORE) {
|
||||||
|
@ -65,10 +62,17 @@ public class PlainTextBackupBroadcastReceiver extends BackupBroadcastReceiver {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tools.isExternalStorageWritable()) {
|
if (Tools.isExternalStorageWritable()) {
|
||||||
|
BackupHelper.BackupFile backupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.PLAIN_TEXT);
|
||||||
|
|
||||||
|
if (backupFile.file == null) {
|
||||||
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, backupFile.errorMessage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
|
ArrayList<Entry> entries = DatabaseHelper.loadDatabase(context, encryptionKey);
|
||||||
|
|
||||||
if (StorageAccessHelper.saveFile(context, savePath, DatabaseHelper.entriesToString(entries))) {
|
if (StorageAccessHelper.saveFile(context, backupFile.file.getUri(), DatabaseHelper.entriesToString(entries))) {
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, savePath.getPath());
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_SUCCESS, R.string.backup_receiver_title_backup_success, backupFile.file.getName());
|
||||||
} else {
|
} else {
|
||||||
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);
|
NotificationHelper.notify(context, Constants.NotificationChannel.BACKUP_FAILED, R.string.backup_receiver_title_backup_failed, R.string.backup_toast_export_failed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package org.shadowice.flocke.andotp.Utilities;
|
package org.shadowice.flocke.andotp.Utilities;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
|
import androidx.documentfile.provider.DocumentFile;
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.Database.Entry;
|
import org.shadowice.flocke.andotp.Database.Entry;
|
||||||
|
import org.shadowice.flocke.andotp.R;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
@ -15,6 +15,52 @@ import java.util.ArrayList;
|
||||||
import javax.crypto.SecretKey;
|
import javax.crypto.SecretKey;
|
||||||
|
|
||||||
public class BackupHelper {
|
public class BackupHelper {
|
||||||
|
public static class BackupFile {
|
||||||
|
public DocumentFile file = null;
|
||||||
|
public int errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String backupMimeType(Constants.BackupType type) {
|
||||||
|
String mimeType = Constants.BACKUP_MIMETYPE_PLAIN;
|
||||||
|
|
||||||
|
switch(type) {
|
||||||
|
case PLAIN_TEXT:
|
||||||
|
mimeType = Constants.BACKUP_MIMETYPE_PLAIN;
|
||||||
|
break;
|
||||||
|
case ENCRYPTED:
|
||||||
|
mimeType = Constants.BACKUP_MIMETYPE_CRYPT;
|
||||||
|
break;
|
||||||
|
case OPEN_PGP:
|
||||||
|
mimeType = Constants.BACKUP_MIMETYPE_PGP;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BackupFile backupFile(Context context, Uri backupLocationUri, Constants.BackupType type) {
|
||||||
|
BackupFile backupFile = new BackupFile();
|
||||||
|
DocumentFile backupLocation = DocumentFile.fromTreeUri(context, backupLocationUri);
|
||||||
|
|
||||||
|
if (backupLocation != null) {
|
||||||
|
// Try to find an existing file to overwrite
|
||||||
|
backupFile.file = backupLocation.findFile(BackupHelper.backupFilename(context, type));
|
||||||
|
|
||||||
|
// Try to create a new file
|
||||||
|
if (backupFile.file == null) {
|
||||||
|
backupFile.file = backupLocation.createFile(backupMimeType(type), BackupHelper.backupFilename(context, type));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Both failed
|
||||||
|
if (backupFile.file == null)
|
||||||
|
backupFile.errorMessage = R.string.backup_toast_file_creation_failed;
|
||||||
|
} else {
|
||||||
|
backupFile.errorMessage = R.string.backup_toast_location_access_failed;
|
||||||
|
}
|
||||||
|
|
||||||
|
return backupFile;
|
||||||
|
}
|
||||||
|
|
||||||
public static String backupFilename(Context context, Constants.BackupType type) {
|
public static String backupFilename(Context context, Constants.BackupType type) {
|
||||||
Settings settings = new Settings(context);
|
Settings settings = new Settings(context);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -43,11 +89,8 @@ public class BackupHelper {
|
||||||
|
|
||||||
public static Constants.BackupType autoBackupType(Context context) {
|
public static Constants.BackupType autoBackupType(Context context) {
|
||||||
Settings settings = new Settings(context);
|
Settings settings = new Settings(context);
|
||||||
if(ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
return Constants.BackupType.UNAVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!Tools.mkdir(settings.getBackupDir())) {
|
if(!settings.isBackupLocationSet()) {
|
||||||
return Constants.BackupType.UNAVAILABLE;
|
return Constants.BackupType.UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -86,16 +86,7 @@ public class Constants {
|
||||||
public final static int INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD = 208;
|
public final static int INTENT_BACKUP_OPEN_DOCUMENT_CRYPT_OLD = 208;
|
||||||
|
|
||||||
public static final int INTENT_SETTINGS_AUTHENTICATE = 300;
|
public static final int INTENT_SETTINGS_AUTHENTICATE = 300;
|
||||||
|
public static final int INTENT_SETTINGS_BACKUP_LOCATION = 301;
|
||||||
// Permission requests (Format: A1x with A = parent Activity, x = number of the request)
|
|
||||||
public final static int PERMISSIONS_MAIN_QR_READ_IMAGE = 111;
|
|
||||||
public final static int PERMISSIONS_BACKUP_READ_IMPORT_PLAIN = 210;
|
|
||||||
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_PLAIN = 211;
|
|
||||||
public final static int PERMISSIONS_BACKUP_READ_IMPORT_CRYPT = 212;
|
|
||||||
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_CRYPT = 213;
|
|
||||||
public final static int PERMISSIONS_BACKUP_READ_IMPORT_PGP = 214;
|
|
||||||
public final static int PERMISSIONS_BACKUP_WRITE_EXPORT_PGP = 215;
|
|
||||||
public final static int PERMISSIONS_BACKUP_READ_IMPORT_CRYPT_OLD = 216;
|
|
||||||
|
|
||||||
// Intent extras
|
// Intent extras
|
||||||
public final static String EXTRA_AUTH_PASSWORD_KEY = "password_key";
|
public final static String EXTRA_AUTH_PASSWORD_KEY = "password_key";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 Richy HBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 Richy HBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -29,6 +29,7 @@ import android.graphics.BitmapFactory;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
import androidx.appcompat.content.res.AppCompatResources;
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.R;
|
import org.shadowice.flocke.andotp.R;
|
||||||
|
|
||||||
|
@ -42,8 +43,10 @@ public class EntryThumbnail {
|
||||||
Default(R.mipmap.ic_launcher_round),
|
Default(R.mipmap.ic_launcher_round),
|
||||||
OneAndOne(R.drawable.thumb_1and1),
|
OneAndOne(R.drawable.thumb_1and1),
|
||||||
OnePassword(R.drawable.thumb_1password),
|
OnePassword(R.drawable.thumb_1password),
|
||||||
Adobe(R.drawable.thumb_adobe),
|
TwentyThreeAndMe(R.drawable.thumb_23andme),
|
||||||
|
Adafruit(R.drawable.thumb_adafruit),
|
||||||
AdGuard(R.drawable.thumb_adguard),
|
AdGuard(R.drawable.thumb_adguard),
|
||||||
|
Adobe(R.drawable.thumb_adobe),
|
||||||
AirBNB(R.drawable.thumb_airbnb),
|
AirBNB(R.drawable.thumb_airbnb),
|
||||||
Airbrake(R.drawable.thumb_airbrake),
|
Airbrake(R.drawable.thumb_airbrake),
|
||||||
AirTable(R.drawable.thumb_airtable),
|
AirTable(R.drawable.thumb_airtable),
|
||||||
|
@ -52,10 +55,12 @@ public class EntryThumbnail {
|
||||||
AmazonWebServices(R.drawable.thumb_amazonwebservices),
|
AmazonWebServices(R.drawable.thumb_amazonwebservices),
|
||||||
AngelList(R.drawable.thumb_angellist),
|
AngelList(R.drawable.thumb_angellist),
|
||||||
AnimeBytes(R.drawable.thumb_animebytes),
|
AnimeBytes(R.drawable.thumb_animebytes),
|
||||||
|
Anonaddy(R.drawable.thumb_anonaddy),
|
||||||
Apache(R.drawable.thumb_apache),
|
Apache(R.drawable.thumb_apache),
|
||||||
Apple(R.drawable.thumb_apple),
|
Apple(R.drawable.thumb_apple),
|
||||||
Appveyor(R.drawable.thumb_appveyor),
|
Appveyor(R.drawable.thumb_appveyor),
|
||||||
ArenaNet(R.drawable.thumb_arenanet),
|
ArenaNet(R.drawable.thumb_arenanet),
|
||||||
|
AtlanticNet(R.drawable.thumb_atlantic_net),
|
||||||
Atlassian(R.drawable.thumb_atlassian),
|
Atlassian(R.drawable.thumb_atlassian),
|
||||||
AVM(R.drawable.thumb_avm),
|
AVM(R.drawable.thumb_avm),
|
||||||
Backblaze(R.drawable.thumb_backblaze),
|
Backblaze(R.drawable.thumb_backblaze),
|
||||||
|
@ -64,20 +69,25 @@ public class EntryThumbnail {
|
||||||
Binance(R.drawable.thumb_binance),
|
Binance(R.drawable.thumb_binance),
|
||||||
BitBucket(R.drawable.thumb_bitbucket),
|
BitBucket(R.drawable.thumb_bitbucket),
|
||||||
Bitcoin(R.drawable.thumb_bitcoin),
|
Bitcoin(R.drawable.thumb_bitcoin),
|
||||||
|
Bitdefender(R.drawable.thumb_bitdefender),
|
||||||
Bitfinex(R.drawable.thumb_bitfinex),
|
Bitfinex(R.drawable.thumb_bitfinex),
|
||||||
Bitmex(R.drawable.thumb_bitmex),
|
Bitmex(R.drawable.thumb_bitmex),
|
||||||
Bitstamp(R.mipmap.thumb_bitstamp, AssetType.Bitmap),
|
|
||||||
Bitpanda(R.drawable.thumb_bitpanda),
|
Bitpanda(R.drawable.thumb_bitpanda),
|
||||||
|
Bitstamp(R.drawable.thumb_bitstamp),
|
||||||
Bittrex(R.drawable.thumb_bittrex),
|
Bittrex(R.drawable.thumb_bittrex),
|
||||||
Bitwala(R.drawable.thumb_bitwala),
|
Bitwala(R.drawable.thumb_bitwala),
|
||||||
Bitwarden(R.drawable.thumb_bitwarden),
|
Bitwarden(R.drawable.thumb_bitwarden),
|
||||||
CEXio(R.drawable.thumb_cexio),
|
|
||||||
BlockchainInfo(R.drawable.thumb_blockchain_info),
|
BlockchainInfo(R.drawable.thumb_blockchain_info),
|
||||||
|
Bugcrowd(R.drawable.thumb_bugcrowd),
|
||||||
|
CEXio(R.drawable.thumb_cexio),
|
||||||
|
ChurchTools(R.drawable.thumb_church_tools),
|
||||||
|
Cisco(R.drawable.thumb_cisco),
|
||||||
CloudDownload(R.drawable.thumb_cloud_download),
|
CloudDownload(R.drawable.thumb_cloud_download),
|
||||||
Cloudflare(R.drawable.thumb_cloudflare),
|
Cloudflare(R.drawable.thumb_cloudflare),
|
||||||
Cobranded(R.drawable.thumb_cobranded),
|
Cobranded(R.drawable.thumb_cobranded),
|
||||||
Codegiant(R.drawable.thumb_codegiant),
|
Codegiant(R.drawable.thumb_codegiant),
|
||||||
Coinbase(R.drawable.thumb_coinbase),
|
Coinbase(R.drawable.thumb_coinbase),
|
||||||
|
CoinJar(R.drawable.thumb_coinjar),
|
||||||
ComputerBase(R.drawable.thumb_computerbase),
|
ComputerBase(R.drawable.thumb_computerbase),
|
||||||
ConnectWiseManage(R.drawable.thumb_connectwise_manage),
|
ConnectWiseManage(R.drawable.thumb_connectwise_manage),
|
||||||
CozyCloud(R.drawable.thumb_cozycloud),
|
CozyCloud(R.drawable.thumb_cozycloud),
|
||||||
|
@ -94,14 +104,20 @@ public class EntryThumbnail {
|
||||||
Disroot(R.drawable.thumb_disroot),
|
Disroot(R.drawable.thumb_disroot),
|
||||||
Docker(R.drawable.thumb_docker),
|
Docker(R.drawable.thumb_docker),
|
||||||
DocuSign(R.drawable.thumb_docusign),
|
DocuSign(R.drawable.thumb_docusign),
|
||||||
|
DreamHost(R.drawable.thumb_dreamhost),
|
||||||
Dropbox(R.drawable.thumb_dropbox),
|
Dropbox(R.drawable.thumb_dropbox),
|
||||||
Drupal(R.drawable.thumb_drupal),
|
Drupal(R.drawable.thumb_drupal),
|
||||||
ElectronicArts(R.drawable.thumb_electronic_arts),
|
ElectronicArts(R.drawable.thumb_electronic_arts),
|
||||||
Email(R.drawable.thumb_email),
|
Email(R.drawable.thumb_email),
|
||||||
EpicGames(R.drawable.thumb_epic_games),
|
EpicGames(R.drawable.thumb_epic_games),
|
||||||
|
Etsy(R.drawable.thumb_etsy),
|
||||||
|
Eveonline(R.drawable.thumb_eveonline),
|
||||||
Evernote(R.drawable.thumb_evernote),
|
Evernote(R.drawable.thumb_evernote),
|
||||||
Facebook(R.drawable.thumb_facebook),
|
Facebook(R.drawable.thumb_facebook),
|
||||||
FACEIT(R.drawable.thumb_faceit),
|
FACEIT(R.drawable.thumb_faceit),
|
||||||
|
Fanatical(R.drawable.thumb_fanatical),
|
||||||
|
Fastmail(R.drawable.thumb_fastmail),
|
||||||
|
Figma(R.drawable.thumb_figma),
|
||||||
Fingerprint(R.drawable.thumb_fingerprint),
|
Fingerprint(R.drawable.thumb_fingerprint),
|
||||||
Finnair(R.drawable.thumb_finnair),
|
Finnair(R.drawable.thumb_finnair),
|
||||||
Firefox(R.drawable.thumb_firefox),
|
Firefox(R.drawable.thumb_firefox),
|
||||||
|
@ -113,19 +129,21 @@ public class EntryThumbnail {
|
||||||
Gandi(R.drawable.thumb_gandi),
|
Gandi(R.drawable.thumb_gandi),
|
||||||
Git(R.drawable.thumb_git),
|
Git(R.drawable.thumb_git),
|
||||||
Gitea(R.drawable.thumb_gitea),
|
Gitea(R.drawable.thumb_gitea),
|
||||||
Github(R.drawable.thumb_github),
|
GitHub(R.drawable.thumb_github),
|
||||||
Gitlab(R.drawable.thumb_gitlab),
|
GitLab(R.drawable.thumb_gitlab),
|
||||||
GMX(R.drawable.thumb_gmx),
|
GMX(R.drawable.thumb_gmx),
|
||||||
GoDaddy(R.drawable.thumb_godaddy),
|
GoDaddy(R.drawable.thumb_godaddy),
|
||||||
Gogs(R.drawable.thumb_gogs),
|
Gogs(R.drawable.thumb_gogs),
|
||||||
Google(R.drawable.thumb_google),
|
Google(R.drawable.thumb_google),
|
||||||
GovUK(R.drawable.thumb_govuk),
|
GovUK(R.drawable.thumb_govuk),
|
||||||
|
Greenhost(R.drawable.thumb_greenhost),
|
||||||
HackerOne(R.drawable.thumb_hackerone),
|
HackerOne(R.drawable.thumb_hackerone),
|
||||||
Heroku(R.drawable.thumb_heroku),
|
Heroku(R.drawable.thumb_heroku),
|
||||||
Hetzner(R.drawable.thumb_hetzner),
|
Hetzner(R.drawable.thumb_hetzner),
|
||||||
HitBTC(R.drawable.thumb_hitbtc),
|
HitBTC(R.drawable.thumb_hitbtc),
|
||||||
HMRC(R.drawable.thumb_hmrc),
|
HMRC(R.drawable.thumb_hmrc),
|
||||||
HomeAssistant(R.drawable.thumb_home_assistant),
|
HomeAssistant(R.drawable.thumb_home_assistant),
|
||||||
|
Hover(R.drawable.thumb_hover),
|
||||||
HumbleBundle(R.drawable.thumb_humblebundle),
|
HumbleBundle(R.drawable.thumb_humblebundle),
|
||||||
HurricaneElectric(R.drawable.thumb_hurricane_electric),
|
HurricaneElectric(R.drawable.thumb_hurricane_electric),
|
||||||
IBM(R.drawable.thumb_ibm),
|
IBM(R.drawable.thumb_ibm),
|
||||||
|
@ -135,7 +153,9 @@ public class EntryThumbnail {
|
||||||
INWX(R.drawable.thumb_inwx),
|
INWX(R.drawable.thumb_inwx),
|
||||||
Itchio(R.drawable.thumb_itchio),
|
Itchio(R.drawable.thumb_itchio),
|
||||||
Jagex(R.drawable.thumb_jagex),
|
Jagex(R.drawable.thumb_jagex),
|
||||||
|
JetBrains(R.drawable.thumb_jetbrains),
|
||||||
Joomla(R.drawable.thumb_joomla),
|
Joomla(R.drawable.thumb_joomla),
|
||||||
|
Keeper(R.drawable.thumb_keeper),
|
||||||
Kickstarter(R.drawable.thumb_kickstarter),
|
Kickstarter(R.drawable.thumb_kickstarter),
|
||||||
Kraken(R.drawable.thumb_kraken),
|
Kraken(R.drawable.thumb_kraken),
|
||||||
Kucoin(R.drawable.thumb_kucoin),
|
Kucoin(R.drawable.thumb_kucoin),
|
||||||
|
@ -145,10 +165,14 @@ public class EntryThumbnail {
|
||||||
LinkedIn(R.drawable.thumb_linkedin),
|
LinkedIn(R.drawable.thumb_linkedin),
|
||||||
Linode(R.drawable.thumb_linode),
|
Linode(R.drawable.thumb_linode),
|
||||||
Liqui(R.drawable.thumb_liqui),
|
Liqui(R.drawable.thumb_liqui),
|
||||||
|
LivelyMe(R.drawable.thumb_livelyme),
|
||||||
|
Lobsters(R.drawable.thumb_lobsters),
|
||||||
LocalBitcoins(R.drawable.thumb_localbitcoins),
|
LocalBitcoins(R.drawable.thumb_localbitcoins),
|
||||||
LocalMonero(R.drawable.thumb_localmonero),
|
LocalMonero(R.drawable.thumb_localmonero),
|
||||||
|
LoginGov(R.drawable.thumb_login_gov),
|
||||||
LogMeIn(R.drawable.thumb_logmein),
|
LogMeIn(R.drawable.thumb_logmein),
|
||||||
Mailbox(R.drawable.thumb_mailbox),
|
Mailbox(R.drawable.thumb_mailbox),
|
||||||
|
Mailchimp(R.drawable.thumb_mailchimp),
|
||||||
Mailcow(R.drawable.thumb_mailcow),
|
Mailcow(R.drawable.thumb_mailcow),
|
||||||
Mailgun(R.drawable.thumb_mailgun),
|
Mailgun(R.drawable.thumb_mailgun),
|
||||||
Mailru(R.drawable.thumb_mailru),
|
Mailru(R.drawable.thumb_mailru),
|
||||||
|
@ -157,26 +181,35 @@ public class EntryThumbnail {
|
||||||
Matomo(R.drawable.thumb_matomo),
|
Matomo(R.drawable.thumb_matomo),
|
||||||
Mediawiki(R.mipmap.thumb_mediawiki, AssetType.Bitmap),
|
Mediawiki(R.mipmap.thumb_mediawiki, AssetType.Bitmap),
|
||||||
Mega(R.drawable.thumb_mega),
|
Mega(R.drawable.thumb_mega),
|
||||||
|
MercadoLibre(R.drawable.thumb_mercadolibre),
|
||||||
Microsoft(R.drawable.thumb_microsoft),
|
Microsoft(R.drawable.thumb_microsoft),
|
||||||
MicrosoftTeams(R.drawable.thumb_microsoft_teams),
|
MicrosoftTeams(R.drawable.thumb_microsoft_teams),
|
||||||
Migadu(R.drawable.thumb_migadu),
|
Migadu(R.drawable.thumb_migadu),
|
||||||
|
Mint(R.drawable.thumb_mint),
|
||||||
Miraheze(R.drawable.thumb_miraheze),
|
Miraheze(R.drawable.thumb_miraheze),
|
||||||
Mixer(R.drawable.thumb_mixer),
|
Mixer(R.drawable.thumb_mixer),
|
||||||
|
MongoDB(R.drawable.thumb_mongodb),
|
||||||
|
MVPSnet(R.drawable.thumb_mvpsnet),
|
||||||
NameCheap(R.drawable.thumb_namecheap),
|
NameCheap(R.drawable.thumb_namecheap),
|
||||||
NameCom(R.drawable.thumb_namecom),
|
NameCom(R.drawable.thumb_namecom),
|
||||||
NAS(R.drawable.thumb_nas),
|
NAS(R.drawable.thumb_nas),
|
||||||
netcup(R.drawable.thumb_netcup),
|
netcup(R.drawable.thumb_netcup),
|
||||||
NextCloud(R.drawable.thumb_nextcloud),
|
NextCloud(R.drawable.thumb_nextcloud),
|
||||||
Nintendo(R.drawable.thumb_nintendo),
|
Nintendo(R.drawable.thumb_nintendo),
|
||||||
|
NoStarchPress(R.drawable.thumb_no_starch_press),
|
||||||
NPM(R.drawable.thumb_npm),
|
NPM(R.drawable.thumb_npm),
|
||||||
|
Oculus(R.drawable.thumb_oculus),
|
||||||
Office(R.drawable.thumb_office),
|
Office(R.drawable.thumb_office),
|
||||||
Okta(R.drawable.thumb_okta),
|
Okta(R.drawable.thumb_okta),
|
||||||
OnlineNet(R.drawable.thumb_online),
|
OnlineNet(R.drawable.thumb_online),
|
||||||
OpenVZ(R.drawable.thumb_openvz),
|
OpenVZ(R.drawable.thumb_openvz),
|
||||||
OPNsense(R.drawable.thumb_opnsense),
|
OPNsense(R.drawable.thumb_opnsense),
|
||||||
|
ORCiD(R.drawable.thumb_orcid),
|
||||||
Origin(R.drawable.thumb_origin),
|
Origin(R.drawable.thumb_origin),
|
||||||
OVH(R.drawable.thumb_ovh),
|
OVH(R.drawable.thumb_ovh),
|
||||||
Packet(R.drawable.thumb_packet),
|
Packet(R.drawable.thumb_packet),
|
||||||
|
Parsecgaming(R.drawable.thumb_parsecgaming),
|
||||||
|
Passwordstate(R.drawable.thumb_passwordstate),
|
||||||
Patreon(R.drawable.thumb_patreon),
|
Patreon(R.drawable.thumb_patreon),
|
||||||
PayPal(R.drawable.thumb_paypal),
|
PayPal(R.drawable.thumb_paypal),
|
||||||
PaySafe(R.drawable.thumb_paysafecard),
|
PaySafe(R.drawable.thumb_paysafecard),
|
||||||
|
@ -184,24 +217,31 @@ public class EntryThumbnail {
|
||||||
PCloud(R.drawable.thumb_pcloud),
|
PCloud(R.drawable.thumb_pcloud),
|
||||||
Phabricator(R.drawable.thumb_phabricator),
|
Phabricator(R.drawable.thumb_phabricator),
|
||||||
phpMyAdmin(R.drawable.thumb_phpmyadmin),
|
phpMyAdmin(R.drawable.thumb_phpmyadmin),
|
||||||
|
Pluralsight(R.drawable.thumb_pluralsight),
|
||||||
Plurk(R.drawable.thumb_plurk),
|
Plurk(R.drawable.thumb_plurk),
|
||||||
Posteo(R.drawable.thumb_posteo),
|
Posteo(R.drawable.thumb_posteo),
|
||||||
|
Pretix(R.drawable.thumb_pretix),
|
||||||
|
Prey(R.drawable.thumb_prey),
|
||||||
PrivateInternetAccess(R.drawable.thumb_private_internet_access),
|
PrivateInternetAccess(R.drawable.thumb_private_internet_access),
|
||||||
ProtonMail(R.drawable.thumb_protonmail),
|
ProtonMail(R.drawable.thumb_protonmail),
|
||||||
Proxmox(R.drawable.thumb_proxmox),
|
Proxmox(R.drawable.thumb_proxmox),
|
||||||
|
Pushover(R.drawable.thumb_pushover),
|
||||||
PyPI(R.drawable.thumb_pypi),
|
PyPI(R.drawable.thumb_pypi),
|
||||||
|
PythonAnywhere(R.drawable.thumb_python_anywhere),
|
||||||
Rackspace(R.drawable.thumb_rackspace),
|
Rackspace(R.drawable.thumb_rackspace),
|
||||||
Reddit(R.drawable.thumb_reddit),
|
Reddit(R.drawable.thumb_reddit),
|
||||||
RipeNNC(R.drawable.thumb_ripe_ncc),
|
RipeNNC(R.drawable.thumb_ripe_ncc),
|
||||||
|
Ripio(R.drawable.thumb_ripio),
|
||||||
Robinhood(R.drawable.thumb_robinhood),
|
Robinhood(R.drawable.thumb_robinhood),
|
||||||
Rockstar(R.drawable.thumb_rockstar),
|
Rockstar(R.drawable.thumb_rockstar),
|
||||||
RSS(R.drawable.thumb_rss),
|
RSS(R.drawable.thumb_rss),
|
||||||
SAP(R.drawable.thumb_sap),
|
SAP(R.drawable.thumb_sap),
|
||||||
Scaleway(R.drawable.thumb_scaleway),
|
Scaleway(R.drawable.thumb_scaleway),
|
||||||
|
School(R.drawable.thumb_school),
|
||||||
Sciebo(R.drawable.thumb_sciebo),
|
Sciebo(R.drawable.thumb_sciebo),
|
||||||
Seafile(R.mipmap.thumb_seafile, AssetType.Bitmap),
|
Seafile(R.mipmap.thumb_seafile, AssetType.Bitmap),
|
||||||
School(R.drawable.thumb_school),
|
|
||||||
Sentry(R.drawable.thumb_sentry),
|
Sentry(R.drawable.thumb_sentry),
|
||||||
|
Sevdesk(R.drawable.thumb_sevdesk),
|
||||||
Skrill(R.drawable.thumb_skrill),
|
Skrill(R.drawable.thumb_skrill),
|
||||||
Slack(R.drawable.thumb_slack),
|
Slack(R.drawable.thumb_slack),
|
||||||
Snapchat(R.drawable.thumb_snapchat),
|
Snapchat(R.drawable.thumb_snapchat),
|
||||||
|
@ -209,6 +249,7 @@ public class EntryThumbnail {
|
||||||
SourceForge(R.drawable.thumb_sourceforge),
|
SourceForge(R.drawable.thumb_sourceforge),
|
||||||
Squarespace(R.drawable.thumb_squarespace),
|
Squarespace(R.drawable.thumb_squarespace),
|
||||||
StandardNotes(R.drawable.thumb_standardnotes),
|
StandardNotes(R.drawable.thumb_standardnotes),
|
||||||
|
StarCitizen(R.drawable.thumb_starcitizen),
|
||||||
Steam(R.drawable.thumb_steam),
|
Steam(R.drawable.thumb_steam),
|
||||||
Stripe(R.drawable.thumb_stripe),
|
Stripe(R.drawable.thumb_stripe),
|
||||||
Sync(R.drawable.thumb_sync),
|
Sync(R.drawable.thumb_sync),
|
||||||
|
@ -219,23 +260,40 @@ public class EntryThumbnail {
|
||||||
TransIP(R.drawable.thumb_transip),
|
TransIP(R.drawable.thumb_transip),
|
||||||
Trello(R.drawable.thumb_trello),
|
Trello(R.drawable.thumb_trello),
|
||||||
Tumblr(R.drawable.thumb_tumblr),
|
Tumblr(R.drawable.thumb_tumblr),
|
||||||
|
TurboTax(R.drawable.thumb_turbotax),
|
||||||
Tutanota(R.drawable.thumb_tutanota),
|
Tutanota(R.drawable.thumb_tutanota),
|
||||||
|
TUWien(R.drawable.thumb_tuwien_ac_at),
|
||||||
|
Twilio(R.drawable.thumb_twilio),
|
||||||
Twitch(R.drawable.thumb_twitch),
|
Twitch(R.drawable.thumb_twitch),
|
||||||
Twitter(R.drawable.thumb_twitter),
|
Twitter(R.drawable.thumb_twitter),
|
||||||
Uber(R.drawable.thumb_uber),
|
Uber(R.drawable.thumb_uber),
|
||||||
Ubisoft(R.drawable.thumb_ubisoft),
|
|
||||||
UbiquitiNetworks(R.drawable.thumb_ubnt),
|
UbiquitiNetworks(R.drawable.thumb_ubnt),
|
||||||
|
Ubisoft(R.drawable.thumb_ubisoft),
|
||||||
|
Unity(R.drawable.thumb_unity),
|
||||||
UbuntuOne(R.drawable.thumb_ubuntu_one),
|
UbuntuOne(R.drawable.thumb_ubuntu_one),
|
||||||
|
Uphold(R.drawable.thumb_uphold),
|
||||||
|
USAA(R.drawable.thumb_usaa),
|
||||||
VagrantCloud(R.drawable.thumb_vagrant_cloud),
|
VagrantCloud(R.drawable.thumb_vagrant_cloud),
|
||||||
|
VEXXHOST(R.drawable.thumb_vexxhost),
|
||||||
VK(R.drawable.thumb_vk),
|
VK(R.drawable.thumb_vk),
|
||||||
Vultr(R.drawable.thumb_vultr),
|
Vultr(R.drawable.thumb_vultr),
|
||||||
Wallabag(R.drawable.thumb_wallabag),
|
Wallabag(R.drawable.thumb_wallabag),
|
||||||
Wallet(R.drawable.thumb_wallet),
|
Wallet(R.drawable.thumb_wallet),
|
||||||
Wargaming(R.drawable.thumb_wargaming),
|
Wargaming(R.drawable.thumb_wargaming),
|
||||||
Wasabi(R.drawable.thumb_wasabi),
|
Wasabi(R.drawable.thumb_wasabi),
|
||||||
|
Weclapp(R.drawable.thumb_weclapp),
|
||||||
|
WebDe(R.drawable.thumb_web_de),
|
||||||
Wikimedia(R.drawable.thumb_wikimedia),
|
Wikimedia(R.drawable.thumb_wikimedia),
|
||||||
Wordpress(R.drawable.thumb_wordpress),
|
Wordpress(R.drawable.thumb_wordpress),
|
||||||
Zoho(R.drawable.thumb_zoho);
|
Workplace(R.drawable.thumb_workplace),
|
||||||
|
Xero(R.drawable.thumb_xero),
|
||||||
|
Xerox(R.drawable.thumb_xerox),
|
||||||
|
Xing(R.drawable.thumb_xing),
|
||||||
|
YandexMoney(R.drawable.thumb_yandex_money),
|
||||||
|
Zapier(R.drawable.thumb_zapier),
|
||||||
|
Zendesk(R.drawable.thumb_zendesk),
|
||||||
|
Zoho(R.drawable.thumb_zoho),
|
||||||
|
Zoom(R.drawable.thumb_zoom);
|
||||||
|
|
||||||
private int resource;
|
private int resource;
|
||||||
private AssetType assetType;
|
private AssetType assetType;
|
||||||
|
@ -275,7 +333,7 @@ public class EntryThumbnail {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (thumbnail.getAssetType() == AssetType.Vector) {
|
if (thumbnail.getAssetType() == AssetType.Vector) {
|
||||||
Drawable drawable = context.getResources().getDrawable(thumbnail.getResource());
|
Drawable drawable = AppCompatResources.getDrawable(context, thumbnail.getResource());
|
||||||
Bitmap bitmap = Bitmap.createBitmap(drawable.getMinimumWidth(), drawable.getMinimumHeight(), Bitmap.Config.ARGB_8888);
|
Bitmap bitmap = Bitmap.createBitmap(drawable.getMinimumWidth(), drawable.getMinimumHeight(), Bitmap.Config.ARGB_8888);
|
||||||
Canvas canvas = new Canvas(bitmap);
|
Canvas canvas = new Canvas(bitmap);
|
||||||
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 Richy HBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2013 The Android Open Source Project
|
* Copyright (C) 2013 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -24,6 +24,7 @@ package org.shadowice.flocke.andotp.Utilities;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.net.Uri;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
|
|
||||||
|
@ -57,17 +58,9 @@ public class Settings {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.settings = PreferenceManager.getDefaultSharedPreferences(context);
|
this.settings = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
setupDeviceDependedDefaults();
|
|
||||||
migrateDeprecatedSettings();
|
migrateDeprecatedSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupDeviceDependedDefaults() {
|
|
||||||
if (! settings.contains(getResString(R.string.settings_key_backup_directory))
|
|
||||||
|| settings.getString(getResString(R.string.settings_key_backup_directory), "").isEmpty()) {
|
|
||||||
setString(R.string.settings_key_backup_directory, Constants.BACKUP_FOLDER);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void migrateDeprecatedSettings() {
|
private void migrateDeprecatedSettings() {
|
||||||
if (settings.contains(getResString(R.string.settings_key_auth_password))) {
|
if (settings.contains(getResString(R.string.settings_key_auth_password))) {
|
||||||
setAuthCredentials(getString(R.string.settings_key_auth_password, ""));
|
setAuthCredentials(getString(R.string.settings_key_auth_password, ""));
|
||||||
|
@ -89,7 +82,9 @@ public class Settings {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.contains(getResString(R.string.settings_key_tap_to_reveal))) {
|
if (settings.contains(getResString(R.string.settings_key_tap_to_reveal))) {
|
||||||
|
if (getBoolean(R.string.settings_key_tap_to_reveal, false)) {
|
||||||
setString(R.string.settings_key_tap_single, Constants.TapMode.REVEAL.toString().toLowerCase(Locale.ENGLISH));
|
setString(R.string.settings_key_tap_single, Constants.TapMode.REVEAL.toString().toLowerCase(Locale.ENGLISH));
|
||||||
|
}
|
||||||
remove(R.string.settings_key_tap_to_reveal);
|
remove(R.string.settings_key_tap_to_reveal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,10 +409,6 @@ public class Settings {
|
||||||
return getBoolean(R.string.settings_key_backup_ask, true);
|
return getBoolean(R.string.settings_key_backup_ask, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBackupDir() {
|
|
||||||
return getString(R.string.settings_key_backup_directory, Constants.BACKUP_FOLDER);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBackupPassword() {
|
public String getBackupPassword() {
|
||||||
return getString(R.string.settings_key_backup_password, "");
|
return getString(R.string.settings_key_backup_password, "");
|
||||||
}
|
}
|
||||||
|
@ -536,14 +527,6 @@ public class Settings {
|
||||||
setBoolean(R.string.settings_key_last_used_dialog_shown, value);
|
setBoolean(R.string.settings_key_last_used_dialog_shown, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getNewBackupFormatDialogShown() {
|
|
||||||
return getBoolean(R.string.settings_key_new_backup_format_dialog_shown, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNewBackupFormatDialogShown(boolean value) {
|
|
||||||
setBoolean(R.string.settings_key_new_backup_format_dialog_shown, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getAndroidBackupServiceEnabled() {
|
public boolean getAndroidBackupServiceEnabled() {
|
||||||
return getBoolean(R.string.settings_key_enable_android_backup_service, true);
|
return getBoolean(R.string.settings_key_enable_android_backup_service, true);
|
||||||
}
|
}
|
||||||
|
@ -553,7 +536,7 @@ public class Settings {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getIsAppendingDateTimeToBackups() {
|
public boolean getIsAppendingDateTimeToBackups() {
|
||||||
return getBoolean(R.string.settings_key_backup_append_date_time, false);
|
return getBoolean(R.string.settings_key_backup_append_date_time, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAuthInactivityDelay() {
|
public int getAuthInactivityDelay() {
|
||||||
|
@ -602,4 +585,20 @@ public class Settings {
|
||||||
String doubleTap = getString(R.string.settings_key_tap_double, R.string.settings_default_tap_double);
|
String doubleTap = getString(R.string.settings_key_tap_double, R.string.settings_default_tap_double);
|
||||||
return Constants.TapMode.valueOf(doubleTap.toUpperCase(Locale.ENGLISH));
|
return Constants.TapMode.valueOf(doubleTap.toUpperCase(Locale.ENGLISH));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setBackupLocation(Uri uri) {
|
||||||
|
setString(R.string.settings_key_backup_location, uri.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uri getBackupLocation() {
|
||||||
|
return Uri.parse(getString(R.string.settings_key_backup_location, ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBackupLocationSet() {
|
||||||
|
return !getString(R.string.settings_key_backup_location, "").isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getBlockAutofill() {
|
||||||
|
return getBoolean(R.string.settings_key_block_autofill, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2015 Bruno Bierbaumer
|
* Copyright (C) 2015 Bruno Bierbaumer
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -34,6 +34,7 @@ import androidx.appcompat.widget.PopupMenu;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
|
@ -41,6 +42,7 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.Filter;
|
import android.widget.Filter;
|
||||||
import android.widget.Filterable;
|
import android.widget.Filterable;
|
||||||
|
@ -173,17 +175,21 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
||||||
if(auto_backup) {
|
if(auto_backup) {
|
||||||
Constants.BackupType backupType = BackupHelper.autoBackupType(context);
|
Constants.BackupType backupType = BackupHelper.autoBackupType(context);
|
||||||
if (backupType == Constants.BackupType.ENCRYPTED) {
|
if (backupType == Constants.BackupType.ENCRYPTED) {
|
||||||
Uri backupFilename = Tools.buildUri(settings.getBackupDir(), BackupHelper.backupFilename(context, Constants.BackupType.ENCRYPTED));
|
BackupHelper.BackupFile cryptBackupFile = BackupHelper.backupFile(context, settings.getBackupLocation(), Constants.BackupType.ENCRYPTED);
|
||||||
|
|
||||||
|
if (cryptBackupFile.file != null) {
|
||||||
byte[] keyMaterial = encryptionKey.getEncoded();
|
byte[] keyMaterial = encryptionKey.getEncoded();
|
||||||
SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
|
SecretKey encryptionKey = EncryptionHelper.generateSymmetricKey(keyMaterial);
|
||||||
|
|
||||||
boolean success = BackupHelper.backupToFile(context, backupFilename, settings.getBackupPasswordEnc(), encryptionKey);
|
boolean success = BackupHelper.backupToFile(context, cryptBackupFile.file.getUri(), settings.getBackupPasswordEnc(), encryptionKey);
|
||||||
if (success) {
|
if (success) {
|
||||||
Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show();
|
Toast.makeText(context, R.string.backup_toast_export_success, Toast.LENGTH_LONG).show();
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show();
|
Toast.makeText(context, R.string.backup_toast_export_failed, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Toast.makeText(context, cryptBackupFile.errorMessage, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -434,7 +440,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
||||||
container.setPaddingRelative(marginMedium, marginSmall, marginMedium, 0);
|
container.setPaddingRelative(marginMedium, marginSmall, marginMedium, 0);
|
||||||
container.addView(input);
|
container.addView(input);
|
||||||
|
|
||||||
builder.setTitle(R.string.dialog_title_counter)
|
AlertDialog dialog = builder.setTitle(R.string.dialog_title_counter)
|
||||||
.setView(container)
|
.setView(container)
|
||||||
.setPositiveButton(R.string.button_save, new DialogInterface.OnClickListener() {
|
.setPositiveButton(R.string.button_save, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -455,8 +461,38 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {}
|
public void onClick(DialogInterface dialogInterface, int i) {}
|
||||||
})
|
})
|
||||||
.create()
|
.create();
|
||||||
.show();
|
addCounterValidationWatcher(input, dialog);
|
||||||
|
dialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addCounterValidationWatcher(EditText input, AlertDialog dialog) {
|
||||||
|
TextWatcher counterWatcher = new TextWatcher() {
|
||||||
|
@Override
|
||||||
|
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterTextChanged(Editable input) {
|
||||||
|
Button positive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
|
||||||
|
if (positive != null) {
|
||||||
|
positive.setEnabled(isZeroOrPositiveLongInput(input));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isZeroOrPositiveLongInput(Editable input) {
|
||||||
|
try {
|
||||||
|
return !TextUtils.isEmpty(input) && (Long.parseLong(input.toString()) >= 0);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
input.addTextChangedListener(counterWatcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean updateLastUsedAndFrequency(int position, int realIndex) {
|
private boolean updateLastUsedAndFrequency(int position, int realIndex) {
|
||||||
|
@ -471,7 +507,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
||||||
|
|
||||||
entries.get(realIndex).setLastUsed(timeStamp);
|
entries.get(realIndex).setLastUsed(timeStamp);
|
||||||
entries.get(realIndex).setUsedFrequency(entryUsedFrequency + 1);
|
entries.get(realIndex).setUsedFrequency(entryUsedFrequency + 1);
|
||||||
saveEntries(settings.getAutoBackupEncryptedFullEnabled());
|
saveEntries(false);
|
||||||
|
|
||||||
if (sortMode == SortMode.LAST_USED) {
|
if (sortMode == SortMode.LAST_USED) {
|
||||||
displayedEntries = sortEntries(displayedEntries);
|
displayedEntries = sortEntries(displayedEntries);
|
||||||
|
@ -494,7 +530,7 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntryViewHolder>
|
||||||
displayedEntries = new ArrayList<>(entries);
|
displayedEntries = new ArrayList<>(entries);
|
||||||
notifyItemMoved(fromPosition, toPosition);
|
notifyItemMoved(fromPosition, toPosition);
|
||||||
|
|
||||||
saveEntries(settings.getAutoBackupEncryptedFullEnabled());
|
saveEntries(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -35,7 +35,6 @@ import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import org.shadowice.flocke.andotp.Database.Entry;
|
import org.shadowice.flocke.andotp.Database.Entry;
|
||||||
import org.shadowice.flocke.andotp.R;
|
import org.shadowice.flocke.andotp.R;
|
||||||
|
@ -64,6 +63,8 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
||||||
private FrameLayout thumbnailFrame;
|
private FrameLayout thumbnailFrame;
|
||||||
private ImageView visibleImg;
|
private ImageView visibleImg;
|
||||||
private ImageView thumbnailImg;
|
private ImageView thumbnailImg;
|
||||||
|
private ImageButton menuButton;
|
||||||
|
private ImageButton copyButton;
|
||||||
private TextView value;
|
private TextView value;
|
||||||
private TextView issuer;
|
private TextView issuer;
|
||||||
private TextView label;
|
private TextView label;
|
||||||
|
@ -92,8 +93,8 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
||||||
counter = v.findViewById(R.id.counter);
|
counter = v.findViewById(R.id.counter);
|
||||||
progressBar = v.findViewById(R.id.cardProgressBar);
|
progressBar = v.findViewById(R.id.cardProgressBar);
|
||||||
|
|
||||||
ImageButton menuButton = v.findViewById(R.id.menuButton);
|
menuButton = v.findViewById(R.id.menuButton);
|
||||||
ImageButton copyButton = v.findViewById(R.id.copyButton);
|
copyButton = v.findViewById(R.id.copyButton);
|
||||||
ImageView invisibleImg = v.findViewById(R.id.coverImg);
|
ImageView invisibleImg = v.findViewById(R.id.coverImg);
|
||||||
|
|
||||||
// Style the buttons in the current theme colors
|
// Style the buttons in the current theme colors
|
||||||
|
@ -168,28 +169,39 @@ public class EntryViewHolder extends RecyclerView.ViewHolder
|
||||||
|
|
||||||
final String tokenFormatted = Tools.formatToken(entry.getCurrentOTP(), settings.getTokenSplitGroupSize());
|
final String tokenFormatted = Tools.formatToken(entry.getCurrentOTP(), settings.getTokenSplitGroupSize());
|
||||||
|
|
||||||
|
String contentHint = "";
|
||||||
|
|
||||||
String issuerText = entry.getIssuer();
|
String issuerText = entry.getIssuer();
|
||||||
if (!TextUtils.isEmpty(issuerText)) {
|
if (!TextUtils.isEmpty(issuerText)) {
|
||||||
issuer.setText(entry.getIssuer());
|
issuer.setText(issuerText);
|
||||||
issuer.setVisibility(View.VISIBLE);
|
issuer.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
contentHint = issuerText;
|
||||||
} else {
|
} else {
|
||||||
issuer.setVisibility(View.GONE);
|
issuer.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
String labelText = entry.getLabel();
|
String labelText = entry.getLabel();
|
||||||
if (!TextUtils.isEmpty(labelText)) {
|
if (!TextUtils.isEmpty(labelText)) {
|
||||||
label.setText(entry.getLabel());
|
label.setText(labelText);
|
||||||
label.setVisibility(View.VISIBLE);
|
label.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
contentHint = labelText;
|
||||||
} else {
|
} else {
|
||||||
label.setVisibility(View.GONE);
|
label.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! issuerText.isEmpty() && ! labelText.isEmpty()) {
|
if (!TextUtils.isEmpty(issuerText) && !TextUtils.isEmpty(labelText)) {
|
||||||
separator.setVisibility(View.VISIBLE);
|
separator.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
contentHint = issuerText + " - " + labelText;
|
||||||
} else {
|
} else {
|
||||||
separator.setVisibility(View.GONE);
|
separator.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
copyButton.setContentDescription(context.getString(R.string.button_card_copy_format, contentHint));
|
||||||
|
menuButton.setContentDescription(context.getString(R.string.button_card_options_format, contentHint));
|
||||||
|
|
||||||
value.setText(tokenFormatted);
|
value.setText(tokenFormatted);
|
||||||
// save the unformatted token to the tag of this TextView for copy/paste
|
// save the unformatted token to the tag of this TextView for copy/paste
|
||||||
value.setTag(entry.getCurrentOTP());
|
value.setTag(entry.getCurrentOTP());
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 RichyHBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017-2018 Jakob Nixdorf
|
* Copyright (C) 2017-2020 Jakob Nixdorf
|
||||||
* Copyright (C) 2017-2018 Richy HBM
|
* Copyright (C) 2017-2020 Richy HBM
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -101,6 +101,8 @@ public class ThumbnailSelectionAdapter extends BaseAdapter {
|
||||||
EntryThumbnail.EntryThumbnails thumb = (EntryThumbnail.EntryThumbnails)getItem(i);
|
EntryThumbnail.EntryThumbnails thumb = (EntryThumbnail.EntryThumbnails)getItem(i);
|
||||||
|
|
||||||
imageView.setImageBitmap(EntryThumbnail.getThumbnailGraphic(context, issuer, label, thumbnailSize, thumb));
|
imageView.setImageBitmap(EntryThumbnail.getThumbnailGraphic(context, issuer, label, thumbnailSize, thumb));
|
||||||
|
imageView.setContentDescription(thumb.name());
|
||||||
|
|
||||||
return imageView;
|
return imageView;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
39
app/src/main/res/drawable/thumb_23andme.xml
Normal file
39
app/src/main/res/drawable/thumb_23andme.xml
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="136.85dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="136.85">
|
||||||
|
<path
|
||||||
|
android:pathData="M10.96,116.7c-1.73,0 -3.39,-0.4 -4.94,-1.18c-2.61,-1.32 -4.56,-3.58 -5.47,-6.37c-0.91,-2.78 -0.69,-5.76 0.64,-8.37l14.69,-29.93l9.36,30.7l-4.49,9.15C18.87,114.39 15.12,116.7 10.96,116.7z"
|
||||||
|
android:fillColor="#7AC043"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M62.32,1.13c-5.43,-2.67 -12,-0.43 -14.67,5c0,0 0,0.01 0,0.01l-17.63,35.9l9.36,30.69L67.33,15.8C70,10.36 67.76,3.8 62.32,1.13C62.32,1.13 62.32,1.13 62.32,1.13"
|
||||||
|
android:fillColor="#7AC043"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M33.64,129.08c1.77,5.79 7.89,9.05 13.68,7.29c0,0 0,0 0,0c5.79,-1.76 9.06,-7.89 7.29,-13.68c0,0 0,0 0,0L39.38,72.74l-14.14,28.81L33.64,129.08L33.64,129.08zM23.86,21.84c-1.86,-5.76 -8.04,-8.93 -13.81,-7.07c-5.63,1.82 -8.8,7.77 -7.17,13.46l12.99,42.61l14.14,-28.81L23.86,21.84L23.86,21.84z"
|
||||||
|
android:fillColor="#D50F67"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M15.88,70.85l9.36,30.69l14.14,-28.81l-9.36,-30.69L15.88,70.85z"
|
||||||
|
android:fillColor="#49A847"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M70.42,80.1H53.65c-0.04,-0.37 -0.04,-0.71 -0.04,-0.97c0,-4.23 1.67,-7.01 5.75,-9.68c2.12,-1.41 3.41,-2.26 3.94,-2.63c0.55,-0.41 1,-0.93 1.37,-1.52c0.36,-0.63 0.56,-1.35 0.56,-2.08c0,-1.86 -1.26,-3.12 -3.08,-3.12c-2.23,0 -3.49,1.56 -3.56,4.45h-4.97c0.07,-3.19 0.82,-5.04 2.67,-6.57c1.56,-1.26 3.45,-1.9 5.86,-1.9c5.09,0 8.32,2.67 8.32,6.9c0,3.34 -1.71,5.65 -6.35,8.65c-3.52,2.26 -3.97,2.71 -4.34,4.34h10.65L70.42,80.1z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M77.43,72.82c0,2.3 1.52,3.75 3.86,3.75c2.19,0 3.6,-1.22 3.6,-3.12c0,-2.26 -1.41,-3.15 -5.05,-3.15h-0.55v-4.05h0.52c3.48,0 4.86,-0.85 4.86,-3.04c0,-1.78 -1.38,-3.08 -3.3,-3.08c-2.3,0 -3.56,1.38 -3.56,3.9v0.04h-5.16c0.15,-3.05 0.85,-4.64 2.71,-6.12c1.52,-1.22 3.56,-1.86 6.12,-1.86c4.97,0 8.24,2.56 8.24,6.5c0,2.78 -1.59,4.82 -4.42,5.53c1,0.22 1.37,0.37 1.89,0.67c1.86,0.97 2.82,2.71 2.82,4.94c0,4.23 -3.34,6.86 -8.61,6.86c-5.75,0 -9.05,-3 -9.05,-8.35h5.12C77.47,72.49 77.43,72.67 77.43,72.82"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M100.44,61.65c2.6,0 4.68,0.7 6.01,2.08c1.3,1.3 1.74,2.74 1.74,5.94c-0.04,0.26 -0.04,1.11 -0.07,2.6v1.67c0,2.82 0.15,4.67 0.48,6.16h-4.19c-0.19,-1 -0.19,-1.34 -0.19,-2v-0.74c-1.3,2.23 -3.12,3.15 -6.05,3.15c-3.82,0 -6.49,-2.23 -6.49,-5.42c0,-1.33 0.52,-2.59 1.38,-3.49c1.04,-1.08 2.34,-1.63 4.78,-2.12c1.89,-0.33 3.93,-0.63 5.64,-0.74c0,-2.53 -0.89,-3.6 -2.97,-3.6c-1.97,0 -2.97,0.89 -3.08,2.63h-5.08C92.61,63.95 95.61,61.65 100.44,61.65zM102.82,72.08l-1.67,0.26c-3.11,0.48 -4.34,1.19 -4.34,2.56c0,1.26 1.12,2.12 2.71,2.12c2.56,0 3.9,-1.67 3.97,-5.05L102.82,72.08z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M116.21,64.4c1.3,-1.74 3.04,-2.63 5.23,-2.63c2.6,0 4.83,1.37 5.6,3.49c0.45,1.11 0.52,2.01 0.52,4.68V80.1h-4.93V69.6c0,-2.9 -0.82,-4.04 -2.86,-4.04c-2.27,0 -3.3,1.67 -3.3,5.27v9.28h-4.94V62.17h4.68L116.21,64.4L116.21,64.4z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M147.23,80.1h-4.68v-2.38c-1.15,1.86 -2.93,2.79 -5.23,2.79c-4.34,0 -7.38,-3.82 -7.38,-9.31c0,-5.61 2.89,-9.43 7.16,-9.43c2.41,0 4.01,0.82 5.2,2.67v-9.05h4.93V80.1zM138.59,76.46c2.26,0 3.79,-2.12 3.79,-5.35c-0.04,-3.3 -1.41,-5.27 -3.71,-5.27c-2.3,0 -3.75,2.08 -3.75,5.31C134.91,74.27 136.44,76.46 138.59,76.46z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M178.93,80.1l-4.94,0l0,-19.89l-6.05,19.89l-5.38,0l-6.13,-19.89l0,19.89l-4.93,0l0,-24.72l8.28,0l5.67,18.71l5.57,-18.71l7.9,0z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M191.32,80.5c-5.57,0 -9.13,-3.68 -9.13,-9.46c0,-5.57 3.6,-9.28 8.98,-9.28c5.42,0 8.83,3.71 8.83,9.72c0,0.29 -0.04,0.52 -0.04,1.15h-12.69c0.11,2.6 1.63,4.08 4.15,4.08c1.67,0 2.78,-0.7 3.27,-2.12h5.27C198.81,78.46 195.77,80.5 191.32,80.5L191.32,80.5zM194.88,69.07c-0.07,-2.19 -1.56,-3.67 -3.75,-3.67c-2.15,0 -3.49,1.26 -3.9,3.67H194.88z"
|
||||||
|
android:fillColor="#9C9EA1"/>
|
||||||
|
</vector>
|
10
app/src/main/res/drawable/thumb_adafruit.xml
Normal file
10
app/src/main/res/drawable/thumb_adafruit.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="199.94dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="199.94">
|
||||||
|
<path
|
||||||
|
android:pathData="m199.86,88.06c-0.65,-4.10 -2.87,-5.26 -8.23,-6.98 -4.07,-1.30 -31.36,-9.99 -31.36,-9.99 0,0 -19.00,-7.17 -33.10,2.98 -1.89,1.36 -3.86,2.92 -5.84,4.58 1.66,-1.97 3.21,-3.94 4.58,-5.84 10.13,-14.11 2.91,-33.11 2.91,-33.11 0,0 -8.73,-27.26 -10.05,-31.34 -1.73,-5.35 -2.9,-7.57 -6.99,-8.21 -4.09,-0.64 -5.89,1.10 -9.18,5.67 -2.50,3.47 -19.20,26.73 -19.20,26.73 0,0 -12.70,15.86 -7.39,32.41 0.71,2.22 1.58,4.57 2.56,6.97C77.17,69.72 75.78,67.64 74.40,65.75 64.10,51.75 43.80,52.74 43.80,52.74c0,0 -28.63,-0.11 -32.91,-0.12 -5.62,-0.01 -8.09,0.41 -9.98,4.11 -1.87,3.7 -0.76,5.94 2.55,10.48 2.52,3.45 19.49,26.52 19.49,26.52 0,0 11.16,16.98 28.53,17.05 2.33,0.01 4.83,-0.09 7.40,-0.28 -2.50,0.62 -4.91,1.30 -7.12,2.03 -16.49,5.46 -21.82,25.07 -21.82,25.07 0,0 -8.95,27.2 -10.28,31.26 -1.74,5.34 -2.10,7.83 0.82,10.76 2.93,2.92 5.41,2.57 10.76,0.81 4.06,-1.33 31.25,-10.34 31.25,-10.34 0,0 19.60,-5.37 25.03,-21.87 0.72,-2.21 1.40,-4.61 2.02,-7.11 -0.17,2.57 -0.27,5.06 -0.26,7.39 0.10,17.37 17.10,28.50 17.10,28.50 0,0 23.10,16.91 26.55,19.44 4.54,3.31 6.79,4.42 10.49,2.53 3.69,-1.88 4.11,-4.36 4.09,-9.98 -0.01,-4.27 -0.18,-32.91 -0.18,-32.91 0,0 0.95,-20.29 -13.06,-30.56 -1.88,-1.37 -3.96,-2.76 -6.15,-4.13 2.39,0.96 4.73,1.83 6.96,2.54 16.55,5.27 32.39,-7.45 32.39,-7.45 0,0 23.23,-16.74 26.70,-19.25 4.56,-3.29 6.31,-5.09 5.65,-9.19zM101.24,66.98c3.12,0.49 4.67,7.13 3.45,14.83 -1.21,7.70 -4.72,13.54 -7.85,13.05 -3.12,-0.49 -4.67,-7.13 -3.46,-14.83 1.21,-7.70 4.72,-13.55 7.85,-13.05zM61.24,87.40c1.43,-2.82 8.22,-2.23 15.18,1.29 6.95,3.53 11.42,8.68 9.99,11.5 -1.43,2.82 -8.23,2.24 -15.18,-1.29C64.28,95.37 59.80,90.22 61.24,87.40ZM82.33,125.82c-5.50,5.51 -11.79,8.17 -14.03,5.94 -2.23,-2.23 0.41,-8.51 5.92,-14.03 5.50,-5.51 11.78,-8.18 14.02,-5.94 2.23,2.23 -0.41,8.52 -5.92,14.04zM112.67,138.75c-2.81,1.43 -7.97,-3.02 -11.51,-9.97 -3.54,-6.94 -4.13,-13.74 -1.32,-15.17 2.81,-1.43 7.97,3.02 11.51,9.96 3.54,6.94 4.13,13.73 1.32,15.18zM119.98,106.59c-7.7,1.22 -14.34,-0.31 -14.84,-3.43 -0.49,-3.12 5.34,-6.65 13.04,-7.87 7.70,-1.22 14.34,0.30 14.84,3.43 0.49,3.12 -5.33,6.64 -13.04,7.87z"
|
||||||
|
android:strokeWidth="1.28"
|
||||||
|
android:fillColor="#000000"/>
|
||||||
|
</vector>
|
|
@ -1,4 +1,14 @@
|
||||||
<vector android:height="49.9dp" android:viewportHeight="99.9"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="320.1" android:width="159.88979dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="128dp"
|
||||||
<path android:fillColor="#FF5A5F" android:pathData="M168.7,25.1c0,3.6 -2.9,6.5 -6.5,6.5s-6.5,-2.9 -6.5,-6.5s2.8,-6.5 6.5,-6.5C165.9,18.7 168.7,21.6 168.7,25.1zM141.9,38.2c0,0.6 0,1.6 0,1.6s-3.1,-4 -9.7,-4c-10.9,0 -19.4,8.3 -19.4,19.8c0,11.4 8.4,19.8 19.4,19.8c6.7,0 9.7,-4.1 9.7,-4.1v1.7c0,0.8 0.6,1.4 1.4,1.4h8.1V36.8c0,0 -7.4,0 -8.1,0C142.5,36.8 141.9,37.5 141.9,38.2zM141.9,62.3c-1.5,2.2 -4.5,4.1 -8.1,4.1c-6.4,0 -11.3,-4 -11.3,-10.8s4.9,-10.8 11.3,-10.8c3.5,0 6.7,2 8.1,4.1V62.3zM157.4,36.8h9.6v37.6h-9.6V36.8zM300.8,35.8c-6.6,0 -9.7,4 -9.7,4V18.7h-9.6v55.7c0,0 7.4,0 8.1,0c0.8,0 1.4,-0.7 1.4,-1.4v-1.7l0,0c0,0 3.1,4.1 9.7,4.1c10.9,0 19.4,-8.4 19.4,-19.8C320.1,44.2 311.6,35.8 300.8,35.8zM299.2,66.3c-3.7,0 -6.6,-1.9 -8.1,-4.1V48.8c1.5,-2 4.7,-4.1 8.1,-4.1c6.4,0 11.3,4 11.3,10.8S305.6,66.3 299.2,66.3zM276.5,52.1v22.4h-9.6V53.2c0,-6.2 -2,-8.7 -7.4,-8.7c-2.9,0 -5.9,1.5 -7.8,3.7v26.2h-9.6V36.8h7.6c0.8,0 1.4,0.7 1.4,1.4v1.6c2.8,-2.9 6.5,-4 10.2,-4c4.2,0 7.7,1.2 10.5,3.6C275.2,42.2 276.5,45.8 276.5,52.1zM218.8,35.8c-6.6,0 -9.7,4 -9.7,4V18.7h-9.6v55.7c0,0 7.4,0 8.1,0c0.8,0 1.4,-0.7 1.4,-1.4v-1.7l0,0c0,0 3.1,4.1 9.7,4.1c10.9,0 19.4,-8.4 19.4,-19.8C238.2,44.2 229.7,35.8 218.8,35.8zM217.2,66.3c-3.7,0 -6.6,-1.9 -8.1,-4.1V48.8c1.5,-2 4.7,-4.1 8.1,-4.1c6.4,0 11.3,4 11.3,10.8S223.6,66.3 217.2,66.3zM191.2,35.8c2.9,0 4.4,0.5 4.4,0.5v8.9c0,0 -8,-2.7 -13,3v26.3h-9.6V36.8c0,0 7.4,0 8.1,0c0.8,0 1.4,0.7 1.4,1.4v1.6C184.3,37.7 188.2,35.8 191.2,35.8zM91.5,71c-0.5,-1.2 -1,-2.5 -1.5,-3.6c-0.8,-1.8 -1.6,-3.5 -2.3,-5.1l-0.1,-0.1c-6.9,-15 -14.3,-30.2 -22.1,-45.2l-0.3,-0.6c-0.8,-1.5 -1.6,-3.1 -2.4,-4.7c-1,-1.8 -2,-3.7 -3.6,-5.5C56,2.2 51.4,0 46.5,0c-5,0 -9.5,2.2 -12.8,6c-1.5,1.8 -2.6,3.7 -3.6,5.5c-0.8,1.6 -1.6,3.2 -2.4,4.7l-0.3,0.6C19.7,31.8 12.2,47 5.3,62l-0.1,0.2c-0.7,1.6 -1.5,3.3 -2.3,5.1c-0.5,1.1 -1,2.3 -1.5,3.6c-1.3,3.7 -1.7,7.2 -1.2,10.8c1.1,7.5 6.1,13.8 13,16.6c2.6,1.1 5.3,1.6 8.1,1.6c0.8,0 1.8,-0.1 2.6,-0.2c3.3,-0.4 6.7,-1.5 10,-3.4c4.1,-2.3 8,-5.6 12.4,-10.4c4.4,4.8 8.4,8.1 12.4,10.4c3.3,1.9 6.7,3 10,3.4c0.8,0.1 1.8,0.2 2.6,0.2c2.8,0 5.6,-0.5 8.1,-1.6c7,-2.8 11.9,-9.2 13,-16.6C93.2,78.2 92.8,74.7 91.5,71zM46.4,76.2c-5.4,-6.8 -8.9,-13.2 -10.1,-18.6c-0.5,-2.3 -0.6,-4.3 -0.3,-6.1c0.2,-1.6 0.8,-3 1.6,-4.2c1.9,-2.7 5.1,-4.4 8.8,-4.4c3.7,0 7,1.6 8.8,4.4c0.8,1.2 1.4,2.6 1.6,4.2c0.3,1.8 0.2,3.9 -0.3,6.1C55.3,62.9 51.8,69.3 46.4,76.2zM86.3,80.9c-0.7,5.2 -4.2,9.7 -9.1,11.7c-2.4,1 -5,1.3 -7.6,1c-2.5,-0.3 -5,-1.1 -7.6,-2.6c-3.6,-2 -7.2,-5.1 -11.4,-9.7c6.6,-8.1 10.6,-15.5 12.1,-22.1c0.7,-3.1 0.8,-5.9 0.5,-8.5c-0.4,-2.5 -1.3,-4.8 -2.7,-6.8c-3.1,-4.5 -8.3,-7.1 -14.1,-7.1s-11,2.7 -14.1,7.1c-1.4,2 -2.3,4.3 -2.7,6.8c-0.4,2.6 -0.3,5.5 0.5,8.5c1.5,6.6 5.6,14.1 12.1,22.2c-4.1,4.6 -7.8,7.7 -11.4,9.7c-2.6,1.5 -5.1,2.3 -7.6,2.6c-2.7,0.3 -5.3,-0.1 -7.6,-1c-4.9,-2 -8.4,-6.5 -9.1,-11.7c-0.3,-2.5 -0.1,-5 0.9,-7.8c0.3,-1 0.8,-2 1.3,-3.2c0.7,-1.6 1.5,-3.3 2.3,-5l0.1,-0.2c6.9,-14.9 14.3,-30.1 22,-44.9l0.3,-0.6c0.8,-1.5 1.6,-3.1 2.4,-4.6c0.8,-1.6 1.7,-3.1 2.8,-4.4c2.1,-2.4 4.9,-3.7 8,-3.7c3.1,0 5.9,1.3 8,3.7c1.1,1.3 2,2.8 2.8,4.4c0.8,1.5 1.6,3.1 2.4,4.6l0.3,0.6C67.7,34.8 75.1,50 82,64.9L82,65c0.8,1.6 1.5,3.4 2.3,5c0.5,1.2 1,2.2 1.3,3.2C86.4,75.8 86.7,78.3 86.3,80.9z"/>
|
android:height="128dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="128">
|
||||||
|
<path
|
||||||
|
android:pathData="M0,0h128v128h-128z"
|
||||||
|
android:strokeWidth="0.25"
|
||||||
|
android:fillColor="#ff5a5f"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m63.75,21c-7.25,0 -10.25,6 -10.25,6 -9,16.5 -17,33.25 -25.25,50.75 0,0 -6.5,12.75 3.75,21 14.25,11.25 27.5,-5.5 31.75,-9.75 4.25,-4.25 12,-14 12,-25 0,0 -0.25,-11 -12,-11C52,53 51.5,64 51.5,64c0,10.25 8,20.75 12.25,25 4.25,4.5 17.75,21.25 32.25,9.75 9,-7.25 3.25,-21 3.25,-21C91.5,60.75 82.5,42 74.25,27c0,0 -2.5,-6 -10.5,-6z"
|
||||||
|
android:strokeWidth="5.75"
|
||||||
|
android:strokeColor="#ffffff"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,8 +1,57 @@
|
||||||
<vector android:height="24.00647dp" android:viewportHeight="148"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="680" android:width="110.3dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200dp"
|
||||||
<path android:fillColor="#333" android:pathData="M272.85,85.198L261.013,53.29c-0.483,-1.305 -2.329,-1.305 -2.813,0L246.365,85.2a1.5,1.5 0,0 0,1.407 2.021h23.671a1.5,1.5 0,0 0,1.406 -2.022m5.469,17.934h-37.42a1.5,1.5 0,0 0,-1.406 0.978l-7.367,19.854a1.5,1.5 0,0 1,-1.406 0.978L214.5,124.943a1.5,1.5 0,0 1,-1.392 -2.058l37.341,-93.022a1.5,1.5 0,0 1,1.393 -0.94h15.53c0.612,0 1.163,0.372 1.392,0.94l37.34,93.021a1.5,1.5 0,0 1,-1.392 2.06h-16.216a1.5,1.5 0,0 1,-1.406 -0.979l-7.368,-19.854a1.5,1.5 0,0 0,-1.406 -0.978m35.387,-41.564h13.872a1.5,1.5 0,0 1,1.5 1.5v60.374a1.5,1.5 0,0 1,-1.5 1.5h-13.872a1.5,1.5 0,0 1,-1.5 -1.5L312.203,63.068a1.5,1.5 0,0 1,1.5 -1.5m65.964,14.687a1.5,1.5 0,0 1,-1.5 1.5h-0.42c-6.859,0 -11.89,1.646 -15.09,4.938 -3.202,3.292 -4.8,8.734 -4.8,16.324v24.426a1.5,1.5 0,0 1,-1.5 1.5h-13.736a1.5,1.5 0,0 1,-1.5 -1.5L341.121,63.068a1.5,1.5 0,0 1,1.5 -1.5h13.598a1.5,1.5 0,0 1,1.5 1.5L357.719,75.01h0.275c1.646,-4.938 4.252,-8.731 7.82,-11.385 3.565,-2.651 7.955,-3.978 13.167,-3.978h0.686v16.607zM417.597,75.697a1.5,1.5 0,0 0,-1.5 1.5v25.112c0,2.561 0.5,4.39 1.508,5.487 1.005,1.097 2.743,1.646 5.212,1.646h1.381a1.5,1.5 0,0 1,1.5 1.5v12.637a1.5,1.5 0,0 1,-1.5 1.5h-5.908c-6.127,0 -10.836,-1.577 -14.128,-4.732 -3.293,-3.155 -4.939,-7.84 -4.939,-14.06v-29.09a1.5,1.5 0,0 0,-1.5 -1.5h-8.659a1.5,1.5 0,0 1,-1.5 -1.5L387.564,63.068a1.5,1.5 0,0 1,1.5 -1.5h8.66a1.5,1.5 0,0 0,1.5 -1.5L399.224,37.691a1.5,1.5 0,0 1,1.5 -1.5h13.872a1.5,1.5 0,0 1,1.5 1.5v22.377a1.5,1.5 0,0 0,1.5 1.5h10.031a1.5,1.5 0,0 1,1.5 1.5v11.13a1.5,1.5 0,0 1,-1.5 1.5h-10.03zM481.118,106.15c3.155,-3.292 4.732,-7.59 4.732,-12.895 0,-5.302 -1.577,-9.602 -4.732,-12.894 -3.155,-3.292 -7.294,-4.938 -12.415,-4.938 -5.122,0 -9.258,1.646 -12.414,4.938 -3.154,3.292 -4.732,7.592 -4.732,12.894 0,5.305 1.578,9.603 4.732,12.895 3.156,3.292 7.292,4.938 12.414,4.938 5.121,0 9.26,-1.646 12.415,-4.938m-32.03,16.872c-4.664,-2.651 -8.346,-6.516 -11.042,-11.591 -2.699,-5.075 -4.047,-11.133 -4.047,-18.176 0,-7.04 1.348,-13.1 4.047,-18.175 2.696,-5.075 6.378,-8.937 11.042,-11.591 4.664,-2.652 9.784,-3.978 15.363,-3.978 4.938,0 9.167,0.96 12.69,2.88 3.518,1.92 6.33,4.619 8.435,8.094h0.274v-7.417a1.5,1.5 0,0 1,1.5 -1.5h13.735a1.5,1.5 0,0 1,1.5 1.5v60.374a1.5,1.5 0,0 1,-1.5 1.5L487.35,124.942a1.5,1.5 0,0 1,-1.5 -1.5v-7.416h-0.274c-2.105,3.477 -4.917,6.173 -8.436,8.093 -3.522,1.92 -7.75,2.88 -12.689,2.88 -5.579,0 -10.699,-1.326 -15.363,-3.977m110.62,-16.872c3.155,-3.292 4.732,-7.59 4.732,-12.895 0,-5.302 -1.577,-9.602 -4.732,-12.894 -3.154,-3.292 -7.293,-4.938 -12.414,-4.938 -5.122,0 -9.259,1.646 -12.414,4.938 -3.154,3.292 -4.733,7.592 -4.733,12.894 0,5.305 1.579,9.603 4.733,12.895 3.155,3.292 7.292,4.938 12.414,4.938 5.121,0 9.26,-1.646 12.414,-4.938m-20.85,17.969c-3.521,-1.92 -6.334,-4.616 -8.436,-8.093h-0.275v7.416a1.5,1.5 0,0 1,-1.5 1.5h-13.872a1.5,1.5 0,0 1,-1.5 -1.5L513.275,30.42a1.5,1.5 0,0 1,1.5 -1.5h13.872a1.5,1.5 0,0 1,1.5 1.5v40.064h0.275c2.102,-3.475 4.915,-6.173 8.436,-8.093 3.52,-1.921 7.75,-2.881 12.689,-2.881 5.577,0 10.699,1.326 15.363,3.978 4.664,2.654 8.344,6.516 11.042,11.59C580.649,80.156 582,86.216 582,93.256c0,7.043 -1.351,13.1 -4.047,18.176 -2.698,5.075 -6.378,8.94 -11.042,11.59 -4.664,2.652 -9.786,3.979 -15.363,3.979 -4.939,0 -9.169,-0.96 -12.689,-2.881m66.513,0.823L591.5,124.943a1.5,1.5 0,0 1,-1.5 -1.5v-93.02a1.5,1.5 0,0 1,1.5 -1.5h13.872a1.5,1.5 0,0 1,1.5 1.5v93.02a1.5,1.5 0,0 1,-1.5 1.5m32.722,-48.696c-2.3,1.794 -3.853,4.384 -4.657,7.772 -0.221,0.934 0.508,1.83 1.468,1.83h26.4c0.916,0 1.636,-0.82 1.488,-1.724 -0.528,-3.205 -1.902,-5.76 -4.123,-7.672 -2.606,-2.24 -6.014,-3.36 -10.22,-3.36 -4.207,0 -7.66,1.051 -10.356,3.154m33.813,-7.888c5.395,5.9 8.093,14.245 8.093,25.034v1.792a1.5,1.5 0,0 1,-1.5 1.5h-44.104a1.51,1.51 0,0 0,-1.485 1.766c0.705,4.008 2.478,7.192 5.32,9.551 3.245,2.7 7.339,4.047 12.277,4.047 6.375,0 12.276,-2.488 17.702,-7.465 0.663,-0.608 1.714,-0.479 2.228,0.26l6.744,9.68a1.5,1.5 0,0 1,-0.23 1.982,49.67 49.67,0 0,1 -10.944,7.271c-4.39,2.148 -9.557,3.224 -15.5,3.224 -6.858,0 -12.85,-1.396 -17.97,-4.184 -5.123,-2.788 -9.1,-6.72 -11.933,-11.797 -2.836,-5.075 -4.253,-10.95 -4.253,-17.627 0,-6.674 1.372,-12.572 4.115,-17.695 2.743,-5.12 6.584,-9.098 11.523,-11.934 4.938,-2.833 10.699,-4.252 17.284,-4.252 9.69,0 17.236,2.95 22.633,8.847m-341.02,-29.11c0,5.658 -4.587,10.245 -10.246,10.245 -5.66,0 -10.247,-4.587 -10.247,-10.246 0,-5.659 4.588,-10.246 10.247,-10.246s10.246,4.587 10.246,10.246"/>
|
android:height="43.52dp"
|
||||||
<path android:fillColor="#FCB400" android:pathData="M79,1.867L13.04,29.16c-3.668,1.518 -3.63,6.729 0.061,8.192l66.235,26.266a24.575,24.575 0,0 0,18.12 0l66.236,-26.267c3.69,-1.462 3.73,-6.672 0.06,-8.19L97.794,1.866a24.578,24.578 0,0 0,-18.795 0"/>
|
android:viewportWidth="200"
|
||||||
<path android:fillColor="#18BFFF" android:pathData="M94.273,77.96v65.617c0,3.12 3.147,5.258 6.048,4.108l73.806,-28.648a4.418,4.418 0,0 0,2.79 -4.108V49.313c0,-3.121 -3.147,-5.258 -6.048,-4.108L97.063,73.853a4.42,4.42 0,0 0,-2.79 4.108"/>
|
android:viewportHeight="43.52">
|
||||||
<path android:fillColor="#F82B60" android:pathData="M77.038,81.346L55.134,91.922l-2.224,1.075 -46.238,22.155C3.742,116.566 0,114.43 0,111.174V49.588c0,-1.178 0.604,-2.195 1.414,-2.96a5.024,5.024 0,0 1,1.12 -0.84c1.104,-0.663 2.68,-0.84 4.02,-0.31L76.67,73.26c3.564,1.414 3.844,6.408 0.368,8.087"/>
|
<path
|
||||||
<path android:fillColor="#000000" android:pathData="M77.038,81.346L55.134,91.922 1.414,46.627a5.024,5.024 0,0 1,1.12 -0.839c1.104,-0.663 2.68,-0.84 4.02,-0.31L76.67,73.26c3.564,1.414 3.844,6.408 0.368,8.087"/>
|
android:fillColor="#333333"
|
||||||
|
android:pathData="m97.32,11.54c0,1.66 -1.34,3.01 -3.01,3.01 -1.66,0 -3.01,-1.34 -3.01,-3.01 0,-1.66 1.34,-3.01 3.01,-3.01 1.66,0 3.01,1.34 3.01,3.01" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="M190.96,17.50C189.02,17.50 187.33,17.92 185.87,18.75C184.42,19.58 183.29,20.75 182.49,22.26C181.68,23.77 181.27,25.50 181.27,27.46C181.27,29.43 181.69,31.16 182.53,32.65C183.36,34.14 184.53,35.30 186.04,36.12C187.54,36.94 189.30,37.35 191.32,37.35C193.07,37.35 194.59,37.03 195.88,36.40A14.60,14.60 0,0 0,199.10 34.26A0.44,0.44 0,0 0,199.17 33.68L197.18,30.83C197.03,30.62 196.72,30.58 196.53,30.76C194.93,32.22 193.20,32.95 191.32,32.95C189.87,32.95 188.66,32.56 187.71,31.76C186.87,31.07 186.35,30.13 186.15,28.95A0.44,0.44 0,0 1,186.58 28.43L199.55,28.43A0.44,0.44 0,0 0,200 27.99L200,27.46C200,24.29 199.20,21.84 197.61,20.10C196.03,18.37 193.81,17.50 190.96,17.50zM190.72,21.49C191.95,21.49 192.96,21.82 193.72,22.48C194.38,23.04 194.78,23.8 194.93,24.74C194.98,25.00 194.77,25.25 194.50,25.25L186.73,25.25C186.45,25.25 186.24,24.98 186.30,24.71C186.54,23.71 186.99,22.95 187.67,22.42C188.46,21.80 189.48,21.49 190.72,21.49z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="m178.05,36.74h-4.08a0.44,0.44 0,0 1,-0.44 -0.44V8.94a0.44,0.44 0,0 1,0.44 -0.44h4.08a0.44,0.44 0,0 1,0.44 0.44V36.30a0.44,0.44 0,0 1,-0.44 0.44" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="M151.40,8.50A0.44,0.44 0,0 0,150.96 8.94L150.96,36.30A0.44,0.44 0,0 0,151.40 36.74L155.48,36.74A0.44,0.44 0,0 0,155.92 36.30L155.92,34.12L156.00,34.12C156.62,35.14 157.45,35.94 158.48,36.50C159.52,37.07 160.76,37.35 162.22,37.35C163.86,37.35 165.36,36.96 166.73,36.18C168.11,35.40 169.19,34.26 169.98,32.77C170.77,31.28 171.17,29.49 171.17,27.42C171.17,25.35 170.78,23.57 169.98,22.08C169.19,20.59 168.11,19.45 166.73,18.67C165.36,17.89 163.85,17.50 162.21,17.50C160.76,17.50 159.52,17.78 158.48,18.35C157.45,18.91 156.62,19.70 156.00,20.73L155.92,20.73L155.92,8.94A0.44,0.44 0,0 0,155.48 8.50L151.40,8.50zM160.96,22.18C162.47,22.18 163.69,22.66 164.61,23.63C165.54,24.60 166.01,25.86 166.01,27.42C166.01,28.98 165.54,30.25 164.61,31.22C163.69,32.18 162.47,32.67 160.96,32.67C159.46,32.67 158.24,32.18 157.31,31.22C156.39,30.25 155.92,28.98 155.92,27.42C155.92,25.86 156.39,24.60 157.31,23.63C158.24,22.66 159.46,22.18 160.96,22.18z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="M136.60,17.50C134.96,17.50 133.45,17.89 132.08,18.67C130.71,19.45 129.63,20.58 128.83,22.08C128.04,23.57 127.64,25.35 127.64,27.42C127.64,29.49 128.04,31.28 128.83,32.77C129.63,34.26 130.71,35.40 132.08,36.18C133.45,36.96 134.96,37.35 136.60,37.35C138.05,37.35 139.3,37.07 140.33,36.50C141.37,35.94 142.19,35.14 142.81,34.12L142.89,34.12L142.89,36.30A0.44,0.44 0,0 0,143.33 36.74L147.37,36.74A0.44,0.44 0,0 0,147.81 36.30L147.81,18.55A0.44,0.44 0,0 0,147.37 18.10L143.33,18.10A0.44,0.44 0,0 0,142.89 18.55L142.89,20.73L142.81,20.73C142.19,19.70 141.37,18.91 140.33,18.35C139.3,17.78 138.05,17.50 136.60,17.50zM137.85,22.18C139.36,22.18 140.57,22.66 141.50,23.63C142.43,24.60 142.89,25.86 142.89,27.42C142.89,28.98 142.43,30.25 141.50,31.22C140.57,32.18 139.36,32.67 137.85,32.67C136.34,32.67 135.13,32.18 134.20,31.22C133.27,30.25 132.81,28.98 132.81,27.42C132.81,25.86 133.27,24.60 134.20,23.63C135.13,22.66 136.34,22.18 137.85,22.18z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="m122.82,22.26a0.44,0.44 0,0 0,-0.44 0.44v7.38c0,0.75 0.14,1.29 0.44,1.61 0.29,0.32 0.80,0.48 1.53,0.48h0.40a0.44,0.44 0,0 1,0.44 0.44v3.71a0.44,0.44 0,0 1,-0.44 0.44h-1.73c-1.80,0 -3.18,-0.46 -4.15,-1.39 -0.96,-0.92 -1.45,-2.30 -1.45,-4.13v-8.55a0.44,0.44 0,0 0,-0.44 -0.44h-2.54A0.44,0.44 0,0 1,113.98 21.82v-3.27a0.44,0.44 0,0 1,0.44 -0.44h2.54a0.44,0.44 0,0 0,0.44 -0.44v-6.58A0.44,0.44 0,0 1,117.86 10.64h4.08a0.44,0.44 0,0 1,0.44 0.44v6.58a0.44,0.44 0,0 0,0.44 0.44h2.95a0.44,0.44 0,0 1,0.44 0.44v3.27a0.44,0.44 0,0 1,-0.44 0.44h-2.95z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="m111.66,22.42a0.44,0.44 0,0 1,-0.44 0.44h-0.12c-2.01,0 -3.49,0.48 -4.43,1.45 -0.94,0.96 -1.41,2.56 -1.41,4.80v7.18a0.44,0.44 0,0 1,-0.44 0.44h-4.04a0.44,0.44 0,0 1,-0.44 -0.44V18.55a0.44,0.44 0,0 1,0.44 -0.44h3.99a0.44,0.44 0,0 1,0.44 0.44v3.51h0.08c0.48,-1.45 1.25,-2.56 2.3,-3.34 1.04,-0.78 2.34,-1.17 3.87,-1.17h0.20V22.42Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="m92.26,18.10h4.08a0.44,0.44 0,0 1,0.44 0.44v17.75a0.44,0.44 0,0 1,-0.44 0.44h-4.08A0.44,0.44 0,0 1,91.82 36.30V18.55a0.44,0.44 0,0 1,0.44 -0.44" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#333333"
|
||||||
|
|
||||||
|
android:pathData="M74.04,8.50A0.44,0.44 0,0 0,73.66 8.78L62.68,36.14A0.44,0.44 0,0 0,63.08 36.74L67.85,36.74A0.44,0.44 0,0 0,68.27 36.46L70.43,30.62A0.44,0.44 0,0 1,70.85 30.33L81.85,30.33A0.44,0.44 0,0 1,82.27 30.62L84.43,36.46A0.44,0.44 0,0 0,84.85 36.74L89.62,36.74A0.44,0.44 0,0 0,90.03 36.14L79.04,8.78C78.98,8.61 78.81,8.50 78.63,8.50L74.07,8.50A0.44,0.44 0,0 0,74.04 8.50zM76.35,15.38C76.52,15.38 76.69,15.48 76.76,15.67L80.25,25.05A0.44,0.44 0,0 1,79.83 25.65L72.87,25.65A0.44,0.44 0,0 1,72.46 25.05L75.94,15.67C76.01,15.48 76.18,15.38 76.35,15.38z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#fcb400"
|
||||||
|
|
||||||
|
android:pathData="m23.23,0.55 l-19.4,8.02c-1.07,0.44 -1.06,1.97 0.01,2.40l19.48,7.72a7.22,7.22 0,0 0,5.32 0l19.48,-7.72c1.08,-0.43 1.09,-1.96 0.01,-2.40L28.76,0.54a7.22,7.22 0,0 0,-5.52 0" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#18bfff"
|
||||||
|
|
||||||
|
android:pathData="m27.72,22.93v19.29c0,0.91 0.92,1.54 1.77,1.20L51.21,35.01A1.29,1.29 0,0 0,52.03 33.80V14.50c0,-0.91 -0.92,-1.54 -1.77,-1.20l-21.70,8.42a1.3,1.3 0,0 0,-0.82 1.20" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#f82b60"
|
||||||
|
|
||||||
|
android:pathData="m22.65,23.92 l-6.44,3.11 -0.65,0.31 -13.59,6.51C1.10,34.28 0,33.65 0,32.69V14.58C0,14.23 0.17,13.94 0.41,13.71a1.47,1.47 0,0 1,0.32 -0.24c0.32,-0.19 0.78,-0.24 1.18,-0.09L22.55,21.54c1.04,0.41 1.13,1.88 0.10,2.37" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000000"
|
||||||
|
|
||||||
|
android:pathData="m22.65,23.92 l-6.44,3.11 -15.8,-13.32a1.47,1.47 0,0 1,0.32 -0.24c0.32,-0.19 0.78,-0.24 1.18,-0.09L22.55,21.54c1.04,0.41 1.13,1.88 0.10,2.37" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="304dp"
|
android:width="200dp"
|
||||||
android:height="182dp"
|
android:height="119.59dp"
|
||||||
android:viewportWidth="304.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="182.0">
|
android:viewportHeight="119.59">
|
||||||
<path
|
<path
|
||||||
android:pathData="M86.4,66.4c0,3.7 0.4,6.7 1.1,8.9c0.8,2.2 1.8,4.6 3.2,7.2c0.5,0.8 0.7,1.6 0.7,2.3c0,1 -0.6,2 -1.9,3l-6.3,4.2c-0.9,0.6 -1.8,0.9 -2.6,0.9c-1,0 -2,-0.5 -3,-1.4C76.2,90 75,88.4 74,86.8c-1,-1.7 -2,-3.6 -3.1,-5.9c-7.8,9.2 -17.6,13.8 -29.4,13.8c-8.4,0 -15.1,-2.4 -20,-7.2c-4.9,-4.8 -7.4,-11.2 -7.4,-19.2c0,-8.5 3,-15.4 9.1,-20.6c6.1,-5.2 14.2,-7.8 24.5,-7.8c3.4,0 6.9,0.3 10.6,0.8c3.7,0.5 7.5,1.3 11.5,2.2v-7.3c0,-7.6 -1.6,-12.9 -4.7,-16c-3.2,-3.1 -8.6,-4.6 -16.3,-4.6c-3.5,0 -7.1,0.4 -10.8,1.3c-3.7,0.9 -7.3,2 -10.8,3.4c-1.6,0.7 -2.8,1.1 -3.5,1.3c-0.7,0.2 -1.2,0.3 -1.6,0.3c-1.4,0 -2.1,-1 -2.1,-3.1v-4.9c0,-1.6 0.2,-2.8 0.7,-3.5c0.5,-0.7 1.4,-1.4 2.8,-2.1c3.5,-1.8 7.7,-3.3 12.6,-4.5c4.9,-1.3 10.1,-1.9 15.6,-1.9c11.9,0 20.6,2.7 26.2,8.1c5.5,5.4 8.3,13.6 8.3,24.6V66.4zM45.8,81.6c3.3,0 6.7,-0.6 10.3,-1.8c3.6,-1.2 6.8,-3.4 9.5,-6.4c1.6,-1.9 2.8,-4 3.4,-6.4c0.6,-2.4 1,-5.3 1,-8.7v-4.2c-2.9,-0.7 -6,-1.3 -9.2,-1.7c-3.2,-0.4 -6.3,-0.6 -9.4,-0.6c-6.7,0 -11.6,1.3 -14.9,4c-3.3,2.7 -4.9,6.5 -4.9,11.5c0,4.7 1.2,8.2 3.7,10.6C37.7,80.4 41.2,81.6 45.8,81.6zM126.1,92.4c-1.8,0 -3,-0.3 -3.8,-1c-0.8,-0.6 -1.5,-2 -2.1,-3.9L96.7,10.2c-0.6,-2 -0.9,-3.3 -0.9,-4c0,-1.6 0.8,-2.5 2.4,-2.5h9.8c1.9,0 3.2,0.3 3.9,1c0.8,0.6 1.4,2 2,3.9l16.8,66.2l15.6,-66.2c0.5,-2 1.1,-3.3 1.9,-3.9c0.8,-0.6 2.2,-1 4,-1h8c1.9,0 3.2,0.3 4,1c0.8,0.6 1.5,2 1.9,3.9l15.8,67l17.3,-67c0.6,-2 1.3,-3.3 2,-3.9c0.8,-0.6 2.1,-1 3.9,-1h9.3c1.6,0 2.5,0.8 2.5,2.5c0,0.5 -0.1,1 -0.2,1.6c-0.1,0.6 -0.3,1.4 -0.7,2.5l-24.1,77.3c-0.6,2 -1.3,3.3 -2.1,3.9c-0.8,0.6 -2.1,1 -3.8,1h-8.6c-1.9,0 -3.2,-0.3 -4,-1c-0.8,-0.7 -1.5,-2 -1.9,-4L156,23l-15.4,64.4c-0.5,2 -1.1,3.3 -1.9,4c-0.8,0.7 -2.2,1 -4,1H126.1zM254.6,95.1c-5.2,0 -10.4,-0.6 -15.4,-1.8c-5,-1.2 -8.9,-2.5 -11.5,-4c-1.6,-0.9 -2.7,-1.9 -3.1,-2.8c-0.4,-0.9 -0.6,-1.9 -0.6,-2.8v-5.1c0,-2.1 0.8,-3.1 2.3,-3.1c0.6,0 1.2,0.1 1.8,0.3c0.6,0.2 1.5,0.6 2.5,1c3.4,1.5 7.1,2.7 11,3.5c4,0.8 7.9,1.2 11.9,1.2c6.3,0 11.2,-1.1 14.6,-3.3c3.4,-2.2 5.2,-5.4 5.2,-9.5c0,-2.8 -0.9,-5.1 -2.7,-7c-1.8,-1.9 -5.2,-3.6 -10.1,-5.2L246,52c-7.3,-2.3 -12.7,-5.7 -16,-10.2c-3.3,-4.4 -5,-9.3 -5,-14.5c0,-4.2 0.9,-7.9 2.7,-11.1c1.8,-3.2 4.2,-6 7.2,-8.2c3,-2.3 6.4,-4 10.4,-5.2c4,-1.2 8.2,-1.7 12.6,-1.7c2.2,0 4.5,0.1 6.7,0.4c2.3,0.3 4.4,0.7 6.5,1.1c2,0.5 3.9,1 5.7,1.6c1.8,0.6 3.2,1.2 4.2,1.8c1.4,0.8 2.4,1.6 3,2.5c0.6,0.8 0.9,1.9 0.9,3.3v4.7c0,2.1 -0.8,3.2 -2.3,3.2c-0.8,0 -2.1,-0.4 -3.8,-1.2c-5.7,-2.6 -12.1,-3.9 -19.2,-3.9c-5.7,0 -10.2,0.9 -13.3,2.8c-3.1,1.9 -4.7,4.8 -4.7,8.9c0,2.8 1,5.2 3,7.1c2,1.9 5.7,3.8 11,5.5l14.2,4.5c7.2,2.3 12.4,5.5 15.5,9.6c3.1,4.1 4.6,8.8 4.6,14c0,4.3 -0.9,8.2 -2.6,11.6c-1.8,3.4 -4.2,6.4 -7.3,8.8c-3.1,2.5 -6.8,4.3 -11.1,5.6C264.4,94.4 259.7,95.1 254.6,95.1z"
|
android:pathData="m56.36,43.43c0,2.46 0.26,4.45 0.73,5.92 0.53,1.46 1.19,3.06 2.12,4.78 0.33,0.53 0.46,1.06 0.46,1.53 0,0.66 -0.39,1.33 -1.26,1.99l-4.19,2.79c-0.59,0.39 -1.19,0.59 -1.72,0.59 -0.66,0 -1.33,-0.33 -1.99,-0.93 -0.93,-0.99 -1.72,-2.06 -2.39,-3.12 -0.66,-1.13 -1.33,-2.39 -2.06,-3.92 -5.18,6.12 -11.70,9.17 -19.55,9.17 -5.58,0 -10.04,-1.59 -13.30,-4.78 -3.25,-3.19 -4.92,-7.45 -4.92,-12.77 0,-5.65 1.99,-10.24 6.05,-13.70 4.05,-3.45 9.44,-5.18 16.29,-5.18 2.26,0 4.59,0.2 7.05,0.53 2.46,0.33 4.98,0.86 7.65,1.46v-4.85c0,-5.05 -1.06,-8.58 -3.12,-10.64 -2.12,-2.06 -5.72,-3.06 -10.84,-3.06 -2.32,0 -4.72,0.26 -7.18,0.86 -2.46,0.59 -4.85,1.33 -7.18,2.26 -1.06,0.46 -1.86,0.73 -2.32,0.86 -0.46,0.13 -0.79,0.2 -1.06,0.2 -0.93,0 -1.39,-0.66 -1.39,-2.06L12.19,8.11c0,-1.06 0.13,-1.86 0.46,-2.32 0.33,-0.46 0.93,-0.93 1.86,-1.39 2.32,-1.19 5.12,-2.19 8.38,-2.99 3.25,-0.86 6.71,-1.26 10.37,-1.26 7.91,0 13.70,1.79 17.42,5.38 3.65,3.59 5.52,9.04 5.52,16.36L56.22,43.43ZM29.35,53.54c2.19,0 4.45,-0.39 6.85,-1.19 2.39,-0.79 4.52,-2.26 6.31,-4.25 1.06,-1.26 1.86,-2.66 2.26,-4.25 0.39,-1.59 0.66,-3.52 0.66,-5.78v-2.79c-1.92,-0.46 -3.99,-0.86 -6.12,-1.13 -2.12,-0.26 -4.19,-0.39 -6.25,-0.39 -4.45,0 -7.71,0.86 -9.91,2.66 -2.19,1.79 -3.25,4.32 -3.25,7.65 0,3.12 0.79,5.45 2.46,7.05 1.59,1.66 3.92,2.46 6.98,2.46zM82.77,60.73c-1.19,0 -1.99,-0.2 -2.52,-0.66 -0.53,-0.39 -0.99,-1.33 -1.39,-2.59L63.21,6.05c-0.39,-1.33 -0.59,-2.19 -0.59,-2.66 0,-1.06 0.53,-1.66 1.59,-1.66h6.51c1.26,0 2.12,0.2 2.59,0.66 0.53,0.39 0.93,1.33 1.33,2.59l11.17,44.03 10.37,-44.03c0.33,-1.33 0.73,-2.19 1.26,-2.59 0.53,-0.39 1.46,-0.66 2.66,-0.66h5.32c1.26,0 2.12,0.2 2.66,0.66 0.53,0.39 0.99,1.33 1.26,2.59l10.51,44.56 11.50,-44.56c0.39,-1.33 0.86,-2.19 1.33,-2.59 0.53,-0.39 1.39,-0.66 2.59,-0.66h6.18c1.06,0 1.66,0.53 1.66,1.66 0,0.33 -0.06,0.66 -0.13,1.06 -0.06,0.39 -0.2,0.93 -0.46,1.66l-16.03,51.41c-0.39,1.33 -0.86,2.19 -1.39,2.59 -0.53,0.39 -1.39,0.66 -2.52,0.66h-5.72c-1.26,0 -2.12,-0.2 -2.66,-0.66 -0.53,-0.46 -0.99,-1.33 -1.26,-2.66L102.65,14.56 92.41,57.40c-0.33,1.33 -0.73,2.19 -1.26,2.66 -0.53,0.46 -1.46,0.66 -2.66,0.66zM168.24,62.52c-3.45,0 -6.91,-0.39 -10.24,-1.19 -3.32,-0.79 -5.92,-1.66 -7.65,-2.66 -1.06,-0.59 -1.79,-1.26 -2.06,-1.86 -0.26,-0.59 -0.39,-1.26 -0.39,-1.86v-3.39c0,-1.39 0.53,-2.06 1.53,-2.06 0.39,0 0.79,0.06 1.19,0.2 0.39,0.13 0.99,0.39 1.66,0.66 2.26,0.99 4.72,1.79 7.31,2.32 2.66,0.53 5.25,0.79 7.91,0.79 4.19,0 7.45,-0.73 9.71,-2.19 2.26,-1.46 3.45,-3.59 3.45,-6.31 0,-1.86 -0.59,-3.39 -1.79,-4.65 -1.19,-1.26 -3.45,-2.39 -6.71,-3.45l-9.64,-2.99c-4.85,-1.53 -8.44,-3.79 -10.64,-6.78 -2.19,-2.92 -3.32,-6.18 -3.32,-9.64 0,-2.79 0.59,-5.25 1.79,-7.38 1.19,-2.12 2.79,-3.99 4.78,-5.45 1.99,-1.53 4.25,-2.66 6.91,-3.45C164.72,0.33 167.51,0 170.44,0c1.46,0 2.99,0.06 4.45,0.26 1.53,0.2 2.92,0.46 4.32,0.73 1.33,0.33 2.59,0.66 3.79,1.06 1.19,0.39 2.12,0.79 2.79,1.19 0.93,0.53 1.59,1.06 1.99,1.66 0.39,0.53 0.59,1.26 0.59,2.19v3.12c0,1.39 -0.53,2.12 -1.53,2.12 -0.53,0 -1.39,-0.26 -2.52,-0.79 -3.79,-1.72 -8.04,-2.59 -12.77,-2.59 -3.79,0 -6.78,0.59 -8.84,1.86 -2.06,1.26 -3.12,3.19 -3.12,5.92 0,1.86 0.66,3.45 1.99,4.72 1.33,1.26 3.79,2.52 7.31,3.65l9.44,2.99c4.78,1.53 8.24,3.65 10.31,6.38 2.06,2.72 3.06,5.85 3.06,9.31 0,2.86 -0.59,5.45 -1.72,7.71 -1.19,2.26 -2.79,4.25 -4.85,5.85 -2.06,1.66 -4.52,2.86 -7.38,3.72 -2.99,0.93 -6.12,1.39 -9.51,1.39z"
|
||||||
android:fillColor="#252F3E"/>
|
android:fillColor="#252f3e"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M273.5,143.7c-32.9,24.3 -80.7,37.2 -121.8,37.2c-57.6,0 -109.5,-21.3 -148.7,-56.7c-3.1,-2.8 -0.3,-6.6 3.4,-4.4c42.4,24.6 94.7,39.5 148.8,39.5c36.5,0 76.6,-7.6 113.5,-23.2C274.2,133.6 278.9,139.7 273.5,143.7z"
|
android:pathData="m180.81,94.85c-21.88,16.16 -53.68,24.74 -81.01,24.74 -38.31,0 -72.83,-14.16 -98.91,-37.71 -2.06,-1.86 -0.2,-4.39 2.26,-2.92 28.20,16.36 62.99,26.27 98.97,26.27 24.27,0 50.95,-5.05 75.49,-15.43 3.65,-1.66 6.78,2.39 3.19,5.05z"
|
||||||
android:fillType="evenOdd"
|
android:fillColor="#ff9900"/>
|
||||||
android:fillColor="#FF9900"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M287.2,128.1c-4.2,-5.4 -27.8,-2.6 -38.5,-1.3c-3.2,0.4 -3.7,-2.4 -0.8,-4.5c18.8,-13.2 49.7,-9.4 53.3,-5c3.6,4.5 -1,35.4 -18.6,50.2c-2.7,2.3 -5.3,1.1 -4.1,-1.9C282.5,155.7 291.4,133.4 287.2,128.1z"
|
android:pathData="m189.93,84.47c-2.79,-3.59 -18.49,-1.72 -25.60,-0.86 -2.12,0.26 -2.46,-1.59 -0.53,-2.99 12.50,-8.78 33.05,-6.25 35.45,-3.32 2.39,2.99 -0.66,23.54 -12.37,33.39 -1.79,1.53 -3.52,0.73 -2.72,-1.26 2.66,-6.58 8.58,-21.41 5.78,-24.94z"
|
||||||
android:fillType="evenOdd"
|
android:fillColor="#ff9900"/>
|
||||||
android:fillColor="#FF9900"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="138.85dp"
|
||||||
android:height="369dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="138.85"
|
||||||
android:viewportHeight="369.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M214.9,157.36C230.17,159.71 240.73,166.75 246.61,176.15C252.48,185.54 256,201.98 256,223.12C256,265.39 243.08,300.62 217.25,327.63C191.41,354.64 158.53,368.73 118.61,368.73C103.34,368.73 88.07,366.39 72.81,360.51C57.54,354.64 45.8,346.42 35.23,337.03C23.49,326.46 14.09,313.54 8.22,301.8C3.52,288.88 0,275.96 0,263.05C0,248.95 3.52,237.21 9.39,228.99C15.27,220.77 25.83,216.07 38.75,212.55C36.4,206.68 34.06,201.98 32.88,197.28C31.71,193.76 30.53,190.24 30.53,187.89C30.53,180.84 34.06,172.62 42.28,164.4C50.5,156.18 57.54,152.66 64.59,152.66C68.11,152.66 70.46,152.66 73.98,153.83C77.5,155.01 81.03,156.18 85.72,159.71C75.16,124.48 64.59,95.12 58.72,75.16C52.84,55.19 50.5,42.28 50.5,34.06C50.5,23.49 52.84,15.27 58.72,9.39C63.41,3.52 71.63,0 81.03,0C96.29,0 116.26,35.23 140.92,106.86C145.61,118.61 147.96,128 150.31,135.05C152.66,130.35 155.01,122.13 158.53,112.73C183.19,42.28 204.33,7.05 220.77,7.05C228.99,7.05 236.04,9.39 241.91,15.27C246.61,21.14 250.13,29.36 250.13,38.75C250.13,45.8 247.78,59.89 241.91,79.85C234.86,99.82 226.64,125.65 214.9,157.36L214.9,157.36ZM34.06,260.7C36.4,263.05 39.93,267.74 43.45,273.61C54.02,288.88 64.59,297.1 73.98,297.1C77.5,297.1 79.85,295.93 82.2,293.58C84.55,291.23 85.72,288.88 85.72,287.71C85.72,285.36 84.55,280.66 81.03,274.79C77.5,268.92 72.81,261.87 66.94,254.83C59.89,246.61 54.02,239.56 50.5,236.04C45.8,232.51 42.28,230.17 39.93,230.17C34.06,230.17 28.18,233.69 23.49,239.56C18.79,245.43 16.44,253.65 16.44,261.87C16.44,268.92 17.61,275.96 21.14,285.36C24.66,293.58 29.36,302.97 36.4,311.19C46.97,322.94 58.72,333.5 73.98,340.55C89.25,347.6 104.51,351.12 123.3,351.12C156.18,351.12 183.19,339.38 205.5,314.72C227.82,290.06 238.39,259.52 238.39,221.94C238.39,210.2 237.21,201.98 236.04,194.94C234.86,187.89 231.34,183.19 227.82,180.84C220.77,174.97 207.85,170.28 187.89,165.58C167.93,160.88 146.79,158.53 125.65,158.53C119.78,158.53 115.08,159.71 112.73,162.06C110.39,164.4 109.21,167.93 109.21,172.62C109.21,184.37 115.08,192.59 128,197.28C140.92,201.98 162.06,205.5 190.24,205.5L200.81,205.5C203.16,205.5 205.5,206.68 206.68,207.85C207.85,210.2 209.03,212.55 209.03,216.07C206.68,218.42 200.81,221.94 191.41,225.47C182.02,228.99 176.15,232.51 171.45,236.04C160.88,243.08 152.66,252.48 146.79,263.05C140.92,273.61 137.39,283.01 137.39,292.4C137.39,298.28 138.57,304.15 140.92,312.37C143.27,320.59 144.44,325.28 144.44,326.46L144.44,328.81L144.44,331.16C137.39,331.16 131.52,326.46 126.83,318.24C122.13,310.02 120.95,299.45 120.95,285.36L120.95,283.01C119.78,284.18 118.61,285.36 117.43,285.36C116.26,285.36 115.08,286.53 112.73,286.53L108.04,286.53C106.86,286.53 105.69,285.36 103.34,285.36C103.34,287.71 104.51,288.88 104.51,291.23L104.51,295.93C104.51,301.8 102.17,307.67 97.47,312.37C92.77,317.06 86.9,319.41 79.85,319.41C69.28,319.41 58.72,314.72 46.97,304.15C36.4,293.58 30.53,284.18 30.53,273.61C30.53,271.27 30.53,270.09 31.71,268.92C31.71,263.05 32.88,261.87 34.06,260.7L34.06,260.7ZM110.39,266.57C112.73,266.57 116.26,265.39 118.61,263.05C120.95,260.7 122.13,257.17 122.13,254.83C122.13,251.3 119.78,244.26 115.08,232.51C110.39,220.77 104.51,209.03 97.47,198.46C92.77,190.24 86.9,183.19 82.2,179.67C77.5,174.97 72.81,173.8 68.11,173.8C64.59,173.8 61.06,176.15 56.37,180.84C51.67,185.54 50.5,189.06 50.5,193.76C50.5,197.28 52.84,204.33 56.37,212.55C61.06,220.77 65.76,228.99 72.81,238.39C79.85,247.78 86.9,256 93.94,261.87C100.99,264.22 105.69,266.57 110.39,266.57L110.39,266.57ZM135.05,144.44L106.86,65.76C99.82,45.8 95.12,31.71 90.42,25.83C86.9,19.96 83.38,16.44 78.68,16.44C75.16,16.44 72.81,17.61 70.46,19.96C66.94,23.49 65.76,27.01 65.76,31.71C65.76,39.93 69.28,52.84 75.16,71.63C81.03,90.42 90.42,116.26 102.17,146.79C103.34,144.44 104.51,143.27 106.86,143.27C109.21,142.09 111.56,142.09 113.91,142.09L119.78,142.09C123.3,143.27 128,143.27 135.05,144.44L135.05,144.44ZM163.23,220.77C156.18,220.77 149.14,219.6 142.09,218.42C135.05,217.25 129.17,216.07 123.3,213.72C125.65,219.6 128,224.29 130.35,230.17C132.7,236.04 133.87,240.73 135.05,246.61C138.57,241.91 143.27,237.21 147.96,232.51C153.83,227.82 158.53,224.29 163.23,220.77L163.23,220.77ZM197.28,152.66C209.03,122.13 217.25,96.29 224.29,76.33C230.17,56.37 233.69,44.62 233.69,39.93C233.69,35.23 232.51,31.71 230.17,28.18C227.82,25.83 225.47,24.66 221.94,24.66C217.25,24.66 212.55,28.18 207.85,36.4C203.16,44.62 197.28,56.37 191.41,73.98L165.58,146.79L197.28,152.66L197.28,152.66Z"
|
android:pathData="m116.56,85.35c8.28,1.27 14.01,5.09 17.2,10.19 3.18,5.09 5.09,14.01 5.09,25.47 0,22.92 -7.00,42.03 -21.01,56.68C103.82,192.35 85.98,200 64.33,200 56.05,200 47.76,198.73 39.49,195.54 31.21,192.35 24.84,187.89 19.10,182.80 12.74,177.07 7.64,170.06 4.45,163.69 1.90,156.68 0,149.68 0,142.67c0,-7.64 1.90,-14.01 5.09,-18.47 3.18,-4.45 8.91,-7.00 15.92,-8.91 -1.27,-3.18 -2.54,-5.73 -3.18,-8.28 -0.63,-1.90 -1.27,-3.81 -1.27,-5.09 0,-3.82 1.91,-8.28 6.37,-12.74 4.45,-4.45 8.27,-6.36 12.10,-6.36 1.90,0 3.18,0 5.09,0.63 1.90,0.64 3.82,1.27 6.36,3.18C40.76,67.51 35.03,51.59 31.85,40.76 28.66,29.93 27.39,22.93 27.39,18.47c0,-5.73 1.26,-10.19 4.45,-13.38C34.39,1.90 38.85,0 43.95,0c8.27,0 19.10,19.10 32.48,57.96 2.54,6.37 3.81,11.46 5.09,15.29 1.27,-2.54 2.54,-7.00 4.45,-12.10 13.37,-38.21 24.84,-57.32 33.75,-57.32 4.45,0 8.28,1.26 11.46,4.45 2.54,3.18 4.45,7.64 4.45,12.73 0,3.82 -1.27,11.46 -4.45,22.29 -3.82,10.83 -8.28,24.84 -14.65,42.04zM18.47,141.40c1.26,1.27 3.18,3.81 5.09,7.00 5.73,8.28 11.46,12.74 16.56,12.74 1.90,0 3.18,-0.63 4.45,-1.90 1.27,-1.27 1.90,-2.54 1.90,-3.18 0,-1.27 -0.63,-3.82 -2.54,-7.00 -1.91,-3.18 -4.45,-7.00 -7.64,-10.82 -3.82,-4.45 -7.00,-8.28 -8.91,-10.19 -2.54,-1.91 -4.45,-3.18 -5.73,-3.18 -3.18,0 -6.37,1.90 -8.91,5.09 -2.54,3.18 -3.82,7.64 -3.82,12.10 0,3.82 0.63,7.64 2.54,12.74 1.90,4.45 4.45,9.55 8.27,14.01 5.73,6.37 12.10,12.10 20.38,15.92 8.28,3.82 16.56,5.73 26.75,5.73 17.83,0 32.48,-6.36 44.58,-19.74 12.10,-13.37 17.84,-29.94 17.84,-50.32 0,-6.36 -0.64,-10.82 -1.27,-14.64 -0.64,-3.82 -2.54,-6.37 -4.45,-7.64 -3.82,-3.18 -10.83,-5.72 -21.65,-8.27 -10.82,-2.54 -22.29,-3.82 -33.75,-3.82 -3.18,0 -5.73,0.64 -7.00,1.91 -1.26,1.26 -1.90,3.18 -1.90,5.72 0,6.37 3.18,10.83 10.19,13.37 7.00,2.54 18.47,4.45 33.75,4.45h5.73c1.27,0 2.54,0.64 3.18,1.27 0.63,1.27 1.27,2.54 1.27,4.45 -1.27,1.27 -4.45,3.18 -9.55,5.09 -5.09,1.90 -8.27,3.81 -10.82,5.73 -5.73,3.81 -10.19,8.91 -13.37,14.65 -3.18,5.72 -5.09,10.82 -5.09,15.92 0,3.18 0.64,6.37 1.91,10.83 1.27,4.45 1.90,7.00 1.90,7.64v1.27,1.27c-3.82,0 -7.00,-2.54 -9.55,-7.00 -2.54,-4.45 -3.18,-10.19 -3.18,-17.83v-1.27c-0.63,0.63 -1.26,1.27 -1.90,1.27 -0.63,0 -1.27,0.63 -2.54,0.63h-2.54c-0.64,0 -1.27,-0.63 -2.54,-0.63 0,1.27 0.63,1.90 0.63,3.18v2.54c0,3.18 -1.26,6.36 -3.81,8.91 -2.54,2.54 -5.73,3.81 -9.55,3.81 -5.73,0 -11.46,-2.54 -17.83,-8.27 -5.73,-5.73 -8.91,-10.83 -8.91,-16.56 0,-1.26 0,-1.90 0.64,-2.54 0,-3.18 0.63,-3.82 1.27,-4.45zM59.87,144.58c1.26,0 3.18,-0.64 4.45,-1.90 1.26,-1.27 1.90,-3.18 1.90,-4.45 0,-1.91 -1.27,-5.73 -3.82,-12.10 -2.54,-6.36 -5.73,-12.73 -9.55,-18.46 -2.54,-4.45 -5.73,-8.28 -8.28,-10.19 -2.54,-2.54 -5.09,-3.18 -7.64,-3.18 -1.90,0 -3.82,1.27 -6.36,3.81 -2.54,2.54 -3.18,4.45 -3.18,7.00 0,1.90 1.26,5.73 3.18,10.19 2.54,4.45 5.09,8.91 8.91,14.01 3.81,5.09 7.64,9.55 11.46,12.73 3.82,1.27 6.37,2.54 8.92,2.54zM73.25,78.34 L57.96,35.66c-3.81,-10.82 -6.36,-18.46 -8.91,-21.65 -1.90,-3.18 -3.81,-5.09 -6.36,-5.09 -1.90,0 -3.18,0.63 -4.45,1.90 -1.90,1.91 -2.54,3.82 -2.54,6.37 0,4.45 1.90,11.46 5.09,21.65 3.18,10.19 8.27,24.20 14.65,40.76 0.63,-1.27 1.26,-1.90 2.54,-1.90 1.27,-0.64 2.54,-0.64 3.82,-0.64h3.18c1.90,0.64 4.45,0.64 8.28,1.27zM88.53,119.74c-3.82,0 -7.64,-0.63 -11.46,-1.27 -3.81,-0.63 -7.00,-1.27 -10.19,-2.54 1.27,3.18 2.54,5.73 3.82,8.92 1.27,3.18 1.90,5.72 2.54,8.91 1.90,-2.54 4.45,-5.09 7.00,-7.64 3.18,-2.54 5.73,-4.45 8.28,-6.36zM107.00,82.80c6.37,-16.56 10.83,-30.57 14.65,-41.40 3.18,-10.82 5.09,-17.2 5.09,-19.74 0,-2.54 -0.64,-4.45 -1.90,-6.37 -1.27,-1.27 -2.54,-1.90 -4.46,-1.90 -2.54,0 -5.09,1.90 -7.64,6.36 -2.54,4.45 -5.73,10.83 -8.91,20.38L89.81,79.61Z"
|
||||||
android:fillColor="#000000"/>
|
android:fillColor="#000000"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
29
app/src/main/res/drawable/thumb_anonaddy.xml
Normal file
29
app/src/main/res/drawable/thumb_anonaddy.xml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="136.02dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="136.02">
|
||||||
|
<path
|
||||||
|
android:pathData="m25.05,62.09c-2.05,0.31 -4.24,-0.44 -5.62,-2.23 -2.00,-2.58 -1.56,-6.29 1.02,-8.34l16.51,-12.90c2.58,-2.00 6.29,-1.56 8.34,1.02 2.00,2.58 1.56,6.29 -1.02,8.34l-16.51,12.90c-0.80,0.67 -1.74,1.07 -2.72,1.20z"
|
||||||
|
android:fillColor="#3AE7E1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m9.02,74.68c-2.05,0.31 -4.24,-0.44 -5.62,-2.18 -2.00,-2.58 -1.56,-6.29 1.02,-8.34l1.56,-1.20c2.58,-2.00 6.29,-1.56 8.34,1.02 2.00,2.58 1.56,6.29 -1.02,8.34l-1.56,1.20c-0.80,0.62 -1.74,1.02 -2.72,1.16z"
|
||||||
|
android:fillColor="#F5F7FA"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m6.88,108.57c-2.05,0.31 -4.24,-0.44 -5.62,-2.23C-0.75,103.75 -0.30,100.04 2.28,97.99L38.53,69.68c2.58,-2.00 6.33,-1.56 8.34,1.02 2.00,2.58 1.56,6.29 -1.02,8.34L9.60,107.41c-0.84,0.62 -1.78,1.02 -2.72,1.16z"
|
||||||
|
android:fillColor="#3AE7E1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m58.53,68.39c-2.05,0.31 -4.24,-0.44 -5.62,-2.23 -2.00,-2.58 -1.56,-6.29 1.02,-8.34l5.75,-4.50c2.58,-2.00 6.29,-1.56 8.34,1.02 2.00,2.58 1.56,6.29 -1.02,8.34l-5.75,4.50c-0.84,0.62 -1.78,1.02 -2.72,1.20z"
|
||||||
|
android:fillColor="#F5F7FA"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m55.36,102.99c-2.05,0.31 -4.24,-0.44 -5.62,-2.23 -2.00,-2.58 -1.56,-6.29 1.02,-8.34l29.73,-23.21c2.58,-2.00 6.33,-1.56 8.34,1.02 2.00,2.58 1.56,6.29 -1.02,8.34l-29.73,23.21c-0.80,0.67 -1.74,1.07 -2.72,1.20z"
|
||||||
|
android:fillColor="#3AE7E1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m39.11,115.88c-2.05,0.31 -4.24,-0.44 -5.62,-2.23 -2.00,-2.58 -1.56,-6.33 1.02,-8.34l2.09,-1.65c2.58,-2.00 6.33,-1.56 8.34,1.02 2.00,2.58 1.56,6.33 -1.02,8.34l-2.09,1.65c-0.84,0.67 -1.78,1.07 -2.72,1.20z"
|
||||||
|
android:strokeWidth="0.44"
|
||||||
|
android:fillColor="#F5F7FA"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M188.97,0L51.12,0c-5.13,0 -9.91,3.17 -11.42,8.08 -0.71,2.27 -0.67,4.59 0,6.69 0.67,2.14 2.00,4.10 3.88,5.58 0,0 52.81,41.02 65.75,49.95 4.64,2.99 9.15,1.96 11.83,-0.08l67.00,-52.14v90.13c0,8.79 -7.14,15.93 -15.93,15.93L45.58,124.14c-3.25,0 -5.89,2.63 -5.89,5.89 0,3.30 2.67,5.98 5.98,5.98L172.18,136.02c15.35,0 27.81,-12.45 27.81,-27.81L200,11.02C200.04,4.95 195.08,0 188.97,0ZM93.61,49.15 L93.66,48.83 93.84,49.10zM115.18,59.86 L53.79,11.87h122.98z"
|
||||||
|
android:strokeWidth="0.44"
|
||||||
|
android:fillColor="#3AE7E1"/>
|
||||||
|
</vector>
|
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="162.84dp"
|
||||||
android:height="315dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="162.84"
|
||||||
android:viewportHeight="315.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M213.8,167.03C214.25,214.61 255.54,230.44 256,230.64C255.65,231.76 249.4,253.21 234.24,275.36C221.14,294.51 207.54,313.6 186.11,313.99C165.06,314.38 158.29,301.51 134.22,301.51C110.16,301.51 102.64,313.6 82.72,314.38C62.04,315.16 46.29,293.67 33.07,274.59C6.08,235.55 -14.56,164.29 13.15,116.18C26.91,92.29 51.51,77.16 78.2,76.78C98.51,76.39 117.68,90.44 130.09,90.44C142.5,90.44 165.79,73.54 190.28,76.02C200.53,76.45 229.3,80.16 247.78,107.21C246.29,108.13 213.45,127.25 213.8,167.03M174.24,50.2C185.22,36.91 192.61,18.41 190.59,0C174.77,0.64 155.63,10.55 144.28,23.83C134.11,35.59 125.2,54.42 127.6,72.46C145.24,73.83 163.26,63.5 174.24,50.2"
|
android:pathData="m136.00,106.25c0.28,30.26 26.55,40.33 26.84,40.46 -0.22,0.71 -4.19,14.35 -13.84,28.44 -8.33,12.18 -16.98,24.32 -30.61,24.57 -13.39,0.24 -17.69,-7.93 -33.00,-7.93 -15.30,0 -20.08,7.69 -32.76,8.18C39.46,200.48 29.44,186.81 21.03,174.67 3.86,149.84 -9.26,104.51 8.36,73.90c8.75,-15.19 24.40,-24.82 41.38,-25.06 12.92,-0.24 25.11,8.69 33.00,8.69 7.89,0 22.71,-10.75 38.28,-9.17 6.52,0.27 24.82,2.63 36.57,19.84 -0.94,0.58 -21.83,12.74 -21.61,38.05M110.83,31.93C117.82,23.48 122.52,11.71 121.24,0 111.17,0.40 99.00,6.71 91.78,15.15c-6.46,7.48 -12.13,19.45 -10.61,30.93 11.22,0.87 22.68,-5.7 29.66,-14.16"
|
||||||
android:fillColor="#000000"/>
|
android:fillColor="#000000"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
60
app/src/main/res/drawable/thumb_atlantic_net.xml
Normal file
60
app/src/main/res/drawable/thumb_atlantic_net.xml
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128.00005dp"
|
||||||
|
android:height="53.62065dp"
|
||||||
|
android:viewportWidth="128.00005"
|
||||||
|
android:viewportHeight="53.62065">
|
||||||
|
<path
|
||||||
|
android:pathData="m7.518,47.33q0,1.526 -0.555,2.353A1.769,1.769 0,0 1,5.415 50.51,1.49 1.49,0 0,1 4.25,49.994 1.928,1.928 0,0 1,3.792 48.668,2.567 2.567,0 0,1 4.796,46.642Q5.8,45.796 7.52,45.575v1.769zM9.455,52.926a4.298,4.298 0,0 0,2.045 0.442c0.175,0 0.31,0 0.4,0 0.091,0 0.175,-0.013 0.25,-0.024l0.011,-2.945a0.904,0.904 0,0 1,-0.526 -0.327,0.968 0.968,0 0,1 -0.184,-0.604v-6.512q0,-2.58 -1.444,-3.889Q8.564,37.758 5.749,37.756a9.004,9.004 0,0 0,-3.011 0.484,8.435 8.435,0 0,0 -2.569,1.462l1.853,2.37a8.519,8.519 0,0 1,1.846 -1.167,4.108 4.108,0 0,1 1.661,-0.367 2.302,2.302 0,0 1,1.45 0.427,1.347 1.347,0 0,1 0.548,1.106v1.183Q3.768,43.766 1.886,45.3 0.004,46.835 0,49.38q0,1.888 1.048,3.034 1.048,1.145 2.786,1.145a4.92,4.92 0,0 0,2.154 -0.486,8.115 8.115,0 0,0 2.098,-1.548 3.407,3.407 0,0 0,1.366 1.402z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M15.624,53.59V40.847h-3.367v-3.036h10.211v3.034H19.033V53.59Z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m30.431,53.534h-1.709c-3.396,0 -4.953,-1.585 -4.953,-4.738V37.778h3.803c0,0 0.031,9.598 0.031,10.704 0,0.993 0.506,1.568 1.439,1.568h1.371z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m38.749,47.357q0,1.521 -0.553,2.344a1.769,1.769 0,0 1,-1.548 0.823,1.481 1.481,0 0,1 -1.159,-0.511 1.917,1.917 0,0 1,-0.455 -1.327,2.558 2.558,0 0,1 1.006,-2.019q1.002,-0.842 2.713,-1.064v1.756zM40.677,52.929a4.274,4.274 0,0 0,2.036 0.442q0.261,0 0.4,0 0.139,0 0.248,-0.024l0.013,-2.934a0.9,0.9 0,0 1,-0.524 -0.318,0.966 0.966,0 0,1 -0.184,-0.601v-6.492q0,-2.569 -1.437,-3.874 -1.437,-1.305 -4.243,-1.305a8.977,8.977 0,0 0,-2.998 0.482,8.402 8.402,0 0,0 -2.558,1.459l1.844,2.37a8.493,8.493 0,0 1,1.84 -1.163,4.091 4.091,0 0,1 1.645,-0.369 2.286,2.286 0,0 1,1.444 0.425,1.34 1.34,0 0,1 0.546,1.106v1.179q-3.759,0.511 -5.616,2.039 -1.857,1.528 -1.866,4.055 0,1.879 1.044,3.02 1.044,1.141 2.773,1.141a4.911,4.911 0,0 0,2.143 -0.482,8.093 8.093,0 0,0 2.089,-1.532 3.383,3.383 0,0 0,1.369 1.378z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M45.022,53.541V38.121h4.013v2.941q1.156,-1.687 2.322,-2.479a4.32,4.32 0,0 1,2.476 -0.794q1.565,0 2.412,0.971 0.847,0.971 0.847,2.744v12.037h-4.013v-9.607q0,-1.512 -0.281,-1.957 -0.281,-0.444 -1.044,-0.442a2.605,2.605 0,0 0,-1.276 0.389,6.978 6.978,0 0,0 -1.444,1.152v10.47h-4.013z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m75.491,44.418q0,-2.3 0.301,-3.354a4.177,4.177 0,0 1,1.028 -1.804,4.398 4.398,0 0,1 1.619,-1.035 6.03,6.03 0,0 1,2.127 -0.356q2.158,0 3.586,1.207a3.741,3.741 0,0 1,1.428 2.965v0.902h-3.283q-0.04,-1.154 -0.442,-1.676 -0.402,-0.522 -1.274,-0.522 -0.966,0 -1.34,0.526 -0.374,0.526 -0.374,2.571v3.774q0,1.952 0.369,2.523 0.369,0.57 1.344,0.57 0.915,0 1.313,-0.557 0.398,-0.557 0.398,-1.848v-0.221h3.295v1.002a4.201,4.201 0,0 1,-1.382 3.27Q82.821,53.61 80.572,53.61A6.041,6.041 0,0 1,78.445 53.256,4.402 4.402,0 0,1 76.827,52.221 4.175,4.175 0,0 1,75.798 50.417q-0.301,-1.055 -0.301,-3.352v-2.653z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M92.866,53.55V38.121h4.015v2.943q1.156,-1.687 2.322,-2.481a4.32,4.32 0,0 1,2.476 -0.794q1.568,0 2.415,0.973 0.847,0.973 0.847,2.744v12.046h-4.022v-9.616q0,-1.512 -0.283,-1.957 -0.283,-0.444 -1.044,-0.442a2.607,2.607 0,0 0,-1.276 0.389,6.991 6.991,0 0,0 -1.446,1.152v10.476h-4.004z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m110.066,42.842q0,-1.125 0.484,-1.769a1.733,1.733 0,0 1,2.689 -0.013q0.455,0.632 0.458,1.882v1.291h-3.631zM116.604,49.475a11.887,11.887 0,0 1,-1.946 0.75,6.231 6.231,0 0,1 -1.645,0.245q-1.397,0 -2.174,-0.714 -0.776,-0.714 -0.774,-2.003v-1.293h6.938v-3.246q0,-2.512 -1.4,-3.953 -1.4,-1.442 -3.83,-1.442 -2.609,0 -3.98,1.548 -1.371,1.548 -1.38,4.489v3.538q0,2.976 1.517,4.555 1.517,1.579 4.385,1.579a10.441,10.441 0,0 0,2.3 -0.268,15.257 15.257,0 0,0 2.479,-0.803z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M61.53,53.592V40.847h-3.379v-3.034h10.211v3.034h-3.423v12.745z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M69.802,53.534l-0.011,-15.756l3.916,0l0,15.756z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M121.168,53.545V40.807h-3.379v-3.04h10.211v3.04h-3.432v12.745h-3.401z"
|
||||||
|
android:fillColor="#1a1a1a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m65.528,15.765c0,0 5.846,-1.59 5.47,-4.144C70.556,8.658 63.191,8.457 58.262,8.457L59.699,11.621c0,0 4.971,-0.327 6.162,0.442 1.022,0.643 0.805,1.661 -0.334,3.701z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m72.931,12.775c0,0 9.176,-8.325 -19.761,-7.5 -21.563,0.612 -26.907,7.739 -26.907,7.739 0,0 5.484,-9.472 27.769,-10.049 30.873,-0.8 19.597,9.638 18.898,9.811z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m70.313,16.532c0,0 17.087,-2.479 16.324,-9.112C85.832,0.404 65.588,0.148 65.588,0.148c0,0 29.065,-1.822 29.434,7.334C95.393,16.729 70.313,16.532 70.313,16.532Z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m58.183,12.415c0,0 -6.412,1.462 -5.632,4.201 0.853,2.989 8.163,4.066 12.891,4.018l-1.955,-3.732c0,0 -4.29,-0.148 -5.784,-0.953 -1.411,-0.765 -1.572,-1.703 0.48,-3.533z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m50.322,15.084c0,0 -8.659,10.025 24.831,9.897 30.878,-0.111 26.533,-11.818 26.533,-11.818 0,0 7.473,14.175 -27.387,14.399 -21.861,0.139 -29.655,-6.178 -23.977,-12.477z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m53.758,11.446c0,0 -17.717,3.491 -16.961,11.619 0.73,7.752 25.85,8.897 25.85,8.897 0,0 -33.536,0.957 -34.369,-8.225 -0.964,-10.624 25.481,-12.291 25.481,-12.291z"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M89.019,51.297m-2.324,0a2.324,2.324 0,1 1,4.648 0a2.324,2.324 0,1 1,-4.648 0"
|
||||||
|
android:fillColor="#006ebe"/>
|
||||||
|
</vector>
|
|
@ -1,9 +1,15 @@
|
||||||
<vector android:height="128dp" android:viewportHeight="512"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="512" android:width="128dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="121.85dp"
|
||||||
<path android:fillColor="#FF0000"
|
android:height="200dp"
|
||||||
android:pathData="M200.5,19.1c1.9,4.6 4.6,12.9 6.1,18.4 2.6,9.2 2.8,11.4 2.8,28.5 0,17.3 -0.2,19.1 -2.7,27.3 -6.8,22.2 -14.3,33.4 -37.6,56.8 -18.4,18.4 -26,27.9 -33.5,42 -14.3,26.9 -18.7,58.5 -11.5,82.4 6.6,22.1 22.5,39.5 43.9,48.1 32.1,13 62.4,9.8 74.4,-7.9 6.2,-9.2 8,-16.2 7.9,-32.2 0,-16.2 -2.5,-29.3 -8.8,-45.5 -7.1,-18.5 -7.7,-20.4 -8.2,-29 -1,-15 2.5,-28.6 14.1,-55.8 9.8,-22.9 10.1,-23.9 10,-37.7 -0.1,-10 -0.6,-13.5 -2.8,-21 -7,-23.4 -25.3,-51.1 -49.4,-74.9l-8,-7.9 3.3,8.4z" android:strokeColor="#00000000"/>
|
android:viewportWidth="121.85"
|
||||||
<path android:fillColor="#FF0000"
|
android:viewportHeight="200">
|
||||||
android:pathData="M303.3,121.7c-20.8,20.6 -33.4,39.6 -40,60.2 -0.8,2.6 -1.7,9.4 -2,15.2 -0.7,12.9 0.5,19 8.8,44.7 6.9,21.2 8.8,29.3 9.6,41.7 1,15.9 -3.1,31.3 -12.7,47.5 -7.2,12.2 -9.4,19.9 -8.8,31.4 1.4,24.1 18.3,45.2 42.2,52.5 24.3,7.4 62.9,-5.1 79,-25.5 6.2,-8 9,-13.5 12.2,-23.9 3.6,-12.2 4.5,-36.1 1.9,-51.7 -4.7,-28.3 -14.2,-41.9 -51.5,-73.8 -21.3,-18.3 -24.1,-21.4 -30,-32.2 -6.3,-11.8 -8.4,-21.6 -8.4,-38.8 0,-17 2.3,-29.9 8.5,-47.5 2.1,-6 3.7,-11.1 3.5,-11.3 -0.2,-0.2 -5.8,5 -12.3,11.5z" android:strokeColor="#00000000"/>
|
<path
|
||||||
<path android:fillColor="#FF0000"
|
android:fillColor="#ff0000"
|
||||||
android:pathData="M110.6,316.9c-1.6,2.6 -2.8,16.7 -2.2,26.6 1.1,19.7 6.4,37.3 18.1,61 16.5,33.6 41.3,54.3 80,67.1 42.5,13.9 85.4,12.9 117,-2.8 14.2,-7.1 30.3,-20.5 37.1,-30.8 4.5,-6.7 2.5,-7 -12.3,-2.2 -16.5,5.4 -27.7,6.8 -41.5,5.4 -25.4,-2.8 -44.8,-11.9 -60.7,-28.8 -9.5,-10 -14.5,-19.3 -19.2,-35.9 -3.7,-13 -5.2,-16.3 -8.2,-17.4 -1.2,-0.4 -7,-1.1 -12.8,-1.5 -36,-2.2 -64.2,-13.3 -85,-33.3 -8.8,-8.5 -9.4,-8.9 -10.3,-7.4z" android:strokeColor="#00000000"/>
|
android:pathData="m39.20,3.57c0.80,1.95 1.95,5.48 2.59,7.81 1.10,3.91 1.19,4.84 1.19,12.11 0,7.35 -0.08,8.11 -1.14,11.60 -2.89,9.43 -6.07,14.19 -15.97,24.13 -7.81,7.81 -11.04,11.85 -14.23,17.84 -6.07,11.43 -7.94,24.85 -4.88,35.01 2.80,9.39 9.56,16.78 18.65,20.44 13.64,5.52 26.51,4.16 31.61,-3.35 2.63,-3.91 3.4,-6.88 3.35,-13.68 0,-6.88 -1.06,-12.45 -3.74,-19.33 -3.01,-7.86 -3.27,-8.66 -3.48,-12.32 -0.42,-6.37 1.06,-12.15 5.99,-23.71 4.16,-9.73 4.29,-10.15 4.24,-16.02 -0.04,-4.24 -0.25,-5.73 -1.19,-8.92C59.22,25.24 51.44,13.47 41.20,3.35L37.80,0Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ff0000"
|
||||||
|
android:pathData="m82.88,47.16c-8.83,8.75 -14.19,16.82 -16.99,25.58 -0.34,1.10 -0.72,3.99 -0.85,6.45 -0.29,5.48 0.21,8.07 3.74,18.99 2.93,9.00 3.74,12.45 4.08,17.72 0.42,6.75 -1.31,13.30 -5.39,20.18 -3.06,5.18 -3.99,8.45 -3.74,13.34 0.59,10.24 7.77,19.20 17.93,22.31 10.32,3.14 26.72,-2.16 33.57,-10.83 2.63,-3.4 3.82,-5.73 5.18,-10.15 1.53,-5.18 1.91,-15.34 0.80,-21.97 -1.99,-12.02 -6.03,-17.80 -21.88,-31.36 -9.05,-7.77 -10.24,-9.09 -12.74,-13.68 -2.67,-5.01 -3.57,-9.17 -3.57,-16.48 0,-7.22 0.97,-12.70 3.61,-20.18 0.89,-2.55 1.57,-4.71 1.48,-4.80 -0.08,-0.08 -2.46,2.12 -5.22,4.88z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ff0000"
|
||||||
|
android:pathData="m1.00,130.11c-0.68,1.10 -1.19,7.09 -0.93,11.30 0.46,8.37 2.72,15.85 7.69,25.92 7.01,14.27 17.55,23.07 33.99,28.51 18.06,5.90 36.29,5.48 49.71,-1.19 6.03,-3.01 12.87,-8.71 15.76,-13.08 1.91,-2.84 1.06,-2.97 -5.22,-0.93 -7.01,2.29 -11.77,2.89 -17.63,2.29 -10.79,-1.19 -19.03,-5.05 -25.79,-12.23 -4.03,-4.24 -6.16,-8.20 -8.15,-15.25 -1.57,-5.52 -2.21,-6.92 -3.48,-7.39 -0.51,-0.17 -2.97,-0.46 -5.43,-0.63 -15.29,-0.93 -27.28,-5.65 -36.12,-14.15 -3.74,-3.61 -3.99,-3.78 -4.37,-3.14z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="173.61dp"
|
||||||
android:height="295dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="173.61"
|
||||||
android:viewportHeight="295.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M128,0L128,0C57.73,0 0.01,18.82 0.01,42.66C0.01,48.94 15.07,138.03 21.34,173.16C23.85,189.47 65.26,212.06 128,212.06L128,212.06C190.74,212.06 230.89,189.47 234.66,173.16C240.93,138.03 255.99,48.94 255.99,42.66C254.73,18.82 198.27,0 128,0L128,0ZM128,183.2C105.41,183.2 87.85,165.63 87.85,143.05C87.85,120.46 105.41,102.89 128,102.89C150.59,102.89 168.15,120.46 168.15,143.05C168.15,164.38 150.59,183.2 128,183.2L128,183.2ZM128,55.21C82.83,55.21 46.44,47.68 46.44,37.64C46.44,27.61 82.83,20.08 128,20.08C173.17,20.08 209.56,27.61 209.56,37.64C209.56,47.68 173.17,55.21 128,55.21L128,55.21Z"
|
android:pathData="M86.80,0L86.80,0C39.14,0 0,12.76 0,28.93 0,33.19 10.21,93.61 14.46,117.44 16.16,128.50 44.25,143.82 86.80,143.82v0c42.55,0 69.78,-15.32 72.34,-26.38 4.25,-23.82 14.46,-84.25 14.46,-88.51C172.76,12.76 134.46,0 86.80,0ZM86.80,124.25c-15.32,0 -27.23,-11.91 -27.23,-27.23 0,-15.32 11.91,-27.23 27.23,-27.23 15.32,0 27.23,11.91 27.23,27.23 0,14.46 -11.91,27.23 -27.23,27.23zM86.80,37.44c-30.63,0 -55.31,-5.10 -55.31,-11.91 0,-6.80 24.68,-11.91 55.31,-11.91 30.63,0 55.31,5.10 55.31,11.91 0,6.81 -24.68,11.91 -55.31,11.91z"
|
||||||
android:fillColor="#205081"/>
|
android:fillColor="#205081"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M220.61,207.04C218.1,207.04 216.84,208.29 216.84,208.29C216.84,208.29 185.47,233.39 129.01,233.39C72.54,233.39 41.17,208.29 41.17,208.29C41.17,208.29 38.66,207.04 37.41,207.04C34.9,207.04 32.39,208.29 32.39,212.06L32.39,213.31C37.41,239.66 41.17,258.49 41.17,261C44.94,279.82 82.58,294.88 127.75,294.88L127.75,294.88C172.93,294.88 210.57,279.82 214.33,261C214.33,258.49 218.1,239.66 223.12,213.31L223.12,212.06C224.37,209.55 223.12,207.04 220.61,207.04L220.61,207.04Z"
|
android:pathData="m149.62,140.42c-1.70,0 -2.55,0.84 -2.55,0.84 0,0 -21.27,17.02 -59.57,17.02 -38.3,0 -59.57,-17.02 -59.57,-17.02 0,0 -1.70,-0.84 -2.55,-0.84 -1.70,0 -3.40,0.84 -3.40,3.40v0.84c3.40,17.87 5.95,30.64 5.95,32.34C30.47,189.78 56.00,200 86.63,200v0c30.64,0 56.17,-10.21 58.72,-22.97 0,-1.70 2.55,-14.47 5.96,-32.34v-0.84c0.84,-1.70 0,-3.40 -1.70,-3.40z"
|
||||||
android:fillColor="#205081"/>
|
android:fillColor="#205081"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M128,141.79m-20.08,0a20.08,20.08 0,1 1,40.15 0a20.08,20.08 0,1 1,-40.15 0"
|
android:pathData="m86.80,96.16m-13.61,0a13.61,13.61 0,1 1,27.23 0,13.61 13.61,0 1,1 -27.23,0"
|
||||||
android:fillColor="#205081"/>
|
android:fillColor="#205081"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="199.99dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="199.99"
|
||||||
android:viewportHeight="256.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M252.17,158.95C235.07,227.56 165.56,269.27 97.05,252.17C28.44,235.06 -13.27,165.55 3.83,97.05C20.94,28.44 90.35,-13.27 158.96,3.83C227.47,20.84 269.27,90.35 252.17,158.95L252.17,158.95L252.17,158.95Z"
|
android:pathData="M197.00,124.17C183.64,177.77 129.34,210.36 75.82,197.00 22.22,183.63 -10.36,129.33 2.99,75.82 16.36,22.22 70.58,-10.36 124.18,2.99 177.70,16.28 210.36,70.58 197.00,124.17Z"
|
||||||
android:fillColor="#e87b18"/>
|
android:fillColor="#e87b18"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M188.94,112.05C191.44,95.05 178.54,85.85 160.74,79.75L166.54,56.65L152.54,53.15L146.94,75.65C143.24,74.75 139.44,73.85 135.64,73.05L141.24,50.45L127.24,46.95L121.54,69.95C118.44,69.25 115.44,68.55 112.54,67.85L112.54,67.75L93.14,62.95L89.44,77.95C89.44,77.95 99.84,80.35 99.64,80.45C105.34,81.85 106.34,85.65 106.14,88.65L99.54,114.95C99.94,115.05 100.44,115.15 101.04,115.45C100.54,115.35 100.04,115.25 99.54,115.05L90.34,151.85C89.64,153.55 87.84,156.15 83.94,155.15C84.04,155.35 73.74,152.65 73.74,152.65L66.74,168.75L85.04,173.35C88.44,174.25 91.74,175.05 95.04,175.95L89.24,199.25L103.24,202.75L109.04,179.65C112.84,180.65 116.64,181.65 120.24,182.55L114.54,205.55L128.54,209.05L134.34,185.75C158.34,190.25 176.34,188.45 183.84,166.75C189.94,149.35 183.54,139.25 170.94,132.65C180.24,130.55 187.14,124.45 188.94,112.05L188.94,112.05L188.94,112.05ZM156.84,157.05C152.54,174.45 123.14,165.05 113.64,162.65L121.34,131.75C130.84,134.15 161.44,138.85 156.84,157.05L156.84,157.05ZM161.24,111.75C157.24,127.65 132.84,119.55 124.94,117.55L131.94,89.55C139.84,91.55 165.34,95.25 161.24,111.75L161.24,111.75Z"
|
android:pathData="m147.60,87.53c1.95,-13.28 -8.12,-20.46 -22.03,-25.23l4.53,-18.04 -10.93,-2.73 -4.37,17.57c-2.89,-0.70 -5.85,-1.40 -8.82,-2.03l4.37,-17.65 -10.93,-2.73 -4.45,17.96c-2.42,-0.54 -4.76,-1.09 -7.03,-1.64v-0.07l-15.15,-3.75 -2.89,11.71c0,0 8.12,1.87 7.96,1.95 4.45,1.09 5.23,4.06 5.07,6.40l-5.15,20.54c0.31,0.07 0.70,0.15 1.17,0.39 -0.39,-0.07 -0.78,-0.15 -1.17,-0.31l-7.18,28.74c-0.54,1.32 -1.95,3.35 -5,2.57 0.07,0.15 -7.96,-1.95 -7.96,-1.95l-5.46,12.57 14.29,3.59c2.65,0.70 5.23,1.32 7.81,2.03l-4.53,18.20 10.93,2.73 4.53,-18.04c2.96,0.78 5.93,1.56 8.75,2.26l-4.45,17.96 10.93,2.73 4.53,-18.20c18.75,3.51 32.81,2.10 38.67,-14.84 4.76,-13.59 -0.23,-21.48 -10.07,-26.64 7.26,-1.64 12.65,-6.40 14.06,-16.09zM122.53,122.69c-3.35,13.59 -26.32,6.25 -33.74,4.37l6.01,-24.14c7.42,1.87 31.32,5.54 27.73,19.76zM125.96,87.30c-3.12,12.42 -22.18,6.09 -28.35,4.53l5.46,-21.87c6.17,1.56 26.09,4.45 22.89,17.34z"
|
||||||
android:fillColor="#FFFFFF"/>
|
android:fillColor="#ffffff"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
12
app/src/main/res/drawable/thumb_bitdefender.xml
Normal file
12
app/src/main/res/drawable/thumb_bitdefender.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="128dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="128">
|
||||||
|
<path
|
||||||
|
android:pathData="m64,128c35.34,-0 64,-28.65 64,-64 0,-35.34 -28.65,-64 -64,-64 -35.34,-0 -64,28.65 -64,64 0,35.34 28.65,64 64,64"
|
||||||
|
android:fillColor="#e0001b" />
|
||||||
|
<path
|
||||||
|
android:pathData="m80.36,61.94l0,-0.21c7.89,-2.38 13.30,-8.10 13.30,-16.76 0,-13.95 -11.90,-19.24 -23.45,-19.24l-27.98,-0l0,-0.00l-11.14,-0l0,1.14l3.92,3.33c4.72,3.84 5.33,4.58 5.33,8.06l0,64.04l27.60,-0c14.47,-0 28.98,-5.19 28.98,-21.85 0,-9.83 -6.93,-17.41 -16.55,-18.49m-26.38,-24.54l11.24,-0c7.60,-0 9.96,1.04 12.26,3.23 1.75,1.66 2.55,3.94 2.55,6.60 0,2.47 -0.84,4.68 -2.64,6.4 -2.25,2.16 -5.33,3.21 -10.98,3.21l-12.42,-0zM66.51,90.60l-12.53,-0l0,-22.06l13.08,-0c11.03,-0 16.22,2.80 16.22,10.81 0,10.05 -9.74,11.24 -16.77,11.24"
|
||||||
|
android:fillColor="#ffffff" />
|
||||||
|
</vector>
|
|
@ -1,12 +1,12 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="128dp"
|
android:width="128dp"
|
||||||
android:height="80dp"
|
android:height="102.6707dp"
|
||||||
android:viewportWidth="312.41"
|
android:viewportWidth="128"
|
||||||
android:viewportHeight="195.69">
|
android:viewportHeight="102.6707">
|
||||||
<path
|
<path
|
||||||
android:pathData="m107.52,0h118.16a7.78,7.78 0,0 1,-1.55 4.32c-4,6.86 -7.6,14 -11.53,20.86 -5.6,9.82 -10.76,19.88 -16.41,29.69 -3.58,7.06 -7.62,13.9 -11.44,20.84h-68.88c-1.2,0 -2.39,0.06 -3.59,0.13 -1,2.64 -2.66,5 -4,7.43 -1.75,2.84 -3.17,5.87 -4.9,8.71 -1.83,3.82 -4.36,7.24 -6.2,11 -3.8,6.45 -7.35,13 -11.07,19.52q-5.82,10 -11.38,20.28c-1.57,2.43 -3,4.94 -4.33,7.51 -7.77,13.57 -15.29,27.21 -23.07,40.71a16.39,16.39 0,0 1,-2.58 4c-13.3,-0.09 -26.6,0 -39.9,0a20.34,20.34 0,0 0,-4.85 0.68c0,-3.68 2.46,-6.62 4.12,-9.68 2,-4.15 4.67,-8 6.68,-12.16 15.94,-28.52 31.71,-57.14 47.6,-85.68 3.6,-6.2 6.69,-12.53 10.31,-18.61 4.52,-8 8.73,-16.18 13.44,-24.09 1.5,-3.31 3.52,-6.34 5.17,-9.57 5.86,-10.43 11.61,-20.92 17.45,-31.35a18.11,18.11 0,0 1,2.75 -4.54z"
|
android:pathData="M25.968,0.524 L76.733,0.61 67.449,38.814 42.066,38.558 26.223,102.147H0.67Z"
|
||||||
android:fillColor="#eb4a60"/>
|
android:fillColor="#ff0201" />
|
||||||
<path
|
<path
|
||||||
android:pathData="m244.44,42c7.87,-13.75 15.47,-27.65 23.45,-41.34h42.68a8.82,8.82 0,0 1,1.84 0.29c-1.42,2.15 -2.61,4.43 -3.86,6.67q-15.44,27.71 -30.79,55.45c-4.3,7.53 -8.3,15.23 -12.66,22.72l-0.43,0.15 -0.08,0.94q-30.1,54 -60,108.08 -58.77,0.04 -117.59,0.04c2.23,-4.66 4.87,-9.11 7.35,-13.64 11.2,-20.57 22.65,-40.91 33.65,-61.43q36.1,-0.06 72.22,0c14.87,-25.93 29.42,-52 44.18,-77.93z"
|
android:pathData="m101.436,0.523h25.894L102.033,102.147H50.926l9.71,-38.568h25.128z"
|
||||||
android:fillColor="#595fb5"/>
|
android:fillColor="#125bff" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
36
app/src/main/res/drawable/thumb_bitstamp.xml
Normal file
36
app/src/main/res/drawable/thumb_bitstamp.xml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="45.2dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="45.2">
|
||||||
|
<path
|
||||||
|
android:pathData="M-0,40.6l0,4.53l173.13,0l0,-4.53z"
|
||||||
|
android:fillColor="#159E49"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M185.13,40.6l0,4.53l14.86,0l0,-4.53z"
|
||||||
|
android:fillColor="#159E49"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m33.73,33.73l6.2,0l0,-23.33l-6.2,0zM33.13,3.66c0,-1.06 0.33,-1.93 1.06,-2.66 0.66,-0.66 1.6,-1 2.66,-1 1.13,0 2,0.33 2.66,1 0.66,0.66 1.06,1.53 1.06,2.66 0,1.06 -0.33,1.93 -1.06,2.66 -0.66,0.66 -1.6,1 -2.66,1 -1.06,0 -1.93,-0.33 -2.66,-1 -0.73,-0.66 -1.06,-1.6 -1.06,-2.66z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m54.2,10.33l6.33,0l0,4.66l-6.33,0l0,11.2c0,1 0.26,1.8 0.86,2.4 0.6,0.6 1.33,0.93 2.33,0.93 0.86,0 1.86,-0.13 2.93,-0.4l0.8,4.6c-1.8,0.46 -3.53,0.73 -5.2,0.73 -1.13,0 -2.2,-0.2 -3.13,-0.53 -0.93,-0.33 -1.73,-0.86 -2.46,-1.53 -0.66,-0.66 -1.2,-1.46 -1.6,-2.4 -0.4,-0.93 -0.53,-1.93 -0.53,-3.06l0,-11.8l-4.26,0l0,-4.66l4.26,0l0,-6.86l5.93,0l0,6.73z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m64.2,16.8c0,-1 0.2,-2 0.66,-2.86 0.46,-0.86 1.06,-1.6 1.8,-2.26 0.8,-0.6 1.73,-1.13 2.8,-1.46 1.06,-0.33 2.33,-0.53 3.6,-0.53 1.33,0 2.73,0.13 4.13,0.4 1.4,0.26 2.86,0.66 4.33,1.2l-1.33,4.4c-1.13,-0.46 -2.26,-0.8 -3.4,-1.06 -1.13,-0.26 -2.2,-0.4 -3.2,-0.4 -1.06,0 -1.93,0.2 -2.6,0.66 -0.66,0.46 -0.93,1.06 -0.93,1.86 0,0.73 0.33,1.26 0.93,1.6 0.6,0.33 1.33,0.66 2.26,0.93 0.93,0.26 1.86,0.53 2.93,0.73 1.06,0.26 2.06,0.66 2.93,1.2 0.93,0.53 1.66,1.26 2.26,2.13 0.6,0.93 0.93,2.13 0.93,3.6 0,1.06 -0.2,2 -0.66,2.93 -0.46,0.86 -1.06,1.66 -1.86,2.33 -0.8,0.66 -1.73,1.13 -2.93,1.53 -1.13,0.33 -2.4,0.53 -3.73,0.53 -2.86,0 -5.93,-0.6 -9.13,-1.86l1.26,-4.33c2.73,1.13 5.2,1.66 7.4,1.66 1.13,0 2.06,-0.26 2.73,-0.73 0.66,-0.46 1,-1.13 1,-2 0,-0.73 -0.33,-1.26 -0.93,-1.66 -0.6,-0.4 -1.33,-0.73 -2.26,-1 -0.93,-0.26 -1.86,-0.53 -2.93,-0.8 -1.06,-0.26 -2,-0.66 -2.93,-1.2 -0.93,-0.53 -1.66,-1.2 -2.26,-2.06 -0.6,-0.8 -0.86,-2 -0.86,-3.46"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m94.8,10.33l6.33,0l0,4.66l-6.33,0l0,11.2c0,1 0.26,1.8 0.86,2.4 0.6,0.6 1.33,0.93 2.33,0.93 0.86,0 1.86,-0.13 2.93,-0.4l0.8,4.6c-1.8,0.46 -3.53,0.73 -5.2,0.73 -1.13,0 -2.2,-0.2 -3.13,-0.53 -0.93,-0.33 -1.73,-0.86 -2.46,-1.53 -0.73,-0.66 -1.2,-1.46 -1.6,-2.4 -0.4,-0.93 -0.53,-1.93 -0.53,-3.06l0,-11.8l-4.26,0l0,-4.66l4.26,0l0,-6.86l5.93,0l0,6.73z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m110.93,26.6c0,0.93 0.4,1.73 1.13,2.4 0.8,0.66 1.73,1 2.86,1 1.6,0 2.86,-0.53 3.86,-1.53 1,-1 1.46,-2.33 1.46,-3.93l0,-1.4c-1.13,-0.33 -2.4,-0.46 -3.8,-0.46 -1.73,0 -3.06,0.33 -4.06,1.06 -0.93,0.66 -1.46,1.66 -1.46,2.86m-5.8,0.33c0,-2.46 0.93,-4.4 2.8,-5.73 1.86,-1.33 4.46,-2 7.86,-2 0.73,0 1.46,0.06 2.2,0.13 0.73,0.06 1.53,0.2 2.26,0.33l0,-1.26c0,-1.2 -0.4,-2.2 -1.26,-2.93 -0.86,-0.73 -2,-1.13 -3.46,-1.13 -2.33,0 -4.86,0.53 -7.6,1.66l-1.53,-4.26c3.33,-1.33 6.6,-1.93 9.8,-1.93 1.46,0 2.73,0.2 3.93,0.66 1.2,0.4 2.2,1 3.06,1.8 0.86,0.73 1.53,1.66 2,2.73 0.46,1.06 0.73,2.26 0.73,3.53l0,9.53c0,0.53 0.13,0.93 0.4,1.2 0.26,0.33 0.66,0.46 1.2,0.46 0.26,0 0.46,0 0.73,-0.06 0.2,0 0.4,-0.06 0.46,-0.06l0.4,4.46c-0.53,0.06 -1,0.2 -1.53,0.26 -0.53,0.06 -1.06,0.06 -1.66,0.06 -1.2,0 -2.2,-0.26 -3.06,-0.86 -0.86,-0.53 -1.46,-1.33 -1.86,-2.33 -1,1 -2.2,1.8 -3.46,2.33 -1.33,0.53 -2.66,0.8 -4.13,0.8 -1.2,0 -2.33,-0.2 -3.33,-0.53 -1,-0.33 -1.86,-0.86 -2.6,-1.53 -0.73,-0.66 -1.26,-1.4 -1.66,-2.33 -0.46,-0.93 -0.66,-1.93 -0.66,-3"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m132.6,10.26l4.8,0l0.73,3.2c0.93,-1.2 2,-2.13 3.33,-2.8 1.33,-0.66 2.73,-1 4.26,-1 1.73,0 3.2,0.4 4.53,1.13 1.26,0.73 2.26,1.8 2.93,3.13 1.06,-1.4 2.33,-2.46 3.73,-3.2 1.4,-0.73 2.93,-1.06 4.66,-1.06 1.26,0 2.4,0.2 3.46,0.6 1.06,0.4 2,1 2.73,1.8 0.8,0.73 1.4,1.66 1.8,2.73 0.4,1.06 0.66,2.2 0.66,3.46l0,15.46l-6.06,0l0,-14.46c0,-1.33 -0.4,-2.4 -1.26,-3.26 -0.86,-0.8 -1.93,-1.26 -3.26,-1.26 -1.53,0 -2.8,0.53 -3.8,1.6 -1,1.06 -1.46,2.4 -1.46,4.13l0,13.26l-6.06,0l0,-14.46c0,-1.33 -0.4,-2.4 -1.2,-3.26 -0.8,-0.8 -1.86,-1.26 -3.2,-1.26 -1.6,0 -2.86,0.53 -3.86,1.6 -1,1.06 -1.46,2.4 -1.46,4.13l0,13.26l-6.06,0l0,-23.46z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m193.33,21.93c0,-1.06 -0.13,-2.06 -0.46,-3 -0.26,-0.93 -0.73,-1.73 -1.26,-2.33 -0.53,-0.66 -1.13,-1.13 -1.86,-1.53 -0.73,-0.4 -1.53,-0.53 -2.4,-0.53 -1.6,0 -2.86,0.53 -3.93,1.66 -1,1.06 -1.53,2.46 -1.53,4.2l0,3.13c0,0.86 0.13,1.66 0.4,2.33 0.26,0.73 0.66,1.33 1.13,1.86 0.46,0.53 1.06,0.93 1.73,1.2 0.66,0.26 1.4,0.4 2.2,0.4 0.86,0 1.66,-0.2 2.4,-0.53 0.73,-0.33 1.33,-0.86 1.86,-1.53 0.53,-0.66 0.93,-1.46 1.26,-2.33 0.33,-0.86 0.46,-1.93 0.46,-3zM176,10.26l4.8,0l0.73,3c0.86,-1.13 1.86,-2 3.13,-2.66 1.26,-0.6 2.66,-0.93 4.2,-0.93 1.53,0 2.93,0.33 4.26,0.93 1.26,0.6 2.4,1.46 3.33,2.53 0.93,1.06 1.66,2.33 2.2,3.86 0.53,1.46 0.8,3.13 0.8,4.93 0,1.8 -0.26,3.46 -0.8,4.93 -0.53,1.46 -1.26,2.8 -2.2,3.86 -0.93,1.06 -2.06,1.93 -3.33,2.53 -1.26,0.6 -2.73,0.93 -4.26,0.93 -1.4,0 -2.73,-0.26 -3.86,-0.8 -1.2,-0.53 -2.2,-1.33 -3,-2.4l0,14.2l-6,0z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m20.4,27.73c-0.93,0.93 -2.2,1.33 -3.8,1.33l-7.46,0l0,-9.66l7.46,0c1.53,0 2.8,0.46 3.8,1.33 0.93,0.86 1.4,2.06 1.4,3.46 0.06,1.46 -0.4,2.66 -1.4,3.53zM9.13,6.33l6.86,0c1.4,0 2.53,0.4 3.46,1.26 0.93,0.8 1.33,1.93 1.33,3.26 0,1.33 -0.46,2.4 -1.33,3.2 -0.93,0.8 -2.06,1.2 -3.46,1.2l-6.86,0zM26.53,20c-1,-1.4 -2.33,-2.4 -4,-3 1.33,-0.6 2.33,-1.46 3.13,-2.66 0.8,-1.2 1.2,-2.6 1.2,-4.2 0,-1.26 -0.26,-2.4 -0.73,-3.4 -0.46,-1.06 -1.2,-1.93 -2.06,-2.66 -0.86,-0.73 -1.93,-1.33 -3.13,-1.73 -1.2,-0.4 -2.53,-0.6 -4,-0.6L-0,1.73l0,4.26 0,0c2.6,0 4.66,2.13 4.66,4.73 0,2.6 -2.06,4.73 -4.66,4.73l0,3.86 0,0c2.6,0 4.66,2.13 4.66,4.73l0,0.73c0,2.6 -2.06,4.73 -4.66,4.73l0,0 0,4.26l17.66,0c1.53,0 2.86,-0.2 4.13,-0.66 1.26,-0.4 2.33,-1 3.26,-1.8 0.93,-0.8 1.66,-1.73 2.13,-2.8 0.53,-1.06 0.8,-2.26 0.8,-3.6 0,-1.93 -0.46,-3.53 -1.46,-4.93z"
|
||||||
|
android:fillColor="#333433"/>
|
||||||
|
</vector>
|
16
app/src/main/res/drawable/thumb_bugcrowd.xml
Normal file
16
app/src/main/res/drawable/thumb_bugcrowd.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="111dp"
|
||||||
|
android:viewportWidth="22"
|
||||||
|
android:viewportHeight="19.07" >
|
||||||
|
|
||||||
|
<path
|
||||||
|
android:fillAlpha="1"
|
||||||
|
android:fillColor="#f26822"
|
||||||
|
android:pathData="M22,9.45 L16.4,18.9 5.47,18.9 0,9.45 5.47,0 16.4,0Z"
|
||||||
|
android:strokeWidth="9.33" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:fillAlpha="1"
|
||||||
|
android:pathData="M15.14,9.21C14.79,8.01 13.79,6.99 12.54,6.79 11.44,6.58 10.16,6.90 9.47,7.84c-0.05,-0.22 0.02,-0.60 0,-0.89 -0.01,-0.79 0.02,-1.59 -0.02,-2.39 -0.03,-0.54 -0.61,-0.79 -1.09,-0.74 -0.61,-0 -1.22,-0 -1.83,-0 0,0.56 0,1.12 0,1.68 0.29,0.02 0.61,-0.06 0.87,0.08 0.16,0.26 0.06,0.59 0.08,0.89 0,2.80 0,5.61 0,8.42 0.62,-0 1.24,-0 1.87,-0 -0.00,-0.31 0.00,-0.62 -0.03,-0.93 0.28,0.29 0.60,0.62 1.00,0.80 1.52,0.74 3.55,0.13 4.40,-1.34C15.49,12.16 15.55,10.58 15.14,9.21ZM13.23,11.98c-0.25,0.87 -1.14,1.54 -2.07,1.40 -1.03,-0.09 -1.65,-1.13 -1.72,-2.08 -0.09,-0.96 0.14,-2.12 1.05,-2.63 0.84,-0.47 2.04,-0.18 2.51,0.68C13.45,10.13 13.49,11.13 13.23,11.98Z" />
|
||||||
|
</vector>
|
30
app/src/main/res/drawable/thumb_church_tools.xml
Normal file
30
app/src/main/res/drawable/thumb_church_tools.xml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="121.44dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="121.44">
|
||||||
|
<path
|
||||||
|
android:pathData="M45.45,46.43C41.40,49.32 31.66,58.32 0,54.73V30.22c11.87,3.47 16.56,3.47 23.30,3.47 6.73,0 25.55,-2.03 36.77,-13.76 -1.56,6.25 -3.28,16.90 -14.62,26.49z"
|
||||||
|
android:fillColor="#bc2845" />
|
||||||
|
<path
|
||||||
|
android:pathData="m60.98,0c0,1.39 2.79,25.01 -9.33,39.98C39.52,54.95 25.85,55.45 11.69,55.45 22.40,49.30 30.75,38.89 33.48,31.48 36.20,24.08 35.07,9.44 34.49,0 44.72,-0 51.64,-0 60.98,0Z"
|
||||||
|
android:fillColor="#dd586b" />
|
||||||
|
<path
|
||||||
|
android:pathData="m82.50,75.01c4.04,-2.89 13.78,-11.9 45.45,-8.31V91.21c-11.87,-3.47 -16.56,-3.47 -23.30,-3.47 -6.73,0 -25.55,2.03 -36.77,13.76 1.56,-6.25 3.28,-16.90 14.62,-26.49z"
|
||||||
|
android:fillColor="#1bb2a3" />
|
||||||
|
<path
|
||||||
|
android:pathData="m66.98,121.44c0,-1.39 -2.79,-25.01 9.33,-39.98 12.12,-14.97 25.79,-15.47 39.95,-15.47 -10.71,6.14 -19.06,16.55 -21.78,23.96 -2.72,7.40 -1.59,22.04 -1.01,31.48 -10.22,0 -17.14,0 -26.48,0z"
|
||||||
|
android:fillColor="#5bd8cf" />
|
||||||
|
<path
|
||||||
|
android:pathData="m58.77,121.44c0.62,-7.81 -0.06,-27.50 -6.46,-36.91 -6.39,-9.40 -12.24,-18.53 -34.99,-19.91 10.71,6.14 12.72,17.35 15.44,24.75 2.72,7.40 2.04,22.63 1.46,32.07 10.22,0 15.21,0 24.54,0z"
|
||||||
|
android:fillColor="#fc8f00" />
|
||||||
|
<path
|
||||||
|
android:pathData="M45.45,75.01C41.10,71.49 30.87,61.05 0,64.20v26.09c12.55,-1.87 15.58,-2.51 24.63,-2.51 9.05,0 22.09,4.65 33.97,19.31C57.48,97.39 55.96,84.05 45.45,75.01Z"
|
||||||
|
android:fillColor="#ffc776" />
|
||||||
|
<path
|
||||||
|
android:pathData="m69.07,0c0,1.39 -2.25,27.78 9.86,42.75C91.06,57.72 106.14,57.69 120.3,57.69 109.59,51.54 98.05,41.76 95.15,32.41 92.25,23.05 93.28,10.41 93.96,0 83.73,-0 78.40,-0 69.07,0Z"
|
||||||
|
android:fillColor="#0063ad" />
|
||||||
|
<path
|
||||||
|
android:pathData="M84.50,48.54C90.48,52.97 101.53,61.26 128,57.16V31.3c-8.19,1.68 -14.51,2.40 -21.25,2.40 -6.73,0 -24.20,1.93 -37.51,-19.74 1.36,13.56 3.93,24.99 15.27,34.58z"
|
||||||
|
android:fillColor="#499bce" />
|
||||||
|
</vector>
|
57
app/src/main/res/drawable/thumb_cisco.xml
Normal file
57
app/src/main/res/drawable/thumb_cisco.xml
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="67.46dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="67.46">
|
||||||
|
<path
|
||||||
|
android:pathData="m41.81,44.82h-5.61v22.24h5.61z"
|
||||||
|
android:fillColor="#c4122e"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m87.07,51.20c-0.22,-0.11 -2.03,-1.18 -4.71,-1.18 -3.63,0 -6.15,2.52 -6.15,5.93 0,3.30 2.41,5.93 6.15,5.93 2.63,0 4.47,-1.04 4.71,-1.18v5.97c-0.69,0.19 -2.61,0.79 -5.11,0.79 -6.30,0 -11.84,-4.35 -11.84,-11.51 0,-6.64 5.01,-11.51 11.84,-11.51 2.64,0 4.59,0.64 5.11,0.79z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m28.48,51.20c-0.22,-0.11 -2.03,-1.18 -4.71,-1.18 -3.63,0 -6.15,2.52 -6.15,5.93 0,3.30 2.41,5.93 6.15,5.93 2.63,0 4.47,-1.04 4.71,-1.18v5.97c-0.69,0.19 -2.61,0.79 -5.11,0.79 -6.30,0 -11.84,-4.35 -11.84,-11.51 0,-6.64 5.01,-11.51 11.84,-11.51 2.64,0 4.59,0.64 5.11,0.79z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m104.72,50.09c-3.33,0 -5.80,2.62 -5.80,5.84 0,3.23 2.47,5.85 5.80,5.85 3.32,0 5.80,-2.61 5.80,-5.85 0,-3.22 -2.48,-5.84 -5.80,-5.84m11.75,5.84c0,6.36 -4.91,11.51 -11.75,11.51 -6.84,0 -11.74,-5.15 -11.74,-11.51 0,-6.35 4.90,-11.51 11.74,-11.51 6.84,0 11.75,5.16 11.75,11.51" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m63.1,49.88c-0.08,-0.02 -2.44,-0.67 -4.38,-0.67 -2.24,0 -3.47,0.75 -3.47,1.82 0,1.35 1.65,1.82 2.57,2.11l1.54,0.49c3.64,1.15 5.30,3.65 5.30,6.36 0,5.58 -4.91,7.46 -9.20,7.46 -2.98,0 -5.78,-0.54 -6.05,-0.60v-5.11c0.49,0.12 2.84,0.82 5.3,0.82 2.79,0 4.07,-0.81 4.07,-2.07 0,-1.12 -1.11,-1.77 -2.50,-2.21 -0.34,-0.11 -0.85,-0.27 -1.19,-0.38 -3.12,-0.98 -5.73,-2.82 -5.73,-6.50 0,-4.16 3.11,-6.95 8.28,-6.95 2.73,0 5.30,0.66 5.47,0.70z" />
|
||||||
|
<path
|
||||||
|
android:pathData="m5.57,20.92c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,5.83c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m20.87,13.26c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,13.50c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m36.18,2.77c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,29.53c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m51.49,13.26c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,13.50c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m66.77,20.92c0,-1.53 -1.24,-2.77 -2.77,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,5.83c0,1.54 1.25,2.78 2.78,2.78 1.52,0 2.77,-1.24 2.77,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m66.78,20.92c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,5.83c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m82.09,13.26c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,13.50c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m97.39,2.77c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,29.53c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m112.70,13.26c0,-1.53 -1.25,-2.77 -2.78,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,13.50c0,1.54 1.25,2.78 2.78,2.78 1.53,0 2.78,-1.24 2.78,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m127.99,20.92c0,-1.53 -1.24,-2.77 -2.77,-2.77 -1.53,0 -2.78,1.24 -2.78,2.77l0,5.83c0,1.54 1.25,2.78 2.78,2.78 1.52,0 2.77,-1.24 2.77,-2.78z"
|
||||||
|
android:fillColor="#15495d"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m124.78,64.14v0.34h-0.99v2.58h-0.40v-2.58h-0.99v-0.34z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m124.99,64.14h0.63l0.87,2.40h0.01l0.84,-2.40H128v2.92h-0.41v-2.4h-0.01l-0.88,2.4h-0.38l-0.86,-2.4h-0.02v2.4h-0.40z" />
|
||||||
|
</vector>
|
|
@ -1,15 +1,15 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="116dp"
|
android:height="90.45dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="116.0">
|
android:viewportHeight="90.45">
|
||||||
<path
|
<path
|
||||||
android:pathData="M202.36,49.39L197.05,47.27C172.08,103.43 72.79,69.29 66.81,86C65.81,97.28 121.04,88.14 160.52,90.06C172.56,90.64 178.59,99.73 173.48,114.54L183.55,114.57C195.16,78.36 232.23,96.84 233.78,84.89C231.24,77.03 191.18,84.89 202.36,49.39Z"
|
android:pathData="m158.09,38.58 l-4.14,-1.65c-19.50,43.87 -97.07,17.20 -101.75,30.25 -0.78,8.81 42.36,1.67 73.21,3.17 9.40,0.45 14.11,7.55 10.12,19.12l7.86,0.02c9.07,-28.28 38.03,-13.85 39.24,-23.18 -1.98,-6.14 -33.28,0 -24.54,-27.73z"
|
||||||
android:fillColor="#FFFFFF"/>
|
android:fillColor="#ffffff"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M176.33,108.35C177.93,103.04 177.39,97.73 174.74,94.54C172.08,91.35 168.37,89.23 163.59,88.7L71.17,87.63C70.64,87.63 70.11,87.1 69.58,87.1C69.05,86.57 69.05,86.04 69.58,85.51C70.11,84.45 70.64,83.92 71.7,83.92L164.65,82.85C175.8,82.32 187.49,73.29 191.73,62.67L197.05,48.86C197.05,48.33 197.58,47.8 197.05,47.27C191.2,20.18 166.77,-0 138.09,-0C111.54,-0 88.7,17 80.73,40.9C75.42,37.18 69.05,35.05 61.61,35.59C48.86,36.65 38.77,47.27 37.18,60.02C36.65,63.2 37.18,66.39 37.71,69.58C17,70.11 0,87.1 0,108.35C0,110.47 0,112.07 0.53,114.19C0.53,115.25 1.59,115.78 2.13,115.78L172.61,115.78C173.68,115.78 174.74,115.25 174.74,114.19L176.33,108.35Z"
|
android:pathData="m137.75,84.64c1.25,-4.14 0.82,-8.29 -1.24,-10.78 -2.07,-2.49 -4.97,-4.14 -8.71,-4.56L55.60,68.46c-0.41,0 -0.82,-0.41 -1.24,-0.41 -0.41,-0.41 -0.41,-0.82 0,-1.24 0.41,-0.82 0.82,-1.24 1.65,-1.24l72.61,-0.83c8.71,-0.41 17.84,-7.46 21.15,-15.76l4.15,-10.78c0,-0.41 0.41,-0.82 0,-1.24C149.37,15.76 130.28,0 107.88,0 87.14,0 69.29,13.28 63.07,31.95c-4.14,-2.90 -9.12,-4.57 -14.93,-4.14 -9.96,0.82 -17.84,9.12 -19.08,19.08 -0.41,2.48 0,4.97 0.41,7.46C13.28,54.77 0,68.04 0,84.64c0,1.65 0,2.90 0.41,4.56 0,0.82 0.82,1.24 1.25,1.24H134.85c0.83,0 1.66,-0.41 1.66,-1.24z"
|
||||||
android:fillColor="#F4811F"/>
|
android:fillColor="#f4811f"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M205.54,48.86L202.89,48.86C202.36,48.86 201.83,49.39 201.29,49.92L197.58,62.67C195.98,67.98 196.51,73.29 199.17,76.48C201.83,79.67 205.54,81.79 210.32,82.32L229.98,83.39C230.51,83.39 231.04,83.92 231.57,83.92C232.1,84.45 232.1,84.98 231.57,85.51C231.04,86.57 230.51,87.1 229.44,87.1L209.26,88.17C198.11,88.7 186.42,97.73 182.17,108.35L181.11,113.13C180.58,113.66 181.11,114.72 182.17,114.72L252.28,114.72C253.34,114.72 253.88,114.19 253.88,113.13C254.94,108.88 256,104.1 256,99.32C256,71.7 233.16,48.86 205.54,48.86"
|
android:pathData="m160.57,38.17h-2.07c-0.41,0 -0.82,0.41 -1.25,0.82l-2.89,9.96c-1.25,4.14 -0.83,8.29 1.24,10.78 2.07,2.49 4.97,4.14 8.71,4.56l15.35,0.83c0.41,0 0.82,0.41 1.24,0.41 0.41,0.41 0.41,0.82 0,1.24 -0.41,0.82 -0.82,1.24 -1.66,1.24l-15.76,0.83c-8.71,0.41 -17.84,7.46 -21.16,15.76l-0.82,3.73c-0.41,0.41 0,1.24 0.82,1.24h54.77c0.82,0 1.25,-0.41 1.25,-1.24C199.17,85.06 200,81.32 200,77.59 200,56.01 182.15,38.17 160.57,38.17"
|
||||||
android:fillColor="#FAAD3F"/>
|
android:fillColor="#faad3f"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,54 +1,30 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="579.0"
|
android:width="200dp"
|
||||||
android:viewportHeight="126.0"
|
android:height="43.41dp"
|
||||||
android:width="579dp"
|
android:viewportWidth="200"
|
||||||
android:height="126dp">
|
android:viewportHeight="43.41">
|
||||||
<path
|
<path
|
||||||
android:pathData="M37.75,125.87C18.82,125.87 0.37,112.31 0.37,81.55C0.37,50.79 18.82,37.38 37.75,37.38C47.06,37.38 54.31,39.75 59.52,43.22L53.84,55.68C50.37,53.16 45.17,51.58 39.96,51.58C28.6,51.58 18.19,60.57 18.19,81.39C18.19,102.21 28.92,111.36 39.96,111.36C45.17,111.36 50.37,109.78 53.84,107.26L59.52,120.04C54.16,123.66 47.06,125.87 37.75,125.87"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="M12.92,43.41C6.38,43.41 0,38.72 0,28.09 0,17.45 6.38,12.81 12.92,12.81c3.21,0 5.72,0.81 7.52,2.01l-1.96,4.30c-1.2,-0.87 -2.99,-1.41 -4.79,-1.41 -3.92,0 -7.52,3.10 -7.52,10.30 0,7.19 3.71,10.36 7.52,10.36 1.80,0 3.6,-0.54 4.79,-1.41l1.96,4.41c-1.85,1.25 -4.30,2.01 -7.52,2.01" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M102.9,125.87C78.76,125.87 65.51,106.79 65.51,81.55C65.51,56.31 78.76,37.38 102.9,37.38C127.03,37.38 140.28,56.31 140.28,81.55C140.28,106.79 127.03,125.87 102.9,125.87L102.9,125.87ZM102.9,51.1C89.49,51.1 82.87,63.09 82.87,81.39C82.87,99.69 89.49,111.83 102.9,111.83C116.31,111.83 122.93,99.69 122.93,81.39C122.93,63.09 116.31,51.1 102.9,51.1L102.9,51.1Z"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m35.45,43.41c-8.34,0 -12.92,-6.59 -12.92,-15.32 0,-8.72 4.58,-15.27 12.92,-15.27 8.34,0 12.92,6.54 12.92,15.27 0,8.72 -4.58,15.32 -12.92,15.32zM35.45,17.56c-4.63,0 -6.92,4.14 -6.92,10.47 0,6.32 2.28,10.52 6.92,10.52 4.63,0 6.92,-4.19 6.92,-10.52 0,-6.32 -2.28,-10.47 -6.92,-10.47z" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M163.47,23.66C157.79,23.66 153.21,19.24 153.21,13.88C153.21,8.52 157.79,4.1 163.47,4.1C169.15,4.1 173.72,8.52 173.72,13.88C173.72,19.24 169.15,23.66 163.47,23.66L163.47,23.66ZM154.79,39.12L172.14,39.12L172.14,124.14L154.79,124.14L154.79,39.12Z"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m56.39,8.07c-1.96,0 -3.54,-1.52 -3.54,-3.38 0,-1.85 1.58,-3.38 3.54,-3.38 1.96,0 3.54,1.52 3.54,3.38 0,1.85 -1.58,3.38 -3.54,3.38zM53.39,13.42h5.99v29.39h-5.99z" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M240.44,124.14L240.44,67.35C240.44,57.42 234.45,51.26 222.62,51.26C216.31,51.26 210.47,52.37 207,53.79L207,124.14L189.81,124.14L189.81,43.38C198.33,39.91 209.21,37.38 222.46,37.38C246.28,37.38 257.79,47.79 257.79,65.78L257.79,124.14L240.44,124.14"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m83.01,42.81v-19.63c0,-3.43 -2.07,-5.56 -6.16,-5.56 -2.18,0 -4.20,0.38 -5.40,0.87V42.81H65.50V14.89c2.94,-1.2 6.70,-2.07 11.29,-2.07 8.23,0 12.21,3.6 12.21,9.82v20.17h-5.99" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M303.54,125.87C292.49,125.87 281.61,123.19 274.99,119.88L274.99,0.31L292.18,0.31L292.18,41.33C296.28,39.43 302.9,37.86 308.74,37.86C330.67,37.86 345.49,53.63 345.49,79.66C345.49,111.68 328.93,125.87 303.54,125.87L303.54,125.87ZM305.74,51.26C301.01,51.26 295.49,52.37 292.18,54.1L292.18,109.94C294.7,111.04 299.59,112.15 304.48,112.15C318.2,112.15 328.3,102.68 328.3,80.92C328.3,62.31 319.47,51.26 305.74,51.26L305.74,51.26Z"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m104.82,43.41c-3.82,0 -7.58,-0.92 -9.87,-2.07L94.95,0h5.94v14.18c1.41,-0.65 3.70,-1.2 5.72,-1.2 7.58,0 12.70,5.45 12.70,14.45 0,11.07 -5.72,15.97 -14.50,15.97zM105.58,17.61c-1.63,0 -3.54,0.38 -4.68,0.98v19.30c0.87,0.38 2.56,0.76 4.25,0.76 4.74,0 8.23,-3.27 8.23,-10.79 0,-6.43 -3.05,-10.25 -7.80,-10.25z" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M392.34,125.87C367.89,125.87 355.59,115.93 355.59,99.21C355.59,75.56 380.83,71.3 406.54,69.88L406.54,64.51C406.54,53.79 399.44,50 388.55,50C380.51,50 370.73,52.53 365.05,55.21L360.64,43.38C367.42,40.38 378.93,37.38 390.29,37.38C410.64,37.38 422.94,45.27 422.94,66.25L422.94,119.88C416.79,123.19 404.33,125.87 392.34,125.87L392.34,125.87ZM406.54,81.39C389.19,82.34 371.83,83.76 371.83,98.9C371.83,107.89 378.78,113.41 391.87,113.41C397.39,113.41 403.86,112.46 406.54,111.2L406.54,81.39L406.54,81.39Z"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m135.53,43.41c-8.45,0 -12.70,-3.43 -12.70,-9.21 0,-8.17 8.72,-9.65 17.61,-10.14v-1.85c0,-3.70 -2.45,-5.01 -6.22,-5.01 -2.78,0 -6.16,0.87 -8.12,1.80l-1.52,-4.09c2.34,-1.03 6.32,-2.07 10.25,-2.07 7.03,0 11.29,2.72 11.29,9.98v18.54c-2.12,1.14 -6.43,2.07 -10.58,2.07zM140.44,28.03c-5.99,0.32 -12.00,0.81 -12.00,6.05 0,3.10 2.40,5.01 6.92,5.01 1.90,0 4.14,-0.32 5.07,-0.76z" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M461.74,125.87C451.81,125.87 441.39,123.19 435.24,119.88L441.08,106.63C445.5,109.31 454.8,112.15 461.27,112.15C470.58,112.15 476.73,107.57 476.73,100.48C476.73,92.75 470.26,89.75 461.59,86.6C450.23,82.34 437.45,77.13 437.45,61.2C437.45,47.16 448.34,37.38 467.26,37.38C477.52,37.38 486.04,39.91 492.03,43.38L486.67,55.36C482.88,53 475.31,50.32 469.16,50.32C460.17,50.32 455.12,55.05 455.12,61.2C455.12,68.93 461.43,71.61 469.79,74.77C481.62,79.18 494.71,84.07 494.71,100.64C494.71,115.93 483.04,125.87 461.74,125.87"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m159.53,43.41c-3.43,0 -7.03,-0.92 -9.16,-2.07l2.01,-4.58c1.52,0.92 4.74,1.90 6.98,1.90 3.21,0 5.34,-1.58 5.34,-4.03 0,-2.67 -2.23,-3.71 -5.23,-4.79 -3.92,-1.47 -8.34,-3.27 -8.34,-8.78 0,-4.85 3.76,-8.23 10.30,-8.23 3.54,0 6.49,0.87 8.56,2.07l-1.85,4.14c-1.31,-0.81 -3.92,-1.74 -6.05,-1.74 -3.10,0 -4.85,1.63 -4.85,3.76 0,2.67 2.18,3.6 5.07,4.69 4.09,1.52 8.61,3.21 8.61,8.94 0,5.28 -4.03,8.72 -11.4,8.72" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
<path
|
||||||
android:pathData="M578.63,81.23L522.16,89.12C523.89,104.42 533.83,112.15 548.18,112.15C556.7,112.15 565.85,110.1 571.68,106.94L576.73,119.88C570.11,123.35 558.75,125.87 547.08,125.87C520.26,125.87 505.28,108.68 505.28,81.55C505.28,55.52 519.79,37.38 543.61,37.38C565.69,37.38 578.78,51.89 578.78,74.77C578.78,76.82 578.78,79.03 578.63,81.23L578.63,81.23ZM543.29,50C530.04,50 521.37,60.1 521.05,77.76L562.22,72.08C562.06,57.26 554.65,50 543.29,50L543.29,50Z"
|
android:fillColor="#0081c9"
|
||||||
android:strokeColor="#00000000"
|
android:pathData="m199.94,27.98 l-19.52,2.72c0.59,5.29 4.03,7.96 8.99,7.96 2.94,0 6.11,-0.70 8.12,-1.80l1.74,4.47c-2.28,1.2 -6.21,2.07 -10.25,2.07 -9.27,0 -14.45,-5.94 -14.45,-15.32 0,-9.00 5.01,-15.27 13.25,-15.27 7.63,0 12.16,5.01 12.16,12.92 0,0.70 0,1.47 -0.05,2.23zM187.72,17.18c-4.58,0 -7.57,3.49 -7.69,9.59l14.23,-1.96c-0.05,-5.12 -2.61,-7.63 -6.54,-7.63z" />
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:fillColor="#0081C9"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|
16
app/src/main/res/drawable/thumb_coinjar.xml
Normal file
16
app/src/main/res/drawable/thumb_coinjar.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="150.1dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="150.1">
|
||||||
|
<path
|
||||||
|
android:pathData="m34.8,112.5c13.0,22.2 37.3,37.6 64.9,37.6 27.8,0 52.0,-15.0 64.9,-37.6z"
|
||||||
|
android:fillColor="#f69325"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m200,112.5 l-12.5,-25.0l-13.6,0c-1.3,8.9 -4.7,17.2 -8.9,25.0zM12.5,87.4 L-0,112.5L35.0,112.5C30.6,105.0 27.5,96.6 26.1,87.4Z"
|
||||||
|
android:fillAlpha="0.2"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m100,0c-41.5,0 -75.2,33.4 -75.2,74.9 0,4.1 0.2,8.3 1.1,12.5 1.3,8.9 4.7,17.2 8.9,25.0l130.0,0c4.4,-7.5 7.5,-15.8 8.9,-25.0 0.5,-4.1 1.1,-8.3 1.1,-12.5C174.9,33.7 141.5,0 100,0Z"
|
||||||
|
android:fillColor="#faa526"/>
|
||||||
|
</vector>
|
|
@ -1,15 +1,15 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="256">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M36.625,0L219.375,0A36.625,36.625 0,0 1,256 36.625L256,219.375A36.625,36.625 0,0 1,219.375 256L36.625,256A36.625,36.625 0,0 1,0 219.375L0,36.625A36.625,36.625 0,0 1,36.625 0z"
|
android:pathData="M28.61,0H171.38A28.61,28.61 0,0 1,200 28.61V171.38A28.61,28.61 0,0 1,171.38 200H28.61A28.61,28.61 0,0 1,0 171.38V28.61A28.61,28.61 0,0 1,28.61 0Z"
|
||||||
android:fillColor="#2c5b9c"/>
|
android:fillColor="#2c5b9c"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M153.375,34.125C147.125,30.5 139.875,27.625 132,25.75 124.25,23.875 115.625,23 106.625,23A85.25,85.25 0,0 0,47.375 47.125,85.5 85.5,0 0,0 29.5,74.875c-4.375,10.625 -6.5,22.625 -6.5,35.75 0,16.75 5,29.875 15,38.875 9.875,9 24,13.5 42,13.5 6.625,0 11.875,-0.25 15.625,-0.875a113.375,113.375 112.999,0 0,31.375 -10.5c0.5,-0.25 1,-0.75 1.125,-1.375l7.625,-31.25c0.125,-0.625 0,-1.25 -0.375,-1.75 -0.375,-0.5 -1,-0.75 -1.625,-0.75l-3.375,0c-0.5,0 -0.875,0.125 -1.25,0.5 -6.125,4.875 -12.75,9 -19.625,12.125 -6.75,3.125 -14.125,4.625 -21.75,4.625 -8.375,0 -14.875,-2.125 -19.125,-6.375 -4.25,-4.25 -6.375,-11.5 -6.375,-21.375 0,-15.625 4.125,-28.75 12.125,-38.875 8.125,-10 18.125,-14.875 30.625,-14.875 7.125,0 13.25,1.375 18.5,4 5.25,2.625 10.625,7 15.875,12.75 0.375,0.375 0.875,0.625 1.5,0.625l3.875,0c0.875,0 1.625,-0.625 1.875,-1.5l7.75,-31.75c0.125,-0.875 -0.25,-1.75 -1,-2.25z"
|
android:pathData="M119.82,26.66C114.94,23.82 109.27,21.58 103.12,20.11 97.07,18.65 90.33,17.96 83.30,17.96A66.60,66.60 0,0 0,37.01 36.81,66.79 66.79,0 0,0 23.04,58.49C19.62,66.79 17.96,76.17 17.96,86.42c0,13.08 3.90,23.34 11.71,30.37 7.71,7.03 18.75,10.54 32.81,10.54 5.17,0 9.27,-0.19 12.20,-0.68a88.57,88.57 0,0 0,24.51 -8.20c0.39,-0.19 0.78,-0.58 0.87,-1.07l5.95,-24.41c0.09,-0.48 0,-0.97 -0.29,-1.36 -0.29,-0.39 -0.78,-0.58 -1.27,-0.58h-2.63c-0.39,0 -0.68,0.09 -0.97,0.39 -4.78,3.80 -9.96,7.03 -15.33,9.47 -5.27,2.44 -11.03,3.61 -16.99,3.61 -6.54,0 -11.62,-1.66 -14.94,-4.98 -3.32,-3.32 -4.98,-8.98 -4.98,-16.69 0,-12.20 3.22,-22.46 9.47,-30.37 6.34,-7.81 14.16,-11.62 23.92,-11.62 5.56,0 10.35,1.07 14.45,3.12 4.10,2.05 8.30,5.46 12.40,9.96 0.29,0.29 0.68,0.48 1.17,0.48h3.02c0.68,0 1.27,-0.48 1.46,-1.17l6.05,-24.80c0.09,-0.68 -0.19,-1.36 -0.78,-1.75z"
|
||||||
android:fillColor="#ffffff"/>
|
android:fillColor="#ffffff"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="m206.5,161.625c7.125,-2.75 12.5,-6.375 16.375,-10.875 4.625,-5.625 6.875,-12.625 6.875,-21.125 0,-10 -4.375,-18 -13.25,-23.5 -8.625,-5.375 -21,-8.125 -37,-8.125l-47.5,0c-1,0 -1.75,0.75 -2,1.625l-3.25,14.375 0.25,-0.25c1.125,-0.875 2.375,-1.25 3.75,-1.25l3.5,0c1.75,0 3.5,0.75 4.625,2.25 1.125,1.375 1.625,3.25 1.125,5.125l-7.625,31.25c-0.5,1.875 -1.75,3.5 -3.625,4.125l-9,3.875 -3.75,1.5 -16,69.875c-0.125,0.625 0,1.25 0.375,1.75 0.375,0.5 1,0.75 1.625,0.75l56.25,0c20.875,0 37.25,-4 48.75,-11.875 11.75,-8.125 17.75,-19.625 17.75,-34 0,-7.5 -2.125,-13.5 -6.125,-17.75 -2.875,-3.125 -7,-5.75 -12.125,-7.75zM179.625,200.5c-5,3 -12.25,4.5 -21.625,4.5l-14.375,0l6.5,-28.625l16,0c7.375,0 12.75,1 16,2.875 3,1.875 4.5,4.625 4.5,8.75 0,5.5 -2.375,9.625 -7,12.5zM185,145.875c-3.75,2.625 -9.125,3.875 -16,3.875l-12.75,0l5.375,-23.75l13.625,0c4.875,0 8.875,0.875 11.5,2.375 2.375,1.375 3.625,3.5 3.625,6.625 0,4.875 -1.75,8.375 -5.375,10.875z"
|
android:pathData="m161.32,126.27c5.56,-2.14 9.76,-4.98 12.79,-8.49 3.61,-4.39 5.37,-9.86 5.37,-16.50 0,-7.81 -3.41,-14.06 -10.35,-18.35 -6.73,-4.19 -16.40,-6.34 -28.90,-6.34L103.12,76.56c-0.78,0 -1.36,0.58 -1.56,1.27l-2.53,11.23 0.19,-0.19c0.87,-0.68 1.85,-0.97 2.93,-0.97h2.73c1.36,0 2.73,0.58 3.61,1.75 0.87,1.07 1.27,2.53 0.87,4.00l-5.95,24.41c-0.39,1.46 -1.36,2.73 -2.83,3.22l-7.03,3.02 -2.93,1.17 -12.5,54.59c-0.09,0.48 0,0.97 0.29,1.36 0.29,0.39 0.78,0.58 1.27,0.58h43.94c16.30,0 29.10,-3.12 38.08,-9.27 9.18,-6.34 13.86,-15.33 13.86,-26.56 0,-5.85 -1.66,-10.54 -4.78,-13.86 -2.24,-2.44 -5.46,-4.49 -9.47,-6.05zM140.33,156.64c-3.90,2.34 -9.57,3.51 -16.89,3.51h-11.23l5.07,-22.36h12.5c5.76,0 9.96,0.78 12.5,2.24 2.34,1.46 3.51,3.61 3.51,6.83 0,4.29 -1.85,7.52 -5.46,9.76zM144.53,113.96c-2.93,2.05 -7.12,3.02 -12.5,3.02h-9.96l4.19,-18.55h10.64c3.80,0 6.93,0.68 8.98,1.85 1.85,1.07 2.83,2.73 2.83,5.17 0,3.80 -1.36,6.54 -4.19,8.49z"
|
||||||
android:fillColor="#ffffff"/>
|
android:fillColor="#ffffff"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
<vector android:height="191dp" android:viewportHeight="382.0"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="500.0" android:width="250dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200dp"
|
||||||
<path android:fillColor="#297ef2" android:pathData="M367.6,380.9L132.5,380.9C59.5,380.9 0.1,321.4 0.1,248.3c0,-34.8 13.4,-67.8 37.8,-92.7 21.3,-21.8 49,-35.4 78.8,-38.9 3.5,-29.9 17.1,-57.6 38.9,-78.9C180.5,13.4 213.3,0 248.1,0c34.8,0 67.7,13.4 92.6,37.8 21.7,21.3 35.2,48.8 38.8,78.6 67.4,6.1 120.5,62.9 120.5,132 0,73.1 -59.4,132.5 -132.4,132.5zM366.6,353.1h1c57.7,0 104.6,-47 104.6,-104.7 0,-57.7 -46.9,-104.7 -104.6,-104.7h-1c-7.5,0 -13.7,-6 -13.9,-13.6 -1.3,-56.4 -48.2,-102.3 -104.6,-102.3S144.9,73.7 143.6,130.1c-0.2,7.4 -6.1,13.4 -13.6,13.6 -56.3,1.3 -102.1,48.3 -102.1,104.7 0,57.8 46.9,104.7 104.6,104.7h0.9l0.3,-0c0.3,0 0.6,0 0.9,0L366.6,353.1zM316,240.4c-8.4,-5.4 -8.8,-15.5 -8.8,-15.9 -0.1,-2.7 -2.3,-4.9 -5,-4.8 -2.7,0.1 -4.9,2.3 -4.8,5 0,0.4 0.2,5.1 2.4,10.6 -29.7,28.2 -76.4,28.2 -106.2,0.2 2.3,-5.6 2.5,-10.4 2.5,-10.8 0.1,-2.7 -2.1,-4.9 -4.8,-5 -2.7,-0.1 -4.9,2.1 -5,4.8 0,0.4 -0.4,10.4 -8.8,15.9 -2.3,1.5 -2.9,4.6 -1.4,6.8 0.9,1.4 2.5,2.2 4.1,2.2 0.9,0 1.9,-0.3 2.7,-0.8 2.2,-1.4 4,-3 5.5,-4.7 16.5,14.9 37.4,22.4 58.3,22.4 21,0 41.9,-7.5 58.5,-22.5 1.5,1.7 3.3,3.4 5.6,4.8 0.8,0.5 1.8,0.8 2.7,0.8 1.6,0 3.2,-0.8 4.1,-2.2 1.5,-2.3 0.8,-5.3 -1.4,-6.8z"/>
|
android:height="152.3dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="152.3">
|
||||||
|
<path
|
||||||
|
android:fillColor="#297ef2"
|
||||||
|
android:pathData="M99.2,0C85.2,0 72.1,5.3 62.2,15.1C53.4,23.6 48.0,34.7 46.6,46.6C34.7,48.0 23.6,53.5 15.1,62.2C5.3,72.2 0,85.4 0,99.3C-0,128.5 23.7,152.3 52.9,152.3L147.0,152.3C176.2,152.3 200,128.6 200,99.3C200,71.7 178.7,49.0 151.7,46.5C150.3,34.6 144.9,23.6 136.2,15.1C126.3,5.3 113.1,0 99.2,0zM99.2,11.1C121.7,11.1 140.5,29.4 141.0,52.0C141.1,55.0 143.6,57.4 146.6,57.4L147.0,57.4C170.1,57.4 188.8,76.2 188.8,99.3C188.8,122.4 170.1,141.2 147.0,141.2L146.6,141.2L53.8,141.2L53.4,141.2L53.3,141.2L52.9,141.2C29.8,141.2 11.1,122.5 11.1,99.3C11.1,76.8 29.4,58.0 51.9,57.4C54.9,57.4 57.3,55.0 57.4,52.0C57.9,29.4 76.6,11.1 99.2,11.1z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#297ef2"
|
||||||
|
android:pathData="m126.3,96.1c-3.3,-2.1 -3.5,-6.2 -3.5,-6.3 -0.0,-1.0 -0.9,-1.9 -2,-1.9 -1.0,0.0 -1.9,0.9 -1.9,2 0,0.1 0.0,2.0 0.9,4.2 -11.8,11.2 -30.5,11.2 -42.4,0.0 0.9,-2.2 1,-4.1 1,-4.3 0.0,-1.0 -0.8,-1.9 -1.9,-2 -1.0,-0.0 -1.9,0.8 -2,1.9 0,0.1 -0.1,4.1 -3.5,6.3 -0.9,0.6 -1.1,1.8 -0.5,2.7 0.3,0.5 1,0.8 1.6,0.8 0.3,0 0.7,-0.1 1.0,-0.3 0.8,-0.5 1.6,-1.2 2.2,-1.8 6.6,5.9 14.9,8.9 23.3,8.9 8.4,0 16.7,-3.0 23.4,-9.0 0.6,0.6 1.3,1.3 2.2,1.9 0.3,0.2 0.7,0.3 1.0,0.3 0.6,0 1.2,-0.3 1.6,-0.8 0.6,-0.9 0.3,-2.1 -0.5,-2.7z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,5 +1,27 @@
|
||||||
<vector android:height="65dp" android:viewportHeight="221.103"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="434.514" android:width="127.7387dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200dp"
|
||||||
<path android:fillColor="#007a9d" android:pathData="m327.245,153.557h20.633L347.878,75.086L327.245,75.086ZM110.551,0c-61.058,0 -110.551,49.51 -110.551,110.556 0,61.052 49.493,110.547 110.551,110.547 61.05,0 110.552,-49.495 110.552,-110.546 0,-61.047 -49.502,-110.557 -110.552,-110.557zM284.739,73.136c-12.672,0 -22.42,6.175 -27.455,12.023v-10.072h-20.633v78.471h20.633v-52.965c3.574,-4.55 9.746,-9.098 17.869,-9.098 8.775,0 14.461,3.738 14.461,14.622v47.44h20.795v-55.401c0,-15.272 -8.285,-25.02 -25.67,-25.02zM337.476,38.78c-6.959,0 -12.725,5.601 -12.725,12.727 0,7.127 5.766,12.898 12.725,12.898 7.127,-0.001 12.896,-5.771 12.896,-12.898 0,-7.127 -5.769,-12.727 -12.896,-12.727zM404.458,137.147c-12.512,0 -21.283,-9.26 -21.283,-22.906 0,-13.648 8.771,-22.746 21.283,-22.746 7.146,0 12.834,2.924 16.57,8.447l13.486,-12.671c-5.201,-7.149 -14.947,-14.136 -31.031,-14.136 -24.047,0 -41.592,17.061 -41.592,41.105 0,24.207 17.545,41.265 41.592,41.265 16.084,0 25.83,-7.147 31.031,-14.294l-13.486,-12.674c-3.736,5.362 -9.423,8.61 -16.57,8.61z"/>
|
android:height="101.7dp"
|
||||||
<path android:fillColor="#ffffff" android:pathData="m82.99,84.959c-6.174,-8.231 -15.055,-12.293 -24.533,-12.293 -20.037,0 -34.768,15.65 -34.768,41.104 0,26.212 15,41.267 34.768,41.267 9.803,0 18.412,-4.44 24.533,-12.239v10.29h19.549L102.539,41.765h-19.549zM82.99,128.284c-3.521,5.415 -11.316,9.477 -18.52,9.477 -12.457,0 -20.742,-9.803 -20.742,-23.991 0,-14.026 8.285,-23.827 20.742,-23.827 7.203,0 14.998,4.061 18.52,9.477zM198.1,115.557c0,-25.236 -15.488,-42.891 -39.047,-42.891 -23.559,0 -40.346,18.358 -40.346,41.104 0,25.074 17.818,41.267 41.646,41.267 12.238,0 24.316,-3.845 32.168,-11.102l-8.773,-12.836c-5.254,5.146 -14.299,8.016 -21.338,8.016 -13.809,0 -21.932,-8.609 -23.34,-18.899h59.029v-4.659zM138.908,106.622c0.758,-8.341 6.715,-18.035 20.09,-18.035 14.242,0 19.822,9.965 20.418,18.035z"/>
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="101.7">
|
||||||
|
<path
|
||||||
|
android:fillColor="#007a9d"
|
||||||
|
android:pathData="M50.8,0C22.7,0 0,22.7 0,50.8c0,28.1 22.7,50.8 50.8,50.8 28.1,0 50.8,-22.7 50.8,-50.8C101.7,22.7 78.9,0 50.8,0Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffffff"
|
||||||
|
android:pathData="M38.1,19.2L38.1,39.1C35.3,35.3 31.2,33.4 26.9,33.4C17.6,33.4 10.9,40.6 10.9,52.3C10.9,64.4 17.8,71.3 26.9,71.3C31.4,71.3 35.3,69.3 38.1,65.7L38.1,70.4L47.1,70.4L47.1,19.2L38.1,19.2zM29.6,41.3C32.9,41.3 36.5,43.2 38.1,45.7L38.1,59.0C36.5,61.5 32.9,63.4 29.6,63.4C23.9,63.4 20.1,58.8 20.1,52.3C20.1,45.9 23.9,41.3 29.6,41.3z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffffff"
|
||||||
|
android:pathData="M73.2,33.4C62.3,33.4 54.6,41.8 54.6,52.3C54.6,63.9 62.8,71.3 73.8,71.3C79.4,71.3 85.0,69.5 88.6,66.2L84.5,60.3C82.1,62.7 77.9,64.0 74.7,64.0C68.3,64.0 64.6,60.0 64.0,55.3L91.1,55.3L91.1,53.1C91.1,41.5 84.0,33.4 73.2,33.4zM73.1,40.7C79.7,40.7 82.3,45.3 82.5,49.0L63.9,49.0C64.2,45.2 67.0,40.7 73.1,40.7z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#007a9d"
|
||||||
|
android:pathData="m186.1,63.1c-5.7,0 -9.7,-4.2 -9.7,-10.5 0,-6.2 4.0,-10.4 9.7,-10.4 3.2,0 5.9,1.3 7.6,3.8L200,40.1c-2.3,-3.2 -6.8,-6.5 -14.2,-6.5 -11.0,0 -19.1,7.8 -19.1,18.9 0,11.1 8.0,18.9 19.1,18.9 7.4,0 11.8,-3.2 14.2,-6.5l-6.2,-5.8c-1.7,2.4 -4.3,3.9 -7.6,3.9z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#007a9d"
|
||||||
|
android:pathData="m155.3,17.8c-3.2,0 -5.8,2.5 -5.8,5.8 0,3.2 2.6,5.9 5.8,5.9 3.2,-0 5.9,-2.6 5.9,-5.9 0,-3.2 -2.6,-5.8 -5.9,-5.8z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#007a9d"
|
||||||
|
android:pathData="m131.0,33.6c-5.8,0 -10.3,2.8 -12.6,5.5v-4.6h-9.4v36.1h9.4v-24.3c1.6,-2.0 4.4,-4.1 8.2,-4.1 4.0,0 6.6,1.7 6.6,6.7v21.8h9.5v-25.5c0,-7.0 -3.8,-11.5 -11.8,-11.5z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#007a9d"
|
||||||
|
android:pathData="m150.6,70.6h9.4V34.5h-9.4z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="175.00dp"
|
||||||
android:height="293dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="175.00"
|
||||||
android:viewportHeight="293.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M226.01,0L29.99,0C13.46,0 0,13.46 0,30.13L0,227.91C0,244.59 13.46,258.05 29.99,258.05L195.88,258.05L188.12,230.99L206.85,248.39L224.55,264.78L256,292.57L256,30.13C256,13.46 242.54,0 226.01,0ZM169.55,191.05C169.55,191.05 164.28,184.76 159.89,179.2C179.05,173.79 186.37,161.79 186.37,161.79C180.37,165.74 174.67,168.52 169.55,170.42C162.23,173.49 155.21,175.54 148.33,176.71C134.29,179.35 121.42,178.61 110.45,176.57C102.11,174.96 94.94,172.62 88.94,170.28C85.58,168.96 81.92,167.35 78.26,165.3C77.82,165.01 77.39,164.86 76.95,164.57C76.65,164.43 76.51,164.28 76.36,164.13C73.73,162.67 72.27,161.65 72.27,161.65C72.27,161.65 79.29,173.35 97.87,178.91C93.48,184.47 88.06,191.05 88.06,191.05C55.73,190.03 43.45,168.81 43.45,168.81C43.45,121.71 64.51,83.53 64.51,83.53C85.58,67.73 105.62,68.17 105.62,68.17L107.08,69.92C80.75,77.53 68.61,89.09 68.61,89.09C68.61,89.09 71.83,87.33 77.24,84.85C92.89,77.97 105.33,76.07 110.45,75.63C111.32,75.48 112.05,75.34 112.93,75.34C121.86,74.17 131.95,73.87 142.48,75.04C156.38,76.65 171.3,80.75 186.51,89.09C186.51,89.09 174.96,78.12 150.09,70.51L152.14,68.17C152.14,68.17 172.18,67.73 193.24,83.53C193.24,83.53 214.31,121.71 214.31,168.81C214.31,168.81 201.87,190.03 169.55,191.05ZM101.52,122.73C93.18,122.73 86.6,130.05 86.6,138.97C86.6,147.89 93.33,155.21 101.52,155.21C109.86,155.21 116.44,147.89 116.44,138.97C116.59,130.05 109.86,122.73 101.52,122.73M154.92,122.73C146.58,122.73 140,130.05 140,138.97C140,147.89 146.72,155.21 154.92,155.21C163.25,155.21 169.84,147.89 169.84,138.97C169.84,130.05 163.25,122.73 154.92,122.73"
|
android:fillColor="#7289da"
|
||||||
android:fillColor="#7289DA"/>
|
android:pathData="M154.5,0L20.50,0C9.20,0 0,9.20 0,20.59v135.20c0,11.40 9.20,20.60 20.50,20.60L133.90,176.40l-5.30,-18.49 12.80,11.89 12.1,11.20L175.00,200L175.00,20.59C175.00,9.20 165.8,0 154.5,0ZM115.90,130.60c0,0 -3.60,-4.3 -6.60,-8.10 13.09,-3.69 18.10,-11.90 18.10,-11.90 -4.10,2.7 -7.99,4.60 -11.49,5.89 -5.00,2.09 -9.80,3.5 -14.50,4.3 -9.59,1.80 -18.39,1.29 -25.89,-0.09 -5.70,-1.10 -10.60,-2.7 -14.70,-4.3 -2.29,-0.90 -4.79,-2.00 -7.30,-3.40 -0.30,-0.19 -0.59,-0.30 -0.89,-0.49 -0.20,-0.09 -0.30,-0.19 -0.40,-0.30 -1.79,-0.99 -2.79,-1.69 -2.79,-1.69 0,0 4.79,7.99 17.5,11.79 -3.00,3.80 -6.70,8.29 -6.70,8.29 -22.10,-0.69 -30.49,-15.20 -30.49,-15.20 0,-32.19 14.39,-58.29 14.39,-58.29C58.50,46.3 72.20,46.60 72.20,46.60l0.99,1.19C55.2,52.99 46.90,60.90 46.90,60.90c0,0 2.20,-1.20 5.89,-2.89 10.69,-4.70 19.20,-6.00 22.70,-6.30 0.59,-0.10 1.09,-0.19 1.69,-0.19 6.10,-0.8 13.00,-1.00 20.2,-0.20 9.50,1.10 19.70,3.90 30.09,9.60 0,0 -7.89,-7.49 -24.89,-12.70l1.40,-1.6c0,0 13.69,-0.30 28.09,10.5 0,0 14.40,26.1 14.40,58.29 0,0 -8.50,14.50 -30.59,15.20zM69.39,83.89c-5.70,0 -10.19,5.00 -10.19,11.10 0,6.09 4.60,11.10 10.19,11.10 5.70,0 10.19,-5.00 10.19,-11.10 0.10,-6.09 -4.49,-11.10 -10.19,-11.10m36.50,0c-5.70,0 -10.19,5.00 -10.19,11.10 0,6.09 4.59,11.10 10.19,11.10 5.69,0 10.19,-5.00 10.19,-11.10 0,-6.09 -4.50,-11.10 -10.19,-11.10" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
14
app/src/main/res/drawable/thumb_dreamhost.xml
Normal file
14
app/src/main/res/drawable/thumb_dreamhost.xml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200.00dp"
|
||||||
|
android:height="197.44dp"
|
||||||
|
android:viewportWidth="20.48"
|
||||||
|
android:viewportHeight="20.21">
|
||||||
|
<path
|
||||||
|
android:pathData="m20.21,15.17c-1.65,0.92 -3.58,1.44 -5.63,1.39C8.54,16.44 3.74,11.55 3.86,5.64 3.90,3.63 4.50,1.77 5.52,0.18 2.29,1.99 0.08,5.36 0.00,9.27c-0.11,5.91 4.68,10.80 10.72,10.92 3.98,0.08 7.52,-1.94 9.49,-5.02"
|
||||||
|
android:strokeWidth="0.08"
|
||||||
|
android:fillColor="#1f3244"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m14.47,15.29c0.06,0.00 0.13,0.00 0.20,0.00 1.57,0 3.13,-0.39 4.51,-1.12 0.81,-1.39 1.28,-3.01 1.28,-4.75 0,-5.21 -4.21,-9.43 -9.41,-9.43 -1.63,0 -3.17,0.42 -4.52,1.16a9.16,9.16 0,0 0,-1.37 4.64c-0.10,5.13 4.07,9.40 9.31,9.50"
|
||||||
|
android:strokeWidth="0.08"
|
||||||
|
android:fillColor="#3e95be"/>
|
||||||
|
</vector>
|
|
@ -1,21 +1,21 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="235dp"
|
android:width="200dp"
|
||||||
android:height="200dp"
|
android:height="169.8dp"
|
||||||
android:viewportWidth="235.45"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="200.0">
|
android:viewportHeight="169.8">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#007EE5"
|
android:pathData="M49.9,0 L0,31.8 49.9,63.7 100.0,31.8Z"
|
||||||
android:pathData="M58.86,0l-58.86,37.5l58.86,37.5l58.87,-37.5l-58.87,-37.5z"/>
|
android:fillColor="#007ee5"/>
|
||||||
<path
|
<path
|
||||||
android:fillColor="#007EE5"
|
android:pathData="M150.0,0 L100.0,31.8 150.0,63.7 200,31.8Z"
|
||||||
android:pathData="M176.59,0l-58.86,37.5l58.86,37.5l58.86,-37.5l-58.86,-37.5z"/>
|
android:fillColor="#007ee5"/>
|
||||||
<path
|
<path
|
||||||
android:fillColor="#007EE5"
|
android:pathData="M0,95.5 L49.9,127.4 100.0,95.5 49.9,63.7Z"
|
||||||
android:pathData="M0,112.5l58.86,37.5l58.87,-37.5l-58.87,-37.5l-58.86,37.5z"/>
|
android:fillColor="#007ee5"/>
|
||||||
<path
|
<path
|
||||||
android:fillColor="#007EE5"
|
android:pathData="M150.0,63.7 L100.0,95.5 150.0,127.4 200,95.5Z"
|
||||||
android:pathData="M176.59,75l-58.86,37.5l58.86,37.5l58.86,-37.5l-58.86,-37.5z"/>
|
android:fillColor="#007ee5"/>
|
||||||
<path
|
<path
|
||||||
android:fillColor="#007EE5"
|
android:pathData="m49.9,138.0 l50.0,31.8 49.9,-31.8 -49.9,-31.8z"
|
||||||
android:pathData="M58.86,162.5l58.87,37.5l58.86,-37.5l-58.86,-37.5l-58.87,37.5z"/>
|
android:fillColor="#007ee5"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
10
app/src/main/res/drawable/thumb_etsy.xml
Normal file
10
app/src/main/res/drawable/thumb_etsy.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="176.40dp"
|
||||||
|
android:height="200dp"
|
||||||
|
android:viewportWidth="176.40"
|
||||||
|
android:viewportHeight="200.00">
|
||||||
|
<path
|
||||||
|
android:pathData="m162.4,141.52 l-6.82,21.95c-3.63,11.69 -14.46,19.66 -26.71,19.66H76.60c-7.75,0 -14.04,-6.28 -14.04,-14.04v-58.97h37.83c9.93,0 17.98,8.05 17.98,17.98v4.62c0,1.37 1.11,2.48 2.48,2.48h7.75c1.37,0 2.48,-1.11 2.48,-2.48V64.67c0,-1.37 -1.11,-2.48 -2.48,-2.48h-7.75c-1.37,0 -2.48,1.11 -2.48,2.48v7.25c0,9.93 -8.05,17.98 -17.98,17.98H62.55V30.90c0,-7.75 6.28,-14.04 14.04,-14.04h49.63c12.82,0 23.22,10.39 23.22,23.22v13.99c0,1.37 1.11,2.48 2.48,2.48h9.07c1.29,0 2.37,-0.99 2.48,-2.29L167.32,6.19C167.58,2.85 164.94,0 161.59,0H3.96C1.77,0 0,1.77 0,3.96v8.92c0,2.18 1.77,3.96 3.96,3.96h10.08c7.75,0 14.04,6.28 14.04,14.04v138.19c0,7.75 -6.28,14.04 -14.04,14.04H3.96C1.77,183.14 0,184.91 0,187.10v8.92C0,198.22 1.77,200 3.96,200H162.86c2.84,0 5.25,-2.08 5.67,-4.89l7.83,-52.47c0.22,-1.50 -0.94,-2.85 -2.46,-2.85h-9.13c-1.09,0 -2.05,0.70 -2.37,1.75z"
|
||||||
|
android:strokeWidth="0.56"
|
||||||
|
android:fillColor="#e65300"/>
|
||||||
|
</vector>
|
69
app/src/main/res/drawable/thumb_eveonline.xml
Normal file
69
app/src/main/res/drawable/thumb_eveonline.xml
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="52.91dp"
|
||||||
|
android:height="20.35dp"
|
||||||
|
android:viewportWidth="52.91"
|
||||||
|
android:viewportHeight="20.35">
|
||||||
|
<path
|
||||||
|
android:pathData="m34.40,7.36h15.15v-2.58L34.40,4.78ZM34.40,-0v3.46h2.73v-0.88h12.41v-2.58zM24.78,9.28c-0.32,-0.56 -5.36,-9.28 -5.36,-9.28h-2.97l8.33,14.51 8.33,-14.51h-2.97c0,0 -5.03,8.71 -5.35,9.28m12.36,-0.62h-2.73v3.47h15.15v-2.58h-12.41zM2.74,8.66h-2.74v3.47h15.15v-2.58L2.74,9.55ZM-0,3.46h2.74v-0.88h12.41v-2.58L0,-0ZM-0,7.36h15.15v-2.58L0,4.78ZM-0,7.36"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m10.49,19.94h1.70v-1.41h-1.70zM9.98,18.65c0,-0.20 0.03,-0.34 0.11,-0.41 0.07,-0.07 0.22,-0.11 0.43,-0.11h1.63c0.21,0 0.36,0.03 0.44,0.11 0.07,0.07 0.11,0.21 0.11,0.41v1.17c0,0.20 -0.04,0.34 -0.11,0.41 -0.07,0.07 -0.22,0.11 -0.44,0.11h-1.63c-0.21,0 -0.36,-0.03 -0.43,-0.11 -0.07,-0.07 -0.11,-0.21 -0.11,-0.41zM9.98,18.65"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m16.07,20.35v-2.23h0.35l1.57,1.31c0.04,0.04 0.09,0.08 0.13,0.12 0.04,0.03 0.08,0.07 0.11,0.11 -0.00,-0.12 -0.01,-0.20 -0.01,-0.25 -0.00,-0.05 -0.00,-0.09 -0.00,-0.12v-1.17h0.46v2.23h-0.35l-1.64,-1.37c-0.03,-0.03 -0.07,-0.06 -0.10,-0.09 -0.02,-0.02 -0.05,-0.06 -0.08,-0.08 0.00,0.06 0.01,0.13 0.01,0.19 0.00,0.06 0.00,0.11 0.00,0.16v1.20zM16.07,20.35"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m22.10,20.35v-2.23h0.51v1.81h1.67v0.41zM22.10,20.35"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m27.32,18.12h0.51v2.23h-0.51zM27.32,18.12"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m31.24,20.35v-2.23h0.35l1.57,1.31c0.05,0.04 0.10,0.08 0.14,0.12 0.04,0.03 0.07,0.07 0.11,0.11 -0.00,-0.12 -0.01,-0.20 -0.01,-0.25 -0.00,-0.05 -0.00,-0.09 -0.00,-0.12v-1.17h0.46v2.23h-0.35l-1.64,-1.37c-0.03,-0.03 -0.07,-0.06 -0.10,-0.09 -0.03,-0.02 -0.05,-0.06 -0.08,-0.08 0.00,0.06 0.01,0.13 0.01,0.19 0.00,0.06 0.00,0.11 0.00,0.16v1.20zM31.24,20.35"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m37.27,20.35v-2.23h2.28v0.38h-1.76v0.49h1.02v0.38h-1.02v0.55h1.78v0.41zM37.27,20.35"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m51.01,1.03c0,0.49 0.37,0.88 0.87,0.88 0.49,0 0.87,-0.39 0.87,-0.88 0,-0.49 -0.37,-0.88 -0.87,-0.88 -0.50,0 -0.87,0.38 -0.87,0.88m1.90,0c0,0.58 -0.44,1.03 -1.03,1.03 -0.58,0 -1.03,-0.45 -1.03,-1.03 0,-0.57 0.44,-1.03 1.03,-1.03 0.58,0 1.03,0.45 1.03,1.03"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m51.83,0.96h-0.18v-0.40h0.26c0.13,0 0.27,0.04 0.27,0.19 0,0.2 -0.17,0.20 -0.35,0.20m0.20,0.12c0.15,-0.02 0.29,-0.11 0.29,-0.32 0,-0.20 -0.11,-0.31 -0.37,-0.31h-0.44v1.16h0.14v-0.51h0.24l0.32,0.51h0.16zM52.03,1.08"
|
||||||
|
android:strokeWidth="0.26"
|
||||||
|
android:fillColor="#211e1e"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:fillAlpha="1"/>
|
||||||
|
</vector>
|
|
@ -1,11 +1,9 @@
|
||||||
<vector
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
android:width="169.40dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:width="256dp"
|
android:viewportWidth="169.40"
|
||||||
android:viewportHeight="50.0"
|
android:viewportHeight="200">
|
||||||
android:viewportWidth="50.0">
|
|
||||||
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#2dbd60"
|
android:pathData="m65.05,0c-12,0 -21.73,9.73 -21.73,21.73v21.73c0,2.39 -1.95,4.34 -4.34,4.34H17.23c-9.39,0 -17.13,7.56 -17.21,16.91 -0.21,19.13 1.87,37.56 5.52,49.30 4.21,13.34 12.56,22.04 23.52,24.39l30.73,7c4.73,1 9.52,0.04 13.47,-2.69 4,-2.73 6.60,-6.87 7.39,-12l0.69,-10.17c5,6.26 13.26,9.87 22.82,9.87h13.04c9.60,0 17.39,7.78 17.39,17.39v13.04c0,7.17 -5.87,13.04 -13.04,13.04h-12.56c-2.34,0 -4.43,-1.56 -4.73,-3.56 -0.26,-1.34 0.08,-2.60 0.91,-3.56 0.87,-1 2.08,-1.56 3.34,-1.56h8.69c2.39,0 4.34,-1.95 4.34,-4.34v-17.39c0,-2.39 -1.95,-4.34 -4.34,-4.34h-13.04c-14.39,0 -26.08,11.69 -26.08,26.08v8.69C78.10,188.30 89.79,200 104.18,200h21.73c43.47,0 43.47,-61.65 43.47,-91.30 0,-30.04 -0.69,-49.69 -4.47,-67.52 -3,-14.08 -11.52,-22.39 -25.52,-24.65 -1.13,-0.08 -25.91,-2.60 -40.26,-3.34C96.75,6 88.49,0 79.88,0ZM36.58,11.08 L5.88,41.78C9.32,40.08 13.18,39.13 17.23,39.13H34.62V21.73c0,-3.73 0.69,-7.34 1.95,-10.65zM128.10,78.26c6,0 10.87,4.87 10.87,10.87 0,2.56 -0.91,4.91 -2.43,6.78 -3.30,-2.73 -9.69,-4.60 -17.13,-4.60 -0.65,0 -1.30,0.04 -1.91,0.08 -0.17,-0.73 -0.26,-1.47 -0.26,-2.26 0,-6 4.87,-10.87 10.87,-10.87z"
|
||||||
android:pathData="M20,2C17.24,2 15,4.24 15,7L15,12C15,12.55 14.55,13 14,13L9,13C6.84,13 5.06,14.74 5.04,16.89C4.99,21.29 5.47,25.53 6.31,28.23C7.28,31.3 9.2,33.3 11.72,33.84L18.79,35.45C19.88,35.68 20.98,35.46 21.89,34.83C22.81,34.2 23.41,33.25 23.59,32.07L23.75,29.73C24.9,31.17 26.8,32 29,32L32,32C34.21,32 36,33.79 36,36L36,39C36,40.65 34.65,42 33,42L30.11,42C29.57,42 29.09,41.64 29.02,41.18C28.96,40.87 29.04,40.58 29.23,40.36C29.43,40.13 29.71,40 30,40L32,40C32.55,40 33,39.55 33,39L33,35C33,34.45 32.55,34 32,34L29,34C25.69,34 23,36.69 23,40L23,42C23,45.31 25.69,48 29,48L34,48C44,48 44,33.82 44,27C44,20.09 43.84,15.57 42.97,11.47C42.28,8.23 40.32,6.32 37.1,5.8C36.84,5.78 31.14,5.2 27.84,5.03C27.29,3.38 25.39,2 23.41,2ZM13.45,4.55L6.39,11.61C7.18,11.22 8.07,11 9,11L13,11L13,7C13,6.14 13.16,5.31 13.45,4.55ZM34.5,20C35.88,20 37,21.12 37,22.5C37,23.09 36.79,23.63 36.44,24.06C35.68,23.43 34.21,23 32.5,23C32.35,23 32.2,23.01 32.06,23.02C32.02,22.85 32,22.68 32,22.5C32,21.12 33.12,20 34.5,20Z"/>
|
android:fillColor="#2dbd60"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="256.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M241.87,256C249.67,256 256,249.68 256,241.87L256,14.13C256,6.32 249.67,0 241.87,0L14.13,0C6.32,0 0,6.32 0,14.13L0,241.87C0,249.68 6.32,256 14.13,256L241.87,256"
|
android:fillColor="#395185"
|
||||||
android:fillColor="#395185"/>
|
android:pathData="M188.96,200C195.05,200 200,195.06 200,188.96V11.03C200,4.93 195.05,0 188.96,0H11.03C4.93,0 0,4.93 0,11.03V188.96C0,195.06 4.93,200 11.03,200H188.96" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M176.63,256L176.63,156.86L209.91,156.86L214.89,118.23L176.63,118.23L176.63,93.56C176.63,82.38 179.74,74.75 195.78,74.75L216.24,74.74L216.24,40.19C212.7,39.72 200.56,38.67 186.43,38.67C156.93,38.67 136.74,56.67 136.74,89.74L136.74,118.23L103.38,118.23L103.38,156.86L136.74,156.86L136.74,256L176.63,256"
|
android:fillColor="#ffffff"
|
||||||
android:fillColor="#FFFFFF"/>
|
android:pathData="m137.99,200v-77.45h26l3.89,-30.18H137.99V73.09c0,-8.73 2.43,-14.69 14.96,-14.69l15.98,-0.00v-26.99c-2.76,-0.36 -12.25,-1.18 -23.28,-1.18 -23.04,0 -38.82,14.06 -38.82,39.89V92.36H80.76v30.18h26.06V200h31.16" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
10
app/src/main/res/drawable/thumb_fanatical.xml
Normal file
10
app/src/main/res/drawable/thumb_fanatical.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="199.88dp"
|
||||||
|
android:height="200dp"
|
||||||
|
android:viewportWidth="199.88"
|
||||||
|
android:viewportHeight="200">
|
||||||
|
<path
|
||||||
|
android:pathData="m1.43,83.00h142.33a1.49,1.49 0,0 0,1.36 -0.87l12.93,-28.02c0.34,-0.75 0.02,-1.64 -0.73,-1.99a1.49,1.49 0,0 0,-0.62 -0.13l-144.45,0.01C29.22,21.00 62.13,0 99.94,0c55.19,0 99.94,44.77 99.94,100 0,55.22 -44.74,100 -99.94,100 -55.19,0 -99.94,-44.77 -99.94,-100 0,-5.79 0.49,-11.47 1.43,-16.99zM62.96,164c0,1.10 0.89,2 1.99,2h2.58l31.41,-39.50h24.71a1.49,1.49 0,0 0,1.36 -0.87l12.91,-27.98a1.50,1.50 0,0 0,0.13 -0.62c0,-0.82 -0.67,-1.5 -1.49,-1.5h-73.63L62.96,164Z"
|
||||||
|
android:strokeWidth="0.5"
|
||||||
|
android:fillColor="#ff9800"/>
|
||||||
|
</vector>
|
18
app/src/main/res/drawable/thumb_fastmail.xml
Normal file
18
app/src/main/res/drawable/thumb_fastmail.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="128dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="128">
|
||||||
|
<path
|
||||||
|
android:pathData="M106.20,36.19C111.47,44.17 114.54,53.72 114.54,64 114.54,91.91 91.91,114.54 64,114.54c-17.44,-0 -32.82,-8.83 -41.90,-22.27L10.90,99.73C22.39,116.78 41.88,128 64,128c35.34,-0 64,-28.65 64,-64 0,-13.03 -3.90,-25.15 -10.59,-35.26l-11.19,7.46"
|
||||||
|
android:fillColor="#6bbbea" />
|
||||||
|
<path
|
||||||
|
android:pathData="m13.45,64c0,-27.91 22.63,-50.54 50.54,-50.54 17.64,-0 33.16,9.04 42.20,22.74l11.19,-7.46C105.94,11.42 86.31,0 64,0 28.65,0 0,28.65 0,64c0,13.23 4.01,25.53 10.90,35.73l11.19,-7.46C16.64,84.20 13.45,74.47 13.45,64"
|
||||||
|
android:fillColor="#246cbe" />
|
||||||
|
<path
|
||||||
|
android:pathData="m33.57,84.28l58.71,-0c1.18,-0 2.14,-0.95 2.14,-2.14l-0,-38.42 -60.85,40.56"
|
||||||
|
android:fillColor="#1f262f" />
|
||||||
|
<path
|
||||||
|
android:pathData="M64,64 L33.57,43.71L33.57,84.28c0.31,-0.20 0.54,-0.36 0,-0l0,0l30.42,-20.28"
|
||||||
|
android:fillColor="#fab20b" />
|
||||||
|
</vector>
|
22
app/src/main/res/drawable/thumb_figma.xml
Normal file
22
app/src/main/res/drawable/thumb_figma.xml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="135.36dp"
|
||||||
|
android:height="200dp"
|
||||||
|
android:viewportWidth="135.36"
|
||||||
|
android:viewportHeight="200">
|
||||||
|
|
||||||
|
<path
|
||||||
|
android:pathData="M34.35,199.98A33.33,33.33 135,0 0,67.66 166.64L67.66,133.33L34.35,133.33a33.33,33.33 0,1 0,0 66.64z"
|
||||||
|
android:fillColor="#0acf83"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M1.02,100A33.33,33.33 135,0 1,34.35 66.66L67.66,66.66L67.66,133.33L34.35,133.33A33.33,33.33 135,0 1,1.02 100Z"
|
||||||
|
android:fillColor="#a259ff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M1.02,33.35A33.33,33.33 0,0 1,34.32 0.01L67.66,0.01L67.66,66.66L34.35,66.66A33.33,33.33 0,0 1,1.02 33.35Z"
|
||||||
|
android:fillColor="#f24e1e"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M67.66,0.01L101.00,0.01a33.33,33.33 0,1 1,0 66.64L67.66,66.66Z"
|
||||||
|
android:fillColor="#ff7262"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M134.34,100A33.33,33.33 45,1 1,101.00 66.66,33.33 33.33,45 0,1 134.34,100Z"
|
||||||
|
android:fillColor="#1abcfe"/>
|
||||||
|
</vector>
|
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="256dp"
|
android:height="199.99dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="256.0">
|
android:viewportHeight="199.99">
|
||||||
<path
|
<path
|
||||||
android:pathData="M251.17,116.59L139.4,4.83C132.97,-1.61 122.53,-1.61 116.09,4.83L92.88,28.04L122.32,57.48C129.16,55.17 137.01,56.72 142.46,62.17C147.94,67.66 149.48,75.58 147.11,82.44L175.49,110.82C182.35,108.45 190.27,109.98 195.76,115.47C203.42,123.13 203.42,135.55 195.76,143.21C188.09,150.88 175.68,150.88 168.01,143.21C162.24,137.44 160.82,128.98 163.74,121.88L137.28,95.41L137.27,165.05C139.14,165.98 140.9,167.21 142.46,168.76C150.12,176.42 150.12,188.84 142.46,196.51C134.8,204.17 122.37,204.17 114.72,196.51C107.06,188.84 107.06,176.42 114.72,168.76C116.61,166.87 118.8,165.44 121.14,164.48L121.14,94.2C118.8,93.24 116.62,91.82 114.72,89.91C108.91,84.12 107.52,75.6 110.49,68.47L81.47,39.44L4.83,116.08C-1.61,122.52 -1.61,132.96 4.83,139.4L116.6,251.17C123.04,257.6 133.48,257.6 139.92,251.17L251.17,139.92C257.61,133.48 257.61,123.03 251.17,116.59"
|
android:fillColor="#de4c36"
|
||||||
android:fillColor="#DE4C36"/>
|
android:pathData="M196.22,91.08 L108.90,3.77c-5.02,-5.03 -13.18,-5.03 -18.21,0L72.56,21.90l23,23c5.34,-1.80 11.47,-0.59 15.73,3.66 4.28,4.28 5.48,10.47 3.63,15.83l22.17,22.17c5.35,-1.85 11.54,-0.65 15.83,3.63 5.98,5.98 5.98,15.68 0,21.67 -5.99,5.99 -15.68,5.99 -21.68,0C126.75,107.37 125.64,100.76 127.92,95.21L107.25,74.53 107.24,128.94c1.46,0.72 2.83,1.68 4.05,2.89 5.98,5.98 5.98,15.68 0,21.68 -5.98,5.98 -15.69,5.98 -21.67,0 -5.98,-5.99 -5.98,-15.69 0,-21.68 1.47,-1.47 3.18,-2.59 5.01,-3.34V73.59c-1.82,-0.75 -3.53,-1.85 -5.01,-3.35 -4.53,-4.52 -5.62,-11.18 -3.30,-16.75L63.64,30.81 3.77,90.68c-5.03,5.03 -5.03,13.18 0,18.21L91.09,196.22c5.03,5.02 13.18,5.02 18.21,0l86.91,-86.91c5.03,-5.03 5.03,-13.19 0,-18.22" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,30 +1,31 @@
|
||||||
<vector android:height="256dp" android:viewportHeight="135.46667"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="135.46667" android:width="256dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200dp"
|
||||||
<path android:fillAlpha="1" android:fillColor="#609926"
|
android:height="123.92dp"
|
||||||
android:pathData="m27.71,33.62c-9.55,-0.03 -22.34,6.8 -21.63,23.9 1.11,26.73 25.46,29.21 35.19,29.42 1.07,5.01 12.52,22.31 21,23.22h37.15c22.28,-1.67 38.96,-75.76 26.59,-76.04 -46.78,2.48 -50,2.14 -88.6,0 -2.5,-0.03 -5.97,-0.49 -9.71,-0.51zM30.2,43.08c1.35,13.69 3.56,21.7 8.02,33.94 -11.38,-1.5 -21.07,-5.22 -22.85,-19.11 -0.95,-7.41 2.39,-15.17 14.83,-14.83z"
|
android:viewportWidth="199.99"
|
||||||
android:strokeAlpha="1" android:strokeColor="#428f29"
|
android:viewportHeight="123.92">
|
||||||
android:strokeLineCap="butt" android:strokeLineJoin="miter" android:strokeWidth="1"/>
|
<path
|
||||||
<path android:fillAlpha="1" android:fillColor="#ffffff"
|
android:fillColor="#609926"
|
||||||
android:pathData="M75.65,57.09L97.05,67.49A5.48,5.48 70.9,0 1,99.59 74.82L89.19,96.22A5.48,5.48 69.37,0 1,81.86 98.76L60.45,88.36A5.48,5.48 48.93,0 1,57.92 81.03L68.32,59.63A5.48,5.48 132.22,0 1,75.65 57.09z"
|
android:pathData="M35.40,0.82C20.14,0.77 -0.29,11.69 0.84,39.01 2.61,81.72 41.52,85.68 57.07,86.02 58.78,94.02 77.07,121.66 90.62,123.12h59.35c35.59,-2.66 62.25,-121.05 42.48,-121.49 -74.74,3.96 -79.89,3.41 -141.56,0C46.90,1.57 41.36,0.84 35.38,0.80ZM39.38,15.94c2.15,21.87 5.68,34.67 12.81,54.23C34.01,67.77 18.53,61.83 15.68,39.63 14.17,27.79 19.50,15.39 39.38,15.94Z" />
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.24757317"/>
|
<path
|
||||||
<path android:fillAlpha="1" android:fillColor="#ffffff"
|
android:fillColor="#ffffff"
|
||||||
android:pathData="m79.8,57.36 l3.24,1.61V35.26h-3.26z"
|
android:pathData="m112.00,38.32 l34.19,16.61a8.75,8.75 0,0 1,4.05 11.71l-16.61,34.19a8.75,8.75 0,0 1,-11.71 4.05L87.71,88.29A8.75,8.75 0,0 1,83.67 76.57L100.29,42.38a8.75,8.75 0,0 1,11.71 -4.05z" />
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000"
|
<path
|
||||||
android:strokeLineCap="butt" android:strokeLineJoin="miter" android:strokeWidth="0.26644793"/>
|
android:fillColor="#ffffff"
|
||||||
<path android:fillAlpha="1" android:fillColor="#609926"
|
android:pathData="m118.63,38.75 l5.17,2.57V3.44h-5.20z" />
|
||||||
android:pathData="M76.67,68.14m-3.27,1.18a3.47,3.47 114.89,1 1,6.54 -2.35a3.47,3.47 114.89,1 1,-6.54 2.35"
|
<path
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.26458332"/>
|
android:fillColor="#609926"
|
||||||
<path android:fillAlpha="1" android:fillColor="#609926"
|
android:pathData="m113.63,55.98m-5.22,1.88a5.55,5.55 0,1 1,10.45 -3.75,5.55 5.55,0 1,1 -10.45,3.75" />
|
||||||
android:pathData="M69.22,83.6m-3.27,1.18a3.47,3.47 130.48,1 1,6.54 -2.35a3.47,3.47 130.48,1 1,-6.54 2.35"
|
<path
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.26458332"/>
|
android:fillColor="#609926"
|
||||||
<path android:fillAlpha="1" android:fillColor="#609926"
|
android:pathData="m101.73,80.68m-5.22,1.88a5.55,5.55 0,1 1,10.45 -3.75,5.55 5.55,0 1,1 -10.45,3.75" />
|
||||||
android:pathData="M81.48,89.11m-3.27,1.18a3.47,3.47 115.05,1 1,6.54 -2.35a3.47,3.47 115.05,1 1,-6.54 2.35"
|
<path
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.26458332"/>
|
android:fillColor="#609926"
|
||||||
<path android:fillAlpha="1" android:fillColor="#609926"
|
android:pathData="m121.31,89.48m-5.22,1.88a5.55,5.55 0,1 1,10.45 -3.75,5.55 5.55,0 1,1 -10.45,3.75" />
|
||||||
android:pathData="M79.54,58.94l2.4,1.17l-11.96,24.5l-2.4,-1.17z"
|
<path
|
||||||
android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.27444693"/>
|
android:fillColor="#609926"
|
||||||
<path android:fillColor="#00000000"
|
android:pathData="m118.22,41.28 l3.83,1.86 -19.11,39.14 -3.83,-1.86z" />
|
||||||
android:pathData="m76.56,68.12c12.98,6.4 13.01,4.1 4.89,20.91"
|
<path
|
||||||
android:strokeAlpha="1" android:strokeColor="#609926"
|
android:pathData="m113.45,55.95c20.74,10.22 20.78,6.55 7.81,33.41"
|
||||||
android:strokeLineCap="butt" android:strokeLineJoin="miter" android:strokeWidth="2.68000007"/>
|
android:strokeWidth="4.28"
|
||||||
|
android:strokeColor="#609926" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="250dp"
|
android:height="195.06dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="250.0">
|
android:viewportHeight="195.06">
|
||||||
<path
|
<path
|
||||||
android:pathData="M128,0C57.32,0 0,57.31 0,128C0,184.56 36.68,232.54 87.53,249.46C93.93,250.65 96.28,246.68 96.28,243.3C96.28,240.25 96.16,230.17 96.11,219.47C60.5,227.22 52.98,204.37 52.98,204.37C47.16,189.57 38.77,185.64 38.77,185.64C27.16,177.7 39.65,177.86 39.65,177.86C52.5,178.76 59.27,191.05 59.27,191.05C70.68,210.62 89.21,204.96 96.52,201.69C97.66,193.42 100.98,187.77 104.64,184.57C76.21,181.34 46.32,170.36 46.32,121.32C46.32,107.34 51.33,95.92 59.51,86.96C58.18,83.73 53.8,70.72 60.75,53.08C60.75,53.08 71.5,49.64 95.96,66.2C106.17,63.37 117.12,61.95 128,61.9C138.88,61.95 149.84,63.37 160.07,66.2C184.5,49.64 195.23,53.08 195.23,53.08C202.2,70.72 197.82,83.73 196.49,86.96C204.69,95.92 209.66,107.34 209.66,121.32C209.66,170.48 179.72,181.3 151.21,184.47C155.8,188.44 159.9,196.23 159.9,208.18C159.9,225.3 159.75,239.09 159.75,243.3C159.75,246.71 162.05,250.7 168.54,249.44C219.37,232.5 256,184.54 256,128C256,57.31 198.69,0 128,0ZM47.94,182.34C47.66,182.98 46.66,183.17 45.75,182.73C44.82,182.31 44.3,181.45 44.6,180.81C44.87,180.15 45.88,179.97 46.8,180.41C47.73,180.83 48.26,181.7 47.94,182.34ZM54.24,187.96C53.63,188.52 52.43,188.26 51.62,187.37C50.79,186.47 50.63,185.28 51.25,184.71C51.88,184.14 53.03,184.41 53.87,185.3C54.71,186.2 54.87,187.39 54.24,187.96ZM58.56,195.15C57.77,195.69 56.49,195.18 55.7,194.04C54.91,192.9 54.91,191.54 55.71,190.99C56.51,190.44 57.77,190.94 58.58,192.07C59.36,193.22 59.36,194.59 58.56,195.15ZM65.86,203.47C65.16,204.24 63.67,204.04 62.57,202.98C61.45,201.95 61.14,200.48 61.84,199.71C62.55,198.94 64.06,199.15 65.16,200.2C66.27,201.23 66.61,202.71 65.86,203.47ZM75.3,206.28C74.99,207.28 73.55,207.74 72.1,207.31C70.66,206.88 69.71,205.7 70,204.69C70.3,203.68 71.75,203.2 73.21,203.66C74.65,204.1 75.6,205.26 75.3,206.28ZM86.05,207.47C86.08,208.53 84.85,209.4 83.33,209.42C81.8,209.46 80.56,208.6 80.55,207.56C80.55,206.5 81.75,205.63 83.28,205.61C84.8,205.58 86.05,206.42 86.05,207.47ZM96.6,207.07C96.78,208.1 95.73,209.16 94.22,209.44C92.73,209.71 91.35,209.07 91.17,208.05C90.98,207 92.06,205.94 93.54,205.67C95.05,205.4 96.41,206.02 96.6,207.07Z"
|
android:pathData="M100,0C44.78,0 0,44.77 0,100c0,44.18 28.65,81.67 68.38,94.89 5,0.93 6.83,-2.17 6.83,-4.81 0,-2.38 -0.09,-10.25 -0.13,-18.61 -27.82,6.05 -33.69,-11.79 -33.69,-11.79 -4.54,-11.56 -11.10,-14.63 -11.10,-14.63 -9.07,-6.20 0.68,-6.07 0.68,-6.07 10.03,0.70 15.32,10.30 15.32,10.30 8.91,15.28 23.39,10.86 29.10,8.31 0.89,-6.46 3.48,-10.87 6.34,-13.37 -22.21,-2.52 -45.56,-11.10 -45.56,-49.41 0,-10.92 3.91,-19.84 10.30,-26.84 -1.03,-2.52 -4.46,-12.68 0.96,-26.46 0,0 8.39,-2.68 27.50,10.25C82.94,49.50 91.5,48.39 100,48.35c8.5,0.03 17.06,1.14 25.05,3.35 19.08,-12.93 27.46,-10.25 27.46,-10.25 5.44,13.78 2.02,23.94 0.98,26.46 6.40,7 10.28,15.92 10.28,26.84 0,38.40 -23.39,46.85 -45.66,49.33 3.58,3.10 6.78,9.18 6.78,18.52 0,13.37 -0.11,24.14 -0.11,27.43 0,2.66 1.79,5.78 6.86,4.79C171.38,181.64 200,144.17 200,100 200,44.77 155.22,0 100,0ZM37.45,142.45c-0.21,0.5 -1,0.64 -1.71,0.30 -0.72,-0.32 -1.13,-1 -0.89,-1.5 0.21,-0.51 1,-0.65 1.71,-0.31 0.72,0.32 1.14,1.00 0.89,1.50zM42.37,146.84c-0.47,0.43 -1.41,0.23 -2.04,-0.46 -0.64,-0.70 -0.77,-1.63 -0.28,-2.07 0.49,-0.44 1.39,-0.23 2.04,0.46 0.65,0.70 0.78,1.63 0.28,2.07zM45.75,152.46c-0.61,0.42 -1.61,0.02 -2.23,-0.86 -0.61,-0.89 -0.61,-1.95 0.00,-2.38 0.62,-0.43 1.60,-0.03 2.24,0.84 0.60,0.89 0.60,1.96 -0.01,2.40zM51.45,158.96c-0.54,0.60 -1.71,0.44 -2.57,-0.38 -0.87,-0.80 -1.11,-1.95 -0.57,-2.55 0.55,-0.60 1.73,-0.43 2.59,0.38 0.86,0.80 1.13,1.96 0.54,2.55zM58.82,161.15c-0.24,0.78 -1.36,1.14 -2.5,0.80 -1.12,-0.33 -1.86,-1.25 -1.64,-2.04 0.23,-0.78 1.36,-1.16 2.50,-0.80 1.12,0.34 1.86,1.25 1.63,2.04zM67.22,162.08c0.02,0.82 -0.93,1.50 -2.12,1.52 -1.19,0.03 -2.16,-0.64 -2.17,-1.45 0,-0.82 0.93,-1.50 2.13,-1.52 1.18,-0.02 2.16,0.63 2.16,1.45zM75.46,161.77c0.14,0.80 -0.68,1.63 -1.85,1.85 -1.16,0.21 -2.24,-0.28 -2.38,-1.08 -0.14,-0.82 0.69,-1.64 1.85,-1.85 1.18,-0.21 2.24,0.27 2.39,1.09z"
|
||||||
android:fillColor="#161614"/>
|
android:fillColor="#161614"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="236dp"
|
android:height="184.22dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="236.0">
|
android:viewportHeight="184.22">
|
||||||
<path
|
<path
|
||||||
android:pathData="M128.07,236.07L128.07,236.07L175.18,91.1L80.97,91.1L128.07,236.07L128.07,236.07Z"
|
android:pathData="m99.99,184.22v0L136.82,70.89H63.17Z"
|
||||||
android:fillColor="#E24329"/>
|
android:fillColor="#e24329"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M128.07,236.07L80.97,91.1L14.96,91.1L128.07,236.07L128.07,236.07Z"
|
android:pathData="M99.99,184.22 L63.17,70.89H11.56Z"
|
||||||
android:fillColor="#FC6D26"/>
|
android:fillColor="#fc6d26"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M14.96,91.1L14.96,91.1L0.64,135.16C-0.66,139.18 0.77,143.58 4.18,146.06L128.07,236.07L14.96,91.1L14.96,91.1Z"
|
android:pathData="m11.56,70.89v0L0.37,105.33c-1.01,3.14 0.10,6.58 2.76,8.52L99.99,184.22Z"
|
||||||
android:fillColor="#FCA326"/>
|
android:fillColor="#fca326"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M14.96,91.1L80.97,91.1L52.6,3.79C51.14,-0.7 44.78,-0.7 43.33,3.79L14.96,91.1L14.96,91.1Z"
|
android:pathData="M11.56,70.89H63.17L40.99,2.63c-1.14,-3.51 -6.11,-3.51 -7.24,0z"
|
||||||
android:fillColor="#E24329"/>
|
android:fillColor="#e24329"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M128.07,236.07L175.18,91.1L241.19,91.1L128.07,236.07L128.07,236.07Z"
|
android:pathData="m99.99,184.22 l36.83,-113.33h51.60z"
|
||||||
android:fillColor="#FC6D26"/>
|
android:fillColor="#fc6d26"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M241.19,91.1L241.19,91.1L255.51,135.16C256.81,139.18 255.38,143.58 251.97,146.06L128.07,236.07L241.19,91.1L241.19,91.1Z"
|
android:pathData="m188.43,70.89v0l11.19,34.44c1.01,3.14 -0.10,6.58 -2.76,8.52l-96.86,70.37z"
|
||||||
android:fillColor="#FCA326"/>
|
android:fillColor="#fca326"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M241.19,91.1L175.18,91.1L203.55,3.79C205.01,-0.7 211.37,-0.7 212.82,3.79L241.19,91.1L241.19,91.1Z"
|
android:pathData="M188.43,70.89H136.82L159.00,2.63c1.14,-3.51 6.11,-3.51 7.24,0z"
|
||||||
android:fillColor="#E24329"/>
|
android:fillColor="#e24329"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="196.00dp"
|
||||||
android:height="262dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="196.00"
|
||||||
android:viewportHeight="262.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M255.88,133.45C255.88,122.72 255.01,114.88 253.12,106.76L130.55,106.76L130.55,155.21L202.5,155.21C201.05,167.25 193.21,185.38 175.81,197.57L175.56,199.19L214.32,229.21L217,229.48C241.66,206.7 255.88,173.2 255.88,133.45"
|
android:pathData="m196.00,102.22c0,-8.21 -0.66,-14.22 -2.11,-20.44H100v37.11h55.11c-1.11,9.22 -7.11,23.11 -20.44,32.44l-0.19,1.24 29.69,22.99 2.05,0.20c18.88,-17.44 29.78,-43.11 29.78,-73.55"
|
||||||
android:fillColor="#4285F4"/>
|
android:fillColor="#4285f4"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M130.55,261.1C165.8,261.1 195.39,249.49 217,229.48L175.81,197.57C164.78,205.25 149.99,210.62 130.55,210.62C96.03,210.62 66.73,187.85 56.28,156.37L54.75,156.5L14.45,187.69L13.93,189.15C35.39,231.8 79.49,261.1 130.55,261.1"
|
android:pathData="m100,200c27.00,0 49.66,-8.89 66.22,-24.22l-31.55,-24.44c-8.44,5.88 -19.77,9.99 -34.66,9.99 -26.44,0 -48.88,-17.44 -56.89,-41.55l-1.17,0.1 -30.86,23.89 -0.39,1.11C27.10,177.55 60.88,200 100,200"
|
||||||
android:fillColor="#34A853"/>
|
android:fillColor="#34a853"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M56.28,156.37C53.53,148.25 51.93,139.54 51.93,130.55C51.93,121.56 53.53,112.85 56.14,104.73L56.06,103L15.26,71.31L13.93,71.95C5.08,89.64 0,109.52 0,130.55C0,151.58 5.08,171.46 13.93,189.15L56.28,156.37"
|
android:pathData="M43.11,119.77C41.00,113.55 39.77,106.88 39.77,100c0,-6.88 1.22,-13.55 3.22,-19.77L42.94,78.89 11.68,54.62 10.67,55.11C3.89,68.66 0,83.89 0,100c0,16.10 3.89,31.33 10.67,44.88L43.11,119.77"
|
||||||
android:fillColor="#FBBC05"/>
|
android:fillColor="#fbbc05"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M130.55,50.48C155.06,50.48 171.6,61.07 181.03,69.92L217.87,33.94C195.24,12.91 165.8,0 130.55,0C79.49,0 35.39,29.3 13.93,71.95L56.14,104.73C66.73,73.25 96.03,50.48 130.55,50.48"
|
android:pathData="m100,38.66c18.77,0 31.44,8.11 38.66,14.89L166.88,25.99C149.55,9.88 127.00,0 100,0 60.88,0 27.10,22.44 10.67,55.11L43.00,80.22C51.11,56.10 73.55,38.66 100,38.66"
|
||||||
android:fillColor="#EB4335"/>
|
android:fillColor="#eb4335"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
29
app/src/main/res/drawable/thumb_greenhost.xml
Normal file
29
app/src/main/res/drawable/thumb_greenhost.xml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="200.00dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="200.00">
|
||||||
|
<path
|
||||||
|
android:pathData="m190.94,58.43 l-129.87,64.60l0,23.03l-59.72,-29.70c5.63,34.25 28.66,62.63 59.72,75.77 11.96,5.06 25.11,7.85 38.92,7.85 55.23,-0 99.99,-44.76 99.99,-99.99l0,-0C199.99,85.16 196.74,71.09 190.94,58.43"
|
||||||
|
android:fillColor="#2d535a"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m61.07,76.96 l104.82,-52.14c-17.59,-15.43 -40.65,-24.82 -65.89,-24.82 -13.80,-0 -26.96,2.80 -38.92,7.86z"
|
||||||
|
android:fillColor="#b5e6e1"
|
||||||
|
android:strokeColor="#00000000"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m165.90,24.82 l-104.82,52.14l0,23.03l-56.97,-28.33c-2.65,8.98 -4.10,18.49 -4.10,28.33 0,5.57 0.47,11.03 1.35,16.36l59.72,29.70l0,-23.03L190.94,58.43C185.03,45.51 176.45,34.08 165.90,24.82"
|
||||||
|
android:fillColor="#54c6cc"
|
||||||
|
android:strokeColor="#00000000"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m61.07,169.10l0,23.03c11.96,5.06 25.11,7.85 38.92,7.85 55.22,-0 99.99,-44.77 99.99,-99.99z"
|
||||||
|
android:fillColor="#2d535a"
|
||||||
|
android:strokeColor="#00000000"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m190.94,58.43 l-129.87,64.60l0,23.03l-59.72,-29.70c5.63,34.25 28.66,62.63 59.72,75.77l0,-23.03L199.99,100.00l0,-0C199.99,85.16 196.74,71.09 190.94,58.43"
|
||||||
|
android:fillColor="#1e8290"
|
||||||
|
android:strokeColor="#00000000"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M61.07,7.86C33.71,19.43 12.60,42.84 4.10,71.65L61.07,100.00Z"
|
||||||
|
android:fillColor="#dbf3f1"
|
||||||
|
android:strokeColor="#00000000"/>
|
||||||
|
</vector>
|
|
@ -1,4 +1,9 @@
|
||||||
<vector android:height="239dp" android:viewportHeight="478.0"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="256.0" android:width="128dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="107.24dp"
|
||||||
<path android:fillColor="#000000" android:pathData="M9.13,5.98C3.08,9.96 0,15.18 0,21.49L0,455.33C0,460.83 3.15,465.83 9.46,470.46C15.72,475.11 23.44,477.43 32.65,477.43C41.46,477.43 49.18,475.11 55.89,470.46C62.56,465.87 65.95,460.83 65.95,455.33L65.95,21.52C65.95,15.18 62.72,10.05 56.21,5.98C49.7,2.03 41.87,0 32.65,0C23.03,0 15.19,2.03 9.13,5.98ZM198.86,178.3L110.56,233.65C106.6,237.35 104.9,242.97 105.63,250.66C106.32,258.27 109.83,265.51 116.06,272.35C122.32,279.23 129.31,283.54 137.31,285.37C145.19,287.16 151.18,286.19 155.13,282.52L190.05,260.75L190.05,455.33C190.05,460.83 193.08,465.83 199.22,470.46C205.2,475.11 212.88,477.43 222.1,477.43C231.31,477.43 239.27,475.11 245.94,470.46C252.64,465.83 256,460.83 256,455.33L256,193.72C256,187.37 252.72,182.25 246.26,178.3C239.79,174.27 231.75,172.31 222.1,172.31C212.48,172.31 204.76,174.27 198.86,178.3Z"/>
|
android:height="200dp"
|
||||||
|
android:viewportWidth="107.24"
|
||||||
|
android:viewportHeight="200">
|
||||||
|
<path
|
||||||
|
android:pathData="M3.82,2.50C1.29,4.17 0,6.35 0,9.00L0,190.74c0,2.30 1.32,4.39 3.96,6.33 2.62,1.94 5.85,2.92 9.71,2.92 3.69,0 6.92,-0.97 9.73,-2.92 2.79,-1.92 4.21,-4.03 4.21,-6.33L27.62,9.01c0,-2.65 -1.35,-4.80 -4.08,-6.51C20.82,0.85 17.54,0 13.67,0 9.64,0 6.36,0.85 3.82,2.50ZM83.30,74.69 L46.31,97.87c-1.65,1.55 -2.37,3.90 -2.06,7.12 0.28,3.18 1.75,6.22 4.36,9.08 2.62,2.88 5.55,4.68 8.90,5.45 3.30,0.75 5.81,0.34 7.46,-1.19l14.62,-9.12v81.51c0,2.30 1.26,4.39 3.84,6.33 2.50,1.94 5.72,2.92 9.58,2.92 3.85,0 7.19,-0.97 9.98,-2.92 2.80,-1.94 4.21,-4.03 4.21,-6.33L107.24,81.15c0,-2.66 -1.37,-4.80 -4.08,-6.46 -2.71,-1.68 -6.07,-2.50 -10.12,-2.50 -4.03,0 -7.26,0.82 -9.73,2.50z"
|
||||||
|
android:fillColor="#000000" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
94
app/src/main/res/drawable/thumb_hover.xml
Normal file
94
app/src/main/res/drawable/thumb_hover.xml
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
|
android:width="107.5dp"
|
||||||
|
android:height="29.7dp"
|
||||||
|
android:viewportWidth="107.5"
|
||||||
|
android:viewportHeight="29.7">
|
||||||
|
<path android:pathData="M78.6,8.4C72.3,8.4 67.4,12.8 67.4,19C67.4,25.3 72.1,29.699 79.4,29.699C83.7,29.699 86.1,28.399 88.1,26.699L84.4,22.699C83.4,23.399 81.601,24.301 79.301,24.301C76.401,24.301 74.7,23.1 74,21L89.5,21C89.8,13.9 85.9,8.4 78.6,8.4zM78.801,13.5C81.301,13.5 82.8,14.8 83.1,17.1L74,17.1C74.5,14.7 76.201,13.5 78.801,13.5z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="107.5"
|
||||||
|
android:endY="-6.4951005E-9"
|
||||||
|
android:startX="-4.1600664E-8"
|
||||||
|
android:startY="-6.4951005E-9"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#FF3AB795"
|
||||||
|
android:offset="0" />
|
||||||
|
<item
|
||||||
|
android:color="#FFC1DA5A"
|
||||||
|
android:offset="1" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
|
||||||
|
</path>
|
||||||
|
<path android:pathData="M33.699,8.4C27.399,8.4 22.5,12.8 22.5,19.1C22.5,25.3 27.399,29.699 33.699,29.699C39.999,29.699 44.9,25.3 44.9,19.1C44.9,12.9 39.999,8.4 33.699,8.4zM33.699,14C36.599,14 38.301,16.1 38.301,19.1C38.301,22.1 36.599,24.199 33.699,24.199C30.799,24.199 29.1,22.1 29.1,19.1C29.1,16 30.899,14 33.699,14z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="107.5"
|
||||||
|
android:endY="-6.4951005E-9"
|
||||||
|
android:startX="-4.1600664E-8"
|
||||||
|
android:startY="-6.4951005E-9"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#FF3AB795"
|
||||||
|
android:offset="0" />
|
||||||
|
<item
|
||||||
|
android:color="#FFC1DA5A"
|
||||||
|
android:offset="1" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
|
||||||
|
</path>
|
||||||
|
<path android:pathData="m104.1,8.4c-2.1,0 -4.5,0.7 -5.7,2.9V8.8h-6.5c0,0 0,1.2 0,4.4 0,3.2 0,15.9 0,15.9h6.5v-9c0,-4.3 1.6,-5.7 4.5,-5.7 0.9,0 1.7,0.2 2.5,0.6l2.1,-5.9c-0.8,-0.3 -2,-0.7 -3.4,-0.7z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="107.5"
|
||||||
|
android:endY="-6.4951005E-9"
|
||||||
|
android:startX="-4.1600664E-8"
|
||||||
|
android:startY="-6.4951005E-9"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#FF3AB795"
|
||||||
|
android:offset="0" />
|
||||||
|
<item
|
||||||
|
android:color="#FFC1DA5A"
|
||||||
|
android:offset="1" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:pathData="m70.2,8.9c0,0 -3.2,0 -5.4,0 -2.2,0 -4.9,1.3 -6.2,4.5l-0.8,1.5c-0.9,2.1 -1.6,3.5 -1.6,3.5L56,19.3 55.7,18.4c0,0 -0.7,-1.5 -1.6,-3.5l-0.7,-1.6c-1.3,-3.2 -4.1,-4.5 -6.2,-4.5 -2.2,0 -5.4,0 -5.4,0 0,0 2.2,0.6 4.5,4.5 2.3,3.8 8.6,16.3 8.6,16.3h2.3c0,0 6.3,-12.5 8.6,-16.3 2.2,-3.8 4.4,-4.4 4.4,-4.4z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="107.5"
|
||||||
|
android:endY="-6.4951005E-9"
|
||||||
|
android:startX="-4.1600664E-8"
|
||||||
|
android:startY="-6.4951005E-9"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#FF3AB795"
|
||||||
|
android:offset="0" />
|
||||||
|
<item
|
||||||
|
android:color="#FFC1DA5A"
|
||||||
|
android:offset="1" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:pathData="m12.7,8.4c-2.8,0 -5.1,0.8 -6.3,2.5 0,0 0,-0.7 0,-10.9H0C0,12.3 0,29.2 0,29.2H6.5V18.3c0,-2.6 1.5,-4 4.1,-4 2.3,0 3.4,1.3 3.4,3.6 0,0 0,4.3 0,6.8 0,3.8 0,4.5 0,4.5h6.4c0,0 0,-1.6 0,-4.5 0,-2.5 0,-7.2 0,-7.2 0,-5.8 -3.2,-9.1 -7.7,-9.1z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="107.5"
|
||||||
|
android:endY="-6.4951005E-9"
|
||||||
|
android:startX="-4.1600664E-8"
|
||||||
|
android:startY="-6.4951005E-9"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#FF3AB795"
|
||||||
|
android:offset="0" />
|
||||||
|
<item
|
||||||
|
android:color="#FFC1DA5A"
|
||||||
|
android:offset="1" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
</vector>
|
|
@ -1,10 +1,9 @@
|
||||||
<vector
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
android:width="200dp"
|
||||||
android:height="256dp"
|
android:height="199.89dp"
|
||||||
android:width="256dp"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="256"
|
android:viewportHeight="199.89">
|
||||||
android:viewportWidth="256">
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#cb2828"
|
android:fillColor="#cb2828"
|
||||||
android:pathData="m55.26,239.25c0,-0.2 0.86,-3.69 1.92,-7.75 6.08,-23.43 12.99,-53.9 17,-74.96 5.54,-29.09 8.29,-50.49 8.65,-67.2 0.43,-19.95 -2.83,-29.82 -10.19,-30.86 -1.52,-0.21 -6.04,0.27 -8.56,0.91 -15.02,3.84 -26.78,19.3 -32.87,43.19l-0.28,1.09l-7.29,0 -7.29,0l0,-1.99c0,-8.32 3.23,-21.65 7.94,-32.71 7.37,-17.33 19.73,-33.58 32.13,-42.23 12.62,-8.8 26.21,-11.96 36.45,-8.47 11.28,3.85 18.97,15.62 22.43,34.33 2.07,11.22 2.67,27.81 1.63,45.83 -0.16,2.84 -0.23,5.35 -0.14,5.58 0.14,0.37 1.6,0.41 14.24,0.41 15.78,0 14.36,0.19 14.71,-1.92 0.09,-0.56 0.69,-3.67 1.33,-6.91 4.65,-23.68 11.63,-50.34 18.77,-71.76l2.45,-7.35 16.19,-0.07c8.91,-0.04 16.19,-0.02 16.19,0.03 0,0.05 -1.44,5.78 -3.19,12.74 -12.99,51.47 -20.93,92.95 -23.83,124.39 -0.56,6.11 -0.79,20.69 -0.38,25.12 0.93,10.2 3.4,16.11 7.62,18.19 1.06,0.52 1.58,0.6 3.91,0.58 7.37,-0.06 13.99,-2.65 20.25,-7.91 7.97,-6.71 15.45,-20.11 19.13,-34.3l0.73,-2.82 7.37,-0.07 7.37,-0.07 -0.18,3.01c-1.12,19.11 -10.2,41.35 -23.86,58.44 -3.15,3.94 -9.7,10.6 -12.85,13.06 -7.28,5.69 -15.69,9.83 -23.54,11.58 -2.06,0.46 -3.32,0.56 -7.23,0.57 -4.16,0.01 -5,-0.06 -6.89,-0.58 -15.85,-4.32 -24.56,-21.15 -26.38,-50.99 -0.7,-11.39 -0.07,-30.98 1.5,-46.67 0.24,-2.36 0.33,-4.47 0.22,-4.67 -0.18,-0.32 -2.11,-0.37 -13.64,-0.37l-13.43,0l-0.23,0.58c-0.13,0.32 -0.6,2.88 -1.04,5.7 -4.5,28.59 -13.22,63.97 -22.85,92.67l-1.63,4.86 -16.17,0.07c-13.88,0.06 -16.17,0.01 -16.17,-0.3z"/>
|
android:pathData="m34.85,199.60c0,-0.17 0.77,-3.30 1.72,-6.94C42.01,171.68 48.20,144.39 51.79,125.52 56.75,99.47 59.22,80.30 59.54,65.33 59.92,47.47 57.00,38.63 50.41,37.69 49.05,37.51 45.00,37.94 42.75,38.51 29.29,41.95 18.76,55.80 13.30,77.19l-0.25,0.97H6.52,0v-1.78C0,68.94 2.89,57.00 7.11,47.09 13.71,31.57 24.78,17.01 35.88,9.27 47.19,1.38 59.36,-1.44 68.53,1.68 78.63,5.13 85.52,15.67 88.62,32.43c1.85,10.04 2.39,24.90 1.46,41.04 -0.14,2.54 -0.20,4.79 -0.12,4.99 0.12,0.33 1.43,0.36 12.75,0.36 14.13,0 12.86,0.17 13.17,-1.72 0.08,-0.50 0.61,-3.28 1.19,-6.18 4.16,-21.20 10.41,-45.08 16.81,-64.27l2.19,-6.58 14.50,-0.06c7.98,-0.03 14.50,-0.01 14.50,0.02 0,0.04 -1.29,5.17 -2.85,11.41 -11.63,46.09 -18.74,83.25 -21.34,111.41 -0.50,5.47 -0.70,18.53 -0.34,22.49 0.83,9.13 3.04,14.42 6.82,16.29 0.94,0.46 1.41,0.53 3.50,0.51 6.60,-0.05 12.53,-2.37 18.13,-7.08 7.13,-6.01 13.83,-18.01 17.13,-30.72l0.65,-2.52 6.60,-0.06 6.60,-0.06 -0.16,2.69c-1.00,17.11 -9.13,37.03 -21.37,52.34 -2.82,3.52 -8.68,9.49 -11.50,11.69 -6.52,5.09 -14.05,8.80 -21.08,10.37 -1.84,0.41 -2.97,0.50 -6.47,0.51 -3.72,0.00 -4.47,-0.05 -6.17,-0.51 -14.19,-3.86 -21.99,-18.94 -23.62,-45.67 -0.62,-10.20 -0.06,-27.74 1.34,-41.8 0.21,-2.11 0.29,-4.00 0.19,-4.18 -0.16,-0.28 -1.89,-0.33 -12.21,-0.33H86.89l-0.20,0.51c-0.11,0.28 -0.53,2.57 -0.93,5.10 -4.03,25.60 -11.84,57.29 -20.46,83l-1.46,4.35 -14.48,0.06c-12.43,0.05 -14.48,0.00 -14.48,-0.26z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
<vector android:height="250dp" android:viewportHeight="500.0"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="500.0" android:width="250dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200.0dp"
|
||||||
<path android:fillColor="#000000"
|
android:height="200.0dp"
|
||||||
android:pathData="m136,128v4h5.5c3.7,0 7,1 10.5,2.7 2.4,1.4 4,3 4.7,5 1,2.5 1.5,7.7 1.5,15.7v100c0,9.3 -1,15 -2.7,17.6 -3,3.7 -7.5,5.6 -14,5.6H136V283h66.4v-4h-5.6c-3.7,0 -7,-1 -10.4,-2.7 -2.4,-1.4 -4,-3 -5,-5 -1,-2.5 -1.5,-7.7 -1.5,-15.5v-47h72v119.3c0,7.5 -0.5,12.5 -1.4,15 -1,2.4 -2.5,4.3 -5,5.5 -3.5,2 -7,2.6 -10.4,2.6H230V355h119.4l13.4,-39h-4.6c-5,9.5 -10,16.6 -14.5,21.4 -3.7,3.6 -7.5,6 -11.4,7 -4,1 -10.3,2 -19,2h-26.3c-4.3,0 -7,-0.5 -8.7,-1.4 -1.5,-1 -2.6,-2 -3,-3.4 -0.6,-1.5 -1,-5.7 -1,-12.6v-51h34c6.5,0 11.3,1 14.4,2.3 3,1.5 5.4,3.6 6.7,6.3 1,2 2,7 3,14.5h4v-54h-4c-0.5,9 -2.7,15 -6.6,18.5 -3,2.7 -9,4 -17.7,4h-34v-61h42.5c7.7,0 13,0.6 16,1.7 3.7,1.4 6.5,3.7 8.6,7 2,3 4,8.6 5.4,17h4.5l-1.7,-34 -75.4,0v-44.3c0,-7.6 0.4,-12.6 1.3,-15 1,-2.5 2.6,-4.4 5,-5.6 3.3,-2 6.7,-2.6 10.4,-2.6h5.5v-4h-66.3v4h5.5c3.7,0 7,1 10.4,2.7 2.4,1.4 4,3 5,5 1,2.5 1.5,7.7 1.5,15.7v44.3h-72v-44.3c0,-7.6 0.5,-12.6 1.4,-15 1,-2.5 2.6,-4.4 5,-5.6 3.3,-1.8 6.7,-2.6 10.4,-3h6v-4z" android:strokeColor="#00000000"/>
|
android:viewportWidth="200.0"
|
||||||
<path android:fillColor="#00000000"
|
android:viewportHeight="200.0">
|
||||||
android:pathData="M250,250m-212.5,0a212.5,212.5 0,1 1,425 0a212.5,212.5 0,1 1,-425 0"
|
<path
|
||||||
android:strokeColor="#01226e" android:strokeWidth="30"/>
|
android:pathData="m100,100.0m-93.4,0a93.4,93.4 0,1 1,186.8 0,93.4 93.4,0 1,1 -186.8,0"
|
||||||
|
android:strokeWidth="13.1"
|
||||||
|
android:strokeColor="#01226e" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m49.8,46.3v1.7h2.4c1.6,0 3.0,0.4 4.6,1.1 1.0,0.6 1.7,1.3 2.0,2.1 0.4,1.0 0.6,3.3 0.6,6.9v43.9c0,4.0 -0.4,6.5 -1.1,7.7 -1.3,1.6 -3.2,2.4 -6.1,2.4h-2.4v1.9h29.1v-1.7h-2.4c-1.6,0 -3.0,-0.4 -4.5,-1.1 -1.0,-0.6 -1.7,-1.3 -2.1,-2.1 -0.4,-1.0 -0.6,-3.3 -0.6,-6.8V81.9H100.8v52.4c0,3.2 -0.2,5.4 -0.6,6.5 -0.4,1.0 -1.0,1.8 -2.1,2.4 -1.5,0.8 -3.0,1.1 -4.5,1.1h-2.2v1.6h52.4l5.8,-17.1h-2.0c-2.1,4.1 -4.3,7.2 -6.3,9.4 -1.6,1.5 -3.2,2.6 -5.0,3.0 -1.7,0.4 -4.5,0.8 -8.3,0.8h-11.5c-1.8,0 -3.0,-0.2 -3.8,-0.6 -0.6,-0.4 -1.1,-0.8 -1.3,-1.4 -0.2,-0.6 -0.4,-2.5 -0.4,-5.5v-22.4h14.9c2.8,0 4.9,0.4 6.3,1.0 1.3,0.6 2.3,1.5 2.9,2.7 0.4,0.8 0.8,3.0 1.3,6.3h1.7V98.7h-1.7c-0.2,3.9 -1.1,6.5 -2.9,8.1 -1.3,1.1 -3.9,1.7 -7.7,1.7H110.5V81.8h18.6c3.3,0 5.7,0.2 7.0,0.7 1.6,0.6 2.8,1.6 3.7,3.0 0.8,1.3 1.7,3.7 2.3,7.4h1.9l-0.7,-14.9h-33.1v-19.4c0,-3.3 0.1,-5.5 0.5,-6.5 0.4,-1.0 1.1,-1.9 2.1,-2.4 1.4,-0.8 2.9,-1.1 4.5,-1.1h2.4v-1.7H91.1v1.7h2.4c1.6,0 3.0,0.4 4.5,1.1 1.0,0.6 1.7,1.3 2.1,2.1 0.4,1.0 0.6,3.3 0.6,6.9v19.4H69.3v-19.4c0,-3.3 0.2,-5.5 0.6,-6.5 0.4,-1.0 1.1,-1.9 2.1,-2.4 1.4,-0.7 2.9,-1.1 4.5,-1.3h2.6v-1.7z"
|
||||||
|
/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,60 +1,60 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="512dp"
|
android:width="200dp"
|
||||||
android:height="136dp"
|
android:height="52.885105dp"
|
||||||
android:viewportWidth="512.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="136.0">
|
android:viewportHeight="52.885105">
|
||||||
<path
|
<path
|
||||||
android:pathData="M60.94,0.04L104.27,0.04L104.27,135.41L60.94,135.41L60.94,0.04L60.94,0.04Z"
|
android:fillColor="#33ccff"
|
||||||
android:fillColor="#33CCFF"/>
|
android:pathData="M23.784,0H40.712V52.885H23.784Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M0.06,0.04L43.33,0.04L43.33,135.41L0.06,135.41L0.06,0.04L0.06,0.04Z"
|
android:fillColor="#33ccff"
|
||||||
android:fillColor="#33CCFF"/>
|
android:pathData="M0,0H16.904V52.885H0Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M203.12,0.04L246.45,0.04L246.45,135.41L203.12,135.41L203.12,0.04L203.12,0.04Z"
|
android:fillColor="#33ccff"
|
||||||
android:fillColor="#33CCFF"/>
|
android:pathData="M79.33,0H96.257V52.885H79.33Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M319.58,0.04L362.91,0.04L362.91,135.41L319.58,135.41L319.58,0.04L319.58,0.04Z"
|
android:fillColor="#33ccff"
|
||||||
android:fillColor="#33CCFF"/>
|
android:pathData="m124.827,0h16.928v52.885h-16.928z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M437.36,0.04L480.7,0.04L480.7,135.41L437.36,135.41L437.36,0.04L437.36,0.04Z"
|
android:fillColor="#33ccff"
|
||||||
android:fillColor="#33CCFF"/>
|
android:pathData="M170.84,0H187.772v52.885h-16.932z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M104.13,0.04L159.79,0.04L159.79,43.33L104.13,43.33L104.13,0.04L104.13,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="M40.657,0H62.402V16.912H40.657Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M104.13,55.52L142.18,55.52L142.18,98.85L104.13,98.85L104.13,55.52L104.13,55.52Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="M40.657,21.674H55.522V38.602H40.657Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M171.98,0.04L203.8,0.04L203.8,43.33L171.98,43.33L171.98,0.04L171.98,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="M67.164,0H79.595V16.912H67.164Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M245.91,0.04L277.73,0.04L277.73,43.33L245.91,43.33L245.91,0.04L245.91,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="m96.046,0h12.431V16.912H96.046Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M288.43,0.04L320.25,0.04L320.25,43.33L288.43,43.33L288.43,0.04L288.43,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="m112.658,0h12.431v16.912h-12.431z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M362.37,0.04L394.19,0.04L394.19,43.33L362.37,43.33L362.37,0.04L362.37,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="m141.544,0h12.431v16.912h-12.431z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M406.24,0.04L438.06,0.04L438.06,43.33L406.24,43.33L406.24,0.04L406.24,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="M158.683,0H171.114V16.912H158.683Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M480.18,0.04L512,0.04L512,43.33L480.18,43.33L480.18,0.04L480.18,0.04Z"
|
android:fillColor="#ff4400"
|
||||||
android:fillColor="#FF4400"/>
|
android:pathData="M187.569,0H200v16.912h-12.431z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M203.12,0.04L246.45,0.04L246.45,43.33L203.12,43.33L203.12,0.04L203.12,0.04Z"
|
android:fillColor="#000000"
|
||||||
android:fillColor="#000000"/>
|
android:pathData="M79.33,0H96.257V16.912H79.33Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M319.58,0.04L362.91,0.04L362.91,43.33L319.58,43.33L319.58,0.04L319.58,0.04Z"
|
android:fillColor="#000000"
|
||||||
android:fillColor="#000000"/>
|
android:pathData="m124.827,0h16.928v16.912h-16.928z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M437.39,0.04L480.72,0.04L480.72,43.33L437.39,43.33L437.39,0.04L437.39,0.04Z"
|
android:fillColor="#000000"
|
||||||
android:fillColor="#000000"/>
|
android:pathData="m170.852,0h16.928v16.912h-16.928z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M60.94,0.04L104.27,0.04L104.27,43.33L60.94,43.33L60.94,0.04L60.94,0.04Z"
|
android:fillColor="#000000"
|
||||||
android:fillColor="#000000"/>
|
android:pathData="M23.784,0H40.712V16.912H23.784Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M60.94,55.52L104.27,55.52L104.27,98.86L60.94,98.86L60.94,55.52L60.94,55.52Z"
|
android:fillColor="#000000"
|
||||||
android:fillColor="#000000"/>
|
android:pathData="M23.784,21.674H40.712V38.606H23.784Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,5 +1,42 @@
|
||||||
<vector android:height="99dp" android:viewportHeight="198.92645"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="774.7776" android:width="387dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="200dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M253.95,174.12L253.95,70.95h34.81v103.17h-34.81zM271.56,62.56q-8.81,0 -13.63,-4.4 -4.61,-4.4 -4.61,-11.74 0,-6.92 4.61,-11.74 4.82,-4.82 13.63,-4.82 8.81,0 13.42,4.82 4.82,4.82 4.82,11.74 0,7.34 -4.82,11.74 -4.61,4.4 -13.42,4.4zM340.7,176.22q-15.1,0 -22.86,-7.97 -7.55,-8.18 -7.55,-22.65v-48.86h-13.84L296.45,70.95h13.84L310.29,45.78h34.81L345.1,70.95h22.65v25.79L345.1,96.74v43.83q0,4.82 1.89,6.92 2.1,1.89 6.29,1.89 5.66,0 12.37,-5.03l7.97,22.86q-6.08,4.2 -13.84,6.71 -7.76,2.31 -19.08,2.31zM426.32,176.22q-23.91,0 -37.75,-13.63 -13.63,-13.63 -13.63,-39.63 0,-18.87 7.76,-31.67 7.97,-13.21 19.93,-17.83 12.58,-4.82 23.28,-4.82 13.42,0 22.44,5.45 9.02,5.24 13.21,11.53 4.41,6.29 6.29,9.86l-24.11,15.52q-3.35,-6.92 -7.34,-10.9 -3.98,-3.98 -9.64,-3.98 -7.97,0 -12.58,6.29 -4.61,6.29 -4.61,19.08 0,13.84 5.45,20.34 5.45,6.5 15.52,6.5 7.97,0 13.21,-2.94 5.45,-2.94 10.28,-7.55l11.11,26q-5.03,4.19 -14.89,8.39 -9.86,3.98 -23.91,3.98zM476.97,174.12L476.97,34.04h35.02v42.57q4.4,-3.15 10.69,-5.45 6.29,-2.52 15.1,-2.52 18.45,0 27.47,10.49 9.23,10.49 9.23,29.57v65.43h-35.02v-61.24q0,-8.8 -3.35,-12.79 -3.35,-4.19 -8.81,-4.19 -4.61,0 -8.6,2.1 -3.98,2.1 -6.71,4.41v71.72h-35.02zM601.37,176.22q-8.39,0 -13.21,-4.82 -4.82,-4.82 -4.82,-12.37 0,-7.55 4.82,-12.58 4.82,-5.03 13.21,-5.03 7.97,0 12.79,5.03 4.83,5.03 4.83,12.58 0,7.55 -4.82,12.37 -4.61,4.82 -12.79,4.82zM627.12,174.12L627.12,70.95h34.81v103.17h-34.81zM644.73,62.58q-8.81,0 -13.63,-4.4 -4.61,-4.4 -4.61,-11.74 0,-6.92 4.61,-11.74 4.82,-4.82 13.63,-4.82 8.81,0 13.42,4.82 4.82,4.82 4.82,11.74 0,7.34 -4.82,11.74 -4.61,4.4 -13.42,4.4zM723.4,176.22q-12.16,0 -21.6,-3.98 -9.44,-4.19 -16.15,-11.32 -6.5,-7.34 -10.07,-17.2 -3.36,-10.07 -3.36,-21.81 0,-17.4 7.55,-30.41 7.76,-12.79 19.29,-17.83 11.74,-5.03 24.33,-5.03 18.03,0 29.77,8.39 11.95,8.39 16.78,20.97 4.82,12.58 4.82,23.91 0,11.74 -3.57,21.81 -3.35,9.85 -10.07,17.19 -6.5,7.13 -16.15,11.33 -9.44,3.99 -21.6,3.99zM723.4,149.38q8.81,0 12.79,-7.34 3.98,-7.55 3.98,-20.13 0,-11.95 -4.19,-19.08 -4.19,-7.13 -12.58,-7.13 -8.18,0 -12.37,7.13 -4.19,7.13 -4.19,19.08 0,12.58 3.99,20.13 4.2,7.34 12.58,7.34z"/>
|
android:height="51.35526dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M28.83,1.23C19.19,6.95 0.19,28.78 0,34.51v9.48c0,12.01 11.23,22.57 21.42,22.57 12.24,0 22.44,-10.15 22.44,-22.19 0,12.04 9.85,22.19 22.09,22.19 12.24,0 21.78,-10.15 21.78,-22.19 0,12.04 10.47,22.19 22.71,22.19h0.22c12.24,0 22.72,-10.15 22.72,-22.19 0,12.04 9.53,22.19 21.77,22.19s22.09,-10.15 22.09,-22.19c0,12.04 10.2,22.19 22.44,22.19 10.19,0 21.42,-10.56 21.42,-22.57L221.11,34.51c-0.19,-5.72 -19.19,-27.56 -28.83,-33.28 -29.97,-1.05 -50.76,-1.23 -81.73,-1.23C79.59,0 37.36,0.48 28.83,1.23zM87.58,60.9a25.26,25.26 0,0 1,-4.31 5.55,25.59 25.59,0 0,1 -17.94,7.32c-6.99,0 -13.36,-2.8 -17.98,-7.32 -1.67,-1.64 -2.94,-3.39 -4.11,-5.44v0c-1.16,2.05 -2.79,3.8 -4.46,5.44a25.66,25.66 0,0 1,-17.97 7.32c-0.84,0 -1.71,-0.23 -2.42,-0.47 -0.98,10.25 -1.4,20.04 -1.54,27.19v0.04c-0.02,3.63 -0.04,6.61 -0.05,10.75 0.19,21.51 -2.13,69.7 9.48,81.54 17.99,4.2 51.09,6.11 84.31,6.12h0c33.21,-0.01 66.32,-1.92 84.31,-6.11 11.61,-11.84 9.29,-60.03 9.48,-81.54 -0.02,-4.14 -0.03,-7.12 -0.05,-10.75v-0.04c-0.15,-7.14 -0.56,-16.93 -1.55,-27.18 -0.71,0.24 -1.59,0.47 -2.43,0.47a25.68,25.68 0,0 1,-17.98 -7.32c-1.67,-1.64 -3.3,-3.4 -4.46,-5.44l-0,-0.01c-1.17,2.04 -2.44,3.8 -4.11,5.44 -4.62,4.52 -10.99,7.32 -17.97,7.32s-13.32,-2.8 -17.94,-7.32a25.43,25.43 0,0 1,-4.31 -5.55,25.18 25.18,0 0,1 -4.27,5.55 25.67,25.67 0,0 1,-17.98 7.32c-0.24,0 -0.49,-0.01 -0.73,-0.02h-0.01c-0.24,0.01 -0.49,0.02 -0.73,0.02 -6.99,0 -13.36,-2.8 -17.98,-7.32a25.16,25.16 0,0 1,-4.27 -5.54zM69.12,84.78l-0,0.01h0.02c7.31,0.02 13.81,0 21.85,8.78 6.34,-0.66 12.95,-1 19.58,-0.99h0.01c6.63,-0.01 13.24,0.33 19.58,0.99 8.05,-8.78 14.54,-8.76 21.85,-8.78h0.02v-0.01c3.46,0 17.27,0 26.9,27.04l10.35,37.1c7.66,27.6 -2.45,28.28 -15.07,28.3 -18.72,-0.69 -29.08,-14.29 -29.08,-27.88 -10.36,1.7 -22.45,2.55 -34.53,2.55h-0c-12.09,0 -24.17,-0.85 -34.53,-2.55 0,13.59 -10.36,27.18 -29.08,27.88 -12.62,-0.02 -22.74,-0.7 -15.07,-28.29l10.34,-37.1c9.63,-27.04 23.45,-27.04 26.9,-27.04zM110.56,106.03v0.01c-0.02,0.02 -19.7,18.1 -23.24,24.53l12.89,-0.52v11.24c0,0.53 5.17,0.31 10.35,0.07h0.01c5.18,0.24 10.35,0.45 10.35,-0.07v-11.24l12.89,0.51c-3.54,-6.43 -23.24,-24.52 -23.24,-24.52v-0.01l-0,0z"/>
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="51.35526">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M22.6,15.7A6.5,6.5 0,0 1,21.4 17.1A6.6,6.6 0,0 1,16.8 19.0C15.0,19.0 13.4,18.3 12.2,17.1C11.7,16.7 11.4,16.2 11.1,15.7C10.8,16.2 10.4,16.7 10.0,17.1A6.6,6.6 0,0 1,5.3 19.0C5.1,19.0 4.9,18.9 4.7,18.9C4.4,21.5 4.3,24.0 4.3,25.9L4.3,25.9C4.3,26.8 4.3,27.6 4.3,28.7C4.3,34.2 3.7,46.7 6.7,49.7C11.4,50.8 19.9,51.3 28.5,51.3C37.1,51.3 45.6,50.8 50.3,49.7C53.3,46.7 52.7,34.2 52.7,28.7C52.7,27.6 52.7,26.8 52.7,25.9L52.7,25.9C52.7,24.1 52.6,21.5 52.3,18.9C52.1,18.9 51.9,19.0 51.7,19.0A6.6,6.6 0,0 1,47.0 17.1C46.6,16.7 46.2,16.2 45.9,15.7C45.6,16.2 45.2,16.7 44.8,17.1C43.6,18.3 42.0,19.0 40.2,19.0C38.4,19.0 36.7,18.3 35.5,17.1A6.5,6.5 0,0 1,34.4 15.7A6.5,6.5 0,0 1,33.3 17.1A6.6,6.6 0,0 1,28.7 19.0C28.6,19.0 28.6,19.0 28.5,19.0L28.5,19.0C28.4,19.0 28.4,19.0 28.3,19.0C26.5,19.0 24.9,18.3 23.7,17.1A6.4,6.4 0,0 1,22.6 15.7L22.6,15.7zM17.8,21.8L17.8,21.8L17.8,21.8C19.7,21.8 21.4,21.8 23.4,24.1C25.1,23.9 26.8,23.8 28.5,23.8L28.5,23.8C30.2,23.8 31.9,23.9 33.6,24.1C35.6,21.8 37.3,21.8 39.2,21.8L39.2,21.8L39.2,21.8C40.1,21.8 43.7,21.8 46.1,28.8L48.8,38.4C50.8,45.5 48.2,45.7 44.9,45.7C40.1,45.5 37.4,42.0 37.4,38.5C34.7,38.9 31.6,39.2 28.5,39.2C25.4,39.2 22.3,38.9 19.6,38.5C19.6,42.0 16.9,45.5 12.1,45.7C8.8,45.7 6.2,45.5 8.2,38.4L10.9,28.8C13.3,21.9 16.9,21.8 17.8,21.8L17.8,21.8z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m186.738,17.719c-3.7,0.033 -7.677,1.201 -10.056,4.203 -3.214,3.836 -3.748,9.284 -2.624,14.02 0.842,3.457 3.133,6.592 6.363,8.165 3.064,1.545 6.66,1.692 9.962,0.984 4.097,-0.92 7.523,-4.147 8.751,-8.154 1.526,-4.499 1.016,-9.676 -1.453,-13.743 -2.079,-3.195 -5.724,-5.247 -9.528,-5.422 -0.471,-0.036 -0.943,-0.053 -1.415,-0.053zM186.742,24.705c1.867,-0.12 3.362,1.404 3.817,3.112 0.723,2.424 0.668,5.069 0.026,7.504 -0.379,1.677 -1.731,3.251 -3.561,3.234 -1.864,0.228 -3.537,-1.184 -3.978,-2.944 -0.733,-2.418 -0.786,-5.064 -0.156,-7.51 0.45,-1.8 1.835,-3.504 3.853,-3.395z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m166.433,16.155c-1.341,0.009 -2.802,-0.319 -3.731,-1.355 -0.978,-1.089 -1.172,-2.697 -0.81,-4.075 0.349,-1.278 1.359,-2.357 2.635,-2.738 1.171,-0.356 2.45,-0.366 3.632,-0.052 1.666,0.446 2.913,2.061 2.975,3.778 0.083,1.209 -0.306,2.491 -1.237,3.306 -0.914,0.879 -2.237,1.139 -3.464,1.136z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m161.888,44.948v-26.633h8.986v26.633z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m155.24,45.49c-1.305,0.02 -2.681,-0.394 -3.561,-1.403 -1.08,-1.165 -1.309,-2.909 -0.919,-4.405 0.387,-1.468 1.604,-2.699 3.099,-3.022 1.457,-0.327 3.131,-0.178 4.316,0.806 1.049,0.845 1.627,2.189 1.613,3.526 0.035,1.228 -0.408,2.486 -1.319,3.331 -0.84,0.85 -2.062,1.179 -3.229,1.168z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m123.127,44.948c0,-12.054 0,-24.107 0,-36.161 3.013,0 6.027,0 9.04,0 0,3.663 0,7.326 0,10.989 3.281,-2.315 7.794,-2.714 11.455,-1.103 3.275,1.544 4.643,5.366 4.667,8.78 0.021,5.832 0.003,11.665 0.009,17.497 -3.013,0 -6.027,0 -9.04,0 -0.019,-5.539 0.039,-11.079 -0.03,-16.617 0.003,-1.728 -1.193,-3.667 -3.109,-3.575 -1.431,0.041 -3.278,0.734 -3.952,1.945 0,6.083 0,12.166 0,18.25 -3.012,-0.003 -6.037,0.007 -9.04,-0.005z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m110.052,45.49c-3.868,0.062 -7.985,-1.218 -10.473,-4.326 -2.622,-3.272 -3.053,-7.723 -2.666,-11.76 0.4,-4.124 2.618,-8.338 6.453,-10.197 3.708,-1.618 8.195,-2.19 11.926,-0.332 1.845,0.957 3.459,2.362 4.504,4.174 0.256,0.641 1.524,1.594 0.421,1.957 -1.889,1.216 -3.779,2.433 -5.668,3.649 -0.836,-1.641 -1.974,-3.653 -4.025,-3.825 -2.035,-0.275 -3.911,1.268 -4.376,3.204 -0.599,2.292 -0.601,4.793 0.13,7.055 0.625,1.989 2.657,3.257 4.702,3.201 2.01,0.134 3.93,-0.713 5.43,-2.005 0.566,-0.703 0.946,-0.787 1.141,0.108 0.841,1.967 1.681,3.935 2.522,5.902 -2.597,2.007 -5.842,3.136 -9.126,3.177 -0.298,0.012 -0.598,0.013 -0.895,0.019z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m87.95,45.49c-2.625,0.071 -5.592,-0.878 -6.843,-3.374 -1.383,-2.52 -0.924,-5.456 -1.007,-8.209 0,-2.978 0,-5.957 0,-8.935 -1.191,0 -2.382,0 -3.573,0 0,-2.219 0,-4.438 0,-6.658 1.191,0 2.382,0 3.573,0 0,-2.166 0,-4.332 0,-6.497 2.995,0 5.991,0 8.986,0 0,2.166 0,4.332 0,6.497 1.949,0 3.898,0 5.847,0 0,2.219 0,4.438 0,6.658 -1.949,0 -3.898,0 -5.847,0 0.019,3.964 -0.039,7.931 0.03,11.893 -0.04,1.582 1.809,1.964 3.021,1.569 0.879,0.169 2.169,-1.835 2.434,-0.654 0.626,1.795 1.251,3.589 1.877,5.384 -2.466,1.761 -5.517,2.384 -8.498,2.326z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m70.102,16.15c-1.341,0.009 -2.802,-0.319 -3.731,-1.355 -0.978,-1.089 -1.172,-2.697 -0.81,-4.075 0.349,-1.278 1.359,-2.357 2.635,-2.738 1.171,-0.356 2.45,-0.366 3.632,-0.052 1.666,0.446 2.913,2.061 2.975,3.778 0.083,1.209 -0.306,2.491 -1.237,3.306 -0.914,0.879 -2.238,1.139 -3.464,1.136z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m65.556,44.948v-26.633h8.986v26.633z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="m28.54,27.371v0.003c-0.005,0.005 -5.085,4.672 -5.999,6.332l3.327,-0.134v2.902c0,0.137 1.335,0.08 2.672,0.018h0.003c1.337,0.062 2.672,0.116 2.672,-0.018v-2.902l3.327,0.132c-0.914,-1.66 -5.999,-6.33 -5.999,-6.33v-0.003,0z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M7.442,0.318C4.954,1.794 0.049,7.429 0,8.909v2.447c0,3.1 2.899,5.826 5.529,5.826 3.16,0 5.793,-2.62 5.793,-5.728 0,3.108 2.543,5.728 5.702,5.728 3.16,0 5.622,-2.62 5.622,-5.728 0,3.108 2.703,5.728 5.862,5.728h0.057c3.16,0 5.865,-2.62 5.865,-5.728 0,3.108 2.46,5.728 5.62,5.728 3.16,0 5.702,-2.62 5.702,-5.728 0,3.108 2.633,5.728 5.793,5.728 2.63,0 5.529,-2.726 5.529,-5.826l0.003,-2.447C57.03,7.432 52.125,1.794 49.636,0.318 41.9,0.046 36.533,0 28.538,0 20.546,0 9.645,0.124 7.443,0.318Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
57
app/src/main/res/drawable/thumb_jetbrains.xml
Normal file
57
app/src/main/res/drawable/thumb_jetbrains.xml
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
<vector xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="139dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="139">
|
||||||
|
<path android:pathData="M118.6,71.8c0.9,-0.8 1.4,-1.9 1.5,-3.2c0.1,-2.6 -1.8,-4.7 -4.4,-4.9c-1.2,-0.1 -2.4,0.4 -3.3,1.1l0,0l-83.8,45.9c-1.9,0.8 -3.6,2.2 -4.7,4.1c-2.9,4.8 -1.3,11 3.6,13.9c3.4,2 7.5,1.8 10.7,-0.2l0,0l0,0c0.2,-0.2 0.5,-0.3 0.7,-0.5l78,-54.8C117.3,72.9 118.4,72.1 118.6,71.8L118.6,71.8L118.6,71.8z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient android:endX="110.2402" android:endY="73.24"
|
||||||
|
android:startX="31.8412" android:startY="120.5578" android:type="linear">
|
||||||
|
<item android:color="#FFFCEE39" android:offset="0"/>
|
||||||
|
<item android:color="#FFF37B3D" android:offset="1"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:pathData="M118.8,65.1L118.8,65.1L55,2.5C53.6,1 51.6,0 49.3,0c-4.3,0 -7.7,3.5 -7.7,7.7v0c0,2.1 0.8,3.9 2.1,5.3l0,0l0,0c0.4,0.4 0.8,0.7 1.2,1l67.4,57.7l0,0c0.8,0.7 1.8,1.2 3,1.3c2.6,0.1 4.7,-1.8 4.9,-4.4C120.2,67.3 119.7,66 118.8,65.1z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient android:endX="119.9179" android:endY="69.5546"
|
||||||
|
android:startX="48.3607" android:startY="6.9083" android:type="linear">
|
||||||
|
<item android:color="#FFEF5A6B" android:offset="0"/>
|
||||||
|
<item android:color="#FFF26F4E" android:offset="0.57"/>
|
||||||
|
<item android:color="#FFF37B3D" android:offset="1"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:pathData="M57.1,59.5C57,59.5 17.7,28.5 16.9,28l0,0l0,0c-0.6,-0.3 -1.2,-0.6 -1.8,-0.9c-5.8,-2.2 -12.2,0.8 -14.4,6.6c-1.9,5.1 0.2,10.7 4.6,13.4l0,0l0,0C6,47.5 6.6,47.8 7.3,48c0.4,0.2 45.4,18.8 45.4,18.8l0,0c1.8,0.8 3.9,0.3 5.1,-1.2C59.3,63.7 59,61 57.1,59.5z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient android:endX="10.5379" android:endY="37.1562"
|
||||||
|
android:startX="52.9467" android:startY="63.6407" android:type="linear">
|
||||||
|
<item android:color="#FF7C59A4" android:offset="0"/>
|
||||||
|
<item android:color="#FFAF4C92" android:offset="0.3852"/>
|
||||||
|
<item android:color="#FFDC4183" android:offset="0.7654"/>
|
||||||
|
<item android:color="#FFED3D7D" android:offset="0.957"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:pathData="M49.3,0c-1.7,0 -3.3,0.6 -4.6,1.5L4.9,28.3c-0.1,0.1 -0.2,0.1 -0.2,0.2l-0.1,0l0,0c-1.7,1.2 -3.1,3 -3.9,5.1C-1.5,39.4 1.5,45.9 7.3,48c3.6,1.4 7.5,0.7 10.4,-1.4l0,0l0,0c0.7,-0.5 1.3,-1 1.8,-1.6l34.6,-31.2l0,0c1.8,-1.4 3,-3.6 3,-6.1v0C57.1,3.5 53.6,0 49.3,0z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient android:endX="10.7706" android:endY="37.8971"
|
||||||
|
android:startX="52.1736" android:startY="3.7019" android:type="linear">
|
||||||
|
<item android:color="#FFEF5A6B" android:offset="0"/>
|
||||||
|
<item android:color="#FFEE4E72" android:offset="0.364"/>
|
||||||
|
<item android:color="#FFED3D7D" android:offset="1"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path android:fillColor="#000000" android:pathData="M34.6,37.4h51v51h-51z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M39,78.8h19.1v3.2h-19.1z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M38.8,50.8l1.5,-1.4c0.4,0.5 0.8,0.8 1.3,0.8c0.6,0 0.9,-0.4 0.9,-1.2l0,-5.3l2.3,0l0,5.3c0,1 -0.3,1.8 -0.8,2.3c-0.5,0.5 -1.3,0.8 -2.3,0.8C40.2,52.2 39.4,51.6 38.8,50.8z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M45.3,43.8l6.7,0v1.9l-4.4,0V47l4,0l0,1.8l-4,0l0,1.3l4.5,0l0,2l-6.7,0L45.3,43.8z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M55,45.8l-2.5,0l0,-2l7.3,0l0,2l-2.5,0l0,6.3l-2.3,0L55,45.8z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M39,54l4.3,0c1,0 1.8,0.3 2.3,0.7c0.3,0.3 0.5,0.8 0.5,1.4v0c0,1 -0.5,1.5 -1.3,1.9c1,0.3 1.6,0.9 1.6,2v0c0,1.4 -1.2,2.3 -3.1,2.3l-4.3,0L39,54zM43.8,56.6c0,-0.5 -0.4,-0.7 -1,-0.7l-1.5,0l0,1.5l1.4,0C43.4,57.3 43.8,57.1 43.8,56.6L43.8,56.6zM43,59l-1.8,0l0,1.5H43c0.7,0 1.1,-0.3 1.1,-0.8v0C44.1,59.2 43.7,59 43,59z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M46.8,54l3.9,0c1.3,0 2.1,0.3 2.7,0.9c0.5,0.5 0.7,1.1 0.7,1.9v0c0,1.3 -0.7,2.1 -1.7,2.6l2,2.9l-2.6,0l-1.7,-2.5h-1l0,2.5l-2.3,0L46.8,54zM50.6,58c0.8,0 1.2,-0.4 1.2,-1v0c0,-0.7 -0.5,-1 -1.2,-1l-1.5,0v2H50.6z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M56.8,54l2.2,0l3.5,8.4l-2.5,0l-0.6,-1.5l-3.2,0l-0.6,1.5l-2.4,0L56.8,54zM58.8,59l-0.9,-2.3L57,59L58.8,59z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M62.8,54l2.3,0l0,8.3l-2.3,0L62.8,54z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M65.7,54l2.1,0l3.4,4.4l0,-4.4l2.3,0l0,8.3l-2,0L68,57.8l0,4.6l-2.3,0L65.7,54z"/>
|
||||||
|
<path android:fillColor="#FFFFFF" android:pathData="M73.7,61.1l1.3,-1.5c0.8,0.7 1.7,1 2.7,1c0.6,0 1,-0.2 1,-0.6v0c0,-0.4 -0.3,-0.5 -1.4,-0.8c-1.8,-0.4 -3.1,-0.9 -3.1,-2.6v0c0,-1.5 1.2,-2.7 3.2,-2.7c1.4,0 2.5,0.4 3.4,1.1l-1.2,1.6c-0.8,-0.5 -1.6,-0.8 -2.3,-0.8c-0.6,0 -0.8,0.2 -0.8,0.5v0c0,0.4 0.3,0.5 1.4,0.8c1.9,0.4 3.1,1 3.1,2.6v0c0,1.7 -1.3,2.7 -3.4,2.7C76.1,62.5 74.7,62 73.7,61.1z"/>
|
||||||
|
</vector>
|
18
app/src/main/res/drawable/thumb_keeper.xml
Normal file
18
app/src/main/res/drawable/thumb_keeper.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="29.54dp"
|
||||||
|
android:viewportWidth="128.002"
|
||||||
|
android:viewportHeight="29.54">
|
||||||
|
<path
|
||||||
|
android:pathData="M89.14,8.35H81.99V21.17H84.50V10.50h5.18c1.42,0 2.68,0.12 2.68,1.76 0,1.65 -1.25,1.78 -2.68,1.78h-2.95l-1.28,2.15h3.69c2.16,0 5.73,0 5.73,-3.91 0,-3.93 -3.56,-3.93 -5.73,-3.93m32.37,7.59c1.88,-0.10 3.57,-1.41 3.57,-3.77 0,-3.13 -2.18,-3.82 -5.21,-3.82h-7.70V21.17h2.50V10.43h4.83c2.04,0 3.08,0.29 3.08,1.79 0,1.51 -1.03,1.81 -3.08,1.81h-2.60l-1.23,2.08h2.96l3.72,5.04h3.08l-3.93,-5.21m-84.65,5.21h2.50V8.35H36.86ZM50.03,8.35h-3.31l-6.40,6.40 6.40,6.40h3.31c-1.54,-1.54 -5.31,-5.31 -6.40,-6.40 1.09,-1.09 4.86,-4.86 6.40,-6.40m50.03,7.28h6.41l1.28,-2.15h-7.69v-2.97h7.66l1.28,-2.15H97.56V21.17H109.27V19.02h-9.20v-3.38m-30.16,0h6.41l1.28,-2.15h-7.69v-2.97h7.66L78.85,8.35H67.4V21.17h11.70V19.02h-9.20v-3.38m-14.59,0v3.38h9.20v2.15H52.80V8.35H64.25L62.97,10.50h-7.66v2.97h7.69l-1.28,2.15h-6.41"
|
||||||
|
android:strokeWidth="0.031145"
|
||||||
|
android:fillColor="#100f0d" />
|
||||||
|
<path
|
||||||
|
android:pathData="m16.44,20.58v7.06l2.28,-0.58v-3.19l2.55,2.09 1.89,-1.39 -4.85,-3.99zM11.98,16.12v11.52h2.28v-9.24h4.70l5.66,4.52 1.42,-1.78 -6.28,-5.01zM27.86,12.67 L26.41,10.91 21.74,14.76 26.41,18.61 27.86,16.85 25.33,14.76zM7.47,26.03 L9.75,24.05L9.75,5.67L7.47,3.69ZM23.17,5.27 L21.27,3.87 18.72,5.97L18.72,2.78L16.44,2.19v7.06l1.86,0.01zM26.06,8.39 L24.64,6.61 18.97,11.13h-4.70L14.26,1.88L11.98,1.88L11.98,13.41L19.77,13.41ZM3.00,10.70 L5.29,8.61L5.29,21.32L3.00,19.37L3.00,10.70"
|
||||||
|
android:strokeWidth="0.031145"
|
||||||
|
android:fillColor="#fbc308" />
|
||||||
|
<path
|
||||||
|
android:pathData="m27.86,16.85 l-2.53,-2.09 2.53,-2.09 -1.45,-1.75 -4.66,3.85 4.66,3.85zM26.06,21.13 L19.77,16.12h-7.78v11.52h2.28v-9.24h4.70l5.66,4.52zM23.17,24.56 L18.31,20.57 16.44,20.58v7.06l2.28,-0.58v-3.19l2.55,2.09zM9.75,5.67 L7.47,3.69L7.47,26.03L9.75,24.05ZM5.29,8.61 L3.00,10.70v8.67l2.28,1.94zM11.98,13.41h7.78l6.28,-5.01 -1.42,-1.78 -5.66,4.52h-4.70L14.26,1.88h-2.28zM16.44,9.26 L18.31,9.27 23.17,5.27 21.27,3.87 18.72,5.97L18.72,2.78L16.44,2.19ZM29.53,14.76c0,8.15 -6.61,14.76 -14.76,14.76C6.61,29.53 0,22.92 0,14.76 0,6.61 6.61,0 14.76,0 22.92,0 29.53,6.61 29.53,14.76Z"
|
||||||
|
android:strokeWidth="0.031145"
|
||||||
|
android:fillColor="#100f0d" />
|
||||||
|
</vector>
|
|
@ -1,12 +1,12 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="256dp"
|
android:width="200dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="256.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="256.0">
|
android:viewportHeight="200">
|
||||||
<path
|
<path
|
||||||
android:pathData="M240.67,256L15.33,256C6.86,256 0,249.14 0,240.67L0,15.33C0,6.86 6.86,0 15.33,0L240.67,0C249.14,0 256,6.86 256,15.33L256,240.67C256,249.14 249.14,256 240.67,256"
|
android:pathData="M188.02,200H11.97C5.35,200 0,194.64 0,188.02V11.97C0,5.35 5.35,0 11.97,0H188.02C194.64,0 200,5.35 200,11.97V188.02C200,194.64 194.64,200 188.02,200"
|
||||||
android:fillColor="#161D15"/>
|
android:fillColor="#161d15"/>
|
||||||
<path
|
<path
|
||||||
android:pathData="M116.89,105.51L142.49,68.42C147.33,61.43 153.58,57.94 161.24,57.94C167.49,57.94 172.9,60.16 177.47,64.59C182.04,69.03 184.32,74.33 184.32,80.52C184.32,85.09 183.11,89.12 180.69,92.61L157.61,126.18L185.83,161.96C188.66,165.52 190.07,169.69 190.07,174.46C190.07,180.77 187.85,186.2 183.42,190.73C178.98,195.27 173.6,197.54 167.29,197.54C160.37,197.54 155.09,195.29 151.46,190.78L116.89,147.64L116.89,171.43C116.89,178.22 115.72,183.49 113.36,187.26C109.06,194.11 102.81,197.54 94.62,197.54C87.16,197.54 81.38,195.02 77.28,189.98C73.45,185.34 71.54,179.19 71.54,171.53L71.54,83.34C71.54,76.08 73.48,70.1 77.38,65.4C81.48,60.43 87.12,57.94 94.31,57.94C101.17,57.94 106.88,60.43 111.45,65.4C114,68.15 115.61,70.94 116.29,73.76C116.69,75.51 116.89,78.77 116.89,83.54L116.89,105.51"
|
android:pathData="m91.32,82.43 l20,-28.97c3.78,-5.46 8.66,-8.18 14.64,-8.18 4.88,0 9.10,1.73 12.68,5.19 3.57,3.46 5.35,7.60 5.35,12.44 0,3.57 -0.94,6.71 -2.83,9.44l-18.03,26.22 22.04,27.95c2.21,2.78 3.31,6.03 3.31,9.76 0,4.93 -1.73,9.17 -5.19,12.71 -3.46,3.54 -7.67,5.32 -12.60,5.32 -5.40,0 -9.53,-1.75 -12.36,-5.28L91.32,115.34v18.58c0,5.30 -0.91,9.42 -2.75,12.36 -3.35,5.35 -8.24,8.03 -14.64,8.03 -5.82,0 -10.34,-1.96 -13.54,-5.90 -2.99,-3.62 -4.48,-8.43 -4.48,-14.41V65.10c0,-5.67 1.51,-10.34 4.56,-14.01 3.20,-3.88 7.60,-5.82 13.22,-5.82 5.35,0 9.82,1.94 13.39,5.82 1.99,2.14 3.25,4.32 3.78,6.53 0.31,1.36 0.46,3.91 0.46,7.64V82.43"
|
||||||
android:fillColor="#2CDF72"/>
|
android:fillColor="#2cdf72"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
<vector android:height="98dp" android:viewportHeight="337.7"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportWidth="429.8" android:width="125dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="199.99dp"
|
||||||
<path android:fillColor="#304d7f" android:pathData="M201.4,0.4C238.6,-2 276.5,5.5 310,22.1c49.3,24.2 88.6,68 107.2,119.7 8.2,22.8 12.6,47 12.6,71.2v90c0,3.7 0.1,7.4 -0.8,11 -2,9.1 -8.5,17.1 -17,20.9 -5.9,2.8 -12.7,3.1 -19.1,2.1 -13.7,-2.5 -24.4,-15.4 -24.5,-29.3 -0.1,-27.9 0,-55.8 0,-83.8 0.2,-7.9 0.3,-16.4 -4,-23.4 -7,-12.9 -23.8,-19 -37.4,-13.5 -11.5,4.1 -19.8,15.7 -19.9,27.9 -0.1,28.4 0,56.7 0,85 0,5.3 0.3,10.7 -1.3,15.8 -2.9,10 -11.2,18.1 -21.2,20.8 -13.1,3.6 -28.2,-2.2 -34.8,-14.3 -4.5,-7.3 -4.2,-16.1 -4.1,-24.3 -0.1,-28.1 0.1,-56.3 -0.1,-84.4 -0.3,-14.3 -12,-27.2 -26.2,-29 -9.2,-1.4 -18.9,1.7 -25.6,8.2 -6,5.7 -9.5,13.9 -9.5,22.2v82c-0.1,6.9 0.7,14 -1.9,20.5 -4.1,11.7 -15.9,20.3 -28.4,20 -12.8,0.7 -25.2,-8.1 -29.3,-20.1 -2.3,-5.9 -1.8,-12.3 -1.8,-18.5 0,-28.3 0.1,-56.6 0,-84.9 -0.1,-14 -11,-26.8 -24.7,-29.3 -12.5,-2.7 -26.3,3.6 -32.5,14.8 -2.7,4.7 -4.1,10.1 -4.1,15.4v91.9c0.1,8.9 -4,17.8 -10.9,23.5 -10.4,9.1 -27.2,9.6 -38.1,1.2C4.7,326 0,316.7 0,307.1V214c0.1,-35.2 9,-70.3 25.8,-101.3C39.5,87.4 58.4,64.9 81,46.9 115,19.5 157.7,3 201.4,0.4z"/>
|
android:height="157.09dp"
|
||||||
|
android:viewportWidth="199.99"
|
||||||
|
android:viewportHeight="157.09">
|
||||||
|
<path
|
||||||
|
android:fillColor="#304d7f"
|
||||||
|
android:pathData="m93.71,0.20c17.31,-1.11 34.94,2.37 50.53,10.09 22.94,11.26 41.22,31.64 49.88,55.7 3.81,10.60 5.86,21.87 5.86,33.13v41.88c0,1.72 0.04,3.44 -0.37,5.11 -0.93,4.23 -3.95,7.95 -7.91,9.72 -2.74,1.30 -5.91,1.44 -8.88,0.97 -6.37,-1.16 -11.35,-7.16 -11.40,-13.63 -0.04,-12.98 0,-25.96 0,-38.99 0.09,-3.67 0.14,-7.63 -1.86,-10.88 -3.25,-6.00 -11.07,-8.84 -17.40,-6.28 -5.35,1.90 -9.21,7.30 -9.26,12.98 -0.04,13.21 0,26.38 0,39.55 0,2.46 0.14,4.97 -0.60,7.35 -1.34,4.65 -5.21,8.42 -9.86,9.67 -6.09,1.67 -13.12,-1.02 -16.19,-6.65 -2.09,-3.39 -1.95,-7.49 -1.90,-11.30 -0.04,-13.07 0.04,-26.19 -0.04,-39.27 -0.14,-6.65 -5.58,-12.65 -12.19,-13.49 -4.28,-0.65 -8.79,0.79 -11.91,3.81 -2.79,2.65 -4.42,6.46 -4.42,10.33v38.15c-0.04,3.21 0.32,6.51 -0.88,9.53 -1.90,5.44 -7.39,9.44 -13.21,9.30 -5.95,0.32 -11.72,-3.76 -13.63,-9.35 -1.07,-2.74 -0.83,-5.72 -0.83,-8.60 0,-13.16 0.04,-26.33 0,-39.50 -0.04,-6.51 -5.11,-12.47 -11.49,-13.63 -5.81,-1.25 -12.23,1.67 -15.12,6.88 -1.25,2.18 -1.90,4.7 -1.90,7.16v42.76c0.04,4.14 -1.86,8.28 -5.07,10.93 -4.83,4.23 -12.65,4.46 -17.72,0.55C2.18,151.71 0,147.38 0,142.92V99.59C0.04,83.21 4.18,66.88 12.00,52.46 18.38,40.68 27.17,30.21 37.69,21.84 53.51,9.09 73.38,1.41 93.71,0.20Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="352dp"
|
android:width="200dp"
|
||||||
android:height="52dp"
|
android:height="29.54dp"
|
||||||
android:viewportWidth="352.0"
|
android:viewportWidth="200"
|
||||||
android:viewportHeight="52.0">
|
android:viewportHeight="29.54">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M0.4,0.3C0.7,0.1 1.1,0 1.7,0h5.7c0.7,0 1.2,0.1 1.4,0.3c0.3,0.2 0.4,0.6 0.4,1.3v35.3c0,2 0.5,3.4 1.5,4.2c1,0.8 2.3,1.2 4,1.2l13.3,0c0.6,0 1.2,0 1.6,0.4c0.4,0.3 0.3,0.5 0.5,1.3c0.3,0.8 0.8,4.8 0.8,4.8c0,0.4 0,0.7 -0.3,1s-0.8,0.5 -1.2,0.6s-1.3,0.2 -2.5,0.2c-1.2,0 -13.6,0 -13.6,0c-2.6,0 -4.8,-0.4 -6.5,-1.1c-1.7,-0.8 -3.1,-1.8 -4.1,-3.1c-1,-1.3 -1.7,-2.7 -2.1,-4.4C0.2,40.4 0,38.7 0,36.9V1.6C0,0.9 0.1,0.5 0.4,0.3z"/>
|
android:pathData="M0.22,0.17C1.05,-0.14 1.97,0.05 2.85,0 3.56,0.04 4.33,-0.13 5,0.17c0.40,0.54 0.16,1.30 0.22,1.95 0.00,6.41 -0.01,12.83 0.01,19.25 -0.01,1.12 0.69,2.22 1.82,2.48 1.34,0.30 2.74,0.11 4.11,0.17 1.74,0.01 3.48,-0.03 5.22,0.02 1.18,0.61 0.78,2.42 1.13,3.56 0.09,1.25 -1.62,1.09 -2.46,1.12 -2.86,-0.02 -5.72,0.04 -8.59,-0.04C4.16,28.62 1.78,27.38 0.81,25.19 -0.31,22.74 0.07,20.00 0,17.39 0.00,11.81 -0.01,6.22 0.01,0.64 0.02,0.47 0.07,0.27 0.22,0.17Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M190.7,46.4c0,1.1 -0.4,1.9 -1.3,2.3c-1,0.5 -2.1,0.9 -3.3,1.2c-1.2,0.3 -2.4,0.6 -3.7,0.8s-2.5,0.3 -3.8,0.4c-1.2,0.1 -2.4,0.1 -3.5,0.1c-3.1,0 -5.7,-0.3 -7.7,-1c-2,-0.6 -3.6,-1.5 -4.8,-2.5c-1.2,-1.1 -2,-2.3 -2.5,-3.7s-0.7,-3 -0.7,-4.6c0,-1.6 0.3,-3.2 0.8,-4.8c0.5,-1.5 1.4,-2.9 2.6,-4c1.2,-1.2 2.8,-2.1 4.7,-2.8c1.9,-0.7 4.3,-1.1 7.1,-1.1h7.9v-1.2c0,-0.9 -0.1,-1.7 -0.3,-2.5s-0.5,-1.4 -1.1,-2c-0.5,-0.6 -1.3,-1 -2.2,-1.3s-2.2,-0.5 -3.6,-0.5c-1.6,0 -3.7,0.4 -4.9,0.8c-0.5,0.1 -0.9,0.2 -1.1,0.1s-0.4,-0.4 -0.5,-0.8l-1,-4c-0.2,-0.8 0,-1.2 0.6,-1.5c2,-0.8 6.1,-1.4 8.2,-1.4c4.9,0 8.4,1.1 10.7,3.3c2.3,2.2 3.4,5.3 3.4,9.5V46.4zM182.4,33h-6.7c-0.8,0 -1.6,0 -2.6,0.1c-0.9,0.1 -1.8,0.4 -2.6,0.8c-0.8,0.4 -1.5,1 -2,1.8c-0.5,0.8 -0.8,1.9 -0.8,3.3c0,2 0.7,3.4 2,4.2c1.4,0.8 3.2,1.2 5.4,1.2c0.3,0 0.8,0 1.4,0c0.6,0 1.2,-0.1 1.9,-0.2c0.7,-0.1 1.3,-0.2 2.1,-0.4c0.7,-0.1 1.4,-0.3 2,-0.6V33z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m108.35,26.36c0.11,1.15 -1.12,1.52 -1.99,1.81 -3.04,0.91 -6.28,1.09 -9.43,0.76 -2.17,-0.32 -4.54,-1.18 -5.64,-3.22 -1.02,-2.06 -0.89,-4.59 -0.00,-6.68 1.20,-2.47 4.02,-3.61 6.64,-3.80 1.92,-0.10 3.85,-0.03 5.77,-0.05 0.02,-1.27 -0.00,-2.79 -1.18,-3.57 -1.79,-1.03 -3.99,-0.73 -5.89,-0.18 -0.70,0.25 -0.73,-0.64 -0.87,-1.09C95.60,9.62 95.33,8.96 95.30,8.26 95.79,7.45 96.99,7.55 97.82,7.3c2.54,-0.43 5.33,-0.41 7.63,0.89 2.04,1.18 2.91,3.64 2.88,5.90 0.00,4.08 0.00,8.17 0.00,12.26zM103.63,18.75c-1.82,0.02 -3.65,-0.06 -5.47,0.08 -1.36,0.18 -2.70,1.17 -2.82,2.63 -0.21,1.21 0.13,2.74 1.39,3.24 1.49,0.64 3.19,0.60 4.78,0.38 0.66,-0.24 1.93,-0.07 2.18,-0.77 0,-1.85 0,-3.71 0,-5.56l-0.05,-0z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M95.8,39.3c0,1.9 -0.3,3.5 -1,4.9c-0.7,1.4 -1.6,2.6 -2.9,3.5c-1.2,0.9 -2.7,1.6 -4.4,2.1c-1.7,0.5 -3.5,0.7 -5.5,0.8c-1.1,0 -2.3,0 -3.6,-0.1c-1.3,-0.1 -2.5,-0.2 -3.8,-0.5c-1.3,-0.2 -2.5,-0.5 -3.7,-0.9c-1.2,-0.4 -2.3,-0.8 -3.3,-1.4c-0.7,-0.4 -0.9,-0.9 -0.5,-1.7l1.6,-3.9c0.2,-0.4 0.5,-0.7 0.7,-0.8c0.2,-0.1 0.6,-0.1 1.1,0.2c1.7,0.8 3.6,1.3 5.6,1.7c2.1,0.4 3.9,0.6 5.5,0.6c2,0 3.4,-0.4 4.4,-1.2c1,-0.8 1.4,-1.8 1.4,-3c0,-1.3 -0.7,-2.4 -2,-3.2c-1.3,-0.8 -3.2,-1.6 -5.7,-2.5c-1.9,-0.7 -3.6,-1.3 -5.1,-2c-1.4,-0.7 -2.6,-1.4 -3.6,-2.3c-1,-0.8 -1.7,-1.8 -2.2,-2.8c-0.5,-1.1 -0.8,-2.3 -0.8,-3.7c0,-1.5 0.2,-2.9 0.8,-4.2c0.5,-1.3 1.4,-2.4 2.5,-3.3c1.1,-0.9 2.5,-1.7 4.1,-2.3c1.6,-0.6 3.5,-0.9 5.7,-0.9c2,0 3.9,0.1 5.9,0.4c2,0.3 3.9,0.8 5.7,1.5c0.4,0.2 0.6,0.4 0.7,0.7s0.1,0.6 0,1l-1.5,4c-0.1,0.4 -0.3,0.6 -0.5,0.6c-0.2,0.1 -0.5,0 -0.9,-0.1c-1.8,-0.6 -3.4,-1 -4.8,-1.2C84.5,19.1 83,19 81.4,19c-1.7,0 -3,0.4 -3.8,1.1c-0.8,0.7 -1.2,1.5 -1.2,2.4c0,0.6 0.1,1.2 0.4,1.7c0.3,0.5 0.7,0.9 1.3,1.3c0.6,0.4 1.3,0.8 2.2,1.2c0.9,0.4 2,0.8 3.4,1.3c1.5,0.5 3,1.1 4.4,1.7c1.4,0.6 2.7,1.3 3.8,2.2c1.1,0.9 2,1.9 2.7,3.1C95.4,36.1 95.8,37.6 95.8,39.3"/>
|
android:pathData="m54.43,22.33c0.09,2.10 -1.00,4.24 -2.90,5.21 -2.61,1.42 -5.72,1.35 -8.59,0.96 -1.60,-0.28 -3.24,-0.65 -4.65,-1.50 -0.56,-0.40 -0.02,-1.04 0.12,-1.53 0.28,-0.61 0.44,-1.29 0.83,-1.85 0.97,-0.47 2.07,0.75 3.16,0.73 1.81,0.37 3.74,0.78 5.58,0.30 1.15,-0.29 1.96,-1.53 1.60,-2.70 -0.41,-1.28 -1.85,-1.69 -2.95,-2.19 -2.39,-0.99 -5.16,-1.56 -6.94,-3.60 -1.47,-1.80 -1.36,-4.60 -0.01,-6.45 1.58,-1.92 4.18,-2.75 6.61,-2.67 2.21,0.02 4.48,0.26 6.52,1.16 0.59,0.46 0.09,1.19 -0.07,1.74 -0.22,0.55 -0.39,1.12 -0.64,1.66 -0.95,0.24 -1.94,-0.54 -2.94,-0.57 -1.41,-0.21 -2.90,-0.43 -4.30,-0.04 -1.09,0.3 -1.79,1.59 -1.26,2.64 0.63,1.07 1.93,1.47 3.02,1.92 2.30,0.88 4.90,1.51 6.55,3.48 0.78,0.91 1.32,2.04 1.26,3.27z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M122,49.6c-1.6,0.5 -3.2,0.8 -4.8,0.9c-1.6,0.1 -2.8,0.1 -3.7,0.1c-3.8,0 -6.6,-0.8 -8.1,-2.5c-1.6,-1.7 -2.4,-4.2 -2.4,-7.6l0.2,-20.1h-5.2c-0.5,0 -0.7,-0.1 -0.9,-0.3c-0.2,-0.2 -0.3,-0.4 -0.2,-0.8c0.1,-0.3 1.4,-3.7 1.4,-3.7c0.1,-0.1 0.4,-0.9 0.5,-1c0.1,-0.2 0.3,-0.3 0.9,-0.3h3.5V7.5c0,-0.9 0.4,-1.1 0.6,-1.3c0.2,-0.2 0.6,-0.4 1.1,-0.6l5,-1.4c0.4,-0.1 0.7,-0.1 0.9,0.1c0.2,0.2 0.4,0.5 0.4,1v9h7.1c0.5,0 0.8,0.1 0.9,0.3c0.1,0.2 0.2,0.5 0.2,0.8v3.9c0,0.4 -0.1,0.7 -0.2,0.9c-0.1,0.2 -0.4,0.3 -0.9,0.3h-7.1v19c0,1.5 0.4,2.5 1.1,3.1c0.7,0.6 1.8,0.8 3.2,0.8c0.3,0 0.7,0 1.1,0c0.5,0 0.9,-0.1 1.4,-0.1c0.5,0 1,-0.1 1.5,-0.2c0.5,-0.1 0.9,-0.1 1.2,-0.2c0.5,-0.1 0.8,-0.1 0.9,0c0.1,0.1 0.2,0.3 0.3,0.7l0.8,4.5c0,0.3 0.1,0.5 0,0.7C122.6,49.2 122.4,49.4 122,49.6z"/>
|
android:pathData="m69.31,28.18c-2.09,0.65 -4.34,0.65 -6.51,0.45 -1.45,-0.15 -2.92,-0.86 -3.57,-2.23 -1.00,-1.94 -0.62,-4.18 -0.67,-6.29 0.02,-2.84 0.05,-5.68 0.08,-8.51 -1.09,-0.02 -2.19,0.05 -3.27,-0.04 -0.79,-0.72 0.41,-1.91 0.55,-2.78 0.09,-0.78 0.89,-0.62 1.46,-0.63 0.42,0 0.84,0 1.26,0 0.02,-1.39 -0.04,-2.79 0.03,-4.17 0.40,-0.85 1.48,-0.85 2.26,-1.13 0.63,-0.13 1.26,-0.45 1.91,-0.42 0.53,0.42 0.25,1.18 0.32,1.78 0,1.32 0,2.64 0,3.96 1.45,0.02 2.92,-0.05 4.37,0.04 0.46,0.32 0.22,0.99 0.28,1.48 -0.05,0.63 0.13,1.32 -0.17,1.89 -0.76,0.19 -1.59,0.05 -2.38,0.09 -0.7,0 -1.4,0 -2.1,0 0.00,3.70 -0.01,7.40 0.01,11.10 -0.05,1.17 1.02,1.99 2.14,1.90 1.20,0.05 2.40,-0.12 3.58,-0.32 0.47,0.15 0.34,0.85 0.48,1.27 0.09,0.70 0.32,1.41 0.30,2.12 -0.03,0.21 -0.20,0.37 -0.39,0.45z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M138.2,49.6c0,0.7 -0.1,1.1 -0.3,1.3c-0.2,0.2 -1.1,0.3 -1.8,0.3h-4.6c-0.5,0 -1,-0.1 -1.3,-0.3c-0.3,-0.2 -0.4,-0.6 -0.4,-1.3V5.2c0,-0.6 0.1,-1.5 0.2,-2c0.1,-0.7 0.1,-0.9 0.5,-1.3c0.4,-0.5 1,-0.8 1.7,-0.9c0.4,-0.1 0.7,0 1.3,0h14.1c2.5,0 4.7,0.4 6.8,1.2c2,0.8 3.8,1.9 5.3,3.3c1.5,1.4 2.6,3.1 3.4,5.1c0.8,2 1.2,4.1 1.2,6.5c0,1.3 -0.2,3 -0.6,4.8c-0.4,1.9 -1.3,3.7 -2.5,5.4c-1.3,1.7 -3,3.2 -5.3,4.4c-2.3,1.2 -5.3,1.8 -9,1.8h-8.5V49.6zM156.2,14.8c-0.3,-1 -0.7,-1.9 -1.4,-2.7c-0.7,-0.8 -1.6,-1.5 -2.8,-2.1c-1.2,-0.5 -2.7,-0.8 -4.5,-0.8h-8.8v16.6h9c3.1,0 5.4,-0.8 6.8,-2.3c1.4,-1.5 2.1,-3.5 2.1,-5.9C156.7,16.7 156.5,15.8 156.2,14.8z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m78.52,28.18c0.18,1.11 -1.10,0.88 -1.81,0.90 -0.90,-0.05 -1.86,0.14 -2.72,-0.17 -0.40,-0.55 -0.16,-1.32 -0.22,-1.98 0.00,-8.08 -0.01,-16.17 0.01,-24.26 -0.17,-1.24 0.78,-2.43 2.09,-2.10 3.01,0.02 6.03,-0.04 9.04,0.04 3.45,0.23 6.88,2.43 7.93,5.84 0.83,2.51 0.65,5.36 -0.45,7.75 -1.37,2.87 -4.45,4.65 -7.59,4.77 -2.04,0.09 -4.10,0.03 -6.15,0.04 0,3.04 0,6.09 0,9.14H78.56ZM88.75,8.40C88.25,6.40 86.15,5.21 84.18,5.23c-1.79,-0.01 -3.58,-0.00 -5.37,-0.00 0,3.14 0,6.28 0,9.43 2.06,-0.03 4.14,0.06 6.20,-0.06 1.78,-0.10 3.43,-1.37 3.79,-3.15C89.02,10.44 89.09,9.38 88.75,8.40Z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M221.8,44.7c-0.7,1.4 -1.6,2.6 -2.9,3.5c-1.2,0.9 -2.7,1.6 -4.4,2.1c-1.7,0.5 -3.5,0.7 -5.5,0.8c-1.1,0 -2.3,0 -3.6,-0.1c-1.3,-0.1 -2.5,-0.2 -3.8,-0.5c-1.3,-0.2 -2.5,-0.5 -3.7,-0.9c-1.2,-0.4 -2.3,-0.8 -3.3,-1.4c-0.7,-0.4 -0.9,-0.9 -0.5,-1.7l1.6,-3.9c0.2,-0.4 0.5,-0.7 0.7,-0.8c0.2,-0.1 0.6,-0.1 1.1,0.2c1.7,0.8 3.6,1.3 5.6,1.7c2.1,0.4 3.9,0.6 5.5,0.6c2,0 3.4,-0.4 4.4,-1.2c1,-0.8 1.4,-1.8 1.4,-3c0,-1.3 -0.7,-2.4 -2,-3.2c-1.3,-0.8 -3.2,-1.6 -5.7,-2.5c-1.9,-0.7 -3.6,-1.3 -5.1,-2c-1.4,-0.7 -2.6,-1.4 -3.6,-2.3c-1,-0.8 -1.7,-1.8 -2.2,-2.8c-0.5,-1.1 -0.8,-2.3 -0.8,-3.7c0,-1.5 0.2,-2.9 0.8,-4.2s1.4,-2.4 2.5,-3.3c1.1,-0.9 2.5,-1.7 4.1,-2.3c1.6,-0.6 3.5,-0.9 5.7,-0.9c2,0 3.9,0.1 5.9,0.4c2,0.3 3.9,0.8 5.7,1.5c0.4,0.2 0.6,0.4 0.7,0.7c0.1,0.3 0.1,0.6 0,1l-1.5,4c-0.1,0.4 -0.3,0.6 -0.5,0.6c-0.2,0.1 -0.5,0 -0.9,-0.1c-1.8,-0.6 -3.4,-1 -4.8,-1.2c-1.4,-0.2 -2.9,-0.3 -4.5,-0.3c-1.7,0 -3,0.4 -3.8,1.1c-0.8,0.7 -1.2,1.5 -1.2,2.4c0,0.6 0.1,1.2 0.4,1.7c0.3,0.5 0.7,0.9 1.3,1.3c0.6,0.4 1.3,0.8 2.2,1.2c0.9,0.4 2,0.8 3.4,1.3c1.5,0.5 3,1.1 4.4,1.7c1.4,0.6 2.7,1.3 3.8,2.2c1.1,0.9 2,1.9 2.7,3.1c0.7,1.2 1.1,2.6 1.1,4.4C222.8,41.6 222.5,43.2 221.8,44.7z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m126.02,25.39c-1.02,2.22 -3.54,3.25 -5.84,3.52 -2.97,0.31 -6.05,-0.01 -8.83,-1.13 -0.67,-0.21 -1.57,-0.77 -0.98,-1.55 0.31,-0.72 0.56,-1.47 0.92,-2.17 0.84,-0.83 2.02,0.61 3.06,0.55 1.83,0.40 3.76,0.81 5.63,0.40 1.11,-0.23 2.02,-1.32 1.81,-2.48 -0.20,-1.36 -1.69,-1.87 -2.79,-2.36 -2.42,-1.03 -5.22,-1.57 -7.07,-3.59 -1.88,-2.19 -1.37,-5.93 0.98,-7.59 1.75,-1.34 4.01,-1.75 6.16,-1.61 2.00,0.06 4.05,0.33 5.89,1.15 0.59,0.45 0.09,1.19 -0.07,1.74 -0.22,0.55 -0.39,1.12 -0.64,1.66 -0.95,0.24 -1.94,-0.54 -2.94,-0.57 -1.41,-0.20 -2.88,-0.40 -4.28,-0.08 -1.10,0.24 -1.90,1.48 -1.45,2.56 0.52,1.09 1.8,1.49 2.83,1.94 2.28,0.89 4.87,1.48 6.60,3.36 0.90,0.94 1.44,2.23 1.40,3.55 0.17,0.92 0.00,1.88 -0.39,2.72z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M254.2,39.8c0,1.9 -0.3,3.5 -1,4.9c-0.7,1.4 -1.6,2.6 -2.9,3.5c-1.2,0.9 -2.7,1.6 -4.4,2.1c-1.7,0.5 -3.5,0.7 -5.5,0.8c-1.1,0 -2.3,0 -3.6,-0.1c-1.3,-0.1 -2.5,-0.2 -3.8,-0.5c-1.3,-0.2 -2.5,-0.5 -3.7,-0.9c-1.2,-0.4 -2.3,-0.8 -3.3,-1.4c-0.7,-0.4 -0.9,-0.9 -0.5,-1.7l1.6,-3.9c0.2,-0.4 0.5,-0.7 0.7,-0.8c0.2,-0.1 0.6,-0.1 1.1,0.2c1.7,0.8 3.6,1.3 5.6,1.7c2.1,0.4 3.9,0.6 5.5,0.6c2,0 3.4,-0.4 4.4,-1.2c1,-0.8 1.4,-1.8 1.4,-3c0,-1.3 -0.7,-2.4 -2,-3.2c-1.3,-0.8 -3.2,-1.6 -5.7,-2.5c-1.9,-0.7 -3.6,-1.3 -5.1,-2c-1.4,-0.7 -2.6,-1.4 -3.6,-2.3c-1,-0.8 -1.7,-1.8 -2.2,-2.8c-0.5,-1.1 -0.8,-2.3 -0.8,-3.7c0,-1.5 0.2,-2.9 0.8,-4.2c0.5,-1.3 1.4,-2.4 2.5,-3.3c1.1,-0.9 2.5,-1.7 4.1,-2.3c1.6,-0.6 3.5,-0.9 5.7,-0.9c2,0 3.9,0.1 5.9,0.4c2,0.3 3.9,0.8 5.7,1.5c0.4,0.2 0.6,0.4 0.7,0.7c0.1,0.3 0.1,0.6 0,1l-1.5,4c-0.1,0.4 -0.3,0.6 -0.5,0.6c-0.2,0.1 -0.5,0 -0.9,-0.1c-1.8,-0.6 -3.4,-1 -4.8,-1.2c-1.4,-0.2 -2.9,-0.3 -4.5,-0.3c-1.7,0 -3,0.4 -3.8,1.1c-0.8,0.7 -1.2,1.5 -1.2,2.4c0,0.6 0.1,1.2 0.4,1.7c0.3,0.5 0.7,0.9 1.3,1.3c0.6,0.4 1.3,0.8 2.2,1.2c0.9,0.4 2,0.8 3.4,1.3c1.5,0.5 3,1.1 4.4,1.7c1.4,0.6 2.7,1.3 3.8,2.2c1.1,0.9 2,1.9 2.7,3.1C253.9,36.6 254.2,38.1 254.2,39.8"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m144.43,22.61c0.09,2.10 -1.00,4.24 -2.90,5.21 -2.61,1.42 -5.72,1.35 -8.59,0.96 -1.60,-0.28 -3.24,-0.65 -4.65,-1.50 -0.56,-0.40 -0.02,-1.04 0.12,-1.53 0.28,-0.61 0.44,-1.29 0.83,-1.85 0.97,-0.47 2.07,0.75 3.16,0.73 1.81,0.37 3.74,0.78 5.58,0.30 1.15,-0.29 1.96,-1.53 1.60,-2.70 -0.41,-1.28 -1.85,-1.69 -2.95,-2.19 -2.39,-0.99 -5.16,-1.56 -6.94,-3.60 -1.47,-1.80 -1.36,-4.60 -0.01,-6.45 1.58,-1.92 4.18,-2.75 6.61,-2.67 2.21,0.02 4.48,0.26 6.52,1.16 0.59,0.46 0.09,1.19 -0.07,1.74 -0.22,0.55 -0.39,1.12 -0.64,1.66 -0.95,0.24 -1.94,-0.54 -2.94,-0.57 -1.41,-0.20 -2.88,-0.40 -4.28,-0.08 -1.10,0.24 -1.90,1.48 -1.45,2.56 0.52,1.09 1.8,1.49 2.83,1.94 2.28,0.89 4.87,1.48 6.60,3.36 0.57,0.76 1.31,1.48 1.48,2.46 0.06,0.34 0.08,0.68 0.08,1.03z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M63.8,45.9c0,1.1 -0.4,1.9 -1.3,2.3c-1,0.5 -2.1,0.9 -3.3,1.2c-1.2,0.3 -2.4,0.6 -3.7,0.8c-1.3,0.2 -2.5,0.3 -3.8,0.4c-1.2,0.1 -2.4,0.1 -3.5,0.1c-3.1,0 -5.7,-0.3 -7.7,-1c-2,-0.6 -3.6,-1.5 -4.8,-2.5c-1.2,-1.1 -2,-2.3 -2.5,-3.8c-0.5,-1.4 -0.7,-3 -0.7,-4.6c0,-1.7 0.3,-3.2 0.8,-4.8c0.5,-1.5 1.4,-2.9 2.6,-4c1.2,-1.2 2.8,-2.1 4.7,-2.8c1.9,-0.7 4.3,-1.1 7.1,-1.1h7.9v-1.2c0,-0.9 -0.1,-1.7 -0.3,-2.5c-0.2,-0.8 -0.6,-1.4 -1.1,-2c-0.5,-0.6 -1.3,-1 -2.2,-1.3c-0.9,-0.3 -2.2,-0.5 -3.6,-0.5c-1.6,0 -3.3,0.1 -5.2,0.4c-1.9,0.3 -3.4,0.6 -4.6,1c-0.5,0.1 -0.9,0.2 -1.1,0.1c-0.2,-0.1 -0.4,-0.4 -0.5,-0.8l-1,-4c-0.2,-0.8 0,-1.2 0.6,-1.5c2,-0.8 4.1,-1.3 6.5,-1.6c2.3,-0.3 4.5,-0.5 6.6,-0.5c4.9,0 8.4,1.1 10.7,3.3c2.3,2.2 3.4,5.3 3.4,9.5V45.9L63.8,45.9zM55.5,32.6h-6.7c-0.8,0 -1.6,0 -2.6,0.1c-0.9,0.1 -1.8,0.4 -2.6,0.8c-0.8,0.4 -1.5,1 -2,1.8c-0.5,0.8 -0.8,1.9 -0.8,3.3c0,2 0.7,3.4 2,4.2c1.4,0.8 3.2,1.2 5.4,1.2c0.3,0 0.8,0 1.4,0c0.6,0 1.2,-0.1 1.9,-0.2c0.7,-0.1 1.3,-0.2 2.1,-0.4c0.7,-0.1 1.4,-0.3 2,-0.6V32.6L55.5,32.6z"/>
|
android:pathData="m36.25,26.08c0.11,1.15 -1.12,1.52 -1.99,1.81 -3.04,0.91 -6.28,1.09 -9.43,0.76 -2.17,-0.32 -4.56,-1.18 -5.64,-3.24 -1.04,-2.18 -0.93,-4.87 0.15,-7.02 1.40,-2.44 4.35,-3.45 7.04,-3.54 1.73,-0.03 3.47,-0.00 5.21,-0.01 0.03,-1.27 -0.02,-2.77 -1.18,-3.57 -1.71,-0.99 -3.79,-0.68 -5.66,-0.48 -1.13,0.12 -2.22,0.47 -3.33,0.67 -0.49,-0.19 -0.42,-0.87 -0.59,-1.30 -0.11,-0.65 -0.44,-1.30 -0.36,-1.97 0.50,-0.59 1.39,-0.63 2.10,-0.88 2.38,-0.50 4.84,-0.75 7.28,-0.55 2.22,0.16 4.56,1.18 5.58,3.27 1.11,2.12 0.76,4.57 0.82,6.87 0,3.06 0,6.13 0,9.20zM31.53,18.52c-1.82,0.02 -3.65,-0.06 -5.47,0.08 -1.36,0.18 -2.70,1.17 -2.82,2.63 -0.21,1.21 0.13,2.74 1.39,3.24 1.54,0.66 3.29,0.60 4.92,0.36 0.61,-0.25 1.93,-0.04 2.03,-0.80 0,-1.83 0,-3.67 0,-5.51z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M347.4,12.9c0,-1.3 1,-2.3 2.3,-2.3l0,0c1.3,0 2.3,1 2.3,2.3v36.8c0,1.3 -1,2.3 -2.3,2.3l0,0c-1.3,0 -2.3,-1 -2.3,-2.3V12.9z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m197.38,7.33c0,-0.73 0.56,-1.30 1.30,-1.30v0c0.73,0 1.30,0.56 1.30,1.30v20.90c0,0.73 -0.56,1.30 -1.30,1.30v0c-0.73,0 -1.30,-0.56 -1.30,-1.30z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M266.63,32.19a7.8,7.8 0,1 0,15.6 0a7.8,7.8 0,1 0,-15.6 0z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m151.49,18.29a4.43,4.43 0,1 0,8.86 0,4.43 4.43,0 1,0 -8.86,0z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M292.63,32.19a7.8,7.8 0,1 0,15.6 0a7.8,7.8 0,1 0,-15.6 0z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m166.26,18.29a4.43,4.43 0,1 0,8.86 0,4.43 4.43,0 1,0 -8.86,0z" />
|
||||||
<path
|
<path
|
||||||
android:pathData="M318.63,32.19a7.8,7.8 0,1 0,15.6 0a7.8,7.8 0,1 0,-15.6 0z"
|
android:fillColor="#d32d27"
|
||||||
android:fillColor="#D32D27"/>
|
android:pathData="m181.04,18.29a4.43,4.43 0,1 0,8.86 0,4.43 4.43,0 1,0 -8.86,0z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,27 +1,12 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="128dp"
|
android:width="128dp"
|
||||||
android:height="128dp"
|
android:height="128dp"
|
||||||
android:viewportWidth="128"
|
android:viewportWidth="50"
|
||||||
android:viewportHeight="128">
|
android:viewportHeight="50">
|
||||||
<path
|
<path
|
||||||
android:pathData="M63.944,14.372C104.029,18.189 126.934,44.912 125.025,125.081H37.221c0,-34.358 38.176,-24.814 30.54,-80.169"
|
|
||||||
android:strokeLineJoin="round"
|
|
||||||
android:strokeWidth="5.7263422"
|
|
||||||
android:fillColor="#ffffff"
|
|
||||||
android:strokeColor="#000000"
|
|
||||||
android:strokeLineCap="round"/>
|
|
||||||
<path
|
|
||||||
android:pathData="M71.579,44.912C73.03,56.021 50.392,73.048 41.039,79.27 29.586,86.905 30.273,95.838 21.951,94.54c-3.978,-3.589 5.383,-11.605 0,-11.453 -3.818,0 0.725,4.696 -3.818,7.635 -3.818,0 -15.282,3.818 -15.27,-15.27 0,-7.635 22.905,-45.811 22.905,-45.811 0,0 7.215,-7.253 7.635,-13.361 -2.787,-3.795 -1.909,-7.635 -1.909,-11.453 3.818,-3.818 11.453,9.544 11.453,9.544h7.635c0,0 2.978,-7.605 9.544,-11.453 3.818,0 3.818,11.453 3.818,11.453"
|
|
||||||
android:strokeLineJoin="round"
|
|
||||||
android:strokeWidth="5.7263422"
|
|
||||||
android:fillColor="#ffffff"
|
|
||||||
android:strokeColor="#000000"
|
|
||||||
android:strokeLineCap="round"/>
|
|
||||||
<path
|
|
||||||
android:pathData="m16.225,73.544a1.909,1.909 0,1 1,-3.818 0,1.909 1.909,0 1,1 3.818,0zM36.965,36.323a1.909,5.726 30,1 1,-3.306 -1.909,1.909 5.726,30 1,1 3.306,1.909z"
|
|
||||||
android:strokeLineJoin="round"
|
|
||||||
android:strokeWidth="5.7263422"
|
|
||||||
android:fillColor="#000000"
|
android:fillColor="#000000"
|
||||||
|
android:pathData="M38.956,0.5c-3.53,0.418 -6.452,0.902 -9.286,2.984C5.534,1.786 -0.692,18.533 0.68,29.364 3.493,50.214 31.918,55.785 41.329,41.7c-7.444,7.696 -19.276,8.752 -28.323,3.084C3.959,39.116 -0.506,27.392 4.683,17.567 9.873,7.742 18.996,4.535 29.03,6.405c2.43,-1.418 5.225,-3.22 7.655,-3.187l-1.694,4.86 12.752,21.37c-0.439,5.654 -5.459,6.112 -5.459,6.112 -0.574,-1.47 -1.634,-2.942 -4.842,-6.036 -3.207,-3.094 -17.465,-10.177 -15.788,-16.207 -2.001,6.967 10.311,14.152 14.04,17.663 3.73,3.51 5.426,6.04 5.795,6.756 0,0 9.392,-2.504 7.838,-8.927L37.4,7.171z"
|
||||||
android:strokeColor="#000000"
|
android:strokeColor="#000000"
|
||||||
android:strokeLineCap="round"/>
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="1"/>
|
||||||
</vector>
|
</vector>
|
|
@ -1,17 +1,15 @@
|
||||||
<vector
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
android:width="166.55dp"
|
||||||
android:height="256dp"
|
android:height="200dp"
|
||||||
android:width="256dp"
|
android:viewportWidth="166.55"
|
||||||
android:viewportHeight="87.9"
|
android:viewportHeight="200">
|
||||||
android:viewportWidth="87.9" >
|
|
||||||
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#004712"
|
android:fillColor="#004712"
|
||||||
android:pathData="m69.55,46.4 l-1,11.5 -3.3,-2.3 0.4,-5.8c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,-0.1 0,0 0,0 0,0 0,0 0,-0.1 0,-0.1 0,0 0,0 0,0 0,0 -0.1,-0.1 -0.1,-0.1 0,0 0,0 0,0 0,0 0,0 -0.1,-0.1l-7.1,-4.7 0.1,-5.1zM52.15,58.9 L47.05,55v0.9c0,0.2 -0.1,0.4 -0.2,0.5l-3.8,2.6 4.2,3.4c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0.1 0,0 0,0 0,0 0,0 0,0 0,0.1 0,0 0,0 0,0 0,0 0,0.1 0,0.1 0,0 0,0 0,0l0.2,4 4.7,3.9zM20.05,63.9 L22.45,75.4 32.35,85.9 30.65,74.3zM29.35,65.6 L26.95,49.5 14.95,39.5 18.15,55.1zM25.55,39.6 L22.25,16.8L8.45,8.2 12.95,29.7Z"/>
|
android:pathData="m141.52,105.57 l-2.27,26.16 -7.50,-5.23 0.91,-13.19c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,-0.22 0,0 0,0 0,0 0,0 0,-0.22 0,-0.22 0,0 0,0 0,0 0,0 -0.22,-0.22 -0.22,-0.22 0,0 0,0 0,0 0,0 0,0 -0.22,-0.22l-16.15,-10.69 0.22,-11.60zM101.93,134.01 L90.33,125.14v2.04c0,0.45 -0.22,0.91 -0.45,1.13l-8.64,5.91 9.55,7.73c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0.22 0,0 0,0 0,0 0,0 0,0 0,0.22 0,0 0,0 0,0 0,0 0,0.22 0,0.22 0,0 0,0 0,0l0.45,9.10 10.69,8.87zM28.89,145.39 L34.35,171.55 56.88,195.44 53.01,169.05zM50.05,149.26 L44.59,112.62 17.29,89.87 24.57,125.37zM41.41,90.10 L33.90,38.22 2.50,18.65 12.74,67.57Z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#00b259"
|
android:fillColor="#00b259"
|
||||||
android:pathData="m79.35,40.2 l-1.5,10.9 -8.2,6.6 1,-11.2zM53.25,58.9 L53.35,70.7 63.85,62.3 64.55,50.8zM46.45,63.7 L31.65,74.3 33.45,86.5 46.85,75.8zM46.05,55.7 L45.35,39.7 28.05,49.6 30.45,66.2zM44.95,30.4 L44.05,8.8 23.25,16.8 26.65,40z"/>
|
android:pathData="m163.82,91.46 l-3.41,24.80 -18.65,15.01 2.27,-25.48zM104.43,134.01 L104.66,160.86 128.55,141.75 130.14,115.58zM88.96,144.93 L55.29,169.05 59.38,196.81 89.87,172.46zM88.05,126.73 L86.46,90.33 47.09,112.85 52.56,150.62zM85.55,69.17 L83.50,20.02 36.17,38.22 43.91,91.01Z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="m80.55,39c0,0 0,0 0,0 0,-0.1 0,-0.1 0,0 0,-0.1 0,-0.1 0,-0.2 0,0 0,0 0,0 0,0 0,-0.1 -0.1,-0.1 0,0 0,0 0,0 0,0 -0.1,0 -0.1,-0.1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0l-12,-6.7c-0.2,-0.1 -0.4,-0.1 -0.5,0l-10.2,6.2c0,0 0,0 0,0 0,0 0,0 -0.1,0 0,0 0,0 0,0.1 0,0 0,0 0,0.1 0,0 0,0 0,0.1 0,0 0,0 0,0.1 0,0 0,0.1 0,0.1 0,0 0,0 0,0.1l-0.1,5.4 -4.1,-2.7c-0.2,-0.1 -0.4,-0.1 -0.6,0l-6.1,3.4 -0.3,-6c0,0 0,0 0,0 0,0 0,-0.1 0,-0.1 0,0 0,0 0,-0.1 0,0 0,0 0,-0.1 0,0 0,0 0,-0.1 0,0 0,0 0,-0.1 0,0 0,0 -0.1,0 0,0 0,0 0,0l-6.2,-4.1 5.8,-3c0.2,-0.1 0.3,-0.3 0.3,-0.5l-1.1,-22.7c0,0 0,-0.1 0,-0.1 0,0 0,0 0,0 0,0 0,-0.1 -0.1,-0.1 0,0 0,0 0,0 0,0 0,-0.1 -0.1,-0.1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0l-15.7,-7.6c-0.1,-0.1 -0.2,-0.1 -0.3,-0.1L7.55,6.6c0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.1,0 -0.1,0.1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.1,0 -0.1,0.1 0,0 0,0 0,0.1 0,0 0,0 0,0.1 0,0 0,0.1 0,0.1 0,0 0,0 0,0.1 0,0 0,0 0,0 0,0 0,0.1 0,0.1 0,0 0,0 0,0.1 0,0 0,0 0,0L12.05,30.3c0,0.1 0.1,0.2 0.2,0.3l6.4,5 -4.7,2.2c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.1,0 -0.1,0.1 0,0 0,0 0,0 0,0 0,0.1 -0.1,0.1 0,0 0,0 0,0 0,0 0,0.1 0,0.1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0.1 0,0.1 0,0 0,0 0,0l3.6,17.2c0,0.1 0.1,0.2 0.2,0.3l4.5,4.2 -3,1.8c0,0 -0.1,0.1 -0.1,0.1 0,0 0,0 0,0 0,0 0,0.1 -0.1,0.1 0,0 0,0 0,0 0,0 0,0.1 0,0.1 0,0.1 0,0.1 0,0.2 0,0 0,0 0,0l2.8,13.3c0,0.1 0.1,0.2 0.1,0.3l10.9,12c0,0 0,0 0.1,0 0,0 0,0 0,0 0,0 0.1,0 0.1,0.1 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0.1,0 0.2,0 0.1,0 0.1,0 0.2,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0,0 0,0 0,0l14.4,-11.5c0.1,-0.1 0.2,-0.3 0.2,-0.4l-0.3,-7.9 4.8,4c0,0 0,0 0,0 0,0 0.1,0 0.1,0.1 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0.1,0 0.2,0 0.1,0 0.1,0 0.2,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0,0 0,0 0,0l11.6,-9.2c0.1,-0.1 0.2,-0.2 0.2,-0.4l0.4,-5.8 3.5,2.4c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0,0 0,0 0,0 0,0 0.1,0 0.1,0 0.1,0 0.1,0 0.2,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.1,0 0.1,-0.1 0,0 0,0 0,0l9.4,-7.5c0.1,-0.1 0.2,-0.2 0.2,-0.3l1.7,-12.3c0,0.1 0,0.1 0,0 0,0 0,0 0,0zM69.65,57.7 L70.65,46.5 79.45,40.2 77.95,51.1zM65.25,55.6 L65.65,49.8c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,-0.1 0,0 0,0 0,0 0,0 0,-0.1 0,-0.1 0,0 0,0 0,0 0,0 -0.1,-0.1 -0.1,-0.1 0,0 0,0 0,0 0,0 0,0 -0.1,-0.1l-7.1,-4.7 0.1,-5.1 11.1,6.9 -1,11.5zM63.75,62.3 L53.25,70.7 53.15,58.9 64.45,50.8zM46.95,75.8 L33.45,86.5 31.65,74.3 46.35,63.8zM22.35,75.4 L19.95,63.9 30.65,74.3 32.35,85.9zM22.15,16.8 L25.45,39.6 12.95,29.7L8.45,8.2ZM44.05,8.8 L44.95,30.4 26.65,40 23.25,16.8zM46.05,55.7 L30.45,66.1 28.05,49.5 45.35,39.6zM26.95,49.6 L29.35,65.7 18.15,55.1 14.95,39.5zM47.45,62.7c0,0 0,0 0,0 0,-0.1 0,-0.1 0,-0.1 0,0 0,0 0,0 0,0 0,-0.1 0,-0.1 0,0 0,0 0,0 0,0 0,0 -0.1,-0.1 0,0 0,0 0,0 0,0 0,0 0,0l-4.2,-3.4 3.8,-2.6c0.2,-0.1 0.2,-0.3 0.2,-0.5v-0.9l5.1,3.9 0.1,11.8 -4.7,-3.9z"/>
|
android:pathData="m166.55,88.73c0,0 0,0 0,0 0,-0.22 0,-0.22 0,0 0,-0.22 0,-0.22 0,-0.45 0,0 0,0 0,0 0,0 0,-0.22 -0.22,-0.22 0,0 0,0 0,0 0,0 -0.22,0 -0.22,-0.22 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0L138.79,72.58c-0.45,-0.22 -0.91,-0.22 -1.13,0l-23.20,14.10c0,0 0,0 0,0 0,0 0,0 -0.22,0 0,0 0,0 0,0.22 0,0 0,0 0,0.22 0,0 0,0 0,0.22 0,0 0,0 0,0.22 0,0 0,0.22 0,0.22 0,0 0,0 0,0.22l-0.22,12.28 -9.32,-6.14c-0.45,-0.22 -0.91,-0.22 -1.36,0L89.42,101.93 88.73,88.28c0,0 0,0 0,0 0,0 0,-0.22 0,-0.22 0,0 0,0 0,-0.22 0,0 0,0 0,-0.22 0,0 0,0 0,-0.22 0,0 0,0 0,-0.22 0,0 0,0 -0.22,0 0,0 0,0 0,0L74.40,77.81 87.6,70.99c0.45,-0.22 0.68,-0.68 0.68,-1.13L85.77,18.20c0,0 0,-0.22 0,-0.22 0,0 0,0 0,0 0,0 0,-0.22 -0.22,-0.22 0,0 0,0 0,0 0,0 0,-0.22 -0.22,-0.22 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0L49.60,0.22C49.37,0 49.14,0 48.91,0L0.45,15.01c0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.22,0 -0.22,0.22 0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.22,0 -0.22,0.22 0,0 0,0 0,0.22 0,0 0,0 0,0.22 0,0 0,0.22 0,0.22 0,0 0,0 0,0.22 0,0 0,0 0,0 0,0 0,0.22 0,0.22 0,0 0,0 0,0.22 0,0 0,0 0,0L10.69,68.94c0,0.22 0.22,0.45 0.45,0.68l14.56,11.37 -10.69,5.00c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0.22,0 -0.22,0.22 0,0 0,0 0,0 0,0 0,0.22 -0.22,0.22 0,0 0,0 0,0 0,0 0,0.22 0,0.22 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0.22 0,0.22 0,0 0,0 0,0l8.19,39.13c0,0.22 0.22,0.45 0.45,0.68l10.23,9.55 -6.82,4.09c0,0 -0.22,0.22 -0.22,0.22 0,0 0,0 0,0 0,0 0,0.22 -0.22,0.22 0,0 0,0 0,0 0,0 0,0.22 0,0.22 0,0.22 0,0.22 0,0.45 0,0 0,0 0,0l6.37,30.26c0,0.22 0.22,0.45 0.22,0.68l24.80,27.30c0,0 0,0 0.22,0 0,0 0,0 0,0 0,0 0.22,0 0.22,0.22 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0.22,0 0.45,0 0.22,0 0.22,0 0.45,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0,0 0,0 0,0L91.92,173.83c0.22,-0.22 0.45,-0.68 0.45,-0.91l-0.68,-17.97 10.92,9.10c0,0 0,0 0,0 0,0 0.22,0 0.22,0.22 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0.22,0 0.45,0 0.22,0 0.22,0 0.45,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0,0 0,0 0,0l26.39,-20.93c0.22,-0.22 0.45,-0.45 0.45,-0.91l0.91,-13.19 7.96,5.46c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0,0 0,0 0,0 0,0 0.22,0 0.22,0 0.22,0 0.22,0 0.45,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0.22,0 0.22,-0.22 0,0 0,0 0,0l21.38,-17.06c0.22,-0.22 0.45,-0.45 0.45,-0.68l3.86,-27.98c0,0.22 0,0.22 0,0 0,0 0,0 0,0zM141.75,131.28 L144.02,105.80 164.05,91.46 160.63,116.26zM131.74,126.50 L132.65,113.31c0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,-0.22 0,0 0,0 0,0 0,0 0,-0.22 0,-0.22 0,0 0,0 0,0 0,0 -0.22,-0.22 -0.22,-0.22 0,0 0,0 0,0 0,0 0,0 -0.22,-0.22l-16.15,-10.69 0.22,-11.60 25.25,15.7 -2.27,26.16zM128.32,141.75 L104.43,160.86 104.20,134.01 129.92,115.58zM90.10,172.46 L59.38,196.81 55.29,169.05 88.73,145.16zM34.13,171.55 L28.66,145.39 53.01,169.05 56.88,195.44zM33.67,38.22 L41.18,90.10 12.74,67.57 2.50,18.65ZM83.50,20.02 L85.55,69.17 43.91,91.01 36.17,38.22ZM88.05,126.73 L52.56,150.39 47.09,112.62 86.46,90.10ZM44.59,112.85 L50.05,149.48 24.57,125.37 17.29,89.87ZM91.24,142.66c0,0 0,0 0,0 0,-0.22 0,-0.22 0,-0.22 0,0 0,0 0,0 0,0 0,-0.22 0,-0.22 0,0 0,0 0,0 0,0 0,0 -0.22,-0.22 0,0 0,0 0,0 0,0 0,0 0,0l-9.55,-7.73 8.64,-5.91c0.45,-0.22 0.45,-0.68 0.45,-1.13v-2.04l11.60,8.87 0.22,26.84 -10.69,-8.87z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
11
app/src/main/res/drawable/thumb_livelyme.xml
Normal file
11
app/src/main/res/drawable/thumb_livelyme.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="193.9dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="193.9">
|
||||||
|
<path
|
||||||
|
android:pathData="m123.7,110.9c-0.6,0 -1.2,-0.6 -1.2,-1.2L122.5,98.7c0,-14.6 -12.1,-26.8 -26.8,-26.8L41.4,71.9c-14.6,0 -26.8,12.1 -26.8,26.8 0,14.6 12.1,26.8 26.8,26.8h23.7c1.8,0 3.0,1.2 3.0,3.0v23.7c0,7.3 3.0,14.0 7.9,18.9 4.8,4.8 12.1,7.9 18.9,7.9 14.6,0 26.8,-12.1 26.8,-26.8v-4.2c0,-0.6 0.6,-1.2 1.2,-1.2h12.8c0.6,0 1.2,0.6 1.2,1.2v4.2c0,22.5 -18.9,41.4 -41.4,41.4 -10.9,0 -21.3,-4.2 -29.2,-12.1 -7.9,-7.9 -12.1,-18.2 -12.1,-29.2L54.2,139.6L41.4,139.6C18.2,139.6 0,121.3 0,98.1 0,75.6 18.9,56.7 41.4,56.7h54.2c23.1,0 41.4,18.2 41.4,41.4v10.9c0,0.6 -0.6,1.2 -1.2,1.2h-12.1zM158.5,136.5h-54.2c-23.1,0 -41.4,-18.2 -41.4,-41.4L62.8,84.7c0,-0.6 0.6,-1.2 1.2,-1.2h12.8c0.6,0 1.2,0.6 1.2,1.2v10.9c0,14.6 12.1,26.8 26.8,26.8h53.6c14.6,0 26.8,-12.1 26.8,-26.8 0,-14.6 -12.1,-26.8 -26.8,-26.8h-24.3c-1.8,0 -3.0,-1.2 -3.0,-3.0L131.0,41.4c0,-7.3 -3.0,-14.0 -7.9,-18.9 -4.8,-4.8 -12.1,-7.9 -18.9,-7.9 -14.6,0 -26.8,12.1 -26.8,26.8v4.2c0,0.6 -0.6,1.2 -1.2,1.2L63.4,46.9c-0.6,0 -1.2,-0.6 -1.2,-1.2L62.1,41.4C62.1,18.9 81.0,0 103.6,0 114.6,0 125,4.2 132.9,12.1c7.9,7.9 12.1,18.2 12.1,29.2v12.8h13.4c23.1,0 41.4,18.2 41.4,41.4 0,23.1 -18.9,40.8 -41.4,40.8z"
|
||||||
|
android:strokeWidth="6.0"
|
||||||
|
android:fillColor="#C30B55"
|
||||||
|
android:fillType="evenOdd"/>
|
||||||
|
</vector>
|
13
app/src/main/res/drawable/thumb_lobsters.xml
Normal file
13
app/src/main/res/drawable/thumb_lobsters.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="200dp"
|
||||||
|
android:height="200dp"
|
||||||
|
android:viewportWidth="200"
|
||||||
|
android:viewportHeight="200">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="H0V200H200V0z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#AB1F23"
|
||||||
|
android:pathData="M0,0V200H200V0ZM163.32,169.82H36.06V158.4h2.06c7,0 11.53,-1.28 13.64,-3.85 2.10,-2.57 3.14,-6.97 3.14,-13.24V58.72c0,-6.37 -1.10,-10.81 -3.29,-13.34 -2.2,-2.49 -6.70,-3.76 -13.48,-3.76H36.07V30.2h74.86v11.42h-2.78c-7,0 -11.53,1.28 -13.64,3.85 -2.11,2.58 -3.15,6.98 -3.15,13.24v79.68c0,5.98 0.34,9.92 1.02,11.84 0.68,1.92 2.48,3.58 5.4,5 2.92,1.4 8.01,2.12 15.29,2.12 12.21,0 21.34,-3.08 27.37,-9.21 6.04,-6.14 10.16,-14.4 12.36,-24.76h11.12z" />
|
||||||
|
|
||||||
|
</vector>
|
18
app/src/main/res/drawable/thumb_login_gov.xml
Normal file
18
app/src/main/res/drawable/thumb_login_gov.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="33.07dp"
|
||||||
|
android:height="41.95dp"
|
||||||
|
android:viewportWidth="33.07"
|
||||||
|
android:viewportHeight="41.95">
|
||||||
|
<group>
|
||||||
|
<clip-path android:pathData="M-1.31,-0.78h34.38v42.74h-34.38z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#b51e23"
|
||||||
|
android:pathData="M28.43,0L16.52,0v42c11.3,-5 15.25,-11.48 16.25,-13.5 0.18,-0.38 0.28,-0.81 0.28,-1.24L33.05,4.62C33.05,3.39 32.56,2.21 31.69,1.35 30.83,0.48 29.65,0 28.43,0Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#e21d3e"
|
||||||
|
android:pathData="M4.62,0C2.06,0 0.00,2.06 0.00,4.62v22.64c-0.00,0.42 0.09,0.85 0.28,1.24 1,2 5,8.53 16.24,13.5L16.52,0Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffffff"
|
||||||
|
android:pathData="m19.45,18.1c1.57,-1.23 2.18,-3.33 1.53,-5.22C20.32,10.99 18.54,9.72 16.55,9.72c-1.99,0 -3.77,1.26 -4.43,3.15C11.46,14.76 12.07,16.86 13.65,18.1c-0.52,2.94 -1.03,5.88 -1.54,8.82 1.45,0.25 2.93,0.37 4.41,0.38 1.49,0.02 2.99,-0.07 4.48,-0.3 -0.52,-3 -1,-5.94 -1.55,-8.9z" />
|
||||||
|
</group>
|
||||||
|
</vector>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue