diff options
| author | Aleksandr Granin <aleksandr@mullvad.net> | 2021-01-08 15:59:02 +0100 |
|---|---|---|
| committer | Aleksandr Granin <aleksandr@mullvad.net> | 2021-01-19 14:10:29 +0100 |
| commit | 43109a76357ba9d85daa1c8c67d61c8b5fb87b3b (patch) | |
| tree | f88801308525399205b07e427d569e1b2152caa5 /android | |
| parent | e9d8f0de61b4598e45177ff96055419536d8b3a2 (diff) | |
| download | mullvadvpn-43109a76357ba9d85daa1c8c67d61c8b5fb87b3b.tar.xz mullvadvpn-43109a76357ba9d85daa1c8c67d61c8b5fb87b3b.zip | |
Migrate to androidX
Diffstat (limited to 'android')
40 files changed, 265 insertions, 143 deletions
diff --git a/android/.idea/codeStyles/Project.xml b/android/.idea/codeStyles/Project.xml new file mode 100644 index 0000000000..4bec4ea8ae --- /dev/null +++ b/android/.idea/codeStyles/Project.xml @@ -0,0 +1,117 @@ +<component name="ProjectCodeStyleConfiguration"> + <code_scheme name="Project" version="173"> + <codeStyleSettings language="XML"> + <option name="FORCE_REARRANGE_MODE" value="1" /> + <indentOptions> + <option name="CONTINUATION_INDENT_SIZE" value="4" /> + </indentOptions> + <arrangement> + <rules> + <section> + <rule> + <match> + <AND> + <NAME>xmlns:android</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>^$</XML_NAMESPACE> + </AND> + </match> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>xmlns:.*</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>^$</XML_NAMESPACE> + </AND> + </match> + <order>BY_NAME</order> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>.*:id</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> + </AND> + </match> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>.*:name</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> + </AND> + </match> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>name</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>^$</XML_NAMESPACE> + </AND> + </match> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>style</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>^$</XML_NAMESPACE> + </AND> + </match> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>.*</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>^$</XML_NAMESPACE> + </AND> + </match> + <order>BY_NAME</order> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>.*</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> + </AND> + </match> + <order>ANDROID_ATTRIBUTE_ORDER</order> + </rule> + </section> + <section> + <rule> + <match> + <AND> + <NAME>.*</NAME> + <XML_ATTRIBUTE /> + <XML_NAMESPACE>.*</XML_NAMESPACE> + </AND> + </match> + <order>BY_NAME</order> + </rule> + </section> + </rules> + </arrangement> + </codeStyleSettings> + </code_scheme> +</component>
\ No newline at end of file diff --git a/android/.idea/codeStyles/codeStyleConfig.xml b/android/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000000..a55e7a179b --- /dev/null +++ b/android/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ +<component name="ProjectCodeStyleConfiguration"> + <state> + <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" /> + </state> +</component>
\ No newline at end of file diff --git a/android/.idea/modules/android.iml b/android/.idea/modules/android.iml index 10df39b1c9..5d032106a0 100644 --- a/android/.idea/modules/android.iml +++ b/android/.idea/modules/android.iml @@ -31,7 +31,7 @@ </compilerSettings> <compilerArguments> <option name="destination" value="$MODULE_DIR$/../../build/tmp/kotlin-classes/debug" /> - <option name="classpath" value="$MODULE_DIR$/../../build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b024e35e5edf4ce49211e68595bc964b/design-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/8611f4143304b181415e3434d4415389/appcompat-v7-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/914cafc8ffa772c2d7c217cc17f2db2f/recyclerview-v7-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/ae1420ad1a5d058fb726fc2d154a036f/support-fragment-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/1388969ec8576c54f06e4a9d479ff493/animated-vector-drawable-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/29f739a92853319e7e58eef5824b7544/support-core-ui-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/da7c47c0940dc271a29c9b89e4a3e10b/support-core-utils-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/fb927b40fc7b3060cc9a3b13c97c52b4/support-vector-drawable-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/4e21189a41f8463d2e4f9131e286311a/transition-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/1b921d632bc61e62b39e0d3a82a0ae32/loader-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/e744e663dae6d1d88081a5df1d97c2a3/viewpager-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/7a669cee88ebb788b7eaa09ce761a351/coordinatorlayout-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/0ebdf95527cbeece5a21d84cc6c4b086/drawerlayout-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/58e36aae25cfbf83592bdf49ac67d470/slidingpanelayout-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/9c0c9aa4f8715aa106c7e20c35949a78/customview-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/48b441fd6eaa6d278b4ef956807efad8/swiperefreshlayout-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/7fd4642405af9c08d44b0fa1b88181e6/asynclayoutinflater-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/a7b56579ef86da4647fb07b1ddba527d/support-compat-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/8a291c69bfa063cd0f5fb8e4a450853b/versionedparcelable-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b7f26c9c6b77357d9431655d921ad54a/cursoradapter-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/fe24e68342c87d45e2605d78ea26daf9/cardview-v7-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/f6dbe0c03b38ad9719bec5b4d93905b7/runtime-1.1.1-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/41adb507c4e896d29f186b02eed44456/documentfile-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/56f0fec0d5bcecd5c31ef17f1edea427/localbroadcastmanager-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/f683a78d8b0b97d0e67e8d49ab6941b2/print-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/483a2630bb511b5b5038165a1004b11e/viewmodel-1.1.1-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/aa131f3755044618717eaed9d3fa0561/interpolator-28.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/d29b2044d541e239defc632af9f547ce/livedata-1.1.1-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b53fb39f97d550d28c636dd0fba36153/livedata-core-1.1.1-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/dea96a141d780798373096d3a0866feb/runtime-1.1.1-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/commons-validator/commons-validator/1.7/76069c915de3787f3ddd8726a56f47a95bfcbb0e/commons-validator-1.7.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/commons-beanutils/commons-beanutils/1.9.4/d52b9abcd97f38c81342bb7e7ae1eee9b73cba51/commons-beanutils-1.9.4.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/commons-collections/commons-collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-3.2.2.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/commons-digester/commons-digester/2.1/73a8001e7a54a255eef0f03521ec1805dc738ca0/commons-digester-2.1.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/1.3.9/df17db5e329363c4e9cc7bf5b661ce3723a3e460/kotlinx-coroutines-android-1.3.9.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.3.9/4be434f5e86c1998a273e7f19a7286440894f0b0/kotlinx-coroutines-core-jvm-1.3.9.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.10/ea29e063d2bbe695be13e9d044dcfb0c7add398e/kotlin-stdlib-1.4.10.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.10/6229be3465805c99db1142ad75e6c6ddeac0b04c/kotlin-stdlib-common-1.4.10.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/joda-time/joda-time/2.10.2/a079fc39ccc3de02acdeb7117443e5d9bd431687/joda-time-2.10.2.jar:/Users/aleksandrgranin/Library/Android/sdk/platforms/android-29/android.jar:/Users/aleksandrgranin/Library/Android/sdk/build-tools/29.0.3/core-lambda-stubs.jar" /> + <option name="classpath" value="$MODULE_DIR$/../../build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/2c6db3db3fce28dc9741e81f634883bc/material-1.2.1-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/c984a79bba9d355ff47b0092abe2bae2/appcompat-1.2.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/ed1553fa3f354b6f2fb744008effe300/jetified-viewpager2-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/3e6c32804e74519738439fa69a6da541/recyclerview-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/0b805fd125b14aaa952d6bd515bcba89/fragment-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/d4c859afceda3b2aeff55f3ce9259cd6/jetified-appcompat-resources-1.2.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/871216028175f46f2f63b9f7221a0418/drawerlayout-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/4daa0a572f7703fa25e2cef8bd6d93a2/coordinatorlayout-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/114f3636978f03934c44f1e01c155835/viewpager-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/27d106a84ac8db1a229759b11adf4e0a/customview-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/781021d445036b91d3502e2ec5e7fc78/transition-1.2.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/43e686f054162f512249c2d11a7705fe/vectordrawable-animated-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/62a68cffee166159737266a398268e32/vectordrawable-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/211261877f036f70ab7043b14cc94d67/loader-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/97b1b6f22d2508bf19e80bdebd5d00e6/jetified-activity-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/dc25dafbd92e8a0ce10d85d8b3bb09c7/core-1.3.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/f70b7893a2942ef9f931806bd6648c0a/cursoradapter-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/6996984890ede67a37409f7a29e95f25/versionedparcelable-1.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/a35ea332117e719bee10684040436649/cardview-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/5f6f32f25c8f33f462a180f26eda5374/lifecycle-runtime-2.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/4efc73e28a881e1b9d528d1639822af3/lifecycle-viewmodel-2.1.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/aa8925ce74054233b5296b3ce401398b/jetified-savedstate-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/4ae38170a63c8ef068d11787fa92905a/lifecycle-livedata-2.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b8abe10c75d9ae18fcb55cbacd57da46/lifecycle-livedata-core-2.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.1.0/c67e7807d9cd6c329b9d0218b2ec4e505dd340b7/lifecycle-common-2.1.0.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/bb7ce1440f3ca7503c52c9d15edee74f/core-runtime-2.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/ece404db03183a2badbeb504453455ad/interpolator-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8/annotation-1.1.0.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/a1a54bd90632beb2820625cd70f67b89/jetified-annotation-experimental-1.0.0-api.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/ab1b6f6ae2c7e93a1473d206c5589009/jetified-commons-validator-1.7.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/661b19480f85bdca98f2cc1865434b8b/jetified-commons-beanutils-1.9.4.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/2fd3dbfc4c3338686a34dec4df48014e/jetified-commons-logging-1.2.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/62edf39f561884f9387100dc7d626df7/jetified-commons-collections-3.2.2.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/0fbad796a56b19f64b105972e5145ee5/jetified-commons-digester-2.1.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b1c7f98e242b84b284cbaf428ff0f4de/jetified-joda-time-2.10.2.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/aa302c8f52f51c6be109438ef5e096ea/jetified-kotlinx-coroutines-android-1.3.9.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/b8d9d1d9d83f1e9efd36ffe011043dc0/jetified-kotlinx-coroutines-core-jvm-1.3.9.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/1e2e5d334ccb46d235082a09c43857ec/jetified-kotlin-stdlib-1.4.10.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/5de51ab0c33e3315f87021699c8a6839/jetified-kotlin-stdlib-common-1.4.10.jar:/Users/aleksandrgranin/.gradle/caches/transforms-2/files-2.1/fd06d0e199a6ee0606db09c58b1e846c/jetified-annotations-13.0.jar:/Users/aleksandrgranin/Library/Android/sdk/platforms/android-29/android.jar:/Users/aleksandrgranin/Library/Android/sdk/build-tools/29.0.3/core-lambda-stubs.jar" /> <option name="noStdlib" value="true" /> <option name="noReflect" value="true" /> <option name="moduleName" value="android_debug" /> @@ -65,50 +65,47 @@ </content> <orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0" level="project" /> + <orderEntry type="library" name="Gradle: androidx.collection:collection:1.1.0" level="project" /> + <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-common:2.1.0" level="project" /> + <orderEntry type="library" name="Gradle: androidx.arch.core:core-common:2.1.0" level="project" /> + <orderEntry type="library" name="Gradle: androidx.annotation:annotation:1.1.0" level="project" /> <orderEntry type="library" name="Gradle: commons-validator:commons-validator:1.7" level="project" /> <orderEntry type="library" name="Gradle: commons-beanutils:commons-beanutils:1.9.4" level="project" /> <orderEntry type="library" name="Gradle: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Gradle: commons-collections:commons-collections:3.2.2" level="project" /> <orderEntry type="library" name="Gradle: commons-digester:commons-digester:2.1" level="project" /> + <orderEntry type="library" name="Gradle: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9" level="project" /> <orderEntry type="library" name="Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.3.9" level="project" /> <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.4.10" level="project" /> <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10" level="project" /> <orderEntry type="library" name="Gradle: org.jetbrains:annotations:13.0" level="project" /> - <orderEntry type="library" name="Gradle: joda-time:joda-time:2.10.2" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" /> - <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" /> - <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" /> + <orderEntry type="library" name="Gradle: com.google.android.material:material:1.2.1@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.appcompat:appcompat:1.2.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.viewpager2:viewpager2:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.recyclerview:recyclerview:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.fragment:fragment:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.appcompat:appcompat-resources:1.2.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.drawerlayout:drawerlayout:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.coordinatorlayout:coordinatorlayout:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.viewpager:viewpager:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.customview:customview:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.transition:transition:1.2.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.vectordrawable:vectordrawable-animated:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.vectordrawable:vectordrawable:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.loader:loader:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.activity:activity:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.core:core:1.3.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.cursoradapter:cursoradapter:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.versionedparcelable:versionedparcelable:1.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.cardview:cardview:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-runtime:2.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-viewmodel:2.1.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.savedstate:savedstate:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata:2.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata-core:2.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.arch.core:core-runtime:2.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.interpolator:interpolator:1.0.0@aar" level="project" /> + <orderEntry type="library" name="Gradle: androidx.annotation:annotation-experimental:1.0.0@aar" level="project" /> </component> </module>
\ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 92334f2991..b507ea910c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -98,13 +98,13 @@ repositories { } dependencies { - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support:design:28.0.0' - implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'com.google.android.material:material:1.2.1' implementation 'commons-validator:commons-validator:1.7' + implementation 'joda-time:joda-time:2.10.2' implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.10' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' - implementation 'joda-time:joda-time:2.10.2' } buildscript { diff --git a/android/gradle.properties b/android/gradle.properties index e35976012c..794290ebd9 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -11,4 +11,6 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true #Mon Jan 04 14:44:17 CET 2021 +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt index 91e1d0f951..1401ffa26b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt @@ -4,9 +4,9 @@ import android.Manifest import android.content.Context import android.content.pm.ApplicationInfo import android.content.pm.PackageManager -import android.support.v7.widget.RecyclerView.Adapter import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView.Adapter import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.service.SplitTunneling diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt index ad9fcc3318..2a9a6249dd 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt @@ -2,10 +2,10 @@ package net.mullvad.mullvadvpn.applist import android.content.pm.PackageManager import android.graphics.drawable.Drawable -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.View import android.widget.ImageView import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView.ViewHolder import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.service.SplitTunneling diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt index a215930194..a16313f797 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt @@ -1,11 +1,11 @@ package net.mullvad.mullvadvpn.relaylist -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.View import android.view.ViewGroup.MarginLayoutParams import android.widget.ImageButton import android.widget.ImageView import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView.ViewHolder import net.mullvad.mullvadvpn.R class RelayItemHolder( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt index a4f521be3d..0937592399 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt @@ -1,9 +1,9 @@ package net.mullvad.mullvadvpn.relaylist import android.content.res.Resources -import android.support.v7.widget.RecyclerView.Adapter import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView.Adapter import java.lang.ref.WeakReference import java.util.LinkedList import net.mullvad.mullvadvpn.R diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt index a5d05628b2..9ab632f017 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt @@ -47,8 +47,10 @@ class ForegroundNotificationManager( loggedIn = accountNumber != null } - private var tunnelStateEvents - by autoSubscribable<TunnelState>(this, TunnelState.Disconnected()) { newState -> + private var tunnelStateEvents by autoSubscribable<TunnelState>( + this, + TunnelState.Disconnected() + ) { newState -> updater.sendBlocking(UpdaterMessage.NewTunnelState(newState)) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt index 1b31605adc..4f1f291026 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -63,8 +63,8 @@ class MullvadVpnService : TalpidVpnService() { } } - private var accountExpiryNotification - by observable<AccountExpiryNotification?>(null) { _, oldNotification, _ -> + private var accountExpiryNotification by observable<AccountExpiryNotification?>(null) { + _, oldNotification, _ -> oldNotification?.onDestroy() } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt index 0f4646335c..16d44487c3 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt @@ -6,7 +6,7 @@ import android.app.NotificationManager import android.app.PendingIntent import android.content.Context import android.os.Build -import android.support.v4.app.NotificationCompat +import androidx.core.app.NotificationCompat import net.mullvad.mullvadvpn.R class NotificationChannel( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt index de384379cf..8bb836f0f4 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt @@ -6,7 +6,7 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.os.Build -import android.support.v4.app.NotificationCompat +import androidx.core.app.NotificationCompat import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.TunnelState diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index d5644ae72f..86538f71dc 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -1,10 +1,10 @@ package net.mullvad.mullvadvpn.ui import android.os.Bundle -import android.support.v4.app.FragmentManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.fragment.app.FragmentManager import java.text.DateFormat import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.TunnelState @@ -139,9 +139,9 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { } private fun showRedeemVoucherDialog() { - val transaction = fragmentManager?.beginTransaction() + val transaction = requireFragmentManager().beginTransaction() - transaction?.addToBackStack(null) + transaction.addToBackStack(null) RedeemVoucherDialogFragment().show(transaction, null) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt index f02f5cca91..b7b9445cbe 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt @@ -1,10 +1,10 @@ package net.mullvad.mullvadvpn.ui import android.os.Bundle -import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.coroutines.CompletableDeferred import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.Settings @@ -124,10 +124,10 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { } private fun showConfirmPublicDnsServerDialog(confirmation: CompletableDeferred<Boolean>) { - val transaction = fragmentManager?.beginTransaction() + val transaction = requireFragmentManager().beginTransaction() detachBackButtonHandler() - transaction?.addToBackStack(null) + transaction.addToBackStack(null) ConfirmPublicDnsDialogFragment() .apply { confirmPublicDns = confirmation } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt index 1789bd0c64..8271e8141d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt @@ -5,12 +5,12 @@ import android.content.Context import android.content.DialogInterface import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.support.v4.app.DialogFragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams import android.widget.Button +import androidx.fragment.app.DialogFragment import kotlinx.coroutines.CompletableDeferred import net.mullvad.mullvadvpn.R diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt index 3888e756e0..c75662dcf0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt @@ -4,12 +4,12 @@ import android.app.Dialog import android.content.DialogInterface import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.support.v4.app.DialogFragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams import android.widget.Button +import androidx.fragment.app.DialogFragment import kotlinx.coroutines.CompletableDeferred import net.mullvad.mullvadvpn.R diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt index 55084a0ea2..07753a1265 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt @@ -2,10 +2,10 @@ package net.mullvad.mullvadvpn.ui import android.content.Context import android.graphics.Rect -import android.support.v7.widget.RecyclerView -import android.support.v7.widget.RecyclerView.ItemDecoration -import android.support.v7.widget.RecyclerView.State import android.view.View +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.ItemDecoration +import androidx.recyclerview.widget.RecyclerView.State import kotlin.properties.Delegates.observable class ListItemDividerDecoration(context: Context) : ItemDecoration() { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt index fa5df39a0e..528524ac23 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt @@ -2,12 +2,12 @@ package net.mullvad.mullvadvpn.ui import android.graphics.Rect import android.os.Bundle -import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ScrollView import android.widget.TextView +import androidx.fragment.app.Fragment import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.delay import net.mullvad.mullvadvpn.R diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index 613927fe49..5929490065 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -9,10 +9,10 @@ import android.content.res.Configuration import android.os.Build import android.os.Bundle import android.os.IBinder -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentActivity -import android.support.v4.app.FragmentManager import android.view.WindowManager +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.FragmentManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -170,7 +170,7 @@ class MainActivity : FragmentActivity() { } fun openSettings() { - supportFragmentManager?.beginTransaction()?.apply { + supportFragmentManager.beginTransaction().apply { setCustomAnimations( R.anim.fragment_enter_from_bottom, R.anim.do_nothing, @@ -184,7 +184,7 @@ class MainActivity : FragmentActivity() { } fun returnToLaunchScreen() { - supportFragmentManager?.apply { + supportFragmentManager.apply { popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) beginTransaction().apply { @@ -206,7 +206,7 @@ class MainActivity : FragmentActivity() { } private fun addInitialFragment() { - supportFragmentManager?.beginTransaction()?.apply { + supportFragmentManager.beginTransaction().apply { add(R.id.main_fragment, LaunchFragment()) commit() } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt index 491f0d53fc..ce99256e19 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt @@ -3,7 +3,6 @@ package net.mullvad.mullvadvpn.ui import android.content.Context import android.graphics.Typeface import android.os.Bundle -import android.support.v4.app.Fragment import android.text.Editable import android.text.Spannable import android.text.SpannableStringBuilder @@ -18,6 +17,7 @@ import android.widget.EditText import android.widget.ScrollView import android.widget.TextView import android.widget.ViewSwitcher +import androidx.fragment.app.Fragment import kotlin.properties.Delegates.observable import kotlinx.coroutines.CompletableDeferred import net.mullvad.mullvadvpn.R @@ -197,9 +197,9 @@ class ProblemReportFragment : Fragment() { } private fun showConfirmNoEmailDialog() { - val transaction = fragmentManager?.beginTransaction() + val transaction = requireFragmentManager().beginTransaction() - transaction?.addToBackStack(null) + transaction.addToBackStack(null) ConfirmNoEmailDialogFragment().show(transaction, null) } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt index 1a300e1fec..5822da9a91 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt @@ -4,7 +4,6 @@ import android.app.Dialog import android.content.Context import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.support.v4.app.DialogFragment import android.text.Editable import android.text.TextWatcher import android.view.LayoutInflater @@ -13,6 +12,7 @@ import android.view.ViewGroup import android.view.ViewGroup.LayoutParams import android.widget.EditText import android.widget.TextView +import androidx.fragment.app.DialogFragment import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.VoucherSubmissionResult import net.mullvad.mullvadvpn.service.AccountCache diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt index e35377c690..ddc89d973b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt @@ -2,7 +2,6 @@ package net.mullvad.mullvadvpn.ui import android.content.Context import android.os.Bundle -import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,6 +9,7 @@ import android.view.animation.Animation import android.view.animation.Animation.AnimationListener import android.view.animation.AnimationUtils import android.widget.ImageButton +import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.coroutines.CompletableDeferred import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.Constraint diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt index 4bbff22a59..aa70bfd4ca 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt @@ -1,7 +1,7 @@ package net.mullvad.mullvadvpn.ui import android.content.Context -import android.support.v4.app.Fragment +import androidx.fragment.app.Fragment import net.mullvad.mullvadvpn.util.JobTracker abstract class ServiceAwareFragment : Fragment() { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt index 6294a2028a..a7b74ddeb0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt @@ -4,10 +4,10 @@ import android.animation.Animator import android.animation.Animator.AnimatorListener import android.animation.ObjectAnimator import android.os.Bundle -import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.applist.AppListAdapter import net.mullvad.mullvadvpn.ui.widget.CellSwitch diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt index e53a8fe2fe..2b28f21ff1 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt @@ -1,11 +1,11 @@ package net.mullvad.mullvadvpn.ui import android.content.Context -import android.support.design.widget.CoordinatorLayout -import android.support.design.widget.CoordinatorLayout.Behavior import android.util.AttributeSet import android.view.View import android.widget.ScrollView +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior import net.mullvad.mullvadvpn.R class UnderNotificationBannerBehavior( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt index 30a81111b9..43a31ccfad 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt @@ -2,11 +2,11 @@ package net.mullvad.mullvadvpn.ui import android.content.Context import android.os.Bundle -import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.EditText +import androidx.fragment.app.Fragment import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport import net.mullvad.mullvadvpn.util.JobTracker diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt index 44af15c1f7..709fc2d1b6 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.ui.customdns -import android.support.v7.widget.RecyclerView.Adapter import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView.Adapter import java.net.InetAddress import kotlin.properties.Delegates.observable import kotlinx.coroutines.CompletableDeferred @@ -27,8 +27,8 @@ class CustomDnsAdapter(val customDns: CustomDns) : Adapter<CustomDnsItemHolder>( private var editingPosition: Int? = null - private var activeCustomDnsServers - by observable<List<InetAddress>>(emptyList()) { _, _, servers -> + private var activeCustomDnsServers by observable<List<InetAddress>>(emptyList()) { + _, _, servers -> if (servers != cachedCustomDnsServers) { cachedCustomDnsServers = servers.toMutableList() notifyDataSetChanged() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt index 3276737e5d..cfaf9399cc 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt @@ -1,6 +1,6 @@ package net.mullvad.mullvadvpn.ui.customdns -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.View +import androidx.recyclerview.widget.RecyclerView.ViewHolder abstract class CustomDnsItemHolder(view: View) : ViewHolder(view) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt index 737e4a3859..555d8e75b0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.ui.widget -import android.support.v7.widget.RecyclerView.Adapter import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView.Adapter import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.util.SegmentedTextFormatter diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt index e0e911467b..4a87f4f601 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.ui.widget -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.View import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView.ViewHolder import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.util.SegmentedTextFormatter diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt index 58051411ff..491c7086e2 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt @@ -3,15 +3,14 @@ package net.mullvad.mullvadvpn.ui.widget import android.animation.ValueAnimator import android.app.Activity import android.content.Context -import android.support.v7.widget.LinearLayoutManager -import android.support.v7.widget.RecyclerView import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import android.view.View.OnLayoutChangeListener -import android.view.ViewGroup.MarginLayoutParams import android.view.inputmethod.InputMethodManager import android.widget.RelativeLayout +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.ui.ListItemDividerDecoration diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt index 06244067b8..ef8caf7e7c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.ui.widget -import android.support.v7.widget.DefaultItemAnimator -import android.support.v7.widget.RecyclerView.LayoutManager -import android.support.v7.widget.RecyclerView.ViewHolder +import androidx.recyclerview.widget.DefaultItemAnimator +import androidx.recyclerview.widget.RecyclerView.LayoutManager +import androidx.recyclerview.widget.RecyclerView.ViewHolder import kotlin.math.round class CustomItemAnimator : DefaultItemAnimator() { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt index 3e0c4d1d70..4684d50871 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt @@ -1,9 +1,8 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context -import android.support.v7.widget.RecyclerView -import android.support.v7.widget.RecyclerView.LayoutManager import android.util.AttributeSet +import androidx.recyclerview.widget.RecyclerView import net.mullvad.mullvadvpn.util.ListenableScrollableView class CustomRecyclerView : RecyclerView, ListenableScrollableView { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt index 9ff9c3588d..1080e4e3fb 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt @@ -1,10 +1,10 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentActivity import android.util.AttributeSet import android.widget.ImageView +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity import kotlin.reflect.KClass import net.mullvad.mullvadvpn.R diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt index 308eff37df..f1e27e7b1b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context -import android.support.v4.app.FragmentManager import android.util.AttributeSet +import androidx.fragment.app.FragmentManager import net.mullvad.mullvadvpn.ui.RedeemVoucherDialogFragment import net.mullvad.mullvadvpn.util.JobTracker diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt index 379d58f758..cbf96457ef 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt @@ -1,11 +1,11 @@ package net.mullvad.mullvadvpn.util -import android.support.v7.widget.RecyclerView.Adapter -import android.support.v7.widget.RecyclerView.AdapterDataObserver -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView.Adapter +import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver +import androidx.recyclerview.widget.RecyclerView.ViewHolder import kotlin.properties.Delegates.observable class AdapterWithHeader<H : ViewHolder>( diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt index 631d69100e..308298443a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt @@ -1,7 +1,7 @@ package net.mullvad.mullvadvpn.util -import android.support.v7.widget.RecyclerView.ViewHolder import android.view.View +import androidx.recyclerview.widget.RecyclerView.ViewHolder sealed class HeaderOrHolder<H : ViewHolder>(itemView: View) : ViewHolder(itemView) { class Header<H : ViewHolder>(headerView: View) : HeaderOrHolder<H>(headerView) diff --git a/android/src/main/res/layout/account_login.xml b/android/src/main/res/layout/account_login.xml index d91222c73f..8a57930721 100644 --- a/android/src/main/res/layout/account_login.xml +++ b/android/src/main/res/layout/account_login.xml @@ -9,8 +9,8 @@ android:layout_height="48dp" android:layout_alignParentTop="true" android:orientation="horizontal" /> - <android.support.v7.widget.RecyclerView android:id="@+id/history" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_below="@id/input" /> + <androidx.recyclerview.widget.RecyclerView android:id="@+id/history" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/input" /> </merge> diff --git a/android/src/main/res/layout/connect.xml b/android/src/main/res/layout/connect.xml index 254dd05442..d6ac999d43 100644 --- a/android/src/main/res/layout/connect.xml +++ b/android/src/main/res/layout/connect.xml @@ -7,8 +7,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="0.5dp" /> - <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" - android:layout_height="match_parent"> + <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" + android:layout_height="match_parent"> <net.mullvad.mullvadvpn.ui.widget.NotificationBanner android:id="@+id/notification_banner" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -16,75 +16,76 @@ <ScrollView android:id="@+id/body" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_behavior="net.mullvad.mullvadvpn.ui.UnderNotificationBannerBehavior" - android:fillViewport="true"> + android:fillViewport="true" + app:layout_behavior="net.mullvad.mullvadvpn.ui.UnderNotificationBannerBehavior"> + <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" - android:gravity="bottom"> + android:gravity="bottom" + android:orientation="vertical"> <ProgressBar android:id="@+id/connecting_spinner" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" android:layout_marginBottom="7dp" android:indeterminate="true" - android:indeterminateOnly="true" - android:indeterminateDuration="600" android:indeterminateDrawable="@drawable/icon_spinner" + android:indeterminateDuration="600" + android:indeterminateOnly="true" android:visibility="invisible" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="0" android:layout_marginTop="7dp" - android:orientation="vertical" - android:gravity="start"> + android:layout_weight="0" + android:gravity="start" + android:orientation="vertical"> <TextView android:id="@+id/connection_status" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="2dp" android:layout_marginHorizontal="@dimen/side_margin" + android:layout_marginBottom="2dp" + android:text="@string/unsecured_connection" + android:textAllCaps="true" android:textColor="@color/red" android:textSize="@dimen/text_medium" - android:textStyle="bold" - android:text="@string/unsecured_connection" - android:textAllCaps="true" /> + android:textStyle="bold" /> <TextView android:id="@+id/city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginHorizontal="@dimen/side_margin" + android:text="" android:textColor="@color/white" android:textSize="@dimen/text_huge" - android:textStyle="bold" - android:text="" /> + android:textStyle="bold" /> <TextView android:id="@+id/country" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginHorizontal="@dimen/side_margin" android:layout_marginBottom="2dp" + android:text="" android:textColor="@color/white" android:textSize="@dimen/text_huge" - android:textStyle="bold" - android:text="" /> + android:textStyle="bold" /> <LinearLayout android:id="@+id/tunnel_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" - android:orientation="vertical" - android:paddingHorizontal="@dimen/side_margin" - android:gravity="bottom" + android:background="?android:attr/selectableItemBackground" android:clickable="true" android:focusable="true" - android:background="?android:attr/selectableItemBackground"> + android:gravity="bottom" + android:orientation="vertical" + android:paddingHorizontal="@dimen/side_margin"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:gravity="center"> + android:gravity="center" + android:orientation="horizontal"> <TextView android:id="@+id/hostname" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:text="" android:textColor="@color/white40" - android:textSize="@dimen/text_hostname" - android:text="" /> + android:textSize="@dimen/text_hostname" /> <ImageView android:id="@+id/chevron" android:layout_width="24dp" android:layout_height="24dp" @@ -96,23 +97,23 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" + android:text="" android:textColor="@color/white" - android:textSize="@dimen/text_small" - android:text="" /> + android:textSize="@dimen/text_small" /> <TextView android:id="@+id/in_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" + android:text="" android:textColor="@color/white" - android:textSize="@dimen/text_small" - android:text="" /> + android:textSize="@dimen/text_small" /> <TextView android:id="@+id/out_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" + android:text="" android:textColor="@color/white" - android:textSize="@dimen/text_small" - android:text="" /> + android:textSize="@dimen/text_small" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" @@ -130,21 +131,21 @@ android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/action_button" + style="@style/GreenButton" android:layout_weight="1" - android:text="@string/connect" - style="@style/GreenButton" /> + android:text="@string/connect" /> <ImageButton android:id="@+id/reconnect_button" android:layout_width="50dp" android:layout_height="match_parent" - android:layout_weight="0" android:layout_marginLeft="1dp" - android:padding="9dp" + android:layout_weight="0" android:background="@drawable/transparent_red_right_half_button_background" - android:visibility="gone" - android:src="@drawable/icon_reload" /> + android:padding="9dp" + android:src="@drawable/icon_reload" + android:visibility="gone" /> </LinearLayout> </LinearLayout> </LinearLayout> </ScrollView> - </android.support.design.widget.CoordinatorLayout> + </androidx.coordinatorlayout.widget.CoordinatorLayout> </LinearLayout> |
