/* * Copyright (C) 2017 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.statusbar; import com.android.systemui.plugins.annotations.DependsOn; import com.android.systemui.plugins.annotations.ProvidesInterface; import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption; import android.service.notification.SnoozeCriterion; import android.service.notification.StatusBarNotification; import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; @ProvidesInterface(version = NotificationSwipeActionHelper.VERSION) @DependsOn(target = SnoozeOption.class) public interface NotificationSwipeActionHelper { public static final String ACTION = "com.android.systemui.action.PLUGIN_NOTIFICATION_SWIPE_ACTION"; public static final int VERSION = 1; /** * Call this to dismiss a notification. */ public void dismiss(View animView, float velocity); /** * Call this to snap a notification to provided {@code targetLeft}. */ public void snap(View animView, float velocity, float targetLeft); /** * Call this to snooze a notification based on the provided {@link SnoozeOption}. */ public void snooze(StatusBarNotification sbn, SnoozeOption snoozeOption); public float getMinDismissVelocity(); public boolean isDismissGesture(MotionEvent ev); public boolean isFalseGesture(MotionEvent ev); public boolean swipedFarEnough(float translation, float viewSize); public boolean swipedFastEnough(float translation, float velocity); @ProvidesInterface(version = SnoozeOption.VERSION) public interface SnoozeOption { public static final int VERSION = 2; public SnoozeCriterion getSnoozeCriterion(); public CharSequence getDescription(); public CharSequence getConfirmation(); public int getMinutesToSnoozeFor(); public AccessibilityAction getAccessibilityAction(); } }