diff options
Diffstat (limited to 'src/com/android/tv/util/TvTrackInfoUtils.java')
-rw-r--r-- | src/com/android/tv/util/TvTrackInfoUtils.java | 37 |
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 +} |