You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
6.7 KiB
202 lines
6.7 KiB
//
|
|
// Copyright (C) 2018 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
include "utils/zlib/buffer.fbs";
|
|
|
|
// The type of variable to fetch.
|
|
namespace libtextclassifier3;
|
|
enum AndroidSimpleIntentGeneratorVariableType : int {
|
|
INVALID_VARIABLE = 0,
|
|
|
|
// The raw text that was classified.
|
|
RAW_TEXT = 1,
|
|
|
|
// Text as a URL with explicit protocol. If no protocol was specified, http
|
|
// is prepended.
|
|
URL_TEXT = 2,
|
|
|
|
// The raw text, but URL encoded.
|
|
URL_ENCODED_TEXT = 3,
|
|
|
|
// For dates/times: the instant of the event in UTC millis.
|
|
EVENT_TIME_MS_UTC = 4,
|
|
|
|
// For dates/times: the start of the event in UTC millis.
|
|
EVENT_START_MS_UTC = 5,
|
|
|
|
// For dates/times: the end of the event in UTC millis.
|
|
EVENT_END_MS_UTC = 6,
|
|
|
|
// Name of the package that's running the classifier.
|
|
PACKAGE_NAME = 7,
|
|
}
|
|
|
|
// Enumerates the possible extra types for the simple intent generator.
|
|
namespace libtextclassifier3;
|
|
enum AndroidSimpleIntentGeneratorExtraType : int {
|
|
INVALID_EXTRA_TYPE = 0,
|
|
STRING = 1,
|
|
// Use string_ field.
|
|
|
|
BOOL = 2,
|
|
// Use bool_ field.
|
|
|
|
VARIABLE_AS_LONG = 3,
|
|
// Use int32_ field for the variable index.
|
|
}
|
|
|
|
// Enumerates the possible condition types for the simple intent generator.
|
|
namespace libtextclassifier3;
|
|
enum AndroidSimpleIntentGeneratorConditionType : int {
|
|
INVALID_CONDITION_TYPE = 0,
|
|
|
|
// Queries the UserManager for the given boolean restriction. The condition
|
|
// passes if the result is of getBoolean is false. The name of the
|
|
// restriction to check is in the string_ field.
|
|
USER_RESTRICTION_NOT_SET = 1,
|
|
|
|
// Checks that the parsed event start time is at least a give number of
|
|
// milliseconds in the future. (Only valid if there is a parsed event
|
|
// time) The offset is stored in the int64_ field.
|
|
EVENT_START_IN_FUTURE_MS = 2,
|
|
}
|
|
|
|
// Describes how intents for the various entity types should be generated on
|
|
// Android. This is distributed through the model, but not used by
|
|
// libtextclassifier yet - rather, it's passed to the calling Java code, which
|
|
// implements the Intent generation logic.
|
|
namespace libtextclassifier3;
|
|
table AndroidIntentFactoryOptions {
|
|
entity:[AndroidIntentFactoryEntityOptions];
|
|
}
|
|
|
|
// Describes how intents should be generated for a particular entity type.
|
|
namespace libtextclassifier3;
|
|
table AndroidIntentFactoryEntityOptions {
|
|
// The entity type as defined by one of the TextClassifier ENTITY_TYPE
|
|
// constants. (e.g. "address", "phone", etc.)
|
|
entity_type:string (shared);
|
|
|
|
// List of generators for all the different types of intents that should
|
|
// be made available for the entity type.
|
|
generator:[AndroidIntentGeneratorOptions];
|
|
}
|
|
|
|
// Configures a single Android Intent generator.
|
|
namespace libtextclassifier3;
|
|
table AndroidIntentGeneratorOptions {
|
|
// Strings for UI elements.
|
|
strings:[AndroidIntentGeneratorStrings];
|
|
|
|
// Generator specific configuration.
|
|
simple:AndroidSimpleIntentGeneratorOptions;
|
|
}
|
|
|
|
// Language dependent configuration for an Android Intent generator.
|
|
namespace libtextclassifier3;
|
|
table AndroidIntentGeneratorStrings {
|
|
// BCP 47 tag for the supported locale. Note that because of API level
|
|
// restrictions, this must /not/ use wildcards. To e.g. match all English
|
|
// locales, use only "en" and not "en_*". Reference the java.util.Locale
|
|
// constructor for details.
|
|
language_tag:string (shared);
|
|
|
|
// Title shown for the action (see RemoteAction.getTitle).
|
|
title:string (shared);
|
|
|
|
// Description shown for the action (see
|
|
// RemoteAction.getContentDescription).
|
|
description:string (shared);
|
|
}
|
|
|
|
// An extra to set on a simple intent generator Intent.
|
|
namespace libtextclassifier3;
|
|
table AndroidSimpleIntentGeneratorExtra {
|
|
// The name of the extra to set.
|
|
name:string (shared);
|
|
|
|
// The type of the extra to set.
|
|
type:AndroidSimpleIntentGeneratorExtraType;
|
|
|
|
string_:string (shared);
|
|
bool_:bool;
|
|
int32_:int;
|
|
}
|
|
|
|
// A condition that needs to be fulfilled for an Intent to get generated.
|
|
namespace libtextclassifier3;
|
|
table AndroidSimpleIntentGeneratorCondition {
|
|
type:AndroidSimpleIntentGeneratorConditionType;
|
|
string_:string (shared);
|
|
int32_:int;
|
|
int64_:long;
|
|
}
|
|
|
|
// Configures an intent generator where the logic is simple to be expressed with
|
|
// basic rules - which covers the vast majority of use cases and is analogous
|
|
// to Android Actions.
|
|
// Most strings (action, data, type, ...) may contain variable references. To
|
|
// use them, the generator must first declare all the variables it wishes to use
|
|
// in the variables field. The values then become available as numbered
|
|
// arguments (using the normal java.util.Formatter syntax) in the order they
|
|
// were specified.
|
|
namespace libtextclassifier3;
|
|
table AndroidSimpleIntentGeneratorOptions {
|
|
// The action to set on the Intent (see Intent.setAction). Supports variables.
|
|
action:string (shared);
|
|
|
|
// The data to set on the Intent (see Intent.setData). Supports variables.
|
|
data:string (shared);
|
|
|
|
// The type to set on the Intent (see Intent.setType). Supports variables.
|
|
type:string (shared);
|
|
|
|
// The list of all the extras to add to the Intent.
|
|
extra:[AndroidSimpleIntentGeneratorExtra];
|
|
|
|
// The list of all the variables that become available for substitution in
|
|
// the action, data, type and extra strings. To e.g. set a field to the value
|
|
// of the first variable, use "%0$s".
|
|
variable:[AndroidSimpleIntentGeneratorVariableType];
|
|
|
|
// The list of all conditions that need to be fulfilled for Intent generation.
|
|
condition:[AndroidSimpleIntentGeneratorCondition];
|
|
}
|
|
|
|
// Describes how intents should be generated for a particular entity type.
|
|
namespace libtextclassifier3.IntentFactoryModel_;
|
|
table IntentGenerator {
|
|
// The type of the intent generator, e.g. the entity type as defined by
|
|
// on the TextClassifier ENTITY_TYPE constants e.g. "address", "phone", etc.
|
|
type:string (shared);
|
|
|
|
// The template generator lua code, either as text source or precompiled
|
|
// bytecode.
|
|
lua_template_generator:[ubyte];
|
|
|
|
compressed_lua_template_generator:CompressedBuffer;
|
|
}
|
|
|
|
// Describes how intents for the various entity types should be generated.
|
|
namespace libtextclassifier3;
|
|
table IntentFactoryModel {
|
|
generator:[IntentFactoryModel_.IntentGenerator];
|
|
|
|
// Whether to precompile the generators when loading.
|
|
precompile_generators:bool = false;
|
|
}
|
|
|