diff --git a/README.md b/README.md index 805d1205..abfa51b8 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ - BottomNavigationView for `Fragments` navigation. - UIL for image loading. - AndDown for comments markdown highlighting. -- Alerter for displaying error/success messages. +- Toasty for displaying error/success messages. - CircleImageView for avatar images. - MatrialTapTargetPrompt for displying guides throughout the app. - Firebase analytics, crash reporting, ads & messaging. (analytics & messaging not yet implemented.) diff --git a/app/build.gradle b/app/build.gradle index 9ece2d77..b3642058 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -116,7 +116,7 @@ dependencies { compile 'com.squareup.okhttp3:logging-interceptor:3.3.1' compile 'com.annimon:stream:1.1.4' compile 'com.commonsware.cwac:anddown:0.3.0' - compile 'com.tapadoo.android:alerter:1.0.1' + compile 'com.github.GrenderG:Toasty:1.1.3' compile 'uk.co.samuelwall:material-tap-target-prompt:1.9.2' apt 'org.projectlombok:lombok:1.12.6' apt 'frankiesardo:icepick-processor:3.1.0' diff --git a/app/src/main/assets/fonts/app_font.ttf b/app/src/main/assets/fonts/app_font.ttf index b158a334..8c082c8d 100755 Binary files a/app/src/main/assets/fonts/app_font.ttf and b/app/src/main/assets/fonts/app_font.ttf differ diff --git a/app/src/main/java/com/fastaccess/helper/InputHelper.java b/app/src/main/java/com/fastaccess/helper/InputHelper.java index 45e308d9..e63b39c8 100644 --- a/app/src/main/java/com/fastaccess/helper/InputHelper.java +++ b/app/src/main/java/com/fastaccess/helper/InputHelper.java @@ -20,11 +20,11 @@ public class InputHelper { } public static boolean isEmpty(String text) { - return text == null || TextUtils.isEmpty(text) || isWhiteSpaces(text); + return text == null || TextUtils.isEmpty(text) || isWhiteSpaces(text) || text.equalsIgnoreCase("null"); } public static boolean isEmpty(Object text) { - return text == null || TextUtils.isEmpty(text.toString()) || isWhiteSpaces(text.toString()); + return text == null || isEmpty(text.toString()); } public static boolean isEmpty(EditText text) { diff --git a/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java b/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java index 50ae8273..1637284b 100644 --- a/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java +++ b/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java @@ -198,7 +198,7 @@ public class SchemeParser { fullUrl = "https://raw.githubusercontent.com/" + segments.get(0) + "/" + segments.get(1) + "/" + segments.get(segments.size() - 2) + "/" + uri.getLastPathSegment(); } - return CodeViewerView.createIntent(context, fullUrl); + if (fullUrl != null) return CodeViewerView.createIntent(context, fullUrl); } return null; } diff --git a/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java b/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java index 4ae661e1..298dcff5 100644 --- a/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java +++ b/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java @@ -11,6 +11,7 @@ import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.Toast; import com.fastaccess.BuildConfig; import com.fastaccess.R; @@ -26,12 +27,12 @@ import com.fastaccess.ui.widgets.dialog.ProgressDialogFragment; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.MobileAds; -import com.tapadoo.alerter.Alerter; import net.grandcentrix.thirtyinch.TiActivity; import butterknife.BindView; import butterknife.ButterKnife; +import es.dmoral.toasty.Toasty; import icepick.Icepick; import icepick.State; @@ -46,6 +47,7 @@ public abstract class BaseActivity implements FeedsMvp.Pr if (getCurrentPage() == 1) { manageSubscription(EventsModel.save(response.getItems()).subscribe()); eventsModels.clear(); - } eventsModels.addAll(response.getItems()); sendToView(FeedsMvp.View::onNotifyAdapter); @@ -90,8 +91,10 @@ class FeedsPresenter extends BasePresenter implements FeedsMvp.Pr @Override public void onWorkOffline() { if (eventsModels.isEmpty()) { manageSubscription(EventsModel.getEvents().subscribe(modelList -> { - eventsModels.addAll(modelList); - sendToView(FeedsMvp.View::onNotifyAdapter); + if (modelList != null) { + eventsModels.addAll(modelList); + sendToView(FeedsMvp.View::onNotifyAdapter); + } })); } else { sendToView(FeedsMvp.View::hideProgress); @@ -103,10 +106,13 @@ class FeedsPresenter extends BasePresenter implements FeedsMvp.Pr NameParser parser = new NameParser(item.getPayload().getForkee().getHtmlUrl()); RepoPagerView.startRepoPager(v.getContext(), parser); } else { - if (item.getPayload().getIssue() != null) { + if (item.getPayload() != null && item.getPayload().getIssue() != null) { SchemeParser.launchUri(v.getContext(), Uri.parse(item.getPayload().getIssue().getHtmlUrl())); } else { - SchemeParser.launchUri(v.getContext(), Uri.parse(item.getRepo().getName())); + RepoModel repoModel = item.getRepo(); + String name = InputHelper.isEmpty(repoModel.getName()) ? repoModel.getFullName() : repoModel.getName(); + if (name == null) return; + if (item.getRepo() != null) SchemeParser.launchUri(v.getContext(), Uri.parse(name)); } } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListView.java b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListView.java index 73a5b44b..f2e2f2c3 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListView.java +++ b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListView.java @@ -66,12 +66,16 @@ public class GistFilesListView extends BaseFragment FileHelper.ONE_MB && !MarkDownProvider.isImage(item.getRawUrl())) { - MessageDialogView.newInstance(getString(R.string.big_file), getString(R.string.big_file_description), - Bundler.start().put(BundleConstant.EXTRA, item.getRawUrl()).end()) - .show(getChildFragmentManager(), "MessageDialogView"); + if (item.getRawUrl() != null) { + if (item.getSize() > FileHelper.ONE_MB && !MarkDownProvider.isImage(item.getRawUrl())) { + MessageDialogView.newInstance(getString(R.string.big_file), getString(R.string.big_file_description), + Bundler.start().put(BundleConstant.EXTRA, item.getRawUrl()).end()) + .show(getChildFragmentManager(), "MessageDialogView"); + } else { + CodeViewerView.startActivity(getContext(), item.getRawUrl()); + } } else { - CodeViewerView.startActivity(getContext(), item.getRawUrl()); + showErrorMessage(getString(R.string.no_url)); } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesView.java b/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesView.java index 5bbc42d9..185e8237 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesView.java +++ b/app/src/main/java/com/fastaccess/ui/modules/repos/code/files/RepoFilesView.java @@ -56,12 +56,13 @@ public class RepoFilesView extends BaseFragment FileHelper.ONE_MB && !MarkDownProvider.isImage(model.getDownloadUrl())) { + String url = InputHelper.isEmpty(model.getDownloadUrl()) ? model.getUrl() : model.getDownloadUrl(); + if (model.getSize() > FileHelper.ONE_MB && !MarkDownProvider.isImage(url)) { MessageDialogView.newInstance(getString(R.string.big_file), getString(R.string.big_file_description), Bundler.start().put(BundleConstant.EXTRA, model.getDownloadUrl()).end()) .show(getChildFragmentManager(), "MessageDialogView"); } else { - CodeViewerView.startActivity(getContext(), model.getDownloadUrl()); + CodeViewerView.startActivity(getContext(), url); } } } diff --git a/app/src/main/java/com/fastaccess/ui/modules/search/code/SearchCodeView.java b/app/src/main/java/com/fastaccess/ui/modules/search/code/SearchCodeView.java index 52a3705e..4895c167 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/search/code/SearchCodeView.java +++ b/app/src/main/java/com/fastaccess/ui/modules/search/code/SearchCodeView.java @@ -104,7 +104,11 @@ public class SearchCodeView extends BaseFragment - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 46b77d28..cf69ff06 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -172,4 +172,5 @@ Watch Click here to watch/unwatch repo. Click here to fork repo. + No url found.