1a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa/* 2a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * Copyright (C) 2014 The Android Open Source Project 3a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * 4a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * Licensed under the Apache License, Version 2.0 (the "License"); 5a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * you may not use this file except in compliance with the License. 6a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * You may obtain a copy of the License at 7a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * 8a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * http://www.apache.org/licenses/LICENSE-2.0 9a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * 10a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * Unless required by applicable law or agreed to in writing, software 11a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * distributed under the License is distributed on an "AS IS" BASIS, 12a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * See the License for the specific language governing permissions and 14a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * limitations under the License 15a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa */ 16a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 17a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaapackage android.hardware.location; 18a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 19a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport android.annotation.NonNull; 20a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport android.os.Parcel; 21a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport android.os.Parcelable; 22a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 23a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport java.security.InvalidParameterException; 24a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport java.util.Arrays; 25a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaaimport java.util.List; 26a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 27a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa/** 28a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * A class representing an event for Activity changes. 29a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * 30a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa * @hide 31a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa */ 32a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaapublic class ActivityChangedEvent implements Parcelable { 33a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa private final List<ActivityRecognitionEvent> mActivityRecognitionEvents; 34a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 35a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public ActivityChangedEvent(ActivityRecognitionEvent[] activityRecognitionEvents) { 36a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa if (activityRecognitionEvents == null) { 37a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa throw new InvalidParameterException( 38a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa "Parameter 'activityRecognitionEvents' must not be null."); 39a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 40a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 41a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa mActivityRecognitionEvents = Arrays.asList(activityRecognitionEvents); 42a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 43a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 44a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa @NonNull 45a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public Iterable<ActivityRecognitionEvent> getActivityRecognitionEvents() { 46a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa return mActivityRecognitionEvents; 47a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 48a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 49a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public static final Creator<ActivityChangedEvent> CREATOR = 50a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa new Creator<ActivityChangedEvent>() { 51a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa @Override 52a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public ActivityChangedEvent createFromParcel(Parcel source) { 53a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa int activityRecognitionEventsLength = source.readInt(); 54a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa ActivityRecognitionEvent[] activityRecognitionEvents = 55a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa new ActivityRecognitionEvent[activityRecognitionEventsLength]; 56a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa source.readTypedArray(activityRecognitionEvents, ActivityRecognitionEvent.CREATOR); 57a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 58a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa return new ActivityChangedEvent(activityRecognitionEvents); 59a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 60a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 61a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa @Override 62a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public ActivityChangedEvent[] newArray(int size) { 63a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa return new ActivityChangedEvent[size]; 64a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 65a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa }; 66a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 67a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa @Override 68a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public int describeContents() { 69a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa return 0; 70a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 71a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa 72a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa @Override 73a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa public void writeToParcel(Parcel parcel, int flags) { 74a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa ActivityRecognitionEvent[] activityRecognitionEventArray = 75a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa mActivityRecognitionEvents.toArray(new ActivityRecognitionEvent[0]); 76a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa parcel.writeInt(activityRecognitionEventArray.length); 77a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa parcel.writeTypedArray(activityRecognitionEventArray, flags); 78a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa } 793b0224dc3c2e7ffb93dc56970395003d0e387545destradaa 803b0224dc3c2e7ffb93dc56970395003d0e387545destradaa @Override 813b0224dc3c2e7ffb93dc56970395003d0e387545destradaa public String toString() { 823b0224dc3c2e7ffb93dc56970395003d0e387545destradaa StringBuilder builder = new StringBuilder("[ ActivityChangedEvent:"); 833b0224dc3c2e7ffb93dc56970395003d0e387545destradaa 843b0224dc3c2e7ffb93dc56970395003d0e387545destradaa for (ActivityRecognitionEvent event : mActivityRecognitionEvents) { 853b0224dc3c2e7ffb93dc56970395003d0e387545destradaa builder.append("\n "); 863b0224dc3c2e7ffb93dc56970395003d0e387545destradaa builder.append(event.toString()); 873b0224dc3c2e7ffb93dc56970395003d0e387545destradaa } 883b0224dc3c2e7ffb93dc56970395003d0e387545destradaa builder.append("\n]"); 893b0224dc3c2e7ffb93dc56970395003d0e387545destradaa 903b0224dc3c2e7ffb93dc56970395003d0e387545destradaa return builder.toString(); 913b0224dc3c2e7ffb93dc56970395003d0e387545destradaa } 92a4fa3b5aa53cf677b623fe346c585cb8a0c1ce26destradaa} 93