1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package android.service.notification;
17 
18 import android.os.Bundle;
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 
22 /**
23  * @hide
24  */
25 public class NotificationRankingUpdate implements Parcelable {
26     // TODO: Support incremental updates.
27     private final String[] mKeys;
28     private final String[] mInterceptedKeys;
29     private final Bundle mVisibilityOverrides;
30     private final Bundle mSuppressedVisualEffects;
31     private final int[] mImportance;
32     private final Bundle mImportanceExplanation;
33     private final Bundle mOverrideGroupKeys;
34     private final Bundle mChannels;
35     private final Bundle mOverridePeople;
36     private final Bundle mSnoozeCriteria;
37     private final Bundle mShowBadge;
38     private final Bundle mUserSentiment;
39     private final Bundle mHidden;
40 
NotificationRankingUpdate(String[] keys, String[] interceptedKeys, Bundle visibilityOverrides, Bundle suppressedVisualEffects, int[] importance, Bundle explanation, Bundle overrideGroupKeys, Bundle channels, Bundle overridePeople, Bundle snoozeCriteria, Bundle showBadge, Bundle userSentiment, Bundle hidden)41     public NotificationRankingUpdate(String[] keys, String[] interceptedKeys,
42             Bundle visibilityOverrides, Bundle suppressedVisualEffects,
43             int[] importance, Bundle explanation, Bundle overrideGroupKeys,
44             Bundle channels, Bundle overridePeople, Bundle snoozeCriteria,
45             Bundle showBadge, Bundle userSentiment, Bundle hidden) {
46         mKeys = keys;
47         mInterceptedKeys = interceptedKeys;
48         mVisibilityOverrides = visibilityOverrides;
49         mSuppressedVisualEffects = suppressedVisualEffects;
50         mImportance = importance;
51         mImportanceExplanation = explanation;
52         mOverrideGroupKeys = overrideGroupKeys;
53         mChannels = channels;
54         mOverridePeople = overridePeople;
55         mSnoozeCriteria = snoozeCriteria;
56         mShowBadge = showBadge;
57         mUserSentiment = userSentiment;
58         mHidden = hidden;
59     }
60 
NotificationRankingUpdate(Parcel in)61     public NotificationRankingUpdate(Parcel in) {
62         mKeys = in.readStringArray();
63         mInterceptedKeys = in.readStringArray();
64         mVisibilityOverrides = in.readBundle();
65         mSuppressedVisualEffects = in.readBundle();
66         mImportance = new int[mKeys.length];
67         in.readIntArray(mImportance);
68         mImportanceExplanation = in.readBundle();
69         mOverrideGroupKeys = in.readBundle();
70         mChannels = in.readBundle();
71         mOverridePeople = in.readBundle();
72         mSnoozeCriteria = in.readBundle();
73         mShowBadge = in.readBundle();
74         mUserSentiment = in.readBundle();
75         mHidden = in.readBundle();
76     }
77 
78     @Override
describeContents()79     public int describeContents() {
80         return 0;
81     }
82 
83     @Override
writeToParcel(Parcel out, int flags)84     public void writeToParcel(Parcel out, int flags) {
85         out.writeStringArray(mKeys);
86         out.writeStringArray(mInterceptedKeys);
87         out.writeBundle(mVisibilityOverrides);
88         out.writeBundle(mSuppressedVisualEffects);
89         out.writeIntArray(mImportance);
90         out.writeBundle(mImportanceExplanation);
91         out.writeBundle(mOverrideGroupKeys);
92         out.writeBundle(mChannels);
93         out.writeBundle(mOverridePeople);
94         out.writeBundle(mSnoozeCriteria);
95         out.writeBundle(mShowBadge);
96         out.writeBundle(mUserSentiment);
97         out.writeBundle(mHidden);
98     }
99 
100     public static final Parcelable.Creator<NotificationRankingUpdate> CREATOR
101             = new Parcelable.Creator<NotificationRankingUpdate>() {
102         public NotificationRankingUpdate createFromParcel(Parcel parcel) {
103             return new NotificationRankingUpdate(parcel);
104         }
105 
106         public NotificationRankingUpdate[] newArray(int size) {
107             return new NotificationRankingUpdate[size];
108         }
109     };
110 
getOrderedKeys()111     public String[] getOrderedKeys() {
112         return mKeys;
113     }
114 
getInterceptedKeys()115     public String[] getInterceptedKeys() {
116         return mInterceptedKeys;
117     }
118 
getVisibilityOverrides()119     public Bundle getVisibilityOverrides() {
120         return mVisibilityOverrides;
121     }
122 
getSuppressedVisualEffects()123     public Bundle getSuppressedVisualEffects() {
124         return mSuppressedVisualEffects;
125     }
126 
getImportance()127     public int[] getImportance() {
128         return mImportance;
129     }
130 
getImportanceExplanation()131     public Bundle getImportanceExplanation() {
132         return mImportanceExplanation;
133     }
134 
getOverrideGroupKeys()135     public Bundle getOverrideGroupKeys() {
136         return mOverrideGroupKeys;
137     }
138 
getChannels()139     public Bundle getChannels() {
140         return mChannels;
141     }
142 
getOverridePeople()143     public Bundle getOverridePeople() {
144         return mOverridePeople;
145     }
146 
getSnoozeCriteria()147     public Bundle getSnoozeCriteria() {
148         return mSnoozeCriteria;
149     }
150 
getShowBadge()151     public Bundle getShowBadge() {
152         return mShowBadge;
153     }
154 
getUserSentiment()155     public Bundle getUserSentiment() {
156         return mUserSentiment;
157     }
158 
getHidden()159     public Bundle getHidden() {
160         return mHidden;
161     }
162 }
163