Created
January 26, 2016 13:36
-
-
Save digitalbuddha/c13a4ae777c70ea8119c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Observable.fromCallable(() -> { | |
RedditData result = null; | |
Response response = makeRequest(); | |
String diskStorage = null; | |
try { | |
ResponseBody body = response.body(); | |
BufferedSource sourceForDisk = body.source(); | |
MediaType contentType = body.contentType(); | |
Charset charset = contentType != null ? contentType.charset(UTF_8) : UTF_8; | |
Buffer buffer = sourceForDisk.buffer(); | |
Buffer sourceForParser = buffer.clone(); | |
File file = new File(getContext().getCacheDir(), "file"); | |
BufferedSink sink = Okio.buffer(Okio.sink(file)); | |
sink.writeAll(sourceForDisk.buffer()); | |
InputStreamReader inputStreamReader = new InputStreamReader(sourceForParser.inputStream()); | |
result = new Gson().fromJson(inputStreamReader, RedditData.class); | |
diskStorage = Okio.buffer(Okio.source(file)).readString(charset); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
diskStorage=diskStorage; | |
return result; | |
} | |
) | |
. | |
subscribeOn(Schedulers.io() | |
) | |
. | |
observeOn(AndroidSchedulers.mainThread() | |
) | |
. | |
subscribe(); | |
} | |
private Response makeRequest() throws IOException { | |
Request request = new Request.Builder() | |
.url("https://www.reddit.com/r/aww/new/.json") | |
.build(); | |
return new OkHttpClient().newCall(request).execute(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment