blob: 7b7657a3d646ec1c2a29fd20f51dcc0ed817ab76 [file] [log] [blame]
/*
* 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.
*/
package com.android.systemui.plugins;
import android.graphics.Bitmap;
import android.graphics.Paint.Style;
import android.view.View;
import com.android.systemui.plugins.annotations.ProvidesInterface;
import java.util.TimeZone;
/**
* Plugin used to replace main clock in keyguard.
*/
@ProvidesInterface(action = ClockPlugin.ACTION, version = ClockPlugin.VERSION)
public interface ClockPlugin extends Plugin {
String ACTION = "com.android.systemui.action.PLUGIN_CLOCK";
int VERSION = 2;
/**
* Get the name of the clock face.
*
* This name should not be translated.
*/
String getName();
/**
* Get the title of the clock face to be shown in the picker app.
*/
String getTitle();
/**
* Get thumbnail of clock face to be shown in the picker app.
*/
Bitmap getThumbnail();
/**
* Get clock view.
* @return clock view from plugin.
*/
View getView();
/**
* Get clock view for a large clock that appears behind NSSL.
*/
default View getBigClockView() {
return null;
}
/**
* Set clock paint style.
* @param style The new style to set in the paint.
*/
void setStyle(Style style);
/**
* Set clock text color.
* @param color A color value.
*/
void setTextColor(int color);
/**
* Sets the color palette for the clock face.
* @param supportsDarkText Whether dark text can be displayed.
* @param colors Colors that should be used on the clock face, ordered from darker to lighter.
*/
default void setColorPalette(boolean supportsDarkText, int[] colors) {}
/**
* Set the amount (ratio) that the device has transitioned to doze.
* @param darkAmount Amount of transition to doze: 1f for doze and 0f for awake.
*/
default void setDarkAmount(float darkAmount) {}
/**
* Notifies that time tick alarm from doze service fired.
*
* Implement this method instead of registering a broadcast listener for TIME_TICK.
*/
default void onTimeTick() {}
/**
* Notifies that the time zone has changed.
*
* Implement this method instead of registering a broadcast listener for TIME_ZONE_CHANGED.
*/
default void onTimeZoneChanged(TimeZone timeZone) {}
/**
* Indicates whether the keyguard status area (date) should be shown below
* the clock.
*/
default boolean shouldShowStatusArea() {
return true;
}
}