| /* |
| * Copyright (C) 2023 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.settings.biometrics2.ui.view |
| |
| import android.content.Context |
| import android.os.Bundle |
| import android.view.LayoutInflater |
| import android.view.View |
| import android.view.ViewGroup |
| import androidx.fragment.app.Fragment |
| import androidx.fragment.app.FragmentActivity |
| import androidx.lifecycle.ViewModelProvider |
| import com.android.settings.R |
| import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel |
| import com.google.android.setupcompat.template.FooterBarMixin |
| import com.google.android.setupcompat.template.FooterButton |
| import com.google.android.setupdesign.GlifLayout |
| |
| /** |
| * Fragment which concludes fingerprint enrollment. |
| */ |
| class FingerprintEnrollFinishFragment : Fragment() { |
| |
| private var _viewModel: FingerprintEnrollFinishViewModel? = null |
| private val viewModel: FingerprintEnrollFinishViewModel |
| get() = _viewModel!! |
| |
| private val addButtonClickListener = |
| View.OnClickListener { _: View? -> viewModel.onAddButtonClick() } |
| |
| private val nextButtonClickListener = |
| View.OnClickListener { _: View? -> viewModel.onNextButtonClick() } |
| override fun onAttach(context: Context) { |
| super.onAttach(context) |
| _viewModel = ViewModelProvider(requireActivity())[ |
| FingerprintEnrollFinishViewModel::class.java |
| ] |
| } |
| |
| override fun onCreateView( |
| inflater: LayoutInflater, container: ViewGroup?, |
| savedInstanceState: Bundle? |
| ) : View = (inflater.inflate( |
| if (viewModel.canAssumeSfps()) |
| R.layout.sfps_enroll_finish |
| else |
| R.layout.fingerprint_enroll_finish, |
| container, |
| false |
| ) as GlifLayout).also { |
| requireActivity().bindFingerprintEnrollFinishFragment( |
| view = it, |
| isSuw = viewModel.request.isSuw, |
| canAssumeSfps = viewModel.canAssumeSfps(), |
| isAnotherFingerprintEnrollable = viewModel.isAnotherFingerprintEnrollable, |
| nextButtonClickListener = nextButtonClickListener, |
| addButtonClickListener = addButtonClickListener |
| ) |
| } |
| } |
| |
| fun FragmentActivity.bindFingerprintEnrollFinishFragment( |
| view: GlifLayout, |
| isSuw: Boolean, |
| canAssumeSfps: Boolean, |
| isAnotherFingerprintEnrollable: Boolean, |
| nextButtonClickListener: View.OnClickListener, |
| addButtonClickListener: View.OnClickListener |
| ) { |
| GlifLayoutHelper(this, view).apply { |
| setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title) |
| setDescriptionText( |
| getString( |
| if (canAssumeSfps && isAnotherFingerprintEnrollable) |
| R.string.security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message |
| else |
| R.string.security_settings_fingerprint_enroll_finish_v2_message |
| ) |
| ) |
| } |
| |
| view.getMixin(FooterBarMixin::class.java).also { footer -> |
| footer.primaryButton = FooterButton.Builder(this) |
| .setText( |
| if (isSuw) |
| R.string.next_label |
| else |
| R.string.security_settings_fingerprint_enroll_done |
| ) |
| .setListener(nextButtonClickListener) |
| .setButtonType(FooterButton.ButtonType.NEXT) |
| .setTheme(R.style.SudGlifButton_Primary) |
| .build() |
| if (isAnotherFingerprintEnrollable) { |
| footer.secondaryButton = FooterButton.Builder(this) |
| .setText(R.string.fingerprint_enroll_button_add) |
| .setListener(addButtonClickListener) |
| .setButtonType(FooterButton.ButtonType.SKIP) |
| .setTheme(R.style.SudGlifButton_Secondary) |
| .build() |
| } |
| } |
| |
| } |