ServiceIntentSender.java revision d3c6dd1522dc9b08476b70c4f6923f4debff78ee
1fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono/* 2fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * Copyright (C) 2016 The Android Open Source Project 3fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * 4fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * Licensed under the Apache License, Version 2.0 (the "License"); 5fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * you may not use this file except in compliance with the License. 6fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * You may obtain a copy of the License at 7fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * 8fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * http://www.apache.org/licenses/LICENSE-2.0 9fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * 10fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * Unless required by applicable law or agreed to in writing, software 11fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * distributed under the License is distributed on an "AS IS" BASIS, 12fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * See the License for the specific language governing permissions and 14fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * limitations under the License. 15fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono */ 16fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono 17fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hironopackage com.android.mtp; 18fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono 19d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hironoimport android.annotation.Nullable; 20d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hironoimport android.app.NotificationManager; 21fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hironoimport android.content.ComponentName; 22fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hironoimport android.content.Context; 23fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hironoimport android.content.Intent; 24fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono 25fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono/** 26fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono * Sends intent to MtpDocumentsService. 27fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono */ 28fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hironoclass ServiceIntentSender { 29fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono private Context mContext; 30fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono 31fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono ServiceIntentSender(Context context) { 32fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono mContext = context; 33fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono } 34fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono 35d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono /** 36d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono * Notify the change of opened device set. 37d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono * @param record If a new device is opened, pass the device record. If a device is closed, pass 38d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono * null. 39d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono */ 40d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono void sendUpdateNotificationIntent(@Nullable MtpDeviceRecord record) { 41fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono final Intent intent = new Intent(MtpDocumentsService.ACTION_UPDATE_NOTIFICATION); 42fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono intent.setComponent(new ComponentName(mContext, MtpDocumentsService.class)); 43d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono final NotificationManager manager = mContext.getSystemService(NotificationManager.class); 44d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono if (record != null) { 45d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono manager.startServiceInForeground( 46d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono intent, 47d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono record.deviceId, 48d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono MtpDocumentsService.createNotification(mContext, record)); 49d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono } else { 50d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono mContext.startService(intent); 51d3c6dd1522dc9b08476b70c4f6923f4debff78eeDaichi Hirono } 52fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono } 53fda7474c5faae1e36a9274d8a5fe83e42ec6503bDaichi Hirono} 54