diff --git a/app/build.gradle b/app/build.gradle index b6dc3e4..2603bb2 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 { @@ -34,12 +40,13 @@ 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' 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..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,15 +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 frogermcs.io.githubclient.utils.SimpleObserver; -import rx.android.widget.OnTextChangeEvent; -import rx.android.widget.WidgetObservable; public class SplashActivity extends BaseActivity { @@ -44,18 +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(new SimpleObserver() { - @Override - public void onNext(OnTextChangeEvent 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() { 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..4b53e57 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,11 @@ 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' + 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 {