NotificationChannelExtractor.java revision c861a3ddbc9b6cb193e71dbb5da6162d119e2e98
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