Home | History | Annotate | Download | only in model
      1 /*
      2  * Copyright (C) 2018 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.example.android.autofill.service.model;
     18 
     19 import java.util.List;
     20 
     21 /**
     22  * JSON model class, representing an autofillable field type. It is called "Default" because only
     23  * default field types will be included in the packaged JSON. After the JSON is initially read and
     24  * written to the DB, the field types can be dynamically added, modified, and removed.
     25  *<p>
     26  * It contains all of the metadata about the field type. For example, if the field type is
     27  * "country", this is the JSON object associated with it:
     28  <pre class="prettyprint">
     29  {
     30      "autofillHints": [
     31          "country"
     32      ],
     33      "fieldType": {
     34          "autofillTypes": [
     35              1,
     36              3
     37          ],
     38          "fakeData": {
     39              "strictExampleSet": [],
     40              "textTemplate": "countryseed"
     41          },
     42          "partition": 1,
     43          "saveInfo": 2,
     44          "typeName": "country"
     45      }
     46  }
     47  </pre>
     48  */
     49 public class DefaultFieldTypeWithHints {
     50     public DefaultFieldType fieldType;
     51     public List<String> autofillHints;
     52 
     53     public static class DefaultFieldType {
     54         public String typeName;
     55         public List<Integer> autofillTypes;
     56         public int saveInfo;
     57         public int partition;
     58         public DefaultFakeData fakeData;
     59     }
     60 
     61     public static class DefaultFakeData {
     62         public List<String> strictExampleSet;
     63         public String textTemplate;
     64         public String dateTemplate;
     65 
     66         public DefaultFakeData(List<String> strictExampleSet, String textTemplate,
     67                 String dateTemplate) {
     68             this.strictExampleSet = strictExampleSet;
     69             this.textTemplate = textTemplate;
     70             this.dateTemplate = dateTemplate;
     71         }
     72     }
     73 }
     74