blob: ea1175639e23878791412aedb8867fde66fbbbd5 [file] [log] [blame]
/*
* Copyright (C) 2016 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.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import libcore.util.EmptyArray;
/**
* Describes an instance of a nanoapp, used by the internal state managed by ContextHubService.
*
* TODO(b/69270990) Remove this class once the old API is deprecated.
*
* @deprecated Use {@link android.hardware.location.NanoAppState} instead.
*
* @hide
*/
@SystemApi
@Deprecated
public class NanoAppInstanceInfo implements Parcelable {
private String mPublisher = "Unknown";
private String mName = "Unknown";
private int mHandle;
private long mAppId;
private int mAppVersion;
private int mContexthubId;
private int mNeededReadMemBytes = 0;
private int mNeededWriteMemBytes = 0;
private int mNeededExecMemBytes = 0;
private int[] mNeededSensors = EmptyArray.INT;
private int[] mOutputEvents = EmptyArray.INT;
public NanoAppInstanceInfo() {
}
/**
* @hide
*/
public NanoAppInstanceInfo(int handle, long appId, int appVersion, int contextHubId) {
mHandle = handle;
mAppId = appId;
mAppVersion = appVersion;
mContexthubId = contextHubId;
}
/**
* get the publisher of this app
*
* @return String - name of the publisher
*/
public String getPublisher() {
return mPublisher;
}
/**
* get the name of the app
*
* @return String - name of the app
*/
public String getName() {
return mName;
}
/**
* Get the application identifier
*
* @return int - application identifier
*/
public long getAppId() {
return mAppId;
}
/**
* Get the application version
*
* @return int - version of the app
*/
public int getAppVersion() {
return mAppVersion;
}
/**
* Get the read memory needed by the app
*
* @return int - readable memory needed in bytes
*/
public int getNeededReadMemBytes() {
return mNeededReadMemBytes;
}
/**
* get writable memory needed by the app
*
* @return int - writable memory needed by the app
*/
public int getNeededWriteMemBytes() {
return mNeededWriteMemBytes;
}
/**
* get executable memory needed by the app
*
* @return int - executable memory needed by the app
*/
public int getNeededExecMemBytes() {
return mNeededExecMemBytes;
}
/**
* Get the sensors needed by this app
*
* @return int[] all the required sensors needed by this app
*/
@NonNull
public int[] getNeededSensors() {
return mNeededSensors;
}
/**
* get the events generated by this app
*
* @return all the events that can be generated by this app
*/
@NonNull
public int[] getOutputEvents() {
return mOutputEvents;
}
/**
* get the context hub identifier
*
* @return int - system unique hub identifier
*/
public int getContexthubId() {
return mContexthubId;
}
/**
* get a handle to the nano app instance
*
* @return int - handle to this instance
*/
public int getHandle() {
return mHandle;
}
private NanoAppInstanceInfo(Parcel in) {
mPublisher = in.readString();
mName = in.readString();
mHandle = in.readInt();
mAppId = in.readLong();
mAppVersion = in.readInt();
mContexthubId = in.readInt();
mNeededReadMemBytes = in.readInt();
mNeededWriteMemBytes = in.readInt();
mNeededExecMemBytes = in.readInt();
int neededSensorsLength = in.readInt();
mNeededSensors = new int[neededSensorsLength];
in.readIntArray(mNeededSensors);
int outputEventsLength = in.readInt();
mOutputEvents = new int[outputEventsLength];
in.readIntArray(mOutputEvents);
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeString(mPublisher);
out.writeString(mName);
out.writeInt(mHandle);
out.writeLong(mAppId);
out.writeInt(mAppVersion);
out.writeInt(mContexthubId);
out.writeInt(mNeededReadMemBytes);
out.writeInt(mNeededWriteMemBytes);
out.writeInt(mNeededExecMemBytes);
// arrays are never null
out.writeInt(mNeededSensors.length);
out.writeIntArray(mNeededSensors);
out.writeInt(mOutputEvents.length);
out.writeIntArray(mOutputEvents);
}
public static final @android.annotation.NonNull Parcelable.Creator<NanoAppInstanceInfo> CREATOR
= new Parcelable.Creator<NanoAppInstanceInfo>() {
public NanoAppInstanceInfo createFromParcel(Parcel in) {
return new NanoAppInstanceInfo(in);
}
public NanoAppInstanceInfo[] newArray(int size) {
return new NanoAppInstanceInfo[size];
}
};
@NonNull
@Override
public String toString() {
String retVal = "handle : " + mHandle;
retVal += ", Id : 0x" + Long.toHexString(mAppId);
retVal += ", Version : 0x" + Integer.toHexString(mAppVersion);
return retVal;
}
}