From 24c4d1fee9f067e16d703f2de266decea8673182 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 11:28:10 +0100 Subject: [PATCH 1/8] - Updated compileSdkVersion from 31 to 33 - Updated Android Gradle Plugin from 4.2.1 to 4.2.2 - Fixed some deprecation --- build.gradle | 4 ++-- .../appauth/AuthorizationManagementActivity.java | 12 +++++++++--- .../net/openid/appauth/browser/BrowserSelector.java | 3 ++- .../net/openid/appauth/AuthorizationServiceTest.java | 4 +++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 1360114c..f5625e18 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:4.2.2' classpath 'org.ajoberstar.grgit:grgit-gradle:4.1.1' classpath 'org.jacoco:org.jacoco.core:0.8.7' } @@ -41,7 +41,7 @@ try { project.ext { minSdkVersion = 16 - compileSdkVersion = 31 + compileSdkVersion = 33 googleVersions = [ glide : '4.12.0', diff --git a/library/java/net/openid/appauth/AuthorizationManagementActivity.java b/library/java/net/openid/appauth/AuthorizationManagementActivity.java index 40842874..7907fb4b 100644 --- a/library/java/net/openid/appauth/AuthorizationManagementActivity.java +++ b/library/java/net/openid/appauth/AuthorizationManagementActivity.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AppCompatActivity; @@ -309,10 +310,15 @@ private void extractState(Bundle state) { return; } - mAuthIntent = state.getParcelable(KEY_AUTH_INTENT); + mAuthIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? + state.getParcelable(KEY_AUTH_INTENT, Intent.class) : state.getParcelable(KEY_AUTH_INTENT); mAuthorizationStarted = state.getBoolean(KEY_AUTHORIZATION_STARTED, false); - mCompleteIntent = state.getParcelable(KEY_COMPLETE_INTENT); - mCancelIntent = state.getParcelable(KEY_CANCEL_INTENT); + mCompleteIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? + state.getParcelable(KEY_COMPLETE_INTENT, PendingIntent.class) : + state.getParcelable(KEY_COMPLETE_INTENT); + mCancelIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? + state.getParcelable(KEY_CANCEL_INTENT, PendingIntent.class) : + state.getParcelable(KEY_CANCEL_INTENT); try { String authRequestJson = state.getString(KEY_AUTH_REQUEST, null); String authRequestType = state.getString(KEY_AUTH_REQUEST_TYPE, null); diff --git a/library/java/net/openid/appauth/browser/BrowserSelector.java b/library/java/net/openid/appauth/browser/BrowserSelector.java index 29bcb40a..6c62c56b 100644 --- a/library/java/net/openid/appauth/browser/BrowserSelector.java +++ b/library/java/net/openid/appauth/browser/BrowserSelector.java @@ -105,7 +105,8 @@ public static List getAllBrowsers(Context context) { int defaultBrowserIndex = 0; PackageInfo packageInfo = pm.getPackageInfo( info.activityInfo.packageName, - PackageManager.GET_SIGNATURES); + VERSION.SDK_INT >= VERSION_CODES.P ? + PackageManager.GET_SIGNING_CERTIFICATES : PackageManager.GET_SIGNATURES); if (hasWarmupService(pm, info.activityInfo.packageName)) { BrowserDescriptor customTabBrowserDescriptor = diff --git a/library/javatests/net/openid/appauth/AuthorizationServiceTest.java b/library/javatests/net/openid/appauth/AuthorizationServiceTest.java index 2010f836..3ea74d85 100644 --- a/library/javatests/net/openid/appauth/AuthorizationServiceTest.java +++ b/library/javatests/net/openid/appauth/AuthorizationServiceTest.java @@ -23,6 +23,7 @@ import android.net.Uri; import androidx.annotation.ColorInt; import androidx.annotation.Nullable; +import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsClient; import androidx.browser.customtabs.CustomTabsIntent; import androidx.browser.customtabs.CustomTabsServiceConnection; @@ -208,7 +209,8 @@ public void testAuthorizationRequest_withDefaultRandomStateAndNonce() throws Exc @Test public void testAuthorizationRequest_customization() throws Exception { CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder() - .setToolbarColor(Color.GREEN) + .setDefaultColorSchemeParams(new CustomTabColorSchemeParams.Builder() + .setToolbarColor(Color.GREEN).build()) .build(); mService.performAuthorizationRequest( getTestAuthRequestBuilder().build(), From 85b59780b4592ae47b9943b8c1dd204e20185764 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 11:38:20 +0100 Subject: [PATCH 2/8] Fixed checkstyle warnings --- .../AuthorizationManagementActivity.java | 17 +++++++++-------- .../openid/appauth/browser/BrowserSelector.java | 5 ++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/library/java/net/openid/appauth/AuthorizationManagementActivity.java b/library/java/net/openid/appauth/AuthorizationManagementActivity.java index 7907fb4b..83130811 100644 --- a/library/java/net/openid/appauth/AuthorizationManagementActivity.java +++ b/library/java/net/openid/appauth/AuthorizationManagementActivity.java @@ -310,15 +310,16 @@ private void extractState(Bundle state) { return; } - mAuthIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? - state.getParcelable(KEY_AUTH_INTENT, Intent.class) : state.getParcelable(KEY_AUTH_INTENT); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mAuthIntent = state.getParcelable(KEY_AUTH_INTENT, Intent.class); + mCompleteIntent = state.getParcelable(KEY_COMPLETE_INTENT, PendingIntent.class); + mCancelIntent = state.getParcelable(KEY_CANCEL_INTENT, PendingIntent.class); + } else { + mAuthIntent = state.getParcelable(KEY_AUTH_INTENT); + mCompleteIntent = state.getParcelable(KEY_CANCEL_INTENT); + mCancelIntent = state.getParcelable(KEY_CANCEL_INTENT); + } mAuthorizationStarted = state.getBoolean(KEY_AUTHORIZATION_STARTED, false); - mCompleteIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? - state.getParcelable(KEY_COMPLETE_INTENT, PendingIntent.class) : - state.getParcelable(KEY_COMPLETE_INTENT); - mCancelIntent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? - state.getParcelable(KEY_CANCEL_INTENT, PendingIntent.class) : - state.getParcelable(KEY_CANCEL_INTENT); try { String authRequestJson = state.getString(KEY_AUTH_REQUEST, null); String authRequestType = state.getString(KEY_AUTH_REQUEST_TYPE, null); diff --git a/library/java/net/openid/appauth/browser/BrowserSelector.java b/library/java/net/openid/appauth/browser/BrowserSelector.java index 6c62c56b..585a7db5 100644 --- a/library/java/net/openid/appauth/browser/BrowserSelector.java +++ b/library/java/net/openid/appauth/browser/BrowserSelector.java @@ -104,9 +104,8 @@ public static List getAllBrowsers(Context context) { try { int defaultBrowserIndex = 0; PackageInfo packageInfo = pm.getPackageInfo( - info.activityInfo.packageName, - VERSION.SDK_INT >= VERSION_CODES.P ? - PackageManager.GET_SIGNING_CERTIFICATES : PackageManager.GET_SIGNATURES); + info.activityInfo.packageName, VERSION.SDK_INT >= VERSION_CODES.P + ? PackageManager.GET_SIGNING_CERTIFICATES : PackageManager.GET_SIGNATURES); if (hasWarmupService(pm, info.activityInfo.packageName)) { BrowserDescriptor customTabBrowserDescriptor = From 16032f94df3d97014a1a672970f419ba8f8bd8ed Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 11:53:17 +0100 Subject: [PATCH 3/8] Updated test dependency (Robolectric) to latest available version to fully support Tiramisu --- config/testdeps.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/testdeps.gradle b/config/testdeps.gradle index 238fb5b2..1af474e1 100644 --- a/config/testdeps.gradle +++ b/config/testdeps.gradle @@ -1,7 +1,7 @@ testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest:2.2' testImplementation 'org.mockito:mockito-core:3.10.0' -testImplementation 'org.robolectric:robolectric:4.5.1' +testImplementation 'org.robolectric:robolectric:4.9' testImplementation 'org.assertj:assertj-core:3.19.0' testImplementation 'androidx.test.ext:junit:1.1.3' testImplementation 'androidx.test.ext:truth:1.3.0' From 5b7c4582a2a971f20eea525c4ce283010d015ab0 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 12:15:46 +0100 Subject: [PATCH 4/8] Fixed bug in my branch :) --- .../net/openid/appauth/AuthorizationManagementActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/java/net/openid/appauth/AuthorizationManagementActivity.java b/library/java/net/openid/appauth/AuthorizationManagementActivity.java index 83130811..575d247c 100644 --- a/library/java/net/openid/appauth/AuthorizationManagementActivity.java +++ b/library/java/net/openid/appauth/AuthorizationManagementActivity.java @@ -316,7 +316,7 @@ private void extractState(Bundle state) { mCancelIntent = state.getParcelable(KEY_CANCEL_INTENT, PendingIntent.class); } else { mAuthIntent = state.getParcelable(KEY_AUTH_INTENT); - mCompleteIntent = state.getParcelable(KEY_CANCEL_INTENT); + mCompleteIntent = state.getParcelable(KEY_COMPLETE_INTENT); mCancelIntent = state.getParcelable(KEY_CANCEL_INTENT); } mAuthorizationStarted = state.getBoolean(KEY_AUTHORIZATION_STARTED, false); From 7f43f42ba5a8f0aa6ea1ab9c117961304b8f9bf2 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 12:16:00 +0100 Subject: [PATCH 5/8] Fixed deprecation --- library/javatests/net/openid/appauth/JsonUtilTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/javatests/net/openid/appauth/JsonUtilTest.java b/library/javatests/net/openid/appauth/JsonUtilTest.java index 4e362fba..62115603 100644 --- a/library/javatests/net/openid/appauth/JsonUtilTest.java +++ b/library/javatests/net/openid/appauth/JsonUtilTest.java @@ -44,7 +44,7 @@ public class JsonUtilTest { private static final String TEST_KEY = "key"; private static final String TEST_STRING = "value"; - private static final Long TEST_LONG = new Long(123); + private static final Long TEST_LONG = 123L; private static final String TEST_URI_STRING = "https://openid.net/"; private static final Uri TEST_URI = Uri.parse(TEST_URI_STRING); private static final JSONObject TEST_JSON = new JSONObject(); From e150be0d642adb0085b0ada84af1f8ac965fadeb Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 12:22:18 +0100 Subject: [PATCH 6/8] Added name to list of contributors --- CONTRIBUTORS | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 45c4bec2..23873700 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -15,3 +15,4 @@ Rebecka Gulliksson Rahul Ravikumar Henning Nielsen Lund Øyvind Robertsen +Alix Warnke From cc84b2f7d4a3fb28be0eff125ccdca2b359a9318 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 13:12:11 +0100 Subject: [PATCH 7/8] Fixed deprecation --- .../openid/appauth/browser/BrowserSelectorTest.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java b/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java index b033fdae..b82cdf84 100644 --- a/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java +++ b/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java @@ -29,6 +29,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.pm.Signature; +import android.os.Build; import android.text.TextUtils; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -312,10 +313,17 @@ private void setBrowserList(TestBrowser... browsers) throws NameNotFoundExceptio List resolveInfos = new ArrayList<>(); for (TestBrowser browser : browsers) { - when(mPackageManager.getPackageInfo( + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + when(mPackageManager.getPackageInfo( + eq(browser.mPackageInfo.packageName), + eq(PackageManager.GET_SIGNING_CERTIFICATES))) + .thenReturn(browser.mPackageInfo); + } else { + when(mPackageManager.getPackageInfo( eq(browser.mPackageInfo.packageName), eq(PackageManager.GET_SIGNATURES))) .thenReturn(browser.mPackageInfo); + } resolveInfos.add(browser.mResolveInfo); } From f8b5d2c01aa8b715247b0e1591b026a8aa93ccd4 Mon Sep 17 00:00:00 2001 From: alixwar Date: Sat, 19 Nov 2022 13:22:16 +0100 Subject: [PATCH 8/8] Future-proofed test if it would be run on a higher Android version configuration --- .../appauth/browser/BrowserSelectorTest.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java b/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java index b82cdf84..7594e47b 100644 --- a/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java +++ b/library/javatests/net/openid/appauth/browser/BrowserSelectorTest.java @@ -313,17 +313,11 @@ private void setBrowserList(TestBrowser... browsers) throws NameNotFoundExceptio List resolveInfos = new ArrayList<>(); for (TestBrowser browser : browsers) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - when(mPackageManager.getPackageInfo( - eq(browser.mPackageInfo.packageName), - eq(PackageManager.GET_SIGNING_CERTIFICATES))) - .thenReturn(browser.mPackageInfo); - } else { - when(mPackageManager.getPackageInfo( - eq(browser.mPackageInfo.packageName), - eq(PackageManager.GET_SIGNATURES))) - .thenReturn(browser.mPackageInfo); - } + when(mPackageManager.getPackageInfo( + eq(browser.mPackageInfo.packageName), + Build.VERSION.SDK_INT >= Build.VERSION_CODES.P + ? eq(PackageManager.GET_SIGNING_CERTIFICATES) : eq(PackageManager.GET_SIGNATURES) + )).thenReturn(browser.mPackageInfo); resolveInfos.add(browser.mResolveInfo); }