summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt16
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt16
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateCredentialViewModel.kt13
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt12
4 files changed, 20 insertions, 37 deletions
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt
index 1e5bd7bf843e..7d433648df28 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt
@@ -152,22 +152,6 @@ class CredentialManagerRepo(
return CreateFlowUtils.toRequestDisplayInfo(requestInfo, context)
}
- companion object {
- // TODO: find a way to resolve this static field leak problem
- lateinit var repo: CredentialManagerRepo
-
- fun setup(
- context: Context,
- intent: Intent,
- ) {
- repo = CredentialManagerRepo(context, intent)
- }
-
- fun getInstance(): CredentialManagerRepo {
- return repo
- }
- }
-
// TODO: below are prototype functionalities. To be removed for productionization.
private fun testCreateCredentialEnabledProviderList(): List<CreateCredentialProviderData> {
return listOf(
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt
index 686415f9d3e9..0620f9aa8c82 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt
@@ -45,19 +45,19 @@ import kotlinx.coroutines.launch
class CredentialSelectorActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- CredentialManagerRepo.setup(this, intent)
+ val credManRepo = CredentialManagerRepo(this, intent)
UserConfigRepo.setup(this)
- val requestInfo = CredentialManagerRepo.getInstance().requestInfo
+ val requestInfo = credManRepo.requestInfo
setContent {
CredentialSelectorTheme {
- CredentialManagerBottomSheet(DialogType.toDialogType(requestInfo.type))
+ CredentialManagerBottomSheet(DialogType.toDialogType(requestInfo.type), credManRepo)
}
}
}
@ExperimentalMaterialApi
@Composable
- fun CredentialManagerBottomSheet(dialogType: DialogType) {
+ fun CredentialManagerBottomSheet(dialogType: DialogType, credManRepo: CredentialManagerRepo) {
val providerActivityResult = remember { mutableStateOf<ProviderActivityResult?>(null) }
val launcher = rememberLauncherForActivityResult(
ActivityResultContracts.StartIntentSenderForResult()
@@ -66,7 +66,9 @@ class CredentialSelectorActivity : ComponentActivity() {
}
when (dialogType) {
DialogType.CREATE_PASSKEY -> {
- val viewModel: CreateCredentialViewModel = viewModel()
+ val viewModel: CreateCredentialViewModel = viewModel{
+ CreateCredentialViewModel(credManRepo)
+ }
lifecycleScope.launch {
viewModel.observeDialogResult().collect{ dialogResult ->
onCancel(dialogResult)
@@ -79,7 +81,9 @@ class CredentialSelectorActivity : ComponentActivity() {
CreateCredentialScreen(viewModel = viewModel, providerActivityLauncher = launcher)
}
DialogType.GET_CREDENTIALS -> {
- val viewModel: GetCredentialViewModel = viewModel()
+ val viewModel: GetCredentialViewModel = viewModel{
+ GetCredentialViewModel(credManRepo)
+ }
lifecycleScope.launch {
viewModel.observeDialogResult().collect{ dialogResult ->
onCancel(dialogResult)
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateCredentialViewModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateCredentialViewModel.kt
index 3e1137df345f..ac84503583a8 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateCredentialViewModel.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateCredentialViewModel.kt
@@ -52,10 +52,9 @@ data class CreateCredentialUiState(
)
class CreateCredentialViewModel(
- credManRepo: CredentialManagerRepo = CredentialManagerRepo.getInstance(),
- userConfigRepo: UserConfigRepo = UserConfigRepo.getInstance()
+ private val credManRepo: CredentialManagerRepo,
+ userConfigRepo: UserConfigRepo = UserConfigRepo.getInstance(),
) : ViewModel() {
-
var providerEnableListUiState = credManRepo.getCreateProviderEnableListInitialUiState()
var providerDisableListUiState = credManRepo.getCreateProviderDisableListInitialUiState()
@@ -142,12 +141,12 @@ class CreateCredentialViewModel(
}
fun onDisabledProvidersSelected() {
- CredentialManagerRepo.getInstance().onCancel()
+ credManRepo.onCancel()
dialogResult.tryEmit(DialogResult(ResultState.LAUNCH_SETTING_CANCELED))
}
fun onCancel() {
- CredentialManagerRepo.getInstance().onCancel()
+ credManRepo.onCancel()
dialogResult.tryEmit(DialogResult(ResultState.NORMAL_CANCELED))
}
@@ -189,7 +188,7 @@ class CreateCredentialViewModel(
hidden = true,
)
} else {
- CredentialManagerRepo.getInstance().onOptionSelected(
+ credManRepo.onOptionSelected(
providerId,
entryKey,
entrySubkey
@@ -243,7 +242,7 @@ class CreateCredentialViewModel(
"$providerId, key=${entry.entryKey}, subkey=${entry.entrySubkey}, " +
"resultCode=$resultCode, resultData=$resultData}"
)
- CredentialManagerRepo.getInstance().onOptionSelected(
+ credManRepo.onOptionSelected(
providerId, entry.entryKey, entry.entrySubkey, resultCode, resultData,
)
} else {
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt
index af59a0a39c72..6f0f76b72e50 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt
@@ -46,9 +46,7 @@ data class GetCredentialUiState(
val isNoAccount: Boolean = false,
)
-class GetCredentialViewModel(
- credManRepo: CredentialManagerRepo = CredentialManagerRepo.getInstance()
-) : ViewModel() {
+class GetCredentialViewModel(private val credManRepo: CredentialManagerRepo) : ViewModel() {
var uiState by mutableStateOf(credManRepo.getCredentialInitialUiState())
private set
@@ -70,9 +68,7 @@ class GetCredentialViewModel(
hidden = true,
)
} else {
- CredentialManagerRepo.getInstance().onOptionSelected(
- entry.providerId, entry.entryKey, entry.entrySubkey,
- )
+ credManRepo.onOptionSelected(entry.providerId, entry.entryKey, entry.entrySubkey)
dialogResult.tryEmit(DialogResult(ResultState.COMPLETE))
}
}
@@ -110,7 +106,7 @@ class GetCredentialViewModel(
"${entry.providerId}, key=${entry.entryKey}, subkey=${entry.entrySubkey}, " +
"resultCode=$resultCode, resultData=$resultData}"
)
- CredentialManagerRepo.getInstance().onOptionSelected(
+ credManRepo.onOptionSelected(
entry.providerId, entry.entryKey, entry.entrySubkey,
resultCode, resultData,
)
@@ -144,7 +140,7 @@ class GetCredentialViewModel(
}
fun onCancel() {
- CredentialManagerRepo.getInstance().onCancel()
+ credManRepo.onCancel()
dialogResult.tryEmit(DialogResult(ResultState.NORMAL_CANCELED))
}
}