diff options
author | Adrian Roos <roosa@google.com> | 2017-05-05 20:16:08 +0000 |
---|---|---|
committer | Adrian Roos <roosa@google.com> | 2017-05-05 20:16:08 +0000 |
commit | 721bd0da688cd552737fbb753a00597f95103b95 (patch) | |
tree | 36da88c2d4365be7ee0a4dd0c732b9399d1c55ad /src/com/android/tv/data/ChannelNumber.java | |
parent | 3dfa929b24f38ac7836450176d88ceab41dc6ac5 (diff) | |
download | TV-721bd0da688cd552737fbb753a00597f95103b95.tar.gz |
Revert "Sync to ub-tv-dev at f0024d79653da8c8999a91f995431a645a6ff4a2"
This reverts commit 3dfa929b24f38ac7836450176d88ceab41dc6ac5.
Change-Id: I1c76f626d966b8d4793a19677a8840ed0424d3a7
Diffstat (limited to 'src/com/android/tv/data/ChannelNumber.java')
-rw-r--r-- | src/com/android/tv/data/ChannelNumber.java | 71 |
1 files changed, 24 insertions, 47 deletions
diff --git a/src/com/android/tv/data/ChannelNumber.java b/src/com/android/tv/data/ChannelNumber.java index 29054aa5..59021609 100644 --- a/src/com/android/tv/data/ChannelNumber.java +++ b/src/com/android/tv/data/ChannelNumber.java @@ -17,38 +17,37 @@ package com.android.tv.data; import android.support.annotation.NonNull; -import android.text.TextUtils; import android.view.KeyEvent; -import com.android.tv.util.StringUtils; - -import java.util.Objects; - /** * A convenience class to handle channel number. */ public final class ChannelNumber implements Comparable<ChannelNumber> { + public static final String PRIMARY_CHANNEL_DELIMITER = "-"; + public static final String[] CHANNEL_DELIMITERS = {"-", ".", " "}; + private static final int[] CHANNEL_DELIMITER_KEYCODES = { KeyEvent.KEYCODE_MINUS, KeyEvent.KEYCODE_NUMPAD_SUBTRACT, KeyEvent.KEYCODE_PERIOD, KeyEvent.KEYCODE_NUMPAD_DOT, KeyEvent.KEYCODE_SPACE }; - /** The major part of the channel number. */ public String majorNumber; - /** The flag which indicates whether it has a delimiter or not. */ public boolean hasDelimiter; - /** The major part of the channel number. */ public String minorNumber; public ChannelNumber() { reset(); } + public ChannelNumber(String major, boolean hasDelimiter, String minor) { + setChannelNumber(major, hasDelimiter, minor); + } + public void reset() { setChannelNumber("", false, ""); } - private void setChannelNumber(String majorNumber, boolean hasDelimiter, String minorNumber) { + public void setChannelNumber(String majorNumber, boolean hasDelimiter, String minorNumber) { this.majorNumber = majorNumber; this.hasDelimiter = hasDelimiter; this.minorNumber = minorNumber; @@ -57,7 +56,7 @@ public final class ChannelNumber implements Comparable<ChannelNumber> { @Override public String toString() { if (hasDelimiter) { - return majorNumber + Channel.CHANNEL_NUMBER_DELIMITER + minorNumber; + return majorNumber + PRIMARY_CHANNEL_DELIMITER + minorNumber; } return majorNumber; } @@ -76,22 +75,6 @@ public final class ChannelNumber implements Comparable<ChannelNumber> { return major - opponentMajor; } - @Override - public boolean equals(Object obj) { - if (obj instanceof ChannelNumber) { - ChannelNumber channelNumber = (ChannelNumber) obj; - return TextUtils.equals(majorNumber, channelNumber.majorNumber) - && TextUtils.equals(minorNumber, channelNumber.minorNumber) - && hasDelimiter == channelNumber.hasDelimiter; - } - return super.equals(obj); - } - - @Override - public int hashCode() { - return Objects.hash(majorNumber, hasDelimiter, minorNumber); - } - public static boolean isChannelNumberDelimiterKey(int keyCode) { for (int delimiterKeyCode : CHANNEL_DELIMITER_KEYCODES) { if (delimiterKeyCode == keyCode) { @@ -101,22 +84,22 @@ public final class ChannelNumber implements Comparable<ChannelNumber> { return false; } - /** - * Returns the ChannelNumber instance. - * <p> - * Note that all the channel number argument should be normalized by - * {@link Channel#normalizeDisplayNumber}. The channels retrieved from - * {@link ChannelDataManager} are already normalized. - */ public static ChannelNumber parseChannelNumber(String number) { if (number == null) { return null; } ChannelNumber ret = new ChannelNumber(); - int indexOfDelimiter = number.indexOf(Channel.CHANNEL_NUMBER_DELIMITER); + int indexOfDelimiter = -1; + for (String delimiter : CHANNEL_DELIMITERS) { + indexOfDelimiter = number.indexOf(delimiter); + if (indexOfDelimiter >= 0) { + break; + } + } if (indexOfDelimiter == 0 || indexOfDelimiter == number.length() - 1) { return null; - } else if (indexOfDelimiter < 0) { + } + if (indexOfDelimiter < 0) { ret.majorNumber = number; if (!isInteger(ret.majorNumber)) { return null; @@ -132,31 +115,25 @@ public final class ChannelNumber implements Comparable<ChannelNumber> { return ret; } - /** - * Compares the channel numbers. - * <p> - * Note that all the channel number arguments should be normalized by - * {@link Channel#normalizeDisplayNumber}. The channels retrieved from - * {@link ChannelDataManager} are already normalized. - */ public static int compare(String lhs, String rhs) { ChannelNumber lhsNumber = parseChannelNumber(lhs); ChannelNumber rhsNumber = parseChannelNumber(rhs); - // Null first if (lhsNumber == null && rhsNumber == null) { - return StringUtils.compare(lhs, rhs); + return 0; } else if (lhsNumber == null /* && rhsNumber != null */) { return -1; - } else if (rhsNumber == null) { + } else if (lhsNumber != null && rhsNumber == null) { return 1; } return lhsNumber.compareTo(rhsNumber); } - private static boolean isInteger(String string) { + public static boolean isInteger(String string) { try { Integer.parseInt(string); - } catch(NumberFormatException | NullPointerException e) { + } catch(NumberFormatException e) { + return false; + } catch(NullPointerException e) { return false; } return true; |