Search in sources :

Example 1 with User

use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.

the class RepositoriesPresenter method reloadRepos.

/**
     * Starts loading repositories
     */
public void reloadRepos() {
    String accessToken = AppSettings.getAccessToken();
    if (TextUtils.isEmpty(accessToken)) {
        Disposable subscription = mTravisRestClient.getApiService().getRepos("").subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(reposHandler());
        mSubscriptions.add(subscription);
    } else {
        Disposable subscription = mTravisRestClient.getApiService().getUser().doOnSuccess(this::cacheUserData).flatMap(new Function<User, SingleSource<List<Repo>>>() {

            @Override
            public SingleSource<List<Repo>> apply(@NonNull User user) throws Exception {
                String loginName = mUser.getLogin();
                return mTravisRestClient.getApiService().getUserRepos(loginName);
            }
        }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(reposHandler());
        mSubscriptions.add(subscription);
    }
}
Also used : CompositeDisposable(io.reactivex.disposables.CompositeDisposable) Disposable(io.reactivex.disposables.Disposable) Function(io.reactivex.functions.Function) User(com.khmelenko.lab.varis.network.response.User) NonNull(io.reactivex.annotations.NonNull) List(java.util.List)

Example 2 with User

use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.

the class TestRepositoriesPresenter method testReloadReposWithToken.

@Test
public void testReloadReposWithToken() {
    User user = new User();
    user.setLogin("login");
    when(mTravisRestClient.getApiService().getUser()).thenReturn(Single.just(user));
    // pre-setting access token
    AppSettings.putAccessToken("token");
    mRepositoriesPresenter.reloadRepos();
    verify(mTaskManager).getUser();
    ArgumentCaptor<User> userCaptor = ArgumentCaptor.forClass(User.class);
    verify(mRepositoriesView, times(2)).updateUserData(userCaptor.capture());
    assertNotNull(userCaptor.getValue());
    assertEquals(user.getLogin(), userCaptor.getValue().getLogin());
    verify(mCacheStorage).saveUser(eq(user));
    verify(mTaskManager).userRepos(eq(user.getLogin()));
}
Also used : User(com.khmelenko.lab.varis.network.response.User) Test(org.junit.Test)

Example 3 with User

use of com.khmelenko.lab.varis.network.response.User in project Varis-Android by dkhmelenko.

the class CacheStorage method restoreUser.

/**
     * Restores user from the cache
     *
     * @return User
     */
public User restoreUser() {
    String fileData = FileUtils.readInternalFile(USER_FILE);
    Gson gson = new Gson();
    User user = gson.fromJson(fileData, User.class);
    return user;
}
Also used : User(com.khmelenko.lab.varis.network.response.User) Gson(com.google.gson.Gson)

Aggregations

User (com.khmelenko.lab.varis.network.response.User)3 Gson (com.google.gson.Gson)1 NonNull (io.reactivex.annotations.NonNull)1 CompositeDisposable (io.reactivex.disposables.CompositeDisposable)1 Disposable (io.reactivex.disposables.Disposable)1 Function (io.reactivex.functions.Function)1 List (java.util.List)1 Test (org.junit.Test)1