1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.statusbar.notification.init
18 
19 import android.service.notification.StatusBarNotification
20 import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption
21 import com.android.systemui.statusbar.NotificationListener
22 import com.android.systemui.statusbar.NotificationPresenter
23 import com.android.systemui.statusbar.notification.NotificationActivityStarter
24 import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
25 import com.android.systemui.statusbar.notification.stack.NotificationListContainer
26 import com.android.systemui.statusbar.phone.StatusBar
27 import java.io.FileDescriptor
28 import java.io.PrintWriter
29 import javax.inject.Inject
30 
31 /**
32  * Implementation of [NotificationsController] that's used when notifications rendering is disabled.
33  */
34 class NotificationsControllerStub @Inject constructor(
35     private val notificationListener: NotificationListener
36 ) : NotificationsController {
37 
initializenull38     override fun initialize(
39         statusBar: StatusBar,
40         presenter: NotificationPresenter,
41         listContainer: NotificationListContainer,
42         notificationActivityStarter: NotificationActivityStarter,
43         bindRowCallback: NotificationRowBinderImpl.BindRowCallback
44     ) {
45         // Always connect the listener even if notification-handling is disabled. Being a listener
46         // grants special permissions and it's not clear if other things will break if we lose those
47         notificationListener.registerAsSystemService()
48     }
49 
requestNotificationUpdatenull50     override fun requestNotificationUpdate(reason: String) {
51     }
52 
resetUserExpandedStatesnull53     override fun resetUserExpandedStates() {
54     }
55 
setNotificationSnoozednull56     override fun setNotificationSnoozed(sbn: StatusBarNotification, snoozeOption: SnoozeOption) {
57     }
58 
setNotificationSnoozednull59     override fun setNotificationSnoozed(sbn: StatusBarNotification, hoursToSnooze: Int) {
60     }
61 
getActiveNotificationsCountnull62     override fun getActiveNotificationsCount(): Int {
63         return 0
64     }
65 
dumpnull66     override fun dump(
67         fd: FileDescriptor,
68         pw: PrintWriter,
69         args: Array<String>,
70         dumpTruck: Boolean
71     ) {
72         pw.println()
73         pw.println("Notification handling disabled")
74         pw.println()
75     }
76 }