Advertisement
Guest User

Untitled

a guest
Apr 16th, 2021
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.19 KB | None | 0 0
  1. @AndroidEntryPoint
  2. class RunFragment : Fragment(), EasyPermissions.PermissionCallbacks{
  3.  
  4.     private val mainViewModel: MainViewModel by viewModels()
  5.  
  6.     private var _binding : FragmentRunBinding? = null
  7.     private val binding get() = _binding!!
  8.  
  9.     private lateinit var runAdapter: RunAdapter
  10.  
  11.     override fun onCreateView(
  12.         inflater: LayoutInflater,
  13.         container: ViewGroup?,
  14.         savedInstanceState: Bundle?
  15.     ): View? {
  16.         _binding = FragmentRunBinding.inflate(inflater, container, false)
  17.         return binding.root
  18.     }
  19.     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  20.         super.onViewCreated(view, savedInstanceState)
  21.  
  22.         requestPermissions()
  23.  
  24.         binding.fab.setOnClickListener {
  25.             findNavController().navigate(R.id.action_runFragment_to_trackingFragment)
  26.         }
  27.  
  28.         binding.rvRuns.apply {
  29.             runAdapter = RunAdapter()
  30.             adapter = runAdapter
  31.         }
  32.  
  33.         binding.spFilter.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
  34.             override fun onItemSelected(adapter: AdapterView<*>?, view: View?, position: Int, id: Long) {
  35.                 mainViewModel.runsSortedByColumnName(SortType.findSortTypeByPosition(position)).observe(viewLifecycleOwner) {
  36.                     runAdapter.submitList(it)
  37.                 }
  38.             }
  39.             override fun onNothingSelected(p0: AdapterView<*>?) {}
  40.         }
  41.     }
  42.  
  43.     private fun requestPermissions() {
  44.         if (TrackingUtility.hasLocationPermission(requireContext())) {
  45.             return
  46.         }
  47.         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
  48.             EasyPermissions.requestPermissions(
  49.                 this,
  50.                 "You need to accept location permissions to use this app.",
  51.                 REQUEST_CODE_LOCATION_PERMISSION,
  52.                 Manifest.permission.ACCESS_FINE_LOCATION,
  53.                 Manifest.permission.ACCESS_COARSE_LOCATION,
  54.             )
  55.         } else {
  56.             EasyPermissions.requestPermissions(
  57.                 this,
  58.                 "You need to accept location permissions to use this app.",
  59.                 REQUEST_CODE_LOCATION_PERMISSION,
  60.                 Manifest.permission.ACCESS_COARSE_LOCATION,
  61.                 Manifest.permission.ACCESS_FINE_LOCATION,
  62.                 Manifest.permission.ACCESS_BACKGROUND_LOCATION
  63.             )
  64.         }
  65.     }
  66.  
  67.     override fun onRequestPermissionsResult(
  68.         requestCode: Int,
  69.         permissions: Array<out String>,
  70.         grantResults: IntArray
  71.     ) {
  72.         super.onRequestPermissionsResult(requestCode, permissions, grantResults)
  73.         EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
  74.     }
  75.  
  76.     override fun onPermissionsGranted(requestCode: Int, perms: MutableList<String>) {
  77.         if (EasyPermissions.somePermissionPermanentlyDenied(this, perms))
  78.             AppSettingsDialog.Builder(this).build().show()
  79.         else requestPermissions()
  80.     }
  81.  
  82.     override fun onPermissionsDenied(requestCode: Int, perms: MutableList<String>) {}
  83.  
  84.     override fun onDestroy() {
  85.         super.onDestroy()
  86.         _binding = null
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement