diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 9b71f5add041d..b70597f29a72f 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1988,6 +1988,9 @@ App info + + Go to web + Mobile data diff --git a/packages/SystemUI/src/com/android/systemui/DockedStackExistsListener.java b/packages/SystemUI/src/com/android/systemui/DockedStackExistsListener.java new file mode 100644 index 0000000000000..c382882995979 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/DockedStackExistsListener.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package com.android.systemui; + +import android.os.RemoteException; +import android.util.Log; +import android.view.IDockedStackListener; +import android.view.WindowManagerGlobal; + +import java.util.function.Consumer; + +/** + * Utility wrapper to listen for whether or not a docked stack exists, to be + * used for things like the different overview icon in that mode. + */ +public class DockedStackExistsListener extends IDockedStackListener.Stub { + + private static final String TAG = "DockedStackExistsListener"; + + private final Consumer mCallback; + + private DockedStackExistsListener(Consumer callback) { + mCallback = callback; + } + + @Override + public void onDividerVisibilityChanged(boolean visible) throws RemoteException { + } + + @Override + public void onDockedStackExistsChanged(final boolean exists) throws RemoteException { + mCallback.accept(exists); + } + + @Override + public void onDockedStackMinimizedChanged(boolean minimized, long animDuration, + boolean isHomeStackResizable) throws RemoteException { + } + + @Override + public void onAdjustedForImeChanged(boolean adjustedForIme, long animDuration) + throws RemoteException { + } + + @Override + public void onDockSideChanged(int newDockSide) throws RemoteException { + } + + public static void register(Consumer callback) { + try { + WindowManagerGlobal.getWindowManagerService().registerDockedStackListener( + new DockedStackExistsListener(callback)); + } catch (RemoteException e) { + Log.e(TAG, "Failed registering docked stack exists listener", e); + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index a5d7c57206be6..1fd329cb19715 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -47,6 +47,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; import com.android.systemui.Dependency; +import com.android.systemui.DockedStackExistsListener; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.plugins.PluginListener; @@ -566,40 +567,10 @@ public class NavigationBarView extends FrameLayout implements PluginListener