Index: chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java |
index 795367187c0109ac05e154fba02ee3737c2efaa1..0c037806829effc923056b2407166882cba2742c 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java |
@@ -71,30 +71,47 @@ public class ConnectivityTask { |
@VisibleForTesting |
static final String SYSTEM_HTTPS_KEY = "HTTPS connection check (Android network stack)"; |
+ private static String getHumanReadableString(Type type) { |
+ switch (type) { |
+ case CHROME_HTTP: |
+ return CHROME_HTTP_KEY; |
+ case CHROME_HTTPS: |
+ return CHROME_HTTPS_KEY; |
+ case SYSTEM_HTTP: |
+ return SYSTEM_HTTP_KEY; |
+ case SYSTEM_HTTPS: |
+ return SYSTEM_HTTPS_KEY; |
+ default: |
+ throw new IllegalArgumentException("Unknown connection type: " + type); |
+ } |
+ } |
+ |
+ static String getHumanReadableString(int result) { |
+ switch (result) { |
+ case ConnectivityCheckResult.UNKNOWN: |
+ return "UNKNOWN"; |
+ case ConnectivityCheckResult.CONNECTED: |
+ return "CONNECTED"; |
+ case ConnectivityCheckResult.NOT_CONNECTED: |
+ return "NOT_CONNECTED"; |
+ case ConnectivityCheckResult.TIMEOUT: |
+ return "TIMEOUT"; |
+ case ConnectivityCheckResult.ERROR: |
+ return "ERROR"; |
+ default: |
+ throw new IllegalArgumentException("Unknown result value: " + result); |
+ } |
+ } |
+ |
/** |
* FeedbackData contains the set of information that is to be included in a feedback report. |
*/ |
static final class FeedbackData { |
- private final Map<Type, Result> mConnections; |
+ private final Map<Type, Integer> mConnections; |
private final int mTimeoutMs; |
private final long mElapsedTimeMs; |
- private static String getHumanReadableString(Type type) { |
- switch (type) { |
- case CHROME_HTTP: |
- return CHROME_HTTP_KEY; |
- case CHROME_HTTPS: |
- return CHROME_HTTPS_KEY; |
- case SYSTEM_HTTP: |
- return SYSTEM_HTTP_KEY; |
- case SYSTEM_HTTPS: |
- return SYSTEM_HTTPS_KEY; |
- default: |
- throw new IllegalArgumentException("Unknown connection type: " + type); |
- } |
- } |
- |
- FeedbackData(Map<Type, Result> connections, int timeoutMs, long elapsedTimeMs) { |
+ FeedbackData(Map<Type, Integer> connections, int timeoutMs, long elapsedTimeMs) { |
mConnections = connections; |
mTimeoutMs = timeoutMs; |
mElapsedTimeMs = elapsedTimeMs; |
@@ -105,7 +122,7 @@ public class ConnectivityTask { |
* types. |
*/ |
@VisibleForTesting |
- Map<Type, Result> getConnections() { |
+ Map<Type, Integer> getConnections() { |
return Collections.unmodifiableMap(mConnections); |
} |
@@ -130,8 +147,9 @@ public class ConnectivityTask { |
*/ |
Map<String, String> toMap() { |
Map<String, String> map = new HashMap<>(); |
- for (Map.Entry<Type, Result> entry : mConnections.entrySet()) { |
- map.put(getHumanReadableString(entry.getKey()), entry.getValue().name()); |
+ for (Map.Entry<Type, Integer> entry : mConnections.entrySet()) { |
+ map.put(getHumanReadableString(entry.getKey()), |
+ getHumanReadableString(entry.getValue())); |
} |
map.put(CONNECTION_CHECK_TIMEOUT_MS, String.valueOf(mTimeoutMs)); |
map.put(CONNECTION_CHECK_ELAPSED_MS, String.valueOf(mElapsedTimeMs)); |
@@ -144,12 +162,6 @@ public class ConnectivityTask { |
*/ |
public enum Type { CHROME_HTTP, CHROME_HTTPS, SYSTEM_HTTP, SYSTEM_HTTPS } |
- /** |
- * The result from the connectivity check. Will be {@link Result#UNKNOWN} if the result is not |
- * ready yet. |
- */ |
- public enum Result { UNKNOWN, NOT_CONNECTED, CONNECTED } |
- |
private class SingleTypeTask implements ConnectivityChecker.ConnectivityCheckerCallback { |
private final Type mType; |
@@ -185,14 +197,15 @@ public class ConnectivityTask { |
} |
@Override |
- public void onResult(boolean connected) { |
- Log.v(TAG, "Got result for " + mType + ": connected = " + connected); |
- Result result = connected ? Result.CONNECTED : Result.NOT_CONNECTED; |
+ public void onResult(int result) { |
+ ThreadUtils.assertOnUiThread(); |
+ Log.v(TAG, "Got result for " + getHumanReadableString(mType) + ": result = " |
+ + getHumanReadableString(result)); |
mResult.put(mType, result); |
} |
} |
- private final Map<Type, Result> mResult = new EnumMap<Type, Result>(Type.class); |
+ private final Map<Type, Integer> mResult = new EnumMap<Type, Integer>(Type.class); |
private final int mTimeoutMs; |
private final long mStartCheckTimeMs; |
@@ -215,19 +228,19 @@ public class ConnectivityTask { |
/** |
* Retrieves the connectivity that has been collected up until this call. This method fills in |
- * {@link Result#UNKNOWN} for results that have not been retrieved yet. |
+ * {@link ConnectivityCheckResult#UNKNOWN} for results that have not been retrieved yet. |
* |
* @return the {@link FeedbackData}. |
*/ |
public FeedbackData get() { |
ThreadUtils.assertOnUiThread(); |
- Map<Type, Result> result = new EnumMap<Type, Result>(Type.class); |
+ Map<Type, Integer> result = new EnumMap<Type, Integer>(Type.class); |
// Ensure the map is filled with a result for all {@link Type}s. |
for (Type type : Type.values()) { |
if (mResult.containsKey(type)) { |
result.put(type, mResult.get(type)); |
} else { |
- result.put(type, Result.UNKNOWN); |
+ result.put(type, ConnectivityCheckResult.UNKNOWN); |
} |
} |
long elapsedTimeMs = SystemClock.elapsedRealtime() - mStartCheckTimeMs; |
@@ -244,7 +257,7 @@ public class ConnectivityTask { |
* |
* @param profile the context to do the check in. |
* @param timeoutMs number of milliseconds to wait before giving up waiting for a connection. |
- * @return a Future to retrieve the results. |
+ * @return a ConnectivityTask to retrieve the results. |
*/ |
public static ConnectivityTask create(Profile profile, int timeoutMs) { |
ThreadUtils.assertOnUiThread(); |