summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorWonsik Kim <wonsik@google.com>2014-07-21 21:35:50 +0900
committerWonsik Kim <wonsik@google.com>2014-07-21 21:43:48 +0900
commit38feae971c43700c9cb15aafbf8bd37340675a50 (patch)
treed2d3434b4ac8d033cdab0f5237e4b083bed237fe /services
parent5fe8dcf78de73ce33132204eb1862a43c6ee732d (diff)
downloadframeworks_base-38feae971c43700c9cb15aafbf8bd37340675a50.zip
frameworks_base-38feae971c43700c9cb15aafbf8bd37340675a50.tar.gz
frameworks_base-38feae971c43700c9cb15aafbf8bd37340675a50.tar.bz2
TIF: fix indexOfValue usage
SparseArray.indexOfValue() was used in place where comparison using equals() on value was desired, but the method actually uses == instead of equals(). Change-Id: Id9fb3317d1e0f0cb60ce6512f6d0c0a7bcf2fb20
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/tv/TvInputHardwareManager.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
index 0a9c646..8854869 100644
--- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java
+++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
@@ -235,14 +235,23 @@ class TvInputHardwareManager implements TvInputHal.Callback {
}
}
+ private static <T> int indexOfEqualValue(SparseArray<T> map, T value) {
+ for (int i = 0; i < map.size(); ++i) {
+ if (map.valueAt(i).equals(value)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
public void addHdmiCecTvInput(int logicalAddress, TvInputInfo info) {
if (info.getType() != TvInputInfo.TYPE_HDMI) {
throw new IllegalArgumentException("info (" + info + ") has non-HDMI type.");
}
synchronized (mLock) {
String parentId = info.getParentId();
- int parentIndex = mHardwareInputIdMap.indexOfValue(parentId);
- if (parentIndex < 0 || !parentId.equals(mHardwareInputIdMap.valueAt(parentIndex))) {
+ int parentIndex = indexOfEqualValue(mHardwareInputIdMap, parentId);
+ if (parentIndex < 0) {
throw new IllegalArgumentException("info (" + info + ") has invalid parentId.");
}
String oldInputId = mHdmiCecInputIdMap.get(logicalAddress);
@@ -259,11 +268,11 @@ class TvInputHardwareManager implements TvInputHal.Callback {
public void removeTvInput(String inputId) {
synchronized (mLock) {
mInputMap.remove(inputId);
- int hardwareIndex = mHardwareInputIdMap.indexOfValue(inputId);
+ int hardwareIndex = indexOfEqualValue(mHardwareInputIdMap, inputId);
if (hardwareIndex >= 0) {
mHardwareInputIdMap.removeAt(hardwareIndex);
}
- int cecIndex = mHdmiCecInputIdMap.indexOfValue(inputId);
+ int cecIndex = indexOfEqualValue(mHdmiCecInputIdMap, inputId);
if (cecIndex >= 0) {
mHdmiCecInputIdMap.removeAt(cecIndex);
}