Skip to content

Commit ce2dca9

Browse files
committed
Fix problem of no callback when no network.
AutoZone.preQuery should calls onFailure when if there's no network.
1 parent 3155831 commit ce2dca9

File tree

5 files changed

+26
-24
lines changed

5 files changed

+26
-24
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

library/library.iml

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<facet type="android" name="Android">
1010
<configuration>
1111
<option name="SELECTED_BUILD_VARIANT" value="debug" />
12-
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
1312
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
1413
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
1514
<afterSyncTasks>
@@ -20,7 +19,7 @@
2019
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
2120
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
2221
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
23-
<option name="LIBRARY_PROJECT" value="true" />
22+
<option name="PROJECT_TYPE" value="1" />
2423
</configuration>
2524
</facet>
2625
</component>
@@ -46,64 +45,51 @@
4645
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
4746
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
4847
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
49-
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
5048
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
5149
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
5250
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
5351
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
5452
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
5553
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
5654
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
57-
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
5855
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
5956
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
6057
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
6158
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
6259
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
6360
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
6461
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
65-
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
6662
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
6763
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
68-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
69-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
70-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
71-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
72-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
73-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
74-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
75-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
7664
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
7765
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
7866
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
7967
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
8068
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
81-
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
8269
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
8370
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
84-
<excludeFolder url="file://$MODULE_DIR$/build/docs" />
71+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
72+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
73+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
74+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
75+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
76+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
77+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
8578
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
8679
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
8780
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
8881
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
8982
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
9083
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
9184
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
92-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
9385
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
9486
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
95-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
9687
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
9788
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
9889
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
9990
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
10091
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
101-
<excludeFolder url="file://$MODULE_DIR$/build/ivy.xml" />
102-
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
10392
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
104-
<excludeFolder url="file://$MODULE_DIR$/build/poms" />
105-
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
106-
<excludeFolder url="file://$MODULE_DIR$/build/test-results" />
10793
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
10894
</content>
10995
<orderEntry type="jdk" jdkName="Android API 24 Platform" jdkType="Android SDK" />

library/src/main/java/com/qiniu/android/common/AutoZone.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ public void complete(ResponseInfo info, JSONObject response) {
9898
e.printStackTrace();
9999
complete.onFailure(ResponseInfo.NetworkError);
100100
}
101+
} else {
102+
if (info.isNetworkBroken()) {
103+
complete.onFailure(info.statusCode);
104+
}
101105
}
102106
}
103107
});

library/src/main/java/com/qiniu/android/http/ResponseInfo.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,16 @@ public static ResponseInfo fileError(Exception e, final UpToken upToken) {
160160
return create(null, InvalidFile, "", "", "", "", "", "", 80, 0, 0, e.getMessage(), upToken);
161161
}
162162

163+
public static ResponseInfo networkError(int code, UpToken upToken) {
164+
return create(null, code, "", "", "", "", "", "", 80, 0, 0, "Network error during preQuery", upToken);
165+
}
166+
167+
public static boolean isStatusCodeForBrokenNetwork(int code) {
168+
return code == NetworkError || code == UnknownHost
169+
|| code == CannotConnectToHost || code == TimedOut
170+
|| code == NetworkConnectionLost;
171+
}
172+
163173
public boolean isCancelled() {
164174
return statusCode == Cancelled;
165175
}

library/src/main/java/com/qiniu/android/storage/UploadManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public void onSuccess() {
9595

9696
@Override
9797
public void onFailure(int reason) {
98-
final ResponseInfo info = ResponseInfo.invalidToken("invalid token");
98+
final ResponseInfo info = ResponseInfo.isStatusCodeForBrokenNetwork(reason) ?
99+
ResponseInfo.networkError(reason, decodedToken) :
100+
ResponseInfo.invalidToken("invalid token");
99101
completionHandler.complete(key, info, null);
100102
}
101103
});

0 commit comments

Comments
 (0)