Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.example.locationapp

import android.Manifest
import android.content.pm.PackageManager
import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {

private lateinit var locationManager: LocationManager
private lateinit var locationText: TextView
private val LOCATION_PERMISSION_REQUEST_CODE = 100

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

locationText = findViewById(R.id.locationText)
locationManager = getSystemService(LOCATION_SERVICE) as LocationManager

// التحقق من الأذونات وطلبها إذا لزم الأمر
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), LOCATION_PERMISSION_REQUEST_CODE)
} else {
startLocationUpdates()
}
}

// معالجة نتيجة طلب الأذونات
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == LOCATION_PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
startLocationUpdates()
} else {
locationText.text = "تم رفض إذن الموقع"
}
}

// بدء تحديثات الموقع
private fun startLocationUpdates() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 1f, locationListener)
}
}

// الاستماع لتحديثات الموقع
private val locationListener = object : LocationListener {
override fun onLocationChanged(location: Location) {
val latitude = location.latitude
val longitude = location.longitude
locationText.text = "الموقع الحالي:\nخط العرض: $latitude\nخط الطول: $longitude"
}
}

// إيقاف تحديثات الموقع عند الخروج
override fun onPause() {
super.onPause()
locationManager.removeUpdates(locationListener)
}
}