Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaButtonReceiver.java

Issue 1431023004: [Media, Android] Fix lockscreen and other remote controls on KK- (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Handle invalid intent. Remove an else. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.media.ui; 5 package org.chromium.chrome.browser.media.ui;
6 6
7 import android.content.BroadcastReceiver; 7 import android.content.BroadcastReceiver;
8 import android.content.ComponentName; 8 import android.content.ComponentName;
9 import android.content.Context; 9 import android.content.Context;
10 import android.content.Intent; 10 import android.content.Intent;
11 import android.content.pm.PackageManager; 11 import android.content.pm.PackageManager;
12 import android.content.pm.ResolveInfo; 12 import android.content.pm.ResolveInfo;
13 13
14 import java.util.List; 14 import java.util.List;
15 15
16 /** 16 /**
17 * MediaButtonReceiver is a basic BroadcastReceiver class that receives 17 * MediaButtonReceiver is a basic BroadcastReceiver class that receives
18 * ACTION_MEDIA_BUTTON from a MediaSessionCompat. It then forward these intents 18 * ACTION_MEDIA_BUTTON from a MediaSessionCompat. It then forward these intents
19 * to the service listening to them. 19 * to the service listening to them.
20 * This is there for backward compatibility with JB_MR0 and JB_MR1. 20 * This is there for backward compatibility with JB_MR0 and JB_MR1.
21 */ 21 */
22 public class MediaButtonReceiver extends BroadcastReceiver { 22 public abstract class MediaButtonReceiver extends BroadcastReceiver {
23 private static final String LISTENER_SERVICE_CLASS_NAME = 23 private static final String LISTENER_SERVICE_CLASS_NAME =
24 "org.chromium.chrome.browser.media.ui" 24 "org.chromium.chrome.browser.media.ui"
25 + "MediaNotificationManager$ListenerService"; 25 + "MediaNotificationManager$ListenerService";
26 public static final String EXTRA_NOTIFICATION_ID =
27 "MediaNotificationManager.ListenerService.NOTIFICATION_ID";
28
29 public abstract int getNotificationId();
26 30
27 @Override 31 @Override
28 public void onReceive(Context context, Intent intent) { 32 public void onReceive(Context context, Intent intent) {
29 Intent queryIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); 33 Intent queryIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
30 queryIntent.setPackage(context.getPackageName()); 34 queryIntent.setPackage(context.getPackageName());
31 35
32 PackageManager pm = context.getPackageManager(); 36 PackageManager pm = context.getPackageManager();
33 List<ResolveInfo> infos = pm.queryIntentServices(queryIntent, 0); 37 List<ResolveInfo> infos = pm.queryIntentServices(queryIntent, 0);
34 assert infos.size() == 1; 38 assert infos.size() == 1;
35 39
36 ResolveInfo info = infos.get(0); 40 ResolveInfo info = infos.get(0);
37 ComponentName component = new ComponentName(info.serviceInfo.packageName , 41 ComponentName component = new ComponentName(info.serviceInfo.packageName ,
38 info.serviceInfo.name); 42 info.serviceInfo.name);
39 assert LISTENER_SERVICE_CLASS_NAME.equals(component.getClassName()); 43 assert LISTENER_SERVICE_CLASS_NAME.equals(component.getClassName());
40 44
41 intent.setComponent(component); 45 intent.setComponent(component);
46 intent.putExtra(EXTRA_NOTIFICATION_ID, getNotificationId());
42 context.startService(intent); 47 context.startService(intent);
43 } 48 }
44 } 49 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698