diff options
Diffstat (limited to 'anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt')
-rw-r--r-- | anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt deleted file mode 100644 index a7a1e75..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This file is part of GNU Taler - * (C) 2020 Taler Systems S.A. - * - * GNU Taler is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 3, or (at your option) any later version. - * - * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -package org.gnu.anastasis.ui.authentication - -import android.Manifest -import android.annotation.SuppressLint -import android.content.pm.PackageManager.PERMISSION_GRANTED -import android.os.Bundle -import android.telephony.TelephonyManager -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.annotation.RequiresPermission -import androidx.core.content.ContextCompat.checkSelfPermission -import androidx.core.content.getSystemService -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.navigation.fragment.findNavController -import com.google.android.material.transition.MaterialContainerTransform -import com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS -import org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.PERMISSION_REQUEST_CODE -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentSmsBinding - -private const val PERMISSION = Manifest.permission.READ_PHONE_STATE - -class SmsFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var _binding: FragmentSmsBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?, - ): View? { - _binding = FragmentSmsBinding.inflate(inflater, container, false) - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_sms, container, false).apply { - transitionName = "sms_card" - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - binding.smsView.editText?.setOnFocusChangeListener { _, hasFocus -> - if (hasFocus) checkPerm() - } - binding.saveSmsButton.setOnClickListener { - viewModel.smsChecked.value = true - findNavController().popBackStack() - } - } - - private fun checkPerm() = when { - checkSelfPermission(requireContext(), PERMISSION) == PERMISSION_GRANTED -> { - // You can use the API that requires the permission. - fillPhoneNumber() - } - shouldShowRequestPermissionRationale(PERMISSION) -> { - // In an educational UI, explain to the user why your app requires this - // permission for a specific feature to behave as expected. In this UI, - // include a "cancel" or "no thanks" button that allows the user to - // continue using your app without granting the permission. - } - else -> { - // You can directly ask for the permission. - requestPermissions(arrayOf(PERMISSION), PERMISSION_REQUEST_CODE) - } - } - - @Deprecated("Deprecated in Java") - override fun onRequestPermissionsResult( - requestCode: Int, - permissions: Array<String>, - grantResults: IntArray, - ) { - if (requestCode == PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && - grantResults[0] == PERMISSION_GRANTED - ) checkPerm() - } - - @SuppressLint("HardwareIds") - @RequiresPermission(PERMISSION) - private fun fillPhoneNumber() { - val telephonyService = requireContext().getSystemService<TelephonyManager>() - telephonyService?.line1Number?.let { phoneNumber -> - binding.smsView.editText?.setText(phoneNumber) - binding.smsView.editText?.setSelection(phoneNumber.length) - } - } - -} |