commit 2012c9b1c2b25f1410b828b1b890456c4d64075b
parent 69d76cd2cba19e3915286fde9684bd9dfb7baac5
Author: Martin Ashby <martin@ashbysoft.com>
Date: Sat, 4 Apr 2026 22:29:03 +0100
bump SDK version from 28 -> 36 (also had to bump minSdk from 15 -> 21)
'handle' edge-to-edge layout
Diffstat:
4 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 28
+ compileSdkVersion 36
defaultConfig {
applicationId "com.github.cythara"
- minSdkVersion 15
- targetSdkVersion 28
+ minSdkVersion 21
+ targetSdkVersion 36
versionCode 27
versionName "3.6"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
- <activity android:name=".MainActivity">
+ <activity android:name=".MainActivity"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
diff --git a/app/src/main/java/com/github/cythara/MainActivity.java b/app/src/main/java/com/github/cythara/MainActivity.java
@@ -4,12 +4,14 @@ import android.Manifest;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.graphics.Insets;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.ContextThemeWrapper;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.ViewGroup;
import android.view.WindowManager.LayoutParams;
import com.github.cythara.ListenerFragment.TaskCallbacks;
@@ -29,6 +31,8 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.FragmentManager;
public class MainActivity extends AppCompatActivity implements TaskCallbacks,
@@ -94,6 +98,27 @@ public class MainActivity extends AppCompatActivity implements TaskCallbacks,
myToolbar.setTitle(R.string.app_name);
myToolbar.showOverflowMenu();
setSupportActionBar(myToolbar);
+
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main_layout), (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()).toPlatformInsets();
+ // Apply the insets as a margin to the view. This solution sets only the
+ // bottom, left, and right dimensions, but you can apply whichever insets are
+ // appropriate to your layout. You can also update the view padding if that's
+ // more appropriate.
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
+ mlp.leftMargin = insets.left;
+ mlp.bottomMargin = insets.bottom;
+ mlp.rightMargin = insets.right;
+ mlp.topMargin = insets.top;
+ v.setLayoutParams(mlp);
+
+ // Return CONSUMED if you don't want the window insets to keep passing
+ // down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+ }
}
@Override
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
@@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"