15d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds/**
25d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* Copyright (C) 2015 The Android Open Source Project
35d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds*
45d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* Licensed under the Apache License, Version 2.0 (the "License");
55d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* you may not use this file except in compliance with the License.
65d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* You may obtain a copy of the License at
75d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds*
85d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds*      http://www.apache.org/licenses/LICENSE-2.0
95d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds*
105d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* Unless required by applicable law or agreed to in writing, software
115d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* distributed under the License is distributed on an "AS IS" BASIS,
125d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* See the License for the specific language governing permissions and
145d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds* limitations under the License.
155d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds*/
165d25ee7a006fda7150ba251cff92c27130611f88Julia Reynoldspackage com.android.server.notification;
175d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
185d25ee7a006fda7150ba251cff92c27130611f88Julia Reynoldsimport android.content.Context;
195d25ee7a006fda7150ba251cff92c27130611f88Julia Reynoldsimport android.util.Slog;
205d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
215d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds/**
225d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds * Determines the importance of the given notification.
235d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds */
24ef37f284364cc45c2ed91bfe04c489d2cedd32d2Julia Reynoldspublic class ImportanceExtractor implements NotificationSignalExtractor {
25b71ce8680cc7416c39412c4a2b1b634a0346956fKweku Adams    private static final String TAG = "ImportanceExtractor";
265d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    private static final boolean DBG = false;
275d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
285d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    private RankingConfig mConfig;
295d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
305d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    public void initialize(Context ctx, NotificationUsageStats usageStats) {
315d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        if (DBG) Slog.d(TAG, "Initializing  " + getClass().getSimpleName() + ".");
325d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    }
335d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
345d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    public RankingReconsideration process(NotificationRecord record) {
355d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        if (record == null || record.getNotification() == null) {
365d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds            if (DBG) Slog.d(TAG, "skipping empty notification");
375d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds            return null;
385d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        }
395d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
405d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        if (mConfig == null) {
415d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds            if (DBG) Slog.d(TAG, "missing config");
425d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds            return null;
435d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        }
44baff400fa5a93d157934818982fcf534327f9830Julia Reynolds        record.setUserImportance(record.getChannel().getImportance());
45baff400fa5a93d157934818982fcf534327f9830Julia Reynolds
465d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        return null;
475d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    }
485d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds
495d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    @Override
505d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    public void setConfig(RankingConfig config) {
515d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds        mConfig = config;
525d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds    }
53c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds
54c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    @Override
55c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    public void setZenHelper(ZenModeHelper helper) {
56c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds
57c861a3ddbc9b6cb193e71dbb5da6162d119e2e98Julia Reynolds    }
585d25ee7a006fda7150ba251cff92c27130611f88Julia Reynolds}
59