diff --git a/.crowdin/config.example.yml b/.crowdin/config.example.yml new file mode 100644 index 00000000..4ef788a3 --- /dev/null +++ b/.crowdin/config.example.yml @@ -0,0 +1,10 @@ +project_id: "372633" +api_token: "" +base_path: "../app/src/main" +base_url: "https://api.crowdin.com" +preserve_hierarchy: true + +files: +- source: "res/values/strings.xml" + dest: "strings.xml" + translation: "res/values-%android_code%/%original_file_name%" diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 4dd0941a..bb4c019b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,4 +1,4 @@ -buy_me_a_coffee: beemdevelopment custom: + - "https://www.buymeacoffee.com/beemdevelopment" - "https://www.blockchain.com/btc/address/bc1q26kyxqjkc6tu477pzy0whagwhs4ypv93qls22n" - "https://nanocrawler.cc/explorer/account/nano_1aegisc559b1x4p3839egnu579jkd4htpidy14eo9e31gzqmwuafypnj4q94" diff --git a/.github/workflows/build-app-workflow.yaml b/.github/workflows/build-app-workflow.yaml index ab511ab7..515b2e04 100644 --- a/.github/workflows/build-app-workflow.yaml +++ b/.github/workflows/build-app-workflow.yaml @@ -5,37 +5,36 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the code - uses: actions/checkout@v4 + uses: actions/checkout@v3 - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@699bb18358f12c5b78b37bb0111d3a0e2276e0e2 - - uses: actions/setup-java@v4 + uses: gradle/wrapper-validation-action@55e685c48d84285a5b0418cd094606e199cca3b6 + - uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: 'gradle' - name: Build the app run: ./gradlew build - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v3 with: name: apk path: app/build/outputs/apk/debug/app-debug.apk test: - runs-on: ubuntu-latest + runs-on: macos-latest + # This is probably pretty expensive for GitHub, so restrict the repositories that this job runs on + if: github.repository == 'beemdevelopment/Aegis' || github.repository == 'alexbakker/Aegis' steps: - name: Checkout - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 + uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: 'gradle' - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm + - name: Install HAXM + run: brew install --cask intel-haxm - name: Tests - uses: reactivecircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d + uses: reactivecircus/android-emulator-runner@50986b1464923454c95e261820bc626f38490ec0 with: api-level: 31 arch: x86_64 @@ -53,8 +52,8 @@ jobs: adb logcat -d > artifacts/logcat.txt cp -r app/build/reports/androidTests/connected/* artifacts/report/ if adb shell '[ -e /sdcard/Pictures/screenshots ]'; then adb pull /sdcard/Pictures/screenshots artifacts/; fi - test ! -f tests_failing - - uses: actions/upload-artifact@v4 + # test ! -f tests_failing + - uses: actions/upload-artifact@v3 if: always() with: name: instrumented-test-report diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index b575535b..0d3d0dc0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -14,10 +14,9 @@ jobs: actions: read contents: read security-events: write - if: github.event_name != 'schedule' || github.repository == 'beemdevelopment/Aegis' steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v3 - name: Exclude paths # The importers are excluded from analysis, because some of the apps Aegis # can import from don't have such great crypto, which will cause false @@ -25,18 +24,18 @@ jobs: run: | find app/src/main/java/com/beemdevelopment/aegis/importers ! \( -name AegisImporter.java -o -name "DatabaseImporter*" \) -type f -exec rm -f {} + sed -i '/Importer.class/d' app/src/main/java/com/beemdevelopment/aegis/importers/DatabaseImporter.java - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: 'gradle' - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v2 with: languages: java - name: Build run: ./gradlew assembleDebug - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v2 with: category: "/language:${{matrix.language}}" diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index e7898362..6b9cb779 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -10,16 +10,22 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'beemdevelopment/Aegis' steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Install crowdin-cli run: | - wget https://github.com/crowdin/crowdin-cli/releases/download/4.6.1/crowdin-cli.zip - echo "7afd70de3a747ac631a5bad7866008163ae1d50c4606b5773f0b90a5481ffde2 crowdin-cli.zip" | sha256sum -c + wget https://github.com/crowdin/crowdin-cli/releases/download/3.7.2/crowdin-cli.zip + echo "ee9f838b819ccedc33c9b2537055e5ba7d7934561b24df1e1a6274cbd6e27f2d crowdin-cli.zip" | sha256sum -c unzip crowdin-cli.zip -d crowdin-cli - name: Upload to Crowdin env: - CROWDIN_PERSONAL_TOKEN: "${{ secrets.CROWDIN_TOKEN }}" + CROWDIN_TOKEN: "${{ secrets.CROWDIN_TOKEN }}" run: | - java -jar ./crowdin-cli/4.6.1/crowdin-cli.jar upload sources \ + java -jar ./crowdin-cli/3.7.2/crowdin-cli.jar upload sources \ --no-progress \ + --token "$CROWDIN_TOKEN" \ + --project-id 372633 \ + --base-path app/src/main \ + --source res/values/strings.xml \ + --translation "res/values-%android_code%/%original_file_name%" \ + --dest strings.xml \ --branch master diff --git a/FAQ.md b/FAQ.md index 6d514574..815490aa 100644 --- a/FAQ.md +++ b/FAQ.md @@ -86,14 +86,6 @@ Another common setup is to configure Aegis to back up to a folder on local storage of your device and then have a separate app (like [Syncthing](https://syncthing.net/)) sync that folder anywhere you want. -## Encrypted Backups - -### Why do I not get prompted to enter an encryption password when exporting? - -Aegis uses the same password you have configured to encrypt your vault as the -password which is used when exporting and importing your vault; so when prompted, -you will enter that when importing your vault. - ## Importing ### When importing from Authenticator Plus, an error is shown claiming that Accounts.txt is missing diff --git a/README.md b/README.md index 195bd4ed..382a3c59 100644 --- a/README.md +++ b/README.md @@ -123,33 +123,20 @@ documentation](docs/iconpacks.md). Unofficial monochrome-styled 2FA icons. [aegis-icons preview](https://github.com/aegis-icons/aegis-icons) + src="https://raw.githubusercontent.com/aegis-icons/aegis-icons/master/showcase.png">](https://github.com/aegis-icons/aegis-icons) -- [delta-aegis-icons](https://github.com/Delta-Icons/aegis-icons) - - Delta version of the unofficial monochrome-styled 2FA icon pack aegis-icons. - - [delta-icons preview](https://github.com/Delta-Icons/aegis-icons) - -- [aegis-simple-icons](https://github.com/alexbakker/aegis-simple-icons) \* +- [aegis-simple-icons](https://github.com/alexbakker/aegis-simple-icons) * This project periodically generates an icon pack for Aegis based on [Simple Icons](https://simpleicons.org/). - [aegis-simple-icons preview](https://github.com/alexbakker/aegis-simple-icons) - -- [aegis-simple-icons-outlined](https://github.com/michaelschattgen/aegis-simple-icons-outlined) \* +- [aegis-simple-icons-outlined](https://github.com/michaelschattgen/aegis-simple-icons-outlined) * This is a variant on the aegis-simple-icons pack where the icons contain no solid background and just the outlines are being used. - - [aegis-simple-icons-outlined preview](https://github.com/michaelschattgen/aegis-simple-icons-outlined) - + \* The icons are automatically generated, so -not all of them are as high quality as the ones you'll find in -[aegis-icons](https://github.com/aegis-icons/aegis-icons). + not all of them are as high quality as the ones you'll find in + [aegis-icons](https://github.com/aegis-icons/aegis-icons). ## Contributing @@ -164,9 +151,3 @@ Swing by our Matrix room to interact with other contributors: This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details. - -A couple of libraries vendored in Aegis' repository are licensed under a -different license: - -- [TextDrawable](app/src/main/java/com/amulyakhare/textdrawable) -- [TrustedIntents](app/src/main/java/info/guardianproject/trustedintents) diff --git a/app/build.gradle b/app/build.gradle index 43512d69..3faacee6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'com.google.protobuf' apply plugin: 'dagger.hilt.android.plugin' -apply plugin: 'com.mikepenz.aboutlibraries.plugin' def getCmdOutput = { cmd -> def stdout = new ByteArrayOutputStream() @@ -20,27 +19,21 @@ def fileProviderAuthority = "${packageName}.fileprovider" def fileProviderAuthorityDebug = "${packageName}.debug.fileprovider" android { - compileSdk 35 + compileSdk 33 namespace packageName defaultConfig { applicationId "${packageName}" - minSdkVersion 23 - targetSdkVersion 35 - versionCode 79 - versionName "3.4" + minSdkVersion 21 + targetSdkVersion 33 + versionCode 60 + versionName "2.2" multiDexEnabled true buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\"" buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\"" buildConfigField "java.util.concurrent.atomic.AtomicBoolean", "TEST", "new java.util.concurrent.atomic.AtomicBoolean(false)" - javaCompileOptions { - annotationProcessorOptions { - arguments = ["room.schemaLocation": "$projectDir/schemas"] - } - } - testInstrumentationRunner "com.beemdevelopment.aegis.AegisTestRunner" testInstrumentationRunnerArguments clearPackageData: 'true' } @@ -93,41 +86,28 @@ android { } } - // Required to make the APK reproducible - aaptOptions { - cruncherEnabled = false - } - defaultConfig { - vectorDrawables.generatedDensities = [] - } - packagingOptions { // R8 doesn't remove these resources, so exclude them manually. This reduces APK size by 4MB. resources { - excludes += [ - '/org/bouncycastle/pqc/**/*.properties', - 'META-INF/versions/9/OSGI-INF/MANIFEST.MF' - ] + excludes += ['/org/bouncycastle/pqc/**/*.properties'] } } compileOptions { - targetCompatibility JavaVersion.VERSION_17 - sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility 1.8 + sourceCompatibility 1.8 coreLibraryDesugaringEnabled true } lint { abortOnError true checkDependencies true - } - buildFeatures { - buildConfig true + disable 'MissingQuantity', 'MissingTranslation' } } protobuf { protoc { - artifact = 'com.google.protobuf:protoc:3.25.1' + artifact = 'com.google.protobuf:protoc:3.8.0' } generateProtoTasks { all().each { task -> @@ -140,46 +120,37 @@ protobuf { } } -aboutLibraries { - // Tasks for aboutLibraries are not run automatically to keep the build reproducible - // To update manually: ./gradlew app:exportLibraryDefinitions -PaboutLibraries.exportPath=src/main/res/raw - prettyPrint = true - configPath = "app/config" - fetchRemoteFunding = false - registerAndroidTasks = false - exclusionPatterns = [~"javax.annotation.*"] - duplicationMode = com.mikepenz.aboutlibraries.plugin.DuplicateMode.MERGE -} - dependencies { - def cameraxVersion = '1.4.2' + def cameraxVersion = '1.2.3' def glideVersion = '4.16.0' - def guavaVersion = '33.4.8' - def hiltVersion = '2.56.2' + def guavaVersion = '32.1.2' + def hiltVersion = '2.47' def junitVersion = '4.13.2' - def libsuVersion = '6.0.0' - def roomVersion = '2.7.1' + def libsuVersion = '5.2.0' - annotationProcessor 'androidx.annotation:annotation:1.9.1' - annotationProcessor "androidx.room:room-compiler:$roomVersion" + annotationProcessor 'androidx.annotation:annotation:1.6.0' annotationProcessor "com.google.dagger:hilt-compiler:$hiltVersion" annotationProcessor "com.github.bumptech.glide:compiler:${glideVersion}" + // Ridiculous fix for a bunch of "Duplicate class" build errors: + implementation (platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) + implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.activity:activity:1.10.1' - implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.activity:activity:1.7.2' + implementation 'androidx.appcompat:appcompat:1.6.1' implementation "androidx.biometric:biometric:1.1.0" implementation "androidx.camera:camera-camera2:$cameraxVersion" implementation "androidx.camera:camera-lifecycle:$cameraxVersion" - implementation "androidx.camera:camera-view:$cameraxVersion" - implementation 'androidx.core:core:1.16.0' - implementation 'androidx.constraintlayout:constraintlayout:2.2.1' - implementation 'androidx.documentfile:documentfile:1.1.0' - implementation 'androidx.lifecycle:lifecycle-process:2.9.0' + implementation 'androidx.camera:camera-view:1.2.3' + implementation 'androidx.cardview:cardview:1.0.0' + implementation "androidx.core:core:1.10.1" + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.documentfile:documentfile:1.0.1' + implementation "androidx.lifecycle:lifecycle-process:2.6.1" implementation "androidx.preference:preference:1.2.1" - implementation 'androidx.recyclerview:recyclerview:1.4.0' - implementation "androidx.room:room-runtime:$roomVersion" - implementation 'androidx.viewpager2:viewpager2:1.1.0' + implementation 'androidx.recyclerview:recyclerview:1.3.1' + implementation "androidx.viewpager2:viewpager2:1.0.0" + implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.caverock:androidsvg-aar:1.4' implementation "com.google.dagger:hilt-android:$hiltVersion" implementation 'com.github.avito-tech:krop:0.52' @@ -191,35 +162,36 @@ dependencies { implementation "com.github.topjohnwu.libsu:core:${libsuVersion}" implementation "com.github.topjohnwu.libsu:io:${libsuVersion}" implementation "com.google.guava:guava:${guavaVersion}-android" - implementation 'com.google.android.material:material:1.12.0' - implementation 'com.google.protobuf:protobuf-javalite:4.31.0' - implementation 'com.google.zxing:core:3.5.3' - implementation('com.mikepenz:aboutlibraries:11.2.3') { - exclude group: 'com.mikepenz', module: 'aboutlibraries-core' - } - implementation 'com.mikepenz:aboutlibraries-core-android:11.2.3' - implementation 'com.nulab-inc:zxcvbn:1.9.0' + implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.protobuf:protobuf-javalite:3.22.0' + implementation 'com.google.zxing:core:3.5.2' + implementation "com.mikepenz:iconics-core:3.2.5" + implementation 'com.mikepenz:material-design-iconic-typeface:2.2.0.5@aar' + implementation 'com.nulab-inc:zxcvbn:1.8.2' + implementation 'de.hdodenhof:circleimageview:3.1.0' + implementation 'de.psdev.licensesdialog:licensesdialog:2.2.0' implementation 'net.lingala.zip4j:zip4j:2.11.5' - implementation 'org.bouncycastle:bcprov-jdk18on:1.80' - implementation 'org.simpleflatmapper:sfm-csv:8.2.3' + implementation 'info.guardianproject.trustedintents:trustedintents:0.2' + implementation 'org.bouncycastle:bcprov-jdk18on:1.76' + implementation "org.simpleflatmapper:sfm-csv:8.2.3" androidTestAnnotationProcessor "com.google.dagger:hilt-android-compiler:$hiltVersion" androidTestImplementation "com.google.dagger:hilt-android-testing:$hiltVersion" - androidTestImplementation 'androidx.test:core:1.6.1' - androidTestImplementation 'androidx.test:runner:1.6.2' - androidTestImplementation 'androidx.test:rules:1.6.1' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' - androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.6.1' - androidTestImplementation 'androidx.test.espresso:espresso-intents:3.6.1' + androidTestImplementation 'androidx.test:core:1.5.0' + androidTestImplementation 'androidx.test:runner:1.5.2' + androidTestImplementation 'androidx.test:rules:1.5.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.1' + androidTestImplementation 'androidx.test.espresso:espresso-intents:3.5.1' androidTestImplementation "junit:junit:${junitVersion}" - androidTestUtil 'androidx.test:orchestrator:1.5.1' + androidTestUtil 'androidx.test:orchestrator:1.4.2' - testImplementation 'androidx.test:core:1.6.1' + testImplementation 'androidx.test:core:1.5.0' testImplementation "com.google.guava:guava:${guavaVersion}-jre" testImplementation "junit:junit:${junitVersion}" - testImplementation 'org.json:json:20250517' - testImplementation 'org.robolectric:robolectric:4.14.1' + testImplementation 'org.json:json:20230618' + testImplementation 'org.robolectric:robolectric:4.10.3' - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3' } diff --git a/app/config/libraries/krop.json b/app/config/libraries/krop.json deleted file mode 100644 index 72731ef0..00000000 --- a/app/config/libraries/krop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uniqueId": "com.github.avito-tech:krop", - "licenses": [ - "MIT" - ] -} \ No newline at end of file diff --git a/app/config/libraries/libsu.json b/app/config/libraries/libsu.json deleted file mode 100644 index 3ec91d89..00000000 --- a/app/config/libraries/libsu.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uniqueId": "com.github.topjohnwu.libsu:.*::regex", - "licenses": [ - "Apache-2.0" - ] -} \ No newline at end of file diff --git a/app/config/libraries/textdrawable.json b/app/config/libraries/textdrawable.json deleted file mode 100644 index 528a6354..00000000 --- a/app/config/libraries/textdrawable.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "uniqueId": "com.amulyakhare:com.amulyakhare.textdrawable", - "funding": [ - - ], - "developers": [ - - ], - "artifactVersion": "1.0.1", - "description": "This light-weight library provides images with letter/text like the Gmail app. It extends the Drawable class thus can be used with existing/custom/network ImageView classes. Also included is a fluent interface for creating drawables and a customizable ColorGenerator.", - "name": "textdrawable", - "licenses": [ - "MIT" - ] -} \ No newline at end of file diff --git a/app/config/libraries/trustedintents.json b/app/config/libraries/trustedintents.json deleted file mode 100644 index 5ba89066..00000000 --- a/app/config/libraries/trustedintents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "uniqueId": "info.guardianproject.trustedintents:trustedintents", - "funding": [ - - ], - "developers": [ - { - "name": "Guardian Project" - } - ], - "artifactVersion": "0.2", - "description": "TrustedIntents is a library for flexible trusted interactions between Android apps. It is modeled after Android's `signature` protection level for permissions. The key difference is that the framework allows the trusted signature to be set, rather than requiring to match the current app's signature.", - "scm": { - "connection": "scm:https://github.com/guardianproject/TrustedIntents.git", - "url": "scm:https://github.com/guardianproject/TrustedIntents", - "developerConnection": "scm:git@github.com:guardianproject/TrustedIntents.git" - }, - "name": "TrustedIntents", - "website": "https://guardianproject.info/code/trustedintents", - "licenses": [ - "3ca920d1875f7ad7ab04a2a331958577" - ] -} \ No newline at end of file diff --git a/app/config/licenses/3ca920d1875f7ad7ab04a2a331958577.json b/app/config/licenses/3ca920d1875f7ad7ab04a2a331958577.json deleted file mode 100644 index 2f0d7c2a..00000000 --- a/app/config/licenses/3ca920d1875f7ad7ab04a2a331958577.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "hash": "3ca920d1875f7ad7ab04a2a331958577", - "url": "https://github.com/guardianproject/TrustedIntents/blob/master/LICENSE.txt", - "name": "LGPLv2.1" -} \ No newline at end of file diff --git a/app/lint.xml b/app/lint.xml index f9f30d6e..4cdb0450 100644 --- a/app/lint.xml +++ b/app/lint.xml @@ -1,15 +1,10 @@ - - - - - - + diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f0789326..a8103102 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,10 +1,7 @@ --keepattributes LineNumberTable,SourceFile --renamesourcefileattribute SourceFile --dontobfuscate - -keepclasseswithmembers public class androidx.recyclerview.widget.RecyclerView { *; } -keep class com.beemdevelopment.aegis.ui.fragments.preferences.* -keep class com.beemdevelopment.aegis.importers.** { *; } -keep class * extends com.google.protobuf.GeneratedMessageLite { *; } +-dontobfuscate -dontwarn javax.naming.** diff --git a/app/schemas/com.beemdevelopment.aegis.database.AppDatabase/1.json b/app/schemas/com.beemdevelopment.aegis.database.AppDatabase/1.json deleted file mode 100644 index 811e430c..00000000 --- a/app/schemas/com.beemdevelopment.aegis.database.AppDatabase/1.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "formatVersion": 1, - "database": { - "version": 1, - "identityHash": "392278bdb797d013cb2ada67a3b1cc60", - "entities": [ - { - "tableName": "audit_logs", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT NOT NULL, `reference` TEXT, `timestamp` INTEGER NOT NULL)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "_eventType", - "columnName": "event_type", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "_reference", - "columnName": "reference", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "_timestamp", - "columnName": "timestamp", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "autoGenerate": true, - "columnNames": [ - "id" - ] - }, - "indices": [], - "foreignKeys": [] - } - ], - "views": [], - "setupQueries": [ - "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '392278bdb797d013cb2ada67a3b1cc60')" - ] - } -} \ No newline at end of file diff --git a/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTest.java b/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTest.java index a7322c3c..001facd6 100644 --- a/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTest.java +++ b/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTest.java @@ -2,19 +2,15 @@ package com.beemdevelopment.aegis; import android.view.View; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; import androidx.test.espresso.UiController; import androidx.test.espresso.ViewAction; -import androidx.test.espresso.matcher.BoundedMatcher; import androidx.test.platform.app.InstrumentationRegistry; import androidx.test.rule.GrantPermissionRule; import com.beemdevelopment.aegis.crypto.CryptoUtils; import com.beemdevelopment.aegis.crypto.SCryptParameters; import com.beemdevelopment.aegis.otp.OtpInfo; -import com.beemdevelopment.aegis.ui.views.EntryHolder; import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultFileCredentials; import com.beemdevelopment.aegis.vault.VaultManager; @@ -24,7 +20,6 @@ import com.beemdevelopment.aegis.vault.slots.PasswordSlot; import com.beemdevelopment.aegis.vault.slots.SlotException; import com.beemdevelopment.aegis.vectors.VaultEntries; -import org.hamcrest.Description; import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Rule; @@ -183,21 +178,4 @@ public abstract class AegisTest { } }; } - - @NonNull - protected static Matcher withOtpType(Class otpClass) { - return new BoundedMatcher(EntryHolder.class) { - @Override - public boolean matchesSafely(EntryHolder holder) { - return holder != null - && holder.getEntry() != null - && holder.getEntry().getInfo().getClass().equals(otpClass); - } - - @Override - public void describeTo(Description description) { - description.appendText(String.format("with otp type '%s'", otpClass.getSimpleName())); - } - }; - } } diff --git a/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTestRunner.java b/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTestRunner.java index 970f9ff0..44c06845 100644 --- a/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTestRunner.java +++ b/app/src/androidTest/java/com/beemdevelopment/aegis/AegisTestRunner.java @@ -3,8 +3,8 @@ package com.beemdevelopment.aegis; import android.app.Application; import android.app.Instrumentation; import android.content.Context; +import android.preference.PreferenceManager; -import androidx.preference.PreferenceManager; import androidx.test.core.app.ApplicationProvider; import androidx.test.runner.AndroidJUnitRunner; diff --git a/app/src/androidTest/java/com/beemdevelopment/aegis/BackupExportTest.java b/app/src/androidTest/java/com/beemdevelopment/aegis/BackupExportTest.java index e0151395..9f15019b 100644 --- a/app/src/androidTest/java/com/beemdevelopment/aegis/BackupExportTest.java +++ b/app/src/androidTest/java/com/beemdevelopment/aegis/BackupExportTest.java @@ -61,20 +61,13 @@ import org.junit.Test; import org.junit.rules.RuleChain; import org.junit.rules.TestRule; import org.junit.runner.RunWith; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.List; -import java.util.Locale; import javax.crypto.Cipher; import javax.crypto.SecretKey; @@ -190,9 +183,7 @@ public class BackupExportTest extends AegisTest { onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); onView(withId(android.R.id.button1)).perform(click()); onView(withId(R.id.checkbox_accept)).perform(click()); - File file = doExport(); - - checkHtmlExport(file); + doExport(); } @Test @@ -205,9 +196,7 @@ public class BackupExportTest extends AegisTest { onView(withText(R.string.export_format_html)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); onView(withId(android.R.id.button1)).perform(click()); onView(withId(R.id.checkbox_accept)).perform(click()); - File file = doExport(); - - checkHtmlExport(file); + doExport(); } @Test @@ -391,26 +380,6 @@ public class BackupExportTest extends AegisTest { checkReadEntries(entries); } - private void checkHtmlExport(File file) { - try (InputStream inStream = new FileInputStream(file)) { - Reader inReader = new InputStreamReader(inStream, StandardCharsets.UTF_8); - XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); - XmlPullParser parser = factory.newPullParser(); - parser.setInput(inReader); - while (parser.getEventType() != XmlPullParser.START_TAG) { - parser.next(); - } - if (!parser.getName().toLowerCase(Locale.ROOT).equals("html")) { - throw new RuntimeException("not an html document!"); - } - while (parser.getEventType() != XmlPullParser.END_DOCUMENT) { - parser.next(); - } - } catch (IOException | XmlPullParserException e) { - throw new RuntimeException("Unable to read html export file", e); - } - } - private void checkReadEntries(Collection entries) { List vectors = VaultEntries.get(); assertEquals(vectors.size(), entries.size()); diff --git a/app/src/androidTest/java/com/beemdevelopment/aegis/OverallTest.java b/app/src/androidTest/java/com/beemdevelopment/aegis/OverallTest.java index 016eb5c6..643adb49 100644 --- a/app/src/androidTest/java/com/beemdevelopment/aegis/OverallTest.java +++ b/app/src/androidTest/java/com/beemdevelopment/aegis/OverallTest.java @@ -1,13 +1,13 @@ package com.beemdevelopment.aegis; import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; import static androidx.test.espresso.Espresso.openContextualActionModeOverflowMenu; import static androidx.test.espresso.action.ViewActions.clearText; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.action.ViewActions.closeSoftKeyboard; import static androidx.test.espresso.action.ViewActions.longClick; import static androidx.test.espresso.action.ViewActions.pressBack; -import static androidx.test.espresso.action.ViewActions.scrollTo; import static androidx.test.espresso.action.ViewActions.typeText; import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; @@ -18,17 +18,19 @@ import static androidx.test.espresso.matcher.ViewMatchers.withText; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; + import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.containsString; import androidx.annotation.IdRes; -import androidx.recyclerview.widget.RecyclerView; +import androidx.test.core.app.ApplicationProvider; import androidx.test.espresso.ViewInteraction; import androidx.test.espresso.contrib.RecyclerViewActions; import androidx.test.espresso.matcher.RootMatchers; import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; import com.beemdevelopment.aegis.encoding.Base32; import com.beemdevelopment.aegis.encoding.Hex; @@ -39,7 +41,6 @@ import com.beemdevelopment.aegis.otp.TotpInfo; import com.beemdevelopment.aegis.otp.YandexInfo; import com.beemdevelopment.aegis.rules.ScreenshotTestRule; import com.beemdevelopment.aegis.ui.MainActivity; -import com.beemdevelopment.aegis.ui.views.EntryAdapter; import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultRepository; import com.beemdevelopment.aegis.vault.slots.PasswordSlot; @@ -54,7 +55,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; -import java.util.concurrent.atomic.AtomicBoolean; import dagger.hilt.android.testing.HiltAndroidTest; @@ -104,26 +104,19 @@ public class OverallTest extends AegisTest { } for (int i = 0; i < 10; i++) { - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnHolderItem(withOtpType(HotpInfo.class), clickChildViewWithId(R.id.buttonRefresh))); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(1, clickChildViewWithId(R.id.buttonRefresh))); } - AtomicBoolean isErrorCardShown = new AtomicBoolean(false); - _activityRule.getScenario().onActivity(activity -> { - isErrorCardShown.set(((EntryAdapter)((RecyclerView) activity.findViewById(R.id.rvKeyProfiles)).getAdapter()).isErrorCardShown()); - }); - - int entryPosOffset = isErrorCardShown.get() ? 1 : 0; - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 0, longClick())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(0, longClick())); onView(withId(R.id.action_copy)).perform(click()); - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 1, longClick())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(1, longClick())); onView(withId(R.id.action_edit)).perform(click()); onView(withId(R.id.text_name)).perform(clearText(), typeText("Bob"), closeSoftKeyboard()); - onView(withId(R.id.text_group)).perform(click()); - onView(withId(R.id.addGroup)).inRoot(RootMatchers.isDialog()).perform(click()); + onView(withId(R.id.dropdown_group)).perform(click()); + onView(withText(R.string.new_group)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); onView(withId(R.id.text_input)).perform(typeText(_groupName), closeSoftKeyboard()); onView(withId(android.R.id.button1)).perform(click()); - onView(withText(R.string.save)).perform(click()); onView(isRoot()).perform(pressBack()); onView(withId(android.R.id.button1)).perform(click()); @@ -136,13 +129,13 @@ public class OverallTest extends AegisTest { changeGroupFilter(_groupName); changeGroupFilter(null); - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 2, longClick())); - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 3, click())); - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 4, click())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(2, longClick())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(3, click())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(4, click())); onView(withId(R.id.action_share_qr)).perform(click()); onView(withId(R.id.btnNext)).perform(click()).perform(click()).perform(click()); - onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(entryPosOffset + 0, longClick())); + onView(withId(R.id.rvKeyProfiles)).perform(RecyclerViewActions.actionOnItemAtPosition(0, longClick())); onView(allOf(isDescendantOfA(withClassName(containsString("ActionBarContextView"))), withClassName(containsString("OverflowMenuButton")))).perform(click()); onView(withText(R.string.action_delete)).perform(click()); onView(withId(android.R.id.button1)).perform(click()); @@ -177,10 +170,12 @@ public class OverallTest extends AegisTest { } private void changeGroupFilter(String text) { + onView(withId(R.id.chip_group)).perform(click()); if (text == null) { - onView(allOf(withText(R.string.no_group), isDescendantOfA(withId(R.id.groupChipGroup)))).perform(click()); + onView(withId(R.id.btnClear)).perform(click()); } else { - onView(allOf(withText(text), isDescendantOfA(withId(R.id.groupChipGroup)))).perform(click()); + onView(withText(text)).perform(click()); + onView(isRoot()).perform(pressBack()); } } @@ -188,7 +183,7 @@ public class OverallTest extends AegisTest { onView(withId(R.id.fab)).perform(click()); onView(withId(R.id.fab_enter)).perform(click()); - onView(withId(R.id.accordian_header)).perform(scrollTo(), click()); + onView(withId(R.id.accordian_header)).perform(click()); onView(withId(R.id.text_name)).perform(typeText(entry.getName()), closeSoftKeyboard()); onView(withId(R.id.text_issuer)).perform(typeText(entry.getIssuer()), closeSoftKeyboard()); @@ -208,7 +203,7 @@ public class OverallTest extends AegisTest { throw new RuntimeException(String.format("Unexpected entry type: %s", entry.getInfo().getClass().getSimpleName())); } - onView(withId(R.id.dropdown_type)).perform(scrollTo(), click()); + onView(withId(R.id.dropdown_type)).perform(click()); onView(withText(otpType)).inRoot(RootMatchers.isPlatformPopup()).perform(click()); } diff --git a/app/src/androidTest/java/com/beemdevelopment/aegis/PanicTriggerTest.java b/app/src/androidTest/java/com/beemdevelopment/aegis/PanicTriggerTest.java index 39feca57..4a16356c 100644 --- a/app/src/androidTest/java/com/beemdevelopment/aegis/PanicTriggerTest.java +++ b/app/src/androidTest/java/com/beemdevelopment/aegis/PanicTriggerTest.java @@ -1,6 +1,7 @@ package com.beemdevelopment.aegis; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; @@ -31,10 +32,11 @@ public class PanicTriggerTest extends AegisTest { @Test public void testPanicTriggerDisabled() { assertFalse(_prefs.isPanicTriggerEnabled()); - assertTrue(_vaultManager.isVaultLoaded()); launchPanic(); assertTrue(_vaultManager.isVaultLoaded()); _vaultManager.getVault(); + assertFalse(_vaultManager.isVaultFileLoaded()); + assertNull(_vaultManager.getVaultFileError()); assertTrue(VaultRepository.fileExists(getApp())); } @@ -42,10 +44,11 @@ public class PanicTriggerTest extends AegisTest { public void testPanicTriggerEnabled() { _prefs.setIsPanicTriggerEnabled(true); assertTrue(_prefs.isPanicTriggerEnabled()); - assertTrue(_vaultManager.isVaultLoaded()); launchPanic(); assertFalse(_vaultManager.isVaultLoaded()); assertThrows(IllegalStateException.class, () -> _vaultManager.getVault()); + assertFalse(_vaultManager.isVaultFileLoaded()); + assertNull(_vaultManager.getVaultFileError()); assertFalse(VaultRepository.fileExists(getApp())); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 09337184..724e935c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,7 +4,6 @@ - + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/disabled_textview_colors.xml b/app/src/main/res/color/disabled_textview_colors.xml new file mode 100644 index 00000000..adbd5b7e --- /dev/null +++ b/app/src/main/res/color/disabled_textview_colors.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/text_input_box_icon_dark.xml b/app/src/main/res/color/text_input_box_icon_dark.xml new file mode 100644 index 00000000..be0cce59 --- /dev/null +++ b/app/src/main/res/color/text_input_box_icon_dark.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/text_input_box_stroke_dark.xml b/app/src/main/res/color/text_input_box_stroke_dark.xml new file mode 100644 index 00000000..378a7381 --- /dev/null +++ b/app/src/main/res/color/text_input_box_stroke_dark.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-anydpi/ic_action_sort.xml b/app/src/main/res/drawable-anydpi/ic_action_sort.xml new file mode 100644 index 00000000..ef66d1c4 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_action_sort.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable-anydpi/ic_set_favorite.xml b/app/src/main/res/drawable-anydpi/ic_set_favorite.xml new file mode 100644 index 00000000..13942be1 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_set_favorite.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable-anydpi/ic_unset_favorite.xml b/app/src/main/res/drawable-anydpi/ic_unset_favorite.xml new file mode 100644 index 00000000..7752b92f --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_unset_favorite.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable-hdpi/ic_action_sort.png b/app/src/main/res/drawable-hdpi/ic_action_sort.png new file mode 100644 index 00000000..fe9573f4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_sort.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_sort.png b/app/src/main/res/drawable-mdpi/ic_action_sort.png new file mode 100644 index 00000000..a9588ed3 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_sort.png differ diff --git a/app/src/main/res/drawable-v24/ic_launcher_background.xml b/app/src/main/res/drawable-v24/ic_launcher_background.xml new file mode 100644 index 00000000..fd4e36ba --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_background.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/rounded_dialog.xml b/app/src/main/res/drawable-v24/rounded_dialog.xml new file mode 100644 index 00000000..bd708710 --- /dev/null +++ b/app/src/main/res/drawable-v24/rounded_dialog.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/drawable-xhdpi/ic_action_sort.png b/app/src/main/res/drawable-xhdpi/ic_action_sort.png new file mode 100644 index 00000000..2184723d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_sort.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_sort.png b/app/src/main/res/drawable-xxhdpi/ic_action_sort.png new file mode 100644 index 00000000..ca1da315 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_sort.png differ diff --git a/app/src/main/res/drawable/favorite_indicator.xml b/app/src/main/res/drawable/button_rounded_corners.xml similarity index 52% rename from app/src/main/res/drawable/favorite_indicator.xml rename to app/src/main/res/drawable/button_rounded_corners.xml index ae283bcd..20b385ab 100644 --- a/app/src/main/res/drawable/favorite_indicator.xml +++ b/app/src/main/res/drawable/button_rounded_corners.xml @@ -2,8 +2,9 @@ - - + + + diff --git a/app/src/main/res/drawable/circular_button_background.xml b/app/src/main/res/drawable/circular_button_background.xml new file mode 100644 index 00000000..dd746464 --- /dev/null +++ b/app/src/main/res/drawable/circular_button_background.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/drawable/circular_button_done.xml b/app/src/main/res/drawable/circular_button_done.xml new file mode 100644 index 00000000..9b2563eb --- /dev/null +++ b/app/src/main/res/drawable/circular_button_done.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/drawable/circular_button_next.xml b/app/src/main/res/drawable/circular_button_next.xml new file mode 100644 index 00000000..36065dc7 --- /dev/null +++ b/app/src/main/res/drawable/circular_button_next.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/drawable/circular_button_prev.xml b/app/src/main/res/drawable/circular_button_prev.xml new file mode 100644 index 00000000..4fc70293 --- /dev/null +++ b/app/src/main/res/drawable/circular_button_prev.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/drawable/drag_handle.xml b/app/src/main/res/drawable/drag_handle.xml new file mode 100644 index 00000000..2a8df473 --- /dev/null +++ b/app/src/main/res/drawable/drag_handle.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/fab_label_background.xml b/app/src/main/res/drawable/fab_label_background.xml new file mode 100644 index 00000000..908cf84a --- /dev/null +++ b/app/src/main/res/drawable/fab_label_background.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_add_black_24dp.xml b/app/src/main/res/drawable/ic_add_black_24dp.xml new file mode 100644 index 00000000..0258249c --- /dev/null +++ b/app/src/main/res/drawable/ic_add_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_add_photo_24px.xml b/app/src/main/res/drawable/ic_add_photo_24px.xml new file mode 100644 index 00000000..f7f4a1ea --- /dev/null +++ b/app/src/main/res/drawable/ic_add_photo_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/baseline_arrow_right_24.xml b/app/src/main/res/drawable/ic_alert_black_24dp.xml similarity index 50% rename from app/src/main/res/drawable/baseline_arrow_right_24.xml rename to app/src/main/res/drawable/ic_alert_black_24dp.xml index 0c739cb2..6ed4cfd7 100644 --- a/app/src/main/res/drawable/baseline_arrow_right_24.xml +++ b/app/src/main/res/drawable/ic_alert_black_24dp.xml @@ -1,11 +1,8 @@ + - + diff --git a/app/src/main/res/drawable/ic_android.xml b/app/src/main/res/drawable/ic_android.xml new file mode 100644 index 00000000..af157bd9 --- /dev/null +++ b/app/src/main/res/drawable/ic_android.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_left_black_24dp.xml b/app/src/main/res/drawable/ic_arrow_left_black_24dp.xml new file mode 100644 index 00000000..aff49cb5 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_left_black_24dp.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_right_black_24dp.xml b/app/src/main/res/drawable/ic_arrow_right_black_24dp.xml new file mode 100644 index 00000000..461a6018 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_right_black_24dp.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_baseline_fiber_pin_24.xml b/app/src/main/res/drawable/ic_baseline_fiber_pin_24.xml new file mode 100644 index 00000000..957a249f --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_fiber_pin_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_filter_list_24dp.xml b/app/src/main/res/drawable/ic_baseline_filter_list_24dp.xml new file mode 100644 index 00000000..997895c9 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_filter_list_24dp.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/ic_baseline_menu_black_32.xml b/app/src/main/res/drawable/ic_baseline_menu_black_32.xml new file mode 100644 index 00000000..cde3883c --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_menu_black_32.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_notes_black_24.xml b/app/src/main/res/drawable/ic_baseline_notes_black_24.xml new file mode 100644 index 00000000..c1925c7d --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_notes_black_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_brush_black_24dp.xml b/app/src/main/res/drawable/ic_brush_black_24dp.xml new file mode 100644 index 00000000..913e34cf --- /dev/null +++ b/app/src/main/res/drawable/ic_brush_black_24dp.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_camera_front_24dp.xml b/app/src/main/res/drawable/ic_camera_front_24dp.xml new file mode 100644 index 00000000..0f70d89b --- /dev/null +++ b/app/src/main/res/drawable/ic_camera_front_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_camera_rear_24dp.xml b/app/src/main/res/drawable/ic_camera_rear_24dp.xml new file mode 100644 index 00000000..1c9724b0 --- /dev/null +++ b/app/src/main/res/drawable/ic_camera_rear_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_check_black_24dp.xml b/app/src/main/res/drawable/ic_check_black_24dp.xml new file mode 100644 index 00000000..d986bb97 --- /dev/null +++ b/app/src/main/res/drawable/ic_check_black_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_chevron_down_black_24dp.xml b/app/src/main/res/drawable/ic_chevron_down_black_24dp.xml new file mode 100644 index 00000000..73334a0e --- /dev/null +++ b/app/src/main/res/drawable/ic_chevron_down_black_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 00000000..b5c7319f --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_cloud_upload_outline_black_24dp.xml b/app/src/main/res/drawable/ic_cloud_upload_outline_black_24dp.xml new file mode 100644 index 00000000..50f2f687 --- /dev/null +++ b/app/src/main/res/drawable/ic_cloud_upload_outline_black_24dp.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_content_copy_white_24dp.xml b/app/src/main/res/drawable/ic_content_copy_white_24dp.xml new file mode 100644 index 00000000..1e689ac6 --- /dev/null +++ b/app/src/main/res/drawable/ic_content_copy_white_24dp.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/drawable/ic_counter_black_24.xml b/app/src/main/res/drawable/ic_counter_black_24dp.xml similarity index 90% rename from app/src/main/res/drawable/ic_counter_black_24.xml rename to app/src/main/res/drawable/ic_counter_black_24dp.xml index 885620b9..30ac856e 100644 --- a/app/src/main/res/drawable/ic_counter_black_24.xml +++ b/app/src/main/res/drawable/ic_counter_black_24dp.xml @@ -2,7 +2,6 @@ android:height="24dp" android:width="24dp" android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> + android:viewportHeight="24"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_create_black_24dp.xml b/app/src/main/res/drawable/ic_create_black_24dp.xml new file mode 100644 index 00000000..2ab2fb75 --- /dev/null +++ b/app/src/main/res/drawable/ic_create_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_delete_black_24dp.xml b/app/src/main/res/drawable/ic_delete_black_24dp.xml new file mode 100644 index 00000000..39e64d69 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_delete_white.xml b/app/src/main/res/drawable/ic_delete_white.xml new file mode 100644 index 00000000..8bed121a --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_white.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_done_all_black_24dp.xml b/app/src/main/res/drawable/ic_done_all_black_24dp.xml new file mode 100644 index 00000000..dfe4814d --- /dev/null +++ b/app/src/main/res/drawable/ic_done_all_black_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_done_black_24dp.xml b/app/src/main/res/drawable/ic_done_black_24dp.xml new file mode 100644 index 00000000..7affe9ba --- /dev/null +++ b/app/src/main/res/drawable/ic_done_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dots_vertical_black_24dp.xml b/app/src/main/res/drawable/ic_dots_vertical_black_24dp.xml new file mode 100644 index 00000000..9a6a9845 --- /dev/null +++ b/app/src/main/res/drawable/ic_dots_vertical_black_24dp.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_export_notes.xml b/app/src/main/res/drawable/ic_export_notes.xml deleted file mode 100644 index 839aae1d..00000000 --- a/app/src/main/res/drawable/ic_export_notes.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_filled_star_24.xml b/app/src/main/res/drawable/ic_filled_star_24.xml deleted file mode 100644 index 1172be74..00000000 --- a/app/src/main/res/drawable/ic_filled_star_24.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_fingerprint_black_24dp.xml b/app/src/main/res/drawable/ic_fingerprint_black_24dp.xml new file mode 100644 index 00000000..d0f76e34 --- /dev/null +++ b/app/src/main/res/drawable/ic_fingerprint_black_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_folder_zip.xml b/app/src/main/res/drawable/ic_folder_zip.xml deleted file mode 100644 index aab56560..00000000 --- a/app/src/main/res/drawable/ic_folder_zip.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_gesture_tap_24dp.xml b/app/src/main/res/drawable/ic_gesture_tap_24dp.xml new file mode 100644 index 00000000..0bd74d8b --- /dev/null +++ b/app/src/main/res/drawable/ic_gesture_tap_24dp.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_info_outline_black_24dp.xml b/app/src/main/res/drawable/ic_info_outline_black_24dp.xml new file mode 100644 index 00000000..ab95f29e --- /dev/null +++ b/app/src/main/res/drawable/ic_info_outline_black_24dp.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml new file mode 100644 index 00000000..ad33063c --- /dev/null +++ b/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..c7bd21db --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_layers_black_24dp.xml b/app/src/main/res/drawable/ic_layers_black_24dp.xml new file mode 100644 index 00000000..84f5bb50 --- /dev/null +++ b/app/src/main/res/drawable/ic_layers_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_lock.xml b/app/src/main/res/drawable/ic_lock.xml index 96617192..1987c062 100644 --- a/app/src/main/res/drawable/ic_lock.xml +++ b/app/src/main/res/drawable/ic_lock.xml @@ -1,5 +1,5 @@ - - + + + diff --git a/app/src/main/res/drawable/ic_lock_open.xml b/app/src/main/res/drawable/ic_lock_open.xml deleted file mode 100644 index e2cec03e..00000000 --- a/app/src/main/res/drawable/ic_lock_open.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_mode_edit.xml b/app/src/main/res/drawable/ic_mode_edit.xml new file mode 100644 index 00000000..46462b57 --- /dev/null +++ b/app/src/main/res/drawable/ic_mode_edit.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_outline_add_24.xml b/app/src/main/res/drawable/ic_outline_add_24.xml deleted file mode 100644 index 40c23537..00000000 --- a/app/src/main/res/drawable/ic_outline_add_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_add_photo_alternate_24.xml b/app/src/main/res/drawable/ic_outline_add_photo_alternate_24.xml deleted file mode 100644 index 93980c52..00000000 --- a/app/src/main/res/drawable/ic_outline_add_photo_alternate_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_android_24.xml b/app/src/main/res/drawable/ic_outline_android_24.xml deleted file mode 100644 index f2c7005d..00000000 --- a/app/src/main/res/drawable/ic_outline_android_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_arrow_left_alt_24.xml b/app/src/main/res/drawable/ic_outline_arrow_left_alt_24.xml deleted file mode 100644 index 88603a45..00000000 --- a/app/src/main/res/drawable/ic_outline_arrow_left_alt_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_arrow_right_alt_24.xml b/app/src/main/res/drawable/ic_outline_arrow_right_alt_24.xml deleted file mode 100644 index aff8e219..00000000 --- a/app/src/main/res/drawable/ic_outline_arrow_right_alt_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_brush_24.xml b/app/src/main/res/drawable/ic_outline_brush_24.xml deleted file mode 100644 index 4ba51513..00000000 --- a/app/src/main/res/drawable/ic_outline_brush_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_camera_front_24.xml b/app/src/main/res/drawable/ic_outline_camera_front_24.xml deleted file mode 100644 index 2dc5475b..00000000 --- a/app/src/main/res/drawable/ic_outline_camera_front_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_camera_rear_24.xml b/app/src/main/res/drawable/ic_outline_camera_rear_24.xml deleted file mode 100644 index c4e7cb02..00000000 --- a/app/src/main/res/drawable/ic_outline_camera_rear_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_check_24.xml b/app/src/main/res/drawable/ic_outline_check_24.xml deleted file mode 100644 index 034ea238..00000000 --- a/app/src/main/res/drawable/ic_outline_check_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_close_24.xml b/app/src/main/res/drawable/ic_outline_close_24.xml deleted file mode 100644 index fe302f56..00000000 --- a/app/src/main/res/drawable/ic_outline_close_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_cloud_upload_24.xml b/app/src/main/res/drawable/ic_outline_cloud_upload_24.xml deleted file mode 100644 index 87071b00..00000000 --- a/app/src/main/res/drawable/ic_outline_cloud_upload_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_code_24.xml b/app/src/main/res/drawable/ic_outline_code_24.xml deleted file mode 100644 index b1c70298..00000000 --- a/app/src/main/res/drawable/ic_outline_code_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_construction_24.xml b/app/src/main/res/drawable/ic_outline_construction_24.xml deleted file mode 100644 index 2d6a3d3b..00000000 --- a/app/src/main/res/drawable/ic_outline_construction_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_content_copy_24.xml b/app/src/main/res/drawable/ic_outline_content_copy_24.xml deleted file mode 100644 index be8d9ba9..00000000 --- a/app/src/main/res/drawable/ic_outline_content_copy_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_delete_24.xml b/app/src/main/res/drawable/ic_outline_delete_24.xml deleted file mode 100644 index d7de5795..00000000 --- a/app/src/main/res/drawable/ic_outline_delete_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_description_24.xml b/app/src/main/res/drawable/ic_outline_description_24.xml deleted file mode 100644 index 54604506..00000000 --- a/app/src/main/res/drawable/ic_outline_description_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_done_all_24.xml b/app/src/main/res/drawable/ic_outline_done_all_24.xml deleted file mode 100644 index 646f4c5f..00000000 --- a/app/src/main/res/drawable/ic_outline_done_all_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_edit_24.xml b/app/src/main/res/drawable/ic_outline_edit_24.xml deleted file mode 100644 index ce76cb6d..00000000 --- a/app/src/main/res/drawable/ic_outline_edit_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_error_24.xml b/app/src/main/res/drawable/ic_outline_error_24.xml deleted file mode 100644 index 4d0faf6e..00000000 --- a/app/src/main/res/drawable/ic_outline_error_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_expand_more_24.xml b/app/src/main/res/drawable/ic_outline_expand_more_24.xml deleted file mode 100644 index fff246ca..00000000 --- a/app/src/main/res/drawable/ic_outline_expand_more_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_fiber_pin_24.xml b/app/src/main/res/drawable/ic_outline_fiber_pin_24.xml deleted file mode 100644 index 25eb5f1d..00000000 --- a/app/src/main/res/drawable/ic_outline_fiber_pin_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_group_24.xml b/app/src/main/res/drawable/ic_outline_group_24.xml deleted file mode 100644 index 5c60ea3e..00000000 --- a/app/src/main/res/drawable/ic_outline_group_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_history_24.xml b/app/src/main/res/drawable/ic_outline_history_24.xml deleted file mode 100644 index f6a2288f..00000000 --- a/app/src/main/res/drawable/ic_outline_history_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_info_24.xml b/app/src/main/res/drawable/ic_outline_info_24.xml deleted file mode 100644 index 4b939194..00000000 --- a/app/src/main/res/drawable/ic_outline_info_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_key_24.xml b/app/src/main/res/drawable/ic_outline_key_24.xml deleted file mode 100644 index c2890642..00000000 --- a/app/src/main/res/drawable/ic_outline_key_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_layers_24.xml b/app/src/main/res/drawable/ic_outline_layers_24.xml deleted file mode 100644 index 89074479..00000000 --- a/app/src/main/res/drawable/ic_outline_layers_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_lock_24.xml b/app/src/main/res/drawable/ic_outline_lock_24.xml deleted file mode 100644 index cbf45968..00000000 --- a/app/src/main/res/drawable/ic_outline_lock_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_mail_24.xml b/app/src/main/res/drawable/ic_outline_mail_24.xml deleted file mode 100644 index 62da4745..00000000 --- a/app/src/main/res/drawable/ic_outline_mail_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_menu_24.xml b/app/src/main/res/drawable/ic_outline_menu_24.xml deleted file mode 100644 index b33cfc1f..00000000 --- a/app/src/main/res/drawable/ic_outline_menu_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_more_vert_24.xml b/app/src/main/res/drawable/ic_outline_more_vert_24.xml deleted file mode 100644 index 1ff4b01a..00000000 --- a/app/src/main/res/drawable/ic_outline_more_vert_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_notes_24.xml b/app/src/main/res/drawable/ic_outline_notes_24.xml deleted file mode 100644 index 0b9beb2d..00000000 --- a/app/src/main/res/drawable/ic_outline_notes_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_package_variant_24.xml b/app/src/main/res/drawable/ic_outline_package_variant_24.xml deleted file mode 100644 index a87b00d0..00000000 --- a/app/src/main/res/drawable/ic_outline_package_variant_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_outline_person_24.xml b/app/src/main/res/drawable/ic_outline_person_24.xml deleted file mode 100644 index c1a494a4..00000000 --- a/app/src/main/res/drawable/ic_outline_person_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_public_24.xml b/app/src/main/res/drawable/ic_outline_public_24.xml deleted file mode 100644 index 5f047654..00000000 --- a/app/src/main/res/drawable/ic_outline_public_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_qr_code_2_24.xml b/app/src/main/res/drawable/ic_outline_qr_code_2_24.xml deleted file mode 100644 index ba2653ea..00000000 --- a/app/src/main/res/drawable/ic_outline_qr_code_2_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_refresh_24.xml b/app/src/main/res/drawable/ic_outline_refresh_24.xml deleted file mode 100644 index c70bd4e6..00000000 --- a/app/src/main/res/drawable/ic_outline_refresh_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_reset_image_24.xml b/app/src/main/res/drawable/ic_outline_reset_image_24.xml deleted file mode 100644 index 76050c2e..00000000 --- a/app/src/main/res/drawable/ic_outline_reset_image_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_sort_24.xml b/app/src/main/res/drawable/ic_outline_sort_24.xml deleted file mode 100644 index 955f3c64..00000000 --- a/app/src/main/res/drawable/ic_outline_sort_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_star_24.xml b/app/src/main/res/drawable/ic_outline_star_24.xml deleted file mode 100644 index 7757a988..00000000 --- a/app/src/main/res/drawable/ic_outline_star_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_touch_app_24.xml b/app/src/main/res/drawable/ic_outline_touch_app_24.xml deleted file mode 100644 index d9046698..00000000 --- a/app/src/main/res/drawable/ic_outline_touch_app_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_outline_warning_24.xml b/app/src/main/res/drawable/ic_outline_warning_24.xml deleted file mode 100644 index f53029a6..00000000 --- a/app/src/main/res/drawable/ic_outline_warning_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_package_variant_black_24dp.xml b/app/src/main/res/drawable/ic_package_variant_black_24dp.xml new file mode 100644 index 00000000..ee927181 --- /dev/null +++ b/app/src/main/res/drawable/ic_package_variant_black_24dp.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_person_black_24dp.xml b/app/src/main/res/drawable/ic_person_black_24dp.xml new file mode 100644 index 00000000..b2cb337b --- /dev/null +++ b/app/src/main/res/drawable/ic_person_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_plus_black_24dp.xml b/app/src/main/res/drawable/ic_plus_black_24dp.xml new file mode 100644 index 00000000..ddd6dfe6 --- /dev/null +++ b/app/src/main/res/drawable/ic_plus_black_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_qr_code_full.xml b/app/src/main/res/drawable/ic_qr_code_full.xml new file mode 100644 index 00000000..9b5e128f --- /dev/null +++ b/app/src/main/res/drawable/ic_qr_code_full.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_qrcode_scan.xml b/app/src/main/res/drawable/ic_qrcode_scan.xml index 69281097..ee1670e0 100644 --- a/app/src/main/res/drawable/ic_qrcode_scan.xml +++ b/app/src/main/res/drawable/ic_qrcode_scan.xml @@ -1,11 +1,8 @@ - + diff --git a/app/src/main/res/drawable/ic_refresh_black_24dp.xml b/app/src/main/res/drawable/ic_refresh_black_24dp.xml new file mode 100644 index 00000000..5e434f43 --- /dev/null +++ b/app/src/main/res/drawable/ic_refresh_black_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml deleted file mode 100644 index 27610432..00000000 --- a/app/src/main/res/drawable/ic_share.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_tag_24.xml b/app/src/main/res/drawable/ic_tag_24.xml deleted file mode 100644 index 66360540..00000000 --- a/app/src/main/res/drawable/ic_tag_24.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_timeline_24.xml b/app/src/main/res/drawable/ic_timeline_24.xml deleted file mode 100644 index 1657a3a7..00000000 --- a/app/src/main/res/drawable/ic_timeline_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_tools_black_24dp.xml b/app/src/main/res/drawable/ic_tools_black_24dp.xml new file mode 100644 index 00000000..42af86dd --- /dev/null +++ b/app/src/main/res/drawable/ic_tools_black_24dp.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_unselected.xml b/app/src/main/res/drawable/ic_unselected.xml deleted file mode 100644 index 5ea9582f..00000000 --- a/app/src/main/res/drawable/ic_unselected.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_vpn_key_black_24dp.xml b/app/src/main/res/drawable/ic_vpn_key_black_24dp.xml new file mode 100644 index 00000000..2eddd16f --- /dev/null +++ b/app/src/main/res/drawable/ic_vpn_key_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/item_selected.xml b/app/src/main/res/drawable/item_selected.xml index 8e17b320..040cdcbe 100644 --- a/app/src/main/res/drawable/item_selected.xml +++ b/app/src/main/res/drawable/item_selected.xml @@ -9,4 +9,4 @@ > - \ No newline at end of file + diff --git a/app/src/main/res/drawable/progress_horizontal.xml b/app/src/main/res/drawable/progress_horizontal.xml index f6b62766..d4abd09d 100644 --- a/app/src/main/res/drawable/progress_horizontal.xml +++ b/app/src/main/res/drawable/progress_horizontal.xml @@ -1,14 +1,10 @@ - + - - + - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_popup.xml b/app/src/main/res/drawable/rounded_popup.xml deleted file mode 100644 index 1a3e3c4e..00000000 --- a/app/src/main/res/drawable/rounded_popup.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index d4b17d0b..2caa4ad2 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -4,20 +4,19 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" + android:background="?attr/background" tools:context="com.beemdevelopment.aegis.ui.AboutActivity"> - + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_auth.xml b/app/src/main/res/layout/activity_auth.xml index 45e4ae12..6476e9b0 100644 --- a/app/src/main/res/layout/activity_auth.xml +++ b/app/src/main/res/layout/activity_auth.xml @@ -5,14 +5,15 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" - android:fitsSystemWindows="true" tools:context="com.beemdevelopment.aegis.ui.AuthActivity"> + android:textSize="@dimen/auth_leader_text_size" + android:textColor="?attr/authText" /> + app:passwordToggleTint="#949494"> + android:text="@string/unlock" + android:textColor="@color/primary_text_inverted" + android:textStyle="bold" /> @@ -101,11 +109,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center" - android:text="@string/app_name_full" - android:textSize="15sp" - android:textAllCaps="true" android:textStyle="bold" - android:textColor="?attr/colorOnSurfaceDim" - android:paddingVertical="50dp" /> + android:textAllCaps="true" + android:text="@string/app_name_full" + android:paddingVertical="50dp" + android:textColor="@color/divider" /> diff --git a/app/src/main/res/layout/activity_edit_entry.xml b/app/src/main/res/layout/activity_edit_entry.xml index e9f19027..0991bf06 100644 --- a/app/src/main/res/layout/activity_edit_entry.xml +++ b/app/src/main/res/layout/activity_edit_entry.xml @@ -1,280 +1,263 @@ - - + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - - + + android:layout_height="wrap_content" + android:orientation="vertical" + android:descendantFocusability="beforeDescendants" + android:focusableInTouchMode="true"> + + + + + + + + + + + + + - - - - - - - - - - - - - + android:layout_margin="10dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:orientation="horizontal"> - - + + + + + + + + + + + + + + + android:src="@drawable/ic_baseline_notes_black_24" + app:tint="?attr/iconColorPrimary" + android:layout_marginStart="5dp" + android:layout_marginEnd="15dp" + android:layout_gravity="center_vertical"/> + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + @@ -369,8 +352,8 @@ @@ -395,19 +378,8 @@ - - - - - - - + + + + diff --git a/app/src/main/res/layout/activity_groups.xml b/app/src/main/res/layout/activity_groups.xml index c9226446..427d5e4e 100644 --- a/app/src/main/res/layout/activity_groups.xml +++ b/app/src/main/res/layout/activity_groups.xml @@ -4,25 +4,37 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" + android:background="?attr/background" tools:context="com.beemdevelopment.aegis.ui.GroupManagerActivity"> - + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - + android:layout_height="match_parent" + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> + + + + + + + android:src="@drawable/ic_layers_black_24dp" + app:tint="?attr/primaryText" /> - + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> @@ -33,5 +35,6 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" - android:src="@drawable/ic_outline_check_24" /> + android:src="@drawable/ic_check_black_24dp" + app:tint="@color/icon_primary_dark" /> diff --git a/app/src/main/res/layout/activity_intro.xml b/app/src/main/res/layout/activity_intro.xml index e2e4b8cc..79600e46 100644 --- a/app/src/main/res/layout/activity_intro.xml +++ b/app/src/main/res/layout/activity_intro.xml @@ -5,7 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" + android:background="?attr/background" tools:context="com.beemdevelopment.aegis.ui.IntroActivity"> - + app:layout_constraintStart_toStartOf="parent" /> - + app:layout_constraintEnd_toEndOf="parent" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b2ca2d00..f2b26f43 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,62 +1,68 @@ - - - + - - - - - - - - + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - + app:layout_behavior="@string/appbar_scrolling_view_behavior" + android:orientation="vertical"> + + + + + + + + + android:layout_width="match_parent" + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"/> + android:src="@drawable/ic_add_black_24dp" + app:tint="@color/icon_primary_dark" /> diff --git a/app/src/main/res/layout/activity_preferences.xml b/app/src/main/res/layout/activity_preferences.xml index 3dc74edf..b16858f8 100644 --- a/app/src/main/res/layout/activity_preferences.xml +++ b/app/src/main/res/layout/activity_preferences.xml @@ -1,24 +1,22 @@ - + android:orientation="vertical"> - + + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - + android:layout_height="0dp" + android:layout_weight="1" /> + diff --git a/app/src/main/res/layout/activity_scanner.xml b/app/src/main/res/layout/activity_scanner.xml index 29b4ed7e..2516c89a 100644 --- a/app/src/main/res/layout/activity_scanner.xml +++ b/app/src/main/res/layout/activity_scanner.xml @@ -1,31 +1,36 @@ - - + + android:layout_height="?attr/actionBarSize" /> + android:layout_height="match_parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/toolbar_layout" /> - + diff --git a/app/src/main/res/layout/activity_share_entry.xml b/app/src/main/res/layout/activity_share_entry.xml index 455f3356..9044a0ec 100644 --- a/app/src/main/res/layout/activity_share_entry.xml +++ b/app/src/main/res/layout/activity_share_entry.xml @@ -1,135 +1,132 @@ - - - + - + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorAppBar" /> - + - + - + - + - + -