• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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.view.translation;
18 
19 import android.annotation.NonNull;
20 import android.os.Parcel;
21 import android.os.Parcelable;
22 
23 import com.android.internal.util.DataClass;
24 
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.List;
28 
29 /**
30  * Translation request sent to the {@link android.service.translation.TranslationService} by the
31  * {@link android.view.translation.Translator} which contains the text to be translated.
32  */
33 @DataClass(genToString = true, genHiddenConstDefs = true, genBuilder = true)
34 public final class TranslationRequest implements Parcelable {
35 
36     /**
37      * Indicates this request wants to receive the standard translation result.
38      */
39     public static final @RequestFlags int FLAG_TRANSLATION_RESULT = 0x1;
40     /**
41      * Indicates this request wants to receive the dictionary result.
42      *
43      * <p>See {@link TranslationResponseValue#EXTRA_DEFINITIONS} for more detail on the structure
44      * of the returned data.
45      */
46     public static final @RequestFlags int FLAG_DICTIONARY_RESULT = 0x2;
47     /**
48      * Indicates this request wants to receive the transliteration result.
49      *
50      * <p>This returns a CharSequence representation of the transliteration of the translated text.
51      *  See {@link TranslationResponseValue#getTransliteration()}.
52      */
53     public static final @RequestFlags int FLAG_TRANSLITERATION_RESULT = 0x4;
54     /**
55      * Indicates this request is willing to accept partial responses.
56      *
57      * <p>The partial responses can be accessed by
58      * {@link TranslationResponse#getTranslationResponseValues()} or
59      * {@link TranslationResponse#getViewTranslationResponses()}. These responses will each contain
60      * only a subset of the corresponding translated values.
61      *
62      * <p>The are no guarantees to the number of translated values or the order in which these
63      * values are returned in the {@link TranslationResponse}.
64      *
65      * <p>This flag denotes the client can expect multiple partial responses, but there may not
66      * necessarily be multiple responses.</p>
67      */
68     public static final @RequestFlags int FLAG_PARTIAL_RESPONSES = 0x8;
69 
70     /**
71      * Request flags. {@link #FLAG_TRANSLATION_RESULT} by default.
72      */
73     private final @RequestFlags int mFlags;
74 
75     /**
76      * List of {@link TranslationRequestValue}s to be translated. The index of entries in this list
77      * will be their respective key in the {@link android.util.SparseArray} returned by calling
78      * {@link TranslationResponse#getTranslationResponseValues()}.
79      */
80     @NonNull
81     @DataClass.PluralOf("translationRequestValue")
82     private final List<TranslationRequestValue> mTranslationRequestValues;
83 
84     /**
85      * List of {@link ViewTranslationRequest}s to be translated. The index of entries in this list
86      * will be their respective key in the {@link android.util.SparseArray} returned by calling
87      * {@link TranslationResponse#getViewTranslationResponses()}.
88      */
89     @NonNull
90     @DataClass.PluralOf("viewTranslationRequest")
91     private final List<ViewTranslationRequest> mViewTranslationRequests;
92 
defaultFlags()93     private static int defaultFlags() {
94         return FLAG_TRANSLATION_RESULT;
95     }
96 
defaultTranslationRequestValues()97     private static List<TranslationRequestValue> defaultTranslationRequestValues() {
98         return Collections.emptyList();
99     }
100 
defaultViewTranslationRequests()101     private static List<ViewTranslationRequest> defaultViewTranslationRequests() {
102         return Collections.emptyList();
103     }
104 
105     abstract static class BaseBuilder {
106         /**
107          * @removed use {@link Builder#setTranslationRequestValues(List)}.
108          */
109         @Deprecated
addTranslationRequestValue( @onNull TranslationRequestValue value)110         public abstract Builder addTranslationRequestValue(
111                 @NonNull TranslationRequestValue value);
112 
113         /**
114          * @removed use {@link Builder#setViewTranslationRequests(List)}.
115          */
116         @Deprecated
addViewTranslationRequest( @onNull ViewTranslationRequest value)117         public abstract Builder addViewTranslationRequest(
118                 @NonNull ViewTranslationRequest value);
119 
120     }
121 
122 
123 
124     // Code below generated by codegen v1.0.23.
125     //
126     // DO NOT MODIFY!
127     // CHECKSTYLE:OFF Generated code
128     //
129     // To regenerate run:
130     // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/view/translation/TranslationRequest.java
131     //
132     // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
133     //   Settings > Editor > Code Style > Formatter Control
134     //@formatter:off
135 
136 
137     /** @hide */
138     @android.annotation.IntDef(flag = true, prefix = "FLAG_", value = {
139         FLAG_TRANSLATION_RESULT,
140         FLAG_DICTIONARY_RESULT,
141         FLAG_TRANSLITERATION_RESULT,
142         FLAG_PARTIAL_RESPONSES
143     })
144     @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE)
145     @DataClass.Generated.Member
146     public @interface RequestFlags {}
147 
148     /** @hide */
149     @DataClass.Generated.Member
requestFlagsToString(@equestFlags int value)150     public static String requestFlagsToString(@RequestFlags int value) {
151         return com.android.internal.util.BitUtils.flagsToString(
152                 value, TranslationRequest::singleRequestFlagsToString);
153     }
154 
155     @DataClass.Generated.Member
singleRequestFlagsToString(@equestFlags int value)156     static String singleRequestFlagsToString(@RequestFlags int value) {
157         switch (value) {
158             case FLAG_TRANSLATION_RESULT:
159                     return "FLAG_TRANSLATION_RESULT";
160             case FLAG_DICTIONARY_RESULT:
161                     return "FLAG_DICTIONARY_RESULT";
162             case FLAG_TRANSLITERATION_RESULT:
163                     return "FLAG_TRANSLITERATION_RESULT";
164             case FLAG_PARTIAL_RESPONSES:
165                     return "FLAG_PARTIAL_RESPONSES";
166             default: return Integer.toHexString(value);
167         }
168     }
169 
170     @DataClass.Generated.Member
TranslationRequest( @equestFlags int flags, @NonNull List<TranslationRequestValue> translationRequestValues, @NonNull List<ViewTranslationRequest> viewTranslationRequests)171     /* package-private */ TranslationRequest(
172             @RequestFlags int flags,
173             @NonNull List<TranslationRequestValue> translationRequestValues,
174             @NonNull List<ViewTranslationRequest> viewTranslationRequests) {
175         this.mFlags = flags;
176 
177         com.android.internal.util.Preconditions.checkFlagsArgument(
178                 mFlags,
179                 FLAG_TRANSLATION_RESULT
180                         | FLAG_DICTIONARY_RESULT
181                         | FLAG_TRANSLITERATION_RESULT
182                         | FLAG_PARTIAL_RESPONSES);
183         this.mTranslationRequestValues = translationRequestValues;
184         com.android.internal.util.AnnotationValidations.validate(
185                 NonNull.class, null, mTranslationRequestValues);
186         this.mViewTranslationRequests = viewTranslationRequests;
187         com.android.internal.util.AnnotationValidations.validate(
188                 NonNull.class, null, mViewTranslationRequests);
189 
190         // onConstructed(); // You can define this method to get a callback
191     }
192 
193     /**
194      * Request flags. {@link #FLAG_TRANSLATION_RESULT} by default.
195      */
196     @DataClass.Generated.Member
getFlags()197     public @RequestFlags int getFlags() {
198         return mFlags;
199     }
200 
201     /**
202      * List of {@link TranslationRequestValue}s to be translated. The index of entries in this list
203      * will be their respective key in the {@link android.util.SparseArray} returned by calling
204      * {@link TranslationResponse#getTranslationResponseValues()}.
205      */
206     @DataClass.Generated.Member
getTranslationRequestValues()207     public @NonNull List<TranslationRequestValue> getTranslationRequestValues() {
208         return mTranslationRequestValues;
209     }
210 
211     /**
212      * List of {@link ViewTranslationRequest}s to be translated. The index of entries in this list
213      * will be their respective key in the {@link android.util.SparseArray} returned by calling
214      * {@link TranslationResponse#getViewTranslationResponses()}.
215      */
216     @DataClass.Generated.Member
getViewTranslationRequests()217     public @NonNull List<ViewTranslationRequest> getViewTranslationRequests() {
218         return mViewTranslationRequests;
219     }
220 
221     @Override
222     @DataClass.Generated.Member
toString()223     public String toString() {
224         // You can override field toString logic by defining methods like:
225         // String fieldNameToString() { ... }
226 
227         return "TranslationRequest { " +
228                 "flags = " + requestFlagsToString(mFlags) + ", " +
229                 "translationRequestValues = " + mTranslationRequestValues + ", " +
230                 "viewTranslationRequests = " + mViewTranslationRequests +
231         " }";
232     }
233 
234     @Override
235     @DataClass.Generated.Member
writeToParcel(@onNull Parcel dest, int flags)236     public void writeToParcel(@NonNull Parcel dest, int flags) {
237         // You can override field parcelling by defining methods like:
238         // void parcelFieldName(Parcel dest, int flags) { ... }
239 
240         dest.writeInt(mFlags);
241         dest.writeParcelableList(mTranslationRequestValues, flags);
242         dest.writeParcelableList(mViewTranslationRequests, flags);
243     }
244 
245     @Override
246     @DataClass.Generated.Member
describeContents()247     public int describeContents() { return 0; }
248 
249     /** @hide */
250     @SuppressWarnings({"unchecked", "RedundantCast"})
251     @DataClass.Generated.Member
TranslationRequest(@onNull Parcel in)252     /* package-private */ TranslationRequest(@NonNull Parcel in) {
253         // You can override field unparcelling by defining methods like:
254         // static FieldType unparcelFieldName(Parcel in) { ... }
255 
256         int flags = in.readInt();
257         List<TranslationRequestValue> translationRequestValues = new ArrayList<>();
258         in.readParcelableList(translationRequestValues, TranslationRequestValue.class.getClassLoader(), android.view.translation.TranslationRequestValue.class);
259         List<ViewTranslationRequest> viewTranslationRequests = new ArrayList<>();
260         in.readParcelableList(viewTranslationRequests, ViewTranslationRequest.class.getClassLoader(), android.view.translation.ViewTranslationRequest.class);
261 
262         this.mFlags = flags;
263 
264         com.android.internal.util.Preconditions.checkFlagsArgument(
265                 mFlags,
266                 FLAG_TRANSLATION_RESULT
267                         | FLAG_DICTIONARY_RESULT
268                         | FLAG_TRANSLITERATION_RESULT
269                         | FLAG_PARTIAL_RESPONSES);
270         this.mTranslationRequestValues = translationRequestValues;
271         com.android.internal.util.AnnotationValidations.validate(
272                 NonNull.class, null, mTranslationRequestValues);
273         this.mViewTranslationRequests = viewTranslationRequests;
274         com.android.internal.util.AnnotationValidations.validate(
275                 NonNull.class, null, mViewTranslationRequests);
276 
277         // onConstructed(); // You can define this method to get a callback
278     }
279 
280     @DataClass.Generated.Member
281     public static final @NonNull Parcelable.Creator<TranslationRequest> CREATOR
282             = new Parcelable.Creator<TranslationRequest>() {
283         @Override
284         public TranslationRequest[] newArray(int size) {
285             return new TranslationRequest[size];
286         }
287 
288         @Override
289         public TranslationRequest createFromParcel(@NonNull Parcel in) {
290             return new TranslationRequest(in);
291         }
292     };
293 
294     /**
295      * A builder for {@link TranslationRequest}
296      */
297     @SuppressWarnings("WeakerAccess")
298     @DataClass.Generated.Member
299     public static final class Builder extends BaseBuilder {
300 
301         private @RequestFlags int mFlags;
302         private @NonNull List<TranslationRequestValue> mTranslationRequestValues;
303         private @NonNull List<ViewTranslationRequest> mViewTranslationRequests;
304 
305         private long mBuilderFieldsSet = 0L;
306 
Builder()307         public Builder() {
308         }
309 
310         /**
311          * Request flags. {@link #FLAG_TRANSLATION_RESULT} by default.
312          */
313         @DataClass.Generated.Member
setFlags(@equestFlags int value)314         public @NonNull Builder setFlags(@RequestFlags int value) {
315             checkNotUsed();
316             mBuilderFieldsSet |= 0x1;
317             mFlags = value;
318             return this;
319         }
320 
321         /**
322          * List of {@link TranslationRequestValue}s to be translated. The index of entries in this list
323          * will be their respective key in the {@link android.util.SparseArray} returned by calling
324          * {@link TranslationResponse#getTranslationResponseValues()}.
325          */
326         @DataClass.Generated.Member
setTranslationRequestValues(@onNull List<TranslationRequestValue> value)327         public @NonNull Builder setTranslationRequestValues(@NonNull List<TranslationRequestValue> value) {
328             checkNotUsed();
329             mBuilderFieldsSet |= 0x2;
330             mTranslationRequestValues = value;
331             return this;
332         }
333 
334         /**
335          * @see #setTranslationRequestValues
336          * @removed
337          */
338         @DataClass.Generated.Member
339         @Override
340         @Deprecated
addTranslationRequestValue(@onNull TranslationRequestValue value)341         public @NonNull Builder addTranslationRequestValue(@NonNull TranslationRequestValue value) {
342             if (mTranslationRequestValues == null) setTranslationRequestValues(new ArrayList<>());
343             mTranslationRequestValues.add(value);
344             return this;
345         }
346 
347         /**
348          * List of {@link ViewTranslationRequest}s to be translated. The index of entries in this list
349          * will be their respective key in the {@link android.util.SparseArray} returned by calling
350          * {@link TranslationResponse#getViewTranslationResponses()}.
351          */
352         @DataClass.Generated.Member
setViewTranslationRequests(@onNull List<ViewTranslationRequest> value)353         public @NonNull Builder setViewTranslationRequests(@NonNull List<ViewTranslationRequest> value) {
354             checkNotUsed();
355             mBuilderFieldsSet |= 0x4;
356             mViewTranslationRequests = value;
357             return this;
358         }
359 
360         /**
361          * @see #setViewTranslationRequests
362          * @removed
363          */
364         @DataClass.Generated.Member
365         @Override
366         @Deprecated
addViewTranslationRequest(@onNull ViewTranslationRequest value)367         public @NonNull Builder addViewTranslationRequest(@NonNull ViewTranslationRequest value) {
368             if (mViewTranslationRequests == null) setViewTranslationRequests(new ArrayList<>());
369             mViewTranslationRequests.add(value);
370             return this;
371         }
372 
373         /** Builds the instance. This builder should not be touched after calling this! */
build()374         public @NonNull TranslationRequest build() {
375             checkNotUsed();
376             mBuilderFieldsSet |= 0x8; // Mark builder used
377 
378             if ((mBuilderFieldsSet & 0x1) == 0) {
379                 mFlags = defaultFlags();
380             }
381             if ((mBuilderFieldsSet & 0x2) == 0) {
382                 mTranslationRequestValues = defaultTranslationRequestValues();
383             }
384             if ((mBuilderFieldsSet & 0x4) == 0) {
385                 mViewTranslationRequests = defaultViewTranslationRequests();
386             }
387             TranslationRequest o = new TranslationRequest(
388                     mFlags,
389                     mTranslationRequestValues,
390                     mViewTranslationRequests);
391             return o;
392         }
393 
checkNotUsed()394         private void checkNotUsed() {
395             if ((mBuilderFieldsSet & 0x8) != 0) {
396                 throw new IllegalStateException(
397                         "This Builder should not be reused. Use a new Builder instance instead");
398             }
399         }
400     }
401 
402     @DataClass.Generated(
403             time = 1629159107226L,
404             codegenVersion = "1.0.23",
405             sourceFile = "frameworks/base/core/java/android/view/translation/TranslationRequest.java",
406             inputSignatures = "public static final @android.view.translation.TranslationRequest.RequestFlags int FLAG_TRANSLATION_RESULT\npublic static final @android.view.translation.TranslationRequest.RequestFlags int FLAG_DICTIONARY_RESULT\npublic static final @android.view.translation.TranslationRequest.RequestFlags int FLAG_TRANSLITERATION_RESULT\npublic static final @android.view.translation.TranslationRequest.RequestFlags int FLAG_PARTIAL_RESPONSES\nprivate final @android.view.translation.TranslationRequest.RequestFlags int mFlags\nprivate final @android.annotation.NonNull @com.android.internal.util.DataClass.PluralOf(\"translationRequestValue\") java.util.List<android.view.translation.TranslationRequestValue> mTranslationRequestValues\nprivate final @android.annotation.NonNull @com.android.internal.util.DataClass.PluralOf(\"viewTranslationRequest\") java.util.List<android.view.translation.ViewTranslationRequest> mViewTranslationRequests\nprivate static  int defaultFlags()\nprivate static  java.util.List<android.view.translation.TranslationRequestValue> defaultTranslationRequestValues()\nprivate static  java.util.List<android.view.translation.ViewTranslationRequest> defaultViewTranslationRequests()\nclass TranslationRequest extends java.lang.Object implements [android.os.Parcelable]\npublic abstract @java.lang.Deprecated android.view.translation.TranslationRequest.Builder addTranslationRequestValue(android.view.translation.TranslationRequestValue)\npublic abstract @java.lang.Deprecated android.view.translation.TranslationRequest.Builder addViewTranslationRequest(android.view.translation.ViewTranslationRequest)\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstDefs=true, genBuilder=true)\npublic abstract @java.lang.Deprecated android.view.translation.TranslationRequest.Builder addTranslationRequestValue(android.view.translation.TranslationRequestValue)\npublic abstract @java.lang.Deprecated android.view.translation.TranslationRequest.Builder addViewTranslationRequest(android.view.translation.ViewTranslationRequest)\nclass BaseBuilder extends java.lang.Object implements []")
407     @Deprecated
__metadata()408     private void __metadata() {}
409 
410 
411     //@formatter:on
412     // End of generated code
413 
414 }
415