use of com.github.moko256.latte.client.base.entity.User in project twicalico by moko256.
the class MainActivity method updateAccountsList.
private void updateAccountsList() {
disposable.add(Single.create(singleSubscriber -> {
try {
List<AccessToken> accessTokens = accountsModel.getAccessTokens();
ArrayList<User> users = new ArrayList<>(accessTokens.size());
for (AccessToken accessToken : accessTokens) {
long id = accessToken.getUserId();
CachedUsersSQLiteOpenHelper userHelper = new CachedUsersSQLiteOpenHelper(getApplicationContext(), accessToken);
User user = userHelper.getCachedUser(id);
if (user == null) {
try {
user = ((GlobalApplication) getApplication()).createApiClientInstance(accessToken).verifyCredentials();
userHelper.addCachedUser(user);
} catch (Throwable e) {
e.printStackTrace();
} finally {
userHelper.close();
}
}
users.add(user);
}
singleSubscriber.onSuccess(new Pair<>(users, accessTokens));
} catch (Throwable e) {
singleSubscriber.tryOnError(e);
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(o -> {
@SuppressWarnings("unchecked") Pair<ArrayList<User>, ArrayList<AccessToken>> pairs = (Pair<ArrayList<User>, ArrayList<AccessToken>>) o;
adapter.clearImages();
adapter.addAndUpdate(pairs.first, pairs.second);
adapter.setSelectedPosition(client.getAccessToken());
adapter.notifyDataSetChanged();
}, Throwable::printStackTrace));
}
use of com.github.moko256.latte.client.base.entity.User in project twicalico by moko256.
the class UsersAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
User item = userCache.get(data.get(i));
if (item != null) {
requestManager.load(converter.convertProfileIconUriBySize(item, DpToPxKt.dpToPx(context, 40))).circleCrop().transition(DrawableTransitionOptions.withCrossFade()).into(viewHolder.userUserImage);
CharSequence userNameText = TwitterStringUtils.plusUserMarks(item.getName(), viewHolder.userUserName, item.isProtected(), item.isVerified());
viewHolder.userUserName.setText(userNameText);
Emoji[] userNameEmojis = item.getEmojis();
if (userNameEmojis != null) {
viewHolder.disposable.add(new EmojiToTextViewSetter(requestManager, viewHolder.userUserName, userNameText, userNameEmojis));
}
viewHolder.userUserId.setText(TwitterStringUtils.plusAtMark(item.getScreenName()));
viewHolder.itemView.setOnClickListener(v -> {
ActivityOptionsCompat animation = ActivityOptionsCompat.makeSceneTransitionAnimation(((Activity) context), viewHolder.userUserImage, "icon_image");
context.startActivity(GlobalApplicationKt.setAccountKeyForActivity(ShowUserActivity.getIntent(context, item.getId()), ((Activity) context)), animation.toBundle());
});
}
}
use of com.github.moko256.latte.client.base.entity.User in project twicalico by moko256.
the class CachedUsersSQLiteOpenHelperTest method updateCacheTest.
private void updateCacheTest() {
helper.addCachedUser(generateUser(TEST_DUMMY_USER_ID_1, TEST_DUMMY_USER_NAME_1));
User updatedStatusResult = helper.getCachedUser(TEST_DUMMY_USER_ID_1);
assertEquals(updatedStatusResult.getName(), TEST_DUMMY_USER_NAME_1);
}
Aggregations