package com.example.busroute import android.annotation.SuppressLint import android.content.ContentValues import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.location.Location import android.location.LocationManager import android.net.Uri import android.os.Bundle import android.os.Looper import android.preference.PreferenceManager import android.provider.BaseColumns import android.util.Log import android.view.WindowManager import android.widget.Button import android.widget.TextView import androidx.activity.ComponentActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.example.busroute.Database.DbHelper import com.example.busroute.Database.StopContract import com.google.android.gms.location.LocationCallback import com.google.android.gms.location.LocationRequest import com.google.android.gms.location.LocationResult import com.google.android.gms.location.LocationServices import com.google.android.gms.location.Priority import org.osmdroid.api.IMapController import org.osmdroid.config.Configuration.getInstance import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint import org.osmdroid.views.MapView import org.osmdroid.views.overlay.Marker import org.osmdroid.views.overlay.compass.CompassOverlay import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider import org.osmdroid.views.overlay.gestures.RotationGestureOverlay class MainActivity : ComponentActivity() { private val REQUEST_PERMISSIONS_REQUEST_CODE = 1 private lateinit var map : MapView private lateinit var currentLocation: Location private lateinit var locationManager: LocationManager private lateinit var mapController: IMapController private lateinit var positionMarker: Marker private lateinit var locationCallback: LocationCallback private lateinit var locationRequest: LocationRequest private var latitude = 0.0 private var longitude = 0.0 private var busStopList: ArrayList = ArrayList() @SuppressLint("MissingPermission") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) val dbHelper = DbHelper(this) locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this)) setContentView(R.layout.main) map = findViewById(R.id.map) map.setTileSource(TileSourceFactory.MAPNIK) positionMarker = Marker(map) mapController = map.controller mapController.setZoom(18.0) val addMarkButton = findViewById