diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 1c9cdcca5..132c93aae 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -7,12 +7,12 @@ dependencies { // NOTE: libraries are pinned to a specific build, see below // from local Android SDK - implementation 'com.android.support:support-v4:28.0.0' - 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 'com.android.support:cardview-v7:28.0.0' - implementation 'com.android.support:support-annotations:28.0.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation 'androidx.cardview:cardview:1.0.0' + implementation 'androidx.annotation:annotation:1.1.0' // JCenter etc. implementation 'com.journeyapps:zxing-android-embedded:3.4.0' @@ -29,7 +29,7 @@ dependencies { implementation 'com.jpardogo.materialtabstrip:library:1.1.1' implementation 'com.getbase:floatingactionbutton:1.10.1' implementation 'com.nispok:snackbar:2.11.0' - implementation 'com.cocosw:bottomsheet:1.3.1@aar' + implementation 'com.cocosw:bottomsheet:1.5.0@aar' // RecyclerView implementation 'eu.davidea:flexible-adapter:5.0.5' @@ -60,7 +60,7 @@ dependencies { implementation project(':extern:bouncycastle:prov') implementation project(':extern:MaterialChipsInput') - implementation "android.arch.work:work-runtime:1.0.0-alpha02" + implementation 'androidx.work:work-runtime:2.2.0' // Unit tests in the local JVM with Robolectric // https://developer.android.com/training/testing/unit-testing/local-unit-tests.html @@ -75,14 +75,14 @@ dependencies { // UI testing with Espresso // Force usage of support libs in the test app, since they are internally used by the runner module. // https://github.com/googlesamples/android-testing/blob/master/ui/espresso/BasicSample/app/build.gradle#L28 - androidTestCompile 'com.android.support:support-annotations:27.1.1' - androidTestCompile 'com.android.support:appcompat-v7:27.1.1' - androidTestCompile 'com.android.support:design:27.1.1' - androidTestCompile 'com.android.support.test:runner:0.5' - androidTestCompile 'com.android.support.test:rules:0.5' - androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' - androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2' - androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.2.2') { + androidTestCompile 'androidx.annotation:annotation:1.0.0' + androidTestCompile 'androidx.appcompat:appcompat:1.0.0' + androidTestCompile 'com.google.android.material:material:1.0.0' + androidTestCompile 'androidx.test.ext:junit:1.1.1' + androidTestCompile 'androidx.test:rules:1.1.1' + androidTestCompile 'androidx.test.espresso:espresso-core:3.1.0' + androidTestCompile 'androidx.test.espresso:espresso-intents:3.1.0' + androidTestCompile ('androidx.test.espresso:espresso-contrib:3.1.0') { exclude group: 'com.android.support', module: 'appcompat' exclude group: 'com.android.support', module: 'support-v4' exclude module: 'recyclerview-v7' @@ -96,11 +96,11 @@ dependencies { annotationProcessor "com.ryanharter.auto.value:auto-value-parcel:0.2.5" implementation 'com.ryanharter.auto.value:auto-value-parcel-adapter:0.2.5' - implementation "android.arch.lifecycle:extensions:1.0.0" - annotationProcessor "android.arch.lifecycle:compiler:1.0.0" + implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' + annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.0.0' - implementation "android.arch.persistence:db-framework:1.0.0" - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.sqlite:sqlite-framework:2.0.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // for debugging the db. don't enable by default, this will expose the database no the network! // debugImplementation 'com.amitshekhar.android:debug-db:1.0.3' @@ -117,7 +117,7 @@ android { applicationId "org.sufficientlysecure.keychain" // the androidjunitrunner is broken regarding coverage, see here: // https://code.google.com/p/android/issues/detail?id=170607 - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // this workaround runner fixes the coverage problem, BUT doesn't work // with android studio single test execution. use it to generate coverage // data, but keep the other one otherwis diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/AndroidTestHelpers.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/AndroidTestHelpers.java index c376f7040..b2b7116da 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/AndroidTestHelpers.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/AndroidTestHelpers.java @@ -28,10 +28,10 @@ import java.io.OutputStream; import java.util.Random; import android.content.Context; -import android.support.annotation.StringRes; -import android.support.test.espresso.UiController; -import android.support.test.espresso.ViewAction; -import android.support.test.espresso.matcher.ViewMatchers; +import androidx.annotation.StringRes; +import androidx.test.espresso.UiController; +import androidx.test.espresso.ViewAction; +import androidx.test.espresso.matcher.ViewMatchers; import android.view.View; import com.nispok.snackbar.Snackbar; @@ -42,12 +42,12 @@ import org.sufficientlysecure.keychain.daos.KeyWritableRepository; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.util.Notify.Style; -import static android.support.test.InstrumentationRegistry.getInstrumentation; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.withClassName; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.withClassName; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.endsWith; import static org.sufficientlysecure.keychain.matcher.CustomMatchers.withSnackbarLineColor; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/JacocoWorkaroundJUnitRunner.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/JacocoWorkaroundJUnitRunner.java index b310ed5b8..67e2b4b44 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/JacocoWorkaroundJUnitRunner.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/JacocoWorkaroundJUnitRunner.java @@ -4,7 +4,7 @@ package org.sufficientlysecure.keychain; import java.lang.reflect.Method; import android.os.Bundle; -import android.support.test.runner.AndroidJUnitRunner; +import androidx.test.runner.AndroidJUnitRunner; public class JacocoWorkaroundJUnitRunner extends AndroidJUnitRunner { diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/CustomActions.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/CustomActions.java index 65d39edb8..589b785c2 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/CustomActions.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/CustomActions.java @@ -19,9 +19,9 @@ package org.sufficientlysecure.keychain.actions; -import android.support.test.espresso.UiController; -import android.support.test.espresso.ViewAction; -import android.support.test.espresso.matcher.ViewMatchers; +import androidx.test.espresso.UiController; +import androidx.test.espresso.ViewAction; +import androidx.test.espresso.matcher.ViewMatchers; import android.view.View; import com.tokenautocomplete.TokenCompleteTextView; @@ -29,7 +29,7 @@ import org.hamcrest.Matcher; import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing; import org.sufficientlysecure.keychain.daos.KeyWritableRepository; -import static android.support.test.InstrumentationRegistry.getTargetContext; +import static androidx.test.platform.app.InstrumentationRegistry.getTargetContext; public abstract class CustomActions { diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/OrientationChangeAction.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/OrientationChangeAction.java index cdded7d7f..0b0c63fa5 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/OrientationChangeAction.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/actions/OrientationChangeAction.java @@ -7,15 +7,15 @@ import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.ActivityInfo; -import android.support.test.espresso.UiController; -import android.support.test.espresso.ViewAction; -import android.support.test.runner.lifecycle.ActivityLifecycleMonitorRegistry; -import android.support.test.runner.lifecycle.Stage; +import androidx.test.espresso.UiController; +import androidx.test.espresso.ViewAction; +import androidx.test.runner.lifecycle.ActivityLifecycleMonitorRegistry; +import androidx.test.runner.lifecycle.Stage; import android.view.View; import org.hamcrest.Matcher; -import static android.support.test.espresso.matcher.ViewMatchers.isRoot; +import static androidx.test.espresso.matcher.ViewMatchers.isRoot; public class OrientationChangeAction implements ViewAction { private final int orientation; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/matcher/CustomMatchers.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/matcher/CustomMatchers.java index fd44c4ad1..a80cf20ac 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/matcher/CustomMatchers.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/matcher/CustomMatchers.java @@ -19,10 +19,10 @@ package org.sufficientlysecure.keychain.matcher; -import android.support.annotation.ColorRes; -import android.support.annotation.IdRes; -import android.support.test.espresso.matcher.BoundedMatcher; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.ColorRes; +import androidx.annotation.IdRes; +import androidx.test.espresso.matcher.BoundedMatcher; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.ViewAnimator; @@ -32,12 +32,12 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.sufficientlysecure.keychain.R; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withParent; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withParent; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.not; import static org.sufficientlysecure.keychain.matcher.DrawableMatcher.withDrawable; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceTest.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceTest.java index ccd83a777..064d4cd25 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceTest.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceTest.java @@ -5,9 +5,9 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.IBinder; -import android.support.test.InstrumentationRegistry; -import android.support.test.rule.ServiceTestRule; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.rule.ServiceTestRule; +import androidx.test.ext.junit.runners.AndroidJUnit4; import android.test.suitebuilder.annotation.LargeTest; import org.junit.Before; @@ -21,12 +21,12 @@ import org.sufficientlysecure.keychain.R; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import static android.support.test.espresso.Espresso.closeSoftKeyboard; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.Espresso.closeSoftKeyboard; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import static org.sufficientlysecure.keychain.AndroidTestHelpers.cleanupForTests; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricFileOperationTests.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricFileOperationTests.java index 0930ef7c4..139de28e7 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricFileOperationTests.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricFileOperationTests.java @@ -25,8 +25,8 @@ import android.content.Intent; import android.net.Uri; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import android.support.test.espresso.intent.Intents; -import android.support.test.espresso.intent.rule.IntentsTestRule; +import androidx.test.espresso.intent.Intents; +import androidx.test.espresso.intent.rule.IntentsTestRule; import android.widget.AdapterView; import org.junit.Before; @@ -38,26 +38,26 @@ import org.sufficientlysecure.keychain.ui.util.Notify.Style; import java.io.File; -import static android.support.test.InstrumentationRegistry.getInstrumentation; -import static android.support.test.espresso.Espresso.onData; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; -import static android.support.test.espresso.Espresso.pressBack; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasAction; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasCategories; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtra; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtraWithKey; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasType; -import static android.support.test.espresso.matcher.ViewMatchers.assertThat; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; +import static androidx.test.espresso.Espresso.onData; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; +import static androidx.test.espresso.Espresso.pressBack; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasAction; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasCategories; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasExtra; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasExtraWithKey; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasType; +import static androidx.test.espresso.matcher.ViewMatchers.assertThat; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricTextOperationTests.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricTextOperationTests.java index b34ea6c81..b2bda9180 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricTextOperationTests.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/AsymmetricTextOperationTests.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.ui; import android.app.Activity; import android.content.Intent; -import android.support.test.rule.ActivityTestRule; +import androidx.test.rule.ActivityTestRule; import android.widget.AdapterView; import org.junit.Before; @@ -30,18 +30,18 @@ import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.util.FileHelper; -import static android.support.test.espresso.Espresso.onData; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.Espresso.pressBack; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.Espresso.onData; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.Espresso.pressBack; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.sufficientlysecure.keychain.AndroidTestHelpers.checkSnackbar; import static org.sufficientlysecure.keychain.AndroidTestHelpers.importKeysFromResource; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/CreateKeyActivityTest.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/CreateKeyActivityTest.java index a02078d8e..f9a53f4b4 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/CreateKeyActivityTest.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/CreateKeyActivityTest.java @@ -18,33 +18,27 @@ package org.sufficientlysecure.keychain.ui; -import android.support.test.espresso.matcher.ViewMatchers; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.espresso.matcher.ViewMatchers; +import androidx.test.rule.ActivityTestRule; + import android.test.suitebuilder.annotation.LargeTest; -import android.text.method.HideReturnsTransformationMethod; -import android.text.method.PasswordTransformationMethod; import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.sufficientlysecure.keychain.R; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.swipeLeft; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.RootMatchers.isDialog; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.hasSibling; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.swipeLeft; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.RootMatchers.isDialog; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.hasSibling; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; -import static org.sufficientlysecure.keychain.matcher.EditTextMatchers.withError; -import static org.sufficientlysecure.keychain.matcher.EditTextMatchers.withTransformationMethod; + //TODO This test is disabled because it needs to be fixed to work with updated code //@RunWith(AndroidJUnit4.class) diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/EditKeyTest.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/EditKeyTest.java index 75429dd89..eebdb3af9 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/EditKeyTest.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/EditKeyTest.java @@ -20,22 +20,21 @@ package org.sufficientlysecure.keychain.ui; import android.app.Activity; import android.content.Intent; -import android.support.test.rule.ActivityTestRule; -import android.support.v7.widget.RecyclerView; +import androidx.test.rule.ActivityTestRule; +import androidx.recyclerview.widget.RecyclerView; import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.runners.MethodSorters; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.KeychainDatabase; import org.sufficientlysecure.keychain.ui.util.Notify.Style; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.contrib.RecyclerViewActions.actionOnHolderItem; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnHolderItem; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.sufficientlysecure.keychain.AndroidTestHelpers.checkSnackbar; import static org.sufficientlysecure.keychain.AndroidTestHelpers.importKeysFromResource; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/MiscCryptOperationTests.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/MiscCryptOperationTests.java index 74b79f020..c399ff37e 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/MiscCryptOperationTests.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/MiscCryptOperationTests.java @@ -27,9 +27,9 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build.VERSION_CODES; -import android.support.test.espresso.intent.Intents; -import android.support.test.espresso.intent.rule.IntentsTestRule; -import android.support.v7.widget.RecyclerView; +import androidx.test.espresso.intent.Intents; +import androidx.test.espresso.intent.rule.IntentsTestRule; +import androidx.recyclerview.widget.RecyclerView; import org.junit.Before; import org.junit.Rule; @@ -42,25 +42,25 @@ import org.sufficientlysecure.keychain.util.Preferences; import java.io.File; -import static android.support.test.InstrumentationRegistry.getInstrumentation; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; -import static android.support.test.espresso.Espresso.pressBack; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.contrib.RecyclerViewActions.actionOnHolderItem; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasAction; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasCategories; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasType; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.hasSibling; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.isChecked; -import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA; -import static android.support.test.espresso.matcher.ViewMatchers.isNotChecked; -import static android.support.test.espresso.matcher.ViewMatchers.withChild; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; +import static androidx.test.espresso.Espresso.pressBack; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnHolderItem; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasAction; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasCategories; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasType; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.hasSibling; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.isChecked; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.isNotChecked; +import static androidx.test.espresso.matcher.ViewMatchers.withChild; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.hasItem; import static org.sufficientlysecure.keychain.AndroidTestHelpers.checkSnackbar; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/SymmetricTextOperationTests.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/SymmetricTextOperationTests.java index b51be1e09..15155e446 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/SymmetricTextOperationTests.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/SymmetricTextOperationTests.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.ui; import android.app.Activity; import android.app.Instrumentation.ActivityResult; import android.content.Intent; -import android.support.test.espresso.intent.rule.IntentsTestRule; +import androidx.test.espresso.intent.rule.IntentsTestRule; import org.junit.FixMethodOrder; import org.junit.Rule; @@ -30,26 +30,26 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.TemporaryFileProvider; import org.sufficientlysecure.keychain.ui.util.Notify.Style; -import static android.support.test.InstrumentationRegistry.getInstrumentation; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; -import static android.support.test.espresso.Espresso.pressBack; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.intent.Intents.intending; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasAction; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasData; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtra; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtraWithKey; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasFlags; -import static android.support.test.espresso.intent.matcher.IntentMatchers.hasType; -import static android.support.test.espresso.intent.matcher.UriMatchers.hasHost; -import static android.support.test.espresso.intent.matcher.UriMatchers.hasScheme; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu; +import static androidx.test.espresso.Espresso.pressBack; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.intent.Intents.intending; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasAction; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasData; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasExtra; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasExtraWithKey; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasFlags; +import static androidx.test.espresso.intent.matcher.IntentMatchers.hasType; +import static androidx.test.espresso.intent.matcher.UriMatchers.hasHost; +import static androidx.test.espresso.intent.matcher.UriMatchers.hasScheme; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.Matchers.equalTo; import static org.sufficientlysecure.keychain.AndroidTestHelpers.checkSnackbar; diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionViewTest.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionViewTest.java index 554df0a51..8cb9e2bdd 100644 --- a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionViewTest.java +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionViewTest.java @@ -20,10 +20,10 @@ package org.sufficientlysecure.keychain.ui.widget; import android.app.Activity; import android.content.Intent; -import android.support.test.espresso.action.ViewActions; -import android.support.test.espresso.matcher.RootMatchers; -import android.support.test.espresso.matcher.ViewMatchers; -import android.support.test.rule.ActivityTestRule; +import androidx.test.espresso.action.ViewActions; +import androidx.test.espresso.matcher.RootMatchers; +import androidx.test.espresso.matcher.ViewMatchers; +import androidx.test.rule.ActivityTestRule; import android.view.KeyEvent; import android.widget.AdapterView; @@ -31,14 +31,14 @@ import org.junit.Rule; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.EncryptTextActivity; -import static android.support.test.espresso.Espresso.onData; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; -import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.Espresso.onData; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.withId; import static org.hamcrest.CoreMatchers.allOf; import static org.sufficientlysecure.keychain.AndroidTestHelpers.importKeysFromResource; import static org.sufficientlysecure.keychain.actions.CustomActions.tokenEncryptViewAddToken; diff --git a/OpenKeychain/src/main/java/android/support/design/widget/FixedCollapsingToolbarLayout.java b/OpenKeychain/src/main/java/android/support/design/widget/FixedCollapsingToolbarLayout.java deleted file mode 100644 index 5cfb1c65f..000000000 --- a/OpenKeychain/src/main/java/android/support/design/widget/FixedCollapsingToolbarLayout.java +++ /dev/null @@ -1,30 +0,0 @@ -package android.support.design.widget; - -import android.content.Context; -import android.support.v4.view.WindowInsetsCompat; -import android.util.AttributeSet; - -public class FixedCollapsingToolbarLayout extends CollapsingToolbarLayout { - - public FixedCollapsingToolbarLayout(Context context) { - this(context, null); - } - - public FixedCollapsingToolbarLayout(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - // During the super call to onMeasure(), we'll save a copy of mLastInsets, - // consume the insets of mLastInsets so the super call has no insets to work with, - // then re-assign mLastInsets to what it was before the super call. - WindowInsetsCompat oldInsets = mLastInsets; - if (mLastInsets != null) { - mLastInsets = mLastInsets.consumeSystemWindowInsets(); - } - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - mLastInsets = oldInsets; - } - -} \ No newline at end of file diff --git a/OpenKeychain/src/main/java/android/support/v4/widget/FlingNestedScrollView.java b/OpenKeychain/src/main/java/android/support/v4/widget/FlingNestedScrollView.java deleted file mode 100644 index 65a2a56af..000000000 --- a/OpenKeychain/src/main/java/android/support/v4/widget/FlingNestedScrollView.java +++ /dev/null @@ -1,1358 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.support.v4.widget; - - -import java.util.ArrayList; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.Parcel; -import android.os.Parcelable; -import android.support.v4.view.AccessibilityDelegateCompat; -import android.support.v4.view.MotionEventCompat; -import android.support.v4.view.NestedScrollingChild; -import android.support.v4.view.NestedScrollingChildHelper; -import android.support.v4.view.NestedScrollingParent; -import android.support.v4.view.NestedScrollingParentHelper; -import android.support.v4.view.VelocityTrackerCompat; -import android.support.v4.view.ViewCompat; -import android.support.v4.view.accessibility.AccessibilityEventCompat; -import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; -import android.support.v4.view.accessibility.AccessibilityRecordCompat; -import android.util.AttributeSet; -import android.util.TypedValue; -import android.view.FocusFinder; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.view.VelocityTracker; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.view.ViewParent; -import android.view.accessibility.AccessibilityEvent; -import android.view.animation.AnimationUtils; -import android.widget.FrameLayout; -import android.widget.ScrollView; - -import timber.log.Timber; - - -/** - * Workaround for bug in support lib. From https://code.google.com/p/android/issues/detail?id=177729 - * - * Also see workaround with padding in view_key_fragment.xml - */ -public class FlingNestedScrollView extends FrameLayout implements NestedScrollingParent, NestedScrollingChild { - static final int ANIMATED_SCROLL_GAP = 250; - static final float MAX_SCROLL_FACTOR = 0.5F; - private static final String TAG = "FlingNestedScrollView"; - private long mLastScroll; - private final Rect mTempRect; - private ScrollerCompat mScroller; - private EdgeEffectCompat mEdgeGlowTop; - private EdgeEffectCompat mEdgeGlowBottom; - private int mLastMotionY; - private boolean mIsLayoutDirty; - private boolean mIsLaidOut; - private View mChildToScrollTo; - private boolean mIsBeingDragged; - private VelocityTracker mVelocityTracker; - private boolean mFillViewport; - private boolean mSmoothScrollingEnabled; - private int mTouchSlop; - private int mMinimumVelocity; - private int mMaximumVelocity; - private int mActivePointerId; - private final int[] mScrollOffset; - private final int[] mScrollConsumed; - private int mNestedYOffset; - private static final int INVALID_POINTER = -1; - private FlingNestedScrollView.SavedState mSavedState; - private static final FlingNestedScrollView.AccessibilityDelegate ACCESSIBILITY_DELEGATE = new FlingNestedScrollView.AccessibilityDelegate(); - private static final int[] SCROLLVIEW_STYLEABLE = new int[]{16843130}; - private final NestedScrollingParentHelper mParentHelper; - private final NestedScrollingChildHelper mChildHelper; - private float mVerticalScrollFactor; - - public FlingNestedScrollView(Context context) { - this(context, null); - } - - public FlingNestedScrollView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public FlingNestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - this.mTempRect = new Rect(); - this.mIsLayoutDirty = true; - this.mIsLaidOut = false; - this.mChildToScrollTo = null; - this.mIsBeingDragged = false; - this.mSmoothScrollingEnabled = true; - this.mActivePointerId = -1; - this.mScrollOffset = new int[2]; - this.mScrollConsumed = new int[2]; - this.initScrollView(); - TypedArray a = context.obtainStyledAttributes(attrs, SCROLLVIEW_STYLEABLE, defStyleAttr, 0); - this.setFillViewport(a.getBoolean(0, false)); - a.recycle(); - this.mParentHelper = new NestedScrollingParentHelper(this); - this.mChildHelper = new NestedScrollingChildHelper(this); - this.setNestedScrollingEnabled(true); - ViewCompat.setAccessibilityDelegate(this, ACCESSIBILITY_DELEGATE); - } - - public void setNestedScrollingEnabled(boolean enabled) { - this.mChildHelper.setNestedScrollingEnabled(enabled); - } - - public boolean isNestedScrollingEnabled() { - return this.mChildHelper.isNestedScrollingEnabled(); - } - - public boolean startNestedScroll(int axes) { - return this.mChildHelper.startNestedScroll(axes); - } - - public void stopNestedScroll() { - this.mChildHelper.stopNestedScroll(); - } - - public boolean hasNestedScrollingParent() { - return this.mChildHelper.hasNestedScrollingParent(); - } - - public boolean dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow) { - return this.mChildHelper.dispatchNestedScroll(dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, offsetInWindow); - } - - public boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow) { - return this.mChildHelper.dispatchNestedPreScroll(dx, dy, consumed, offsetInWindow); - } - - public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) { - return this.mChildHelper.dispatchNestedFling(velocityX, velocityY, consumed); - } - - public boolean dispatchNestedPreFling(float velocityX, float velocityY) { - return this.mChildHelper.dispatchNestedPreFling(velocityX, velocityY); - } - - public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) { - return (nestedScrollAxes & 2) != 0; - } - - public void onNestedScrollAccepted(View child, View target, int nestedScrollAxes) { - this.mParentHelper.onNestedScrollAccepted(child, target, nestedScrollAxes); - this.startNestedScroll(2); - } - - public void onStopNestedScroll(View target) { - this.stopNestedScroll(); - } - - public void onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { - int oldScrollY = this.getScrollY(); - this.scrollBy(0, dyUnconsumed); - int myConsumed = this.getScrollY() - oldScrollY; - int myUnconsumed = dyUnconsumed - myConsumed; - this.dispatchNestedScroll(0, myConsumed, 0, myUnconsumed, null); - } - - public void onNestedPreScroll(View target, int dx, int dy, int[] consumed) { - } - - public boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed) { - if(!consumed) { - this.flingWithNestedDispatch((int)velocityY); - return true; - } else { - return false; - } - } - - public boolean onNestedPreFling(View target, float velocityX, float velocityY) { - return false; - } - - public int getNestedScrollAxes() { - return this.mParentHelper.getNestedScrollAxes(); - } - - public boolean shouldDelayChildPressedState() { - return true; - } - - protected float getTopFadingEdgeStrength() { - if(this.getChildCount() == 0) { - return 0.0F; - } else { - int length = this.getVerticalFadingEdgeLength(); - int scrollY = this.getScrollY(); - return scrollY < length?(float)scrollY / (float)length:1.0F; - } - } - - protected float getBottomFadingEdgeStrength() { - if(this.getChildCount() == 0) { - return 0.0F; - } else { - int length = this.getVerticalFadingEdgeLength(); - int bottomEdge = this.getHeight() - this.getPaddingBottom(); - int span = this.getChildAt(0).getBottom() - this.getScrollY() - bottomEdge; - return span < length?(float)span / (float)length:1.0F; - } - } - - public int getMaxScrollAmount() { - return (int)(0.5F * (float)this.getHeight()); - } - - private void initScrollView() { - this.mScroller = ScrollerCompat.create(this.getContext()); - this.setFocusable(true); - //noinspection ResourceType - this.setDescendantFocusability(262144); - this.setWillNotDraw(false); - ViewConfiguration configuration = ViewConfiguration.get(this.getContext()); - this.mTouchSlop = configuration.getScaledTouchSlop(); - this.mMinimumVelocity = configuration.getScaledMinimumFlingVelocity(); - this.mMaximumVelocity = configuration.getScaledMaximumFlingVelocity(); - } - - public void addView(View child) { - if(this.getChildCount() > 0) { - throw new IllegalStateException("ScrollView can host only one direct child"); - } else { - super.addView(child); - } - } - - public void addView(View child, int index) { - if(this.getChildCount() > 0) { - throw new IllegalStateException("ScrollView can host only one direct child"); - } else { - super.addView(child, index); - } - } - - public void addView(View child, LayoutParams params) { - if(this.getChildCount() > 0) { - throw new IllegalStateException("ScrollView can host only one direct child"); - } else { - super.addView(child, params); - } - } - - public void addView(View child, int index, LayoutParams params) { - if(this.getChildCount() > 0) { - throw new IllegalStateException("ScrollView can host only one direct child"); - } else { - super.addView(child, index, params); - } - } - - private boolean canScroll() { - View child = this.getChildAt(0); - if(child != null) { - int childHeight = child.getHeight(); - return this.getHeight() < childHeight + this.getPaddingTop() + this.getPaddingBottom(); - } else { - return false; - } - } - - public boolean isFillViewport() { - return this.mFillViewport; - } - - public void setFillViewport(boolean fillViewport) { - if(fillViewport != this.mFillViewport) { - this.mFillViewport = fillViewport; - this.requestLayout(); - } - - } - - public boolean isSmoothScrollingEnabled() { - return this.mSmoothScrollingEnabled; - } - - public void setSmoothScrollingEnabled(boolean smoothScrollingEnabled) { - this.mSmoothScrollingEnabled = smoothScrollingEnabled; - } - - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if(this.mFillViewport) { - int heightMode = MeasureSpec.getMode(heightMeasureSpec); - if(heightMode != 0) { - if(this.getChildCount() > 0) { - View child = this.getChildAt(0); - int height = this.getMeasuredHeight(); - if(child.getMeasuredHeight() < height) { - android.widget.FrameLayout.LayoutParams lp = (android.widget.FrameLayout.LayoutParams)child.getLayoutParams(); - int childWidthMeasureSpec = getChildMeasureSpec(widthMeasureSpec, this.getPaddingLeft() + this.getPaddingRight(), lp.width); - height -= this.getPaddingTop(); - height -= this.getPaddingBottom(); - //noinspection ResourceType - int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(height, 1073741824); - child.measure(childWidthMeasureSpec, childHeightMeasureSpec); - } - } - - } - } - } - - public boolean dispatchKeyEvent(KeyEvent event) { - return super.dispatchKeyEvent(event) || this.executeKeyEvent(event); - } - - public boolean executeKeyEvent(KeyEvent event) { - this.mTempRect.setEmpty(); - if(this.canScroll()) { - boolean handled1 = false; - if(event.getAction() == 0) { - switch(event.getKeyCode()) { - case 19: - if(!event.isAltPressed()) { - handled1 = this.arrowScroll(33); - } else { - handled1 = this.fullScroll(33); - } - break; - case 20: - if(!event.isAltPressed()) { - handled1 = this.arrowScroll(130); - } else { - handled1 = this.fullScroll(130); - } - break; - case 62: - this.pageScroll(event.isShiftPressed()?33:130); - } - } - - return handled1; - } else if(this.isFocused() && event.getKeyCode() != 4) { - View handled = this.findFocus(); - if(handled == this) { - handled = null; - } - - View nextFocused = FocusFinder.getInstance().findNextFocus(this, handled, 130); - return nextFocused != null && nextFocused != this && nextFocused.requestFocus(130); - } else { - return false; - } - } - - private boolean inChild(int x, int y) { - if(this.getChildCount() <= 0) { - return false; - } else { - int scrollY = this.getScrollY(); - View child = this.getChildAt(0); - return y >= child.getTop() - scrollY && y < child.getBottom() - scrollY && x >= child.getLeft() && x < child.getRight(); - } - } - - private void initOrResetVelocityTracker() { - if(this.mVelocityTracker == null) { - this.mVelocityTracker = VelocityTracker.obtain(); - } else { - this.mVelocityTracker.clear(); - } - - } - - private void initVelocityTrackerIfNotExists() { - if(this.mVelocityTracker == null) { - this.mVelocityTracker = VelocityTracker.obtain(); - } - - } - - private void recycleVelocityTracker() { - if(this.mVelocityTracker != null) { - this.mVelocityTracker.recycle(); - this.mVelocityTracker = null; - } - - } - - public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) { - if(disallowIntercept) { - this.recycleVelocityTracker(); - } - - super.requestDisallowInterceptTouchEvent(disallowIntercept); - } - - public boolean onInterceptTouchEvent(MotionEvent ev) { - int action = ev.getAction(); - if(action == 2 && this.mIsBeingDragged) { - return true; - } else if(this.getScrollY() == 0 && !ViewCompat.canScrollVertically(this, 1)) { - return false; - } else { - int y; - switch(action & 255) { - case 0: - y = (int)ev.getY(); - if(!this.inChild((int)ev.getX(), y)) { - this.mIsBeingDragged = false; - this.recycleVelocityTracker(); - } else { - this.mLastMotionY = y; - this.mActivePointerId = MotionEventCompat.getPointerId(ev, 0); - this.initOrResetVelocityTracker(); - this.mVelocityTracker.addMovement(ev); - this.mIsBeingDragged = !this.mScroller.isFinished(); - this.startNestedScroll(2); - } - break; - case 1: - case 3: - this.mIsBeingDragged = false; - this.mActivePointerId = -1; - this.recycleVelocityTracker(); - this.stopNestedScroll(); - break; - case 2: - y = this.mActivePointerId; - if(y != -1) { - int pointerIndex = MotionEventCompat.findPointerIndex(ev, y); - if(pointerIndex == -1) { - Timber.e("Invalid pointerId=" + y + " in onInterceptTouchEvent"); - } else { - int y1 = (int)MotionEventCompat.getY(ev, pointerIndex); - int yDiff = Math.abs(y1 - this.mLastMotionY); - if(yDiff > this.mTouchSlop && (this.getNestedScrollAxes() & 2) == 0) { - this.mIsBeingDragged = true; - this.mLastMotionY = y1; - this.initVelocityTrackerIfNotExists(); - this.mVelocityTracker.addMovement(ev); - this.mNestedYOffset = 0; - ViewParent parent = this.getParent(); - if(parent != null) { - parent.requestDisallowInterceptTouchEvent(true); - } - } - } - } - case 4: - case 5: - default: - break; - case 6: - this.onSecondaryPointerUp(ev); - } - - return this.mIsBeingDragged; - } - } - - public boolean onTouchEvent(MotionEvent ev) { - this.initVelocityTrackerIfNotExists(); - MotionEvent vtev = MotionEvent.obtain(ev); - int actionMasked = MotionEventCompat.getActionMasked(ev); - if(actionMasked == 0) { - this.mNestedYOffset = 0; - } - - vtev.offsetLocation(0.0F, (float)this.mNestedYOffset); - int index; - int initialVelocity; - switch(actionMasked) { - case 0: - if(this.getChildCount() == 0) { - return false; - } - - if(this.mIsBeingDragged = !this.mScroller.isFinished()) { - ViewParent activePointerIndex1 = this.getParent(); - if(activePointerIndex1 != null) { - activePointerIndex1.requestDisallowInterceptTouchEvent(true); - } - } - - if(!this.mScroller.isFinished()) { - this.mScroller.abortAnimation(); - } - - this.mLastMotionY = (int)ev.getY(); - this.mActivePointerId = MotionEventCompat.getPointerId(ev, 0); - this.startNestedScroll(2); - break; - case 1: - if(this.mIsBeingDragged) { - VelocityTracker index2 = this.mVelocityTracker; - index2.computeCurrentVelocity(1000, (float)this.mMaximumVelocity); - initialVelocity = (int) VelocityTrackerCompat.getYVelocity(index2, this.mActivePointerId); - if(Math.abs(initialVelocity) > this.mMinimumVelocity) { - this.flingWithNestedDispatch(-initialVelocity); - } - - this.mActivePointerId = -1; - this.endDrag(); - } - break; - case 2: - int activePointerIndex = MotionEventCompat.findPointerIndex(ev, this.mActivePointerId); - if(activePointerIndex == -1) { - Timber.e("Invalid pointerId=" + this.mActivePointerId + " in onTouchEvent"); - } else { - int y = (int)MotionEventCompat.getY(ev, activePointerIndex); - int deltaY = this.mLastMotionY - y; - if(this.dispatchNestedPreScroll(0, deltaY, this.mScrollConsumed, this.mScrollOffset)) { - deltaY -= this.mScrollConsumed[1]; - vtev.offsetLocation(0.0F, (float)this.mScrollOffset[1]); - this.mNestedYOffset += this.mScrollOffset[1]; - } - - if(!this.mIsBeingDragged && Math.abs(deltaY) > this.mTouchSlop) { - ViewParent index1 = this.getParent(); - if(index1 != null) { - index1.requestDisallowInterceptTouchEvent(true); - } - - this.mIsBeingDragged = true; - if(deltaY > 0) { - deltaY -= this.mTouchSlop; - } else { - deltaY += this.mTouchSlop; - } - } - - if(this.mIsBeingDragged) { - this.mLastMotionY = y - this.mScrollOffset[1]; - index = this.getScrollY(); - initialVelocity = this.getScrollRange(); - int overscrollMode = ViewCompat.getOverScrollMode(this); - boolean canOverscroll = overscrollMode == 0 || overscrollMode == 1 && initialVelocity > 0; - if(this.overScrollByCompat(0, deltaY, 0, this.getScrollY(), 0, initialVelocity, 0, 0, true) && !this.hasNestedScrollingParent()) { - this.mVelocityTracker.clear(); - } - - int scrolledDeltaY = this.getScrollY() - index; - int unconsumedY = deltaY - scrolledDeltaY; - if(this.dispatchNestedScroll(0, scrolledDeltaY, 0, unconsumedY, this.mScrollOffset)) { - this.mLastMotionY -= this.mScrollOffset[1]; - vtev.offsetLocation(0.0F, (float)this.mScrollOffset[1]); - this.mNestedYOffset += this.mScrollOffset[1]; - } else if(canOverscroll) { - this.ensureGlows(); - int pulledToY = index + deltaY; - if(pulledToY < 0) { - this.mEdgeGlowTop.onPull((float)deltaY / (float)this.getHeight(), MotionEventCompat.getX(ev, activePointerIndex) / (float)this.getWidth()); - if(!this.mEdgeGlowBottom.isFinished()) { - this.mEdgeGlowBottom.onRelease(); - } - } else if(pulledToY > initialVelocity) { - this.mEdgeGlowBottom.onPull((float)deltaY / (float)this.getHeight(), 1.0F - MotionEventCompat.getX(ev, activePointerIndex) / (float)this.getWidth()); - if(!this.mEdgeGlowTop.isFinished()) { - this.mEdgeGlowTop.onRelease(); - } - } - - if(this.mEdgeGlowTop != null && (!this.mEdgeGlowTop.isFinished() || !this.mEdgeGlowBottom.isFinished())) { - ViewCompat.postInvalidateOnAnimation(this); - } - } - } - } - break; - case 3: - if(this.mIsBeingDragged && this.getChildCount() > 0) { - this.mActivePointerId = -1; - this.endDrag(); - } - case 4: - default: - break; - case 5: - index = MotionEventCompat.getActionIndex(ev); - this.mLastMotionY = (int)MotionEventCompat.getY(ev, index); - this.mActivePointerId = MotionEventCompat.getPointerId(ev, index); - break; - case 6: - this.onSecondaryPointerUp(ev); - this.mLastMotionY = (int)MotionEventCompat.getY(ev, MotionEventCompat.findPointerIndex(ev, this.mActivePointerId)); - } - - if(this.mVelocityTracker != null) { - this.mVelocityTracker.addMovement(vtev); - } - - vtev.recycle(); - return true; - } - - private void onSecondaryPointerUp(MotionEvent ev) { - int pointerIndex = (ev.getAction() & '\uff00') >> 8; - int pointerId = MotionEventCompat.getPointerId(ev, pointerIndex); - if(pointerId == this.mActivePointerId) { - int newPointerIndex = pointerIndex == 0?1:0; - this.mLastMotionY = (int)MotionEventCompat.getY(ev, newPointerIndex); - this.mActivePointerId = MotionEventCompat.getPointerId(ev, newPointerIndex); - if(this.mVelocityTracker != null) { - this.mVelocityTracker.clear(); - } - } - - } - - public boolean onGenericMotionEvent(MotionEvent event) { - if((MotionEventCompat.getSource(event) & 2) != 0) { - switch(event.getAction()) { - case 8: - if(!this.mIsBeingDragged) { - float vscroll = MotionEventCompat.getAxisValue(event, 9); - if(vscroll != 0.0F) { - int delta = (int)(vscroll * this.getVerticalScrollFactorCompat()); - int range = this.getScrollRange(); - int oldScrollY = this.getScrollY(); - int newScrollY = oldScrollY - delta; - if(newScrollY < 0) { - newScrollY = 0; - } else if(newScrollY > range) { - newScrollY = range; - } - - if(newScrollY != oldScrollY) { - super.scrollTo(this.getScrollX(), newScrollY); - return true; - } - } - } - } - } - - return false; - } - - private float getVerticalScrollFactorCompat() { - if(this.mVerticalScrollFactor == 0.0F) { - TypedValue outValue = new TypedValue(); - Context context = this.getContext(); - if(!context.getTheme().resolveAttribute(16842829, outValue, true)) { - throw new IllegalStateException("Expected theme to define listPreferredItemHeight."); - } - - this.mVerticalScrollFactor = outValue.getDimension(context.getResources().getDisplayMetrics()); - } - - return this.mVerticalScrollFactor; - } - - protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { - super.scrollTo(scrollX, scrollY); - } - - boolean overScrollByCompat(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { - int overScrollMode = ViewCompat.getOverScrollMode(this); - boolean canScrollHorizontal = this.computeHorizontalScrollRange() > this.computeHorizontalScrollExtent(); - boolean canScrollVertical = this.computeVerticalScrollRange() > this.computeVerticalScrollExtent(); - boolean overScrollHorizontal = overScrollMode == 0 || overScrollMode == 1 && canScrollHorizontal; - boolean overScrollVertical = overScrollMode == 0 || overScrollMode == 1 && canScrollVertical; - int newScrollX = scrollX + deltaX; - if(!overScrollHorizontal) { - maxOverScrollX = 0; - } - - int newScrollY = scrollY + deltaY; - if(!overScrollVertical) { - maxOverScrollY = 0; - } - - int left = -maxOverScrollX; - int right = maxOverScrollX + scrollRangeX; - int top = -maxOverScrollY; - int bottom = maxOverScrollY + scrollRangeY; - boolean clampedX = false; - if(newScrollX > right) { - newScrollX = right; - clampedX = true; - } else if(newScrollX < left) { - newScrollX = left; - clampedX = true; - } - - boolean clampedY = false; - if(newScrollY > bottom) { - newScrollY = bottom; - clampedY = true; - } else if(newScrollY < top) { - newScrollY = top; - clampedY = true; - } - - this.onOverScrolled(newScrollX, newScrollY, clampedX, clampedY); - return clampedX || clampedY; - } - - private int getScrollRange() { - int scrollRange = 0; - if(this.getChildCount() > 0) { - View child = this.getChildAt(0); - scrollRange = Math.max(0, child.getHeight() - (this.getHeight() - this.getPaddingBottom() - this.getPaddingTop())); - } - - return scrollRange; - } - - private View findFocusableViewInBounds(boolean topFocus, int top, int bottom) { - //noinspection ResourceType - ArrayList focusables = this.getFocusables(2); - View focusCandidate = null; - boolean foundFullyContainedFocusable = false; - int count = focusables.size(); - - for(int i = 0; i < count; ++i) { - View view = (View)focusables.get(i); - int viewTop = view.getTop(); - int viewBottom = view.getBottom(); - if(top < viewBottom && viewTop < bottom) { - boolean viewIsFullyContained = top < viewTop && viewBottom < bottom; - if(focusCandidate == null) { - focusCandidate = view; - foundFullyContainedFocusable = viewIsFullyContained; - } else { - boolean viewIsCloserToBoundary = topFocus && viewTop < focusCandidate.getTop() || !topFocus && viewBottom > focusCandidate.getBottom(); - if(foundFullyContainedFocusable) { - if(viewIsFullyContained && viewIsCloserToBoundary) { - focusCandidate = view; - } - } else if(viewIsFullyContained) { - focusCandidate = view; - foundFullyContainedFocusable = true; - } else if(viewIsCloserToBoundary) { - focusCandidate = view; - } - } - } - } - - return focusCandidate; - } - - public boolean pageScroll(int direction) { - boolean down = direction == 130; - int height = this.getHeight(); - if(down) { - this.mTempRect.top = this.getScrollY() + height; - int count = this.getChildCount(); - if(count > 0) { - View view = this.getChildAt(count - 1); - if(this.mTempRect.top + height > view.getBottom()) { - this.mTempRect.top = view.getBottom() - height; - } - } - } else { - this.mTempRect.top = this.getScrollY() - height; - if(this.mTempRect.top < 0) { - this.mTempRect.top = 0; - } - } - - this.mTempRect.bottom = this.mTempRect.top + height; - return this.scrollAndFocus(direction, this.mTempRect.top, this.mTempRect.bottom); - } - - public boolean fullScroll(int direction) { - boolean down = direction == 130; - int height = this.getHeight(); - this.mTempRect.top = 0; - this.mTempRect.bottom = height; - if(down) { - int count = this.getChildCount(); - if(count > 0) { - View view = this.getChildAt(count - 1); - this.mTempRect.bottom = view.getBottom() + this.getPaddingBottom(); - this.mTempRect.top = this.mTempRect.bottom - height; - } - } - - return this.scrollAndFocus(direction, this.mTempRect.top, this.mTempRect.bottom); - } - - private boolean scrollAndFocus(int direction, int top, int bottom) { - boolean handled = true; - int height = this.getHeight(); - int containerTop = this.getScrollY(); - int containerBottom = containerTop + height; - boolean up = direction == 33; - Object newFocused = this.findFocusableViewInBounds(up, top, bottom); - if(newFocused == null) { - newFocused = this; - } - - if(top >= containerTop && bottom <= containerBottom) { - handled = false; - } else { - int delta = up?top - containerTop:bottom - containerBottom; - this.doScrollY(delta); - } - - if(newFocused != this.findFocus()) { - ((View)newFocused).requestFocus(direction); - } - - return handled; - } - - public boolean arrowScroll(int direction) { - View currentFocused = this.findFocus(); - if(currentFocused == this) { - currentFocused = null; - } - - View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, direction); - int maxJump = this.getMaxScrollAmount(); - int descendantFocusability; - if(nextFocused != null && this.isWithinDeltaOfScreen(nextFocused, maxJump, this.getHeight())) { - nextFocused.getDrawingRect(this.mTempRect); - this.offsetDescendantRectToMyCoords(nextFocused, this.mTempRect); - descendantFocusability = this.computeScrollDeltaToGetChildRectOnScreen(this.mTempRect); - this.doScrollY(descendantFocusability); - nextFocused.requestFocus(direction); - } else { - descendantFocusability = maxJump; - if(direction == 33 && this.getScrollY() < maxJump) { - descendantFocusability = this.getScrollY(); - } else if(direction == 130 && this.getChildCount() > 0) { - int daBottom = this.getChildAt(0).getBottom(); - int screenBottom = this.getScrollY() + this.getHeight() - this.getPaddingBottom(); - if(daBottom - screenBottom < maxJump) { - descendantFocusability = daBottom - screenBottom; - } - } - - if(descendantFocusability == 0) { - return false; - } - - this.doScrollY(direction == 130?descendantFocusability:-descendantFocusability); - } - - if(currentFocused != null && currentFocused.isFocused() && this.isOffScreen(currentFocused)) { - descendantFocusability = this.getDescendantFocusability(); - //noinspection ResourceType - this.setDescendantFocusability(131072); - this.requestFocus(); - this.setDescendantFocusability(descendantFocusability); - } - - return true; - } - - private boolean isOffScreen(View descendant) { - return !this.isWithinDeltaOfScreen(descendant, 0, this.getHeight()); - } - - private boolean isWithinDeltaOfScreen(View descendant, int delta, int height) { - descendant.getDrawingRect(this.mTempRect); - this.offsetDescendantRectToMyCoords(descendant, this.mTempRect); - return this.mTempRect.bottom + delta >= this.getScrollY() && this.mTempRect.top - delta <= this.getScrollY() + height; - } - - private void doScrollY(int delta) { - if(delta != 0) { - if(this.mSmoothScrollingEnabled) { - this.smoothScrollBy(0, delta); - } else { - this.scrollBy(0, delta); - } - } - - } - - public final void smoothScrollBy(int dx, int dy) { - if(this.getChildCount() != 0) { - long duration = AnimationUtils.currentAnimationTimeMillis() - this.mLastScroll; - if(duration > 250L) { - int height = this.getHeight() - this.getPaddingBottom() - this.getPaddingTop(); - int bottom = this.getChildAt(0).getHeight(); - int maxY = Math.max(0, bottom - height); - int scrollY = this.getScrollY(); - dy = Math.max(0, Math.min(scrollY + dy, maxY)) - scrollY; - this.mScroller.startScroll(this.getScrollX(), scrollY, 0, dy); - ViewCompat.postInvalidateOnAnimation(this); - } else { - if(!this.mScroller.isFinished()) { - this.mScroller.abortAnimation(); - } - - this.scrollBy(dx, dy); - } - - this.mLastScroll = AnimationUtils.currentAnimationTimeMillis(); - } - } - - public final void smoothScrollTo(int x, int y) { - this.smoothScrollBy(x - this.getScrollX(), y - this.getScrollY()); - } - - protected int computeVerticalScrollRange() { - int count = this.getChildCount(); - int contentHeight = this.getHeight() - this.getPaddingBottom() - this.getPaddingTop(); - if(count == 0) { - return contentHeight; - } else { - int scrollRange = this.getChildAt(0).getBottom(); - int scrollY = this.getScrollY(); - int overscrollBottom = Math.max(0, scrollRange - contentHeight); - if(scrollY < 0) { - scrollRange -= scrollY; - } else if(scrollY > overscrollBottom) { - scrollRange += scrollY - overscrollBottom; - } - - return scrollRange; - } - } - - protected int computeVerticalScrollOffset() { - return Math.max(0, super.computeVerticalScrollOffset()); - } - - protected void measureChild(View child, int parentWidthMeasureSpec, int parentHeightMeasureSpec) { - LayoutParams lp = (LayoutParams) child.getLayoutParams(); - int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, this.getPaddingLeft() + this.getPaddingRight(), lp.width); - //noinspection ResourceType - int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, 0); - child.measure(childWidthMeasureSpec, childHeightMeasureSpec); - } - - protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) { - MarginLayoutParams lp = (MarginLayoutParams)child.getLayoutParams(); - int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, this.getPaddingLeft() + this.getPaddingRight() + lp.leftMargin + lp.rightMargin + widthUsed, lp.width); - //noinspection ResourceType - int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.topMargin + lp.bottomMargin, 0); - child.measure(childWidthMeasureSpec, childHeightMeasureSpec); - } - - public void computeScroll() { - if(this.mScroller.computeScrollOffset()) { - int oldX = this.getScrollX(); - int oldY = this.getScrollY(); - int x = this.mScroller.getCurrX(); - int y = this.mScroller.getCurrY(); - if(oldX != x || oldY != y) { - int range = this.getScrollRange(); - int overscrollMode = ViewCompat.getOverScrollMode(this); - boolean canOverscroll = overscrollMode == 0 || overscrollMode == 1 && range > 0; - this.overScrollByCompat(x - oldX, y - oldY, oldX, oldY, 0, range, 0, 0, false); - if(canOverscroll) { - this.ensureGlows(); - if(y <= 0 && oldY > 0) { - this.mEdgeGlowTop.onAbsorb((int)this.mScroller.getCurrVelocity()); - } else if(y >= range && oldY < range) { - this.mEdgeGlowBottom.onAbsorb((int)this.mScroller.getCurrVelocity()); - } - } - } - } - - } - - private void scrollToChild(View child) { - child.getDrawingRect(this.mTempRect); - this.offsetDescendantRectToMyCoords(child, this.mTempRect); - int scrollDelta = this.computeScrollDeltaToGetChildRectOnScreen(this.mTempRect); - if(scrollDelta != 0) { - this.scrollBy(0, scrollDelta); - } - - } - - private boolean scrollToChildRect(Rect rect, boolean immediate) { - int delta = this.computeScrollDeltaToGetChildRectOnScreen(rect); - boolean scroll = delta != 0; - if(scroll) { - if(immediate) { - this.scrollBy(0, delta); - } else { - this.smoothScrollBy(0, delta); - } - } - - return scroll; - } - - protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) { - if(this.getChildCount() == 0) { - return 0; - } else { - int height = this.getHeight(); - int screenTop = this.getScrollY(); - int screenBottom = screenTop + height; - int fadingEdge = this.getVerticalFadingEdgeLength(); - if(rect.top > 0) { - screenTop += fadingEdge; - } - - if(rect.bottom < this.getChildAt(0).getHeight()) { - screenBottom -= fadingEdge; - } - - int scrollYDelta = 0; - if(rect.bottom > screenBottom && rect.top > screenTop) { - if(rect.height() > height) { - scrollYDelta += rect.top - screenTop; - } else { - scrollYDelta += rect.bottom - screenBottom; - } - - int bottom = this.getChildAt(0).getBottom(); - int distanceToBottom = bottom - screenBottom; - scrollYDelta = Math.min(scrollYDelta, distanceToBottom); - } else if(rect.top < screenTop && rect.bottom < screenBottom) { - if(rect.height() > height) { - scrollYDelta -= screenBottom - rect.bottom; - } else { - scrollYDelta -= screenTop - rect.top; - } - - scrollYDelta = Math.max(scrollYDelta, -this.getScrollY()); - } - - return scrollYDelta; - } - } - - public void requestChildFocus(View child, View focused) { - if(!this.mIsLayoutDirty) { - this.scrollToChild(focused); - } else { - this.mChildToScrollTo = focused; - } - - super.requestChildFocus(child, focused); - } - - protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) { - if(direction == 2) { - direction = 130; - } else if(direction == 1) { - direction = 33; - } - - View nextFocus = previouslyFocusedRect == null?FocusFinder.getInstance().findNextFocus(this, null, direction):FocusFinder.getInstance().findNextFocusFromRect(this, previouslyFocusedRect, direction); - return nextFocus != null && (!this.isOffScreen(nextFocus) && - nextFocus.requestFocus(direction, previouslyFocusedRect)); - } - - public boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) { - rectangle.offset(child.getLeft() - child.getScrollX(), child.getTop() - child.getScrollY()); - return this.scrollToChildRect(rectangle, immediate); - } - - public void requestLayout() { - this.mIsLayoutDirty = true; - super.requestLayout(); - } - - protected void onLayout(boolean changed, int l, int t, int r, int b) { - super.onLayout(changed, l, t, r, b); - this.mIsLayoutDirty = false; - if(this.mChildToScrollTo != null && isViewDescendantOf(this.mChildToScrollTo, this)) { - this.scrollToChild(this.mChildToScrollTo); - } - - this.mChildToScrollTo = null; - if(!this.mIsLaidOut) { - if(this.mSavedState != null) { - this.scrollTo(this.getScrollX(), this.mSavedState.scrollPosition); - this.mSavedState = null; - } - - int childHeight = this.getChildCount() > 0?this.getChildAt(0).getMeasuredHeight():0; - int scrollRange = Math.max(0, childHeight - (b - t - this.getPaddingBottom() - this.getPaddingTop())); - if(this.getScrollY() > scrollRange) { - this.scrollTo(this.getScrollX(), scrollRange); - } else if(this.getScrollY() < 0) { - this.scrollTo(this.getScrollX(), 0); - } - } - - this.scrollTo(this.getScrollX(), this.getScrollY()); - this.mIsLaidOut = true; - } - - @SuppressLint("MissingSuperCall") - public void onAttachedToWindow() { - this.mIsLaidOut = false; - } - - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - View currentFocused = this.findFocus(); - if(null != currentFocused && this != currentFocused) { - if(this.isWithinDeltaOfScreen(currentFocused, 0, oldh)) { - currentFocused.getDrawingRect(this.mTempRect); - this.offsetDescendantRectToMyCoords(currentFocused, this.mTempRect); - int scrollDelta = this.computeScrollDeltaToGetChildRectOnScreen(this.mTempRect); - this.doScrollY(scrollDelta); - } - - } - } - - private static boolean isViewDescendantOf(View child, View parent) { - if(child == parent) { - return true; - } else { - ViewParent theParent = child.getParent(); - return theParent instanceof ViewGroup && isViewDescendantOf((View)theParent, parent); - } - } - - /** - * Adjusted from AppCompat v23.0.0 so that the function returns true if the nested fling will - * end at the top of the scroll view. Which means that it should be dispatched to the - * CoordinatorLayout/AppBarLayout - * @param velocityY - * @return - */ - public boolean fling(int velocityY) { - if(this.getChildCount() > 0) { - int height = this.getHeight() - this.getPaddingBottom() - this.getPaddingTop(); - int bottom = this.getChildAt(0).getHeight(); - this.mScroller.fling(this.getScrollX(), this.getScrollY(), 0, velocityY, 0, 0, 0, Math.max(0, bottom - height), 0, height / 2); - ViewCompat.postInvalidateOnAnimation(this); - return mScroller.getFinalY() == 0; - } - return false; - } - - private void flingWithNestedDispatch(int velocityY) { - int scrollY = this.getScrollY(); - boolean canFling = (scrollY > 0 || velocityY > 0) && (scrollY < this.getScrollRange() || velocityY < 0); - if(!this.dispatchNestedPreFling(0.0F, (float)velocityY)) { - boolean dispatchFling = true; - if (canFling) - dispatchFling = fling(velocityY); - this.dispatchNestedFling(0.0F, (float)velocityY, !dispatchFling); - } - - } - - private void endDrag() { - this.mIsBeingDragged = false; - this.recycleVelocityTracker(); - this.stopNestedScroll(); - if(this.mEdgeGlowTop != null) { - this.mEdgeGlowTop.onRelease(); - this.mEdgeGlowBottom.onRelease(); - } - - } - - public void scrollTo(int x, int y) { - if(this.getChildCount() > 0) { - View child = this.getChildAt(0); - x = clamp(x, this.getWidth() - this.getPaddingRight() - this.getPaddingLeft(), child.getWidth()); - y = clamp(y, this.getHeight() - this.getPaddingBottom() - this.getPaddingTop(), child.getHeight()); - if(x != this.getScrollX() || y != this.getScrollY()) { - super.scrollTo(x, y); - } - } - - } - - private void ensureGlows() { - if(ViewCompat.getOverScrollMode(this) != 2) { - if(this.mEdgeGlowTop == null) { - Context context = this.getContext(); - this.mEdgeGlowTop = new EdgeEffectCompat(context); - this.mEdgeGlowBottom = new EdgeEffectCompat(context); - } - } else { - this.mEdgeGlowTop = null; - this.mEdgeGlowBottom = null; - } - - } - - public void draw(Canvas canvas) { - super.draw(canvas); - if(this.mEdgeGlowTop != null) { - int scrollY = this.getScrollY(); - int restoreCount; - int width; - if(!this.mEdgeGlowTop.isFinished()) { - restoreCount = canvas.save(); - width = this.getWidth() - this.getPaddingLeft() - this.getPaddingRight(); - canvas.translate((float)this.getPaddingLeft(), (float)Math.min(0, scrollY)); - this.mEdgeGlowTop.setSize(width, this.getHeight()); - if(this.mEdgeGlowTop.draw(canvas)) { - ViewCompat.postInvalidateOnAnimation(this); - } - - canvas.restoreToCount(restoreCount); - } - - if(!this.mEdgeGlowBottom.isFinished()) { - restoreCount = canvas.save(); - width = this.getWidth() - this.getPaddingLeft() - this.getPaddingRight(); - int height = this.getHeight(); - canvas.translate((float)(-width + this.getPaddingLeft()), (float)(Math.max(this.getScrollRange(), scrollY) + height)); - canvas.rotate(180.0F, (float)width, 0.0F); - this.mEdgeGlowBottom.setSize(width, height); - if(this.mEdgeGlowBottom.draw(canvas)) { - ViewCompat.postInvalidateOnAnimation(this); - } - - canvas.restoreToCount(restoreCount); - } - } - - } - - private static int clamp(int n, int my, int child) { - return my < child && n >= 0?(my + n > child?child - my:n):0; - } - - protected void onRestoreInstanceState(Parcelable state) { - FlingNestedScrollView.SavedState ss = (FlingNestedScrollView.SavedState)state; - super.onRestoreInstanceState(ss.getSuperState()); - this.mSavedState = ss; - this.requestLayout(); - } - - protected Parcelable onSaveInstanceState() { - Parcelable superState = super.onSaveInstanceState(); - FlingNestedScrollView.SavedState ss = new FlingNestedScrollView.SavedState(superState); - ss.scrollPosition = this.getScrollY(); - return ss; - } - - static class AccessibilityDelegate extends AccessibilityDelegateCompat { - AccessibilityDelegate() { - } - - public boolean performAccessibilityAction(View host, int action, Bundle arguments) { - if(super.performAccessibilityAction(host, action, arguments)) { - return true; - } else { - FlingNestedScrollView nsvHost = (FlingNestedScrollView)host; - if(!nsvHost.isEnabled()) { - return false; - } else { - int viewportHeight; - int targetScrollY; - switch(action) { - case 4096: - viewportHeight = nsvHost.getHeight() - nsvHost.getPaddingBottom() - nsvHost.getPaddingTop(); - targetScrollY = Math.min(nsvHost.getScrollY() + viewportHeight, nsvHost.getScrollRange()); - if(targetScrollY != nsvHost.getScrollY()) { - nsvHost.smoothScrollTo(0, targetScrollY); - return true; - } - - return false; - case 8192: - viewportHeight = nsvHost.getHeight() - nsvHost.getPaddingBottom() - nsvHost.getPaddingTop(); - targetScrollY = Math.max(nsvHost.getScrollY() - viewportHeight, 0); - if(targetScrollY != nsvHost.getScrollY()) { - nsvHost.smoothScrollTo(0, targetScrollY); - return true; - } - - return false; - default: - return false; - } - } - } - } - - public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) { - super.onInitializeAccessibilityNodeInfo(host, info); - FlingNestedScrollView nsvHost = (FlingNestedScrollView)host; - info.setClassName(ScrollView.class.getName()); - if(nsvHost.isEnabled()) { - int scrollRange = nsvHost.getScrollRange(); - if(scrollRange > 0) { - info.setScrollable(true); - if(nsvHost.getScrollY() > 0) { - info.addAction(8192); - } - - if(nsvHost.getScrollY() < scrollRange) { - info.addAction(4096); - } - } - } - - } - - public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { - super.onInitializeAccessibilityEvent(host, event); - FlingNestedScrollView nsvHost = (FlingNestedScrollView)host; - event.setClassName(ScrollView.class.getName()); - AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); - boolean scrollable = nsvHost.getScrollRange() > 0; - record.setScrollable(scrollable); - record.setScrollX(nsvHost.getScrollX()); - record.setScrollY(nsvHost.getScrollY()); - record.setMaxScrollX(nsvHost.getScrollX()); - record.setMaxScrollY(nsvHost.getScrollRange()); - } - } - - static class SavedState extends BaseSavedState { - public int scrollPosition; - public static final Creator CREATOR = new Creator() { - public FlingNestedScrollView.SavedState createFromParcel(Parcel in) { - return new FlingNestedScrollView.SavedState(in); - } - - public FlingNestedScrollView.SavedState[] newArray(int size) { - return new FlingNestedScrollView.SavedState[size]; - } - }; - - SavedState(Parcelable superState) { - super(superState); - } - - public SavedState(Parcel source) { - super(source); - this.scrollPosition = source.readInt(); - } - - public void writeToParcel(Parcel dest, int flags) { - super.writeToParcel(dest, flags); - dest.writeInt(this.scrollPosition); - } - - public String toString() { - return "HorizontalScrollView.SavedState{" + Integer.toHexString(System.identityHashCode(this)) + " scrollPosition=" + this.scrollPosition + "}"; - } - } -} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index a1df7832d..8febc38b9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -26,7 +26,7 @@ import android.accounts.AccountManager; import android.app.Application; import android.content.Context; import android.graphics.Bitmap; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.widget.Toast; import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -106,7 +106,7 @@ public class KeychainApplication extends Application { KeyserverSyncManager.updateKeyserverSyncScheduleAsync(this, false); - TemporaryFileProvider.scheduleCleanupImmediately(); + TemporaryFileProvider.scheduleCleanupImmediately(getApplicationContext()); analyticsManager = AnalyticsManager.getInstance(getApplicationContext()); analyticsManager.initialize(this); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java index ae9fb9f0d..160005f79 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java @@ -23,11 +23,11 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import android.arch.persistence.db.SupportSQLiteDatabase; -import android.arch.persistence.db.SupportSQLiteOpenHelper; -import android.arch.persistence.db.SupportSQLiteOpenHelper.Callback; -import android.arch.persistence.db.SupportSQLiteOpenHelper.Configuration; -import android.arch.persistence.db.framework.FrameworkSQLiteOpenHelperFactory; +import androidx.sqlite.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteOpenHelper; +import androidx.sqlite.db.SupportSQLiteOpenHelper.Callback; +import androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration; +import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory; import android.content.Context; import android.database.Cursor; import android.database.SQLException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/NotificationChannelManager.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/NotificationChannelManager.java index 63806e577..310be32ac 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/NotificationChannelManager.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/NotificationChannelManager.java @@ -6,8 +6,8 @@ import android.app.NotificationManager; import android.content.Context; import android.os.Build; import android.os.Build.VERSION_CODES; -import android.support.annotation.RequiresApi; -import android.support.annotation.StringRes; +import androidx.annotation.RequiresApi; +import androidx.annotation.StringRes; public class NotificationChannelManager { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/AppCompatPreferenceActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/AppCompatPreferenceActivity.java index b77fce985..cae84150f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/AppCompatPreferenceActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/AppCompatPreferenceActivity.java @@ -19,11 +19,11 @@ package org.sufficientlysecure.keychain.compatibility; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceActivity; -import android.support.annotation.LayoutRes; -import android.support.annotation.Nullable; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatDelegate; -import android.support.v7.widget.Toolbar; +import androidx.annotation.LayoutRes; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.appcompat.widget.Toolbar; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java index eb550e3ef..d4144d285 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.compatibility; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import timber.log.Timber; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AbstractDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AbstractDao.java index 4500e4a75..f123c9160 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AbstractDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AbstractDao.java @@ -4,8 +4,8 @@ package org.sufficientlysecure.keychain.daos; import java.util.ArrayList; import java.util.List; -import android.arch.persistence.db.SupportSQLiteDatabase; -import android.arch.persistence.db.SupportSQLiteQuery; +import androidx.sqlite.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteQuery; import android.database.Cursor; import com.squareup.sqldelight.RowMapper; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java index 773ba27fd..2d4a05e67 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java @@ -24,7 +24,7 @@ import java.util.List; import android.content.Context; import android.database.Cursor; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.squareup.sqldelight.SqlDelightQuery; import org.sufficientlysecure.keychain.AutocryptPeersModel.DeleteByIdentifier; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/DatabaseBatchInteractor.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/DatabaseBatchInteractor.java index 67913ab53..788f77d14 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/DatabaseBatchInteractor.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/DatabaseBatchInteractor.java @@ -3,7 +3,7 @@ package org.sufficientlysecure.keychain.daos; import java.util.List; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import org.sufficientlysecure.keychain.CertsModel.InsertCert; import org.sufficientlysecure.keychain.KeyRingsPublicModel.InsertKeyRingPublic; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java index 59d457b5c..4cb0b33ea 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyRepository.java @@ -24,7 +24,7 @@ import java.util.List; import android.content.Context; import android.database.Cursor; -import android.support.annotation.WorkerThread; +import androidx.annotation.WorkerThread; import com.squareup.sqldelight.SqlDelightQuery; import org.bouncycastle.bcpg.ArmoredOutputStream; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyWritableRepository.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyWritableRepository.java index 8e4c17024..cf7d3a610 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyWritableRepository.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/KeyWritableRepository.java @@ -25,10 +25,10 @@ import java.util.Collections; import java.util.Date; import java.util.List; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v4.util.LongSparseArray; +import androidx.annotation.NonNull; +import androidx.collection.LongSparseArray; import org.openintents.openpgp.util.OpenPgpUtils; import org.sufficientlysecure.keychain.KeyRingsPublicModel.DeleteByMasterKeyId; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/CloudSearch.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/CloudSearch.java index a054c4524..d8f01711e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/CloudSearch.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/CloudSearch.java @@ -17,7 +17,7 @@ package org.sufficientlysecure.keychain.keyimport; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.util.ParcelableProxy; import org.sufficientlysecure.keychain.util.Preferences; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserverClient.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserverClient.java index 1ed579685..0553eb626 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserverClient.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/FacebookKeyserverClient.java @@ -26,8 +26,8 @@ import java.util.List; import java.util.regex.Matcher; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverAddress.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverAddress.java index 14a088b88..75e5912f1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverAddress.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverAddress.java @@ -22,8 +22,8 @@ import java.net.URI; import java.net.URISyntaxException; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverClient.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverClient.java index c94854a68..f838aa757 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverClient.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserverClient.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.keyimport; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import okhttp3.MediaType; import okhttp3.ResponseBody; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java index b42475861..b69e167d5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.keyimport; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/WebKeyDirectoryClient.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/WebKeyDirectoryClient.java index c37522c59..3983789a6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/WebKeyDirectoryClient.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/WebKeyDirectoryClient.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.keyimport; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListCloudLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListCloudLoader.java index 69cca2a6a..05358de4b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListCloudLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListCloudLoader.java @@ -18,8 +18,8 @@ package org.sufficientlysecure.keychain.keyimport.processing; import android.content.Context; -import android.support.annotation.Nullable; -import android.support.v4.content.AsyncTaskLoader; +import androidx.annotation.Nullable; +import androidx.loader.content.AsyncTaskLoader; import org.sufficientlysecure.keychain.keyimport.CloudSearch; import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.keyimport.KeyserverClient; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java index a53e82118..ef79ce671 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.keyimport.processing; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v4.content.AsyncTaskLoader; +import androidx.annotation.NonNull; +import androidx.loader.content.AsyncTaskLoader; import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.operations.results.GetKeyResult; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncManager.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncManager.java index fc452e133..6cd1fdc11 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncManager.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncManager.java @@ -19,22 +19,22 @@ package org.sufficientlysecure.keychain.keysync; import java.util.UUID; +import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import android.content.Context; import android.os.AsyncTask; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import android.support.annotation.WorkerThread; +import androidx.annotation.WorkerThread; import androidx.work.Constraints.Builder; import androidx.work.NetworkType; import androidx.work.OneTimeWorkRequest; import androidx.work.PeriodicWorkRequest; -import androidx.work.State; -import androidx.work.SynchronousWorkManager; +import androidx.work.WorkInfo; +import androidx.work.WorkInfo.State; import androidx.work.WorkManager; -import androidx.work.WorkStatus; import org.sufficientlysecure.keychain.util.Preferences; import timber.log.Timber; @@ -58,30 +58,26 @@ public class KeyserverSyncManager { @WorkerThread private static void updateKeyserverSyncSchedule(Context context, boolean forceReschedule) { Preferences prefs = Preferences.getPreferences(context); - WorkManager workManager = WorkManager.getInstance(); - if (workManager == null) { - Timber.e("WorkManager unavailable!"); - return; - } - SynchronousWorkManager synchronousWorkManager = workManager.synchronous(); - if (synchronousWorkManager == null) { - Timber.e("WorkManager unavailable!"); - return; - } + WorkManager workManager = WorkManager.getInstance(context); UUID workUuid = prefs.getKeyserverSyncWorkUuid(); - WorkStatus status = workUuid != null ? synchronousWorkManager.getStatusByIdSync(workUuid) : null; - boolean workIsScheduled = status != null && status.getState() != State.CANCELLED; - if (workIsScheduled == prefs.isKeyserverSyncEnabled()) { - if (!forceReschedule) { - Timber.d("Key sync already scheduled, no changes necessary"); - return; + try { + WorkInfo info = workUuid != null ? workManager.getWorkInfoById(workUuid).get() : null; + + boolean workIsScheduled = info != null && info.getState() != State.CANCELLED; + if (workIsScheduled == prefs.isKeyserverSyncEnabled()) { + if (!forceReschedule) { + Timber.d("Key sync already scheduled, no changes necessary"); + return; + } + Timber.d("Key sync already scheduled, but forcing reschedule"); } - Timber.d("Key sync already scheduled, but forcing reschedule"); + } catch (ExecutionException | InterruptedException e) { + Timber.e(e, "Error getting info for scheduled key sync work?"); } Timber.d("Cancelling sync tasks…"); - synchronousWorkManager.cancelAllWorkByTagSync(PERIODIC_WORK_TAG); + workManager.cancelAllWorkByTag(PERIODIC_WORK_TAG); if (!prefs.isKeyserverSyncEnabled()) { Timber.d("Key sync disabled"); @@ -102,14 +98,17 @@ public class KeyserverSyncManager { .setConstraints(constraints.build()) .addTag(PERIODIC_WORK_TAG) .build(); - synchronousWorkManager.enqueueSync(workRequest); - - Timber.d("Work id: %s", workRequest.getId()); - prefs.setKeyserverSyncScheduled(workRequest.getId()); + try { + workManager.enqueue(workRequest).getResult().get(); + Timber.d("Work id: %s", workRequest.getId()); + prefs.setKeyserverSyncScheduled(workRequest.getId()); + } catch (InterruptedException | ExecutionException e) { + Timber.e(e, "Error enqueueing job!"); + } } - public static void debugRunSyncNow() { - WorkManager workManager = WorkManager.getInstance(); + public static void debugRunSyncNow(Context context) { + WorkManager workManager = WorkManager.getInstance(context); OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(KeyserverSyncWorker.class).build(); workManager.enqueue(workRequest); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncWorker.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncWorker.java index 2d9b2fdb8..8e562769b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncWorker.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keysync/KeyserverSyncWorker.java @@ -5,11 +5,12 @@ import java.util.concurrent.atomic.AtomicBoolean; import android.app.NotificationManager; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationCompat.Builder; +import androidx.annotation.NonNull; +import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationCompat.Builder; import androidx.work.Worker; +import androidx.work.WorkerParameters; import org.sufficientlysecure.keychain.Constants.NotificationIds; import org.sufficientlysecure.keychain.NotificationChannelManager; import org.sufficientlysecure.keychain.R; @@ -28,9 +29,13 @@ import timber.log.Timber; public class KeyserverSyncWorker extends Worker { private AtomicBoolean cancellationSignal = new AtomicBoolean(false); + public KeyserverSyncWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + } + @NonNull @Override - public WorkerResult doWork() { + public Result doWork() { KeyWritableRepository keyWritableRepository = KeyWritableRepository.create(getApplicationContext()); Timber.d("Starting key sync…"); @@ -47,7 +52,7 @@ public class KeyserverSyncWorker extends Worker { * @param result * result of keyserver sync */ - private WorkerResult handleUpdateResult(ImportKeyResult result) { + private Result handleUpdateResult(ImportKeyResult result) { if (result.isPending()) { Timber.d("Orbot required for sync but not running, attempting to start"); // result is pending due to Orbot not being started @@ -62,13 +67,13 @@ public class KeyserverSyncWorker extends Worker { OrbotRequiredDialogActivity.showOrbotRequiredNotification(getApplicationContext()); } }.startOrbotAndListen(getApplicationContext(), false); - return WorkerResult.RETRY; + return Result.retry(); } else if (isStopped()) { Timber.d("Keyserver sync cancelled"); - return WorkerResult.FAILURE; + return Result.failure(); } else { Timber.d("Keyserver sync completed: Updated: %d, Failed: %d", result.mUpdatedKeys, result.mBadKeys); - return WorkerResult.SUCCESS; + return Result.success(); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/Certification.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/Certification.java index 391af0cc7..2a06d837f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/Certification.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/Certification.java @@ -3,7 +3,7 @@ package org.sufficientlysecure.keychain.model; import java.util.Date; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.CertsModel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/CustomColumnAdapters.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/CustomColumnAdapters.java index bfaa83caa..9ebcceab1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/CustomColumnAdapters.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/CustomColumnAdapters.java @@ -3,7 +3,7 @@ package org.sufficientlysecure.keychain.model; import java.util.Date; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.squareup.sqldelight.ColumnAdapter; import org.sufficientlysecure.keychain.model.AutocryptPeer.GossipOrigin; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeyRingPublic.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeyRingPublic.java index 4f42685cb..bb1604a8c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeyRingPublic.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeyRingPublic.java @@ -1,11 +1,10 @@ package org.sufficientlysecure.keychain.model; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.KeyRingsPublicModel; -import org.sufficientlysecure.keychain.KeysModel.InsertKey; @AutoValue diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java index a79621e21..fe101cfb8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java @@ -1,7 +1,7 @@ package org.sufficientlysecure.keychain.model; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.KeySignaturesModel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/SubKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/SubKey.java index 71eed7579..c963aa330 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/SubKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/SubKey.java @@ -6,7 +6,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import com.google.auto.value.AutoValue; import com.squareup.sqldelight.RowMapper; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/UserPacket.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/UserPacket.java index 6bd833a81..79af3633b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/UserPacket.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/UserPacket.java @@ -1,8 +1,8 @@ package org.sufficientlysecure.keychain.model; -import android.arch.persistence.db.SupportSQLiteDatabase; -import android.support.annotation.NonNull; +import androidx.sqlite.db.SupportSQLiteDatabase; +import androidx.annotation.NonNull; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.UserPacketsModel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/KeyTransferInteractor.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/KeyTransferInteractor.java index 1fb9e387d..0ba4c9d96 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/KeyTransferInteractor.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/KeyTransferInteractor.java @@ -41,8 +41,8 @@ import java.util.Set; import android.os.Build.VERSION_CODES; import android.os.Handler; import android.os.Looper; -import android.support.annotation.Nullable; -import android.support.annotation.RequiresApi; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLHandshakeException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/SktUri.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/SktUri.java index 887c762aa..7186c8237 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/SktUri.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/SktUri.java @@ -21,8 +21,8 @@ import java.net.URISyntaxException; import java.nio.charset.Charset; import android.annotation.SuppressLint; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.bouncycastle.util.encoders.DecoderException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/TlsPskCompat.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/TlsPskCompat.java index 7a83eac34..24886557a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/TlsPskCompat.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/TlsPskCompat.java @@ -6,7 +6,7 @@ import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import android.os.Build.VERSION_CODES; -import android.support.annotation.RequiresApi; +import androidx.annotation.RequiresApi; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/orbot/OrbotHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/orbot/OrbotHelper.java index 5bb3b0e44..78bafe195 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/orbot/OrbotHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/network/orbot/OrbotHelper.java @@ -61,8 +61,8 @@ import android.net.Uri; import android.os.Handler; import android.os.Message; import android.os.Messenger; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.text.TextUtils; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java index f3c85fc0a..f870c5386 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java @@ -32,8 +32,8 @@ import java.util.regex.Pattern; import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.bouncycastle.bcpg.ArmoredOutputStream; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java index a5cc4602d..b645dd629 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java @@ -22,8 +22,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; import org.sufficientlysecure.keychain.Constants.key; import org.sufficientlysecure.keychain.daos.KeyRepository; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java index 353ecc5d1..144dd215b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.operations; import java.util.Random; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.bouncycastle.bcpg.HashAlgorithmTags; import org.bouncycastle.bcpg.S2K; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java index 87eaccd8f..cea093a48 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.daos.KeyMetadataDao; import org.sufficientlysecure.keychain.daos.KeyRepository.NotFoundException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ChangeUnlockOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ChangeUnlockOperation.java index bb14199c1..0111e55a3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ChangeUnlockOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ChangeUnlockOperation.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.operations; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.EditKeyResult; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/DeleteOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/DeleteOperation.java index 31564146d..ab5951173 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/DeleteOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/DeleteOperation.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.operations; import java.util.Collections; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.operations.results.DeleteResult; import org.sufficientlysecure.keychain.operations.results.OperationResult; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java index 053ca87b0..573fba8f2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.daos.KeyMetadataDao; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportOperation.java index 5c508e88b..833b40ec8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportOperation.java @@ -32,8 +32,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.daos.KeyMetadataDao; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java index 222e75d7a..8936d05b5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java @@ -28,7 +28,7 @@ import java.util.ArrayList; import android.content.ClipDescription; import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.TextUtils; import android.webkit.MimeTypeMap; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/KeySyncOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/KeySyncOperation.java index a22650e37..e2e589380 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/KeySyncOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/KeySyncOperation.java @@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.daos.KeyMetadataDao; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperation.java index b1126cf2f..a895f5509 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperation.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.daos.KeyRepository.NotFoundException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/RevokeOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/RevokeOperation.java index 3df9fc4c5..36101cfa0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/RevokeOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/RevokeOperation.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.operations; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; import org.sufficientlysecure.keychain.operations.results.EditKeyResult; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/SignEncryptOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/SignEncryptOperation.java index 20bcd19e8..5f5949c9b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/SignEncryptOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/SignEncryptOperation.java @@ -24,7 +24,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.daos.KeyRepository; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/UploadOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/UploadOperation.java index f7c70e671..d5b54cc8c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/UploadOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/UploadOperation.java @@ -24,8 +24,8 @@ import java.net.Proxy; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.bouncycastle.bcpg.ArmoredOutputStream; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java index d6475e002..4819977b6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.operations.results; import android.app.Activity; import android.content.Intent; import android.os.Parcel; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputDataResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputDataResult.java index 98d2e9818..7fafe0e07 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputDataResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputDataResult.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import android.net.Uri; import android.os.Parcel; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.openintents.openpgp.OpenPgpMetadata; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java index 5f456bae8..3a3b7c8e5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/InputPendingResult.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.operations.results; import android.os.Parcel; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index 872f13ac4..98c990ca8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -22,7 +22,7 @@ import android.content.Intent; import android.content.res.Resources; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.LogDisplayActivity; import org.sufficientlysecure.keychain.ui.LogDisplayFragment; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/RevokeResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/RevokeResult.java index 4dc86c2c0..19fb0341a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/RevokeResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/RevokeResult.java @@ -21,7 +21,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/UploadResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/UploadResult.java index ea6436e24..5d5fd9de0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/UploadResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/UploadResult.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.operations.results; import android.os.Parcel; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java index a9b24b4ac..aa5a7b1f2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java @@ -24,7 +24,7 @@ import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.bouncycastle.openpgp.PGPObjectFactory; import org.bouncycastle.openpgp.PGPPublicKey; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyInputParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyInputParcel.java index d21f7b1c4..efa150c5a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyInputParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyInputParcel.java @@ -23,7 +23,7 @@ import java.util.List; import android.net.Uri; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java index 9fdc6362d..d5f4ba42f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java @@ -33,7 +33,7 @@ import java.util.Map; import java.util.Map.Entry; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.TextUtils; import android.webkit.MimeTypeMap; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java index 666d73599..1310c654d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java @@ -21,10 +21,10 @@ package org.sufficientlysecure.keychain.pgp; import java.util.regex.Matcher; import java.util.regex.Pattern; -import android.support.annotation.CheckResult; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.CheckResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import timber.log.Timber; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index ede83699a..2533c626a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -35,7 +35,7 @@ import java.util.List; import java.util.Stack; import java.util.concurrent.atomic.AtomicBoolean; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.nist.NISTNamedCurves; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java index 6c0f40c77..68372eb5f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSecurityConstants.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.pgp; import java.util.Arrays; import java.util.HashSet; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.bouncycastle.asn1.nist.NISTNamedCurves; import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptData.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptData.java index 294992655..e10a161a5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptData.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptData.java @@ -24,7 +24,7 @@ import java.util.Collections; import java.util.List; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInputParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInputParcel.java index bfe21c976..d7b54117e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInputParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInputParcel.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.pgp; import android.net.Uri; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java index 32bb301dc..855221930 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java @@ -37,7 +37,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.bouncycastle.bcpg.ArmoredOutputStream; import org.bouncycastle.bcpg.BCPGOutputStream; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/SignEncryptParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/SignEncryptParcel.java index 2bd344855..d78c794c8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/SignEncryptParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/SignEncryptParcel.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.pgp; import android.net.Uri; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java index aea544be8..d2ec4125f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -36,7 +36,7 @@ import java.util.Set; import java.util.TimeZone; import java.util.TreeSet; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import org.bouncycastle.bcpg.ArmoredOutputStream; import org.bouncycastle.bcpg.PublicKeyAlgorithmTags; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java index dde5ef6ab..4372190f9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java @@ -5,8 +5,8 @@ import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; public class KeychainProvider extends ContentProvider { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryFileProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryFileProvider.java index 18ca44a0d..ee17e925c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryFileProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryFileProvider.java @@ -38,11 +38,12 @@ import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.os.ParcelFileDescriptor; import android.provider.MediaStore; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManager; import androidx.work.Worker; +import androidx.work.WorkerParameters; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.util.DatabaseUtil; import timber.log.Timber; @@ -314,18 +315,21 @@ public class TemporaryFileProvider extends ContentProvider { WorkManager.getInstance().enqueue(cleanupWork); } - public static void scheduleCleanupImmediately() { + public static void scheduleCleanupImmediately(Context context) { OneTimeWorkRequest cleanupWork = new OneTimeWorkRequest.Builder(CleanupWorker.class).build(); - WorkManager workManager = WorkManager.getInstance(); - if (workManager != null) { // it's possible this is null, if this is called in onCreate of secondary processes - workManager.enqueue(cleanupWork); - } + WorkManager workManager = WorkManager.getInstance(context); + workManager.enqueue(cleanupWork); } public static class CleanupWorker extends Worker { + public CleanupWorker(@NonNull Context context, + @NonNull WorkerParameters workerParams) { + super(context, workerParams); + } + @NonNull @Override - public WorkerResult doWork() { + public Result doWork() { Timber.d("Cleaning up temporary files…"); ContentResolver contentResolver = getApplicationContext().getContentResolver(); @@ -335,7 +339,7 @@ public class TemporaryFileProvider extends ContentProvider { new String[]{Long.toString(System.currentTimeMillis() - Constants.TEMPFILE_TTL)} ); - return WorkerResult.SUCCESS; + return Result.success(); } } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AutocryptInteractor.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AutocryptInteractor.java index db6aaa94c..4907f47c7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AutocryptInteractor.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AutocryptInteractor.java @@ -2,15 +2,13 @@ package org.sufficientlysecure.keychain.remote; import java.io.IOException; -import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; import android.content.Context; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.text.format.DateUtils; import org.openintents.openpgp.AutocryptPeerUpdate; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/KeychainExternalProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/KeychainExternalProvider.java index f3a6fca2e..831a01e31 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/KeychainExternalProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/KeychainExternalProvider.java @@ -31,7 +31,7 @@ import android.content.UriMatcher; import android.database.Cursor; import android.database.MatrixCursor; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.widget.Toast; import org.sufficientlysecure.keychain.BuildConfig; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 72075e29a..7e4514fa4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -38,8 +38,8 @@ import android.os.Messenger; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SystemClock; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import org.bouncycastle.bcpg.ArmoredOutputStream; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceKeyIdExtractor.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceKeyIdExtractor.java index 106073ce9..463c1dac0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceKeyIdExtractor.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpServiceKeyIdExtractor.java @@ -27,8 +27,8 @@ import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import org.openintents.openpgp.util.OpenPgpApi; import org.sufficientlysecure.keychain.provider.KeychainExternalContract; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java index 1d43a0b70..fd2ba5fa5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java @@ -27,7 +27,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.v4.app.FragmentManager; +import androidx.fragment.app.FragmentManager; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsAllowedKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsAllowedKeysListFragment.java index e85806428..0e8beddcd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsAllowedKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsAllowedKeysListFragment.java @@ -21,10 +21,10 @@ package org.sufficientlysecure.keychain.remote.ui; import java.util.List; import java.util.Set; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java index 13406266e..dae36fbf6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java @@ -20,19 +20,19 @@ package org.sufficientlysecure.keychain.remote.ui; import java.util.List; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProviders; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteBackupActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteBackupActivity.java index 524e8819c..f16b50b30 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteBackupActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteBackupActivity.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.remote.ui; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.remote.CryptoInputParcelCacheService; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteDisplayTransferCodeActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteDisplayTransferCodeActivity.java index c15c776df..d256b2fa7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteDisplayTransferCodeActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteDisplayTransferCodeActivity.java @@ -25,9 +25,9 @@ import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteRegisterActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteRegisterActivity.java index a68cccc05..d0b020a99 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteRegisterActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteRegisterActivity.java @@ -25,9 +25,9 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteSecurityProblemDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteSecurityProblemDialogActivity.java index 153d52cee..5c49fb2d0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteSecurityProblemDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteSecurityProblemDialogActivity.java @@ -27,10 +27,10 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionActivity.java index a98a239a9..ac22132c7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionActivity.java @@ -25,9 +25,9 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionPresenter.java index 8f45d5fb3..29a3c3e53 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RequestKeyPermissionPresenter.java @@ -23,7 +23,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.Drawable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectPublicKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectPublicKeyFragment.java index f696f78e3..1a8ae735c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectPublicKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectPublicKeyFragment.java @@ -24,11 +24,11 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v7.widget.LinearLayoutManager; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectSignKeyIdListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectSignKeyIdListFragment.java index 5ef3ec72e..365935bce 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectSignKeyIdListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/SelectSignKeyIdListFragment.java @@ -21,11 +21,11 @@ package org.sufficientlysecure.keychain.remote.ui; import java.util.List; import android.app.Activity; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/DialogKeyChoiceAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/DialogKeyChoiceAdapter.java index 7e3b0864f..fcbfc57cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/DialogKeyChoiceAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/DialogKeyChoiceAdapter.java @@ -5,9 +5,9 @@ import java.util.List; import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicateActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicateActivity.java index 057d981a8..ad03f6360 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicateActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicateActivity.java @@ -23,19 +23,19 @@ import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProviders; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java index 6464b4add..9b41914b2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteDeduplicatePresenter.java @@ -20,9 +20,9 @@ package org.sufficientlysecure.keychain.remote.ui.dialog; import java.util.List; -import android.arch.lifecycle.LifecycleOwner; +import androidx.lifecycle.LifecycleOwner; import android.content.Context; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.recyclerview.widget.RecyclerView.Adapter; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java index e320d5e1c..f91b13ff7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyActivity.java @@ -23,9 +23,9 @@ import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProviders; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -33,13 +33,13 @@ import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable.ConstantState; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.content.res.ResourcesCompat; -import android.support.v4.graphics.drawable.DrawableCompat; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; +import androidx.core.content.res.ResourcesCompat; +import androidx.core.graphics.drawable.DrawableCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyPresenter.java index 24f93520a..e45a8ffef 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectAuthenticationKeyPresenter.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.remote.ui.dialog; import java.util.List; -import android.arch.lifecycle.LifecycleOwner; +import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdKeyActivity.java index 3370ebfb6..17ead0307 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdKeyActivity.java @@ -23,9 +23,9 @@ import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProviders; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -34,17 +34,17 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable.ConstantState; import android.os.Bundle; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.transition.Fade; -import android.support.transition.Transition; -import android.support.transition.TransitionListenerAdapter; -import android.support.transition.TransitionManager; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.content.res.ResourcesCompat; -import android.support.v4.graphics.drawable.DrawableCompat; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.transition.Fade; +import androidx.transition.Transition; +import androidx.transition.TransitionListenerAdapter; +import androidx.transition.TransitionManager; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; +import androidx.core.content.res.ResourcesCompat; +import androidx.core.graphics.drawable.DrawableCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdentityKeyPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdentityKeyPresenter.java index ccf865fb2..f5007522e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdentityKeyPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/dialog/RemoteSelectIdentityKeyPresenter.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import android.arch.lifecycle.LifecycleOwner; +import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/NfcTransport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/NfcTransport.java index ac67676b3..41fd2f6ef 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/NfcTransport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/NfcTransport.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.securitytoken; import android.nfc.Tag; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.securitytoken.SecurityTokenInfo.TokenType; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCapabilities.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCapabilities.java index 18f22e9b7..74067dfba 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCapabilities.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCapabilities.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.securitytoken; import java.io.IOException; import java.nio.ByteBuffer; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCommandApduFactory.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCommandApduFactory.java index b31748de1..729a9d85e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCommandApduFactory.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/OpenPgpCommandApduFactory.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.securitytoken; import java.util.ArrayList; import java.util.List; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.bouncycastle.util.Arrays; import org.bouncycastle.util.encoders.Hex; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SCP11bSecureMessaging.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SCP11bSecureMessaging.java index ce882a272..249b2af8e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SCP11bSecureMessaging.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SCP11bSecureMessaging.java @@ -55,8 +55,8 @@ import java.security.spec.InvalidParameterSpecException; import java.util.ArrayList; import android.content.Context; -import android.support.annotation.CheckResult; -import android.support.annotation.NonNull; +import androidx.annotation.CheckResult; +import androidx.annotation.NonNull; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenConnection.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenConnection.java index 0237c12fd..4215af30c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenConnection.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenConnection.java @@ -24,9 +24,9 @@ import java.util.List; import android.content.Context; import android.os.SystemClock; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import org.sufficientlysecure.keychain.securitytoken.SecurityTokenInfo.TokenType; import org.sufficientlysecure.keychain.securitytoken.SecurityTokenInfo.TransportType; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenInfo.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenInfo.java index 9e107371e..4320db59b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenInfo.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/SecurityTokenInfo.java @@ -28,8 +28,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.bouncycastle.util.encoders.Hex; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/Transport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/Transport.java index 826494fb5..5cee7126f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/Transport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/Transport.java @@ -22,7 +22,7 @@ import org.sufficientlysecure.keychain.securitytoken.SecurityTokenInfo.Transport import java.io.IOException; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; /** diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/PsoDecryptTokenOp.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/PsoDecryptTokenOp.java index ceb54cfcb..20cfc041d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/PsoDecryptTokenOp.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/PsoDecryptTokenOp.java @@ -24,8 +24,8 @@ import java.security.Key; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/SecurityTokenChangeKeyTokenOp.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/SecurityTokenChangeKeyTokenOp.java index 3618731ab..6c784326d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/SecurityTokenChangeKeyTokenOp.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/operations/SecurityTokenChangeKeyTokenOp.java @@ -26,7 +26,7 @@ import java.security.interfaces.ECPublicKey; import java.security.interfaces.RSAPrivateCrtKey; import java.util.Arrays; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidDescription.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidDescription.java index b0654faa2..c63c6f855 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidDescription.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidDescription.java @@ -21,8 +21,8 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.securitytoken.usb.tpdu.T0ShortApduProtocol; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransceiver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransceiver.java index 75ff2b358..518532514 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransceiver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransceiver.java @@ -24,9 +24,9 @@ import java.nio.ByteOrder; import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbEndpoint; import android.os.SystemClock; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.WorkerThread; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.WorkerThread; import com.google.auto.value.AutoValue; import org.bouncycastle.util.Arrays; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransportProtocol.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransportProtocol.java index fd3966232..34d1c1ae3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransportProtocol.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/CcidTransportProtocol.java @@ -17,7 +17,7 @@ package org.sufficientlysecure.keychain.securitytoken.usb; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; public interface CcidTransportProtocol { void connect(@NonNull CcidTransceiver transceiver) throws UsbTransportException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/UsbTransport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/UsbTransport.java index 9c8fd28de..18766bce5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/UsbTransport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/UsbTransport.java @@ -27,8 +27,8 @@ import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbEndpoint; import android.hardware.usb.UsbInterface; import android.hardware.usb.UsbManager; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.util.Pair; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/RBlock.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/RBlock.java index 1536b08a0..f31e8d56f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/RBlock.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/RBlock.java @@ -17,7 +17,7 @@ package org.sufficientlysecure.keychain.securitytoken.usb.tpdu; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.securitytoken.usb.UsbTransportException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T0ShortApduProtocol.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T0ShortApduProtocol.java index 63a15b20a..5ec055398 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T0ShortApduProtocol.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T0ShortApduProtocol.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.securitytoken.usb.tpdu; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.securitytoken.usb.CcidTransceiver; import org.sufficientlysecure.keychain.securitytoken.usb.CcidTransceiver.CcidDataBlock; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1ShortApduProtocol.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1ShortApduProtocol.java index 073b472f4..41f659f26 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1ShortApduProtocol.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1ShortApduProtocol.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.securitytoken.usb.tpdu; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.securitytoken.usb.CcidTransceiver; import org.sufficientlysecure.keychain.securitytoken.usb.CcidTransceiver.CcidDataBlock; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1TpduProtocol.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1TpduProtocol.java index 5cfe38e36..7fc3a73b5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1TpduProtocol.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/securitytoken/usb/tpdu/T1TpduProtocol.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.securitytoken.usb.tpdu; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.bouncycastle.util.Arrays; import org.sufficientlysecure.keychain.securitytoken.usb.CcidTransceiver; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java index f88580fe2..2e15ab22c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/BackupKeyringParcel.java @@ -22,7 +22,7 @@ import java.util.List; import android.net.Uri; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java index bf60493fe..745f773d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java @@ -23,8 +23,8 @@ import java.util.Collection; import java.util.List; import android.os.Parcelable; -import android.support.annotation.CheckResult; -import android.support.annotation.Nullable; +import androidx.annotation.CheckResult; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ChangeUnlockParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ChangeUnlockParcel.java index fde6b5fed..9f0196e19 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ChangeUnlockParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ChangeUnlockParcel.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.service; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.util.Passphrase; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java index 00acb8952..ea5a43221 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ContactSyncAdapterService.java @@ -27,14 +27,13 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.SyncResult; -import android.content.pm.PackageManager; import android.os.Bundle; import android.os.IBinder; import android.preference.PreferenceActivity; import android.provider.ContactsContract; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationManagerCompat; -import android.support.v4.content.ContextCompat; +import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationManagerCompat; +import androidx.core.content.ContextCompat; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.KeychainApplication; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java index bf8d20033..d4dac61e5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java @@ -22,7 +22,7 @@ import java.util.Collections; import java.util.List; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/InputDataParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/InputDataParcel.java index 97c29dbf7..7ea26741c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/InputDataParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/InputDataParcel.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.service; import android.net.Uri; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java index 724b8ae10..9dc0a9c37 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java @@ -25,7 +25,7 @@ import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.os.Parcelable; -import android.support.v4.os.CancellationSignal; +import androidx.core.os.CancellationSignal; import org.sufficientlysecure.keychain.KeychainApplication; import org.sufficientlysecure.keychain.analytics.AnalyticsManager; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java index c0e20f568..19e89d326 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java @@ -36,10 +36,10 @@ import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationCompat.Builder; -import android.support.v4.app.NotificationCompat.InboxStyle; -import android.support.v4.util.LongSparseArray; +import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationCompat.Builder; +import androidx.core.app.NotificationCompat.InboxStyle; +import androidx.collection.LongSparseArray; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants.NotificationIds; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ProgressDialogManager.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ProgressDialogManager.java index d5086a4ba..1fb4d52e7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ProgressDialogManager.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ProgressDialogManager.java @@ -20,9 +20,9 @@ package org.sufficientlysecure.keychain.service; import android.app.ProgressDialog; import android.os.Handler; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; -import android.support.v4.os.CancellationSignal; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.core.os.CancellationSignal; import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PromoteKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PromoteKeyringParcel.java index c116d242f..a02a2c887 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PromoteKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PromoteKeyringParcel.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.service; import java.util.List; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/RevokeKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/RevokeKeyringParcel.java index c2484f947..22b7ac295 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/RevokeKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/RevokeKeyringParcel.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.service; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java index bb13973cf..703c8137c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java @@ -24,7 +24,7 @@ import java.util.Collections; import java.util.List; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.bouncycastle.bcpg.sig.KeyFlags; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/UploadKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/UploadKeyringParcel.java index 87f2b71ea..1819c333b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/UploadKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/UploadKeyringParcel.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.service; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.keyimport.HkpKeyserverAddress; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java index e9e9a31ec..7d4882a6d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/input/CryptoInputParcel.java @@ -25,8 +25,8 @@ import java.util.HashMap; import java.util.Map; import android.os.Parcelable; -import android.support.annotation.CheckResult; -import android.support.annotation.Nullable; +import androidx.annotation.CheckResult; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import com.ryanharter.auto.value.parcel.ParcelAdapter; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationData.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationData.java index 644a266ee..431a16737 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationData.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationData.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ssh; import android.os.Parcelable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationOperation.java index 243bfba9b..3aad253f3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ssh/AuthenticationOperation.java @@ -21,7 +21,7 @@ package org.sufficientlysecure.keychain.ssh; import java.util.Collection; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.bouncycastle.openpgp.AuthenticationSignatureGenerator; import org.bouncycastle.openpgp.PGPException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupActivity.java index f20120b65..9806a50bd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupActivity.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.ui; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import android.view.MenuItem; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java index d8699a078..b0cd5b5ef 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java @@ -28,9 +28,9 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupRestoreFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupRestoreFragment.java index 92cde2cb9..246d7681b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupRestoreFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupRestoreFragment.java @@ -32,9 +32,9 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; import android.util.Pair; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java index 6b4fc964e..a75d3f68f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintActivity.java @@ -17,7 +17,7 @@ package org.sufficientlysecure.keychain.ui; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.ViewModelProviders; import android.os.Bundle; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java index 9abb2ad39..02989a7c5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java @@ -18,12 +18,12 @@ package org.sufficientlysecure.keychain.ui; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.ViewModelProviders; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java index 29ff936fb..d882ede52 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java @@ -23,12 +23,12 @@ import java.util.Date; import java.util.List; import android.app.Activity; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; import android.content.Intent; import android.graphics.PorterDuff; import android.os.Bundle; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java index 90432a79c..b45a2b100 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java @@ -24,11 +24,11 @@ import java.util.ArrayList; import android.content.Intent; import android.nfc.NfcAdapter; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.app.TaskStackBuilder; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.core.app.TaskStackBuilder; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.securitytoken.KeyFormat; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java index 74652e621..938a3ea62 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java @@ -23,11 +23,11 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Messenger; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v7.widget.DefaultItemAnimator; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java index 5eabe1e44..007421d2d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java @@ -26,8 +26,8 @@ import java.util.regex.Pattern; import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyNameFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyNameFragment.java index d507e9c1a..f33506f18 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyNameFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyNameFragment.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.ui; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java index 5915e051e..e24dce606 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java @@ -24,8 +24,8 @@ import android.content.Intent; import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenAlgorithmFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenAlgorithmFragment.java index 31708ae04..af1201bff 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenAlgorithmFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenAlgorithmFragment.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.ui; import android.app.Activity; import android.content.Context; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import android.text.Html; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java index 03300baa7..8685f2bc3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.ui; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java index 4b300babd..98a551536 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java @@ -21,9 +21,9 @@ package org.sufficientlysecure.keychain.ui; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DebugActionsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DebugActionsActivity.java index b38856f5e..15cc64bf1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DebugActionsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DebugActionsActivity.java @@ -32,8 +32,8 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build.VERSION_CODES; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.widget.Toolbar; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.Toolbar; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java index 3fefd4455..c20577a13 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java @@ -29,9 +29,9 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import android.widget.Toast; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java index 97f2c847e..5982a145e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java @@ -21,11 +21,11 @@ package org.sufficientlysecure.keychain.ui; import java.util.ArrayList; import android.app.Activity; -import android.arch.lifecycle.LiveData; +import androidx.lifecycle.LiveData; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.view.View; import android.widget.Button; import android.widget.ImageView; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java index 9c46d2725..f944b542f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -44,11 +44,11 @@ import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.DefaultItemAnimator; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.MenuItem; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java index c4fee2953..2b0d4fedf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java @@ -25,10 +25,10 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; -import android.support.v7.app.AlertDialog; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentActivity; +import androidx.appcompat.app.AlertDialog; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java index 18f2ab0f7..4e36626f3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java @@ -23,7 +23,7 @@ import java.io.IOException; import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.widget.Toast; import org.openintents.openpgp.OpenPgpMetadata; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextFragment.java index eb1c2e0ea..c1f3c0bb9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextFragment.java @@ -23,8 +23,8 @@ import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.util.Linkify; import android.view.LayoutInflater; import android.view.Menu; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java index f0c0ba3d3..24c037969 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -24,8 +24,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Messenger; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java index 91a646142..cb471882d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.ui; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; import android.view.Menu; import android.view.MenuItem; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java index eb362d0f3..eb6de2883 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java @@ -28,8 +28,8 @@ import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java index 4e0214426..2fcdf0156 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java @@ -21,7 +21,7 @@ import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.FragmentTransaction; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java index 60976b9c0..1e1d419e9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java @@ -41,12 +41,12 @@ import android.net.Uri; import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.FragmentActivity; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.DefaultItemAnimator; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentActivity; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeAsymmetricFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeAsymmetricFragment.java index e95c7a226..ee1a690f1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeAsymmetricFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeAsymmetricFragment.java @@ -22,13 +22,13 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProviders; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeFragment.java index 93214e46f..09d458c26 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptModeFragment.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import org.sufficientlysecure.keychain.util.Passphrase; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index 2775ea320..a65b5271a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -23,7 +23,7 @@ import java.io.IOException; import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.FragmentTransaction; import android.widget.Toast; import org.apache.james.mime4j.util.MimeUtil; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java index 5a53d9d87..d0bdce7bd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java @@ -21,7 +21,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java index 6bf653fbf..7c4eb4355 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.ui; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.view.ViewPager; +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; import android.view.View; import com.astuetz.PagerSlidingTabStrip; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java index 6adb9b906..3177157d7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java index a5d85a93d..4db8a525a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java @@ -27,9 +27,9 @@ import android.content.Intent; import android.net.Uri; import android.nfc.NfcAdapter; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import android.text.TextUtils; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java index 853d82e6a..1b8a783be 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java @@ -25,8 +25,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java index fbe2e5080..33ecdd8a9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -20,16 +20,16 @@ package org.sufficientlysecure.keychain.ui; import android.app.Activity; import android.content.Context; -import android.databinding.DataBindingUtil; +import androidx.databinding.DataBindingUtil; import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.LoaderManager; -import android.support.v4.content.Loader; -import android.support.v7.widget.LinearLayoutManager; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.loader.app.LoaderManager; +import androidx.loader.content.Loader; +import androidx.recyclerview.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java index 9e76ace80..f69a465af 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java @@ -25,7 +25,7 @@ import android.nfc.NfcAdapter; import android.os.Build; import android.os.Bundle; import android.os.Parcelable; -import android.support.v4.app.FragmentActivity; +import androidx.fragment.app.FragmentActivity; import android.widget.Toast; import com.google.zxing.integration.android.IntentIntegrator; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysSearchFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysSearchFragment.java index 1b60ab634..078a54eca 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysSearchFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysSearchFragment.java @@ -24,12 +24,12 @@ import android.database.MatrixCursor; import android.os.Bundle; import android.preference.PreferenceActivity; import android.provider.BaseColumns; -import android.support.v4.app.Fragment; -import android.support.v4.view.MenuItemCompat; -import android.support.v4.view.MenuItemCompat.OnActionExpandListener; -import android.support.v4.widget.CursorAdapter; -import android.support.v4.widget.SimpleCursorAdapter; -import android.support.v7.widget.SearchView; +import androidx.fragment.app.Fragment; +import androidx.core.view.MenuItemCompat; +import androidx.core.view.MenuItemCompat.OnActionExpandListener; +import androidx.cursoradapter.widget.CursorAdapter; +import androidx.cursoradapter.widget.SimpleCursorAdapter; +import androidx.appcompat.widget.SearchView; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -48,8 +48,8 @@ import org.sufficientlysecure.keychain.util.Preferences.CloudSearchPrefs; import java.util.ArrayList; import java.util.List; -import static android.support.v7.widget.SearchView.OnQueryTextListener; -import static android.support.v7.widget.SearchView.OnSuggestionListener; +import static androidx.appcompat.widget.SearchView.OnQueryTextListener; +import static androidx.appcompat.widget.SearchView.OnSuggestionListener; /** * Consists of the search bar, search button, and search settings button diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index e0855c50c..4c1c30336 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -23,17 +23,9 @@ import java.util.List; import android.animation.ObjectAnimator; import android.app.Activity; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModelProviders; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; -import android.support.annotation.WorkerThread; -import android.support.v4.app.FragmentActivity; -import android.support.v4.view.MenuItemCompat; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.SearchView; import android.view.ActionMode; import android.view.LayoutInflater; import android.view.Menu; @@ -44,6 +36,14 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ViewAnimator; +import androidx.annotation.WorkerThread; +import androidx.appcompat.widget.SearchView; +import androidx.core.view.MenuItemCompat; +import androidx.fragment.app.FragmentActivity; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.getbase.floatingactionbutton.FloatingActionButton; import com.getbase.floatingactionbutton.FloatingActionsMenu; import eu.davidea.fastscroller.FastScroller; @@ -514,7 +514,7 @@ public class KeyListFragment extends RecyclerFragment extends LiveData { @NonNull diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/IdentityDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/IdentityDao.java index 288d6d18f..b64a84f91 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/IdentityDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/IdentityDao.java @@ -22,14 +22,14 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.Cursor; import android.graphics.drawable.Drawable; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import com.squareup.sqldelight.SqlDelightQuery; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SubkeyStatusDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SubkeyStatusDao.java index 2125527f7..c1ad2ed11 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SubkeyStatusDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SubkeyStatusDao.java @@ -25,7 +25,7 @@ import java.util.Date; import java.util.List; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.model.SubKey; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SystemContactDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SystemContactDao.java index 499f36347..5b0f59055 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SystemContactDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/loader/SystemContactDao.java @@ -28,7 +28,7 @@ import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.provider.ContactsContract; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.util.ContactHelper; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/presenter/ViewKeyMvpView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/presenter/ViewKeyMvpView.java index 5898ae907..8ad9f509e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/presenter/ViewKeyMvpView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/presenter/ViewKeyMvpView.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.ui.keyview.presenter; import android.content.Intent; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.Fragment; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/IdentitiesCardView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/IdentitiesCardView.java index 1901f1d8c..4008d4b70 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/IdentitiesCardView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/IdentitiesCardView.java @@ -19,10 +19,10 @@ package org.sufficientlysecure.keychain.ui.keyview.view; import android.content.Context; -import android.support.v7.widget.CardView; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.AdapterDataObserver; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyHealthView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyHealthView.java index 9b94195b3..66145bf64 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyHealthView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyHealthView.java @@ -21,10 +21,10 @@ package org.sufficientlysecure.keychain.ui.keyview.view; import java.util.Date; import android.content.Context; -import android.support.annotation.ColorRes; -import android.support.annotation.DrawableRes; -import android.support.annotation.StringRes; -import android.support.v4.content.ContextCompat; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; import android.text.format.DateFormat; import android.util.AttributeSet; import android.view.LayoutInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyStatusList.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyStatusList.java index b4bb2669d..c5a89db89 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyStatusList.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyStatusList.java @@ -19,9 +19,9 @@ package org.sufficientlysecure.keychain.ui.keyview.view; import android.content.Context; -import android.support.annotation.ColorRes; -import android.support.annotation.StringRes; -import android.support.v4.content.ContextCompat; +import androidx.annotation.ColorRes; +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyserverStatusView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyserverStatusView.java index 1b353e729..af053b41b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyserverStatusView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/KeyserverStatusView.java @@ -21,10 +21,10 @@ package org.sufficientlysecure.keychain.ui.keyview.view; import java.util.Date; import android.content.Context; -import android.support.annotation.ColorRes; -import android.support.annotation.DrawableRes; -import android.support.annotation.StringRes; -import android.support.v4.content.ContextCompat; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; import android.text.format.DateFormat; import android.util.AttributeSet; import android.view.LayoutInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/SystemContactCardView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/SystemContactCardView.java index 2cfd01440..1d487a8a7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/SystemContactCardView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/keyview/view/SystemContactCardView.java @@ -20,7 +20,7 @@ package org.sufficientlysecure.keychain.ui.keyview.view; import android.content.Context; import android.graphics.Bitmap; -import android.support.v7.widget.CardView; +import androidx.cardview.widget.CardView; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ChangePinDialogHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ChangePinDialogHelper.java index 08834f99a..4f139a4da 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ChangePinDialogHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ChangePinDialogHelper.java @@ -22,9 +22,9 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnShowListener; -import android.support.annotation.CheckResult; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AlertDialog.Builder; +import androidx.annotation.CheckResult; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AlertDialog.Builder; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java index 4b34a13c2..179d99088 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenFragment.java @@ -24,18 +24,18 @@ import java.util.Objects; import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.ViewModelProviders; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build.VERSION_CODES; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.v4.app.Fragment; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AlertDialog.Builder; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.fragment.app.Fragment; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AlertDialog.Builder; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java index db4400711..d431578ce 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenPresenter.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui.token; -import android.arch.lifecycle.LifecycleOwner; +import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.net.Uri; import android.os.Handler; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenViewModel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenViewModel.java index 4509e9d85..89b2d2612 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenViewModel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/ManageSecurityTokenViewModel.java @@ -1,9 +1,9 @@ package org.sufficientlysecure.keychain.ui.token; -import android.arch.lifecycle.LifecycleOwner; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.ViewModel; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; import android.content.Context; import android.net.Uri; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/PublicKeyRetriever.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/PublicKeyRetriever.java index 0a4c26740..ed4a3e532 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/PublicKeyRetriever.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/token/PublicKeyRetriever.java @@ -24,7 +24,7 @@ import java.util.List; import android.content.Context; import android.net.Uri; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.text.TextUtils; import com.google.auto.value.AutoValue; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/presenter/TransferPresenter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/presenter/TransferPresenter.java index a89a61067..ff76d29db 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/presenter/TransferPresenter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/presenter/TransferPresenter.java @@ -22,8 +22,8 @@ import java.io.IOException; import java.net.URISyntaxException; import java.util.List; -import android.arch.lifecycle.LifecycleOwner; -import android.arch.lifecycle.LiveData; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; import android.content.Context; import android.graphics.Bitmap; import android.net.ConnectivityManager; @@ -34,8 +34,8 @@ import android.net.wifi.WifiManager; import android.os.Build.VERSION_CODES; import android.os.Handler; import android.os.Parcelable; -import android.support.annotation.RequiresApi; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.annotation.RequiresApi; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.view.LayoutInflater; import org.openintents.openpgp.util.OpenPgpUtils; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/ReceivedSecretKeyList.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/ReceivedSecretKeyList.java index ffa86931d..b61c9e0c4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/ReceivedSecretKeyList.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/ReceivedSecretKeyList.java @@ -22,9 +22,9 @@ import java.util.ArrayList; import java.util.List; import android.content.Context; -import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.format.DateUtils; import android.util.AttributeSet; import android.view.LayoutInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferFragment.java index 262d13a8b..fe55fc432 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferFragment.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui.transfer.view; import android.app.Activity; -import android.arch.lifecycle.ViewModelProviders; +import androidx.lifecycle.ViewModelProviders; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; @@ -32,16 +32,16 @@ import android.net.wifi.WifiManager; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.os.Parcelable; -import android.support.annotation.Nullable; -import android.support.annotation.RequiresApi; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentManager.OnBackStackChangedListener; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AlertDialog.Builder; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.Adapter; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentManager.OnBackStackChangedListener; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AlertDialog.Builder; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferNotAvailableFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferNotAvailableFragment.java index 549b5f344..a45de3191 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferNotAvailableFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferNotAvailableFragment.java @@ -19,8 +19,8 @@ package org.sufficientlysecure.keychain.ui.transfer.view; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferSecretKeyList.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferSecretKeyList.java index 5cdcd8842..2f9e5b8f2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferSecretKeyList.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/transfer/view/TransferSecretKeyList.java @@ -22,10 +22,10 @@ import java.util.ArrayList; import java.util.List; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.format.DateUtils; import android.util.AttributeSet; import android.view.LayoutInflater; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java index a31d6bedd..a0d3df680 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java @@ -25,7 +25,7 @@ import android.os.Bundle; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; -import android.support.v7.app.AlertDialog; +import androidx.appcompat.app.AlertDialog; import android.view.ContextThemeWrapper; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 25c67634f..a26a3fe25 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -26,7 +26,7 @@ import java.util.Locale; import android.content.Context; import android.content.res.Resources; import android.graphics.PorterDuff; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.View; import android.widget.ImageView; import android.widget.TextView; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyInfoFormatter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyInfoFormatter.java index 743a1a2c7..1aa2c9aae 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyInfoFormatter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyInfoFormatter.java @@ -2,8 +2,8 @@ package org.sufficientlysecure.keychain.ui.util; import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import android.text.format.DateUtils; import android.view.View; import android.widget.ImageView; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Notify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Notify.java index 44bfc03a8..6e09160d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Notify.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Notify.java @@ -18,8 +18,8 @@ package org.sufficientlysecure.keychain.ui.util; import android.app.Activity; -import android.support.annotation.CheckResult; -import android.support.v4.app.Fragment; +import androidx.annotation.CheckResult; +import androidx.fragment.app.Fragment; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/PermissionsUtil.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/PermissionsUtil.java index 7b7ad504c..c002d004f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/PermissionsUtil.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/PermissionsUtil.java @@ -25,8 +25,8 @@ import android.content.Context; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.core.content.ContextCompat; import android.widget.Toast; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/DividerItemDecoration.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/DividerItemDecoration.java index 7473f78e3..4a2e0f268 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/DividerItemDecoration.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/DividerItemDecoration.java @@ -21,8 +21,8 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; public class DividerItemDecoration extends RecyclerView.ItemDecoration { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperAdapter.java index c691182bf..c57606c47 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperAdapter.java @@ -16,8 +16,8 @@ package org.sufficientlysecure.keychain.ui.util.recyclerview; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.helper.ItemTouchHelper; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.ItemTouchHelper; /** * Interface to listen for a move or dismissal event from a {@link ItemTouchHelper.Callback}. diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperDragCallback.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperDragCallback.java index 0fd24581d..8ba77443f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperDragCallback.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperDragCallback.java @@ -16,8 +16,8 @@ package org.sufficientlysecure.keychain.ui.util.recyclerview; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.helper.ItemTouchHelper; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.ItemTouchHelper; /** * An implementation of {@link ItemTouchHelper.Callback} that enables basic drag & drop and diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperViewHolder.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperViewHolder.java index 97e70d71e..d0c1de845 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperViewHolder.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/ItemTouchHelperViewHolder.java @@ -16,11 +16,11 @@ package org.sufficientlysecure.keychain.ui.util.recyclerview; -import android.support.v7.widget.helper.ItemTouchHelper; +import androidx.recyclerview.widget.ItemTouchHelper; /** * Interface to notify an item ViewHolder of relevant callbacks from {@link - * android.support.v7.widget.helper.ItemTouchHelper.Callback}. + * androidx.recyclerview.widget.ItemTouchHelper.Callback}. */ public interface ItemTouchHelperViewHolder { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/RecyclerItemClickListener.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/RecyclerItemClickListener.java index 6d9ca93e3..abacd00a4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/RecyclerItemClickListener.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/recyclerview/RecyclerItemClickListener.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui.util.recyclerview; import android.content.Context; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CacheTTLSpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CacheTTLSpinner.java index 1530f4d54..bf25c528f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CacheTTLSpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CacheTTLSpinner.java @@ -21,8 +21,8 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; import android.database.Cursor; import android.database.MatrixCursor; -import android.support.v4.widget.SimpleCursorAdapter; -import android.support.v7.widget.AppCompatSpinner; +import androidx.cursoradapter.widget.SimpleCursorAdapter; +import androidx.appcompat.widget.AppCompatSpinner; import android.util.AttributeSet; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ConnectionStatusView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ConnectionStatusView.java index f48f375d4..b9358fc07 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ConnectionStatusView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ConnectionStatusView.java @@ -23,7 +23,7 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.util.AttributeSet; import android.view.View; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java index bd942a64c..ad15ef62e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; -import android.support.v7.widget.AppCompatAutoCompleteTextView; +import androidx.appcompat.widget.AppCompatAutoCompleteTextView; import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyChoiceSpinnerAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyChoiceSpinnerAdapter.java index b41b7adc8..4cf64ffa3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyChoiceSpinnerAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyChoiceSpinnerAdapter.java @@ -2,7 +2,7 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; -import android.support.annotation.StringRes; +import androidx.annotation.StringRes; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java index 8ac45c6d8..794443542 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java @@ -23,9 +23,9 @@ import java.util.List; import android.content.Context; import android.os.Bundle; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.v7.widget.AppCompatSpinner; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.appcompat.widget.AppCompatSpinner; import android.util.AttributeSet; import android.view.View; import android.widget.AdapterView; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/NameEditText.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/NameEditText.java index 6d927d0c9..b9b266f36 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/NameEditText.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/NameEditText.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; -import android.support.v7.widget.AppCompatAutoCompleteTextView; +import androidx.appcompat.widget.AppCompatAutoCompleteTextView; import android.util.AttributeSet; import android.view.inputmethod.EditorInfo; import android.widget.ArrayAdapter; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PrefixedEditText.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PrefixedEditText.java index cf04d346f..e5615d23a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PrefixedEditText.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PrefixedEditText.java @@ -20,8 +20,8 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; import android.content.res.TypedArray; import android.graphics.*; -import android.support.annotation.NonNull; -import android.support.v7.widget.AppCompatEditText; +import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatEditText; import android.text.Layout; import android.text.TextPaint; import android.util.AttributeSet; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ToolableViewAnimator.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ToolableViewAnimator.java index 172009d24..b8eb7b942 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ToolableViewAnimator.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ToolableViewAnimator.java @@ -27,7 +27,7 @@ package org.sufficientlysecure.keychain.ui.widget; import android.content.Context; import android.content.res.TypedArray; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java index 821117487..98b7379d2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java @@ -26,8 +26,8 @@ import java.nio.charset.CoderResult; import java.nio.charset.CodingErrorAction; import android.content.ClipDescription; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; /** This class can be used to guess whether a stream of data is encoded in a given * charset or not. diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index e5f67ba15..ceca99564 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -43,7 +43,7 @@ import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Im; import android.provider.ContactsContract.Data; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import android.util.Patterns; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CountingOutputStream.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CountingOutputStream.java index 8bfe26aeb..bd5272d41 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CountingOutputStream.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CountingOutputStream.java @@ -19,7 +19,7 @@ import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; public final class CountingOutputStream extends FilterOutputStream { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/DatabaseUtil.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/DatabaseUtil.java index d9cffe702..6f1ac9946 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/DatabaseUtil.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/DatabaseUtil.java @@ -18,7 +18,7 @@ package org.sufficientlysecure.keychain.util; -import android.arch.persistence.db.SupportSQLiteDatabase; +import androidx.sqlite.db.SupportSQLiteDatabase; import android.database.Cursor; import android.text.TextUtils; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java index 3dcbcf271..2441d144c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/FileHelper.java @@ -49,7 +49,7 @@ import android.os.Build.VERSION_CODES; import android.os.Environment; import android.provider.DocumentsContract; import android.provider.OpenableColumns; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.widget.Toast; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java index 68b402124..885cf3f7c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java @@ -17,7 +17,7 @@ package org.sufficientlysecure.keychain.util; import android.content.Intent; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import com.google.zxing.integration.android.IntentIntegrator; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Numeric9x4PassphraseUtil.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Numeric9x4PassphraseUtil.java index 89d9f004e..4d540d4aa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Numeric9x4PassphraseUtil.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Numeric9x4PassphraseUtil.java @@ -23,7 +23,7 @@ import java.security.SecureRandom; import java.util.Random; import java.util.regex.Pattern; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; // see https://autocrypt.org/level1.html#setup-code public class Numeric9x4PassphraseUtil { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableHashMap.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableHashMap.java index 1294c1221..c9d6f7382 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableHashMap.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableHashMap.java @@ -22,7 +22,7 @@ import java.util.HashMap; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.sufficientlysecure.keychain.KeychainApplication; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableProxy.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableProxy.java index 86429dff8..423d24dd6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableProxy.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableProxy.java @@ -23,7 +23,7 @@ import java.net.Proxy; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; /** * used to simply transport java.net.Proxy objects created using InetSockets between services/activities diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index c39b48b2f..de0c15306 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -29,7 +29,7 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Parcelable; import android.preference.PreferenceManager; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.google.auto.value.AutoValue; import org.sufficientlysecure.keychain.Constants; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ResourceUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ResourceUtils.java index b5432ff4e..dd1cdaf03 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ResourceUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ResourceUtils.java @@ -6,9 +6,9 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; public class ResourceUtils { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ShareKeyHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ShareKeyHelper.java index 20541a7f6..12d7b8351 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ShareKeyHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ShareKeyHelper.java @@ -31,7 +31,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.ParcelFileDescriptor; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/WebKeyDirectoryUtil.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/WebKeyDirectoryUtil.java index 5dc0bd735..622a93eaf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/WebKeyDirectoryUtil.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/WebKeyDirectoryUtil.java @@ -1,6 +1,6 @@ package org.sufficientlysecure.keychain.util; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; diff --git a/OpenKeychain/src/main/res/layout/add_keyserver_dialog.xml b/OpenKeychain/src/main/res/layout/add_keyserver_dialog.xml index feebad47f..63ee7dae2 100644 --- a/OpenKeychain/src/main/res/layout/add_keyserver_dialog.xml +++ b/OpenKeychain/src/main/res/layout/add_keyserver_dialog.xml @@ -9,7 +9,7 @@ android:paddingRight="24dp" android:paddingTop="16dp"> - - + - - + - - +