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 #582 fixes #579 fixes #577 fixes #576 fixes #575 fixes
Browse files Browse the repository at this point in the history
 #574 fixes #569 fixes #568 fixes #559 fixes #552 fixes #438 fixes #31 fixes #565
  • Loading branch information
Kosh committed May 30, 2017
1 parent 81dd458 commit 9359401
Show file tree
Hide file tree
Showing 63 changed files with 314 additions and 226 deletions.
8 changes: 6 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-crash'
//apply plugin: 'kotlin-android'
apply plugin: 'com.novoda.build-properties'
apply plugin: 'jacoco-android'
apply plugin: 'io.fabric'

buildProperties {
notThere {
Expand Down Expand Up @@ -96,6 +96,7 @@ repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}

Expand Down Expand Up @@ -137,11 +138,14 @@ dependencies {
compile 'com.firebase:firebase-jobdispatcher:0.6.0'
compile "com.google.firebase:firebase-ads:${gms}"
compile "com.google.firebase:firebase-messaging:${gms}"
releaseCompile "com.google.firebase:firebase-crash:${gms}"
compile "com.google.android.gms:play-services-auth:${gms}"
compile "com.github.florent37:retrojsoup:${retroJsoup}"
compile "com.github.florent37:rxjsoup:${retroJsoup}"
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true
}
compile "org.jsoup:jsoup:1.10.2"
compile "com.github.miguelbcr:RxBillingService:0.0.3"
// compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:${kotlin_version}"
provided "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "com.github.florent37:retrojsoup-compiler:${retroJsoup}"
Expand Down
8 changes: 4 additions & 4 deletions app/src/debug/res/values/secrets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<resources>
<string name="banner_ad_unit_id" translatable="false">ca-app-pub-3940256099942544/6300978111</string> <!-- testing key ;) -->
<string name="test_device_id" translatable="false">YOUR-DEVICE-ID-FROM-LOGCAT</string>
<string name="donation_product_1" translatable="false">your_product_1</string>
<string name="donation_product_2" translatable="false">your_product_2</string>
<string name="donation_product_3" translatable="false">your_product_3</string>
<string name="donation_product_4" translatable="false">your_product_4</string>
<string name="donation_product_1" translatable="false">android.test.purchased</string>
<string name="donation_product_2" translatable="false">android.test.canceled</string>
<string name="donation_product_3" translatable="false">android.test.refunded</string>
<string name="donation_product_4" translatable="false">android.test.item_unavailable</string>
</resources>
9 changes: 4 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -210,11 +210,6 @@
</intent-filter>
</activity>

<activity
android:name="io.octo.bear.pago.BillingActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<activity android:name=".ui.modules.profile.banner.BannerInfoActivity"/>

<service
android:name=".provider.tasks.notification.NotificationSchedulerJobTask"
android:exported="false">
Expand All @@ -233,6 +228,10 @@
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

<meta-data
android:name="io.fabric.ApiKey"
android:value="6ed82b6e0756853d7d782a3f547f84f9ecba217e"/>
</application>

</manifest>
6 changes: 5 additions & 1 deletion app/src/main/java/com/fastaccess/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import android.support.annotation.NonNull;
import android.support.v7.preference.PreferenceManager;

import com.crashlytics.android.Crashlytics;
import com.fastaccess.data.dao.model.Models;
import com.fastaccess.helper.TypeFaceHelper;
import com.fastaccess.provider.colors.ColorsProvider;
Expand All @@ -12,7 +13,9 @@
import com.fastaccess.provider.uil.UILProvider;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.common.api.GoogleApiClient;
import com.miguelbcr.io.rx_billing_service.RxBillingService;

import io.fabric.sdk.android.Fabric;
import io.requery.Persistable;
import io.requery.android.sqlite.DatabaseSource;
import io.requery.meta.EntityModel;
Expand All @@ -24,7 +27,6 @@
import shortbread.Shortbread;



/**
* Created by Kosh on 03 Feb 2017, 12:07 AM
*/
Expand Down Expand Up @@ -65,6 +67,8 @@ public class App extends Application {
}

private void init() {
Fabric.with(this, new Crashlytics());
RxBillingService.register(this);
deleteDatabase("database.db");
getDataStore();//init requery before anything.
setupPreference();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,9 @@ public static List<FragmentPagerAdapterModel> buildForMyIssues(@NonNull Context
new FragmentPagerAdapterModel(context.getString(R.string.assigned),
MyIssuesFragment.newInstance(IssueState.open, MyIssuesType.ASSIGNED)),
new FragmentPagerAdapterModel(context.getString(R.string.mentioned),
MyIssuesFragment.newInstance(IssueState.open, MyIssuesType.MENTIONED)))
MyIssuesFragment.newInstance(IssueState.open, MyIssuesType.MENTIONED)),
new FragmentPagerAdapterModel(context.getString(R.string.participated),
MyIssuesFragment.newInstance(IssueState.open, MyIssuesType.PARTICIPATED)))
.collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public static boolean pinUpin(@NonNull Repo repo) {
.firstOrNull();
}


public static boolean isPinned(@NonNull String repoFullName) {
return get(repoFullName) != null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ public enum MyIssuesType {
CREATED,
ASSIGNED,
MENTIONED,
REVIEW
REVIEW,
PARTICIPATED
}
4 changes: 2 additions & 2 deletions app/src/main/java/com/fastaccess/helper/RxHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ public static <T> Observable<T> safeObservable(@NonNull Observable<T> observable
.doOnError(Throwable::printStackTrace);
}

public static <T> Single<T> getSingle(@NonNull Single<T> observable) {
return observable
public static <T> Single<T> getSingle(@NonNull Single<T> single) {
return single
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import com.fastaccess.App;
import com.fastaccess.data.dao.LanguageColorModel;
import com.fastaccess.helper.InputHelper;
import com.fastaccess.helper.RxHelper;
import com.fastaccess.ui.widgets.color.ColorGenerator;
import com.google.gson.Gson;
Expand All @@ -22,7 +23,6 @@
import java.util.Map;

import io.reactivex.Observable;
import io.reactivex.schedulers.Schedulers;

/**
* Created by Kosh on 27 May 2017, 9:50 PM
Expand All @@ -34,18 +34,22 @@ public class ColorsProvider {

public static void load() {
if (colors.isEmpty()) {
RxHelper.safeObservable(Observable.fromCallable(() -> {
try {
Type type = new TypeToken<Map<String, LanguageColorModel>>() {}.getType();
InputStream stream = App.getInstance().getAssets().open("colors.json");
Gson gson = new Gson();
JsonReader reader = new JsonReader(new InputStreamReader(stream));
colors.putAll(gson.fromJson(reader, type));
} catch (IOException e) {
e.printStackTrace();
}
return "";
})).subscribeOn(Schedulers.io()).subscribe();
RxHelper.safeObservable(Observable
.create(observableEmitter -> {
try {
Type type = new TypeToken<Map<String, LanguageColorModel>>() {}.getType();
InputStream stream = App.getInstance().getAssets().open("colors.json");
Gson gson = new Gson();
JsonReader reader = new JsonReader(new InputStreamReader(stream));
colors.putAll(gson.fromJson(reader, type));
observableEmitter.onNext("");
} catch (IOException e) {
e.printStackTrace();
observableEmitter.onError(e);
}
observableEmitter.onComplete();
}))
.subscribe(s -> {/**/}, Throwable::printStackTrace);
}
}

Expand All @@ -55,6 +59,10 @@ public static void load() {

@ColorInt public static int getColorAsColor(@NonNull String lang, @NonNull Context context) {
LanguageColorModel color = getColor(lang);
return color != null ? Color.parseColor(color.getColor()) : ColorGenerator.getColor(context, lang);
int langColor = ColorGenerator.getColor(context, lang);
if (color != null && !InputHelper.isEmpty(color.getColor())) {
try {langColor = Color.parseColor(color.getColor());} catch (Exception ignored) {}
}
return langColor;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,10 @@ public class RepoQueryProvider {
"+" + "review-requested:" + username +
"+is:" + issueState.name();
}

public static String getParticipated(@NonNull String username, @NonNull IssueState issueState, boolean isPr) {
return "type:" + (isPr ? "pr" : "issue") +
"+" + "involves:" + username +
"+is:" + issueState.name();
}
}
4 changes: 3 additions & 1 deletion app/src/main/java/com/fastaccess/ui/base/mvp/BaseMvp.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,12 @@ interface FAPresenter {

void onRestoreInstanceState(Bundle outState);

void manageSubscription(@Nullable Disposable... disposables);
void manageDisposable(@Nullable Disposable... disposables);

<T> void manageObservable(@Nullable Observable<T> observable);

void manageViewDisposable(@Nullable Disposable... disposables);

boolean isApiCalled();

void onSubscribed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,25 @@ public class BasePresenter<V extends BaseMvp.FAView> extends TiPresenter<V> impl
if (outState != null) Icepick.restoreInstanceState(this, outState);
}

@Override public void manageSubscription(@Nullable Disposable... subscription) {
if (subscription != null) {
subscriptionHandler.manageDisposables(subscription);
@Override public void manageDisposable(@Nullable Disposable... disposables) {
if (disposables != null) {
subscriptionHandler.manageDisposables(disposables);
}
}

@Override public <T> void manageObservable(@Nullable Observable<T> observable) {
if (observable != null) {
manageSubscription(observable.subscribe(t -> {/**/}, Throwable::printStackTrace));
manageDisposable(RxHelper.getObserver(observable).subscribe(t -> {/**/}, Throwable::printStackTrace));
}
}

@Override public void manageViewDisposable(@Nullable Disposable... disposables) {
if (disposables != null) {
if (isViewAttached()) {
subscriptionHandler.manageViewDisposables(disposables);
} else {
sendToView(v -> manageViewDisposable(disposables));
}
}
}

Expand Down Expand Up @@ -76,7 +86,7 @@ public class BasePresenter<V extends BaseMvp.FAView> extends TiPresenter<V> impl
}

@Override public <T> void makeRestCall(@NonNull Observable<T> observable, @NonNull Consumer<T> onNext) {
manageSubscription(
manageDisposable(
RxHelper.getObserver(observable)
.doOnSubscribe(disposable -> onSubscribed())
.subscribe(onNext, this::onError, () -> apiCalled = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
private String html;

@Override public void onLoadChangelog() {
manageSubscription(RxHelper.getObserver(ChangelogProvider.getChangelog(App.getInstance()))
manageDisposable(RxHelper.getObserver(ChangelogProvider.getChangelog(App.getInstance()))
.subscribe(s -> {
this.html = s;
sendToView(view -> view.onChangelogLoaded(html));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,12 @@ class FeedsPresenter extends BasePresenter<FeedsMvp.View> implements FeedsMvp.Pr

@Override public void onWorkOffline() {
if (eventsModels.isEmpty()) {
manageSubscription(RxHelper.getObserver(Event.getEvents().toObservable())
manageDisposable(RxHelper.getObserver(Event.getEvents().toObservable())
.subscribe(modelList -> {
if (modelList != null) {
sendToView(view -> view.onNotifyAdapter(modelList, 1));
}
}));
if (modelList != null) {
sendToView(view -> view.onNotifyAdapter(modelList, 1));
}
}, Throwable::printStackTrace));
} else {
sendToView(FeedsMvp.View::hideProgress);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ private void appendAssignee(User item) {
onSearch();
}

private void appendSort(String item) {
private void appendSort(String item) {
dismissPopup();
appendIfEmpty();
Resources resources = getResources();
Expand All @@ -468,7 +468,7 @@ private void appendSort(String item) {
String leastCommentedQuery = "comments-asc";
String recentlyUpdatedQuery = "updated-desc";
String leastRecentUpdatedQuery = "updated-asc";
String sortThumbUp = "reactions-+1-desc";
String sortThumbUp = "reactions-%2B1-desc";
String sortThumbDown = "reactions--1-desc";
String sortThumbLaugh = "reactions-smile-desc";
String sortThumbHooray = "reactions-tada-desc";
Expand Down Expand Up @@ -496,22 +496,16 @@ private void appendSort(String item) {
toQuery = leastRecentUpdatedQuery;
} else if (item.equalsIgnoreCase(CommentsHelper.getThumbsUp())) {
toQuery = sortThumbUp;
showMessage(R.string.error, R.string.not_really_working);
} else if (item.equalsIgnoreCase(CommentsHelper.getThumbsDown())) {
toQuery = sortThumbDown;
showMessage(R.string.error, R.string.not_really_working);
} else if (item.equalsIgnoreCase(CommentsHelper.getLaugh())) {
toQuery = sortThumbLaugh;
showMessage(R.string.error, R.string.not_really_working);
} else if (item.equalsIgnoreCase(CommentsHelper.getHooray())) {
toQuery = sortThumbHooray;
showMessage(R.string.error, R.string.not_really_working);
} else if (item.equalsIgnoreCase(CommentsHelper.getSad())) {
toQuery = sortThumbConfused;
showMessage(R.string.error, R.string.not_really_working);
} else if (item.equalsIgnoreCase(CommentsHelper.getHeart())) {
toQuery = sortThumbHeart;
showMessage(R.string.error, R.string.not_really_working);
}
if (!text.replaceAll(regex, "sort:\"" + toQuery + "\"").equalsIgnoreCase(text)) {
String space = text.endsWith(" ") ? "" : " ";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ class GistsPresenter extends BasePresenter<GistsMvp.View> implements GistsMvp.Pr

@Override public void onWorkOffline() {
if (gistsModels.isEmpty()) {
manageSubscription(RxHelper.getObserver(Gist.getGists().toObservable()).subscribe(gists -> sendToView(view -> view.onNotifyAdapter(gists, 1))));
manageDisposable(RxHelper.getObserver(Gist.getGists().toObservable())
.subscribe(gists -> sendToView(view -> view.onNotifyAdapter(gists, 1))));
} else {
sendToView(GistsMvp.View::hideProgress);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class GistPresenter extends BasePresenter<GistMvp.View> implements GistMvp.Prese

@Override public void onDeleteGist() {
if (getGist() == null) return;
manageSubscription(RxHelper.getObserver(RestProvider.getGistService().deleteGist(getGist().getGistId()))
manageDisposable(RxHelper.getObserver(RestProvider.getGistService().deleteGist(getGist().getGistId()))
.doOnSubscribe(disposable -> onSubscribed())
.doOnNext(booleanResponse -> {
if (booleanResponse.code() == 204) {
Expand Down Expand Up @@ -100,7 +100,7 @@ class GistPresenter extends BasePresenter<GistMvp.View> implements GistMvp.Prese

@Override public void onWorkOffline(@NonNull String gistId) {
if (gist == null) {
manageSubscription(RxHelper.getObserver(Gist.getGist(gistId))
manageDisposable(RxHelper.getObserver(Gist.getGist(gistId))
.subscribe(gistsModel -> {
this.gist = gistsModel;
sendToView(GistMvp.View::onSetupDetails);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class GistCommentsPresenter extends BasePresenter<GistCommentsMvp.View> implemen

@Override public void onWorkOffline(@NonNull String gistId) {
if (comments.isEmpty()) {
manageSubscription(RxHelper.getObserver(Comment.getGistComments(gistId).toObservable())
manageDisposable(RxHelper.getObserver(Comment.getGistComments(gistId).toObservable())
.subscribe(localComments -> sendToView(view -> view.onNotifyAdapter(localComments, 1))));
} else {
sendToView(BaseMvp.FAView::hideProgress);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class MainPresenter extends BasePresenter<MainMvp.View> implements MainMvp.Prese


MainPresenter() {
manageSubscription(RxHelper.getObserver(RestProvider.getUserService().getUser())
manageDisposable(RxHelper.getObserver(RestProvider.getUserService().getUser())
.flatMap(login -> login.update(login))
.subscribe(login -> {
if (login != null) {
Expand Down
Loading

0 comments on commit 9359401

Please sign in to comment.