aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/data/ChannelNumber.java
diff options
context:
space:
mode:
authorAdrian Roos <roosa@google.com>2017-05-05 20:16:08 +0000
committerAdrian Roos <roosa@google.com>2017-05-05 20:16:08 +0000
commit721bd0da688cd552737fbb753a00597f95103b95 (patch)
tree36da88c2d4365be7ee0a4dd0c732b9399d1c55ad /src/com/android/tv/data/ChannelNumber.java
parent3dfa929b24f38ac7836450176d88ceab41dc6ac5 (diff)
downloadTV-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.java71
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;