Merge branch 'develop' into remote-dialog

This commit is contained in:
2026-09-02 23:00:35 +02:00
7 changed files with 61 additions and 1 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ android {
defaultConfig { defaultConfig {
applicationId "it.danieleverducci.nextcloudmaps" applicationId "it.danieleverducci.nextcloudmaps"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 34 targetSdkVersion 36
compileSdkVersion 34 compileSdkVersion 34
versionCode 9 versionCode 9
versionName "0.4.0" versionName "0.4.0"
@@ -9,6 +9,8 @@ import androidx.appcompat.app.AppCompatActivity;
import org.osmdroid.views.overlay.TilesOverlay; import org.osmdroid.views.overlay.TilesOverlay;
import it.danieleverducci.nextcloudmaps.utils.EdgeToEdgeUtils;
public class NextcloudMapsStyledActivity extends AppCompatActivity { public class NextcloudMapsStyledActivity extends AppCompatActivity {
@Override @Override
@@ -31,12 +31,14 @@ import androidx.appcompat.widget.Toolbar;
import it.danieleverducci.nextcloudmaps.BuildConfig; import it.danieleverducci.nextcloudmaps.BuildConfig;
import it.danieleverducci.nextcloudmaps.R; import it.danieleverducci.nextcloudmaps.R;
import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity; import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity;
import it.danieleverducci.nextcloudmaps.utils.EdgeToEdgeUtils;
public class AboutActivity extends NextcloudMapsStyledActivity { public class AboutActivity extends NextcloudMapsStyledActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about); setContentView(R.layout.activity_about);
EdgeToEdgeUtils.clearSystemInsets(this);
Toolbar toolbar = findViewById(R.id.toolbar); Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
@@ -50,6 +50,7 @@ import it.danieleverducci.nextcloudmaps.fragments.GeofavoriteListFragment;
import it.danieleverducci.nextcloudmaps.fragments.GeofavoriteMapFragment; import it.danieleverducci.nextcloudmaps.fragments.GeofavoriteMapFragment;
import it.danieleverducci.nextcloudmaps.repository.GeofavoriteRepository; import it.danieleverducci.nextcloudmaps.repository.GeofavoriteRepository;
import it.danieleverducci.nextcloudmaps.utils.RemoteDialog; import it.danieleverducci.nextcloudmaps.utils.RemoteDialog;
import it.danieleverducci.nextcloudmaps.utils.EdgeToEdgeUtils;
import it.danieleverducci.nextcloudmaps.utils.SettingsManager; import it.danieleverducci.nextcloudmaps.utils.SettingsManager;
public class MainActivity extends NextcloudMapsStyledActivity { public class MainActivity extends NextcloudMapsStyledActivity {
@@ -119,6 +120,7 @@ public class MainActivity extends NextcloudMapsStyledActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
EdgeToEdgeUtils.clearSystemInsets(this);
// Check dialog // Check dialog
RemoteDialog rd = new RemoteDialog(this); RemoteDialog rd = new RemoteDialog(this);
@@ -32,6 +32,7 @@ import it.danieleverducci.nextcloudmaps.R;
import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity; import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity;
import it.danieleverducci.nextcloudmaps.activity.detail.GeofavoriteDetailActivity; import it.danieleverducci.nextcloudmaps.activity.detail.GeofavoriteDetailActivity;
import it.danieleverducci.nextcloudmaps.databinding.ActivityMapPickerBinding; import it.danieleverducci.nextcloudmaps.databinding.ActivityMapPickerBinding;
import it.danieleverducci.nextcloudmaps.utils.EdgeToEdgeUtils;
import it.danieleverducci.nextcloudmaps.utils.GeoUriParser; import it.danieleverducci.nextcloudmaps.utils.GeoUriParser;
import it.danieleverducci.nextcloudmaps.utils.MapUtils; import it.danieleverducci.nextcloudmaps.utils.MapUtils;
@@ -70,6 +71,7 @@ public class MapPickerActivity extends NextcloudMapsStyledActivity {
mViewHolder.centerMapOn(l.getLatitude(), l.getLongitude()); mViewHolder.centerMapOn(l.getLatitude(), l.getLongitude());
setContentView(mViewHolder.getRootView()); setContentView(mViewHolder.getRootView());
EdgeToEdgeUtils.clearSystemInsets(this);
} }
/** /**
@@ -25,6 +25,7 @@ import androidx.appcompat.widget.Toolbar;
import it.danieleverducci.nextcloudmaps.R; import it.danieleverducci.nextcloudmaps.R;
import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity; import it.danieleverducci.nextcloudmaps.activity.NextcloudMapsStyledActivity;
import it.danieleverducci.nextcloudmaps.utils.EdgeToEdgeUtils;
import it.danieleverducci.nextcloudmaps.utils.SettingsManager; import it.danieleverducci.nextcloudmaps.utils.SettingsManager;
public class SettingsActivity extends NextcloudMapsStyledActivity { public class SettingsActivity extends NextcloudMapsStyledActivity {
@@ -32,6 +33,7 @@ public class SettingsActivity extends NextcloudMapsStyledActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings); setContentView(R.layout.activity_settings);
EdgeToEdgeUtils.clearSystemInsets(this);
Toolbar toolbar = findViewById(R.id.toolbar); Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
@@ -0,0 +1,50 @@
package it.danieleverducci.nextcloudmaps.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import it.danieleverducci.nextcloudmaps.R;
public class EdgeToEdgeUtils {
/**
* Called in an activity's onCreate method, adds paddings to clear the system bars, in any orientation,
* to make all the content visible. Useful to adapt an old android project to the mandatory introduction
* of edge to edge in Android 15.
* @param a the activity to pad
*/
public static void clearSystemInsets(Activity a) {
// This color will be used as background in the system bars in case of edge to edge.
// Defaults to R.color.colorAccent, if defined, black otherwise.
int accentColor = ContextCompat.getColor(a, R.color.defaultBackground);
ViewGroup rootLayout = a.findViewById(android.R.id.content);
rootLayout.setBackgroundColor(accentColor);
// Register to receive insets callbacks
ViewCompat.setOnApplyWindowInsetsListener(rootLayout, (v, insets) -> {
// Top padding is the device insets plus the actionbar height
boolean hasActionBar = a.getActionBar() != null && a.getActionBar().isShowing();
int actionbarHeightInPixels = 0;
if (hasActionBar && Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
Context context = rootLayout.getContext();
TypedValue tv = new TypedValue();
if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
actionbarHeightInPixels = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}
int topPadding = insets.getStableInsetTop() + actionbarHeightInPixels;
v.setPadding(insets.getStableInsetLeft(), topPadding, insets.getStableInsetRight(), insets.getStableInsetBottom());
return insets;
});
}
}