1 /* 2 * Copyright (C) 2017 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 15 package com.android.systemui.plugins.qs; 16 17 import android.content.Context; 18 19 import com.android.systemui.plugins.Plugin; 20 import com.android.systemui.plugins.annotations.DependsOn; 21 import com.android.systemui.plugins.annotations.ProvidesInterface; 22 23 /** 24 * Plugin that has the ability to create or override any part of 25 * QS tiles. 26 */ 27 @ProvidesInterface(action = QSFactory.ACTION, version = QSFactory.VERSION) 28 @DependsOn(target = QSTile.class) 29 @DependsOn(target = QSTileView.class) 30 public interface QSFactory extends Plugin { 31 32 String ACTION = "com.android.systemui.action.PLUGIN_QS_FACTORY"; 33 int VERSION = 2; 34 createTile(String tileSpec)35 QSTile createTile(String tileSpec); 36 37 /** 38 * Create a view for a tile. 39 * 40 * @param context a themed context for inflating the view 41 * @param tile the tile for which the view is created 42 * @param collapsedView {@code true} if the view will live in QQS and {@code false} otherwise. 43 * @return a view for the tile 44 */ createTileView(Context context, QSTile tile, boolean collapsedView)45 QSTileView createTileView(Context context, QSTile tile, boolean collapsedView); 46 47 } 48