Loading core/java/android/credentials/Credential.java +2 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ public final class Credential implements Parcelable { * * @hide */ @NonNull public static final String TYPE_PASSWORD = "android.credentials.TYPE_PASSWORD"; @NonNull public static final String TYPE_PASSWORD_CREDENTIAL = "android.credentials.TYPE_PASSWORD_CREDENTIAL"; /** * The credential type. Loading packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import com.android.credentialmanager.createflow.CreateScreenState import com.android.credentialmanager.createflow.RequestDisplayInfo import com.android.credentialmanager.getflow.GetCredentialUiState import com.android.credentialmanager.getflow.GetScreenState import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL // Consider repo per screen, similar to view model? class CredentialManagerRepo( Loading packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap import com.android.credentialmanager.R import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PASSWORD_CREDENTIAL import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PASSWORD_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.ui.theme.Grey100 import com.android.credentialmanager.ui.theme.Shapes import com.android.credentialmanager.ui.theme.Typography Loading packages/CredentialManager/src/com/android/credentialmanager/jetpack/developer/CreateCredentialRequest.kt 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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 com.android.credentialmanager.jetpack.developer import android.credentials.Credential import android.os.Bundle /** * Base request class for registering a credential. * * @property type the credential type * @property data the request data in the [Bundle] format * @property requireSystemProvider true if must only be fulfilled by a system provider and false * otherwise */ open class CreateCredentialRequest( val type: String, val data: Bundle, val requireSystemProvider: Boolean, ) { companion object { @JvmStatic fun createFrom(from: android.credentials.CreateCredentialRequest): CreateCredentialRequest { return try { when (from.type) { Credential.TYPE_PASSWORD_CREDENTIAL -> CreatePasswordRequest.createFrom(from.data) PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL -> CreatePublicKeyCredentialBaseRequest.createFrom(from.data) else -> CreateCredentialRequest(from.type, from.data, from.requireSystemProvider()) } } catch (e: FrameworkClassParsingException) { CreateCredentialRequest(from.type, from.data, from.requireSystemProvider()) } } } } packages/CredentialManager/src/com/android/credentialmanager/jetpack/developer/CreatePasswordRequest.kt 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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 com.android.credentialmanager.jetpack.developer import android.credentials.Credential import android.os.Bundle /** * A request to save the user password credential with their password provider. * * @property id the user id associated with the password * @property password the password * @throws NullPointerException If [id] is null * @throws NullPointerException If [password] is null * @throws IllegalArgumentException If [password] is empty */ class CreatePasswordRequest constructor( val id: String, val password: String, ) : CreateCredentialRequest( Credential.TYPE_PASSWORD_CREDENTIAL, toBundle(id, password), false, ) { init { require(password.isNotEmpty()) { "password should not be empty" } } companion object { const val BUNDLE_KEY_ID = "androidx.credentials.BUNDLE_KEY_ID" const val BUNDLE_KEY_PASSWORD = "androidx.credentials.BUNDLE_KEY_PASSWORD" @JvmStatic internal fun toBundle(id: String, password: String): Bundle { val bundle = Bundle() bundle.putString(BUNDLE_KEY_ID, id) bundle.putString(BUNDLE_KEY_PASSWORD, password) return bundle } @JvmStatic fun createFrom(data: Bundle): CreatePasswordRequest { try { val id = data.getString(BUNDLE_KEY_ID) val password = data.getString(BUNDLE_KEY_PASSWORD) return CreatePasswordRequest(id!!, password!!) } catch (e: Exception) { throw FrameworkClassParsingException() } } } } Loading
core/java/android/credentials/Credential.java +2 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ public final class Credential implements Parcelable { * * @hide */ @NonNull public static final String TYPE_PASSWORD = "android.credentials.TYPE_PASSWORD"; @NonNull public static final String TYPE_PASSWORD_CREDENTIAL = "android.credentials.TYPE_PASSWORD_CREDENTIAL"; /** * The credential type. Loading
packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import com.android.credentialmanager.createflow.CreateScreenState import com.android.credentialmanager.createflow.RequestDisplayInfo import com.android.credentialmanager.getflow.GetCredentialUiState import com.android.credentialmanager.getflow.GetScreenState import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL // Consider repo per screen, similar to view model? class CredentialManagerRepo( Loading
packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap import com.android.credentialmanager.R import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PASSWORD_CREDENTIAL import com.android.credentialmanager.jetpack.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PASSWORD_CREDENTIAL import com.android.credentialmanager.jetpack.provider.CredentialEntryUi.Companion.TYPE_PUBLIC_KEY_CREDENTIAL import com.android.credentialmanager.ui.theme.Grey100 import com.android.credentialmanager.ui.theme.Shapes import com.android.credentialmanager.ui.theme.Typography Loading
packages/CredentialManager/src/com/android/credentialmanager/jetpack/developer/CreateCredentialRequest.kt 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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 com.android.credentialmanager.jetpack.developer import android.credentials.Credential import android.os.Bundle /** * Base request class for registering a credential. * * @property type the credential type * @property data the request data in the [Bundle] format * @property requireSystemProvider true if must only be fulfilled by a system provider and false * otherwise */ open class CreateCredentialRequest( val type: String, val data: Bundle, val requireSystemProvider: Boolean, ) { companion object { @JvmStatic fun createFrom(from: android.credentials.CreateCredentialRequest): CreateCredentialRequest { return try { when (from.type) { Credential.TYPE_PASSWORD_CREDENTIAL -> CreatePasswordRequest.createFrom(from.data) PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL -> CreatePublicKeyCredentialBaseRequest.createFrom(from.data) else -> CreateCredentialRequest(from.type, from.data, from.requireSystemProvider()) } } catch (e: FrameworkClassParsingException) { CreateCredentialRequest(from.type, from.data, from.requireSystemProvider()) } } } }
packages/CredentialManager/src/com/android/credentialmanager/jetpack/developer/CreatePasswordRequest.kt 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 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 com.android.credentialmanager.jetpack.developer import android.credentials.Credential import android.os.Bundle /** * A request to save the user password credential with their password provider. * * @property id the user id associated with the password * @property password the password * @throws NullPointerException If [id] is null * @throws NullPointerException If [password] is null * @throws IllegalArgumentException If [password] is empty */ class CreatePasswordRequest constructor( val id: String, val password: String, ) : CreateCredentialRequest( Credential.TYPE_PASSWORD_CREDENTIAL, toBundle(id, password), false, ) { init { require(password.isNotEmpty()) { "password should not be empty" } } companion object { const val BUNDLE_KEY_ID = "androidx.credentials.BUNDLE_KEY_ID" const val BUNDLE_KEY_PASSWORD = "androidx.credentials.BUNDLE_KEY_PASSWORD" @JvmStatic internal fun toBundle(id: String, password: String): Bundle { val bundle = Bundle() bundle.putString(BUNDLE_KEY_ID, id) bundle.putString(BUNDLE_KEY_PASSWORD, password) return bundle } @JvmStatic fun createFrom(data: Bundle): CreatePasswordRequest { try { val id = data.getString(BUNDLE_KEY_ID) val password = data.getString(BUNDLE_KEY_PASSWORD) return CreatePasswordRequest(id!!, password!!) } catch (e: Exception) { throw FrameworkClassParsingException() } } } }