1eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds/**
2eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* Copyright (C) 2017 The Android Open Source Project
3eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds*
4eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* Licensed under the Apache License, Version 2.0 (the "License");
5eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* you may not use this file except in compliance with the License.
6eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* You may obtain a copy of the License at
7eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds*
8eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds*      http://www.apache.org/licenses/LICENSE-2.0
9eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds*
10eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* Unless required by applicable law or agreed to in writing, software
11eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* distributed under the License is distributed on an "AS IS" BASIS,
12eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* See the License for the specific language governing permissions and
14eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds* limitations under the License.
15eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds*/
16eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynoldspackage com.android.server.notification;
17eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
18eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynoldsimport android.content.Context;
19eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynoldsimport android.util.Slog;
20eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
21eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds/**
22eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds * Stores the latest notification channel information for this notification
23eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds */
24eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynoldspublic class NotificationChannelExtractor implements NotificationSignalExtractor {
25b71ce8680cc7416c39412c4a2b1b634a0346956fKweku Adams    private static final String TAG = "ChannelExtractor";
26eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    private static final boolean DBG = false;
27eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
28eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    private RankingConfig mConfig;
29eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
30eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    public void initialize(Context ctx, NotificationUsageStats usageStats) {
31eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        if (DBG) Slog.d(TAG, "Initializing  " + getClass().getSimpleName() + ".");
32eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    }
33eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
34eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    public RankingReconsideration process(NotificationRecord record) {
35eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        if (record == null || record.getNotification() == null) {
36eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds            if (DBG) Slog.d(TAG, "skipping empty notification");
37eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds            return null;
38eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        }
39eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
40eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        if (mConfig == null) {
41eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds            if (DBG) Slog.d(TAG, "missing config");
42eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds            return null;
43eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        }
44eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
45eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        record.updateNotificationChannel(mConfig.getNotificationChannel(record.sbn.getPackageName(),
46eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds                record.sbn.getUid(), record.getChannel().getId(), false));
47eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
48eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        return null;
49eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    }
50eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds
51eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    @Override
52eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    public void setConfig(RankingConfig config) {
53eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds        mConfig = config;
54eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds    }
55c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds
56c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    @Override
57c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    public void setZenHelper(ZenModeHelper helper) {
58c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds
59c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    }
60eb3dca71b5df7fdf6299a3e65eb5d6fe8cb7bcbcJulia Reynolds}
61