mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
some UI enhancements
This commit is contained in:
parent
ec3b3fa175
commit
9e66424645
@ -92,9 +92,5 @@ public class IssuePullsTimelineAdapter extends BaseRecyclerAdapter<TimelineModel
|
||||
return getData().get(position).getType();
|
||||
}
|
||||
|
||||
@Override public void insertItems(@NonNull List<TimelineModel> items) {
|
||||
super.insertItems(items);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.fastaccess.ui.adapter.viewholder;
|
||||
import android.net.Uri;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
@ -76,11 +77,10 @@ public class PullStatusViewHolder extends BaseViewHolder<PullRequestStatusModel>
|
||||
.forEach(statusesModel -> builder
|
||||
.append(ContextCompat.getDrawable(statuses.getContext(), statusesModel.getState().getDrawableRes()))
|
||||
.append(" ")
|
||||
.url(statusesModel.getDescription(), v -> {
|
||||
SchemeParser.launchUri(v.getContext(), Uri.parse(statusesModel.getTargetUrl()));
|
||||
})
|
||||
.url(statusesModel.getDescription(), v -> SchemeParser.launchUri(v.getContext(), Uri.parse(statusesModel.getTargetUrl())))
|
||||
.append("\n"));
|
||||
if (!InputHelper.isEmpty(builder)) {
|
||||
statuses.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
statuses.setText(builder);
|
||||
statuses.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
|
||||
@ -264,14 +264,18 @@ public class IssuePagerActivity extends BaseActivity<IssuePagerMvp.View, IssuePa
|
||||
.append(parsedDate).append("\n").append(issueModel.getRepoId()));
|
||||
avatarLayout.setUrl(userModel.getAvatarUrl(), userModel.getLogin());
|
||||
}
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForIssues(this, issueModel)));
|
||||
if (!getPresenter().isLocked() || getPresenter().isOwner()) {
|
||||
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
hideShowFab();
|
||||
}
|
||||
});
|
||||
if (pager.getAdapter() == null) {
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForIssues(this, issueModel)));
|
||||
if (!getPresenter().isLocked() || getPresenter().isOwner()) {
|
||||
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
hideShowFab();
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
onUpdateTimeline();
|
||||
}
|
||||
hideShowFab();
|
||||
}
|
||||
@ -308,8 +312,8 @@ public class IssuePagerActivity extends BaseActivity<IssuePagerMvp.View, IssuePa
|
||||
@Override public void onUpdateTimeline() {
|
||||
showMessage(R.string.success, R.string.labels_added_successfully);
|
||||
IssueTimelineFragment issueDetailsView = (IssueTimelineFragment) pager.getAdapter().instantiateItem(pager, 0);
|
||||
if (issueDetailsView != null) {
|
||||
issueDetailsView.onRefresh();
|
||||
if (issueDetailsView != null && getPresenter().getIssue() != null) {
|
||||
issueDetailsView.onRefresh(getPresenter().getIssue());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ public class IssueTimelineFragment extends BaseFragment<IssueTimelineMvp.View, I
|
||||
return;
|
||||
}
|
||||
if (page == 1) {
|
||||
items.add(0, TimelineModel.constructHeader(getPresenter().issue));
|
||||
items.add(0, TimelineModel.constructHeader(getPresenter().getIssue()));
|
||||
adapter.insertItems(items);
|
||||
} else {
|
||||
adapter.addItems(items);
|
||||
@ -211,6 +211,11 @@ public class IssueTimelineFragment extends BaseFragment<IssueTimelineMvp.View, I
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onRefresh(@NonNull Issue issue) {
|
||||
getPresenter().onUpdateIssue(issue);
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
|
||||
@ -8,6 +8,7 @@ import android.support.v4.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.fastaccess.data.dao.TimelineModel;
|
||||
import com.fastaccess.data.dao.model.Comment;
|
||||
import com.fastaccess.data.dao.model.Issue;
|
||||
import com.fastaccess.data.dao.model.User;
|
||||
import com.fastaccess.data.dao.types.ReactionTypes;
|
||||
import com.fastaccess.provider.rest.loadmore.OnLoadMore;
|
||||
@ -48,6 +49,8 @@ public interface IssueTimelineMvp {
|
||||
void showReactionsPopup(@NonNull ReactionTypes type, @NonNull String login, @NonNull String repoId, long idOrNumber, boolean isHeadre);
|
||||
|
||||
void onSetHeader(@NonNull TimelineModel timelineModel);
|
||||
|
||||
void onRefresh(@NonNull Issue issue);
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter, BaseViewHolder.OnItemClickListener<TimelineModel>,
|
||||
@ -72,5 +75,7 @@ public interface IssueTimelineMvp {
|
||||
void onHandleReaction(@IdRes int viewId, long id, @ReactionsProvider.ReactionType int reactionType);
|
||||
|
||||
boolean isCallingApi(long id, int vId);
|
||||
|
||||
void onUpdateIssue(@NonNull Issue issue);
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,12 +30,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 31 Mar 2017, 7:17 PM
|
||||
*/
|
||||
|
||||
public class IssueTimelinePresenter extends BasePresenter<IssueTimelineMvp.View> implements IssueTimelineMvp.Presenter {
|
||||
@Getter public class IssueTimelinePresenter extends BasePresenter<IssueTimelineMvp.View> implements IssueTimelineMvp.Presenter {
|
||||
@icepick.State Issue issue;
|
||||
private ArrayList<TimelineModel> timeline = new ArrayList<>();
|
||||
private ReactionsProvider reactionsProvider;
|
||||
@ -201,6 +202,10 @@ public class IssueTimelinePresenter extends BasePresenter<IssueTimelineMvp.View>
|
||||
return getReactionsProvider().isCallingApi(id, vId);
|
||||
}
|
||||
|
||||
@Override public void onUpdateIssue(@NonNull Issue issue) {
|
||||
this.issue = issue;
|
||||
}
|
||||
|
||||
@NonNull private ReactionsProvider getReactionsProvider() {
|
||||
if (reactionsProvider == null) {
|
||||
reactionsProvider = new ReactionsProvider();
|
||||
|
||||
@ -259,48 +259,53 @@ public class PullRequestPagerActivity extends BaseActivity<PullRequestPagerMvp.V
|
||||
title.setText(SpannableBuilder.builder().append(pullRequest.getTitle()));
|
||||
}
|
||||
detailsIcon.setVisibility(InputHelper.isEmpty(pullRequest.getTitle()) || !ViewHelper.isEllipsed(title) ? View.GONE : View.VISIBLE);
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForPullRequest(this, pullRequest)));
|
||||
tabs.setupWithViewPager(pager);
|
||||
if (!getPresenter().isLocked() || getPresenter().isOwner()) {
|
||||
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
if (pager.getAdapter() == null) {
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForPullRequest(this,
|
||||
pullRequest)));
|
||||
tabs.setupWithViewPager(pager);
|
||||
if (!getPresenter().isLocked() || getPresenter().isOwner()) {
|
||||
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
tabs.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager) {
|
||||
@Override public void onTabReselected(TabLayout.Tab tab) {
|
||||
super.onTabReselected(tab);
|
||||
onScrollTop(tab.getPosition());
|
||||
}
|
||||
});
|
||||
}
|
||||
tabs.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager) {
|
||||
@Override public void onTabReselected(TabLayout.Tab tab) {
|
||||
super.onTabReselected(tab);
|
||||
onScrollTop(tab.getPosition());
|
||||
if (tabs.getTabAt(2) != null) {
|
||||
tabs.getTabAt(2)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.files))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getChangedFiles()))
|
||||
.append(")"));
|
||||
}
|
||||
});
|
||||
if (tabs.getTabAt(2) != null) {
|
||||
tabs.getTabAt(2)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.files))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getChangedFiles()))
|
||||
.append(")"));
|
||||
}
|
||||
if (tabs.getTabAt(1) != null) {
|
||||
tabs.getTabAt(1)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.commits))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getCommits()))
|
||||
.append(")"));
|
||||
}
|
||||
if (tabs.getTabAt(0) != null) {
|
||||
tabs.getTabAt(0)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.details))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getComments()))
|
||||
.append(")"));
|
||||
if (tabs.getTabAt(1) != null) {
|
||||
tabs.getTabAt(1)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.commits))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getCommits()))
|
||||
.append(")"));
|
||||
}
|
||||
if (tabs.getTabAt(0) != null) {
|
||||
tabs.getTabAt(0)
|
||||
.setText(SpannableBuilder.builder()
|
||||
.append(getString(R.string.details))
|
||||
.append(" ")
|
||||
.append("(")
|
||||
.append(String.valueOf(pullRequest.getComments()))
|
||||
.append(")"));
|
||||
}
|
||||
} else {
|
||||
onUpdateTimeline();
|
||||
}
|
||||
hideShowFab();
|
||||
}
|
||||
@ -361,8 +366,8 @@ public class PullRequestPagerActivity extends BaseActivity<PullRequestPagerMvp.V
|
||||
@Override public void onUpdateTimeline() {
|
||||
showMessage(R.string.success, R.string.labels_added_successfully);
|
||||
PullRequestTimelineFragment pullRequestDetailsView = (PullRequestTimelineFragment) pager.getAdapter().instantiateItem(pager, 0);
|
||||
if (pullRequestDetailsView != null) {
|
||||
pullRequestDetailsView.onRefresh();
|
||||
if (pullRequestDetailsView != null && getPresenter().getPullRequest() != null) {
|
||||
pullRequestDetailsView.onRefresh(getPresenter().getPullRequest());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -284,6 +284,11 @@ public class PullRequestTimelineFragment extends BaseFragment<PullRequestTimelin
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onRefresh(@NonNull PullRequest pullRequest) {
|
||||
getPresenter().onUpdatePullRequest(pullRequest);
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
|
||||
@ -10,6 +10,7 @@ import com.fastaccess.data.dao.EditReviewCommentModel;
|
||||
import com.fastaccess.data.dao.ReviewCommentModel;
|
||||
import com.fastaccess.data.dao.TimelineModel;
|
||||
import com.fastaccess.data.dao.model.Comment;
|
||||
import com.fastaccess.data.dao.model.PullRequest;
|
||||
import com.fastaccess.data.dao.model.User;
|
||||
import com.fastaccess.data.dao.types.ReactionTypes;
|
||||
import com.fastaccess.provider.rest.loadmore.OnLoadMore;
|
||||
@ -64,6 +65,8 @@ public interface PullRequestTimelineMvp {
|
||||
void onRemoveReviewComment(int groupPosition, int commentPosition);
|
||||
|
||||
void onSetHeader(@NonNull TimelineModel timelineModel);
|
||||
|
||||
void onRefresh(@NonNull PullRequest pullRequest);
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter, BaseViewHolder.OnItemClickListener<TimelineModel>,
|
||||
@ -90,5 +93,7 @@ public interface PullRequestTimelineMvp {
|
||||
boolean isMerged();
|
||||
|
||||
boolean isCallingApi(long id, int vId);
|
||||
|
||||
void onUpdatePullRequest(@NonNull PullRequest pullRequest);
|
||||
}
|
||||
}
|
||||
|
||||
@ -227,6 +227,10 @@ public class PullRequestTimelinePresenter extends BasePresenter<PullRequestTimel
|
||||
return getReactionsProvider().isCallingApi(id, vId);
|
||||
}
|
||||
|
||||
@Override public void onUpdatePullRequest(@NonNull PullRequest pullRequest) {
|
||||
this.pullRequest = pullRequest;
|
||||
}
|
||||
|
||||
@Override public boolean isPreviouslyReacted(long commentId, int vId) {
|
||||
return getReactionsProvider().isPreviouslyReacted(commentId, vId);
|
||||
}
|
||||
|
||||
@ -9,7 +9,8 @@
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|center">
|
||||
android:layout_gravity="top|center"
|
||||
android:layout_marginTop="@dimen/spacing_xs_large">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
@ -32,8 +33,8 @@
|
||||
android:id="@+id/userInformation"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="@dimen/spacing_xs_large"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:paddingBottom="@dimen/spacing_xs_large">
|
||||
|
||||
<com.fastaccess.ui.widgets.AvatarLayout
|
||||
android:id="@+id/avatarLayout"
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_xs_large"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
@ -46,7 +47,6 @@
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_xs_large"
|
||||
app:cardBackgroundColor="?card_background"
|
||||
app:cardCornerRadius="0dp"
|
||||
app:cardUseCompatPadding="false"
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
style="@style/TextAppearance.AppCompat.Small"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="true"
|
||||
tools:text="Hello World"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user