diff --git a/build.gradle b/build.gradle index 062c448320..a65e291022 100644 --- a/build.gradle +++ b/build.gradle @@ -7,34 +7,35 @@ buildscript { ext.cronetVersion = '102.5005.125' ext.wearableVersion = '0.1.1' - ext.kotlinVersion = '1.7.22' - ext.coroutineVersion = '1.6.4' + ext.kotlinVersion = '1.9.22' + ext.coroutineVersion = '1.7.3' - ext.annotationVersion = '1.5.0' + ext.annotationVersion = '1.7.1' ext.appcompatVersion = '1.6.1' ext.biometricVersion = '1.1.0' - ext.coreVersion = '1.9.0' - ext.fragmentVersion = '1.5.5' - ext.lifecycleVersion = '2.5.1' + ext.coreVersion = '1.12.0' + ext.fragmentVersion = '1.6.2' + ext.lifecycleVersion = '2.7.0' ext.loaderVersion = '1.1.0' - ext.mediarouterVersion = '1.3.1' + ext.materialVersion = '1.11.0' + ext.mediarouterVersion = '1.6.0' ext.multidexVersion = '2.0.1' - ext.navigationVersion = '2.5.3' + ext.navigationVersion = '2.7.7' ext.preferenceVersion = '1.2.0' - ext.recyclerviewVersion = '1.2.0' - ext.webkitVersion = '1.4.0' + ext.recyclerviewVersion = '1.3.2' + ext.webkitVersion = '1.10.0' ext.slf4jVersion = '1.7.36' ext.volleyVersion = '1.2.1' ext.wireVersion = '4.8.0' - ext.androidBuildGradleVersion = '8.0.2' + ext.androidBuildGradleVersion = '8.2.2' - ext.androidBuildVersionTools = '33.0.1' + ext.androidBuildVersionTools = '34.0.0' - ext.androidMinSdk = 14 + ext.androidMinSdk = 19 ext.androidTargetSdk = 29 - ext.androidCompileSdk = 33 + ext.androidCompileSdk = 34 ext.localProperties = new Properties() diff --git a/firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt b/firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt index d5af19cada..3d7f68c40a 100644 --- a/firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt +++ b/firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt @@ -82,7 +82,7 @@ class FirebaseAuthService : BaseService(TAG, GmsService.FIREBASE_AUTH) { } } -class FirebaseAuthServiceImpl(private val context: Context, private val lifecycle: Lifecycle, private val packageName: String, private val libraryVersion: String?, private val apiKey: String) : IFirebaseAuthService.Stub(), LifecycleOwner { +class FirebaseAuthServiceImpl(private val context: Context, override val lifecycle: Lifecycle, private val packageName: String, private val libraryVersion: String?, private val apiKey: String) : IFirebaseAuthService.Stub(), LifecycleOwner { private val client by lazy { IdentityToolkitClient(context, apiKey, packageName, PackageUtils.firstSignatureDigestBytes(context, packageName)) } private var authorizedDomain: String? = null @@ -151,8 +151,6 @@ class FirebaseAuthServiceImpl(private val context: Context, private val lifecycl } } - override fun getLifecycle(): Lifecycle = lifecycle - override fun applyActionCode(request: ApplyActionCodeAidlRequest, callbacks: IFirebaseAuthCallbacks) { Log.d(TAG, "Not yet implemented: applyActionCode") callbacks.onFailure(Status(CommonStatusCodes.CANCELED, "Not supported")) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2a..ccebba7710 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e59574a340..70728d8286 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,6 +3,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 050e50b880..91a12af9d1 100755 --- a/gradlew +++ b/gradlew @@ -56,7 +56,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -81,10 +81,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -144,12 +144,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -206,6 +210,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 8fc60882af..eba6659c01 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -15,7 +15,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -26,7 +26,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -41,7 +42,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -76,13 +77,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverCore.kt b/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverCore.kt index 08b2255bd6..c0c70b4945 100644 --- a/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverCore.kt +++ b/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverCore.kt @@ -53,7 +53,7 @@ private const val EXTRA_REQUEST_ID = "requestId" private const val TIMEOUT = 1000 * 60 * 5 // 5 minutes private const val MESSAGE_MAX_LEN = 140 -class SmsRetrieverCore(private val context: Context, private val lifecycle: Lifecycle) : LifecycleOwner, DefaultLifecycleObserver { +class SmsRetrieverCore(private val context: Context, override val lifecycle: Lifecycle) : LifecycleOwner, DefaultLifecycleObserver { private val requests: HashMap = hashMapOf() private val requestIdCounter = AtomicInteger(0) private lateinit var timeoutBroadcastReceiver: BroadcastReceiver @@ -66,8 +66,6 @@ class SmsRetrieverCore(private val context: Context, private val lifecycle: Life lifecycle.addObserver(this) } - override fun getLifecycle(): Lifecycle = lifecycle - @TargetApi(19) private fun configureBroadcastListenersIfNeeded() { synchronized(this) { diff --git a/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverService.kt b/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverService.kt index 5b7d30cb32..76fe53593f 100644 --- a/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverService.kt +++ b/play-services-auth-api-phone/core/src/main/kotlin/org/microg/gms/auth/phone/SmsRetrieverService.kt @@ -47,11 +47,9 @@ class SmsRetrieverService : BaseService(TAG, GmsService.SMS_RETRIEVER) { } -class SmsRetrieverServiceImpl(private val smsRetriever: SmsRetrieverCore, private val packageName: String, private val lifecycle: Lifecycle) : +class SmsRetrieverServiceImpl(private val smsRetriever: SmsRetrieverCore, private val packageName: String, override val lifecycle: Lifecycle) : ISmsRetrieverApiService.Stub(), LifecycleOwner { - override fun getLifecycle(): Lifecycle = lifecycle - override fun startSmsRetriever(callback: ISmsRetrieverResultCallback) { Log.d(TAG, "startSmsRetriever()") lifecycleScope.launchWhenStarted { diff --git a/play-services-core/build.gradle b/play-services-core/build.gradle index 43f7ea95f3..7f19b412f9 100644 --- a/play-services-core/build.gradle +++ b/play-services-core/build.gradle @@ -79,7 +79,7 @@ dependencies { implementation "androidx.webkit:webkit:$webkitVersion" // Material Components - implementation 'com.google.android.material:material:1.9.0' + implementation "com.google.android.material:material:$materialVersion" // Navigation implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion" diff --git a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/LoaderActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/LoaderActivity.kt index fd6f8c8165..5d165f4efe 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/LoaderActivity.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/LoaderActivity.kt @@ -61,6 +61,7 @@ class LoaderActivity : AppCompatActivity() { Uri.parse(fallbackUrl) } Log.d(TAG, "Opening fallback $fallbackUrl") + // noinspection UnsafeImplicitIntentLaunch val intent = Intent(ACTION_VIEW, uri).apply { addCategory(CATEGORY_BROWSABLE) } startActivity(intent) finishResult(RESULT_OK) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt index 201af5d172..a65b7a0de1 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt @@ -59,6 +59,7 @@ class WebViewHelper(private val activity: AppCompatActivity, private val webView } if (allowedPrefixes.isNotEmpty() && allowedPrefixes.none { url.startsWith(it) }) { try { + // noinspection UnsafeImplicitIntentLaunch activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply { addCategory(Intent.CATEGORY_BROWSABLE) }) } catch (e: Exception) { Log.w(TAG, "Error forwarding to browser", e) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/proxy/AuthProxyService.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/proxy/AuthProxyService.kt index ede33d2694..93fa86aa76 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/proxy/AuthProxyService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/proxy/AuthProxyService.kt @@ -40,7 +40,7 @@ class AuthProxyService : BaseService(TAG, GmsService.AUTH_PROXY) { } } -class AuthServiceImpl(private val context: Context, private val lifecycle: Lifecycle, private val packageName: String) : IAuthService.Stub(), LifecycleOwner { +class AuthServiceImpl(private val context: Context, override val lifecycle: Lifecycle, private val packageName: String) : IAuthService.Stub(), LifecycleOwner { override fun performProxyRequest(callbacks: IAuthCallbacks, request: ProxyRequest) { Log.d(TAG, "performProxyRequest($packageName, $request)") lifecycleScope.launchWhenStarted { @@ -57,7 +57,5 @@ class AuthServiceImpl(private val context: Context, private val lifecycle: Lifec } } - override fun getLifecycle(): Lifecycle = lifecycle - override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) } } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/AuthSignInService.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/AuthSignInService.kt index 88cac7e36a..f852a7eaf6 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/AuthSignInService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/AuthSignInService.kt @@ -61,14 +61,13 @@ class AuthSignInService : BaseService(TAG, GmsService.AUTH_SIGN_IN) { class AuthSignInServiceImpl( private val context: Context, - private val lifecycle: Lifecycle, + override val lifecycle: Lifecycle, private val packageName: String, private val account: Account?, private val scopes: List, private val extras: Bundle ) : ISignInService.Stub(), LifecycleOwner { private val queue = singleInstanceOf { Volley.newRequestQueue(context.applicationContext) } - override fun getLifecycle(): Lifecycle = lifecycle override fun silentSignIn(callbacks: ISignInCallbacks, options: GoogleSignInOptions?) { Log.d(TAG, "$packageName:silentSignIn($options)") diff --git a/play-services-core/src/main/kotlin/org/microg/gms/clearcut/ClearcutLoggerService.kt b/play-services-core/src/main/kotlin/org/microg/gms/clearcut/ClearcutLoggerService.kt index 496c5f59f4..e149a0263a 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/clearcut/ClearcutLoggerService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/clearcut/ClearcutLoggerService.kt @@ -29,7 +29,7 @@ class ClearcutLoggerService : BaseService(TAG, GmsService.CLEARCUT_LOGGER) { } } -class ClearcutLoggerServiceImpl(private val lifecycle: Lifecycle) : IClearcutLoggerService.Stub(), LifecycleOwner { +class ClearcutLoggerServiceImpl(override val lifecycle: Lifecycle) : IClearcutLoggerService.Stub(), LifecycleOwner { private var collectForDebugExpiryTime: Long = 0 override fun log(callbacks: IClearcutLoggerCallbacks, event: LogEventParcelable) { @@ -73,7 +73,5 @@ class ClearcutLoggerServiceImpl(private val lifecycle: Lifecycle) : IClearcutLog } } - override fun getLifecycle(): Lifecycle = lifecycle - override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) } } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/credential/CredentialManagerService.kt b/play-services-core/src/main/kotlin/org/microg/gms/credential/CredentialManagerService.kt index 447d5c2172..f2b7d6926e 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/credential/CredentialManagerService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/credential/CredentialManagerService.kt @@ -50,8 +50,7 @@ class CredentialManagerService : BaseService(TAG, GmsService.CREDENTIAL_MANAGER) } -private class CredentialManagerServiceImpl(private val context: Context, private val lifecycle: Lifecycle) : ICredentialManagerService.Stub(), LifecycleOwner { - override fun getLifecycle(): Lifecycle = lifecycle +private class CredentialManagerServiceImpl(private val context: Context, override val lifecycle: Lifecycle) : ICredentialManagerService.Stub(), LifecycleOwner { override fun getCredentialManagerIntent(callback: IPendingIntentCallback?, params: CredentialManagerInvocationParams?) { Log.d(TAG, "Not yet implemented: getCredentialManagerIntent $params") diff --git a/play-services-core/src/main/kotlin/org/microg/gms/games/GamesConnectService.kt b/play-services-core/src/main/kotlin/org/microg/gms/games/GamesConnectService.kt index 55fc78ef51..e5f7486a63 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/games/GamesConnectService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/games/GamesConnectService.kt @@ -46,9 +46,7 @@ class GamesConnectService : BaseService(TAG, GmsService.GAMES) { } } -class GamesConnectServiceImpl(val context: Context, private val lifecycle: Lifecycle, val packageName: String) : IGamesConnectService.Stub(), LifecycleOwner { - - override fun getLifecycle(): Lifecycle = lifecycle +class GamesConnectServiceImpl(val context: Context, override val lifecycle: Lifecycle, val packageName: String) : IGamesConnectService.Stub(), LifecycleOwner { override fun signIn(callback: IGamesConnectCallbacks?, request: GamesSignInRequest?) { Log.d(TAG, "signIn($request)") diff --git a/play-services-core/src/main/kotlin/org/microg/gms/games/GamesService.kt b/play-services-core/src/main/kotlin/org/microg/gms/games/GamesService.kt index 7a59b8f1a6..41ee931c01 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/games/GamesService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/games/GamesService.kt @@ -101,11 +101,9 @@ class GamesService : BaseService(TAG, GmsService.GAMES) { } } -class GamesServiceImpl(val context: Context, private val lifecycle: Lifecycle, val packageName: String, val account: Account, val player: Player) : +class GamesServiceImpl(val context: Context, override val lifecycle: Lifecycle, val packageName: String, val account: Account, val player: Player) : IGamesService.Stub(), LifecycleOwner { - override fun getLifecycle(): Lifecycle = lifecycle - override fun clientDisconnecting(clientId: Long) { Log.d(TAG, "Not yet implemented: clientDisconnecting($clientId)") } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/gcm/PushRegisterService.kt b/play-services-core/src/main/kotlin/org/microg/gms/gcm/PushRegisterService.kt index 6f1237259b..fa705635fa 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/gcm/PushRegisterService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/gcm/PushRegisterService.kt @@ -205,8 +205,7 @@ class PushRegisterService : LifecycleService() { } } -internal class PushRegisterHandler(private val context: Context, private val database: GcmDatabase, private val lifecycle: Lifecycle) : Handler(), LifecycleOwner { - override fun getLifecycle(): Lifecycle = lifecycle +internal class PushRegisterHandler(private val context: Context, private val database: GcmDatabase, override val lifecycle: Lifecycle) : Handler(), LifecycleOwner { private var callingUid = 0 override fun sendMessageAtTime(msg: Message, uptimeMillis: Long): Boolean { @@ -352,7 +351,7 @@ internal class PushRegisterHandler(private val context: Context, private val dat class PushRegisterReceiver : WakefulBroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val intent2 = Intent(context, PushRegisterService::class.java) - if (intent.extras!!["delete"] != null) { + if (intent.extras!!.get("delete") != null) { intent2.action = ACTION_C2DM_UNREGISTER } else { intent2.action = ACTION_C2DM_REGISTER diff --git a/play-services-core/src/main/kotlin/org/microg/gms/googlehelp/ui/GoogleHelpRedirectActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/googlehelp/ui/GoogleHelpRedirectActivity.kt index 1c2d5a970a..27f5667e35 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/googlehelp/ui/GoogleHelpRedirectActivity.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/googlehelp/ui/GoogleHelpRedirectActivity.kt @@ -27,6 +27,7 @@ class GoogleHelpRedirectActivity : AppCompatActivity() { // Long-term best is to not redirect to web but instead implement the thing properly, allowing us also to show // option items, do proper theming for better integration, etc. Log.d(TAG, "Open $uri for $callingPackage/${googleHelp.appContext} in Browser") + // noinspection UnsafeImplicitIntentLaunch startActivity(Intent(Intent.ACTION_VIEW, uri)) finish() } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt b/play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt index 0880213bba..14bad51a23 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt @@ -35,9 +35,8 @@ class SignInService : BaseService(TAG, GmsService.SIGN_IN) { } } -class SignInServiceImpl(val context: Context, private val lifecycle: Lifecycle, val packageName: String, val scopes: Array) : ISignInService.Stub(), +class SignInServiceImpl(val context: Context, override val lifecycle: Lifecycle, val packageName: String, val scopes: Array) : ISignInService.Stub(), LifecycleOwner { - override fun getLifecycle(): Lifecycle = lifecycle override fun clearAccountFromSessionStore(sessionId: Int) { Log.d(TAG, "Not yet implemented: clearAccountFromSessionStore $sessionId") diff --git a/play-services-core/src/main/res/values-night-v31/themes.xml b/play-services-core/src/main/res/values-night-v31/themes.xml new file mode 100644 index 0000000000..96ab184f33 --- /dev/null +++ b/play-services-core/src/main/res/values-night-v31/themes.xml @@ -0,0 +1,4 @@ + + + + diff --git a/play-services-core/src/main/res/values-v31/themes.xml b/play-services-core/src/main/res/values-v31/themes.xml index 09291073ad..96ab184f33 100644 --- a/play-services-core/src/main/res/values-v31/themes.xml +++ b/play-services-core/src/main/res/values-v31/themes.xml @@ -1,6 +1,4 @@ - +