• 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 com.android.cts.util;
18 
19 import android.content.Context;
20 import android.content.Intent;
21 import android.net.Uri;
22 import android.os.Parcel;
23 import android.os.Parcelable;
24 
25 public class TestResult implements Parcelable {
26     public static final String EXTRA_TEST_RESULT =
27             "com.android.cts.ephemeraltest.EXTRA_TEST_RESULT";
28     private static final String ACTION_START_ACTIVITY =
29             "com.android.cts.ephemeraltest.START_ACTIVITY";
30 
31     private final String mPackageName;
32     private final String mComponentName;
33     private final String mMethodName;
34     private final String mStatus;
35     private final String mException;
36     private final Intent mIntent;
37     private final boolean mInstantAppPackageInfoExposed;
38 
getPackageName()39     public String getPackageName() {
40         return mPackageName;
41     }
42 
getComponentName()43     public String getComponentName() {
44         return mComponentName;
45     }
46 
getMethodName()47     public String getMethodName() {
48         return mMethodName;
49     }
50 
getStatus()51     public String getStatus() {
52         return mStatus;
53     }
54 
getException()55     public String getException() {
56         return mException;
57     }
58 
getEphemeralPackageInfoExposed()59     public boolean getEphemeralPackageInfoExposed() {
60         return mInstantAppPackageInfoExposed;
61     }
62 
getIntent()63     public Intent getIntent() {
64         return mIntent;
65     }
66 
getBuilder()67     public static Builder getBuilder() {
68         return new Builder();
69     }
70 
broadcast(Context context)71     public void broadcast(Context context) {
72         final Intent broadcastIntent = new Intent(ACTION_START_ACTIVITY);
73         broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
74         broadcastIntent.addFlags(Intent.FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS);
75         broadcastIntent.putExtra(EXTRA_TEST_RESULT, this);
76         context.sendBroadcast(broadcastIntent);
77     }
78 
startActivity(Context context, Uri uri)79     public void startActivity(Context context, Uri uri) {
80         final Intent broadcastIntent = new Intent(Intent.ACTION_VIEW);
81         broadcastIntent.addCategory(Intent.CATEGORY_BROWSABLE);
82         broadcastIntent.putExtra(EXTRA_TEST_RESULT, this);
83         broadcastIntent.setData(uri);
84         context.startActivity(broadcastIntent);
85     }
86 
TestResult(String packageName, String componentName, String methodName, String status, String exception, Intent intent, boolean ephemeralPackageInfoExposed)87     private TestResult(String packageName, String componentName, String methodName,
88             String status, String exception, Intent intent,
89             boolean ephemeralPackageInfoExposed) {
90         mPackageName = packageName;
91         mComponentName = componentName;
92         mMethodName = methodName;
93         mStatus = status;
94         mException = exception;
95         mIntent = intent;
96         mInstantAppPackageInfoExposed = ephemeralPackageInfoExposed;
97     }
98 
99     @Override
describeContents()100     public int describeContents() {
101         return 0;
102     }
103 
104     @Override
writeToParcel(Parcel dest, int flags)105     public void writeToParcel(Parcel dest, int flags) {
106         dest.writeString(mPackageName);
107         dest.writeString(mComponentName);
108         dest.writeString(mMethodName);
109         dest.writeString(mStatus);
110         dest.writeString(mException);
111         dest.writeParcelable(mIntent, 0 /* flags */);
112         dest.writeInt(mInstantAppPackageInfoExposed ? 1 : 0);
113     }
114 
115     public static final Creator<TestResult> CREATOR = new Creator<TestResult>() {
116         public TestResult createFromParcel(Parcel source) {
117             return new TestResult(source);
118         }
119         public TestResult[] newArray(int size) {
120             return new TestResult[size];
121         }
122     };
123 
TestResult(Parcel source)124     private TestResult(Parcel source) {
125         mPackageName = source.readString();
126         mComponentName = source.readString();
127         mMethodName = source.readString();
128         mStatus = source.readString();
129         mException = source.readString();
130         mIntent = source.readParcelable(Object.class.getClassLoader());
131         mInstantAppPackageInfoExposed = source.readInt() != 0;
132     }
133 
134     public static class Builder {
135         private String packageName;
136         private String componentName;
137         private String methodName;
138         private String status;
139         private String exception;
140         private Intent intent;
141         private boolean instantAppPackageInfoExposed;
142 
Builder()143         private Builder() {
144         }
setPackageName(String _packageName)145         public Builder setPackageName(String _packageName) {
146             packageName = _packageName;
147             return this;
148         }
setComponentName(String _componentName)149         public Builder setComponentName(String _componentName) {
150             componentName = _componentName;
151             return this;
152         }
setMethodName(String _methodName)153         public Builder setMethodName(String _methodName) {
154             methodName = _methodName;
155             return this;
156         }
setStatus(String _status)157         public Builder setStatus(String _status) {
158             status = _status;
159             return this;
160         }
setException(String _exception)161         public Builder setException(String _exception) {
162             exception = _exception;
163             return this;
164         }
setEphemeralPackageInfoExposed(boolean _instantAppPackageInfoExposed)165         public Builder setEphemeralPackageInfoExposed(boolean _instantAppPackageInfoExposed) {
166             instantAppPackageInfoExposed = _instantAppPackageInfoExposed;
167             return this;
168         }
setIntent(Intent _intent)169         public Builder setIntent(Intent _intent) {
170             intent = _intent;
171             return this;
172         }
build()173         public TestResult build() {
174             return new TestResult(packageName, componentName, methodName,
175                     status, exception, intent, instantAppPackageInfoExposed);
176         }
177     }
178 }
179