diff --git a/app/build.gradle b/app/build.gradle
index 7fb31fd..0b10c11 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,7 +16,6 @@ allprojects {
password System.getenv("ENV_VSTS_MVN_ANDROIDADAL_ACCESSTOKEN") != null ? System.getenv("ENV_VSTS_MVN_ANDROIDADAL_ACCESSTOKEN") : project.findProperty("vstsMavenAccessToken")
}
}
- jcenter()
}
}
@@ -29,12 +28,11 @@ android {
keyPassword 'android'
}
}
- compileSdkVersion 28
- buildToolsVersion "29.0.0"
+ compileSdkVersion 32
defaultConfig {
applicationId "com.azuresamples.msalandroidkotlinapp"
- minSdkVersion 19
- targetSdkVersion 28
+ minSdkVersion 23
+ targetSdkVersion 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -60,23 +58,22 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.core:core-ktx:1.1.0'
- implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation 'com.google.android.material:material:1.0.0'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test:runner:1.2.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
- implementation 'com.android.volley:volley:1.1.1'
+ implementation 'androidx.appcompat:appcompat:1.5.1'
+ implementation 'androidx.core:core-ktx:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ implementation 'com.google.android.material:material:1.6.0'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test:runner:1.5.2'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+ implementation 'com.android.volley:volley:1.2.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
if (findProject(':msal') != null) {
// For developer team only.
localImplementation project(':msal')
- externalImplementation 'com.microsoft.identity.client:msal:1.0.+'
+ externalImplementation 'com.microsoft.identity.client:msal:4.1.+'
}
else {
// Downloads and Builds MSAL from maven central.
- implementation 'com.microsoft.identity.client:msal:1.0.+'
+ implementation 'com.microsoft.identity.client:msal:4.1.+'
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 64335bd..5bbc14c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -14,7 +14,7 @@
android:theme="@style/AppTheme">
@@ -23,7 +23,9 @@
-
+
diff --git a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CModeFragment.kt b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CModeFragment.kt
index 17c3e0e..31be381 100644
--- a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CModeFragment.kt
+++ b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CModeFragment.kt
@@ -68,7 +68,7 @@ class B2CModeFragment : Fragment() {
// Creates a PublicClientApplication object with res/raw/auth_config_single_account.json
- PublicClientApplication.createMultipleAccountPublicClientApplication(context!!,
+ PublicClientApplication.createMultipleAccountPublicClientApplication(requireContext(),
R.raw.auth_config_b2c,
object : IMultipleAccountApplicationCreatedListener {
override fun onCreated(application: IMultipleAccountPublicClientApplication) {
@@ -94,7 +94,7 @@ class B2CModeFragment : Fragment() {
private fun initializeUI() {
val dataAdapter = ArrayAdapter(
- context, android.R.layout.simple_spinner_item,
+ requireContext(), android.R.layout.simple_spinner_item,
object : ArrayList() {
init {
for (policyName in B2CConfiguration.Policies) add(policyName)
@@ -301,7 +301,7 @@ class B2CModeFragment : Fragment() {
btn_acquireTokenSilently!!.isEnabled = false
}
val dataAdapter = ArrayAdapter(
- context, android.R.layout.simple_spinner_item,
+ requireContext(), android.R.layout.simple_spinner_item,
object : ArrayList() {
init {
for (user in users) add(user.displayName)
diff --git a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CUser.kt b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CUser.kt
index 1d4629e..e5e12de 100644
--- a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CUser.kt
+++ b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/B2CUser.kt
@@ -30,7 +30,7 @@ import com.microsoft.identity.client.IMultipleAccountPublicClientApplication.Rem
import com.microsoft.identity.client.SilentAuthenticationCallback
import com.microsoft.identity.client.exception.MsalException
import com.microsoft.identity.client.exception.MsalUiRequiredException
-import com.microsoft.identity.common.internal.providers.oauth2.IDToken
+import com.microsoft.identity.common.java.providers.oauth2.IDToken
import java.util.*
/**
diff --git a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/MultipleAccountModeFragment.kt b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/MultipleAccountModeFragment.kt
index 841065a..414317b 100644
--- a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/MultipleAccountModeFragment.kt
+++ b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/MultipleAccountModeFragment.kt
@@ -321,7 +321,7 @@ class MultipleAccountModeFragment : Fragment() {
}
val dataAdapter = ArrayAdapter(
- context!!, android.R.layout.simple_spinner_item,
+ requireContext(), android.R.layout.simple_spinner_item,
object : ArrayList() {
init {
for (account in result)
diff --git a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/SingleAccountModeFragment.kt b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/SingleAccountModeFragment.kt
index e5b6f6e..d8573b5 100644
--- a/app/src/main/java/com/azuresamples/msalandroidkotlinapp/SingleAccountModeFragment.kt
+++ b/app/src/main/java/com/azuresamples/msalandroidkotlinapp/SingleAccountModeFragment.kt
@@ -116,7 +116,7 @@ class SingleAccountModeFragment : Fragment() {
* - the resource you're acquiring a token for has a stricter set of requirement than your SSO refresh token.
* - you're introducing a new scope which the user has never consented for.
*/
- mSingleAccountApp!!.acquireToken(activity!!, getScopes(), getAuthInteractiveCallback())
+ mSingleAccountApp!!.acquireToken(requireActivity(), getScopes(), getAuthInteractiveCallback())
})
btn_callGraphSilently.setOnClickListener(View.OnClickListener {
@@ -266,15 +266,15 @@ class SingleAccountModeFragment : Fragment() {
*/
private fun callGraphAPI(authenticationResult: IAuthenticationResult) {
MSGraphRequestWrapper.callGraphAPIWithVolley(
- context as Context,
+ requireContext(),
msgraph_url.text.toString(),
authenticationResult.accessToken,
- Response.Listener { response ->
+ { response ->
/* Successfully called graph, process data and send to UI */
Log.d(TAG, "Response: $response")
displayGraphResult(response)
},
- Response.ErrorListener { error ->
+ { error ->
Log.d(TAG, "Error: $error")
displayError(error)
})
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
deleted file mode 100644
index fd7a058..0000000
--- a/app/src/main/res/values-v21/styles.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd6c54b..089e711 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- My Application
+ MSAL Sample
Open navigation drawer
Close navigation drawer
Android Studio
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 545b9c6..8cce7b9 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,7 +1,7 @@
-
diff --git a/build.gradle b/build.gradle
index e2f6082..27ebe6c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,10 +1,10 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.3.31'
+ ext.kotlin_version = '1.7.10'
repositories {
google()
- jcenter()
+ mavenCentral()
maven {
name "vsts-maven-adal-android"
url "https://identitydivision.pkgs.visualstudio.com/_packaging/AndroidADAL/maven/v1"
@@ -16,7 +16,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.4.1'
+ classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -26,8 +26,10 @@ buildscript {
allprojects {
repositories {
google()
- jcenter()
-
+ mavenCentral()
+ maven {
+ url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
+ }
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 73b4343..0a7294a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Sep 16 19:55:15 PDT 2019
+#Fri Jan 13 11:52:09 AEDT 2023
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
+zipStoreBase=GRADLE_USER_HOME