Merge "Add flag_navigation_bar_overlay" into sc-dev am: 3a8a105dc2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13668734

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4ed91d05942d08dc0c41d0505a6ad585bd2c64f7
This commit is contained in:
Peiyong Lin
2021-02-24 05:34:12 +00:00
committed by Automerger Merge Worker
5 changed files with 37 additions and 12 deletions

View File

@@ -42,4 +42,6 @@
<bool name="flag_lockscreen_animations">false</bool>
<bool name="flag_toast_style">false</bool>
<bool name="flag_navigation_bar_overlay">false</bool>
</resources>

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import android.view.View;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.FeatureFlags;
import java.util.function.Consumer;
@@ -31,16 +32,22 @@ import javax.inject.Inject;
public class NavigationBarOverlayController {
protected final Context mContext;
protected final FeatureFlags mFeatureFlags;
@Inject
public NavigationBarOverlayController(Context context) {
public NavigationBarOverlayController(Context context, FeatureFlags featureFlags) {
mContext = context;
mFeatureFlags = featureFlags;
}
public Context getContext() {
return mContext;
}
public boolean isNavigationBarOverlayEnabled() {
return mFeatureFlags.isNavigationBarOverlayEnabled();
}
/**
* Initialize the controller with visibility change callback and light/dark icon color.
*/

View File

@@ -192,6 +192,7 @@ public final class NavigationBarTransitions extends BarTransitions implements
buttonDispatchers.valueAt(i).setDarkIntensity(darkIntensity);
}
mView.getRotationButtonController().setDarkIntensity(darkIntensity);
Dependency.get(NavigationBarOverlayController.class).setDarkIntensity(darkIntensity);
for (DarkIntensityListener listener : mDarkIntensityListeners) {
listener.onDarkIntensity(darkIntensity);

View File

@@ -171,6 +171,7 @@ public class NavigationBarView extends FrameLayout implements
private NotificationPanelViewController mPanelView;
private FloatingRotationButton mFloatingRotationButton;
private RotationButtonController mRotationButtonController;
private NavigationBarOverlayController mNavBarOverlayController;
/**
* Helper that is responsible for showing the right toast when a disallowed activity operation
@@ -339,8 +340,11 @@ public class NavigationBarView extends FrameLayout implements
isGesturalMode ? mFloatingRotationButton : rotateSuggestionButton,
mRotationButtonListener);
Dependency.get(NavigationBarOverlayController.class).init(
mNavbarOverlayVisibilityChangeCallback, mLightIconColor, mDarkIconColor);
mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class);
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.init(
mNavbarOverlayVisibilityChangeCallback, mLightIconColor, mDarkIconColor);
}
mConfiguration = new Configuration();
mTmpLastConfiguration = new Configuration();
@@ -431,8 +435,9 @@ public class NavigationBarView extends FrameLayout implements
// The visibility of the navigation bar buttons is dependent on the transient state of
// the navigation bar.
Dependency.get(NavigationBarOverlayController.class).setButtonState(
isTransient, /* force */ false);
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.setButtonState(isTransient, /* force */ false);
}
}
void onBarTransition(int newMode) {
@@ -666,7 +671,9 @@ public class NavigationBarView extends FrameLayout implements
}
mImeVisible = visible;
mRotationButtonController.getRotationButton().setCanShowRotationButton(!mImeVisible);
Dependency.get(NavigationBarOverlayController.class).setCanShow(!mImeVisible);
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.setCanShow(!mImeVisible);
}
}
public void setDisabledFlags(int disabledFlags) {
@@ -999,10 +1006,9 @@ public class NavigationBarView extends FrameLayout implements
} else {
updateButtonLocation(getRotateSuggestionButton(), inScreenSpace);
}
final NavigationBarOverlayController navBarButtonsController =
Dependency.get(NavigationBarOverlayController.class);
if (navBarButtonsController.isVisible()) {
updateButtonLocation(navBarButtonsController.getCurrentView(), inScreenSpace);
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()
&& mNavBarOverlayController.isVisible()) {
updateButtonLocation(mNavBarOverlayController.getCurrentView(), inScreenSpace);
}
return mTmpRegion;
}
@@ -1230,7 +1236,9 @@ public class NavigationBarView extends FrameLayout implements
if (mRotationButtonController != null) {
mRotationButtonController.registerListeners();
}
Dependency.get(NavigationBarOverlayController.class).registerListeners();
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.registerListeners();
}
getViewTreeObserver().addOnComputeInternalInsetsListener(mOnComputeInternalInsetsListener);
updateNavButtonIcons();
@@ -1247,7 +1255,10 @@ public class NavigationBarView extends FrameLayout implements
if (mRotationButtonController != null) {
mRotationButtonController.unregisterListeners();
}
Dependency.get(NavigationBarOverlayController.class).unregisterListeners();
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.unregisterListeners();
}
mEdgeBackGestureHandler.onNavBarDetached();
getViewTreeObserver().removeOnComputeInternalInsetsListener(

View File

@@ -82,4 +82,8 @@ public class FeatureFlags {
public boolean isMonetEnabled() {
return mFlagReader.isEnabled(R.bool.flag_monet);
}
public boolean isNavigationBarOverlayEnabled() {
return mFlagReader.isEnabled(R.bool.flag_navigation_bar_overlay);
}
}