Skip to content
Snippets Groups Projects
Unverified Commit 445eb50e authored by Tamás Szabó's avatar Tamás Szabó Committed by GitHub
Browse files

Merge pull request #8 from szakitom/interactor

implements interactors
parents e528ec93 b7b9dadb
Branches
No related tags found
1 merge request!9labor5
Showing with 87 additions and 7 deletions
No preview for this file type
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">
......
package me.szaki.xkcd.xkcdbrowser.interactor; package me.szaki.xkcd.xkcdbrowser.interactor;
import javax.inject.Singleton;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor; import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.DBInteractor;
@Module @Module
public class InteractorModule { public class InteractorModule {
@Singleton
@Provides @Provides
public ComicsInteractor provideComicsInteractor() { public ComicsInteractor provideComicsInteractor() {
return new ComicsInteractor(); return new ComicsInteractor();
} }
@Singleton
@Provides
public DBInteractor provideDBInteractor() {
return new DBInteractor();
}
} }
...@@ -2,6 +2,8 @@ package me.szaki.xkcd.xkcdbrowser.interactor.comics; ...@@ -2,6 +2,8 @@ package me.szaki.xkcd.xkcdbrowser.interactor.comics;
import java.io.IOException; import java.io.IOException;
import java.util.Date;
import java.util.Random;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -20,4 +22,13 @@ public class ComicsInteractor { ...@@ -20,4 +22,13 @@ public class ComicsInteractor {
public Comic getComic(long id) throws IOException { public Comic getComic(long id) throws IOException {
return this.comicApi.getComic(id).execute().body(); return this.comicApi.getComic(id).execute().body();
} }
public Comic getRandomComic() throws IOException {
Random r = new Random(new Date().getTime());
return this.comicApi.getComic(r.nextLong()).execute().body();
}
public Comic getLatestComic() throws IOException {
return this.comicApi.getCurrentComic().execute().body();
}
} }
package me.szaki.xkcd.xkcdbrowser.interactor.comics;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javax.inject.Inject;
import me.szaki.xkcd.xkcdbrowser.database.ComicsDatabase;
import me.szaki.xkcd.xkcdbrowser.model.ComicStrip;
public class DBInteractor {
@Inject
ComicsDatabase db;
public List<ComicStrip> getComics() {
return db.getDAO().getAllComics();
}
public ComicStrip getComic(Long id) {
return db.getDAO().getComic(id);
}
public void deleteComic(ComicStrip c) {
db.getDAO().delete(c);
}
public void saveComic(ComicStrip c) {
db.getDAO().insertAll(c);
}
}
package me.szaki.xkcd.xkcdbrowser.network; package me.szaki.xkcd.xkcdbrowser.network;
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2018-04-16T20:13:49.474+02:00") @javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2018-04-16T23:20:40.798+02:00")
public class StringUtil { public class StringUtil {
/** /**
* Check if the given array contains the given value (with case-insensitive comparison). * Check if the given array contains the given value (with case-insensitive comparison).
......
...@@ -17,6 +17,17 @@ import java.util.Map; ...@@ -17,6 +17,17 @@ import java.util.Map;
public interface ComicApi { public interface ComicApi {
/**
* Get the current comic
*
* @return Call<Comic>
*/
@GET("info.0.json")
Call<Comic> getCurrentComic();
/** /**
* Get a comic * Get a comic
* *
......
...@@ -4,8 +4,8 @@ package me.szaki.xkcd.xkcdbrowser.ui.favorites; ...@@ -4,8 +4,8 @@ package me.szaki.xkcd.xkcdbrowser.ui.favorites;
import javax.inject.Inject; import javax.inject.Inject;
import me.szaki.xkcd.xkcdbrowser.XKCDBrowserApplication; import me.szaki.xkcd.xkcdbrowser.XKCDBrowserApplication;
import me.szaki.xkcd.xkcdbrowser.database.ComicsDatabase;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor; import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.DBInteractor;
import me.szaki.xkcd.xkcdbrowser.ui.Presenter; import me.szaki.xkcd.xkcdbrowser.ui.Presenter;
public class FavoritesPresenter extends Presenter<FavoritesScreen> { public class FavoritesPresenter extends Presenter<FavoritesScreen> {
...@@ -13,7 +13,7 @@ public class FavoritesPresenter extends Presenter<FavoritesScreen> { ...@@ -13,7 +13,7 @@ public class FavoritesPresenter extends Presenter<FavoritesScreen> {
ComicsInteractor comicsInteractor; ComicsInteractor comicsInteractor;
@Inject @Inject
ComicsDatabase db; DBInteractor db;
public FavoritesPresenter () { public FavoritesPresenter () {
XKCDBrowserApplication.injector.inject(this); XKCDBrowserApplication.injector.inject(this);
......
...@@ -3,9 +3,9 @@ package me.szaki.xkcd.xkcdbrowser.ui.main; ...@@ -3,9 +3,9 @@ package me.szaki.xkcd.xkcdbrowser.ui.main;
import javax.inject.Inject; import javax.inject.Inject;
import me.szaki.xkcd.xkcdbrowser.database.ComicsDatabase;
import me.szaki.xkcd.xkcdbrowser.XKCDBrowserApplication; import me.szaki.xkcd.xkcdbrowser.XKCDBrowserApplication;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor; import me.szaki.xkcd.xkcdbrowser.interactor.comics.ComicsInteractor;
import me.szaki.xkcd.xkcdbrowser.interactor.comics.DBInteractor;
import me.szaki.xkcd.xkcdbrowser.ui.Presenter; import me.szaki.xkcd.xkcdbrowser.ui.Presenter;
public class MainPresenter extends Presenter<MainScreen> { public class MainPresenter extends Presenter<MainScreen> {
...@@ -13,7 +13,7 @@ public class MainPresenter extends Presenter<MainScreen> { ...@@ -13,7 +13,7 @@ public class MainPresenter extends Presenter<MainScreen> {
ComicsInteractor comicsInteractor; ComicsInteractor comicsInteractor;
@Inject @Inject
ComicsDatabase db; DBInteractor db;
public MainPresenter () { public MainPresenter () {
XKCDBrowserApplication.injector.inject(this); XKCDBrowserApplication.injector.inject(this);
......
...@@ -40,7 +40,22 @@ paths: ...@@ -40,7 +40,22 @@ paths:
description: "successful operation" description: "successful operation"
schema: schema:
$ref: "#/definitions/Comic" $ref: "#/definitions/Comic"
/info.0.json:
get:
tags:
- "comic"
summary: "Get the current comic"
description: ""
operationId: "getCurrentComic"
consumes:
- "application/json"
produces:
- "application/json"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Comic"
definitions: definitions:
Comic: Comic:
type: "object" type: "object"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment