• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 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 
17 package android.car.cluster;
18 
19 import android.annotation.Nullable;
20 import android.graphics.Rect;
21 import android.os.Bundle;
22 
23 /**
24  * Helper class that represents activity state in the cluster and can be serialized / deserialized
25  * to/from bundle.
26  * @hide
27  */
28 public class ClusterActivityState {
29     private static final String KEY_VISIBLE = "android.car:activityState.visible";
30     private static final String KEY_UNOBSCURED_BOUNDS = "android.car:activityState.unobscured";
31     private static final String KEY_EXTRAS = "android.car:activityState.extras";
32 
33     private boolean mVisible = true;
34     private Rect mUnobscuredBounds;
35     private Bundle mExtras;
36 
isVisible()37     public boolean isVisible() {
38         return mVisible;
39     }
40 
getUnobscuredBounds()41     @Nullable public Rect getUnobscuredBounds() {
42         return mUnobscuredBounds;
43     }
44 
setVisible(boolean visible)45     public ClusterActivityState setVisible(boolean visible) {
46         mVisible = visible;
47         return this;
48     }
49 
setUnobscuredBounds(Rect unobscuredBounds)50     public ClusterActivityState setUnobscuredBounds(Rect unobscuredBounds) {
51         mUnobscuredBounds = unobscuredBounds;
52         return this;
53     }
54 
setExtras(Bundle bundle)55     public ClusterActivityState setExtras(Bundle bundle) {
56         mExtras = bundle;
57         return this;
58     }
59 
60     /** Use factory methods instead. */
ClusterActivityState()61     private ClusterActivityState() {}
62 
create(boolean visible, Rect unobscuredBounds)63     public static ClusterActivityState create(boolean visible, Rect unobscuredBounds) {
64         return new ClusterActivityState()
65                 .setVisible(visible)
66                 .setUnobscuredBounds(unobscuredBounds);
67     }
68 
fromBundle(Bundle bundle)69     public static ClusterActivityState fromBundle(Bundle bundle) {
70         return new ClusterActivityState()
71                 .setVisible(bundle.getBoolean(KEY_VISIBLE, true))
72                 .setUnobscuredBounds((Rect) bundle.getParcelable(KEY_UNOBSCURED_BOUNDS))
73                 .setExtras(bundle.getBundle(KEY_EXTRAS));
74     }
75 
toBundle()76     public Bundle toBundle() {
77         Bundle b = new Bundle();
78         b.putBoolean(KEY_VISIBLE, mVisible);
79         b.putParcelable(KEY_UNOBSCURED_BOUNDS, mUnobscuredBounds);
80         b.putBundle(KEY_EXTRAS, mExtras);
81         return b;
82     }
83 
84     @Override
toString()85     public String toString() {
86         return this.getClass().getSimpleName() + " {"
87                 + "visible: " + mVisible + ", "
88                 + "unobscuredBounds: " + mUnobscuredBounds
89                 + " }";
90     }
91 }
92