Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50799936 authored by Heemin Seog's avatar Heemin Seog
Browse files

Ensure notif panel behavior in immersive mode

Bug: 168823233
Test: manual, atest :carsysui-presubmit
Change-Id: I38241142a05c25cef5a5f3955ca7de49feb5c393
parent b4e06d01
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -25,7 +25,8 @@
    <ViewStub android:id="@+id/notification_panel_stub"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:layout="@layout/notification_panel_container"/>
              android:layout="@layout/notification_panel_container"
              android:layout_marginBottom="@dimen/car_bottom_navigation_bar_height"/>

    <ViewStub android:id="@+id/keyguard_stub"
              android:layout_width="match_parent"
+6 −0
Original line number Diff line number Diff line
@@ -194,6 +194,12 @@
    <dimen name="car_navigation_bar_width">760dp</dimen>
    <dimen name="car_left_navigation_bar_width">96dp</dimen>
    <dimen name="car_right_navigation_bar_width">96dp</dimen>
    <!-- In order to change the height of the bottom nav bar, overlay navigation_bar_height in
         frameworks/base/core/res/res instead. -->
    <dimen name="car_bottom_navigation_bar_height">@*android:dimen/navigation_bar_height</dimen>
    <!-- In order to change the height of the top nav bar, overlay status_bar_height in
         frameworks/base/core/res/res instead. -->
    <dimen name="car_top_navigation_bar_height">@*android:dimen/status_bar_height</dimen>

    <dimen name="car_user_switcher_container_height">420dp</dimen>
    <!-- This must be the negative of car_user_switcher_container_height for the animation. -->
+2 −2
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ public class SystemBarConfigs {
                    new SystemBarConfigBuilder()
                            .setSide(TOP)
                            .setGirth(mResources.getDimensionPixelSize(
                                    com.android.internal.R.dimen.status_bar_height))
                                    R.dimen.car_top_navigation_bar_height))
                            .setBarType(mResources.getInteger(R.integer.config_topSystemBarType))
                            .setZOrder(mResources.getInteger(R.integer.config_topSystemBarZOrder))
                            .setHideForKeyboard(mResources.getBoolean(
@@ -184,7 +184,7 @@ public class SystemBarConfigs {
                    new SystemBarConfigBuilder()
                            .setSide(BOTTOM)
                            .setGirth(mResources.getDimensionPixelSize(
                                    com.android.internal.R.dimen.navigation_bar_height))
                                    R.dimen.car_bottom_navigation_bar_height))
                            .setBarType(mResources.getInteger(R.integer.config_bottomSystemBarType))
                            .setZOrder(
                                    mResources.getInteger(R.integer.config_bottomSystemBarZOrder))
+22 −3
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.systemui.car.notification;

import static android.view.WindowInsets.Type.navigationBars;

import android.app.ActivityManager;
import android.car.Car;
import android.car.drivingstate.CarUxRestrictionsManager;
@@ -25,6 +23,8 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.inputmethodservice.InputMethodService;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.GestureDetector;
@@ -82,6 +82,7 @@ public class NotificationPanelViewController extends OverlayPanelViewController
    private final StatusBarStateController mStatusBarStateController;
    private final boolean mEnableHeadsUpNotificationWhenNotificationShadeOpen;
    private final NotificationVisibilityLogger mNotificationVisibilityLogger;
    private final int mNavBarHeight;

    private float mInitialBackgroundAlpha;
    private float mBackgroundAlphaDiff;
@@ -138,7 +139,10 @@ public class NotificationPanelViewController extends OverlayPanelViewController
        mStatusBarStateController = statusBarStateController;
        mNotificationVisibilityLogger = notificationVisibilityLogger;

        mNavBarHeight = mResources.getDimensionPixelSize(R.dimen.car_bottom_navigation_bar_height);

        mCommandQueue.addCallback(this);

        // Notification background setup.
        mInitialBackgroundAlpha = (float) mResources.getInteger(
                R.integer.config_initialNotificationBackgroundAlpha) / 100;
@@ -179,6 +183,21 @@ public class NotificationPanelViewController extends OverlayPanelViewController
        }
    }

    @Override
    public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition,
            boolean showImeSwitcher) {
        if (mContext.getDisplayId() != displayId) {
            return;
        }
        boolean isKeyboardVisible = (vis & InputMethodService.IME_VISIBLE) != 0;
        int bottomMargin = isKeyboardVisible ? 0 : mNavBarHeight;
        ViewGroup container = (ViewGroup) getLayout();
        ViewGroup.MarginLayoutParams params =
                (ViewGroup.MarginLayoutParams) container.getLayoutParams();
        params.setMargins(params.leftMargin, params.topMargin, params.rightMargin, bottomMargin);
        container.setLayoutParams(params);
    }

    // OverlayViewController

    @Override
@@ -204,7 +223,7 @@ public class NotificationPanelViewController extends OverlayPanelViewController

    @Override
    protected int getInsetTypesToFit() {
        return navigationBars();
        return 0;
    }

    @Override