diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java index c7c3e81eba2891ac8efff85fde6cc8a7dde8e4c5..aa8cdf20685d7740151faf1739de51d931b09722 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java @@ -563,6 +563,16 @@ public class HorizontalPager extends ViewGroup implements Insettable { } } + @Override + public void onViewAdded(View child) { + super.onViewAdded(child); + Log.d(TAG, "onViewAdded() called with: child = [" + child + "]"); + if (child instanceof Insettable) { + Log.d(TAG, "child is instance of insettable"); + ((Insettable) child).setInsets(insets); + } + } + public static class SavedState extends BaseSavedState { int currentScreen = -1; diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableFrameLayout.kt b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableFrameLayout.kt new file mode 100644 index 0000000000000000000000000000000000000000..373db03b4c857e2faec8ce72f484b2ae0fb1f715 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableFrameLayout.kt @@ -0,0 +1,21 @@ +package foundation.e.blisslauncher.core.customviews + +import android.content.Context +import android.util.AttributeSet +import android.view.WindowInsets +import android.widget.FrameLayout +import foundation.e.blisslauncher.BlissLauncher + +class InsettableFrameLayout(private val mContext: Context, attrs: AttributeSet?) : FrameLayout( + mContext, attrs +), Insettable { + + override fun setInsets(insets: WindowInsets?) { + if (insets == null) return + val deviceProfile = BlissLauncher.getApplication(mContext).deviceProfile + setPadding( + paddingLeft, paddingTop, + paddingRight, paddingBottom + insets.systemWindowInsetBottom + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java index 725dbfa64a28627190b04ed7d4bd29e119919a65..126f21834cc0e55fc31ce435b60b6e1a28955520 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java @@ -2,13 +2,12 @@ package foundation.e.blisslauncher.core.customviews; import android.content.Context; import android.util.AttributeSet; -import android.view.WindowInsets; import android.widget.ScrollView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -public class InsettableScrollLayout extends ScrollView implements Insettable { +public class InsettableScrollLayout extends ScrollView { public InsettableScrollLayout(@NonNull Context context) { super(context); @@ -21,14 +20,4 @@ public class InsettableScrollLayout extends ScrollView implements Insettable { public InsettableScrollLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } - - @Override - public void setInsets(WindowInsets insets) { - if(insets == null) return; - int top = getPaddingTop(); - int left = getPaddingLeft(); - int right = getPaddingRight(); - int bottom = getPaddingBottom(); - setPadding(left, top, right, bottom + insets.getSystemWindowInsetBottom()); - } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 7b79beb9f56d0417e825b7b837d3da4d5b6d6cab..d97c2758906d58767cdd83ad6d66cec15c8e4e85 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -101,6 +101,7 @@ import foundation.e.blisslauncher.core.customviews.BlissFrameLayout; import foundation.e.blisslauncher.core.customviews.BlissInput; import foundation.e.blisslauncher.core.customviews.DockGridLayout; import foundation.e.blisslauncher.core.customviews.HorizontalPager; +import foundation.e.blisslauncher.core.customviews.InsettableFrameLayout; import foundation.e.blisslauncher.core.customviews.InsettableRelativeLayout; import foundation.e.blisslauncher.core.customviews.InsettableScrollLayout; import foundation.e.blisslauncher.core.customviews.PageIndicatorLinearLayout; @@ -1284,7 +1285,7 @@ public class LauncherActivity extends AppCompatActivity implements } private void createWidgetsPage() { - widgetsPage = (FrameLayout) getLayoutInflater().inflate(R.layout.widgets_page, + widgetsPage = (InsettableFrameLayout) getLayoutInflater().inflate(R.layout.widgets_page, mHorizontalPager, false); widgetContainer = widgetsPage.findViewById(R.id.widget_container); /*widgetsPage.setPadding(0, diff --git a/app/src/main/res/layout/widgets_page.xml b/app/src/main/res/layout/widgets_page.xml index e2359796434b72e7f25ec3d3ee80e879aa7cb59a..cd4b3abb93c37c543b70721e97cbb1f70c95629a 100755 --- a/app/src/main/res/layout/widgets_page.xml +++ b/app/src/main/res/layout/widgets_page.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file