Close buffer and null-check response body
This commit is contained in:
parent
a651b273fb
commit
d9801662dd
@ -38,6 +38,7 @@ import okhttp3.OkHttpClient;
|
|||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
import okio.BufferedSink;
|
import okio.BufferedSink;
|
||||||
|
import okio.BufferedSource;
|
||||||
import okio.Okio;
|
import okio.Okio;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@ -112,11 +113,10 @@ public class UpdateCheckRepositoryImpl implements UpdateCheckRepository {
|
|||||||
|
|
||||||
final Response response = httpClient.newCall(request).execute();
|
final Response response = httpClient.newCall(request).execute();
|
||||||
|
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
final BufferedSink sink = Okio.buffer(Okio.sink(file));
|
try (BufferedSource source = response.body().source(); BufferedSink sink = Okio.buffer(Okio.sink(file))) {
|
||||||
sink.writeAll(response.body().source());
|
sink.writeAll(source);
|
||||||
sink.flush();
|
sink.flush();
|
||||||
sink.close();
|
|
||||||
|
|
||||||
String apkSha256 = calculateSha256(file);
|
String apkSha256 = calculateSha256(file);
|
||||||
|
|
||||||
@ -127,6 +127,7 @@ public class UpdateCheckRepositoryImpl implements UpdateCheckRepository {
|
|||||||
apkSha256, //
|
apkSha256, //
|
||||||
entity.getApkSha256()));
|
entity.getApkSha256()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new GeneralUpdateErrorException("Failed to load update file, status code is not correct: " + response.code());
|
throw new GeneralUpdateErrorException("Failed to load update file, status code is not correct: " + response.code());
|
||||||
}
|
}
|
||||||
@ -174,7 +175,7 @@ public class UpdateCheckRepositoryImpl implements UpdateCheckRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private LatestVersion toLatestVersion(Response response) throws IOException, GeneralUpdateErrorException {
|
private LatestVersion toLatestVersion(Response response) throws IOException, GeneralUpdateErrorException {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
return new LatestVersion(response.body().string());
|
return new LatestVersion(response.body().string());
|
||||||
} else {
|
} else {
|
||||||
throw new GeneralUpdateErrorException("Failed to update. Wrong status code in response from server: " + response.code());
|
throw new GeneralUpdateErrorException("Failed to update. Wrong status code in response from server: " + response.code());
|
||||||
@ -182,7 +183,7 @@ public class UpdateCheckRepositoryImpl implements UpdateCheckRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private UpdateCheck toUpdateCheck(Response response, LatestVersion latestVersion) throws IOException, GeneralUpdateErrorException {
|
private UpdateCheck toUpdateCheck(Response response, LatestVersion latestVersion) throws IOException, GeneralUpdateErrorException {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
final String releaseNote = response.body().string();
|
final String releaseNote = response.body().string();
|
||||||
return new UpdateCheckImpl(releaseNote, latestVersion);
|
return new UpdateCheckImpl(releaseNote, latestVersion);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user