Skip to content
This repository has been archived by the owner on Sep 30, 2021. It is now read-only.

Commit

Permalink
this commit fixes #208 , fixes #206 , fixes #204 , fixes #203 , fixes #…
Browse files Browse the repository at this point in the history
…202 , fixes #201 (I guess) , fixes #199 and ready to release 1.4.1 with bug fixes and what better, anchor links now works 100% as its done from javascript instead of android.
  • Loading branch information
Kosh committed Mar 27, 2017
1 parent c9c0b6c commit 0e6448c
Show file tree
Hide file tree
Showing 49 changed files with 688 additions and 541 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ android {
applicationId "com.fastaccess.github"
minSdkVersion 21
targetSdkVersion 25
versionCode 140
versionName "1.4.0"
versionCode 141
versionName "1.4.1"
signingConfig signingConfigs.signing
buildConfigString "GITHUB_CLIENT_ID", (buildProperties.secrets['github_client_id'] | buildProperties.notThere['github_client_id']).string
buildConfigString "GITHUB_SECRET", (buildProperties.secrets['github_secret'] | buildProperties.notThere['github_secret']).string
Expand Down
1 change: 0 additions & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-dontpreverify
-repackageclasses ''
Expand Down
20 changes: 20 additions & 0 deletions app/src/main/assets/md/intercept-touch.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ document.addEventListener("DOMContentLoaded", function(event) {
window.onload = function() {
addTouchEvents(document.getElementsByTagName("pre"));
addTouchEvents(document.getElementsByTagName("table"));
var hash = window.location.hash.substr(1);
if (hash != ""){
scrollTo(hash);
}
};

function addTouchEvents(elements) {
Expand All @@ -23,3 +27,19 @@ function touchStart(event) {
function touchEnd(event) {
Android.stopIntercept();
}

function scrollTo(hash) {
var element = document.getElementById("user-content-" + hash);
element.scrollIntoView();
}

window.onclick = function(e) {
if (e.target.localName == 'a') {
var href = e.target;
href = href.toString().replace("file:///android_asset/md/","");
console.log(href);
if (href.indexOf("#") === 0) {
scrollTo(href.replace("#",""));
}
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,8 @@ public static List<FragmentPagerAdapterModel> buildForRepoCode(@NonNull Context
String login = commitModel.getLogin();
String repoId = commitModel.getRepoId();
String sha = commitModel.getSha();
return Stream.of(new FragmentPagerAdapterModel(context.getString(R.string.commits), CommitFilesView.newInstance(commitModel.getFiles()))
return Stream.of(new FragmentPagerAdapterModel(context.getString(R.string.commits), CommitFilesView.newInstance(commitModel.getSha(),
commitModel.getFiles()))
, new FragmentPagerAdapterModel(context.getString(R.string.comments), CommitCommentsView.newInstance(login, repoId, sha)))
.collect(Collectors.toList());
}
Expand Down
113 changes: 60 additions & 53 deletions app/src/main/java/com/fastaccess/data/dao/model/AbstractComment.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,71 +63,78 @@ public Completable save(Comment modelEntity) {
}

public static Observable saveForGist(@NonNull List<Comment> models, @NonNull String gistId) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(GIST_ID.equal(gistId))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(model -> {
model.setGistId(gistId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(GIST_ID.equal(gistId))
.get()
.value();
Stream.of(models)
.forEach(model -> {
model.setGistId(gistId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable saveForCommits(@NonNull List<Comment> models, @NonNull String repoId,
@NonNull String login, @NonNull String commitId) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(COMMIT_ID.equal(commitId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setCommitId(commitId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(COMMIT_ID.equal(commitId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();
Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setCommitId(commitId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable saveForIssues(@NonNull List<Comment> models, @NonNull String repoId,
@NonNull String login, @NonNull String issueId) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(ISSUE_ID.equal(issueId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();

return Observable.create(subscriber -> Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setIssueId(issueId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(ISSUE_ID.equal(issueId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();
Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setIssueId(issueId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable saveForPullRequest(@NonNull List<Comment> models, @NonNull String repoId,
@NonNull String login, @NonNull String pullRequestId) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(PULL_REQUEST_ID.equal(pullRequestId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setPullRequestId(pullRequestId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Comment.class)
.where(PULL_REQUEST_ID.equal(pullRequestId)
.and(REPO_ID.equal(repoId))
.and(LOGIN.equal(login)))
.get()
.value();
Stream.of(models)
.forEach(model -> {
model.setLogin(login);
model.setRepoId(repoId);
model.setPullRequestId(pullRequestId);
model.save(model).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable<List<Comment>> getGistComments(@NonNull String gistId) {
Expand Down
56 changes: 30 additions & 26 deletions app/src/main/java/com/fastaccess/data/dao/model/AbstractCommit.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,35 +65,39 @@ public Completable save(Commit modelEntity) {
}

public static Observable save(@NonNull List<Commit> models, @NonNull String repoId, @NonNull String login) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Commit.class)
.where(REPO_ID.eq(repoId)
.and(LOGIN.eq(login)))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(commitModel -> {
commitModel.setRepoId(repoId);
commitModel.setLogin(login);
commitModel.save(commitModel).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Commit.class)
.where(REPO_ID.eq(repoId)
.and(LOGIN.eq(login)))
.get()
.value();
Stream.of(models)
.forEach(commitModel -> {
commitModel.setRepoId(repoId);
commitModel.setLogin(login);
commitModel.save(commitModel).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable save(@NonNull List<Commit> models, @NonNull String repoId, @NonNull String login, long number) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Commit.class)
.where(REPO_ID.eq(repoId)
.and(LOGIN.eq(login))
.and(PULL_REQUEST_NUMBER.eq(number)))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(commitModel -> {
commitModel.setRepoId(repoId);
commitModel.setLogin(login);
commitModel.setPullRequestNumber(number);
commitModel.save(commitModel).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Commit.class)
.where(REPO_ID.eq(repoId)
.and(LOGIN.eq(login))
.and(PULL_REQUEST_NUMBER.eq(number)))
.get()
.value();
Stream.of(models)
.forEach(commitModel -> {
commitModel.setRepoId(repoId);
commitModel.setLogin(login);
commitModel.setPullRequestNumber(number);
commitModel.save(commitModel).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable<List<Commit>> getCommits(@NonNull String repoId, @NonNull String login) {
Expand Down
59 changes: 33 additions & 26 deletions app/src/main/java/com/fastaccess/data/dao/model/AbstractGist.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,28 +67,29 @@ public Completable save(Gist modelEntity) {
}

public static Completable save(@NonNull List<Gist> gists) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
return singleEntityStore.delete(Gist.class)
.where(Gist.OWNER_NAME.isNull())
.get()
.toSingle()
.toCompletable()
.andThen(Observable.from(gists)
.map(gist -> gist.save(gist)))
.toCompletable();
return Completable.fromAction(() -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Gist.class)
.where(Gist.OWNER_NAME.isNull())
.get()
.value();
Stream.of(gists).forEach(gist -> gist.save(gist));
});
}

public static Observable save(@NonNull List<Gist> gists, @NonNull String ownerName) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Gist.class)
.where(Gist.OWNER_NAME.equal(ownerName))
.get()
.value();
return Observable.create(subscriber -> Stream.of(gists)
.forEach(gistsModel -> {
gistsModel.setOwnerName(ownerName);
gistsModel.save(gistsModel).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Gist.class)
.where(Gist.OWNER_NAME.equal(ownerName))
.get()
.value();
Stream.of(gists)
.forEach(gistsModel -> {
gistsModel.setOwnerName(ownerName);
gistsModel.save(gistsModel).toObservable().toBlocking().singleOrDefault(null);
});
});
}

@NonNull public static Observable<List<Gist>> getMyGists(@NonNull String ownerName) {
Expand Down Expand Up @@ -140,6 +141,10 @@ public static Observable<Gist> getGist(@NonNull String gistId) {
}

@NonNull public SpannableBuilder getDisplayTitle(boolean isFromProfile) {
return getDisplayTitle(isFromProfile, false);
}

@NonNull public SpannableBuilder getDisplayTitle(boolean isFromProfile, boolean gistView) {
SpannableBuilder spannableBuilder = SpannableBuilder.builder();
boolean addDescription = true;
if (!isFromProfile) {
Expand All @@ -150,13 +155,15 @@ public static Observable<Gist> getGist(@NonNull String gistId) {
} else {
spannableBuilder.bold("Anonymous");
}
List<FilesListModel> files = getFilesAsList();
if (!files.isEmpty()) {
FilesListModel filesListModel = files.get(0);
if (!InputHelper.isEmpty(filesListModel.getFilename()) && filesListModel.getFilename().trim().length() > 2) {
spannableBuilder.append(" ").append("/").append(" ")
.append(filesListModel.getFilename());
addDescription = false;
if (!gistView) {
List<FilesListModel> files = getFilesAsList();
if (!files.isEmpty()) {
FilesListModel filesListModel = files.get(0);
if (!InputHelper.isEmpty(filesListModel.getFilename()) && filesListModel.getFilename().trim().length() > 2) {
spannableBuilder.append(" ").append("/").append(" ")
.append(filesListModel.getFilename());
addDescription = false;
}
}
}
}
Expand Down
26 changes: 14 additions & 12 deletions app/src/main/java/com/fastaccess/data/dao/model/AbstractIssue.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,20 @@ public Completable save(Issue entity) {
}

public static Observable save(@NonNull List<Issue> models, @NonNull String repoId, @NonNull String login) {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Issue.class)
.where(REPO_ID.equal(repoId)
.and(LOGIN.equal(login)))
.get()
.value();
return Observable.create(subscriber -> Stream.of(models)
.forEach(issueModel -> {
issueModel.setRepoId(repoId);
issueModel.setLogin(login);
issueModel.save(issueModel).toObservable().toBlocking().singleOrDefault(null);
}));
return Observable.create(subscriber -> {
SingleEntityStore<Persistable> singleEntityStore = App.getInstance().getDataStore();
singleEntityStore.delete(Issue.class)
.where(REPO_ID.equal(repoId)
.and(LOGIN.equal(login)))
.get()
.value();
Stream.of(models)
.forEach(issueModel -> {
issueModel.setRepoId(repoId);
issueModel.setLogin(login);
issueModel.save(issueModel).toObservable().toBlocking().singleOrDefault(null);
});
});
}

public static Observable<List<Issue>> getIssues(@NonNull String repoId, @NonNull String login, @NonNull IssueState issueState) {
Expand Down
Loading

0 comments on commit 0e6448c

Please sign in to comment.