Merge "Remove Activity Recognition from the Android Code."
diff --git a/Android.bp b/Android.bp
index aac95cc..f032e62 100644
--- a/Android.bp
+++ b/Android.bp
@@ -191,10 +191,6 @@
"core/java/android/hardware/input/IInputDevicesChangedListener.aidl",
"core/java/android/hardware/input/ITabletModeChangedListener.aidl",
"core/java/android/hardware/iris/IIrisService.aidl",
- "core/java/android/hardware/location/IActivityRecognitionHardware.aidl",
- "core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl",
- "core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl",
- "core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl",
"core/java/android/hardware/location/IGeofenceHardware.aidl",
"core/java/android/hardware/location/IGeofenceHardwareCallback.aidl",
"core/java/android/hardware/location/IGeofenceHardwareMonitorCallback.aidl",
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index c2e441b..3ec0db4 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -2768,11 +2768,6 @@
HPLandroid/hardware/location/GeofenceHardwareService$1;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
HPLandroid/hardware/location/GeofenceHardwareService$1;->removeGeofence(II)Z
HPLandroid/hardware/location/GeofenceHardwareService;->checkPermission(III)V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareClient;
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
HPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder;
HPLandroid/hardware/location/IContextHubCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HPLandroid/hardware/location/IContextHubService$Stub$Proxy;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
@@ -21782,7 +21777,6 @@
HSPLandroid/hardware/input/TouchCalibration$1;-><init>()V
HSPLandroid/hardware/input/TouchCalibration;-><init>()V
HSPLandroid/hardware/input/TouchCalibration;->getAffineTransform()[F
-HSPLandroid/hardware/location/ActivityRecognitionHardware;->isSupported()Z
HSPLandroid/hardware/location/ContextHubInfo$1;-><init>()V
HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/hardware/contexthub/V1_0/ContextHub;)V
HSPLandroid/hardware/location/ContextHubMessage$1;-><init>()V
@@ -21802,13 +21796,6 @@
HSPLandroid/hardware/location/GeofenceHardwareService;-><init>()V
HSPLandroid/hardware/location/GeofenceHardwareService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
HSPLandroid/hardware/location/GeofenceHardwareService;->onCreate()V
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->disableActivityEvent(Ljava/lang/String;I)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->enableActivityEvent(Ljava/lang/String;IJ)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->flush()Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->getSupportedActivities()[Ljava/lang/String;
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->isActivitySupported(Ljava/lang/String;)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->registerSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->unregisterSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
HSPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
HSPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
HSPLandroid/hardware/location/IContextHubCallback;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
@@ -55650,7 +55637,6 @@
Landroid/hardware/input/KeyboardLayout$1;
Landroid/hardware/input/TouchCalibration$1;
Landroid/hardware/input/TouchCalibration;
-Landroid/hardware/location/ActivityRecognitionHardware;
Landroid/hardware/location/ContextHubInfo$1;
Landroid/hardware/location/ContextHubInfo;
Landroid/hardware/location/ContextHubManager;
@@ -55666,11 +55652,6 @@
Landroid/hardware/location/GeofenceHardwareRequestParcelable$1;
Landroid/hardware/location/GeofenceHardwareService$1;
Landroid/hardware/location/GeofenceHardwareService;
-Landroid/hardware/location/IActivityRecognitionHardware$Stub;
-Landroid/hardware/location/IActivityRecognitionHardware;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;
-Landroid/hardware/location/IActivityRecognitionHardwareClient;
Landroid/hardware/location/IContextHubCallback$Stub$Proxy;
Landroid/hardware/location/IContextHubCallback;
Landroid/hardware/location/IContextHubClient$Stub;
diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt
index 02eff0b6..13f8dd9 100644
--- a/config/hiddenapi-greylist.txt
+++ b/config/hiddenapi-greylist.txt
@@ -462,8 +462,6 @@
Landroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_injectInputEvent:I
Landroid/hardware/input/IInputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
-Landroid/hardware/location/IActivityRecognitionHardwareClient;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
Landroid/hardware/location/IContextHubService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubService;
Landroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
diff --git a/config/preloaded-classes b/config/preloaded-classes
index c8a2a9c..cd798ad 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -1405,10 +1405,7 @@
android.hardware.input.InputManager$InputDeviceListener
android.hardware.input.InputManager$InputDeviceListenerDelegate
android.hardware.input.InputManager$InputDevicesChangedListener
-android.hardware.location.ActivityRecognitionHardware
android.hardware.location.ContextHubManager
-android.hardware.location.IActivityRecognitionHardware
-android.hardware.location.IActivityRecognitionHardware$Stub
android.hardware.radio.RadioManager
android.hardware.soundtrigger.SoundTrigger
android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
diff --git a/core/java/android/hardware/location/ActivityChangedEvent.aidl b/core/java/android/hardware/location/ActivityChangedEvent.aidl
deleted file mode 100644
index 21f2445..0000000
--- a/core/java/android/hardware/location/ActivityChangedEvent.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2014 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 android.hardware.location;
-
-parcelable ActivityChangedEvent;
\ No newline at end of file
diff --git a/core/java/android/hardware/location/ActivityChangedEvent.java b/core/java/android/hardware/location/ActivityChangedEvent.java
deleted file mode 100644
index 16cfe6e..0000000
--- a/core/java/android/hardware/location/ActivityChangedEvent.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2014 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 android.hardware.location;
-
-import android.annotation.NonNull;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import java.security.InvalidParameterException;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A class representing an event for Activity changes.
- *
- * @hide
- */
-public class ActivityChangedEvent implements Parcelable {
- private final List<ActivityRecognitionEvent> mActivityRecognitionEvents;
-
- public ActivityChangedEvent(ActivityRecognitionEvent[] activityRecognitionEvents) {
- if (activityRecognitionEvents == null) {
- throw new InvalidParameterException(
- "Parameter 'activityRecognitionEvents' must not be null.");
- }
-
- mActivityRecognitionEvents = Arrays.asList(activityRecognitionEvents);
- }
-
- @NonNull
- public Iterable<ActivityRecognitionEvent> getActivityRecognitionEvents() {
- return mActivityRecognitionEvents;
- }
-
- public static final Creator<ActivityChangedEvent> CREATOR =
- new Creator<ActivityChangedEvent>() {
- @Override
- public ActivityChangedEvent createFromParcel(Parcel source) {
- int activityRecognitionEventsLength = source.readInt();
- ActivityRecognitionEvent[] activityRecognitionEvents =
- new ActivityRecognitionEvent[activityRecognitionEventsLength];
- source.readTypedArray(activityRecognitionEvents, ActivityRecognitionEvent.CREATOR);
-
- return new ActivityChangedEvent(activityRecognitionEvents);
- }
-
- @Override
- public ActivityChangedEvent[] newArray(int size) {
- return new ActivityChangedEvent[size];
- }
- };
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel parcel, int flags) {
- ActivityRecognitionEvent[] activityRecognitionEventArray =
- mActivityRecognitionEvents.toArray(new ActivityRecognitionEvent[0]);
- parcel.writeInt(activityRecognitionEventArray.length);
- parcel.writeTypedArray(activityRecognitionEventArray, flags);
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder("[ ActivityChangedEvent:");
-
- for (ActivityRecognitionEvent event : mActivityRecognitionEvents) {
- builder.append("\n ");
- builder.append(event.toString());
- }
- builder.append("\n]");
-
- return builder.toString();
- }
-}
diff --git a/core/java/android/hardware/location/ActivityRecognitionEvent.java b/core/java/android/hardware/location/ActivityRecognitionEvent.java
deleted file mode 100644
index 190030a..0000000
--- a/core/java/android/hardware/location/ActivityRecognitionEvent.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2014 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 android.hardware.location;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * A class that represents an Activity Recognition Event.
- *
- * @hide
- */
-public class ActivityRecognitionEvent implements Parcelable {
- private final String mActivity;
- private final int mEventType;
- private final long mTimestampNs;
-
- public ActivityRecognitionEvent(String activity, int eventType, long timestampNs) {
- mActivity = activity;
- mEventType = eventType;
- mTimestampNs = timestampNs;
- }
-
- public String getActivity() {
- return mActivity;
- }
-
- public int getEventType() {
- return mEventType;
- }
-
- public long getTimestampNs() {
- return mTimestampNs;
- }
-
- public static final Creator<ActivityRecognitionEvent> CREATOR =
- new Creator<ActivityRecognitionEvent>() {
- @Override
- public ActivityRecognitionEvent createFromParcel(Parcel source) {
- String activity = source.readString();
- int eventType = source.readInt();
- long timestampNs = source.readLong();
-
- return new ActivityRecognitionEvent(activity, eventType, timestampNs);
- }
-
- @Override
- public ActivityRecognitionEvent[] newArray(int size) {
- return new ActivityRecognitionEvent[size];
- }
- };
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel parcel, int flags) {
- parcel.writeString(mActivity);
- parcel.writeInt(mEventType);
- parcel.writeLong(mTimestampNs);
- }
-
- @Override
- public String toString() {
- return String.format(
- "Activity='%s', EventType=%s, TimestampNs=%s",
- mActivity,
- mEventType,
- mTimestampNs);
- }
-}
diff --git a/core/java/android/hardware/location/ActivityRecognitionHardware.java b/core/java/android/hardware/location/ActivityRecognitionHardware.java
deleted file mode 100644
index 8acd1ff..0000000
--- a/core/java/android/hardware/location/ActivityRecognitionHardware.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) 2014 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 android.hardware.location;
-
-import android.Manifest;
-import android.content.Context;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.text.TextUtils;
-import android.util.Log;
-
-/**
- * A class that implements an {@link IActivityRecognitionHardware} backed up by the Activity
- * Recognition HAL.
- *
- * @hide
- */
-public class ActivityRecognitionHardware extends IActivityRecognitionHardware.Stub {
- private static final String TAG = "ActivityRecognitionHW";
- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
- private static final String HARDWARE_PERMISSION = Manifest.permission.LOCATION_HARDWARE;
- private static final String ENFORCE_HW_PERMISSION_MESSAGE = "Permission '"
- + HARDWARE_PERMISSION + "' not granted to access ActivityRecognitionHardware";
-
- private static final int INVALID_ACTIVITY_TYPE = -1;
- private static final int NATIVE_SUCCESS_RESULT = 0;
- private static final int EVENT_TYPE_DISABLED = 0;
- private static final int EVENT_TYPE_ENABLED = 1;
-
- /**
- * Contains the number of supported Event Types.
- *
- * NOTE: increment this counter every time a new EVENT_TYPE_ is added to
- * com.android.location.provider.ActivityRecognitionProvider
- */
- private static final int EVENT_TYPE_COUNT = 3;
-
- private static ActivityRecognitionHardware sSingletonInstance;
- private static final Object sSingletonInstanceLock = new Object();
-
- private final Context mContext;
- private final int mSupportedActivitiesCount;
- private final String[] mSupportedActivities;
- private final int[][] mSupportedActivitiesEnabledEvents;
- private final SinkList mSinks = new SinkList();
-
- private static class Event {
- public int activity;
- public int type;
- public long timestamp;
- }
-
- private ActivityRecognitionHardware(Context context) {
- nativeInitialize();
-
- mContext = context;
- mSupportedActivities = fetchSupportedActivities();
- mSupportedActivitiesCount = mSupportedActivities.length;
- mSupportedActivitiesEnabledEvents = new int[mSupportedActivitiesCount][EVENT_TYPE_COUNT];
- }
-
- public static ActivityRecognitionHardware getInstance(Context context) {
- synchronized (sSingletonInstanceLock) {
- if (sSingletonInstance == null) {
- sSingletonInstance = new ActivityRecognitionHardware(context);
- }
-
- return sSingletonInstance;
- }
- }
-
- public static boolean isSupported() {
- return nativeIsSupported();
- }
-
- @Override
- public String[] getSupportedActivities() {
- checkPermissions();
- return mSupportedActivities;
- }
-
- @Override
- public boolean isActivitySupported(String activity) {
- checkPermissions();
- int activityType = getActivityType(activity);
- return activityType != INVALID_ACTIVITY_TYPE;
- }
-
- @Override
- public boolean registerSink(IActivityRecognitionHardwareSink sink) {
- checkPermissions();
- return mSinks.register(sink);
- }
-
- @Override
- public boolean unregisterSink(IActivityRecognitionHardwareSink sink) {
- checkPermissions();
- return mSinks.unregister(sink);
- }
-
- @Override
- public boolean enableActivityEvent(String activity, int eventType, long reportLatencyNs) {
- checkPermissions();
-
- int activityType = getActivityType(activity);
- if (activityType == INVALID_ACTIVITY_TYPE) {
- return false;
- }
-
- int result = nativeEnableActivityEvent(activityType, eventType, reportLatencyNs);
- if (result == NATIVE_SUCCESS_RESULT) {
- mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_ENABLED;
- return true;
- }
- return false;
- }
-
- @Override
- public boolean disableActivityEvent(String activity, int eventType) {
- checkPermissions();
-
- int activityType = getActivityType(activity);
- if (activityType == INVALID_ACTIVITY_TYPE) {
- return false;
- }
-
- int result = nativeDisableActivityEvent(activityType, eventType);
- if (result == NATIVE_SUCCESS_RESULT) {
- mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED;
- return true;
- }
- return false;
- }
-
- @Override
- public boolean flush() {
- checkPermissions();
- int result = nativeFlush();
- return result == NATIVE_SUCCESS_RESULT;
- }
-
- /**
- * Called by the Activity-Recognition HAL.
- */
- private void onActivityChanged(Event[] events) {
- if (events == null || events.length == 0) {
- if (DEBUG) Log.d(TAG, "No events to broadcast for onActivityChanged.");
- return;
- }
-
- int eventsLength = events.length;
- ActivityRecognitionEvent activityRecognitionEventArray[] =
- new ActivityRecognitionEvent[eventsLength];
- for (int i = 0; i < eventsLength; ++i) {
- Event event = events[i];
- String activityName = getActivityName(event.activity);
- activityRecognitionEventArray[i] =
- new ActivityRecognitionEvent(activityName, event.type, event.timestamp);
- }
- ActivityChangedEvent activityChangedEvent =
- new ActivityChangedEvent(activityRecognitionEventArray);
-
- int size = mSinks.beginBroadcast();
- for (int i = 0; i < size; ++i) {
- IActivityRecognitionHardwareSink sink = mSinks.getBroadcastItem(i);
- try {
- sink.onActivityChanged(activityChangedEvent);
- } catch (RemoteException e) {
- Log.e(TAG, "Error delivering activity changed event.", e);
- }
- }
- mSinks.finishBroadcast();
- }
-
- private String getActivityName(int activityType) {
- if (activityType < 0 || activityType >= mSupportedActivities.length) {
- String message = String.format(
- "Invalid ActivityType: %d, SupportedActivities: %d",
- activityType,
- mSupportedActivities.length);
- Log.e(TAG, message);
- return null;
- }
-
- return mSupportedActivities[activityType];
- }
-
- private int getActivityType(String activity) {
- if (TextUtils.isEmpty(activity)) {
- return INVALID_ACTIVITY_TYPE;
- }
-
- int supportedActivitiesLength = mSupportedActivities.length;
- for (int i = 0; i < supportedActivitiesLength; ++i) {
- if (activity.equals(mSupportedActivities[i])) {
- return i;
- }
- }
-
- return INVALID_ACTIVITY_TYPE;
- }
-
- private void checkPermissions() {
- mContext.enforceCallingPermission(HARDWARE_PERMISSION, ENFORCE_HW_PERMISSION_MESSAGE);
- }
-
- private String[] fetchSupportedActivities() {
- String[] supportedActivities = nativeGetSupportedActivities();
- if (supportedActivities != null) {
- return supportedActivities;
- }
-
- return new String[0];
- }
-
- private class SinkList extends RemoteCallbackList<IActivityRecognitionHardwareSink> {
- @Override
- public void onCallbackDied(IActivityRecognitionHardwareSink callback) {
- int callbackCount = mSinks.getRegisteredCallbackCount();
- if (DEBUG) Log.d(TAG, "RegisteredCallbackCount: " + callbackCount);
- if (callbackCount != 0) {
- return;
- }
- // currently there is only one client for this, so if all its sinks have died, we clean
- // up after them, this ensures that the AR HAL is not out of sink
- for (int activity = 0; activity < mSupportedActivitiesCount; ++activity) {
- for (int event = 0; event < EVENT_TYPE_COUNT; ++event) {
- disableActivityEventIfEnabled(activity, event);
- }
- }
- }
-
- private void disableActivityEventIfEnabled(int activityType, int eventType) {
- if (mSupportedActivitiesEnabledEvents[activityType][eventType] != EVENT_TYPE_ENABLED) {
- return;
- }
-
- int result = nativeDisableActivityEvent(activityType, eventType);
- mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED;
- String message = String.format(
- "DisableActivityEvent: activityType=%d, eventType=%d, result=%d",
- activityType,
- eventType,
- result);
- Log.e(TAG, message);
- }
- }
-
- // native bindings
- static { nativeClassInit(); }
-
- private static native void nativeClassInit();
- private static native boolean nativeIsSupported();
-
- private native void nativeInitialize();
- private native void nativeRelease();
- private native String[] nativeGetSupportedActivities();
- private native int nativeEnableActivityEvent(
- int activityType,
- int eventType,
- long reportLatenceNs);
- private native int nativeDisableActivityEvent(int activityType, int eventType);
- private native int nativeFlush();
-}
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardware.aidl b/core/java/android/hardware/location/IActivityRecognitionHardware.aidl
deleted file mode 100644
index bc6b183..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardware.aidl
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2014, 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/license/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 android.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardwareSink;
-
-/**
- * Activity Recognition Hardware provider interface.
- * This interface can be used to implement hardware based activity recognition.
- *
- * @hide
- */
-interface IActivityRecognitionHardware {
- /**
- * Gets an array of supported activities by hardware.
- */
- String[] getSupportedActivities();
-
- /**
- * Returns true if the given activity is supported, false otherwise.
- */
- boolean isActivitySupported(in String activityType);
-
- /**
- * Registers a sink with Hardware Activity-Recognition.
- */
- boolean registerSink(in IActivityRecognitionHardwareSink sink);
-
- /**
- * Unregisters a sink with Hardware Activity-Recognition.
- */
- boolean unregisterSink(in IActivityRecognitionHardwareSink sink);
-
- /**
- * Enables tracking of a given activity/event type, if the activity is supported.
- */
- boolean enableActivityEvent(in String activityType, int eventType, long reportLatencyNs);
-
- /**
- * Disables tracking of a given activity/eventy type.
- */
- boolean disableActivityEvent(in String activityType, int eventType);
-
- /**
- * Requests hardware for all the activity events detected up to the given point in time.
- */
- boolean flush();
-}
\ No newline at end of file
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl
deleted file mode 100644
index 3fe645c..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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/license/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 android.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardware;
-
-/**
- * Activity Recognition Hardware client interface.
- * This interface can be used to receive interfaces to implementations of
- * {@link IActivityRecognitionHardware}.
- *
- * @hide
- */
-oneway interface IActivityRecognitionHardwareClient {
- /**
- * Hardware Activity-Recognition availability event.
- *
- * @param isSupported whether the platform has hardware support for the feature
- * @param instance the available instance to provide access to the feature
- */
- void onAvailabilityChanged(in boolean isSupported, in IActivityRecognitionHardware instance);
-}
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl
deleted file mode 100644
index 21c8e87..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2014, 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/license/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 android.hardware.location;
-
-import android.hardware.location.ActivityChangedEvent;
-
-/**
- * Activity Recognition Hardware provider Sink interface.
- * This interface can be used to implement sinks to receive activity notifications.
- *
- * @hide
- */
-interface IActivityRecognitionHardwareSink {
- /**
- * Activity changed event.
- */
- void onActivityChanged(in ActivityChangedEvent event);
-}
\ No newline at end of file
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl
deleted file mode 100644
index 12e3117..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2014, 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/license/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 android.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardware;
-
-/**
- * Activity Recognition Hardware watcher. This interface can be used to receive interfaces to
- * implementations of {@link IActivityRecognitionHardware}.
- *
- * @deprecated use {@link IActivityRecognitionHardwareClient} instead.
-
- * @hide
- */
-interface IActivityRecognitionHardwareWatcher {
- /**
- * Hardware Activity-Recognition availability event.
- */
- void onInstanceChanged(in IActivityRecognitionHardware instance);
-}
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 088e13f..5be70ef 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -185,7 +185,6 @@
"android_hardware_UsbDevice.cpp",
"android_hardware_UsbDeviceConnection.cpp",
"android_hardware_UsbRequest.cpp",
- "android_hardware_location_ActivityRecognitionHardware.cpp",
"android_util_FileObserver.cpp",
"android/opengl/poly_clip.cpp", // TODO: .arm
"android/opengl/util.cpp",
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 1092222..a586dc1 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -101,7 +101,6 @@
extern int register_android_hardware_UsbDevice(JNIEnv *env);
extern int register_android_hardware_UsbDeviceConnection(JNIEnv *env);
extern int register_android_hardware_UsbRequest(JNIEnv *env);
-extern int register_android_hardware_location_ActivityRecognitionHardware(JNIEnv* env);
extern int register_android_media_AudioEffectDescriptor(JNIEnv *env);
extern int register_android_media_AudioRecord(JNIEnv *env);
@@ -1457,7 +1456,6 @@
REG_JNI(register_android_hardware_UsbDevice),
REG_JNI(register_android_hardware_UsbDeviceConnection),
REG_JNI(register_android_hardware_UsbRequest),
- REG_JNI(register_android_hardware_location_ActivityRecognitionHardware),
REG_JNI(register_android_media_AudioEffectDescriptor),
REG_JNI(register_android_media_AudioSystem),
REG_JNI(register_android_media_AudioRecord),
diff --git a/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp b/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp
deleted file mode 100644
index 1c9ab94..0000000
--- a/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2014, 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.
- */
-
-#define LOG_TAG "ActivityRecognitionHardware"
-
-#include <jni.h>
-#include <nativehelper/JNIHelp.h>
-
-#include <android_runtime/AndroidRuntime.h>
-#include <android_runtime/Log.h>
-
-// #include <hardware/activity_recognition.h>
-// The activity recognition HAL is being deprecated. This means -
-// i) Android framework code shall not depend on activity recognition
-// being provided through the activity_recognition.h interface.
-// ii) activity recognition HAL will not be binderized as the other HALs.
-//
-
-/**
- * Initializes the ActivityRecognitionHardware class from the native side.
- */
-static void class_init(JNIEnv* /*env*/, jclass /*clazz*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
-}
-
-/**
- * Initializes and connect the callbacks handlers in the HAL.
- */
-static void initialize(JNIEnv* /*env*/, jobject /*obj*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
-}
-
-/**
- * De-initializes the ActivityRecognitionHardware from the native side.
- */
-static void release(JNIEnv* /*env*/, jobject /*obj*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
-}
-
-/**
- * Returns true if ActivityRecognition HAL is supported, false otherwise.
- */
-static jboolean is_supported(JNIEnv* /*env*/, jclass /*clazz*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
- return JNI_FALSE;
-}
-
-/**
- * Gets an array representing the supported activities.
- */
-static jobjectArray get_supported_activities(JNIEnv* /*env*/, jobject /*obj*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
- return NULL;
-}
-
-/**
- * Enables a given activity event to be actively monitored.
- */
-static int enable_activity_event(
- JNIEnv* /*env*/,
- jobject /*obj*/,
- jint /*activity_handle*/,
- jint /*event_type*/,
- jlong /*report_latency_ns*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
- return android::NO_INIT;
-}
-
-/**
- * Disables a given activity event from being actively monitored.
- */
-static int disable_activity_event(
- JNIEnv* /*env*/,
- jobject /*obj*/,
- jint /*activity_handle*/,
- jint /*event_type*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
- return android::NO_INIT;
-}
-
-/**
- * Request flush for al batch buffers.
- */
-static int flush(JNIEnv* /*env*/, jobject /*obj*/) {
- ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
- __FUNCTION__);
- return android::NO_INIT;
-}
-
-
-static const JNINativeMethod sMethods[] = {
- // {"name", "signature", (void*) functionPointer },
- { "nativeClassInit", "()V", (void*) class_init },
- { "nativeInitialize", "()V", (void*) initialize },
- { "nativeRelease", "()V", (void*) release },
- { "nativeIsSupported", "()Z", (void*) is_supported },
- { "nativeGetSupportedActivities", "()[Ljava/lang/String;", (void*) get_supported_activities },
- { "nativeEnableActivityEvent", "(IIJ)I", (void*) enable_activity_event },
- { "nativeDisableActivityEvent", "(II)I", (void*) disable_activity_event },
- { "nativeFlush", "()I", (void*) flush },
-};
-
-/**
- * Registration method invoked in JNI load.
- */
-int register_android_hardware_location_ActivityRecognitionHardware(JNIEnv* env) {
- return jniRegisterNativeMethods(
- env,
- "android/hardware/location/ActivityRecognitionHardware",
- sMethods,
- NELEM(sMethods));
-}
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index cdf4f69..c6f4ed0 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1740,19 +1740,6 @@
config_enableGeofenceOverlay is false. -->
<string name="config_geofenceProviderPackageName" translatable="false">@null</string>
- <!-- Whether to enable Hardware Activity-Recognition overlay which allows Hardware
- Activity-Recognition to be replaced by an app at run-time. When disabled, only the
- config_activityRecognitionHardwarePackageName package will be searched for
- its implementation, otherwise packages whose signature matches the
- signatures of config_locationProviderPackageNames will be searched, and
- the service with the highest version number will be picked. Anyone who
- wants to disable the overlay mechanism can set it to false.
- -->
- <bool name="config_enableActivityRecognitionHardwareOverlay" translatable="false">true</bool>
- <!-- Package name providing Hardware Activity-Recognition API support. Used only when
- config_enableActivityRecognitionHardwareOverlay is false. -->
- <string name="config_activityRecognitionHardwarePackageName" translatable="false">@null</string>
-
<!-- Package name(s) containing location provider support.
These packages can contain services implementing location providers,
such as the Geocode Provider, Network Location Provider, and
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 8427e72..cc4599e 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1852,7 +1852,6 @@
<java-symbol type="bool" name="config_enableNightMode" />
<java-symbol type="bool" name="config_tintNotificationActionButtons" />
<java-symbol type="bool" name="config_dozeAfterScreenOffByDefault" />
- <java-symbol type="bool" name="config_enableActivityRecognitionHardwareOverlay" />
<java-symbol type="bool" name="config_enableFusedLocationOverlay" />
<java-symbol type="bool" name="config_enableHardwareFlpOverlay" />
<java-symbol type="bool" name="config_enableGeocoderOverlay" />
@@ -2021,7 +2020,6 @@
<java-symbol type="string" name="car_mode_disable_notification_title" />
<java-symbol type="string" name="chooser_wallpaper" />
<java-symbol type="string" name="config_datause_iface" />
- <java-symbol type="string" name="config_activityRecognitionHardwarePackageName" />
<java-symbol type="string" name="config_fusedLocationProviderPackageName" />
<java-symbol type="string" name="config_hardwareFlpPackageName" />
<java-symbol type="string" name="config_geocoderProviderPackageName" />
diff --git a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java b/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
deleted file mode 100644
index 843dd67..0000000
--- a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2014 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 java.security.InvalidParameterException;
-import java.util.List;
-
-/**
- * A class representing an event for Activity changes.
- * @hide
- */
-public class ActivityChangedEvent {
- private final List<ActivityRecognitionEvent> mActivityRecognitionEvents;
-
- public ActivityChangedEvent(List<ActivityRecognitionEvent> activityRecognitionEvents) {
- if (activityRecognitionEvents == null) {
- throw new InvalidParameterException(
- "Parameter 'activityRecognitionEvents' must not be null.");
- }
-
- mActivityRecognitionEvents = activityRecognitionEvents;
- }
-
- @NonNull
- public Iterable<ActivityRecognitionEvent> getActivityRecognitionEvents() {
- return mActivityRecognitionEvents;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder("[ ActivityChangedEvent:");
-
- for (ActivityRecognitionEvent event : mActivityRecognitionEvents) {
- builder.append("\n ");
- builder.append(event.toString());
- }
- builder.append("\n]");
-
- return builder.toString();
- }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java b/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
deleted file mode 100644
index e54dea4..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2014 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;
-
-/**
- * A class that represents an Activity Recognition Event.
- * @hide
- */
-public class ActivityRecognitionEvent {
- private final String mActivity;
- private final int mEventType;
- private final long mTimestampNs;
-
- public ActivityRecognitionEvent(String activity, int eventType, long timestampNs) {
- mActivity = activity;
- mEventType = eventType;
- mTimestampNs = timestampNs;
- }
-
- public String getActivity() {
- return mActivity;
- }
-
- public int getEventType() {
- return mEventType;
- }
-
- public long getTimestampNs() {
- return mTimestampNs;
- }
-
- @Override
- public String toString() {
- String eventString;
- switch (mEventType) {
- case ActivityRecognitionProvider.EVENT_TYPE_ENTER:
- eventString = "Enter";
- break;
- case ActivityRecognitionProvider.EVENT_TYPE_EXIT:
- eventString = "Exit";
- break;
- case ActivityRecognitionProvider.EVENT_TYPE_FLUSH_COMPLETE:
- eventString = "FlushComplete";
- break;
- default:
- eventString = "<Invalid>";
- break;
- }
-
- return String.format(
- "Activity='%s', EventType=%s(%s), TimestampNs=%s",
- mActivity,
- eventString,
- mEventType,
- mTimestampNs);
- }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
deleted file mode 100644
index 0eff7d3..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2014 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 com.android.internal.util.Preconditions;
-
-import android.hardware.location.IActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareSink;
-import android.os.RemoteException;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-
-/**
- * A class that exposes {@link IActivityRecognitionHardware} functionality to unbundled services.
- * @hide
- */
-public final class ActivityRecognitionProvider {
- private final IActivityRecognitionHardware mService;
- private final HashSet<Sink> mSinkSet = new HashSet<>();
-
- // the following constants must remain in sync with activity_recognition.h
-
- public static final String ACTIVITY_IN_VEHICLE = "android.activity_recognition.in_vehicle";
- public static final String ACTIVITY_ON_BICYCLE = "android.activity_recognition.on_bicycle";
- public static final String ACTIVITY_WALKING = "android.activity_recognition.walking";
- public static final String ACTIVITY_RUNNING = "android.activity_recognition.running";
- 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;
-
- // end constants activity_recognition.h
-
- /**
- * Used to receive Activity-Recognition events.
- */
- public interface Sink {
- void onActivityChanged(ActivityChangedEvent event);
- }
-
- public ActivityRecognitionProvider(IActivityRecognitionHardware service)
- throws RemoteException {
- Preconditions.checkNotNull(service);
- mService = service;
- mService.registerSink(new SinkTransport());
- }
-
- public String[] getSupportedActivities() throws RemoteException {
- return mService.getSupportedActivities();
- }
-
- public boolean isActivitySupported(String activity) throws RemoteException {
- return mService.isActivitySupported(activity);
- }
-
- public void registerSink(Sink sink) {
- Preconditions.checkNotNull(sink);
- synchronized (mSinkSet) {
- mSinkSet.add(sink);
- }
- }
-
- // TODO: if this functionality is exposed to 3rd party developers, handle unregistration (here
- // and in the service) of all sinks while failing to disable all events
- public void unregisterSink(Sink sink) {
- Preconditions.checkNotNull(sink);
- synchronized (mSinkSet) {
- mSinkSet.remove(sink);
- }
- }
-
- public boolean enableActivityEvent(String activity, int eventType, long reportLatencyNs)
- throws RemoteException {
- return mService.enableActivityEvent(activity, eventType, reportLatencyNs);
- }
-
- public boolean disableActivityEvent(String activity, int eventType) throws RemoteException {
- return mService.disableActivityEvent(activity, eventType);
- }
-
- public boolean flush() throws RemoteException {
- return mService.flush();
- }
-
- private final class SinkTransport extends IActivityRecognitionHardwareSink.Stub {
- @Override
- public void onActivityChanged(android.hardware.location.ActivityChangedEvent event) {
- Collection<Sink> sinks;
- synchronized (mSinkSet) {
- if (mSinkSet.isEmpty()) {
- return;
- }
- sinks = new ArrayList<>(mSinkSet);
- }
-
- // translate the event from platform internal and GmsCore types
- ArrayList<ActivityRecognitionEvent> gmsEvents = new ArrayList<>();
- for (android.hardware.location.ActivityRecognitionEvent reportingEvent
- : event.getActivityRecognitionEvents()) {
- ActivityRecognitionEvent gmsEvent = new ActivityRecognitionEvent(
- reportingEvent.getActivity(),
- reportingEvent.getEventType(),
- reportingEvent.getTimestampNs());
- gmsEvents.add(gmsEvent);
- }
- ActivityChangedEvent gmsEvent = new ActivityChangedEvent(gmsEvents);
-
- for (Sink sink : sinks) {
- sink.onActivityChanged(gmsEvent);
- }
- }
- }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
deleted file mode 100644
index 326d901..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- * @hide
- */
-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
deleted file mode 100644
index 42f77b4..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2014 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.annotation.Nullable;
-import android.hardware.location.IActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareWatcher;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.Process;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * A watcher class for Activity-Recognition instances.
- *
- * @deprecated use {@link ActivityRecognitionProviderClient} instead.
- * @hide
- */
-@Deprecated
-public class ActivityRecognitionProviderWatcher {
- private static final String TAG = "ActivityRecognitionProviderWatcher";
-
- private static ActivityRecognitionProviderWatcher sWatcher;
- private static final Object sWatcherLock = new Object();
-
- private ActivityRecognitionProvider mActivityRecognitionProvider;
-
- private ActivityRecognitionProviderWatcher() {}
-
- public static ActivityRecognitionProviderWatcher getInstance() {
- synchronized (sWatcherLock) {
- if (sWatcher == null) {
- sWatcher = new ActivityRecognitionProviderWatcher();
- }
- return sWatcher;
- }
- }
-
- private IActivityRecognitionHardwareWatcher.Stub mWatcherStub =
- new IActivityRecognitionHardwareWatcher.Stub() {
- @Override
- public void onInstanceChanged(IActivityRecognitionHardware instance) {
- int callingUid = Binder.getCallingUid();
- if (callingUid != Process.SYSTEM_UID) {
- Log.d(TAG, "Ignoring calls from non-system server. Uid: " + callingUid);
- return;
- }
-
- try {
- mActivityRecognitionProvider = new ActivityRecognitionProvider(instance);
- } catch (RemoteException e) {
- Log.e(TAG, "Error creating Hardware Activity-Recognition", e);
- }
- }
- };
-
- /**
- * Gets the binder needed to interact with proxy provider in the platform.
- */
- @NonNull
- public IBinder getBinder() {
- return mWatcherStub;
- }
-
- /**
- * Gets an object that supports the functionality of {@link ActivityRecognitionProvider}.
- *
- * @return Non-null value if the functionality is supported by the platform, false otherwise.
- */
- @Nullable
- public ActivityRecognitionProvider getActivityRecognitionProvider() {
- return mActivityRecognitionProvider;
- }
-}
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 0b4c01e..add5e5f 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -46,7 +46,6 @@
import android.content.pm.Signature;
import android.content.res.Resources;
import android.database.ContentObserver;
-import android.hardware.location.ActivityRecognitionHardware;
import android.location.Address;
import android.location.Criteria;
import android.location.GeocoderParams;
@@ -93,7 +92,6 @@
import com.android.internal.util.DumpUtils;
import com.android.internal.util.Preconditions;
import com.android.server.location.AbstractLocationProvider;
-import com.android.server.location.ActivityRecognitionProxy;
import com.android.server.location.GeocoderProxy;
import com.android.server.location.GeofenceManager;
import com.android.server.location.GeofenceProxy;
@@ -738,25 +736,6 @@
Slog.d(TAG, "Unable to bind FLP Geofence proxy.");
}
- // bind to hardware activity recognition
- boolean activityRecognitionHardwareIsSupported = ActivityRecognitionHardware.isSupported();
- ActivityRecognitionHardware activityRecognitionHardware = null;
- if (activityRecognitionHardwareIsSupported) {
- activityRecognitionHardware = ActivityRecognitionHardware.getInstance(mContext);
- } else {
- Slog.d(TAG, "Hardware Activity-Recognition not supported.");
- }
- ActivityRecognitionProxy proxy = ActivityRecognitionProxy.createAndBind(
- mContext,
- activityRecognitionHardwareIsSupported,
- activityRecognitionHardware,
- com.android.internal.R.bool.config_enableActivityRecognitionHardwareOverlay,
- com.android.internal.R.string.config_activityRecognitionHardwarePackageName,
- com.android.internal.R.array.config_locationProviderPackageNames);
- if (proxy == null) {
- Slog.d(TAG, "Unable to bind ActivityRecognitionProxy.");
- }
-
String[] testProviderStrings = resources.getStringArray(
com.android.internal.R.array.config_testLocationProviders);
for (String testProviderString : testProviderStrings) {
diff --git a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java b/services/core/java/com/android/server/location/ActivityRecognitionProxy.java
deleted file mode 100644
index 22fabb2..0000000
--- a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2014 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.server.location;
-
-import android.content.Context;
-import android.hardware.location.ActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareClient;
-import android.hardware.location.IActivityRecognitionHardwareWatcher;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.util.Log;
-
-import com.android.internal.os.BackgroundThread;
-import com.android.server.ServiceWatcher;
-
-/**
- * Proxy class to bind GmsCore to the ActivityRecognitionHardware.
- *
- * @hide
- */
-public class ActivityRecognitionProxy {
-
- private static final String TAG = "ActivityRecognitionProxy";
-
- /**
- * Creates an instance of the proxy and binds it to the appropriate FusedProvider.
- *
- * @return An instance of the proxy if it could be bound, null otherwise.
- */
- public static ActivityRecognitionProxy createAndBind(
- Context context,
- boolean activityRecognitionHardwareIsSupported,
- ActivityRecognitionHardware activityRecognitionHardware,
- int overlaySwitchResId,
- int defaultServicePackageNameResId,
- int initialPackageNameResId) {
- ActivityRecognitionProxy activityRecognitionProxy = new ActivityRecognitionProxy(
- context,
- activityRecognitionHardwareIsSupported,
- activityRecognitionHardware,
- overlaySwitchResId,
- defaultServicePackageNameResId,
- initialPackageNameResId);
-
- if (activityRecognitionProxy.mServiceWatcher.start()) {
- return activityRecognitionProxy;
- } else {
- return null;
- }
- }
-
- private final ServiceWatcher mServiceWatcher;
- private final boolean mIsSupported;
- private final ActivityRecognitionHardware mInstance;
-
- private ActivityRecognitionProxy(
- Context context,
- boolean activityRecognitionHardwareIsSupported,
- ActivityRecognitionHardware activityRecognitionHardware,
- int overlaySwitchResId,
- int defaultServicePackageNameResId,
- int initialPackageNameResId) {
- mIsSupported = activityRecognitionHardwareIsSupported;
- mInstance = activityRecognitionHardware;
-
- mServiceWatcher = new ServiceWatcher(
- context,
- TAG,
- "com.android.location.service.ActivityRecognitionProvider",
- overlaySwitchResId,
- defaultServicePackageNameResId,
- initialPackageNameResId,
- BackgroundThread.getHandler()) {
- @Override
- protected void onBind() {
- runOnBinder(ActivityRecognitionProxy.this::initializeService);
- }
- };
- }
-
- private void initializeService(IBinder binder) {
- try {
- String descriptor = binder.getInterfaceDescriptor();
-
- if (IActivityRecognitionHardwareWatcher.class.getCanonicalName().equals(
- descriptor)) {
- IActivityRecognitionHardwareWatcher watcher =
- IActivityRecognitionHardwareWatcher.Stub.asInterface(binder);
- if (mInstance != null) {
- watcher.onInstanceChanged(mInstance);
- }
- } else if (IActivityRecognitionHardwareClient.class.getCanonicalName()
- .equals(descriptor)) {
- IActivityRecognitionHardwareClient client =
- IActivityRecognitionHardwareClient.Stub.asInterface(binder);
- client.onAvailabilityChanged(mIsSupported, mInstance);
- } else {
- Log.e(TAG, "Invalid descriptor found on connection: " + descriptor);
- }
- } catch (RemoteException e) {
- Log.w(TAG, e);
- }
- }
-}