Merge "Add flag_navigation_bar_overlay" into sc-dev
This commit is contained in:
@@ -42,4 +42,6 @@
|
|||||||
<bool name="flag_lockscreen_animations">false</bool>
|
<bool name="flag_lockscreen_animations">false</bool>
|
||||||
|
|
||||||
<bool name="flag_toast_style">false</bool>
|
<bool name="flag_toast_style">false</bool>
|
||||||
|
|
||||||
|
<bool name="flag_navigation_bar_overlay">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.content.Context;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.android.systemui.dagger.SysUISingleton;
|
import com.android.systemui.dagger.SysUISingleton;
|
||||||
|
import com.android.systemui.statusbar.FeatureFlags;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@@ -31,16 +32,22 @@ import javax.inject.Inject;
|
|||||||
public class NavigationBarOverlayController {
|
public class NavigationBarOverlayController {
|
||||||
|
|
||||||
protected final Context mContext;
|
protected final Context mContext;
|
||||||
|
protected final FeatureFlags mFeatureFlags;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public NavigationBarOverlayController(Context context) {
|
public NavigationBarOverlayController(Context context, FeatureFlags featureFlags) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
|
mFeatureFlags = featureFlags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Context getContext() {
|
public Context getContext() {
|
||||||
return mContext;
|
return mContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNavigationBarOverlayEnabled() {
|
||||||
|
return mFeatureFlags.isNavigationBarOverlayEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the controller with visibility change callback and light/dark icon color.
|
* Initialize the controller with visibility change callback and light/dark icon color.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -192,6 +192,7 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
|||||||
buttonDispatchers.valueAt(i).setDarkIntensity(darkIntensity);
|
buttonDispatchers.valueAt(i).setDarkIntensity(darkIntensity);
|
||||||
}
|
}
|
||||||
mView.getRotationButtonController().setDarkIntensity(darkIntensity);
|
mView.getRotationButtonController().setDarkIntensity(darkIntensity);
|
||||||
|
|
||||||
Dependency.get(NavigationBarOverlayController.class).setDarkIntensity(darkIntensity);
|
Dependency.get(NavigationBarOverlayController.class).setDarkIntensity(darkIntensity);
|
||||||
for (DarkIntensityListener listener : mDarkIntensityListeners) {
|
for (DarkIntensityListener listener : mDarkIntensityListeners) {
|
||||||
listener.onDarkIntensity(darkIntensity);
|
listener.onDarkIntensity(darkIntensity);
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
private NotificationPanelViewController mPanelView;
|
private NotificationPanelViewController mPanelView;
|
||||||
private FloatingRotationButton mFloatingRotationButton;
|
private FloatingRotationButton mFloatingRotationButton;
|
||||||
private RotationButtonController mRotationButtonController;
|
private RotationButtonController mRotationButtonController;
|
||||||
|
private NavigationBarOverlayController mNavBarOverlayController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper that is responsible for showing the right toast when a disallowed activity operation
|
* 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,
|
isGesturalMode ? mFloatingRotationButton : rotateSuggestionButton,
|
||||||
mRotationButtonListener);
|
mRotationButtonListener);
|
||||||
|
|
||||||
Dependency.get(NavigationBarOverlayController.class).init(
|
mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class);
|
||||||
mNavbarOverlayVisibilityChangeCallback, mLightIconColor, mDarkIconColor);
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
|
||||||
|
mNavBarOverlayController.init(
|
||||||
|
mNavbarOverlayVisibilityChangeCallback, mLightIconColor, mDarkIconColor);
|
||||||
|
}
|
||||||
|
|
||||||
mConfiguration = new Configuration();
|
mConfiguration = new Configuration();
|
||||||
mTmpLastConfiguration = 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 visibility of the navigation bar buttons is dependent on the transient state of
|
||||||
// the navigation bar.
|
// the navigation bar.
|
||||||
Dependency.get(NavigationBarOverlayController.class).setButtonState(
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
|
||||||
isTransient, /* force */ false);
|
mNavBarOverlayController.setButtonState(isTransient, /* force */ false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void onBarTransition(int newMode) {
|
void onBarTransition(int newMode) {
|
||||||
@@ -666,7 +671,9 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
}
|
}
|
||||||
mImeVisible = visible;
|
mImeVisible = visible;
|
||||||
mRotationButtonController.getRotationButton().setCanShowRotationButton(!mImeVisible);
|
mRotationButtonController.getRotationButton().setCanShowRotationButton(!mImeVisible);
|
||||||
Dependency.get(NavigationBarOverlayController.class).setCanShow(!mImeVisible);
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
|
||||||
|
mNavBarOverlayController.setCanShow(!mImeVisible);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDisabledFlags(int disabledFlags) {
|
public void setDisabledFlags(int disabledFlags) {
|
||||||
@@ -999,10 +1006,9 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
} else {
|
} else {
|
||||||
updateButtonLocation(getRotateSuggestionButton(), inScreenSpace);
|
updateButtonLocation(getRotateSuggestionButton(), inScreenSpace);
|
||||||
}
|
}
|
||||||
final NavigationBarOverlayController navBarButtonsController =
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()
|
||||||
Dependency.get(NavigationBarOverlayController.class);
|
&& mNavBarOverlayController.isVisible()) {
|
||||||
if (navBarButtonsController.isVisible()) {
|
updateButtonLocation(mNavBarOverlayController.getCurrentView(), inScreenSpace);
|
||||||
updateButtonLocation(navBarButtonsController.getCurrentView(), inScreenSpace);
|
|
||||||
}
|
}
|
||||||
return mTmpRegion;
|
return mTmpRegion;
|
||||||
}
|
}
|
||||||
@@ -1230,7 +1236,9 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
if (mRotationButtonController != null) {
|
if (mRotationButtonController != null) {
|
||||||
mRotationButtonController.registerListeners();
|
mRotationButtonController.registerListeners();
|
||||||
}
|
}
|
||||||
Dependency.get(NavigationBarOverlayController.class).registerListeners();
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
|
||||||
|
mNavBarOverlayController.registerListeners();
|
||||||
|
}
|
||||||
|
|
||||||
getViewTreeObserver().addOnComputeInternalInsetsListener(mOnComputeInternalInsetsListener);
|
getViewTreeObserver().addOnComputeInternalInsetsListener(mOnComputeInternalInsetsListener);
|
||||||
updateNavButtonIcons();
|
updateNavButtonIcons();
|
||||||
@@ -1247,7 +1255,10 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
if (mRotationButtonController != null) {
|
if (mRotationButtonController != null) {
|
||||||
mRotationButtonController.unregisterListeners();
|
mRotationButtonController.unregisterListeners();
|
||||||
}
|
}
|
||||||
Dependency.get(NavigationBarOverlayController.class).unregisterListeners();
|
|
||||||
|
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
|
||||||
|
mNavBarOverlayController.unregisterListeners();
|
||||||
|
}
|
||||||
|
|
||||||
mEdgeBackGestureHandler.onNavBarDetached();
|
mEdgeBackGestureHandler.onNavBarDetached();
|
||||||
getViewTreeObserver().removeOnComputeInternalInsetsListener(
|
getViewTreeObserver().removeOnComputeInternalInsetsListener(
|
||||||
|
|||||||
@@ -82,4 +82,8 @@ public class FeatureFlags {
|
|||||||
public boolean isMonetEnabled() {
|
public boolean isMonetEnabled() {
|
||||||
return mFlagReader.isEnabled(R.bool.flag_monet);
|
return mFlagReader.isEnabled(R.bool.flag_monet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNavigationBarOverlayEnabled() {
|
||||||
|
return mFlagReader.isEnabled(R.bool.flag_navigation_bar_overlay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user