diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ecaf6228..6de50b2d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,7 +17,7 @@ android { defaultConfig { applicationId = "org.lineageos.updater" - minSdk = 27 + minSdk = 30 targetSdk = 33 versionCode = 1 versionName = "1.0" diff --git a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java index 12254c7b..c3595753 100644 --- a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java +++ b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java @@ -33,6 +33,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.SystemProperties; import android.util.Log; +import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -41,6 +42,7 @@ import android.view.View; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; +import android.widget.RelativeLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -51,6 +53,7 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.SwitchCompat; import androidx.appcompat.widget.Toolbar; +import androidx.core.view.WindowInsetsCompat; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.LinearLayoutManager; @@ -146,6 +149,24 @@ public class UpdatesActivity extends UpdatesListActivity { if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayHomeAsUpEnabled(true); + final int statusBarHeight; + TypedValue tv = new TypedValue(); + if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { + statusBarHeight = TypedValue.complexToDimensionPixelSize( + tv.data, getResources().getDisplayMetrics()); + } else { + statusBarHeight = 0; + } + RelativeLayout headerContainer = findViewById(R.id.header_container); + recyclerView.setOnApplyWindowInsetsListener((view, insets) -> { + int top = insets.getInsets(WindowInsetsCompat.Type.statusBars()).top; + CollapsingToolbarLayout.LayoutParams lp = + (CollapsingToolbarLayout.LayoutParams) + headerContainer.getLayoutParams(); + lp.topMargin = top + statusBarHeight; + headerContainer.setLayoutParams(lp); + return insets; + }); } } diff --git a/app/src/main/res/layout-television/activity_updates.xml b/app/src/main/res/layout-television/activity_updates.xml index c795ced0..efabfea4 100644 --- a/app/src/main/res/layout-television/activity_updates.xml +++ b/app/src/main/res/layout-television/activity_updates.xml @@ -11,6 +11,7 @@ android:baselineAligned="false">