Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @AndroidEntryPoint
- class RunFragment : Fragment(), EasyPermissions.PermissionCallbacks{
- private val mainViewModel: MainViewModel by viewModels()
- private var _binding : FragmentRunBinding? = null
- private val binding get() = _binding!!
- private lateinit var runAdapter: RunAdapter
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- _binding = FragmentRunBinding.inflate(inflater, container, false)
- return binding.root
- }
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- requestPermissions()
- binding.fab.setOnClickListener {
- findNavController().navigate(R.id.action_runFragment_to_trackingFragment)
- }
- binding.rvRuns.apply {
- runAdapter = RunAdapter()
- adapter = runAdapter
- }
- binding.spFilter.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(adapter: AdapterView<*>?, view: View?, position: Int, id: Long) {
- mainViewModel.runsSortedByColumnName(SortType.findSortTypeByPosition(position)).observe(viewLifecycleOwner) {
- runAdapter.submitList(it)
- }
- }
- override fun onNothingSelected(p0: AdapterView<*>?) {}
- }
- }
- private fun requestPermissions() {
- if (TrackingUtility.hasLocationPermission(requireContext())) {
- return
- }
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
- EasyPermissions.requestPermissions(
- this,
- "You need to accept location permissions to use this app.",
- REQUEST_CODE_LOCATION_PERMISSION,
- Manifest.permission.ACCESS_FINE_LOCATION,
- Manifest.permission.ACCESS_COARSE_LOCATION,
- )
- } else {
- EasyPermissions.requestPermissions(
- this,
- "You need to accept location permissions to use this app.",
- REQUEST_CODE_LOCATION_PERMISSION,
- Manifest.permission.ACCESS_COARSE_LOCATION,
- Manifest.permission.ACCESS_FINE_LOCATION,
- Manifest.permission.ACCESS_BACKGROUND_LOCATION
- )
- }
- }
- override fun onRequestPermissionsResult(
- requestCode: Int,
- permissions: Array<out String>,
- grantResults: IntArray
- ) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
- }
- override fun onPermissionsGranted(requestCode: Int, perms: MutableList<String>) {
- if (EasyPermissions.somePermissionPermanentlyDenied(this, perms))
- AppSettingsDialog.Builder(this).build().show()
- else requestPermissions()
- }
- override fun onPermissionsDenied(requestCode: Int, perms: MutableList<String>) {}
- override fun onDestroy() {
- super.onDestroy()
- _binding = null
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement