mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
added settings to toggle clicking twice to exit app to close #115.
and adds commits to be filtered by the branch selected, however its broken until i fix it.
This commit is contained in:
parent
c0c8b97091
commit
cf1e903780
@ -69,7 +69,7 @@ public class FragmentPagerAdapterModel {
|
||||
@NonNull String defaultBranch) {
|
||||
return Stream.of(new FragmentPagerAdapterModel(context.getString(R.string.readme), ViewerView.newInstance(url, true)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.files), RepoFilePathView.newInstance(login, repoId, null, defaultBranch)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.commits), RepoCommitsView.newInstance(repoId, login)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.commits), RepoCommitsView.newInstance(repoId, login, defaultBranch)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.releases), RepoReleasesView.newInstance(repoId, login)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.contributors), RepoContributorsView.newInstance(repoId, login)))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -35,93 +35,94 @@ import rx.Observable;
|
||||
public interface RepoService {
|
||||
|
||||
|
||||
@GET @Headers("Accept: application/vnd.github.VERSION.raw")
|
||||
@NonNull @GET @Headers("Accept: application/vnd.github.VERSION.raw")
|
||||
Observable<String> getFileAsStream(@Url String url);
|
||||
|
||||
@POST("markdown")
|
||||
@NonNull @POST("markdown")
|
||||
Observable<String> convertReadmeToHtml(@Body MarkdownModel model);
|
||||
|
||||
@GET("repos/{login}/{repoId}") @Headers({"Accept: application/vnd.github.drax-preview+json"})
|
||||
@NonNull @GET("repos/{login}/{repoId}") @Headers({"Accept: application/vnd.github.drax-preview+json"})
|
||||
Observable<RepoModel> getRepo(@Path("login") String login, @Path("repoId") String repoId);
|
||||
|
||||
@DELETE("repos/{login}/{repoId}")
|
||||
@NonNull @DELETE("repos/{login}/{repoId}")
|
||||
Observable<Response<Boolean>> deleteRepo(@Path("login") String login, @Path("repoId") String repoId);
|
||||
|
||||
@GET @Headers("Accept: application/vnd.github.html")
|
||||
@NonNull @GET @Headers("Accept: application/vnd.github.html")
|
||||
Observable<String> getReadmeHtml(@NonNull @Url String url);
|
||||
|
||||
@GET("user/starred/{owner}/{repo}")
|
||||
@NonNull @GET("user/starred/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> checkStarring(@NonNull @Path("owner") String login, @NonNull @Path("repo") String repoId);
|
||||
|
||||
@PUT("user/starred/{owner}/{repo}")
|
||||
@NonNull @PUT("user/starred/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> starRepo(@NonNull @Path("owner") String login, @NonNull @Path("repo") String repoId);
|
||||
|
||||
@DELETE("user/starred/{owner}/{repo}")
|
||||
@NonNull @DELETE("user/starred/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> unstarRepo(@NonNull @Path("owner") String login, @NonNull @Path("repo") String repoId);
|
||||
|
||||
@POST("/repos/{owner}/{repo}/forks")
|
||||
@NonNull @POST("/repos/{owner}/{repo}/forks")
|
||||
Observable<RepoModel> forkRepo(@NonNull @Path("owner") String login, @NonNull @Path("repo") String repoId);
|
||||
|
||||
@GET("user/subscriptions/{owner}/{repo}")
|
||||
@NonNull @GET("user/subscriptions/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> isWatchingRepo(@Path("owner") String owner, @Path("repo") String repo);
|
||||
|
||||
@PUT("user/subscriptions/{owner}/{repo}")
|
||||
@NonNull @PUT("user/subscriptions/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> watchRepo(@Path("owner") String owner, @Path("repo") String repo);
|
||||
|
||||
@DELETE("user/subscriptions/{owner}/{repo}")
|
||||
@NonNull @DELETE("user/subscriptions/{owner}/{repo}")
|
||||
Observable<Response<Boolean>> unwatchRepo(@Path("owner") String owner, @Path("repo") String repo);
|
||||
|
||||
@GET("repos/{owner}/{repo}/commits")
|
||||
Observable<Pageable<CommitModel>> getCommits(@Path("owner") String owner, @Path("repo") String repo, @Query("page") int page);
|
||||
@NonNull @GET("repos/{owner}/{repo}/commits/{branch}")
|
||||
Observable<Pageable<CommitModel>> getCommits(@Path("owner") String owner, @Path("repo") String repo,
|
||||
@NonNull @Path("branch") String branch, @Query("page") int page);
|
||||
|
||||
@GET("repos/{owner}/{repo}/releases")
|
||||
@NonNull @GET("repos/{owner}/{repo}/releases")
|
||||
@Headers("Accept: application/vnd.github.VERSION.full+json")
|
||||
Observable<Pageable<ReleasesModel>> getReleases(@Path("owner") String owner, @Path("repo") String repo, @Query("page") int page);
|
||||
|
||||
@GET("repos/{owner}/{repo}/contributors")
|
||||
@NonNull @GET("repos/{owner}/{repo}/contributors")
|
||||
Observable<Pageable<UserModel>> getContributors(@Path("owner") String owner, @Path("repo") String repo, @Query("page") int page);
|
||||
|
||||
@GET("repos/{owner}/{repo}/commits/{sha}")
|
||||
@NonNull @GET("repos/{owner}/{repo}/commits/{sha}")
|
||||
Observable<CommitModel> getCommit(@Path("owner") String owner, @Path("repo") String repo, @Path("sha") String sha);
|
||||
|
||||
@GET("repos/{owner}/{repo}/commits/{sha}/comments")
|
||||
@NonNull @GET("repos/{owner}/{repo}/commits/{sha}/comments")
|
||||
Observable<Pageable<CommentsModel>> getCommitComments(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo,
|
||||
@NonNull @Path("sha") String ref, @Query("page") int page);
|
||||
|
||||
@POST("repos/{owner}/{repo}/commits/{sha}/comments")
|
||||
@NonNull @POST("repos/{owner}/{repo}/commits/{sha}/comments")
|
||||
@Headers("Accept: application/vnd.github.VERSION.full+json")
|
||||
Observable<CommentsModel> postCommitComment(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo,
|
||||
@NonNull @Path("sha") String ref, @Body CommentRequestModel model);
|
||||
|
||||
@PATCH("repos/{owner}/{repo}/comments/{id}")
|
||||
@NonNull @PATCH("repos/{owner}/{repo}/comments/{id}")
|
||||
@Headers("Accept: application/vnd.github.VERSION.full+json")
|
||||
Observable<CommentsModel> editCommitComment(@Path("owner") String owner, @Path("repo") String repo, @Path("id") long id,
|
||||
@Body CommentRequestModel body);
|
||||
|
||||
@DELETE("repos/{owner}/{repo}/comments/{id}")
|
||||
@NonNull @DELETE("repos/{owner}/{repo}/comments/{id}")
|
||||
Observable<Response<Boolean>> deleteComment(@Path("owner") String owner, @Path("repo") String repo, @Path("id") long id);
|
||||
|
||||
@GET("repos/{owner}/{repo}/contents/{path}")
|
||||
@NonNull @GET("repos/{owner}/{repo}/contents/{path}")
|
||||
Observable<Pageable<RepoFilesModel>> getRepoFiles(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo,
|
||||
@NonNull @Path("path") String path, @NonNull @Query("ref") String ref);
|
||||
|
||||
@GET("repos/{owner}/{repo}/labels")
|
||||
@NonNull @GET("repos/{owner}/{repo}/labels")
|
||||
Observable<Pageable<LabelModel>> getLabels(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo);
|
||||
|
||||
@GET("repos/{owner}/{repo}/collaborators/{username}")
|
||||
@NonNull @GET("repos/{owner}/{repo}/collaborators/{username}")
|
||||
Observable<Response<Boolean>> isCollaborator(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo,
|
||||
@NonNull @Path("username") String username);
|
||||
|
||||
@GET("repos/{owner}/{repo}/branches")
|
||||
@NonNull @GET("repos/{owner}/{repo}/branches")
|
||||
Observable<Pageable<BranchesModel>> getBranches(@NonNull @Path("owner") String owner, @NonNull @Path("repo") String repo);
|
||||
|
||||
@GET("repos/{owner}/{repo}/milestones")
|
||||
@NonNull @GET("repos/{owner}/{repo}/milestones")
|
||||
Observable<Pageable<MilestoneModel>> getMilestones(@Path("owner") String owner, @Path("repo") String repo);
|
||||
|
||||
@POST("repos/{owner}/{repo}/milestones")
|
||||
@NonNull @POST("repos/{owner}/{repo}/milestones")
|
||||
Observable<MilestoneModel> createMilestone(@Path("owner") String owner, @Path("repo") String repo,
|
||||
@Body CreateMilestoneModel create);
|
||||
|
||||
@GET("repos/{owner}/{repo}/assignees")
|
||||
@NonNull @GET("repos/{owner}/{repo}/assignees")
|
||||
Observable<Pageable<UserModel>> getAssignees(@Path("owner") String owner, @Path("repo") String repo);
|
||||
}
|
||||
|
||||
@ -98,4 +98,8 @@ public class PrefGetter {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean isTwiceBackButtonDisabled() {
|
||||
return PrefHelper.getBoolean("back_button");
|
||||
}
|
||||
}
|
||||
|
||||
@ -130,14 +130,25 @@ public class MainView extends BaseActivity<MainMvp.View, MainPresenter> implemen
|
||||
}
|
||||
|
||||
@Override public void onBackPressed() {
|
||||
boolean clickTwichToExit = !PrefGetter.isTwiceBackButtonDisabled();
|
||||
if (drawerLayout != null) {
|
||||
if (getPresenter().canBackPress(drawerLayout)) {
|
||||
if (canExit()) super.onBackPressed();
|
||||
superOnBackPressed(clickTwichToExit);
|
||||
} else {
|
||||
drawerLayout.closeDrawer(GravityCompat.START);
|
||||
}
|
||||
} else {
|
||||
if (canExit()) super.onBackPressed();
|
||||
superOnBackPressed(clickTwichToExit);
|
||||
}
|
||||
}
|
||||
|
||||
private void superOnBackPressed(boolean clickTwichToExit) {
|
||||
if (clickTwichToExit) {
|
||||
if (canExit()) {
|
||||
super.onBackPressed();
|
||||
}
|
||||
} else {
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,17 +1,21 @@
|
||||
package com.fastaccess.ui.modules.repos.code;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 31 Dec 2016, 1:35 AM
|
||||
*/
|
||||
|
||||
interface RepoCodePagerMvp {
|
||||
public interface RepoCodePagerMvp {
|
||||
|
||||
interface View extends BaseMvp.FAView {
|
||||
boolean canPressBack();
|
||||
|
||||
void onBackPressed();
|
||||
|
||||
void onBranchChanged(@NonNull String branch);
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter {}
|
||||
|
||||
@ -14,6 +14,7 @@ import com.fastaccess.helper.Bundler;
|
||||
import com.fastaccess.helper.InputHelper;
|
||||
import com.fastaccess.ui.adapter.FragmentsPagerAdapter;
|
||||
import com.fastaccess.ui.base.BaseFragment;
|
||||
import com.fastaccess.ui.modules.repos.code.commit.RepoCommitsView;
|
||||
import com.fastaccess.ui.modules.repos.code.files.paths.RepoFilePathView;
|
||||
import com.fastaccess.ui.widgets.ViewPagerView;
|
||||
|
||||
@ -77,4 +78,13 @@ public class RepoCodePagerView extends BaseFragment<RepoCodePagerMvp.View, RepoC
|
||||
pathView.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onBranchChanged(@NonNull String branch) {
|
||||
if (pager != null && pager.getAdapter() != null) {
|
||||
RepoCommitsView commitsView = (RepoCommitsView) pager.getAdapter().instantiateItem(pager, 2);
|
||||
if (commitsView != null) {
|
||||
commitsView.changeBranch(branch);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,6 +21,8 @@ interface RepoCommitsMvp {
|
||||
void onNotifyAdapter();
|
||||
|
||||
@NonNull OnLoadMore getLoadMore();
|
||||
|
||||
void changeBranch(@NonNull String branch);
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter,
|
||||
@ -31,5 +33,7 @@ interface RepoCommitsMvp {
|
||||
@NonNull ArrayList<CommitModel> getCommits();
|
||||
|
||||
void onWorkOffline();
|
||||
|
||||
void onBranchChanged(@NonNull String branch);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,11 +3,13 @@ package com.fastaccess.ui.modules.repos.code.commit;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import com.fastaccess.data.dao.CommitModel;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.InputHelper;
|
||||
import com.fastaccess.helper.Logger;
|
||||
import com.fastaccess.helper.RxHelper;
|
||||
import com.fastaccess.provider.rest.RestProvider;
|
||||
import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
@ -16,8 +18,6 @@ import com.fastaccess.ui.modules.repos.code.commit.details.CommitPagerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import rx.Observable;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 03 Dec 2016, 3:48 PM
|
||||
*/
|
||||
@ -27,6 +27,7 @@ class RepoCommitsPresenter extends BasePresenter<RepoCommitsMvp.View> implements
|
||||
private ArrayList<CommitModel> commits = new ArrayList<>();
|
||||
private String login;
|
||||
private String repoId;
|
||||
private String branch;
|
||||
private int page;
|
||||
private int previousTotal;
|
||||
private int lastPage = Integer.MAX_VALUE;
|
||||
@ -63,7 +64,7 @@ class RepoCommitsPresenter extends BasePresenter<RepoCommitsMvp.View> implements
|
||||
return;
|
||||
}
|
||||
if (repoId == null || login == null) return;
|
||||
makeRestCall(RestProvider.getRepoService().getCommits(login, repoId, page),
|
||||
makeRestCall(RestProvider.getRepoService().getCommits(login, repoId, branch, page),
|
||||
response -> {
|
||||
lastPage = response.getLast();
|
||||
if (getCurrentPage() == 1) {
|
||||
@ -78,6 +79,8 @@ class RepoCommitsPresenter extends BasePresenter<RepoCommitsMvp.View> implements
|
||||
@Override public void onFragmentCreated(@NonNull Bundle bundle) {
|
||||
repoId = bundle.getString(BundleConstant.ID);
|
||||
login = bundle.getString(BundleConstant.EXTRA);
|
||||
branch = bundle.getString(BundleConstant.EXTRA_TWO);
|
||||
Logger.e(branch);
|
||||
if (!InputHelper.isEmpty(login) && !InputHelper.isEmpty(repoId)) {
|
||||
onCallApi(1, null);
|
||||
}
|
||||
@ -99,6 +102,13 @@ class RepoCommitsPresenter extends BasePresenter<RepoCommitsMvp.View> implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onBranchChanged(@NonNull String branch) {
|
||||
if (!TextUtils.equals(branch, this.branch)) {
|
||||
this.branch = branch;
|
||||
onCallApi(1, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onItemClick(int position, View v, CommitModel item) {
|
||||
CommitPagerView.createIntentForOffline(v.getContext(), item);
|
||||
}
|
||||
|
||||
@ -29,11 +29,12 @@ public class RepoCommitsView extends BaseFragment<RepoCommitsMvp.View, RepoCommi
|
||||
private OnLoadMore onLoadMore;
|
||||
private CommitsAdapter adapter;
|
||||
|
||||
public static RepoCommitsView newInstance(@NonNull String repoId, @NonNull String login) {
|
||||
public static RepoCommitsView newInstance(@NonNull String repoId, @NonNull String login, @NonNull String branch) {
|
||||
RepoCommitsView view = new RepoCommitsView();
|
||||
view.setArguments(Bundler.start()
|
||||
.put(BundleConstant.ID, repoId)
|
||||
.put(BundleConstant.EXTRA, login)
|
||||
.put(BundleConstant.EXTRA_TWO, branch)
|
||||
.end());
|
||||
return view;
|
||||
}
|
||||
@ -94,6 +95,10 @@ public class RepoCommitsView extends BaseFragment<RepoCommitsMvp.View, RepoCommi
|
||||
return onLoadMore;
|
||||
}
|
||||
|
||||
@Override public void changeBranch(@NonNull String branch) {
|
||||
getPresenter().onBranchChanged(branch);
|
||||
}
|
||||
|
||||
@Override public void onRefresh() {
|
||||
getPresenter().onCallApi(1, null);
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import com.fastaccess.helper.Logger;
|
||||
import com.fastaccess.ui.adapter.RepoFilePathsAdapter;
|
||||
import com.fastaccess.ui.base.BaseFragment;
|
||||
import com.fastaccess.ui.modules.repos.RepoPagerMvp;
|
||||
import com.fastaccess.ui.modules.repos.code.RepoCodePagerMvp;
|
||||
import com.fastaccess.ui.modules.repos.code.files.RepoFilesView;
|
||||
|
||||
import java.util.List;
|
||||
@ -47,6 +48,7 @@ public class RepoFilePathView extends BaseFragment<RepoFilePathMvp.View, RepoFil
|
||||
private RepoFilePathsAdapter adapter;
|
||||
private RepoFilesView repoFilesView;
|
||||
private RepoPagerMvp.View repoCallback;
|
||||
private RepoCodePagerMvp.View codePagerCallback;
|
||||
|
||||
public static RepoFilePathView newInstance(@NonNull String login, @NonNull String repoId, @Nullable String path, @NonNull String defaultBranch) {
|
||||
RepoFilePathView view = new RepoFilePathView();
|
||||
@ -72,6 +74,10 @@ public class RepoFilePathView extends BaseFragment<RepoFilePathMvp.View, RepoFil
|
||||
ref = ((BranchesModel) branches.getItemAtPosition(position)).getName();
|
||||
getRepoFilesView().onSetData(getPresenter().getLogin(), getPresenter().getRepoId(), "", ref, true);
|
||||
onBackClicked();
|
||||
if (codePagerCallback != null) {
|
||||
codePagerCallback.onBranchChanged(ref);
|
||||
showMessage(R.string.commits, R.string.commits_reflected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,6 +88,11 @@ public class RepoFilePathView extends BaseFragment<RepoFilePathMvp.View, RepoFil
|
||||
} else if (getParentFragment() instanceof RepoPagerMvp.View) {
|
||||
repoCallback = (RepoPagerMvp.View) getParentFragment();
|
||||
}
|
||||
if (context instanceof RepoCodePagerMvp.View) {
|
||||
codePagerCallback = (RepoCodePagerMvp.View) context;
|
||||
} else if (getParentFragment() instanceof RepoCodePagerMvp.View) {
|
||||
codePagerCallback = (RepoCodePagerMvp.View) getParentFragment();
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onDetach() {
|
||||
|
||||
@ -228,4 +228,14 @@
|
||||
<string name="due_on">Due On</string>
|
||||
<string name="no_assignees">No Assignees</string>
|
||||
<string name="this_value">This</string>
|
||||
<string name="commits_reflected">Commits has been switched to the selected branch.</string>
|
||||
<string name="general_settings">General Settings</string>
|
||||
<string name="background_job_summary">Change the background notification task time</string>
|
||||
<string name="background_job_title">Background Notification Sync</string>
|
||||
<string name="every">Every</string>
|
||||
<string name="behavior">Behavior</string>
|
||||
<string name="recycler_view_animation_summary">Disable RecyclerView animation.</string>
|
||||
<string name="recycler_view_animation_title">RecylerView Animation</string>
|
||||
<string name="back_button_summary">Disable pressing the back button twice to exit FastHub.</string>
|
||||
<string name="back_button_title">Back Button Behavior</string>
|
||||
</resources>
|
||||
|
||||
@ -9,14 +9,24 @@
|
||||
android:entries="@array/notification_duration"
|
||||
android:entryValues="@array/notification_duration"
|
||||
android:key="notificationTime"
|
||||
android:summary="Change the background notification task time"
|
||||
android:title="Background Notification Sync"/>
|
||||
android:summary="@string/background_job_summary"
|
||||
android:title="@string/background_job_title"/>
|
||||
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="Behavior">
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="recylerViewAnimation"
|
||||
android:summary="Disable RecyclerView animation."
|
||||
android:title="RecylerView Animation"/>
|
||||
android:summary="@string/recycler_view_animation_summary"
|
||||
android:title="@string/recycler_view_animation_title"/>
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="back_button"
|
||||
android:summary="@string/back_button_summary"
|
||||
android:title="@string/back_button_title"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user