BlindlyTeam/Blindly

View on GitHub
app/src/main/java/ch/epfl/sdp/blindly/location/permissions/LocationPermissionActivity.kt

Summary

Maintainability
A
0 mins
Test Coverage
B
86%
package ch.epfl.sdp.blindly.location.permissions

import android.Manifest
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import ch.epfl.sdp.blindly.R
import ch.epfl.sdp.blindly.profile_setup.ProfileName

/**
 * Page to ask user to enable location. If allowed Profile Setup pages show up in order.
 */
class LocationPermissionActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_location_permission)

        val button: Button = findViewById(R.id.enable_location_button)

        /**
         * Clicking on the button requires the location service to be able
         * to continue with the profile setup
         */
        button.setOnClickListener {
            LocationPermission.requestPermission(
                this, LocationPermission.LOCATION_PERMISSION_REQUEST_CODE,
                Manifest.permission.ACCESS_FINE_LOCATION, false
            )
        }
    }

    // [START maps_check_location_permission_result]
    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode != LocationPermission.LOCATION_PERMISSION_REQUEST_CODE) {
            return
        }
        if (LocationPermission.isPermissionGranted(
                permissions,
                grantResults,
                Manifest.permission.ACCESS_FINE_LOCATION
            )
        ) {
            val intent = Intent(
                this, ProfileName::class.java
            )
            startActivity(intent)
        } else {
            // Permission was denied. Display an error message
            // [START_EXCLUDE]
            LocationPermission.Companion.PermissionDeniedDialog.newInstance(false)
                .show(supportFragmentManager, "dialog")
            // [END_EXCLUDE]
        }
    }
}