diff options
author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-07-14 11:31:37 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-14 11:31:37 +0530 |
commit | 7f3aceaf11ce69a121ea0d9bd62e38953184e40c (patch) | |
tree | 8a1053517e07f4ddef077804e57df7a4e7675507 | |
parent | 5d60f1304f5bf3ac8cc86880af6e68f45673ed8e (diff) |
Fix navigation bar theming and reformat (#930)
26 files changed, 130 insertions, 18 deletions
diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties index 05300282..03c213b2 100644 --- a/.github/ci-gradle.properties +++ b/.github/ci-gradle.properties @@ -1,3 +1,8 @@ +# +# Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. +# SPDX-License-Identifier: GPL-3.0-only +# + org.gradle.daemon=true org.gradle.configureondemand=true android.enableBuildCache=true diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/StrictDomainRegexTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/StrictDomainRegexTest.kt index 1e2d4a6c..2631cb41 100644 --- a/app/src/androidTest/java/com/zeapo/pwdstore/StrictDomainRegexTest.kt +++ b/app/src/androidTest/java/com/zeapo/pwdstore/StrictDomainRegexTest.kt @@ -4,15 +4,16 @@ */ package com.zeapo.pwdstore -import org.junit.Test import kotlin.test.assertFalse import kotlin.test.assertNull import kotlin.test.assertTrue +import org.junit.Test private infix fun String.matchedForDomain(domain: String) = SearchableRepositoryViewModel.generateStrictDomainRegex(domain)?.containsMatchIn(this) == true class StrictDomainRegexTest { + @Test fun acceptsLiteralDomain() { assertTrue("work/example.org/john.doe@example.org.gpg" matchedForDomain "example.org") assertTrue("example.org/john.doe@example.org.gpg" matchedForDomain "example.org") diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/git/GitServerConfigActivityTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/git/GitServerConfigActivityTest.kt index 143cfe1b..2c2691b1 100644 --- a/app/src/androidTest/java/com/zeapo/pwdstore/git/GitServerConfigActivityTest.kt +++ b/app/src/androidTest/java/com/zeapo/pwdstore/git/GitServerConfigActivityTest.kt @@ -17,11 +17,11 @@ import androidx.test.rule.ActivityTestRule import com.google.android.material.button.MaterialButtonToggleGroup import com.zeapo.pwdstore.R import com.zeapo.pwdstore.git.BaseGitActivity.GitUpdateUrlResult +import kotlin.test.assertEquals import org.hamcrest.Matcher import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import kotlin.test.assertEquals @RunWith(AndroidJUnit4::class) class GitServerConfigActivityTest { diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/utils/UriTotpFinderTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/utils/UriTotpFinderTest.kt index 3397ed0d..8a836f89 100644 --- a/app/src/androidTest/java/com/zeapo/pwdstore/utils/UriTotpFinderTest.kt +++ b/app/src/androidTest/java/com/zeapo/pwdstore/utils/UriTotpFinderTest.kt @@ -5,8 +5,8 @@ package com.zeapo.pwdstore.utils -import org.junit.Test import kotlin.test.assertEquals +import org.junit.Test class UriTotpFinderTest { @@ -34,6 +34,7 @@ class UriTotpFinderTest { } companion object { + const val TOTP_URI = "otpauth://totp/ACME%20Co:john@example.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&algorithm=SHA256&digits=12&period=25" } } diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordExportService.kt b/app/src/main/java/com/zeapo/pwdstore/PasswordExportService.kt index e877a77a..c1845f2f 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordExportService.kt +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordExportService.kt @@ -1,3 +1,8 @@ +/* + * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + package com.zeapo.pwdstore import android.app.NotificationChannel diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ChromeCompatFix.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ChromeCompatFix.kt index 75d9539a..d1f81c0c 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ChromeCompatFix.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/ChromeCompatFix.kt @@ -24,6 +24,7 @@ import com.zeapo.pwdstore.utils.autofillManager class ChromeCompatFix : AccessibilityService() { companion object { + fun setStatusInPreferences(context: Context, enabled: Boolean) { PreferenceManager.getDefaultSharedPreferences(context).edit { putBoolean(PreferenceKeys.OREO_AUTOFILL_CHROME_COMPAT_FIX, enabled) diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt index 7d019508..3fb05724 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt @@ -1,3 +1,8 @@ +/* + * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + package com.zeapo.pwdstore.utils object PreferenceKeys { diff --git a/app/src/main/res/color/outlined_box_selector.xml b/app/src/main/res/color/outlined_box_selector.xml index f66b8669..4ee69718 100644 --- a/app/src/main/res/color/outlined_box_selector.xml +++ b/app/src/main/res/color/outlined_box_selector.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/secondary_color" android:state_focused="true" /> <item android:color="@color/secondary_color" android:state_hovered="true" /> diff --git a/app/src/main/res/drawable-v24/ic_launcher_background.xml b/app/src/main/res/drawable-v24/ic_launcher_background.xml index 8c1c8731..ec930537 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_background.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_background.xml @@ -1,3 +1,8 @@ +<!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" android:width="108dp" diff --git a/app/src/main/res/drawable/ic_autofill_sms.xml b/app/src/main/res/drawable/ic_autofill_sms.xml index e58c33c4..358a055c 100644 --- a/app/src/main/res/drawable/ic_autofill_sms.xml +++ b/app/src/main/res/drawable/ic_autofill_sms.xml @@ -1,3 +1,8 @@ +<!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" diff --git a/app/src/main/res/drawable/ic_qr_code_scanner.xml b/app/src/main/res/drawable/ic_qr_code_scanner.xml index 2af8a9bd..80535666 100644 --- a/app/src/main/res/drawable/ic_qr_code_scanner.xml +++ b/app/src/main/res/drawable/ic_qr_code_scanner.xml @@ -1,3 +1,8 @@ +<!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" diff --git a/app/src/main/res/drawable/ic_round_import_export.xml b/app/src/main/res/drawable/ic_round_import_export.xml index d732ca2f..1a9a49bf 100644 --- a/app/src/main/res/drawable/ic_round_import_export.xml +++ b/app/src/main/res/drawable/ic_round_import_export.xml @@ -1,10 +1,15 @@ +<!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" + android:tint="?attr/colorControlNormal" android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> - <path - android:fillColor="@android:color/white" - android:pathData="M8.65,3.35L5.86,6.14c-0.32,0.31 -0.1,0.85 0.35,0.85H8V13c0,0.55 0.45,1 1,1s1,-0.45 1,-1V6.99h1.79c0.45,0 0.67,-0.54 0.35,-0.85L9.35,3.35c-0.19,-0.19 -0.51,-0.19 -0.7,0zM16,17.01V11c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1v6.01h-1.79c-0.45,0 -0.67,0.54 -0.35,0.85l2.79,2.78c0.2,0.19 0.51,0.19 0.71,0l2.79,-2.78c0.32,-0.31 0.09,-0.85 -0.35,-0.85H16z"/> + android:viewportHeight="24"> + <path + android:fillColor="@android:color/white" + android:pathData="M8.65,3.35L5.86,6.14c-0.32,0.31 -0.1,0.85 0.35,0.85H8V13c0,0.55 0.45,1 1,1s1,-0.45 1,-1V6.99h1.79c0.45,0 0.67,-0.54 0.35,-0.85L9.35,3.35c-0.19,-0.19 -0.51,-0.19 -0.7,0zM16,17.01V11c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1v6.01h-1.79c-0.45,0 -0.67,0.54 -0.35,0.85l2.79,2.78c0.2,0.19 0.51,0.19 0.71,0l2.79,-2.78c0.32,-0.31 0.09,-0.85 -0.35,-0.85H16z" /> </vector> diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 3ba4e35c..3486e4a5 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@drawable/ic_launcher_background" /> <foreground android:drawable="@mipmap/ic_launcher_foreground" /> diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 3ba4e35c..3486e4a5 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@drawable/ic_launcher_background" /> <foreground android:drawable="@mipmap/ic_launcher_foreground" /> diff --git a/app/src/main/res/values-night/bools.xml b/app/src/main/res/values-night/bools.xml index d3e609b6..a8de30b7 100644 --- a/app/src/main/res/values-night/bools.xml +++ b/app/src/main/res/values-night/bools.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <resources> <bool name="light_status_bar">false</bool> </resources> diff --git a/app/src/main/res/values-v23/colors.xml b/app/src/main/res/values-v23/colors.xml new file mode 100644 index 00000000..7c3be280 --- /dev/null +++ b/app/src/main/res/values-v23/colors.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + +<resources> + <color name="navigation_bar_color">#000000</color> +</resources> diff --git a/app/src/main/res/values-v26/bools.xml b/app/src/main/res/values-v26/bools.xml index 86ab6c8e..e2c7af91 100644 --- a/app/src/main/res/values-v26/bools.xml +++ b/app/src/main/res/values-v26/bools.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <resources> <bool name="enable_accessibility_autofill">false</bool> </resources> diff --git a/app/src/main/res/values-v27/colors.xml b/app/src/main/res/values-v27/colors.xml new file mode 100644 index 00000000..fc765bbf --- /dev/null +++ b/app/src/main/res/values-v27/colors.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + +<resources> + <color name="navigation_bar_color">@color/primary_color</color> +</resources> diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml new file mode 100644 index 00000000..eeb92876 --- /dev/null +++ b/app/src/main/res/values-v27/styles.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + +<resources> + + <style name="AppTheme" parent="APSTheme"> + <item name="android:windowLightNavigationBar">@bool/light_status_bar</item> + </style> +</resources> diff --git a/app/src/main/res/values-v28/bools.xml b/app/src/main/res/values-v28/bools.xml index 0ce64e0b..3dc8bf79 100644 --- a/app/src/main/res/values-v28/bools.xml +++ b/app/src/main/res/values-v28/bools.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <resources> <bool name="enable_chrome_compat_fix">true</bool> </resources> diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml index fbcc1c73..b19e7848 100644 --- a/app/src/main/res/values/bools.xml +++ b/app/src/main/res/values/bools.xml @@ -1,4 +1,8 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + ~ SPDX-License-Identifier: GPL-3.0-only + --> + <resources> <bool name="leak_canary_allow_in_non_debuggable_build">true</bool> <bool name="enable_accessibility_autofill">true</bool> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3e30f0a5..d84143ce 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -6,7 +6,7 @@ <resources> <!-- Base application theme. --> - <style name="AppTheme" parent="Theme.MaterialComponents.DayNight"> + <style name="APSTheme" parent="Theme.MaterialComponents.DayNight"> <item name="colorPrimary">@color/primary_color</item> <item name="colorOnPrimary">@color/color_control_normal</item> <item name="colorPrimaryDark">@color/primary_color</item> @@ -30,6 +30,8 @@ <item name="textInputStyle">@style/AppTheme.TextInputLayout</item> </style> + <style name="AppTheme" parent="APSTheme" /> + <style name="AppTheme.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"> <item name="boxStrokeColor">@color/outlined_box_selector</item> <item name="hintTextColor">?attr/colorSecondary</item> diff --git a/app/src/test/java/com/zeapo/pwdstore/model/PasswordEntryTest.kt b/app/src/test/java/com/zeapo/pwdstore/model/PasswordEntryTest.kt index f31709df..16cbd855 100644 --- a/app/src/test/java/com/zeapo/pwdstore/model/PasswordEntryTest.kt +++ b/app/src/test/java/com/zeapo/pwdstore/model/PasswordEntryTest.kt @@ -6,15 +6,16 @@ package com.zeapo.pwdstore.model import com.zeapo.pwdstore.utils.Otp import com.zeapo.pwdstore.utils.TotpFinder -import org.junit.Test import java.util.Date import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue +import org.junit.Test class PasswordEntryTest { + private fun makeEntry(content: String) = PasswordEntry(content, testFinder) @Test fun testGetPassword() { @@ -83,6 +84,7 @@ class PasswordEntryTest { } companion object { + const val TOTP_URI = "otpauth://totp/ACME%20Co:john@example.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&algorithm=SHA1&digits=6&period=30" // This implementation is hardcoded for the URI above. diff --git a/app/src/test/java/com/zeapo/pwdstore/utils/OtpTest.kt b/app/src/test/java/com/zeapo/pwdstore/utils/OtpTest.kt index 710b0845..6e6e7f21 100644 --- a/app/src/test/java/com/zeapo/pwdstore/utils/OtpTest.kt +++ b/app/src/test/java/com/zeapo/pwdstore/utils/OtpTest.kt @@ -1,9 +1,14 @@ +/* + * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + package com.zeapo.pwdstore.utils -import org.junit.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull import kotlin.test.assertNull +import org.junit.Test class OtpTest { diff --git a/gradle.properties b/gradle.properties index 604a659b..218affe7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,8 @@ +# +# Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. +# SPDX-License-Identifier: GPL-3.0-only +# + # AndroidX android.enableJetifier=false android.useAndroidX=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 28b21a0c..6fa3f76a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,3 +1,8 @@ +# +# Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. +# SPDX-License-Identifier: GPL-3.0-only +# + distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionSha256Sum=143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920 |