blob: 0bb869649b35446edc616a29a5eda129e9099ba3 [file] [log] [blame]
// Copyright 2018 The Feed Authors.
//
// 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.
syntax = "proto2";
package search.now.ui.piet;
option optimize_for=LITE_RUNTIME;
option java_package = "com.google.search.now.ui.piet";
option java_outer_classname = "ActionsProto";
option cc_enable_arenas = true;
// Multiple actions can be associated with every UI element. To keep the set of
// Actions consistent among multiple UI elements, they’re all defined in a
// dedicated message.
message Actions {
// Action to be executed when the user taps (clicks) on a UI element.
optional Action on_click_action = 1;
// Action to be executed when the user long-clicks (taps & holds) a UI
// element.
optional Action on_long_click_action = 2;
// These actions will fire once a view with visibility below the threshold
// goes above the threshold
//
// Ex. A view action at 0.5 will trigger when a view that was less than half
// visible becomes half visible, and not trigger again until the view has
// become less than half visible (reset) and then becomes more than half
// visible.
repeated VisibilityAction on_view_actions = 3;
// These actions will fire once a view with visibility above the threshold
// goes below the threshold.
//
// Ex. A hide action at 0.5 will trigger when a view that was half visible
// becomes less than half visible, and not trigger again until the view has
// become more than half visible (reset) and then becomes less than half
// visible.
repeated VisibilityAction on_hide_actions = 4;
// Action to be executed when the user force touches on a UI element. May not
// be supported on all platforms.
//
// Ex. Preview the matching detail UI for a UI element with this action.
optional Action on_force_touch_action = 5;
}
// Defines an Action which can be raised when the user clicks a UI element. The
// action can be defined for the full slice or something inside a slice such as
// a suggestion chip. All Actions should be defined as extensions, don’t define
// fields in this proto directly.
message Action {
// Please use CL numbers you own for extension numbers.
extensions 10000 to max;
}
// Actions that trigger based on the proportion of the parent Element that is
// visible.
message VisibilityAction {
// Proportion of the view that should be visible for this action to trigger
// [0.0 to 1.0]
// Defaults to 1.0 to make this an "on full view" action.
optional float proportion_visible = 1 [default = 1.0];
// Action to trigger at the given visibility threshold
optional Action action = 2;
}