From c8145e30d4a1fdae645ad5292ff1ede58812647f Mon Sep 17 00:00:00 2001 From: Abdelrhman Talat Date: Tue, 6 Oct 2015 23:27:15 +0200 Subject: [PATCH 1/4] Using RetroLambda --- app/build.gradle | 7 +++++++ .../data/api/RepositoriesManager.java | 21 ++++++++----------- .../io/githubclient/data/api/UserManager.java | 17 +++++++-------- .../ui/activity/RepositoriesListActivity.java | 2 +- .../ui/activity/SplashActivity.java | 11 ++++------ .../io/githubclient/utils/Validator.java | 3 --- build.gradle | 1 + 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b6dc3e4..0ae9d79 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' +apply plugin: 'me.tatarka.retrolambda' android { compileSdkVersion 23 @@ -21,6 +22,11 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } dependencies { @@ -40,6 +46,7 @@ dependencies { compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0' compile 'com.google.guava:guava:18.0' + testCompile "org.robolectric:robolectric:3.0" testCompile "org.mockito:mockito-core:1.10.19" diff --git a/app/src/main/java/frogermcs/io/githubclient/data/api/RepositoriesManager.java b/app/src/main/java/frogermcs/io/githubclient/data/api/RepositoriesManager.java index cbcbb02..cbf30fb 100644 --- a/app/src/main/java/frogermcs/io/githubclient/data/api/RepositoriesManager.java +++ b/app/src/main/java/frogermcs/io/githubclient/data/api/RepositoriesManager.java @@ -26,19 +26,16 @@ public RepositoriesManager(User user, GithubApiService githubApiService) { public Observable> getUsersRepositories() { return githubApiService.getUsersRepositories(user.login) - .map(new Func1, ImmutableList>() { - @Override - public ImmutableList call(List repositoriesListResponse) { - final ImmutableList.Builder listBuilder = ImmutableList.builder(); - for (RepositoryResponse repositoryResponse : repositoriesListResponse) { - Repository repository = new Repository(); - repository.id = repositoryResponse.id; - repository.name = repositoryResponse.name; - repository.url = repositoryResponse.url; - listBuilder.add(repository); - } - return listBuilder.build(); + .map(repositoriesListResponse -> { + final ImmutableList.Builder listBuilder = ImmutableList.builder(); + for (RepositoryResponse repositoryResponse : repositoriesListResponse) { + Repository repository = new Repository(); + repository.id = repositoryResponse.id; + repository.name = repositoryResponse.name; + repository.url = repositoryResponse.url; + listBuilder.add(repository); } + return listBuilder.build(); }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); diff --git a/app/src/main/java/frogermcs/io/githubclient/data/api/UserManager.java b/app/src/main/java/frogermcs/io/githubclient/data/api/UserManager.java index bd54675..301626f 100644 --- a/app/src/main/java/frogermcs/io/githubclient/data/api/UserManager.java +++ b/app/src/main/java/frogermcs/io/githubclient/data/api/UserManager.java @@ -20,16 +20,13 @@ public UserManager(GithubApiService githubApiService) { public Observable getUser(String username) { return githubApiService.getUser(username) - .map(new Func1() { - @Override - public User call(UserResponse userResponse) { - User user = new User(); - user.login = userResponse.login; - user.id = userResponse.id; - user.url = userResponse.url; - user.email = userResponse.email; - return user; - } + .map(userResponse -> { + User user = new User(); + user.login = userResponse.login; + user.id = userResponse.id; + user.url = userResponse.url; + user.email = userResponse.email; + return user; }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); diff --git a/app/src/main/java/frogermcs/io/githubclient/ui/activity/RepositoriesListActivity.java b/app/src/main/java/frogermcs/io/githubclient/ui/activity/RepositoriesListActivity.java index a6893ef..4cd1a8b 100644 --- a/app/src/main/java/frogermcs/io/githubclient/ui/activity/RepositoriesListActivity.java +++ b/app/src/main/java/frogermcs/io/githubclient/ui/activity/RepositoriesListActivity.java @@ -43,7 +43,7 @@ protected void onCreate(Bundle savedInstanceState) { ButterKnife.bind(this); presenter.loadRepositories(); - repositoriesListAdapter = new RepositoriesListAdapter(this, new ArrayList()); + repositoriesListAdapter = new RepositoriesListAdapter(this, new ArrayList<>()); lvRepositories.setAdapter(repositoriesListAdapter); } diff --git a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java index c3bf9d7..48f305e 100644 --- a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java +++ b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java @@ -46,14 +46,11 @@ protected void onCreate(Bundle savedInstanceState) { ButterKnife.bind(this); analyticsManager.logScreenView(getClass().getName()); - - WidgetObservable.text(etUsername, true).subscribe(new SimpleObserver() { - @Override - public void onNext(OnTextChangeEvent onTextChangeEvent) { - presenter.username = onTextChangeEvent.text().toString(); - etUsername.setError(null); - } + WidgetObservable.text(etUsername, true).subscribe((onTextChangeEvent) -> { + presenter.username = onTextChangeEvent.text().toString(); + etUsername.setError(null); }); + } //Local dependencies graph is constructed here diff --git a/app/src/main/java/frogermcs/io/githubclient/utils/Validator.java b/app/src/main/java/frogermcs/io/githubclient/utils/Validator.java index 2d1c779..40b3639 100644 --- a/app/src/main/java/frogermcs/io/githubclient/utils/Validator.java +++ b/app/src/main/java/frogermcs/io/githubclient/utils/Validator.java @@ -2,9 +2,6 @@ import android.text.TextUtils; -import javax.inject.Inject; -import javax.inject.Singleton; - /** * Created by Miroslaw Stanek on 23.04.15. */ diff --git a/build.gradle b/build.gradle index 9841714..95028ae 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:1.3.1' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7' + classpath 'me.tatarka:gradle-retrolambda:3.2.3' } } From a3e5b12262971c9a992cab09c1526ad88ff111c3 Mon Sep 17 00:00:00 2001 From: Abdelrhman Talat Date: Thu, 8 Oct 2015 18:56:26 +0200 Subject: [PATCH 2/4] modify the Lombok version on classpath --- build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle b/build.gradle index 95028ae..4b53e57 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,10 @@ buildscript { classpath 'com.android.tools.build:gradle:1.3.1' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7' classpath 'me.tatarka:gradle-retrolambda:3.2.3' + classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' } + // Exclude the version that the android plugin depends on. + configurations.classpath.exclude group: 'com.android.tools.external.lombok' } allprojects { From 39e75ac7f2946a003b823724d09c137a61ce5061 Mon Sep 17 00:00:00 2001 From: Abdelrhman Talat Date: Sat, 10 Oct 2015 13:56:10 +0200 Subject: [PATCH 3/4] clean up --- .../frogermcs/io/githubclient/ui/activity/SplashActivity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java index 48f305e..c2feaa5 100644 --- a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java +++ b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java @@ -19,8 +19,6 @@ import frogermcs.io.githubclient.ui.activity.module.SplashActivityModule; import frogermcs.io.githubclient.ui.activity.presenter.SplashActivityPresenter; import frogermcs.io.githubclient.utils.AnalyticsManager; -import frogermcs.io.githubclient.utils.SimpleObserver; -import rx.android.widget.OnTextChangeEvent; import rx.android.widget.WidgetObservable; From f87224bb13aca1a4fec4bf59ada13af1ca1dbbb4 Mon Sep 17 00:00:00 2001 From: Abdelrhman Talat Date: Sat, 10 Oct 2015 14:22:19 +0200 Subject: [PATCH 4/4] Upgrade RxAndroid to version 1.0.1 --- app/build.gradle | 2 +- .../githubclient/ui/activity/SplashActivity.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0ae9d79..2603bb2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,7 +40,7 @@ dependencies { compile 'com.jakewharton:butterknife:7.0.1' compile 'com.jakewharton.timber:timber:3.1.0' - compile 'io.reactivex:rxandroid:0.24.0' + compile 'io.reactivex:rxandroid:1.0.1' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0' diff --git a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java index c2feaa5..4a1394d 100644 --- a/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java +++ b/app/src/main/java/frogermcs/io/githubclient/ui/activity/SplashActivity.java @@ -2,7 +2,6 @@ import android.content.Intent; import android.os.Bundle; -import android.os.Debug; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -13,13 +12,13 @@ import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; +import butterknife.OnTextChanged; import frogermcs.io.githubclient.GithubClientApplication; import frogermcs.io.githubclient.R; import frogermcs.io.githubclient.data.model.User; import frogermcs.io.githubclient.ui.activity.module.SplashActivityModule; import frogermcs.io.githubclient.ui.activity.presenter.SplashActivityPresenter; import frogermcs.io.githubclient.utils.AnalyticsManager; -import rx.android.widget.WidgetObservable; public class SplashActivity extends BaseActivity { @@ -42,15 +41,16 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); ButterKnife.bind(this); - analyticsManager.logScreenView(getClass().getName()); - WidgetObservable.text(etUsername, true).subscribe((onTextChangeEvent) -> { - presenter.username = onTextChangeEvent.text().toString(); - etUsername.setError(null); - }); + } + @OnTextChanged(R.id.etUsername) + public void etUsernameTextChanged(CharSequence text){ + presenter.username = text.toString(); + etUsername.setError(null); } + //Local dependencies graph is constructed here @Override protected void setupActivityComponent() {