Updater: Fix header margin

* Instead of hardcoding it to 86dp (which was probably fine
  when we didn't have cutouts, calculate the required top margin
  by adding top inset and status bar height and applying it dynamically
* Increase compile and min sdk versions to avoid warnings - we compile
  using the build sdk (33) when building inline anyway

Change-Id: I80444e5a2247730f06af461a1cce7ac36c6c9631
This commit is contained in:
Michael W
2023-06-18 15:47:32 +02:00
committed by Nolen Johnson
parent c3093cb4cc
commit 613fbacdbf
4 changed files with 24 additions and 1 deletions

View File

@@ -17,7 +17,7 @@ android {
defaultConfig {
applicationId = "org.lineageos.updater"
minSdk = 27
minSdk = 30
targetSdk = 33
versionCode = 1
versionName = "1.0"

View File

@@ -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;
});
}
}

View File

@@ -11,6 +11,7 @@
android:baselineAligned="false">
<RelativeLayout
android:id="@+id/header_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"

View File

@@ -39,6 +39,7 @@
app:toolbarId="@id/action_bar">
<RelativeLayout
android:id="@+id/header_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="86dp"