diff --git a/app/src/main/java/com/nextcloud/talk/controllers/LocationController.kt b/app/src/main/java/com/nextcloud/talk/controllers/LocationController.kt
index b9fff4a8a..dd5872ad9 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/LocationController.kt
+++ b/app/src/main/java/com/nextcloud/talk/controllers/LocationController.kt
@@ -9,6 +9,7 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Button
import android.widget.ImageButton
import android.widget.Toast
import androidx.core.content.PermissionChecker
@@ -47,9 +48,13 @@ class LocationController(args: Bundle) : BaseController(args) {
@JvmField
var btCenterMap: ImageButton? = null
+ @BindView(R.id.btn_select_location)
+ @JvmField
+ var btnSelectLocation: Button? = null
+
init {
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
- getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context));
+ getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context))
}
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
@@ -61,24 +66,34 @@ class LocationController(args: Bundle) : BaseController(args) {
drawMap()
}
+ override fun onViewBound(view: View) {
+ btnSelectLocation?.setOnClickListener {
+ val selectedLat: Double? = map?.mapCenter?.latitude
+ val selectedLon: Double? = map?.mapCenter?.longitude
+ Toast.makeText(activity, "Lat: $selectedLat Lon: $selectedLon", Toast.LENGTH_LONG).show()
+ }
+ }
+
fun drawMap(){
if (!isFineLocationPermissionGranted()) {
- requestFineLocationPermission();
+ requestFineLocationPermission()
}
- map?.setTileSource(TileSourceFactory.MAPNIK);
+ map?.setTileSource(TileSourceFactory.MAPNIK)
- map?.onResume();
+ map?.onResume()
- val copyrightOverlay = CopyrightOverlay(context);
- map?.overlays?.add(copyrightOverlay);
+ val copyrightOverlay = CopyrightOverlay(context)
+ map?.overlays?.add(copyrightOverlay)
- map?.setMultiTouchControls(true);
- map?.isTilesScaledToDpi = true;
+ map?.setMultiTouchControls(true)
+ map?.isTilesScaledToDpi = true
- val locationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(context), map);
- locationOverlay.enableFollowLocation();
- locationOverlay.enableMyLocation();
+ val locationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(context), map)
+ locationOverlay.enableFollowLocation()
+ locationOverlay.enableMyLocation()
+ // locationOverlay.setPersonIcon(
+ // DisplayUtils.getBitmap(ResourcesCompat.getDrawable(resources!!, R.drawable.current_location_circle, null)))
map?.overlays?.add(locationOverlay)
val mapController = map?.controller
diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
index 397c084ea..48408670a 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
+++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
@@ -55,19 +55,6 @@ import android.view.Window;
import android.widget.EditText;
import android.widget.TextView;
-import androidx.annotation.ColorInt;
-import androidx.annotation.ColorRes;
-import androidx.annotation.DrawableRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.XmlRes;
-import androidx.appcompat.widget.AppCompatDrawableManager;
-import androidx.appcompat.widget.SearchView;
-import androidx.core.content.ContextCompat;
-import androidx.core.graphics.ColorUtils;
-import androidx.core.graphics.drawable.DrawableCompat;
-import androidx.emoji.text.EmojiCompat;
-
import com.facebook.common.executors.UiThreadImmediateExecutorService;
import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource;
@@ -102,6 +89,19 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import androidx.annotation.ColorInt;
+import androidx.annotation.ColorRes;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.XmlRes;
+import androidx.appcompat.widget.AppCompatDrawableManager;
+import androidx.appcompat.widget.SearchView;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.ColorUtils;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.emoji.text.EmojiCompat;
+
public class DisplayUtils {
private static final String TAG = "DisplayUtils";
@@ -160,7 +160,7 @@ public class DisplayUtils {
return new BitmapDrawable(getRoundedBitmapFromVectorDrawableResource(resources, resource));
}
- private static Bitmap getBitmap(Drawable drawable) {
+ public static Bitmap getBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
diff --git a/app/src/main/res/drawable/current_location_circle.xml b/app/src/main/res/drawable/current_location_circle.xml
new file mode 100644
index 000000000..310a104ab
--- /dev/null
+++ b/app/src/main/res/drawable/current_location_circle.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_location_on_red_24.xml b/app/src/main/res/drawable/ic_baseline_location_on_red_24.xml
new file mode 100644
index 000000000..d8b0f5f0c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_location_on_red_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/controller_location.xml b/app/src/main/res/layout/controller_location.xml
index 014589912..03fc40916 100644
--- a/app/src/main/res/layout/controller_location.xml
+++ b/app/src/main/res/layout/controller_location.xml
@@ -1,24 +1,72 @@
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
-
+
+
+
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file