diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-04-04 23:22:55 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-04-04 23:22:55 +0000 |
| commit | fd33fe0e8a9084cb9cc427c3aa9453bdcb4a38c7 (patch) | |
| tree | 246bbe5ee9ad5577cc6413ca6cd67e3fea68b9f6 /core/java | |
| parent | f8b98bb10dbdd5c4d7e7ae7592a1753e8b5489df (diff) | |
| parent | 49efa718a86959e1fe996f05669c462c98f836f0 (diff) | |
Merge "Introduce a result class for IStatusBarService#registerStatusBar()" into qt-dev
Diffstat (limited to 'core/java')
3 files changed, 139 insertions, 4 deletions
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index 343761430762..5fee2c9bbdd3 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -24,6 +24,7 @@ import android.service.notification.StatusBarNotification; import android.hardware.biometrics.IBiometricServiceReceiverInternal; import com.android.internal.statusbar.IStatusBar; +import com.android.internal.statusbar.RegisterStatusBarResult; import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.statusbar.StatusBarIconList; import com.android.internal.statusbar.NotificationVisibility; @@ -54,10 +55,7 @@ interface IStatusBarService // ---- Methods below are for use by the status bar policy services ---- // You need the STATUS_BAR_SERVICE permission - void registerStatusBar(IStatusBar callbacks, out List<String> iconSlots, - out List<StatusBarIcon> iconList, - out int[] switches, out List<IBinder> binders, out Rect fullscreenStackBounds, - out Rect dockedStackBounds); + RegisterStatusBarResult registerStatusBar(IStatusBar callbacks); void onPanelRevealed(boolean clearNotificationEffects, int numItems); void onPanelHidden(); // Mark current notifications as "seen" and stop ringing, vibrating, blinking. diff --git a/core/java/com/android/internal/statusbar/RegisterStatusBarResult.aidl b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.aidl new file mode 100644 index 000000000000..ec2e60480aea --- /dev/null +++ b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2019 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.internal.statusbar; + +parcelable RegisterStatusBarResult; diff --git a/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java new file mode 100644 index 000000000000..b47ef125275f --- /dev/null +++ b/core/java/com/android/internal/statusbar/RegisterStatusBarResult.java @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2019 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.internal.statusbar; + +import android.graphics.Rect; +import android.os.IBinder; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.ArrayMap; + +/** + * An immutable data object to return a set of values from StatusBarManagerService to its clients. + */ +public final class RegisterStatusBarResult implements Parcelable { + public final ArrayMap<String, StatusBarIcon> mIcons; + public final int mDisabledFlags1; // switch[0] + public final int mSystemUiVisibility; // switch[1] + public final boolean mMenuVisible; // switch[2] + public final int mImeWindowVis; // switch[3] + public final int mImeBackDisposition; // switch[4] + public final boolean mShowImeSwitcher; // switch[5] + public final int mDisabledFlags2; // switch[6] + public final int mFullscreenStackSysUiVisibility; // switch[7] + public final int mDockedStackSysUiVisibility; // switch[8] + public final IBinder mImeToken; + public final Rect mFullscreenStackBounds; + public final Rect mDockedStackBounds; + + public RegisterStatusBarResult(ArrayMap<String, StatusBarIcon> icons, int disabledFlags1, + int systemUiVisibility, boolean menuVisible, int imeWindowVis, int imeBackDisposition, + boolean showImeSwitcher, int disabledFlags2, int fullscreenStackSysUiVisibility, + int dockedStackSysUiVisibility, IBinder imeToken, Rect fullscreenStackBounds, + Rect dockedStackBounds) { + mIcons = new ArrayMap<>(icons); + mDisabledFlags1 = disabledFlags1; + mSystemUiVisibility = systemUiVisibility; + mMenuVisible = menuVisible; + mImeWindowVis = imeWindowVis; + mImeBackDisposition = imeBackDisposition; + mShowImeSwitcher = showImeSwitcher; + mDisabledFlags2 = disabledFlags2; + mFullscreenStackSysUiVisibility = fullscreenStackSysUiVisibility; + mDockedStackSysUiVisibility = dockedStackSysUiVisibility; + mImeToken = imeToken; + mFullscreenStackBounds = fullscreenStackBounds; + mDockedStackBounds = dockedStackBounds; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeTypedArrayMap(mIcons, flags); + dest.writeInt(mDisabledFlags1); + dest.writeInt(mSystemUiVisibility); + dest.writeBoolean(mMenuVisible); + dest.writeInt(mImeWindowVis); + dest.writeInt(mImeBackDisposition); + dest.writeBoolean(mShowImeSwitcher); + dest.writeInt(mDisabledFlags2); + dest.writeInt(mFullscreenStackSysUiVisibility); + dest.writeInt(mDockedStackSysUiVisibility); + dest.writeStrongBinder(mImeToken); + dest.writeParcelable(mFullscreenStackBounds, flags); + dest.writeParcelable(mDockedStackBounds, flags); + } + + /** + * Used to make this class parcelable. + */ + public static final Parcelable.Creator<RegisterStatusBarResult> CREATOR = + new Parcelable.Creator<RegisterStatusBarResult>() { + @Override + public RegisterStatusBarResult createFromParcel(Parcel source) { + final ArrayMap<String, StatusBarIcon> icons = + source.createTypedArrayMap(StatusBarIcon.CREATOR); + final int disabledFlags1 = source.readInt(); + final int systemUiVisibility = source.readInt(); + final boolean menuVisible = source.readBoolean(); + final int imeWindowVis = source.readInt(); + final int imeBackDisposition = source.readInt(); + final boolean showImeSwitcher = source.readBoolean(); + final int disabledFlags2 = source.readInt(); + final int fullscreenStackSysUiVisibility = source.readInt(); + final int dockedStackSysUiVisibility = source.readInt(); + final IBinder imeToken = source.readStrongBinder(); + final Rect fullscreenStackBounds = Rect.CREATOR.createFromParcel(source); + final Rect dockedStackBounds = Rect.CREATOR.createFromParcel(source); + return new RegisterStatusBarResult(icons, disabledFlags1, systemUiVisibility, + menuVisible, imeWindowVis, imeBackDisposition, showImeSwitcher, + disabledFlags2, fullscreenStackSysUiVisibility, + dockedStackSysUiVisibility, imeToken, fullscreenStackBounds, + dockedStackBounds); + } + + @Override + public RegisterStatusBarResult[] newArray(int size) { + return new RegisterStatusBarResult[size]; + } + }; +} |
