1/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 *      http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15package com.android.systemui.plugins;
16
17import com.android.systemui.plugins.annotations.ProvidesInterface;
18
19import android.content.Intent;
20import android.graphics.drawable.Drawable;
21
22/**
23 * An Intent Button represents a triggerable element in SysUI that consists of an
24 * Icon and an intent to trigger when it is activated (clicked, swiped, etc.).
25 */
26@ProvidesInterface(version = IntentButtonProvider.VERSION)
27public interface IntentButtonProvider extends Plugin {
28
29    public static final int VERSION = 1;
30
31    public IntentButton getIntentButton();
32
33    public interface IntentButton {
34        public static class IconState {
35            public boolean isVisible = true;
36            public CharSequence contentDescription = null;
37            public Drawable drawable;
38            public boolean tint = true;
39        }
40
41        public IconState getIcon();
42
43        public Intent getIntent();
44    }
45}
46