aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/util/TvTrackInfoUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/util/TvTrackInfoUtils.java')
-rw-r--r--src/com/android/tv/util/TvTrackInfoUtils.java37
1 files changed, 25 insertions, 12 deletions
diff --git a/src/com/android/tv/util/TvTrackInfoUtils.java b/src/com/android/tv/util/TvTrackInfoUtils.java
index 667cc9bf..c004f001 100644
--- a/src/com/android/tv/util/TvTrackInfoUtils.java
+++ b/src/com/android/tv/util/TvTrackInfoUtils.java
@@ -52,22 +52,35 @@ public class TvTrackInfoUtils {
}
// Assumes {@code null} language matches to any language since it means user hasn't
// selected any track before or selected a track without language information.
- boolean lhsLangMatch = language == null || Utils.isEqualLanguage(lhs.getLanguage(),
- language);
boolean rhsLangMatch = language == null || Utils.isEqualLanguage(rhs.getLanguage(),
language);
- if (lhsLangMatch && rhsLangMatch) {
- boolean lhsCountMatch = lhs.getType() != TvTrackInfo.TYPE_AUDIO
- || lhs.getAudioChannelCount() == channelCount;
- boolean rhsCountMatch = rhs.getType() != TvTrackInfo.TYPE_AUDIO
- || rhs.getAudioChannelCount() == channelCount;
- if (lhsCountMatch && rhsCountMatch) {
- return Boolean.compare(lhs.getId().equals(id), rhs.getId().equals(id));
+ boolean lhsLangMatch = language == null || Utils.isEqualLanguage(lhs.getLanguage(),
+ language);
+ if (rhsLangMatch) {
+ if (lhsLangMatch) {
+ boolean rhsCountMatch = rhs.getAudioChannelCount() == channelCount;
+ boolean lhsCountMatch = lhs.getAudioChannelCount() == channelCount;
+ if (rhsCountMatch) {
+ if (lhsCountMatch) {
+ boolean rhsIdMatch = rhs.getId().equals(id);
+ boolean lhsIdMatch = lhs.getId().equals(id);
+ if (rhsIdMatch) {
+ return lhsIdMatch ? 0 : -1;
+ } else {
+ return lhsIdMatch ? 1 : 0;
+ }
+
+ } else {
+ return -1;
+ }
+ } else {
+ return lhsCountMatch ? 1 : 0;
+ }
} else {
- return Boolean.compare(lhsCountMatch, rhsCountMatch);
+ return -1;
}
} else {
- return Boolean.compare(lhsLangMatch, rhsLangMatch);
+ return lhsLangMatch ? 1 : 0;
}
}
};
@@ -99,4 +112,4 @@ public class TvTrackInfoUtils {
private TvTrackInfoUtils() {
}
-} \ No newline at end of file
+}