Home | History | Annotate | Download | only in statusbar
      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.statusbar;
     16 
     17 import android.content.pm.UserInfo;
     18 import android.util.SparseArray;
     19 
     20 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
     21 
     22 public interface NotificationLockscreenUserManager {
     23     String PERMISSION_SELF = "com.android.systemui.permission.SELF";
     24     String NOTIFICATION_UNLOCKED_BY_WORK_CHALLENGE_ACTION
     25             = "com.android.systemui.statusbar.work_challenge_unlocked_notification_action";
     26 
     27     boolean shouldAllowLockscreenRemoteInput();
     28 
     29     /**
     30      * @param userId user Id
     31      * @return true if we re on a secure lock screen
     32      */
     33     boolean isLockscreenPublicMode(int userId);
     34 
     35     /**
     36      * Does a user require a separate work challenge? If so, the unlock mechanism is decoupled from
     37      * the current user and has to be solved separately.
     38      */
     39     default boolean needsSeparateWorkChallenge(int userId) {
     40         return false;
     41     }
     42 
     43     void setUpWithPresenter(NotificationPresenter presenter);
     44 
     45     int getCurrentUserId();
     46 
     47     boolean isCurrentProfile(int userId);
     48 
     49     /** Adds a listener to be notified when the current user changes. */
     50     void addUserChangedListener(UserChangedListener listener);
     51 
     52     SparseArray<UserInfo> getCurrentProfiles();
     53 
     54     void setLockscreenPublicMode(boolean isProfilePublic, int userId);
     55 
     56     boolean shouldShowLockscreenNotifications();
     57 
     58     boolean shouldHideNotifications(int userId);
     59     boolean shouldHideNotifications(String key);
     60     boolean shouldShowOnKeyguard(NotificationEntry entry);
     61 
     62     boolean isAnyProfilePublicMode();
     63 
     64     void updatePublicMode();
     65 
     66     boolean needsRedaction(NotificationEntry entry);
     67 
     68     boolean userAllowsPrivateNotificationsInPublic(int currentUserId);
     69 
     70     /** Notified when the current user changes. */
     71     interface UserChangedListener {
     72         void onUserChanged(int userId);
     73     }
     74 }
     75