diff options
author | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 02:27:28 +0000 |
---|---|---|
committer | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 15:13:26 +0000 |
commit | a89168479cb14f482268af6f1a650b28eba0b393 (patch) | |
tree | 8552b9d49ecfad6a453ee5f743571b700b4d3d3c /location | |
parent | 8331d3e508498a19c296fed41b9d4b23ea960031 (diff) | |
parent | 25b5096f154721c8142d54f1b3af9e2998deffe9 (diff) | |
download | frameworks_base-a89168479cb14f482268af6f1a650b28eba0b393.zip frameworks_base-a89168479cb14f482268af6f1a650b28eba0b393.tar.gz frameworks_base-a89168479cb14f482268af6f1a650b28eba0b393.tar.bz2 |
Merge tag 'android-6.0.0_r26' into HEAD
Android 6.0.0 release 26
Conflicts:
cmds/bootanimation/BootAnimation.cpp
core/java/android/accounts/AccountManager.java
core/java/android/app/AppOpsManager.java
core/java/android/os/PowerManagerInternal.java
core/java/android/os/storage/IMountService.java
core/java/android/provider/Settings.java
core/java/com/android/internal/widget/ILockSettings.aidl
core/res/res/values-mcc204-mnc12/config.xml
core/res/res/values-mcc219-mnc02/config.xml
core/res/res/values-mcc730-mnc07/config.xml
core/res/res/values/config.xml
core/res/res/values/symbols.xml
packages/SystemUI/res/values/config.xml
packages/SystemUI/src/com/android/systemui/doze/DozeService.java
packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
services/core/java/com/android/server/LocationManagerService.java
services/core/java/com/android/server/am/ActivityManagerService.java
services/core/java/com/android/server/pm/PackageManagerService.java
services/core/java/com/android/server/power/PowerManagerService.java
telecomm/java/android/telecom/Phone.java
telephony/java/android/telephony/CarrierConfigManager.java
telephony/java/android/telephony/RadioAccessFamily.java
telephony/java/android/telephony/ServiceState.java
telephony/java/android/telephony/SignalStrength.java
telephony/java/android/telephony/TelephonyManager.java
telephony/java/com/android/ims/ImsCallProfile.java
telephony/java/com/android/ims/ImsReasonInfo.java
telephony/java/com/android/ims/ImsSuppServiceNotification.aidl
telephony/java/com/android/ims/ImsSuppServiceNotification.java
telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl
telephony/java/com/android/internal/telephony/RILConstants.java
Change-Id: I99c6edb8e25a77145b5adef97d0d55bfbe676959
Diffstat (limited to 'location')
3 files changed, 90 insertions, 14 deletions
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java index da33464..bc2dae1 100644 --- a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java @@ -31,8 +31,7 @@ import java.util.HashSet; */ public final class ActivityRecognitionProvider { private final IActivityRecognitionHardware mService; - private final HashSet<Sink> mSinkSet = new HashSet<Sink>(); - private final SinkTransport mSinkTransport = new SinkTransport(); + private final HashSet<Sink> mSinkSet = new HashSet<>(); // the following constants must remain in sync with activity_recognition.h @@ -43,6 +42,8 @@ public final class ActivityRecognitionProvider { public static final String ACTIVITY_STILL = "android.activity_recognition.still"; public static final String ACTIVITY_TILTING = "android.activity_recognition.tilting"; + // NOTE: when adding an additional EVENT_TYPE_, EVENT_TYPE_COUNT needs to be updated in + // android.hardware.location.ActivityRecognitionHardware public static final int EVENT_TYPE_FLUSH_COMPLETE = 0; public static final int EVENT_TYPE_ENTER = 1; public static final int EVENT_TYPE_EXIT = 2; @@ -60,7 +61,7 @@ public final class ActivityRecognitionProvider { throws RemoteException { Preconditions.checkNotNull(service); mService = service; - mService.registerSink(mSinkTransport); + mService.registerSink(new SinkTransport()); } public String[] getSupportedActivities() throws RemoteException { @@ -102,26 +103,23 @@ public final class ActivityRecognitionProvider { private final class SinkTransport extends IActivityRecognitionHardwareSink.Stub { @Override - public void onActivityChanged( - android.hardware.location.ActivityChangedEvent activityChangedEvent) { + public void onActivityChanged(android.hardware.location.ActivityChangedEvent event) { Collection<Sink> sinks; synchronized (mSinkSet) { if (mSinkSet.isEmpty()) { return; } - - sinks = new ArrayList<Sink>(mSinkSet); + sinks = new ArrayList<>(mSinkSet); } // translate the event from platform internal and GmsCore types - ArrayList<ActivityRecognitionEvent> gmsEvents = - new ArrayList<ActivityRecognitionEvent>(); - for (android.hardware.location.ActivityRecognitionEvent event - : activityChangedEvent.getActivityRecognitionEvents()) { + ArrayList<ActivityRecognitionEvent> gmsEvents = new ArrayList<>(); + for (android.hardware.location.ActivityRecognitionEvent reportingEvent + : event.getActivityRecognitionEvents()) { ActivityRecognitionEvent gmsEvent = new ActivityRecognitionEvent( - event.getActivity(), - event.getEventType(), - event.getTimestampNs()); + reportingEvent.getActivity(), + reportingEvent.getEventType(), + reportingEvent.getTimestampNs()); gmsEvents.add(gmsEvent); } ActivityChangedEvent gmsEvent = new ActivityChangedEvent(gmsEvents); diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java new file mode 100644 index 0000000..0b878d7 --- /dev/null +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.location.provider; + +import android.annotation.NonNull; +import android.hardware.location.IActivityRecognitionHardware; +import android.hardware.location.IActivityRecognitionHardwareClient; +import android.os.Binder; +import android.os.IBinder; +import android.os.Process; +import android.os.RemoteException; +import android.util.Log; + +/** + * A client class for interaction with an Activity-Recognition provider. + */ +public abstract class ActivityRecognitionProviderClient { + private static final String TAG = "ArProviderClient"; + + protected ActivityRecognitionProviderClient() {} + + private IActivityRecognitionHardwareClient.Stub mClient = + new IActivityRecognitionHardwareClient.Stub() { + @Override + public void onAvailabilityChanged( + boolean isSupported, + IActivityRecognitionHardware instance) { + int callingUid = Binder.getCallingUid(); + if (callingUid != Process.SYSTEM_UID) { + Log.d(TAG, "Ignoring calls from non-system server. Uid: " + callingUid); + return; + } + ActivityRecognitionProvider provider; + try { + provider = isSupported ? new ActivityRecognitionProvider(instance) : null; + } catch (RemoteException e) { + Log.e(TAG, "Error creating Hardware Activity-Recognition Provider.", e); + return; + } + onProviderChanged(isSupported, provider); + } + }; + + /** + * Gets the binder needed to interact with proxy provider in the platform. + */ + @NonNull + public IBinder getBinder() { + return mClient; + } + + /** + * Called when a change in the availability of {@link ActivityRecognitionProvider} is detected. + * + * @param isSupported whether the platform supports the provider natively + * @param instance the available provider's instance + */ + public abstract void onProviderChanged( + boolean isSupported, + ActivityRecognitionProvider instance); +} diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java index 03dd042..7139025 100644 --- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java @@ -28,7 +28,10 @@ import android.util.Log; /** * A watcher class for Activity-Recognition instances. + * + * @deprecated use {@link ActivityRecognitionProviderClient} instead. */ +@Deprecated public class ActivityRecognitionProviderWatcher { private static final String TAG = "ActivityRecognitionProviderWatcher"; |