From 6360f03986e85ccec4e9c23780dbddd2c71c0a86 Mon Sep 17 00:00:00 2001
From: Kosh
Date: Mon, 10 Jul 2017 22:18:03 +0800
Subject: [PATCH] fixed multi acc switch & checkpoint WIP for enterprise.
---
README.md | 5 +-
app/build.gradle | 1 -
app/src/debug/res/mipmap-hdpi/ic_launcher.png | Bin
app/src/debug/res/mipmap-mdpi/ic_launcher.png | Bin
.../debug/res/mipmap-xhdpi/ic_launcher.png | Bin
.../debug/res/mipmap-xxhdpi/ic_launcher.png | Bin
.../debug/res/mipmap-xxxhdpi/ic_launcher.png | Bin
app/src/main/AndroidManifest.xml | 134 ++++++++-------
app/src/main/assets/colors.json | 0
app/src/main/assets/emojis.json | 0
app/src/main/assets/fonts/app_font.ttf | Bin
.../assets/highlight/styles/themes/agate.css | 0
.../highlight/styles/themes/androidstudio.css | 0
.../highlight/styles/themes/arduino-light.css | 0
.../assets/highlight/styles/themes/arta.css | 0
.../highlight/styles/themes/ascetic.css | 0
.../styles/themes/atelier-cave-dark.css | 0
.../styles/themes/atelier-cave-light.css | 0
.../styles/themes/atelier-dune-dark.css | 0
.../styles/themes/atelier-dune-light.css | 0
.../styles/themes/atelier-estuary-dark.css | 0
.../styles/themes/atelier-estuary-light.css | 0
.../styles/themes/atelier-forest-dark.css | 0
.../styles/themes/atelier-forest-light.css | 0
.../styles/themes/atelier-heath-dark.css | 0
.../styles/themes/atelier-heath-light.css | 0
.../styles/themes/atelier-lakeside-dark.css | 0
.../styles/themes/atelier-lakeside-light.css | 0
.../styles/themes/atelier-plateau-dark.css | 0
.../styles/themes/atelier-plateau-light.css | 0
.../styles/themes/atelier-savanna-dark.css | 0
.../styles/themes/atelier-savanna-light.css | 0
.../styles/themes/atelier-seaside-dark.css | 0
.../styles/themes/atelier-seaside-light.css | 0
.../themes/atelier-sulphurpool-dark.css | 0
.../themes/atelier-sulphurpool-light.css | 0
.../highlight/styles/themes/atom-one-dark.css | 0
.../styles/themes/atom-one-light.css | 0
.../highlight/styles/themes/brown-paper.css | 0
.../highlight/styles/themes/codepen-embed.css | 0
.../highlight/styles/themes/color-brewer.css | 0
.../highlight/styles/themes/darcula.css | 0
.../assets/highlight/styles/themes/dark.css | 0
.../highlight/styles/themes/darkula.css | 0
.../highlight/styles/themes/default.css | 0
.../assets/highlight/styles/themes/docco.css | 0
.../highlight/styles/themes/dracula.css | 0
.../assets/highlight/styles/themes/far.css | 0
.../highlight/styles/themes/foundation.css | 0
.../highlight/styles/themes/github-gist.css | 0
.../assets/highlight/styles/themes/github.css | 0
.../highlight/styles/themes/googlecode.css | 0
.../highlight/styles/themes/grayscale.css | 0
.../highlight/styles/themes/gruvbox-dark.css | 0
.../highlight/styles/themes/gruvbox-light.css | 0
.../highlight/styles/themes/hopscotch.css | 0
.../assets/highlight/styles/themes/hybrid.css | 0
.../assets/highlight/styles/themes/idea.css | 0
.../highlight/styles/themes/ir-black.css | 0
.../highlight/styles/themes/kimbie.dark.css | 0
.../highlight/styles/themes/kimbie.light.css | 0
.../assets/highlight/styles/themes/magula.css | 0
.../highlight/styles/themes/mono-blue.css | 0
.../styles/themes/monokai-sublime.css | 0
.../highlight/styles/themes/monokai.css | 0
.../highlight/styles/themes/obsidian.css | 0
.../assets/highlight/styles/themes/ocean.css | 0
.../highlight/styles/themes/paraiso-dark.css | 0
.../highlight/styles/themes/paraiso-light.css | 0
.../highlight/styles/themes/pojoaque.css | 0
.../highlight/styles/themes/purebasic.css | 0
.../styles/themes/qtcreator_dark.css | 0
.../styles/themes/qtcreator_light.css | 0
.../highlight/styles/themes/railscasts.css | 0
.../highlight/styles/themes/rainbow.css | 0
.../highlight/styles/themes/routeros.css | 0
.../highlight/styles/themes/school-book.css | 0
.../styles/themes/solarized-dark.css | 0
.../styles/themes/solarized-light.css | 0
.../highlight/styles/themes/sunburst.css | 0
.../styles/themes/tomorrow-night-blue.css | 0
.../styles/themes/tomorrow-night-bright.css | 0
.../styles/themes/tomorrow-night-eighties.css | 0
.../styles/themes/tomorrow-night.css | 0
.../highlight/styles/themes/tomorrow.css | 0
.../assets/highlight/styles/themes/vs.css | 0
.../assets/highlight/styles/themes/vs2015.css | 0
.../assets/highlight/styles/themes/xcode.css | 0
.../assets/highlight/styles/themes/xt256.css | 0
.../highlight/styles/themes/zenburn.css | 0
app/src/main/assets/md/github.css | 0
app/src/main/assets/md/github_dark.css | 0
.../data/dao/GroupedNotificationModel.java | 2 +-
.../data/dao/model/AbstractLogin.java | 67 ++++++--
.../com/fastaccess/helper/ActivityHelper.java | 95 ++--------
.../com/fastaccess/helper/PrefGetter.java | 6 +
.../com/fastaccess/provider/emoji/Emoji.java | 0
.../provider/emoji/EmojiLoader.java | 0
.../provider/emoji/EmojiManager.java | 0
.../provider/emoji/EmojiParser.java | 0
.../fastaccess/provider/emoji/EmojiTrie.java | 0
.../provider/emoji/Fitzpatrick.java | 0
.../provider/scheme/LinkParserHelper.java | 26 +--
.../provider/scheme/SchemeParser.java | 23 ++-
.../NotificationSchedulerJobTask.java | 2 +-
.../fastaccess/provider/theme/ThemeEngine.kt | 56 +++---
.../viewholder/AssigneesViewHolder.java | 4 +-
.../viewholder/CommentsViewHolder.java | 2 +-
.../adapter/viewholder/CommitsViewHolder.java | 2 +-
.../adapter/viewholder/FeedsViewHolder.java | 2 +-
.../adapter/viewholder/GistsViewHolder.java | 2 +-
.../viewholder/IssueDetailsViewHolder.java | 2 +-
.../adapter/viewholder/IssuesViewHolder.java | 2 +-
.../viewholder/PinnedReposViewHolder.java | 2 +-
.../viewholder/ProfileOrgsViewHolder.java | 2 +-
.../viewholder/PullRequestViewHolder.java | 2 +-
.../viewholder/PullStatusViewHolder.java | 3 +-
.../adapter/viewholder/ReposViewHolder.java | 2 +-
.../viewholder/ReviewCommentsViewHolder.java | 2 +-
.../adapter/viewholder/ReviewsViewHolder.java | 2 +-
.../TimelineCommentsViewHolder.java | 2 +-
.../adapter/viewholder/UsersViewHolder.java | 2 +-
.../com/fastaccess/ui/base/BaseActivity.java | 13 +-
.../ui/base/BaseDialogFragment.java | 2 +-
.../com/fastaccess/ui/base/BaseFragment.java | 2 +-
.../com/fastaccess/ui/base/MainNavDrawer.kt | 23 +--
.../ui/base/mvp/presenter/BasePresenter.java | 1 +
.../ui/modules/editor/EditorActivity.java | 26 +--
.../ui/modules/feeds/FeedsPresenter.java | 8 +-
.../ui/modules/gists/gist/GistActivity.java | 4 +-
.../ui/modules/login/LoginActivity.java | 162 ++++++------------
.../modules/login/LoginChooserActivity.java | 73 +++++++-
.../fastaccess/ui/modules/login/LoginMvp.java | 2 +-
.../ui/modules/login/LoginPresenter.java | 70 +++-----
.../ui/modules/main/MainPresenter.java | 6 +
.../notification/NotificationActivity.java | 22 ++-
.../all/AllNotificationsFragment.java | 26 ++-
.../notification/all/AllNotificationsMvp.java | 2 +
.../OnNotificationChangedListener.java | 10 ++
.../unread/UnreadNotificationMvp.java | 2 +
.../unread/UnreadNotificationsFragment.java | 29 +++-
.../modules/parser/LinksParserActivity.java | 27 ++-
.../ui/modules/repos/RepoPagerActivity.java | 102 ++---------
.../commit/details/CommitPagerActivity.java | 2 +-
.../repos/code/files/RepoFilesFragment.java | 32 ----
.../code/releases/RepoReleasesFragment.java | 32 ----
.../issue/details/IssuePagerActivity.java | 8 +-
.../issue/details/IssuePagerPresenter.java | 2 +
.../ui/modules/user/UserPagerActivity.java | 1 -
.../ui/widgets/ForegroundImageView.java | 18 +-
.../scroll/RecyclerFastScroller.java | 0
.../prettifier/pretty/PrettifyWebView.java | 0
.../pretty/helper/GithubHelper.java | 0
.../pretty/helper/PrettifyHelper.java | 0
.../com/zzhoujay/markdown/style/CodeSpan.java | 0
.../com/zzhoujay/markdown/style/FontSpan.java | 0
.../com/zzhoujay/markdown/style/LinkSpan.java | 0
.../markdown/style/MarkDownQuoteSpan.java | 0
.../res/drawable-nodpi/web_hi_res_512.png | Bin
.../res/drawable-xxxhdpi/ic_edittext.9.png | Bin
.../ic_timeline_arrow_left.9.png | Bin
.../other_layouts/layout/drawer_header.xml | 68 ++++----
app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin
app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin
app/src/main/res/mipmap-nodpi/foreground.png | Bin
app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin
app/src/main/res/values-land/dimens.xml | 0
.../main/res/values-w820dp-land/dimens.xml | 0
app/src/main/res/values-w820dp/dimens.xml | 0
171 files changed, 560 insertions(+), 667 deletions(-)
mode change 100755 => 100644 app/src/debug/res/mipmap-hdpi/ic_launcher.png
mode change 100755 => 100644 app/src/debug/res/mipmap-mdpi/ic_launcher.png
mode change 100755 => 100644 app/src/debug/res/mipmap-xhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/assets/colors.json
mode change 100755 => 100644 app/src/main/assets/emojis.json
mode change 100755 => 100644 app/src/main/assets/fonts/app_font.ttf
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/agate.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/androidstudio.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/arduino-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/arta.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/ascetic.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-cave-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-cave-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-dune-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-dune-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-estuary-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-estuary-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-forest-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-forest-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-heath-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-heath-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-lakeside-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-lakeside-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-plateau-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-plateau-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-savanna-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-savanna-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-seaside-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-seaside-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atom-one-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/atom-one-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/brown-paper.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/codepen-embed.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/color-brewer.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/darcula.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/darkula.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/default.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/docco.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/dracula.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/far.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/foundation.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/github-gist.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/github.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/googlecode.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/grayscale.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/gruvbox-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/gruvbox-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/hopscotch.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/hybrid.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/idea.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/ir-black.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/kimbie.dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/kimbie.light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/magula.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/mono-blue.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/monokai-sublime.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/monokai.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/obsidian.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/ocean.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/paraiso-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/paraiso-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/pojoaque.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/purebasic.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/qtcreator_dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/qtcreator_light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/railscasts.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/rainbow.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/routeros.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/school-book.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/solarized-dark.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/solarized-light.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/sunburst.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/tomorrow-night-blue.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/tomorrow-night-bright.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/tomorrow-night-eighties.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/tomorrow-night.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/tomorrow.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/vs.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/vs2015.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/xcode.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/xt256.css
mode change 100755 => 100644 app/src/main/assets/highlight/styles/themes/zenburn.css
mode change 100755 => 100644 app/src/main/assets/md/github.css
mode change 100755 => 100644 app/src/main/assets/md/github_dark.css
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/Emoji.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/EmojiLoader.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/EmojiManager.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/EmojiParser.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/EmojiTrie.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/provider/emoji/Fitzpatrick.java
create mode 100644 app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java
mode change 100755 => 100644 app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerFastScroller.java
mode change 100755 => 100644 app/src/main/java/com/prettifier/pretty/PrettifyWebView.java
mode change 100755 => 100644 app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java
mode change 100755 => 100644 app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java
mode change 100755 => 100644 app/src/main/java/com/zzhoujay/markdown/style/CodeSpan.java
mode change 100755 => 100644 app/src/main/java/com/zzhoujay/markdown/style/FontSpan.java
mode change 100755 => 100644 app/src/main/java/com/zzhoujay/markdown/style/LinkSpan.java
mode change 100755 => 100644 app/src/main/java/com/zzhoujay/markdown/style/MarkDownQuoteSpan.java
mode change 100755 => 100644 app/src/main/res/drawable-nodpi/web_hi_res_512.png
mode change 100755 => 100644 app/src/main/res/drawable-xxxhdpi/ic_edittext.9.png
mode change 100755 => 100644 app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png
mode change 100755 => 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/res/mipmap-nodpi/foreground.png
mode change 100755 => 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
mode change 100755 => 100644 app/src/main/res/values-land/dimens.xml
mode change 100755 => 100644 app/src/main/res/values-w820dp-land/dimens.xml
mode change 100755 => 100644 app/src/main/res/values-w820dp/dimens.xml
diff --git a/README.md b/README.md
index e209d90a..a3c9d7dc 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,6 @@ _Ads currently not available._
- [**commonmark**](https://github.com/atlassian/commonmark-java) for _Markdown_ conversion to html
- [**Toasty**](https://github.com/GrenderG/Toasty) for displaying error/success messages
- [**ShapedImageView**](https://github.com/gavinliu/ShapedImageView) for round avatars
-- [**MaterialTapTargetPrompt**](https://github.com/sjwall/MaterialTapTargetPrompt) for displaying tips throughout the app
- [**Material-About-Library**](https://github.com/daniel-stoneuk/material-about-library) for the about screen
- **Fabric** analytics & crash reporting.
- **Android Support Libraries**, the almighty ;-)
@@ -144,7 +143,9 @@ Read the [**contribution guide**](.github/CONTRIBUTING.md) for more detailed inf
I login with Enterprise account but can't interact with anything other than my Enterprise GitHub
Well, logically, you can't access anything else other than your Enterprise, but FastHub made that possible but can't do much about it,
- in most cases since your login credential doesn't exists in GitHub server. But in few cases your Oauth token will do the trick.
+ in most cases since your login credential doesn't exists in GitHub server. But in few
+ cases your GitHub account Oauth token will do the trick.
+
diff --git a/app/build.gradle b/app/build.gradle
index 5ac17bf4..435b8f39 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -136,7 +136,6 @@ dependencies {
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
implementation 'com.annimon:stream:1.1.7'
implementation 'com.github.GrenderG:Toasty:1.1.3'
- implementation 'com.github.JediBurrell:MaterialTapTargetPrompt:-SNAPSHOT'
implementation 'com.github.k0shk0sh:RetainedDateTimePickers:1.0.2'
implementation 'com.github.daniel-stoneuk:material-about-library:2.1.0'
implementation "io.requery:requery:${requery}"
diff --git a/app/src/debug/res/mipmap-hdpi/ic_launcher.png b/app/src/debug/res/mipmap-hdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/debug/res/mipmap-mdpi/ic_launcher.png b/app/src/debug/res/mipmap-mdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/debug/res/mipmap-xhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 49c1117c..7d22dcae 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,17 +1,17 @@
-
+
-
-
-
-
-
+
+
+
+
+
+ android:resource="@drawable/ic_notification" />
-
+
-
+
-
+
-
-
+
+
+ android:scheme="fasthub" />
+ android:theme="@style/LoginTheme" />
+ android:value=".ui.modules.main.MainActivity" />
+ android:value=".ui.modules.main.MainActivity" />
+ android:value=".ui.modules.repos.RepoPagerActivity" />
+ android:label="@string/create_issue" />
+ android:value=".ui.modules.repos.RepoPagerActivity" />
+ android:value=".ui.modules.repos.RepoPagerActivity" />
+ android:label="@string/viewer" />
+ android:label="@string/markdown" />
+ android:label="@string/create_gist" />
+ android:value=".ui.modules.main.MainActivity" />
+ android:value=".ui.modules.main.MainActivity" />
+ android:value=".ui.modules.main.MainActivity" />
+ android:theme="@style/AppTheme.AboutActivity.Light" />
+ android:label="@string/pinned" />
-
+ android:label="@string/public_gists" />
+
+ android:value=".ui.modules.repos.RepoPagerActivity" />
-
-
-
+
+
+
+ android:value=".ui.modules.repos.RepoPagerActivity" />
-
-
+
+
+ android:value=".ui.modules.repos.RepoPagerActivity" />
+ android:value=".ui.modules.main.MainActivity" />
-
+
+ android:label="@string/theme_title" />
+ android:theme="@style/ThemeTranslucent" />
+ android:theme="@style/ThemeTranslucent" />
+ android:value=".ui.modules.repos.RepoPagerActivity" />
-
+
+ android:scheme="http" />
+ android:scheme="https" />
+ android:scheme="http" />
+ android:scheme="https" />
+ android:scheme="https" />
-
+ android:scheme="https" />
-
-
+
+
+
+
+
+
+
+
+
@@ -249,26 +255,26 @@
android:name=".provider.tasks.notification.NotificationSchedulerJobTask"
android:exported="false">
-
+
-
-
-
-
-
+
+
+
+
+
-
+
+ android:value="6ed82b6e0756853d7d782a3f547f84f9ecba217e" />
diff --git a/app/src/main/assets/colors.json b/app/src/main/assets/colors.json
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/emojis.json b/app/src/main/assets/emojis.json
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/fonts/app_font.ttf b/app/src/main/assets/fonts/app_font.ttf
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/agate.css b/app/src/main/assets/highlight/styles/themes/agate.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/androidstudio.css b/app/src/main/assets/highlight/styles/themes/androidstudio.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/arduino-light.css b/app/src/main/assets/highlight/styles/themes/arduino-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/arta.css b/app/src/main/assets/highlight/styles/themes/arta.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/ascetic.css b/app/src/main/assets/highlight/styles/themes/ascetic.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-cave-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-cave-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-cave-light.css b/app/src/main/assets/highlight/styles/themes/atelier-cave-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-dune-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-dune-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-dune-light.css b/app/src/main/assets/highlight/styles/themes/atelier-dune-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-estuary-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-estuary-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-estuary-light.css b/app/src/main/assets/highlight/styles/themes/atelier-estuary-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-forest-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-forest-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-forest-light.css b/app/src/main/assets/highlight/styles/themes/atelier-forest-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-heath-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-heath-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-heath-light.css b/app/src/main/assets/highlight/styles/themes/atelier-heath-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-lakeside-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-lakeside-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-lakeside-light.css b/app/src/main/assets/highlight/styles/themes/atelier-lakeside-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-plateau-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-plateau-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-plateau-light.css b/app/src/main/assets/highlight/styles/themes/atelier-plateau-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-savanna-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-savanna-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-savanna-light.css b/app/src/main/assets/highlight/styles/themes/atelier-savanna-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-seaside-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-seaside-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-seaside-light.css b/app/src/main/assets/highlight/styles/themes/atelier-seaside-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-dark.css b/app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-light.css b/app/src/main/assets/highlight/styles/themes/atelier-sulphurpool-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atom-one-dark.css b/app/src/main/assets/highlight/styles/themes/atom-one-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/atom-one-light.css b/app/src/main/assets/highlight/styles/themes/atom-one-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/brown-paper.css b/app/src/main/assets/highlight/styles/themes/brown-paper.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/codepen-embed.css b/app/src/main/assets/highlight/styles/themes/codepen-embed.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/color-brewer.css b/app/src/main/assets/highlight/styles/themes/color-brewer.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/darcula.css b/app/src/main/assets/highlight/styles/themes/darcula.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/dark.css b/app/src/main/assets/highlight/styles/themes/dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/darkula.css b/app/src/main/assets/highlight/styles/themes/darkula.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/default.css b/app/src/main/assets/highlight/styles/themes/default.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/docco.css b/app/src/main/assets/highlight/styles/themes/docco.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/dracula.css b/app/src/main/assets/highlight/styles/themes/dracula.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/far.css b/app/src/main/assets/highlight/styles/themes/far.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/foundation.css b/app/src/main/assets/highlight/styles/themes/foundation.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/github-gist.css b/app/src/main/assets/highlight/styles/themes/github-gist.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/github.css b/app/src/main/assets/highlight/styles/themes/github.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/googlecode.css b/app/src/main/assets/highlight/styles/themes/googlecode.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/grayscale.css b/app/src/main/assets/highlight/styles/themes/grayscale.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/gruvbox-dark.css b/app/src/main/assets/highlight/styles/themes/gruvbox-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/gruvbox-light.css b/app/src/main/assets/highlight/styles/themes/gruvbox-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/hopscotch.css b/app/src/main/assets/highlight/styles/themes/hopscotch.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/hybrid.css b/app/src/main/assets/highlight/styles/themes/hybrid.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/idea.css b/app/src/main/assets/highlight/styles/themes/idea.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/ir-black.css b/app/src/main/assets/highlight/styles/themes/ir-black.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/kimbie.dark.css b/app/src/main/assets/highlight/styles/themes/kimbie.dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/kimbie.light.css b/app/src/main/assets/highlight/styles/themes/kimbie.light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/magula.css b/app/src/main/assets/highlight/styles/themes/magula.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/mono-blue.css b/app/src/main/assets/highlight/styles/themes/mono-blue.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/monokai-sublime.css b/app/src/main/assets/highlight/styles/themes/monokai-sublime.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/monokai.css b/app/src/main/assets/highlight/styles/themes/monokai.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/obsidian.css b/app/src/main/assets/highlight/styles/themes/obsidian.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/ocean.css b/app/src/main/assets/highlight/styles/themes/ocean.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/paraiso-dark.css b/app/src/main/assets/highlight/styles/themes/paraiso-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/paraiso-light.css b/app/src/main/assets/highlight/styles/themes/paraiso-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/pojoaque.css b/app/src/main/assets/highlight/styles/themes/pojoaque.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/purebasic.css b/app/src/main/assets/highlight/styles/themes/purebasic.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/qtcreator_dark.css b/app/src/main/assets/highlight/styles/themes/qtcreator_dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/qtcreator_light.css b/app/src/main/assets/highlight/styles/themes/qtcreator_light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/railscasts.css b/app/src/main/assets/highlight/styles/themes/railscasts.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/rainbow.css b/app/src/main/assets/highlight/styles/themes/rainbow.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/routeros.css b/app/src/main/assets/highlight/styles/themes/routeros.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/school-book.css b/app/src/main/assets/highlight/styles/themes/school-book.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/solarized-dark.css b/app/src/main/assets/highlight/styles/themes/solarized-dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/solarized-light.css b/app/src/main/assets/highlight/styles/themes/solarized-light.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/sunburst.css b/app/src/main/assets/highlight/styles/themes/sunburst.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/tomorrow-night-blue.css b/app/src/main/assets/highlight/styles/themes/tomorrow-night-blue.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/tomorrow-night-bright.css b/app/src/main/assets/highlight/styles/themes/tomorrow-night-bright.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/tomorrow-night-eighties.css b/app/src/main/assets/highlight/styles/themes/tomorrow-night-eighties.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/tomorrow-night.css b/app/src/main/assets/highlight/styles/themes/tomorrow-night.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/tomorrow.css b/app/src/main/assets/highlight/styles/themes/tomorrow.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/vs.css b/app/src/main/assets/highlight/styles/themes/vs.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/vs2015.css b/app/src/main/assets/highlight/styles/themes/vs2015.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/xcode.css b/app/src/main/assets/highlight/styles/themes/xcode.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/xt256.css b/app/src/main/assets/highlight/styles/themes/xt256.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/highlight/styles/themes/zenburn.css b/app/src/main/assets/highlight/styles/themes/zenburn.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/md/github.css b/app/src/main/assets/md/github.css
old mode 100755
new mode 100644
diff --git a/app/src/main/assets/md/github_dark.css b/app/src/main/assets/md/github_dark.css
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java b/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java
index 1fd2d64f..867a074d 100644
--- a/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java
+++ b/app/src/main/java/com/fastaccess/data/dao/GroupedNotificationModel.java
@@ -26,8 +26,8 @@ import static com.annimon.stream.Collectors.toList;
@Getter @Setter public class GroupedNotificationModel {
public static final int HEADER = 1;
-
public static final int ROW = 2;
+
private int type;
private Repo repo;
private Notification notification;
diff --git a/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java b/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java
index dd7aa517..048bef49 100644
--- a/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java
+++ b/app/src/main/java/com/fastaccess/data/dao/model/AbstractLogin.java
@@ -5,6 +5,8 @@ import android.os.Parcelable;
import android.support.annotation.NonNull;
import com.fastaccess.App;
+import com.fastaccess.helper.Logger;
+import com.fastaccess.helper.PrefGetter;
import com.fastaccess.helper.RxHelper;
import java.util.Date;
@@ -56,24 +58,12 @@ import lombok.NoArgsConstructor;
@Nullable boolean isLoggedIn;
@Nullable boolean isEnterprise;
@Nullable String otpCode;
+ @Nullable String enterpriseUrl;
public Observable update(Login login) {
- Login current = getUser();
- login.setIsEnterprise(current.isIsEnterprise());
- login.setToken(current.getToken());
return RxHelper.safeObservable(App.getInstance().getDataStore().update(login).toObservable());
}
- public Observable saveObservable(Login entity) {
- return App.getInstance().getDataStore()
- .delete(Login.class)
- .where(Login.LOGIN.eq(entity.getLogin()))
- .get()
- .single()
- .flatMap(integer -> App.getInstance().getDataStore().insert(entity))
- .toObservable();
- }
-
public void save(Login entity) {
App.getInstance().getDataStore()
.delete(Login.class)
@@ -127,7 +117,44 @@ import lombok.NoArgsConstructor;
.value() > 0;
}
- @Override public int describeContents() { return 0; }
+ public static Observable onMultipleLogin(@NonNull Login userModel, boolean isEnterprise, boolean isNew) {
+ return Observable.fromPublisher(s -> {
+ Login currentUser = Login.getUser();
+ if (currentUser != null) {
+ currentUser.setIsLoggedIn(false);
+ currentUser.save(currentUser);
+ }
+ if (!isEnterprise) {
+ PrefGetter.resetEnterprise();
+ }
+ userModel.setIsLoggedIn(true);
+ if (isNew) {
+ userModel.setIsEnterprise(isEnterprise);
+ userModel.setToken(isEnterprise ? PrefGetter.getEnterpriseToken() : PrefGetter.getToken());
+ userModel.setOtpCode(isEnterprise ? PrefGetter.getEnterpriseOtpCode() : PrefGetter.getOtpCode());
+ userModel.setEnterpriseUrl(isEnterprise ? PrefGetter.getEnterpriseUrl() : null);
+ userModel.save(userModel);
+ } else {
+ if (isEnterprise) {
+ PrefGetter.setTokenEnterprise(userModel.token);
+ PrefGetter.setEnterpriseOtpCode(userModel.otpCode);
+ PrefGetter.setEnterpriseUrl(userModel.enterpriseUrl);
+ Logger.e(userModel.enterpriseUrl, PrefGetter.getEnterpriseUrl());
+ } else {
+ PrefGetter.resetEnterprise();
+ PrefGetter.setToken(userModel.token);
+ PrefGetter.setOtpCode(userModel.otpCode);
+ }
+ userModel.save(userModel);
+ }
+ s.onNext(true);
+ s.onComplete();
+ });
+ }
+
+ @Override public int describeContents() {
+ return 0;
+ }
@Override public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(this.id);
@@ -165,6 +192,7 @@ import lombok.NoArgsConstructor;
dest.writeByte(this.isLoggedIn ? (byte) 1 : (byte) 0);
dest.writeByte(this.isEnterprise ? (byte) 1 : (byte) 0);
dest.writeString(this.otpCode);
+ dest.writeString(this.enterpriseUrl);
}
protected AbstractLogin(Parcel in) {
@@ -205,11 +233,18 @@ import lombok.NoArgsConstructor;
this.isLoggedIn = in.readByte() != 0;
this.isEnterprise = in.readByte() != 0;
this.otpCode = in.readString();
+ this.enterpriseUrl = in.readString();
}
public static final Creator CREATOR = new Creator() {
- @Override public Login createFromParcel(Parcel source) {return new Login(source);}
+ @Override
+ public Login createFromParcel(Parcel source) {
+ return new Login(source);
+ }
- @Override public Login[] newArray(int size) {return new Login[size];}
+ @Override
+ public Login[] newArray(int size) {
+ return new Login[size];
+ }
};
}
diff --git a/app/src/main/java/com/fastaccess/helper/ActivityHelper.java b/app/src/main/java/com/fastaccess/helper/ActivityHelper.java
index 774b7192..75bda2fa 100644
--- a/app/src/main/java/com/fastaccess/helper/ActivityHelper.java
+++ b/app/src/main/java/com/fastaccess/helper/ActivityHelper.java
@@ -33,6 +33,8 @@ import android.widget.Toast;
import com.fastaccess.App;
import com.fastaccess.R;
+import com.fastaccess.ui.modules.main.MainActivity;
+import com.fastaccess.ui.modules.parser.LinksParserActivity;
import java.util.ArrayList;
import java.util.List;
@@ -46,7 +48,8 @@ public class ActivityHelper {
private static int BUTTON_ID = 32;
- @Nullable public static Activity getActivity(@Nullable Context content) {
+ @Nullable
+ public static Activity getActivity(@Nullable Context content) {
if (content == null) return null;
else if (content instanceof Activity) return (Activity) content;
else if (content instanceof ContextWrapper) return getActivity(((ContextWrapper) content).getBaseContext());
@@ -82,21 +85,24 @@ public class ActivityHelper {
if (finalIntent != null) {
try {
context.startActivity(finalIntent);
- } catch (ActivityNotFoundException ignored) {}
+ } catch (ActivityNotFoundException ignored) {
+ }
} else {
if (!fromCustomTab) {
Activity activity = ActivityHelper.getActivity(context);
if (activity == null) {
try {
context.startActivity(i);
- } catch (ActivityNotFoundException ignored) {}
+ } catch (ActivityNotFoundException ignored) {
+ }
return;
}
startCustomTab(activity, url);
} else {
try {
context.startActivity(i);
- } catch (ActivityNotFoundException ignored) {}
+ } catch (ActivityNotFoundException ignored) {
+ }
}
}
}
@@ -105,7 +111,8 @@ public class ActivityHelper {
openChooser(context, Uri.parse(url));
}
- @SafeVarargs public static void start(@NonNull Activity activity, Class cl, Pair... sharedElements) {
+ @SafeVarargs
+ public static void start(@NonNull Activity activity, Class cl, Pair... sharedElements) {
Intent intent = new Intent(activity, cl);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements);
activity.startActivity(intent, options.toBundle());
@@ -138,7 +145,8 @@ public class ActivityHelper {
activity.startActivity(intent, options.toBundle());
}
- @SafeVarargs public static void start(@NonNull Activity activity, @NonNull Intent intent, @NonNull Pair... sharedElements) {
+ @SafeVarargs
+ public static void start(@NonNull Activity activity, @NonNull Intent intent, @NonNull Pair... sharedElements) {
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements);
activity.startActivity(intent, options.toBundle());
@@ -159,7 +167,8 @@ public class ActivityHelper {
}
@SuppressWarnings("RestrictedApi")
- @Nullable public static Fragment getVisibleFragment(@NonNull FragmentManager manager) {
+ @Nullable
+ public static Fragment getVisibleFragment(@NonNull FragmentManager manager) {
List fragments = manager.getFragments();
if (fragments != null && !fragments.isEmpty()) {
for (Fragment fragment : fragments) {
@@ -233,77 +242,11 @@ public class ActivityHelper {
return chooserIntent;
}
- public static void showDismissHints(@NonNull Context context, @NonNull Runnable runnable) {
- Activity activity = getActivity(context);
- if (activity == null) return;
- LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- params.weight = 1;
- params.gravity = Gravity.START;
- int margin = (int) context.getResources().getDimension(R.dimen.spacing_normal);
- params.setMargins(margin, margin, margin, margin);
- Button button = new Button(context);
- button.setLayoutParams(params);
- button.setText(context.getResources().getString(R.string.dismiss_all));
- button.setTextColor(context.getResources().getColor(R.color.material_grey_200));
- button.setBackgroundTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.material_red_accent_700)));
- button.setAllCaps(true);
- button.setOnClickListener(v -> {
- PrefGetter.isCommentHintShowed();
- PrefGetter.isEditorHintShowed();
- PrefGetter.isFileOptionHintShow();
- PrefGetter.isHomeButoonHintShowed();
- PrefGetter.isNavDrawerHintShowed();
- PrefGetter.isReleaseHintShow();
- PrefGetter.isRepoFabHintShowed();
- PrefGetter.isRepoGuideShowed();
- runnable.run();
- ActivityHelper.hideDismissHints(context);
- });
- ViewGroup parentView = (ViewGroup) activity.getWindow().getDecorView();
- RelativeLayout relativeLayout = new RelativeLayout(context);
- relativeLayout.setId(BUTTON_ID);
- relativeLayout.setLayoutParams(
- new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
- relativeLayout.setPadding(0, getNotificationBarHeight(context), 0, 0);
-
- relativeLayout.addView(button);
- parentView.addView(relativeLayout);
- }
-
- public static void hideDismissHints(@NonNull Context context) {
- Activity activity = getActivity(context);
- if (activity == null) return;
- ViewGroup parentView = (ViewGroup) activity.getWindow().getDecorView();
- View button = parentView.findViewById(BUTTON_ID);
- if (button != null)
- parentView.removeView(button);
- }
-
- public static void bringDismissAllToFront(@NonNull Context context) {
- Activity activity = getActivity(context);
- if (activity == null) return;
- ViewGroup parentView = (ViewGroup) activity.getWindow().getDecorView();
- View button = parentView.findViewById(BUTTON_ID);
- if (button != null)
- button.bringToFront();
- }
-
- private static int getNotificationBarHeight(@NonNull Context context) {
- Rect rectangle = new Rect();
- Activity activity = getActivity(context);
- if (activity == null) return 0;
- Window window = activity.getWindow();
- window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
- int statusBarHeight = rectangle.top;
- int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
-
- return Math.abs(contentViewTop - statusBarHeight);
- }
-
- public static void activateActivity(Context context, final Class extends Activity> activity, final boolean activate) {
+ public static void activateLinkInterceptorActivity(Context context, boolean activate) {
final PackageManager pm = context.getPackageManager();
final int flag = activate ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
- pm.setComponentEnabledSetting(new ComponentName(context, activity), flag, PackageManager.DONT_KILL_APP);
+ pm.setComponentEnabledSetting(new ComponentName(context, LinksParserActivity.class), flag, PackageManager.DONT_KILL_APP);
}
+
}
diff --git a/app/src/main/java/com/fastaccess/helper/PrefGetter.java b/app/src/main/java/com/fastaccess/helper/PrefGetter.java
index ce523171..7375d324 100644
--- a/app/src/main/java/com/fastaccess/helper/PrefGetter.java
+++ b/app/src/main/java/com/fastaccess/helper/PrefGetter.java
@@ -418,4 +418,10 @@ public class PrefGetter {
public static boolean isEnterprise() {
return !InputHelper.isEmpty(getEnterpriseUrl());
}
+
+ public static void resetEnterprise() {
+ PrefGetter.setTokenEnterprise(null);
+ PrefGetter.setEnterpriseOtpCode(null);
+ PrefGetter.setEnterpriseUrl(null);
+ }
}
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/Emoji.java b/app/src/main/java/com/fastaccess/provider/emoji/Emoji.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/EmojiLoader.java b/app/src/main/java/com/fastaccess/provider/emoji/EmojiLoader.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/EmojiManager.java b/app/src/main/java/com/fastaccess/provider/emoji/EmojiManager.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/EmojiParser.java b/app/src/main/java/com/fastaccess/provider/emoji/EmojiParser.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/EmojiTrie.java b/app/src/main/java/com/fastaccess/provider/emoji/EmojiTrie.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/emoji/Fitzpatrick.java b/app/src/main/java/com/fastaccess/provider/emoji/Fitzpatrick.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java b/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java
index f0e4357a..bb34f400 100644
--- a/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java
+++ b/app/src/main/java/com/fastaccess/provider/scheme/LinkParserHelper.java
@@ -4,15 +4,13 @@ import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
-import com.annimon.stream.Collectors;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.fastaccess.helper.InputHelper;
-import com.fastaccess.helper.Logger;
import com.fastaccess.helper.ObjectsCompat;
import com.fastaccess.helper.PrefGetter;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -26,10 +24,9 @@ public class LinkParserHelper {
static final String RAW_AUTHORITY = "raw.githubusercontent.com";
static final String API_AUTHORITY = "api.github.com";
static final String PROTOCOL_HTTPS = "https";
- static final ArrayList IGNORED_LIST = Stream.of("notifications", "settings", "blog", "explore",
- "dashboard", "repositories", "logout", "sessions", "site", "security", "contact", "about", "logos", "login", "pricing", "")
- .collect(Collectors.toCollection(ArrayList::new));
-
+ static final List IGNORED_LIST = Arrays.asList("notifications", "settings", "blog",
+ "explore", "dashboard", "repositories", "logout", "sessions", "site", "security",
+ "contact", "about", "logos", "login", "pricing", "");
@SafeVarargs static Optional returnNonNull(@NonNull T... t) {
return Stream.of(t).filter(ObjectsCompat::nonNull).findFirst();
@@ -67,17 +64,10 @@ public class LinkParserHelper {
public static boolean isEnterprise(@Nullable String url) {
if (InputHelper.isEmpty(url) || !PrefGetter.isEnterprise()) return false;
- try {
- Uri enterpriseUri = Uri.parse(getEndpoint(PrefGetter.getEnterpriseUrl()));
- Uri uri = Uri.parse(url);
- if (enterpriseUri != null) {
- boolean isEnterprise = enterpriseUri.getAuthority().equalsIgnoreCase(uri != null && uri.getAuthority() != null
- ? uri.getAuthority() : url);
- Logger.e(isEnterprise, enterpriseUri.getAuthority(), uri != null ? uri.getAuthority() : "N/A");
- return isEnterprise;
- }
- } catch (Exception ignored) {}
- return false;
+ String enterpriseUrl = PrefGetter.getEnterpriseUrl().toLowerCase();
+ url = url.toLowerCase();
+ return url.equalsIgnoreCase(enterpriseUrl) || url.startsWith(enterpriseUrl) || url.startsWith(getEndpoint(enterpriseUrl))
+ || url.contains(enterpriseUrl) || enterpriseUrl.contains(url);
}
public static String stripScheme(@NonNull String url) {
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 31472ecd..280c38e9 100644
--- a/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java
+++ b/app/src/main/java/com/fastaccess/provider/scheme/SchemeParser.java
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
@@ -139,16 +140,30 @@ public class SchemeParser {
Optional intentOptional = returnNonNull(trending, userIntent, repoIssues, repoPulls, pullRequestIntent, commit, commits,
createIssueIntent, issueIntent, releasesIntent, repoIntent, repoWikiIntent, blob);
Optional empty = Optional.empty();
+ Logger.e(isEnterprise);
if (intentOptional != null && intentOptional.isPresent() && intentOptional != empty) {
Intent intent = intentOptional.get();
- if (intent.getExtras() != null && isEnterprise) {
- intent.getExtras().putBoolean(BundleConstant.IS_ENTERPRISE, true);
+ if (isEnterprise) {
+ if (intent.getExtras() != null) {
+ Bundle bundle = intent.getExtras();
+ bundle.putBoolean(BundleConstant.IS_ENTERPRISE, true);
+ intent.putExtras(bundle);
+ } else {
+ intent.putExtra(BundleConstant.IS_ENTERPRISE, true);
+ }
}
+ Logger.e(intent);
return intent;
} else {
Intent intent = getGeneralRepo(context, data);
- if (intent != null && intent.getExtras() != null && isEnterprise) {
- intent.getExtras().putBoolean(BundleConstant.IS_ENTERPRISE, true);
+ if (isEnterprise) {
+ if (intent != null && intent.getExtras() != null) {
+ Bundle bundle = intent.getExtras();
+ bundle.putBoolean(BundleConstant.IS_ENTERPRISE, true);
+ intent.putExtras(bundle);
+ } else if (intent != null) {
+ intent.putExtra(BundleConstant.IS_ENTERPRISE, true);
+ }
}
return intent;
}
diff --git a/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java b/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java
index 3daefaec..973625d9 100644
--- a/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java
+++ b/app/src/main/java/com/fastaccess/provider/tasks/notification/NotificationSchedulerJobTask.java
@@ -274,7 +274,7 @@ public class NotificationSchedulerJobTask extends JobService {
}
private NotificationCompat.Builder getNotification(@NonNull String title, @NonNull String message) {
- return new NotificationCompat.Builder(this)
+ return new NotificationCompat.Builder(this, title)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true);
diff --git a/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt b/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt
index e455b0ce..2a6770c6 100644
--- a/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt
+++ b/app/src/main/java/com/fastaccess/provider/theme/ThemeEngine.kt
@@ -1,5 +1,6 @@
package com.fastaccess.provider.theme
+import android.app.Activity
import android.app.ActivityManager
import android.graphics.BitmapFactory
import android.support.annotation.StyleRes
@@ -32,19 +33,14 @@ object ThemeEngine {
fun applyForAbout(activity: MaterialAboutActivity) {
val themeMode = PrefGetter.getThemeType(activity)
- if (themeMode == PrefGetter.LIGHT) {
- activity.setTheme(R.style.AppTheme_AboutActivity_Light)
- } else if (themeMode == PrefGetter.DARK) {
- activity.setTheme(R.style.AppTheme_AboutActivity_Dark)
- } else if (themeMode == PrefGetter.AMLOD) {
- activity.setTheme(R.style.AppTheme_AboutActivity_Amlod)
- } else if (themeMode == PrefGetter.MID_NIGHT_BLUE) {
- activity.setTheme(R.style.AppTheme_AboutActivity_MidNightBlue)
- } else if (themeMode == PrefGetter.BLUISH) {
- activity.setTheme(R.style.AppTheme_AboutActivity_Bluish)
+ when (themeMode) {
+ PrefGetter.LIGHT -> activity.setTheme(R.style.AppTheme_AboutActivity_Light)
+ PrefGetter.DARK -> activity.setTheme(R.style.AppTheme_AboutActivity_Dark)
+ PrefGetter.AMLOD -> activity.setTheme(R.style.AppTheme_AboutActivity_Amlod)
+ PrefGetter.MID_NIGHT_BLUE -> activity.setTheme(R.style.AppTheme_AboutActivity_MidNightBlue)
+ PrefGetter.BLUISH -> activity.setTheme(R.style.AppTheme_AboutActivity_Bluish)
}
- activity.setTaskDescription(ActivityManager.TaskDescription(activity.getString(R.string.app_name),
- BitmapFactory.decodeResource(activity.resources, R.mipmap.ic_launcher), ViewHelper.getPrimaryColor(activity)))
+ setTaskDescription(activity)
}
fun applyDialogTheme(activity: BaseActivity<*, *>) {
@@ -58,8 +54,8 @@ object ThemeEngine {
@StyleRes fun getTheme(themeMode: Int, themeColor: Int): Int {
Logger.e(themeMode, themeColor)
// I wish if I could simplify this :'( too many cases for the love of god.
- if (themeMode == PrefGetter.LIGHT) {
- when (themeColor) {
+ when (themeMode) {
+ PrefGetter.LIGHT -> when (themeColor) {
PrefGetter.RED -> return R.style.ThemeLight_Red
PrefGetter.PINK -> return R.style.ThemeLight_Pink
PrefGetter.PURPLE -> return R.style.ThemeLight_Purple
@@ -78,8 +74,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.ThemeLight_DeepOrange
else -> return R.style.ThemeLight
}
- } else if (themeMode == PrefGetter.DARK) {
- when (themeColor) {
+ PrefGetter.DARK -> when (themeColor) {
PrefGetter.RED -> return R.style.ThemeDark_Red
PrefGetter.PINK -> return R.style.ThemeDark_Pink
PrefGetter.PURPLE -> return R.style.ThemeDark_Purple
@@ -97,8 +92,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.ThemeDark_DeepOrange
else -> return R.style.ThemeDark
}
- } else if (themeMode == PrefGetter.AMLOD) {
- when (themeColor) {
+ PrefGetter.AMLOD -> when (themeColor) {
PrefGetter.RED -> return R.style.ThemeAmlod_Red
PrefGetter.PINK -> return R.style.ThemeAmlod_Pink
PrefGetter.PURPLE -> return R.style.ThemeAmlod_Purple
@@ -116,8 +110,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.ThemeAmlod_DeepOrange
else -> return R.style.ThemeAmlod
}
- } else if (themeMode == PrefGetter.MID_NIGHT_BLUE) {
- when (themeColor) {
+ PrefGetter.MID_NIGHT_BLUE -> when (themeColor) {
PrefGetter.RED -> return R.style.ThemeMidNighBlue_Red
PrefGetter.PINK -> return R.style.ThemeMidNighBlue_Pink
PrefGetter.PURPLE -> return R.style.ThemeMidNighBlue_Purple
@@ -135,8 +128,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.ThemeMidNighBlue_DeepOrange
else -> return R.style.ThemeMidNighBlue
}
- } else if (themeMode == PrefGetter.BLUISH) {
- when (themeColor) {
+ PrefGetter.BLUISH -> when (themeColor) {
PrefGetter.RED -> return R.style.ThemeBluish_Red
PrefGetter.PINK -> return R.style.ThemeBluish_Pink
PrefGetter.PURPLE -> return R.style.ThemeBluish_Purple
@@ -159,8 +151,8 @@ object ThemeEngine {
}
@StyleRes fun getDialogTheme(themeMode: Int, themeColor: Int): Int {
- if (themeMode == PrefGetter.LIGHT) {
- when (themeColor) {
+ when (themeMode) {
+ PrefGetter.LIGHT -> when (themeColor) {
PrefGetter.RED -> return R.style.DialogThemeLight_Red
PrefGetter.PINK -> return R.style.DialogThemeLight_Pink
PrefGetter.PURPLE -> return R.style.DialogThemeLight_Purple
@@ -179,8 +171,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.DialogThemeLight_DeepOrange
else -> return R.style.DialogThemeLight
}
- } else if (themeMode == PrefGetter.DARK) {
- when (themeColor) {
+ PrefGetter.DARK -> when (themeColor) {
PrefGetter.RED -> return R.style.DialogThemeDark_Red
PrefGetter.PINK -> return R.style.DialogThemeDark_Pink
PrefGetter.PURPLE -> return R.style.DialogThemeDark_Purple
@@ -198,8 +189,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.DialogThemeDark_DeepOrange
else -> return R.style.DialogThemeDark
}
- } else if (themeMode == PrefGetter.AMLOD) {
- when (themeColor) {
+ PrefGetter.AMLOD -> when (themeColor) {
PrefGetter.RED -> return R.style.DialogThemeAmlod_Red
PrefGetter.PINK -> return R.style.DialogThemeAmlod_Pink
PrefGetter.PURPLE -> return R.style.DialogThemeAmlod_Purple
@@ -217,8 +207,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.DialogThemeAmlod_DeepOrange
else -> return R.style.DialogThemeAmlod
}
- } else if (themeMode == PrefGetter.MID_NIGHT_BLUE) {
- when (themeColor) {
+ PrefGetter.MID_NIGHT_BLUE -> when (themeColor) {
PrefGetter.RED -> return R.style.DialogThemeLight_Red
PrefGetter.PINK -> return R.style.DialogThemeLight_Pink
PrefGetter.PURPLE -> return R.style.DialogThemeLight_Purple
@@ -236,8 +225,7 @@ object ThemeEngine {
PrefGetter.DEEP_ORANGE -> return R.style.DialogThemeLight_DeepOrange
else -> return R.style.DialogThemeLight
}
- } else if (themeMode == PrefGetter.BLUISH) {
- when (themeColor) {
+ PrefGetter.BLUISH -> when (themeColor) {
PrefGetter.RED -> return R.style.DialogThemeBluish_Red
PrefGetter.PINK -> return R.style.DialogThemeBluish_Pink
PrefGetter.PURPLE -> return R.style.DialogThemeBluish_Purple
@@ -259,11 +247,11 @@ object ThemeEngine {
return R.style.DialogThemeLight
}
- private fun setTaskDescription(activity: BaseActivity<*, *>) {
+ private fun setTaskDescription(activity: Activity) {
activity.setTaskDescription(ActivityManager.TaskDescription(activity.getString(R.string.app_name),
BitmapFactory.decodeResource(activity.getResources(), R.mipmap.ic_launcher), ViewHelper.getPrimaryColor(activity)))
}
private fun hasTheme(activity: BaseActivity<*, *>) = (activity is LoginChooserActivity || activity is LoginActivity ||
- activity is DonateActivity || activity is ReviewChangesActivity)
+ activity is DonateActivity || activity is ReviewChangesActivity)
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java
index 64643f3b..7027707b 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/AssigneesViewHolder.java
@@ -51,12 +51,12 @@ public class AssigneesViewHolder extends BaseViewHolder {
}
@Override public void bind(@NonNull User user) {
- avatar.setUrl(user.getAvatarUrl(), user.getLogin(), user.isOrganizationType(), LinkParserHelper.isEnterprise(user.getUrl()));
+ avatar.setUrl(user.getAvatarUrl(), user.getLogin(), user.isOrganizationType(), LinkParserHelper.isEnterprise(user.getHtmlUrl()));
title.setText(user.getLogin());
date.setVisibility(View.GONE);
if (onSelectAssignee != null) {
itemView.setBackgroundColor(onSelectAssignee.isAssigneeSelected(getAdapterPosition())
- ? lightGray : ViewHelper.getWindowBackground(itemView.getContext()));
+ ? lightGray : ViewHelper.getWindowBackground(itemView.getContext()));
}
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java
index 837871e1..ec13039b 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommentsViewHolder.java
@@ -55,7 +55,7 @@ public class CommentsViewHolder extends BaseViewHolder {
@Override public void bind(@NonNull Comment commentsModel) {
if (commentsModel.getUser() != null) {
avatar.setUrl(commentsModel.getUser().getAvatarUrl(), commentsModel.getUser().getLogin(),
- commentsModel.getUser().isOrganizationType(), LinkParserHelper.isEnterprise(commentsModel.getUser().getUrl()));
+ commentsModel.getUser().isOrganizationType(), LinkParserHelper.isEnterprise(commentsModel.getUser().getHtmlUrl()));
} else {
avatar.setUrl(null, null, false, false);
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java
index 3f094dad..d66e5a94 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/CommitsViewHolder.java
@@ -49,7 +49,7 @@ public class CommitsViewHolder extends BaseViewHolder {
.append(" ")
.append(ParseDateFormat.getTimeAgo(date)));
avatarLayout.setUrl(avatar, login, false, LinkParserHelper
- .isEnterprise(commit.getAuthor() != null ? commit.getAuthor().getUrl() : commit.getGitCommit().getAuthor().getUrl()));
+ .isEnterprise(commit.getAuthor() != null ? commit.getAuthor().getUrl() : commit.getGitCommit().getAuthor().getHtmlUrl()));
avatarLayout.setVisibility(View.VISIBLE);
if (commit.getGitCommit() != null && commit.getGitCommit().getCommentCount() > 0) {
commentsNo.setText(String.valueOf(commit.getGitCommit() != null ? commit.getGitCommit().getCommentCount() : 0));
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java
index 0f924d2d..7977c92e 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/FeedsViewHolder.java
@@ -456,7 +456,7 @@ public class FeedsViewHolder extends BaseViewHolder {
if (eventsModel.getActor() != null) {
avatar.setUrl(eventsModel.getActor().getAvatarUrl(), eventsModel.getActor().getLogin(),
eventsModel.getActor().isOrganizationType(),
- LinkParserHelper.isEnterprise(eventsModel.getActor().getUrl()));
+ LinkParserHelper.isEnterprise(eventsModel.getActor().getHtmlUrl()));
} else {
avatar.setUrl(null, null, false, false);
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java
index 28fa8efc..2fc2e36f 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/GistsViewHolder.java
@@ -48,7 +48,7 @@ public class GistsViewHolder extends BaseViewHolder {
String url = item.getOwner() != null ? item.getOwner().getAvatarUrl() : item.getUser() != null ? item.getUser().getAvatarUrl() : null;
String login = item.getOwner() != null ? item.getOwner().getLogin() : item.getUser() != null ? item.getUser().getLogin() : null;
avatar.setUrl(url, login, false, LinkParserHelper.isEnterprise(
- item.getOwner() != null ? item.getOwner().getUrl() : item.getUser() != null ? item.getUser().getUrl() : null));
+ item.getOwner() != null ? item.getOwner().getHtmlUrl() : item.getUser() != null ? item.getUser().getHtmlUrl() : null));
}
}
title.setText(item.getDisplayTitle(isFromProfile));
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java
index 2d537a71..5e2110a2 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssueDetailsViewHolder.java
@@ -172,7 +172,7 @@ public class IssueDetailsViewHolder extends BaseViewHolder {
private void setup(User user, String description, ReactionsModel reactionsModel) {
avatar.setUrl(user.getAvatarUrl(), user.getLogin(), user.isOrganizationType(),
- LinkParserHelper.isEnterprise(user.getUrl()));
+ LinkParserHelper.isEnterprise(user.getHtmlUrl()));
name.setText(user.getLogin());
if (reactionsModel != null) {
appendEmojies(reactionsModel);
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java
index a16708e9..024a8027 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/IssuesViewHolder.java
@@ -118,7 +118,7 @@ public class IssuesViewHolder extends BaseViewHolder {
}
if (withAvatar && avatarLayout != null) {
avatarLayout.setUrl(issueModel.getUser().getAvatarUrl(), issueModel.getUser().getLogin(), false,
- LinkParserHelper.isEnterprise(issueModel.getUser().getUrl()));
+ LinkParserHelper.isEnterprise(issueModel.getUser().getHtmlUrl()));
avatarLayout.setVisibility(View.VISIBLE);
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java
index 84c0d0b2..ffbe50a6 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PinnedReposViewHolder.java
@@ -72,7 +72,7 @@ public class PinnedReposViewHolder extends BaseViewHolder {
boolean isOrg = repo.getOwner() != null && repo.getOwner().isOrganizationType();
if (avatarLayout != null) {
avatarLayout.setVisibility(View.VISIBLE);
- avatarLayout.setUrl(avatar, login, isOrg, LinkParserHelper.isEnterprise(repo.getUrl()));
+ avatarLayout.setUrl(avatar, login, isOrg, LinkParserHelper.isEnterprise(repo.getHtmlUrl()));
}
NumberFormat numberFormat = NumberFormat.getNumberInstance();
stars.setText(numberFormat.format(repo.getStargazersCount()));
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java
index ab58f073..f1083082 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ProfileOrgsViewHolder.java
@@ -36,6 +36,6 @@ public class ProfileOrgsViewHolder extends BaseViewHolder {
@Override public void bind(@NonNull User user) {
name.setText(user.getLogin());
- avatarLayout.setUrl(user.getAvatarUrl(), user.getLogin(), true, LinkParserHelper.isEnterprise(user.getUrl()));
+ avatarLayout.setUrl(user.getAvatarUrl(), user.getLogin(), true, LinkParserHelper.isEnterprise(user.getHtmlUrl()));
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java
index 42df3643..7898539a 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullRequestViewHolder.java
@@ -55,7 +55,7 @@ public class PullRequestViewHolder extends BaseViewHolder {
}
if (withAvatar && avatarLayout != null) {
avatarLayout.setUrl(pullRequest.getUser().getAvatarUrl(), pullRequest.getUser().getLogin(),
- false, LinkParserHelper.isEnterprise(pullRequest.getUrl()));
+ false, LinkParserHelper.isEnterprise(pullRequest.getHtmlUrl()));
avatarLayout.setVisibility(View.VISIBLE);
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java
index f5f15f41..1837a9fb 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/PullStatusViewHolder.java
@@ -78,8 +78,7 @@ public class PullStatusViewHolder extends BaseViewHolder
builder.append(ContextCompat.getDrawable(statuses.getContext(), statusesModel.getState().getDrawableRes()));
if (!InputHelper.isEmpty(statusesModel.getTargetUrl())) {
builder.append(" ")
- .url(statusesModel.getDescription(), v -> SchemeParser.launchUri(v.getContext(),
- Uri.parse(statusesModel.getTargetUrl())))
+ .url(statusesModel.getDescription(), v -> SchemeParser.launchUri(v.getContext(), statusesModel.getTargetUrl()))
.append("\n");
} else {
builder.append("\n");
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java
index e5c4dd4b..6b490e7b 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReposViewHolder.java
@@ -81,7 +81,7 @@ public class ReposViewHolder extends BaseViewHolder {
boolean isOrg = repo.getOwner() != null && repo.getOwner().isOrganizationType();
if (avatarLayout != null) {
avatarLayout.setVisibility(View.VISIBLE);
- avatarLayout.setUrl(avatar, login, isOrg, LinkParserHelper.isEnterprise(repo.getUrl()));
+ avatarLayout.setUrl(avatar, login, isOrg, LinkParserHelper.isEnterprise(repo.getHtmlUrl()));
}
}
long repoSize = repo.getSize() > 0 ? (repo.getSize() * 1000) : repo.getSize();
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java
index c0c85faf..0ae6c04f 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewCommentsViewHolder.java
@@ -100,7 +100,7 @@ public class ReviewCommentsViewHolder extends BaseViewHolder
@Override public void bind(@NonNull ReviewCommentModel commentModel) {
avatarView.setUrl(commentModel.getUser().getAvatarUrl(), commentModel.getUser().getLogin(), commentModel.getUser()
- .isOrganizationType(), LinkParserHelper.isEnterprise(commentModel.getUrl()));
+ .isOrganizationType(), LinkParserHelper.isEnterprise(commentModel.getHtmlUrl()));
name.setText(commentModel.getUser().getLogin());
date.setText(ParseDateFormat.getTimeAgo(commentModel.getCreatedAt()));
if (!InputHelper.isEmpty(commentModel.getBodyHtml())) {
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewsViewHolder.java
index 79ab0f69..058768ce 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/ReviewsViewHolder.java
@@ -47,7 +47,7 @@ public class ReviewsViewHolder extends BaseViewHolder {
if (review != null) {
if (review.getUser() != null) {
avatarLayout.setUrl(review.getUser().getAvatarUrl(), review.getUser().getLogin(), false,
- LinkParserHelper.isEnterprise(review.getUser().getUrl()));
+ LinkParserHelper.isEnterprise(review.getUser().getHtmlUrl()));
} else {
avatarLayout.setUrl(null, null, false, false);
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java
index 171ce338..cb330c4a 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/TimelineCommentsViewHolder.java
@@ -108,7 +108,7 @@ public class TimelineCommentsViewHolder extends BaseViewHolder {
Comment commentsModel = timelineModel.getComment();
if (commentsModel.getUser() != null) {
avatar.setUrl(commentsModel.getUser().getAvatarUrl(), commentsModel.getUser().getLogin(),
- false, LinkParserHelper.isEnterprise(commentsModel.getUrl()));
+ false, LinkParserHelper.isEnterprise(commentsModel.getHtmlUrl()));
} else {
avatar.setUrl(null, null, false, false);
}
diff --git a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java
index 52b14da8..2788e64c 100644
--- a/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java
+++ b/app/src/main/java/com/fastaccess/ui/adapter/viewholder/UsersViewHolder.java
@@ -47,7 +47,7 @@ public class UsersViewHolder extends BaseViewHolder {
public void bind(@NonNull User user, boolean isContributor) {
avatar.setUrl(user.getAvatarUrl(), user.getLogin(), user.isOrganizationType(),
- LinkParserHelper.isEnterprise(user.getUrl()));
+ LinkParserHelper.isEnterprise(user.getHtmlUrl()));
title.setText(user.getLogin());
date.setVisibility(!isContributor ? View.GONE : View.VISIBLE);
if (isContributor) {
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 831bd66d..0b7c3eab 100644
--- a/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/base/BaseActivity.java
@@ -115,8 +115,12 @@ public abstract class BaseActivity, val extraNav: NavigationView?,
override fun onItemLongClick(position: Int, v: View?, item: Login) {}
- override fun onItemClick(position: Int, v: View?, item: Login) {
- if (item.isIsEnterprise) {
- PrefGetter.setTokenEnterprise(item.token)
- PrefGetter.setEnterpriseOtpCode(item.otpCode)
- } else {
- PrefGetter.setToken(item.token)
- PrefGetter.setOtpCode(item.otpCode)
- }
- view.getPresenter().manageViewDisposable(Observable.just(Login.getUser())
+ override fun onItemClick(position: Int, v: View, item: Login) {
+ ActivityHelper.activateLinkInterceptorActivity(v.context, !item.isIsEnterprise)
+ view.getPresenter().manageViewDisposable(RxHelper.getObserver(Login.onMultipleLogin(item, item.isIsEnterprise, false))
.doOnSubscribe { view.showProgress(0) }
- .flatMap { login ->
- login.isIsLoggedIn = false
- login.update(login)
- }
- .concatMap {
- item.isIsLoggedIn = true
- item.saveObservable(item)
- }
.doFinally { view.hideProgress() }
.subscribe({ view.onRestartApp() }, ::println))
}
diff --git a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java
index 6188c838..bcc1b3a2 100644
--- a/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java
+++ b/app/src/main/java/com/fastaccess/ui/base/mvp/presenter/BasePresenter.java
@@ -8,6 +8,7 @@ import android.support.annotation.StringRes;
import com.evernote.android.state.StateSaver;
import com.fastaccess.R;
import com.fastaccess.data.dao.GitHubErrorResponse;
+import com.fastaccess.helper.Logger;
import com.fastaccess.helper.RxHelper;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.ui.base.mvp.BaseMvp;
diff --git a/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.java b/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.java
index 74fbc341..12f44435 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/editor/EditorActivity.java
@@ -45,7 +45,6 @@ import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnItemClick;
import butterknife.OnTextChanged;
-import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
import static android.view.View.GONE;
@@ -174,30 +173,7 @@ public class EditorActivity extends BaseActivity {
- });
- }
-
+ if (!PrefGetter.isEditorHintShowed()) {}
if (editText.getText().toString().contains(sentFromFastHub)) {
editText.setText(editText.getText().toString().replace(sentFromFastHub, ""));
sentVia.setChecked(true);
diff --git a/app/src/main/java/com/fastaccess/ui/modules/feeds/FeedsPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/feeds/FeedsPresenter.java
index c391afd6..ed55b1ca 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/feeds/FeedsPresenter.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/feeds/FeedsPresenter.java
@@ -42,7 +42,6 @@ public class FeedsPresenter extends BasePresenter implements Feed
@Override public void onFragmentCreated(@NonNull Bundle argument) {
user = argument.getString(BundleConstant.EXTRA);
isOrg = argument.getBoolean(BundleConstant.EXTRA_TWO);
- setEnterprise(argument.getBoolean(BundleConstant.IS_ENTERPRISE));
if (eventsModels.isEmpty()) {
onCallApi(1);
}
@@ -66,11 +65,10 @@ public class FeedsPresenter extends BasePresenter implements Feed
observable = RestProvider.getOrgService(isEnterprise()).getReceivedEvents(user, page);
} else {
observable = RestProvider.getUserService(login.getLogin().equalsIgnoreCase(user)
- ? PrefGetter.isEnterprise() : isEnterprise()).getUserEvents(user, page);
+ ? PrefGetter.isEnterprise() : isEnterprise()).getUserEvents(user, page);
}
} else {
- observable = RestProvider.getUserService(PrefGetter.isEnterprise())
- .getReceivedEvents(login.getLogin(), page);
+ observable = RestProvider.getUserService(PrefGetter.isEnterprise()).getReceivedEvents(login.getLogin(), page);
}
makeRestCall(observable, response -> {
lastPage = response.getLast();
@@ -159,7 +157,7 @@ public class FeedsPresenter extends BasePresenter implements Feed
} else {
Repo repoModel = item.getRepo();
if (item.getRepo() != null) SchemeParser.launchUri(v.getContext(), repoModel.getHtmlUrl() != null
- ? repoModel.getHtmlUrl() : repoModel.getUrl());
+ ? repoModel.getHtmlUrl() : repoModel.getUrl());
}
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/GistActivity.java b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/GistActivity.java
index fb966ffa..498dc518 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/GistActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/GistActivity.java
@@ -175,7 +175,7 @@ public class GistActivity extends BaseActivity
if (getPresenter().getGist() != null) {
Intent intent = new Intent();
Gist gistsModel = new Gist();
- gistsModel.setUrl(getPresenter().getGist().getUrl());
+ gistsModel.setUrl(getPresenter().getGist().getHtmlUrl());
intent.putExtras(Bundler.start().put(BundleConstant.ITEM, gistsModel).end());
setResult(RESULT_OK, intent);
}
@@ -207,7 +207,7 @@ public class GistActivity extends BaseActivity
gistsModel.getUser() != null ? gistsModel.getUser().getAvatarUrl() : "";
String login = gistsModel.getOwner() != null ? gistsModel.getOwner().getLogin() :
gistsModel.getUser() != null ? gistsModel.getUser().getLogin() : "";
- avatarLayout.setUrl(url, login, false, LinkParserHelper.isEnterprise(gistsModel.getUrl()));
+ avatarLayout.setUrl(url, login, false, LinkParserHelper.isEnterprise(gistsModel.getHtmlUrl()));
title.setText(gistsModel.getDisplayTitle(false, true));
setTaskName(gistsModel.getDisplayTitle(false, true).toString());
detailsIcon.setVisibility(InputHelper.isEmpty(gistsModel.getDescription()) || !ViewHelper.isEllipsed(title) ? View.GONE : View.VISIBLE);
diff --git a/app/src/main/java/com/fastaccess/ui/modules/login/LoginActivity.java b/app/src/main/java/com/fastaccess/ui/modules/login/LoginActivity.java
index 2a64f25d..2bab748c 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/login/LoginActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/login/LoginActivity.java
@@ -53,26 +53,32 @@ import io.reactivex.functions.Action;
* Created by Kosh on 08 Feb 2017, 9:10 PM
*/
-public class LoginActivity extends BaseActivity implements LoginMvp.View,
- LanguageBottomSheetDialog.LanguageDialogListener {
+public class LoginActivity extends BaseActivity implements LoginMvp.View {
- @Nullable @BindView(R.id.language_selector) RelativeLayout language_selector;
- @Nullable @BindView(R.id.usernameEditText) TextInputEditText usernameEditText;
- @Nullable @BindView(R.id.username) TextInputLayout username;
- @Nullable @BindView(R.id.passwordEditText) TextInputEditText passwordEditText;
- @Nullable @BindView(R.id.password) TextInputLayout password;
- @Nullable @BindView(R.id.twoFactor) TextInputLayout twoFactor;
- @Nullable @BindView(R.id.twoFactorEditText) TextInputEditText twoFactorEditText;
- @Nullable @BindView(R.id.login) FloatingActionButton login;
- @Nullable @BindView(R.id.progress) ProgressBar progress;
- @Nullable @BindView(R.id.accessTokenCheckbox) FontCheckbox accessTokenCheckbox;
- @Nullable @BindView(R.id.endpoint) TextInputLayout endpoint;
+ @BindView(R.id.usernameEditText) TextInputEditText usernameEditText;
+ @BindView(R.id.username) TextInputLayout username;
+ @BindView(R.id.passwordEditText) TextInputEditText passwordEditText;
+ @BindView(R.id.password) TextInputLayout password;
+ @BindView(R.id.twoFactor) TextInputLayout twoFactor;
+ @BindView(R.id.twoFactorEditText) TextInputEditText twoFactorEditText;
+ @BindView(R.id.login) FloatingActionButton login;
+ @BindView(R.id.progress) ProgressBar progress;
+ @BindView(R.id.accessTokenCheckbox) FontCheckbox accessTokenCheckbox;
+ @BindView(R.id.endpoint) TextInputLayout endpoint;
@State boolean isBasicAuth;
- @State boolean isEnterprise;
- @State boolean extraLogin;
+
+ public static void startOAuth(@NonNull Activity activity) {
+ Intent intent = new Intent(activity, LoginActivity.class);
+ intent.putExtras(Bundler.start()
+ .put(BundleConstant.YES_NO_EXTRA, true)
+ .put(BundleConstant.EXTRA_TWO, true)
+ .end());
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ activity.startActivity(intent);
+ activity.finish();
+ }
public static void start(@NonNull Activity activity, boolean isBasicAuth) {
- PrefGetter.setEnterpriseUrl(null);
start(activity, isBasicAuth, false);
}
@@ -83,37 +89,35 @@ public class LoginActivity extends BaseActivity i
.put(BundleConstant.IS_ENTERPRISE, isEnterprise)
.end());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.putExtra("smartLock", true);
activity.startActivity(intent);
activity.finish();
}
- @Optional @OnClick(R.id.browserLogin) void onOpenBrowser() {
- if (isEnterprise && InputHelper.isEmpty(endpoint)) {
+ @OnClick(R.id.browserLogin) void onOpenBrowser() {
+ if (isEnterprise() && InputHelper.isEmpty(endpoint)) {
endpoint.setError(getString(R.string.required_field));
return;
}
- if (endpoint != null) endpoint.setError(null);
- Uri uri = getPresenter().getAuthorizationUrl(endpoint != null ? InputHelper.toString(endpoint) : null);
+ endpoint.setError(null);
+ Uri uri = getPresenter().getAuthorizationUrl(endpoint != null ? InputHelper.toString
+ (endpoint) : null);
ActivityHelper.startCustomTab(this, uri);
}
- @Optional @OnClick(R.id.login) public void onClick() {
+ @OnClick(R.id.login) public void onClick() {
doLogin();
}
- @Optional @OnCheckedChanged(R.id.accessTokenCheckbox) void onCheckChanged(boolean checked) {
+ @OnCheckedChanged(R.id.accessTokenCheckbox) void onCheckChanged(boolean checked) {
isBasicAuth = !checked;
- if (password != null) {
- password.setHint(checked ? getString(R.string.access_token) : getString(R.string.password));
- }
+ password.setHint(checked ? getString(R.string.access_token) : getString(R.string
+ .password));
}
- @Optional @OnEditorAction(R.id.passwordEditText) public boolean onSendPassword() {
- if (twoFactor == null || twoFactorEditText == null) return false;
+ @OnEditorAction(R.id.passwordEditText) public boolean onSendPassword() {
if (twoFactor.getVisibility() == View.VISIBLE) {
twoFactorEditText.requestFocus();
- } else if (endpoint != null && endpoint.getVisibility() == View.VISIBLE) {
+ } else if (endpoint.getVisibility() == View.VISIBLE) {
endpoint.requestFocus();
} else {
doLogin();
@@ -121,20 +125,16 @@ public class LoginActivity extends BaseActivity i
return true;
}
- @Optional @OnEditorAction(R.id.twoFactorEditText) public boolean onSend2FA() {
+ @OnEditorAction(R.id.twoFactorEditText) public boolean onSend2FA() {
doLogin();
return true;
}
- @Optional @OnEditorAction(R.id.endpointEditText) boolean onSendEndpoint() {
+ @OnEditorAction(R.id.endpointEditText) boolean onSendEndpoint() {
doLogin();
return true;
}
- @Optional @OnClick(R.id.language_selector_clicker) public void onChangeLanguage() {
- showLanguage();
- }
-
@Override protected int layout() {
return R.layout.login_form_layout;
}
@@ -156,39 +156,29 @@ public class LoginActivity extends BaseActivity i
}
@Override public void onEmptyUserName(boolean isEmpty) {
- if (username == null) return;
username.setError(isEmpty ? getString(R.string.required_field) : null);
}
@Override public void onRequire2Fa() {
Toasty.warning(App.getInstance(), getString(R.string.two_factors_otp_error)).show();
- if (twoFactor == null) return;
twoFactor.setVisibility(View.VISIBLE);
hideProgress();
}
@Override public void onEmptyPassword(boolean isEmpty) {
- if (password == null) return;
password.setError(isEmpty ? getString(R.string.required_field) : null);
}
@Override public void onEmptyEndpoint(boolean isEmpty) {
- if (endpoint != null) endpoint.setError(isEmpty ? getString(R.string.required_field) : null);
+ endpoint.setError(isEmpty ? getString(R.string.required_field) : null);
}
@Override public void onSuccessfullyLoggedIn(boolean extraLogin) {
- if (isEnterprise && extraLogin && !Login.hasNormalLogin()) {
- MessageDialogView.newInstance(getString(R.string.details), getString(R.string.enterprise_login_warning), false, true)
- .show(getSupportFragmentManager(), MessageDialogView.TAG);
- } else {
- checkPurchases(() -> {
- hideProgress();
- Intent intent = new Intent(this, MainActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
- finish();
- });
- }
+ checkPurchases(() -> {
+ hideProgress();
+ onRestartApp();
+ });
+ ActivityHelper.activateLinkInterceptorActivity(this, !isEnterprise());
}
@Override protected void onCreate(Bundle savedInstanceState) {
@@ -197,31 +187,24 @@ public class LoginActivity extends BaseActivity i
if (savedInstanceState == null) {
if (getIntent() != null && getIntent().getExtras() != null) {
isBasicAuth = getIntent().getExtras().getBoolean(BundleConstant.YES_NO_EXTRA);
- isEnterprise = getIntent().getExtras().getBoolean(BundleConstant.IS_ENTERPRISE);
+ if (getIntent().getExtras().getBoolean(BundleConstant.EXTRA_TWO)) {
+ onOpenBrowser();
+ }
}
}
- if (endpoint != null && accessTokenCheckbox != null) {
- accessTokenCheckbox.setVisibility(isEnterprise ? View.VISIBLE : View.GONE);
- endpoint.setVisibility(isEnterprise ? View.VISIBLE : View.GONE);
- }
- if (Arrays.asList(getResources().getStringArray(R.array.languages_array_values)).contains(Locale.getDefault().getLanguage())) {
- String language = PrefHelper.getString("app_language");
- PrefHelper.set("app_language", Locale.getDefault().getLanguage());
- if (!BuildConfig.DEBUG) if (language_selector != null) language_selector.setVisibility(View.GONE);
- if (!Locale.getDefault().getLanguage().equals(language)) recreate();
- }
-
+ accessTokenCheckbox.setVisibility(isEnterprise() ? View.VISIBLE : View.GONE);
+ endpoint.setVisibility(isEnterprise() ? View.VISIBLE : View.GONE);
}
@Override protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
- getPresenter().onHandleAuthIntent(intent, extraLogin);
+ getPresenter().onHandleAuthIntent(intent);
setIntent(null);
}
@Override protected void onResume() {
super.onResume();
- getPresenter().onHandleAuthIntent(getIntent(), extraLogin);
+ getPresenter().onHandleAuthIntent(getIntent());
setIntent(null);
}
@@ -241,54 +224,21 @@ public class LoginActivity extends BaseActivity i
}
@Override public void showProgress(@StringRes int resId) {
- if (login == null) return;
login.hide();
AppHelper.hideKeyboard(login);
AnimHelper.animateVisibility(progress, true);
}
@Override public void onBackPressed() {
- if (!(this instanceof LoginChooserActivity)) {
- startActivity(new Intent(this, LoginChooserActivity.class));
- finish();
- } else {
- finish();
- }
+ startActivity(new Intent(this, LoginChooserActivity.class));
+ finish();
}
@Override public void hideProgress() {
- if (login == null || progress == null) return;
progress.setVisibility(View.GONE);
login.show();
}
- @Override public void onLanguageChanged(Action action) {
- try {
- action.run();
- recreate();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @Override public void onMessageDialogActionClicked(boolean isOk, @Nullable Bundle bundle) {
- super.onMessageDialogActionClicked(isOk, bundle);
- if (isOk) {
- getUserToken();
- }
- }
-
- @Override public void onDialogDismissed() {
- super.onDialogDismissed();
- getUserToken();
- }
-
- private void getUserToken() {
- extraLogin = true;
- Uri uri = getPresenter().getAuthorizationUrl(null);
- ActivityHelper.startCustomTab(this, uri);
- }
-
protected void checkPurchases(@Nullable Action action) {
getPresenter().manageViewDisposable(RxBillingService.getInstance(this, BuildConfig.DEBUG)
.getPurchases(ProductType.IN_APP)
@@ -301,7 +251,8 @@ public class LoginActivity extends BaseActivity i
for (Purchase purchase : purchases) {
String sku = purchase.sku();
if (sku != null) {
- if (sku.equalsIgnoreCase(getString(R.string.donation_product_1))) {
+ if (sku.equalsIgnoreCase(getString(R.string
+ .donation_product_1))) {
PrefGetter.enableAmlodTheme();
} else {
PrefGetter.setProItems();
@@ -316,19 +267,12 @@ public class LoginActivity extends BaseActivity i
}));
}
- private void showLanguage() {
- LanguageBottomSheetDialog languageBottomSheetDialog = new LanguageBottomSheetDialog();
- languageBottomSheetDialog.onAttach((Context) this);
- languageBottomSheetDialog.show(getSupportFragmentManager(), "LanguageBottomSheetDialog");
- }
-
private void doLogin() {
- if (progress == null || twoFactor == null || username == null || password == null) return;
if (progress.getVisibility() == View.GONE) {
getPresenter().login(InputHelper.toString(username),
InputHelper.toString(password),
InputHelper.toString(twoFactor),
- isBasicAuth, endpoint != null ? InputHelper.toString(endpoint) : null, isEnterprise);
+ isBasicAuth, endpoint != null ? InputHelper.toString(endpoint) : null, isEnterprise());
}
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/login/LoginChooserActivity.java b/app/src/main/java/com/fastaccess/ui/modules/login/LoginChooserActivity.java
index 88fe0818..58cc2742 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/login/LoginChooserActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/login/LoginChooserActivity.java
@@ -1,23 +1,64 @@
package com.fastaccess.ui.modules.login;
+import android.content.Context;
+import android.net.Uri;
import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.view.View;
+import android.widget.RelativeLayout;
+import com.fastaccess.BuildConfig;
import com.fastaccess.R;
+import com.fastaccess.data.dao.model.Login;
+import com.fastaccess.helper.ActivityHelper;
+import com.fastaccess.helper.InputHelper;
+import com.fastaccess.helper.PrefHelper;
+import com.fastaccess.ui.base.BaseActivity;
+import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
+import com.fastaccess.ui.modules.settings.LanguageBottomSheetDialog;
+import net.grandcentrix.thirtyinch.TiPresenter;
+
+import java.util.Arrays;
+import java.util.Locale;
+
+import butterknife.BindView;
import butterknife.OnClick;
+import io.reactivex.functions.Action;
/**
* Created by Kosh on 28 Apr 2017, 9:03 PM
*/
-public class LoginChooserActivity extends LoginActivity {
+public class LoginChooserActivity extends BaseActivity implements LanguageBottomSheetDialog.LanguageDialogListener {
+
+ @BindView(R.id.language_selector) RelativeLayout language_selector;
@Override protected int layout() {
return R.layout.login_chooser_layout;
}
+ @Override protected boolean isTransparent() {
+ return true;
+ }
+
+ @Override protected boolean canBack() {
+ return false;
+ }
+
+ @Override protected boolean isSecured() {
+ return true;
+ }
+
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (Arrays.asList(getResources().getStringArray(R.array.languages_array_values)).contains(Locale.getDefault().getLanguage())) {
+ String language = PrefHelper.getString("app_language");
+ PrefHelper.set("app_language", Locale.getDefault().getLanguage());
+ if (!BuildConfig.DEBUG) language_selector.setVisibility(View.GONE);
+ if (!Locale.getDefault().getLanguage().equals(language)) recreate();
+ }
+
}
@OnClick(R.id.basicAuth) public void onBasicAuthClicked() {
@@ -29,6 +70,34 @@ public class LoginChooserActivity extends LoginActivity {
}
@OnClick(R.id.enterprise) void onEnterpriseClicked() {
- LoginActivity.start(this, true, true);
+ if (Login.hasNormalLogin()) LoginActivity.start(this, true, true);
+ else showMessage(R.string.error, R.string.enterprise_login_warning);
+ }
+
+ @OnClick(R.id.browserLogin) void onOpenBrowser() {
+ LoginActivity.startOAuth(this);
+ }
+
+ @OnClick(R.id.language_selector_clicker) public void onChangeLanguage() {
+ showLanguage();
+ }
+
+ @Override public void onLanguageChanged(Action action) {
+ try {
+ action.run();
+ recreate();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @NonNull @Override public BasePresenter providePresenter() {
+ return new BasePresenter();
+ }
+
+ private void showLanguage() {
+ LanguageBottomSheetDialog languageBottomSheetDialog = new LanguageBottomSheetDialog();
+ languageBottomSheetDialog.onAttach((Context) this);
+ languageBottomSheetDialog.show(getSupportFragmentManager(), "LanguageBottomSheetDialog");
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/login/LoginMvp.java b/app/src/main/java/com/fastaccess/ui/modules/login/LoginMvp.java
index 608fb461..7af96f19 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/login/LoginMvp.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/login/LoginMvp.java
@@ -32,7 +32,7 @@ public interface LoginMvp {
@NonNull Uri getAuthorizationUrl(@Nullable String endpoint);
- void onHandleAuthIntent(@Nullable Intent intent, boolean extraLogin);
+ void onHandleAuthIntent(@Nullable Intent intent);
void onTokenResponse(@Nullable AccessTokenModel response);
diff --git a/app/src/main/java/com/fastaccess/ui/modules/login/LoginPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/login/LoginPresenter.java
index aae05d87..b2be2c5d 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/login/LoginPresenter.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/login/LoginPresenter.java
@@ -67,7 +67,8 @@ public class LoginPresenter extends BasePresenter implements Logi
sendToView(view -> view.showMessage(R.string.error, R.string.failed_login));
}
- @NonNull @Override public Uri getAuthorizationUrl(@Nullable String endpoint) {
+ @NonNull
+ @Override public Uri getAuthorizationUrl(@Nullable String endpoint) {
Uri.Builder builder = new Uri.Builder();
if (!InputHelper.isEmpty(endpoint)) {
endpoint = LinkParserHelper.getEndpoint(endpoint);
@@ -92,25 +93,16 @@ public class LoginPresenter extends BasePresenter implements Logi
.build();
}
- @Override public void onHandleAuthIntent(@Nullable Intent intent, boolean extraLogin) {
+ @Override public void onHandleAuthIntent(@Nullable Intent intent) {
if (intent != null && intent.getData() != null) {
Uri uri = intent.getData();
if (uri.toString().startsWith(GithubConfigHelper.getRedirectUrl())) {
String tokenCode = uri.getQueryParameter("code");
if (!InputHelper.isEmpty(tokenCode)) {
- makeRestCall(LoginProvider.getLoginRestService().getAccessToken(tokenCode, GithubConfigHelper.getClientId(),
- GithubConfigHelper.getSecret(), BuildConfig.APPLICATION_ID, GithubConfigHelper.getRedirectUrl()),
- modelResponse -> {
- if (extraLogin) {
- String token = modelResponse.getToken() != null ? modelResponse.getToken() : modelResponse.getAccessToken();
- if (!InputHelper.isEmpty(token)) {
- PrefGetter.setToken(token);
- sendToView(view -> view.onSuccessfullyLoggedIn(false));
- return;
- }
- }
- onTokenResponse(modelResponse);
- });
+ makeRestCall(LoginProvider.getLoginRestService().getAccessToken(tokenCode,
+ GithubConfigHelper.getClientId(), GithubConfigHelper.getSecret(),
+ BuildConfig.APPLICATION_ID, GithubConfigHelper.getRedirectUrl()),
+ this::onTokenResponse);
} else {
sendToView(view -> view.showMessage(R.string.error, R.string.error));
}
@@ -120,27 +112,15 @@ public class LoginPresenter extends BasePresenter implements Logi
@Override public void onUserResponse(@Nullable Login userModel, boolean isEnterprise) {
if (userModel != null) {
- manageObservable(Observable.fromPublisher(s -> {
- Login currentUser = Login.getUser();
- if (currentUser != null) {
- currentUser.setIsLoggedIn(false);
- currentUser.save(currentUser);
- }
- userModel.setToken(isEnterprise ? PrefGetter.getEnterpriseToken() : PrefGetter.getToken());
- userModel.setOtpCode(isEnterprise ? PrefGetter.getEnterpriseOtpCode() : PrefGetter.getOtpCode());
- userModel.setIsLoggedIn(true);
- userModel.save(userModel);
- s.onNext(userModel);
- s.onComplete();
- }).doOnComplete(() -> sendToView(view -> view.onSuccessfullyLoggedIn(isEnterprise))));
+ manageObservable(Login.onMultipleLogin(userModel, isEnterprise, true)
+ .doOnComplete(() -> sendToView(view -> view.onSuccessfullyLoggedIn(isEnterprise))));
return;
}
sendToView(view -> view.showMessage(R.string.error, R.string.failed_login));
}
- @Override public void login(@NonNull String username, @NonNull String password,
- @Nullable String twoFactorCode, boolean isBasicAuth,
- @Nullable String endpoint, boolean isEnterprise) {
+ @Override public void login(@NonNull String username, @NonNull String password, @Nullable String twoFactorCode,
+ boolean isBasicAuth, @Nullable String endpoint, boolean isEnterprise) {
setEnterprise(isEnterprise);
boolean usernameIsEmpty = InputHelper.isEmpty(username);
boolean passwordIsEmpty = InputHelper.isEmpty(password);
@@ -173,20 +153,18 @@ public class LoginPresenter extends BasePresenter implements Logi
}
}
- private void accessTokenLogin(@NonNull String password, @Nullable String endpoint, @Nullable String otp, String authToken, boolean isEnterprise) {
- makeRestCall(LoginProvider.getLoginRestService(authToken, otp, endpoint).loginAccessToken(), login -> {
- if (!isEnterprise) {
- PrefGetter.setToken(password);
- } else {
- if (!InputHelper.isEmpty(otp)) {
- PrefGetter.setEnterpriseOtpCode(otp);
- }
- PrefGetter.setTokenEnterprise(authToken);
- if (!InputHelper.isEmpty(endpoint)) {
- PrefGetter.setEnterpriseUrl(endpoint);
- }
- }
- onUserResponse(login, isEnterprise);
- });
+ private void accessTokenLogin(@NonNull String password, @Nullable String endpoint, @Nullable String otp,
+ @NonNull String authToken, boolean isEnterprise) {
+ makeRestCall(LoginProvider.getLoginRestService(authToken, otp, endpoint).loginAccessToken(),
+ login -> {
+ if (!isEnterprise) {
+ PrefGetter.setToken(password);
+ } else {
+ PrefGetter.setEnterpriseOtpCode(otp);
+ PrefGetter.setTokenEnterprise(authToken);
+ PrefGetter.setEnterpriseUrl(endpoint);
+ }
+ onUserResponse(login, isEnterprise);
+ });
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
index 5cf6515d..72833f2c 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
@@ -17,6 +17,8 @@ import com.fastaccess.ui.modules.feeds.FeedsFragment;
import com.fastaccess.ui.modules.main.issues.pager.MyIssuesPagerFragment;
import com.fastaccess.ui.modules.main.pullrequests.pager.MyPullsPagerFragment;
+import java.util.Observable;
+
import static com.fastaccess.helper.ActivityHelper.getVisibleFragment;
import static com.fastaccess.helper.AppHelper.getFragmentByTag;
@@ -31,6 +33,10 @@ public class MainPresenter extends BasePresenter implements MainMv
manageDisposable(RxHelper.getObserver(RestProvider.getUserService(isEnterprise()).getUser())
.flatMap(login -> {
login.setIsLoggedIn(true);
+ login.setEnterpriseUrl(isEnterprise() ? PrefGetter.getEnterpriseUrl() : null);
+ login.setToken(isEnterprise() ? PrefGetter.getEnterpriseToken() : PrefGetter.getToken());
+ login.setOtpCode(isEnterprise() ? PrefGetter.getEnterpriseOtpCode() : PrefGetter.getOtpCode());
+ login.setIsEnterprise(isEnterprise());
return login.update(login);
})
.subscribe(login -> {
diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java b/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java
index d27bd001..31821191 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/notification/NotificationActivity.java
@@ -9,12 +9,16 @@ import android.support.v4.app.Fragment;
import com.fastaccess.R;
import com.fastaccess.data.dao.FragmentPagerAdapterModel;
+import com.fastaccess.data.dao.GroupedNotificationModel;
import com.fastaccess.helper.AppHelper;
import com.fastaccess.ui.adapter.FragmentsPagerAdapter;
import com.fastaccess.ui.base.BaseActivity;
import com.fastaccess.ui.base.BaseFragment;
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
import com.fastaccess.ui.modules.main.MainActivity;
+import com.fastaccess.ui.modules.notification.all.AllNotificationsFragment;
+import com.fastaccess.ui.modules.notification.callback.OnNotificationChangedListener;
+import com.fastaccess.ui.modules.notification.unread.UnreadNotificationsFragment;
import com.fastaccess.ui.widgets.ViewPagerView;
import net.grandcentrix.thirtyinch.TiPresenter;
@@ -25,7 +29,7 @@ import butterknife.BindView;
* Created by Kosh on 27 Feb 2017, 12:36 PM
*/
-public class NotificationActivity extends BaseActivity {
+public class NotificationActivity extends BaseActivity implements OnNotificationChangedListener {
@BindView(R.id.tabs) TabLayout tabs;
@BindView(R.id.notificationContainer)
@@ -79,13 +83,21 @@ public class NotificationActivity extends BaseActivity {
super.onBackPressed();
}
+ @Override public void onNotificationChanged(@NonNull GroupedNotificationModel notification, int index) {
+ if (pager != null && pager.getAdapter() != null) {
+ if (index == 0) {
+ UnreadNotificationsFragment fragment = (UnreadNotificationsFragment) pager.getAdapter().instantiateItem(pager, 0);
+ fragment.onNotifyNotificationChanged(notification);
+ } else {
+ AllNotificationsFragment fragment = (AllNotificationsFragment) pager.getAdapter().instantiateItem(pager, 1);
+ fragment.onNotifyNotificationChanged(notification);
+ }
+ }
+ }
+
private void setupTabs() {
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(),
FragmentPagerAdapterModel.buildForNotifications(this)));
tabs.setupWithViewPager(pager);
}
-
- private TabLayout.Tab getTab(int titleId) {
- return tabs.newTab().setText(titleId);
- }
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java
index d3f11779..a9f021d7 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/notification/all/AllNotificationsFragment.java
@@ -1,5 +1,6 @@
package com.fastaccess.ui.modules.notification.all;
+import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -21,6 +22,7 @@ import com.fastaccess.provider.tasks.notification.ReadNotificationService;
import com.fastaccess.ui.adapter.NotificationsAdapter;
import com.fastaccess.ui.adapter.viewholder.NotificationsViewHolder;
import com.fastaccess.ui.base.BaseFragment;
+import com.fastaccess.ui.modules.notification.callback.OnNotificationChangedListener;
import com.fastaccess.ui.widgets.AppbarRefreshLayout;
import com.fastaccess.ui.widgets.StateLayout;
import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView;
@@ -40,11 +42,24 @@ public class AllNotificationsFragment extends BaseFragment {
diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java b/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java
new file mode 100644
index 00000000..1df8c5f0
--- /dev/null
+++ b/app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.java
@@ -0,0 +1,10 @@
+package com.fastaccess.ui.modules.notification.callback;
+
+import android.support.annotation.NonNull;
+
+import com.fastaccess.data.dao.GroupedNotificationModel;
+
+public interface OnNotificationChangedListener {
+
+ void onNotificationChanged(@NonNull GroupedNotificationModel notification, int index);
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java
index 99732662..40fd70a4 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationMvp.java
@@ -28,6 +28,8 @@ public interface UnreadNotificationMvp {
void onReadNotification(@NonNull Notification notification);
void onClick(@NonNull String url);
+
+ void onNotifyNotificationChanged(@NonNull GroupedNotificationModel notification);
}
interface Presenter extends BaseViewHolder.OnItemClickListener {
diff --git a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java
index 4e78d797..bdaae95d 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/notification/unread/UnreadNotificationsFragment.java
@@ -1,5 +1,6 @@
package com.fastaccess.ui.modules.notification.unread;
+import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -18,6 +19,7 @@ import com.fastaccess.provider.tasks.notification.ReadNotificationService;
import com.fastaccess.ui.adapter.NotificationsAdapter;
import com.fastaccess.ui.adapter.viewholder.NotificationsViewHolder;
import com.fastaccess.ui.base.BaseFragment;
+import com.fastaccess.ui.modules.notification.callback.OnNotificationChangedListener;
import com.fastaccess.ui.widgets.AppbarRefreshLayout;
import com.fastaccess.ui.widgets.StateLayout;
import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView;
@@ -36,6 +38,19 @@ public class UnreadNotificationsFragment extends BaseFragment 0 ? (repoModel.getSize() * 1000) : repoModel.getSize();
date.setText(SpannableBuilder.builder()
@@ -380,81 +381,7 @@ public class RepoPagerActivity extends BaseActivity {
- dismissed[0] = true;
- });
- }
+ if (!PrefGetter.isRepoGuideShowed()) {}
onRepoWatched(getPresenter().isWatched());
onRepoStarred(getPresenter().isStarred());
onRepoForked(getPresenter().isForked());
@@ -635,16 +562,7 @@ public class RepoPagerActivity extends BaseActivity {
- });
- adapter.setGuideListener((itemView, model) ->
- new MaterialTapTargetPrompt.Builder(getActivity())
- .setTarget(itemView.findViewById(R.id.menu))
- .setPrimaryText(R.string.options)
- .setSecondaryText(R.string.click_file_option_hint)
- .setCaptureTouchEventOutsidePrompt(true)
- .setBackgroundColourAlpha(244)
- .setBackgroundColour(ViewHelper.getAccentColor(getContext()))
- .setOnHidePromptListener(new MaterialTapTargetPrompt.OnHidePromptListener() {
- @Override
- public void onHidePrompt(MotionEvent motionEvent, boolean b) {
- ActivityHelper.hideDismissHints(RepoFilesFragment.this.getContext());
- }
-
- @Override
- public void onHidePromptComplete() {
-
- }
- })
- .show());
- adapter.notifyDataSetChanged();// call it notify the adapter to show the guide immediately.
- }
- }
- }
-
@Override public void showProgress(@StringRes int resId) {
refresh.setRefreshing(true);
diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java b/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java
index c1c844a8..07b7e805 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/repos/code/releases/RepoReleasesFragment.java
@@ -32,7 +32,6 @@ import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
-import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
/**
* Created by Kosh on 03 Dec 2016, 3:56 PM
@@ -103,37 +102,6 @@ public class RepoReleasesFragment extends BaseFragment
- new MaterialTapTargetPrompt.Builder(getActivity())
- .setTarget(itemView.findViewById(R.id.download))
- .setPrimaryText(R.string.download)
- .setSecondaryText(R.string.click_here_to_download_release_hint)
- .setCaptureTouchEventOutsidePrompt(true)
- .setBackgroundColourAlpha(244)
- .setBackgroundColour(ViewHelper.getAccentColor(getContext()))
- .setOnHidePromptListener(new MaterialTapTargetPrompt.OnHidePromptListener() {
- @Override
- public void onHidePrompt(MotionEvent motionEvent, boolean b) {
- ActivityHelper.hideDismissHints(RepoReleasesFragment.this.getContext());
- }
-
- @Override
- public void onHidePromptComplete() {
-
- }
- })
- .show());
- adapter.notifyDataSetChanged();// call it notify the adapter to show the guide immediately.
- ActivityHelper.showDismissHints(getContext(), () -> {
- });
- }
- }
- }
-
@NonNull @Override public RepoReleasesPresenter providePresenter() {
return new RepoReleasesPresenter();
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java
index b22b6343..6a447081 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/repos/issues/issue/details/IssuePagerActivity.java
@@ -25,6 +25,7 @@ import com.fastaccess.helper.ActivityHelper;
import com.fastaccess.helper.BundleConstant;
import com.fastaccess.helper.Bundler;
import com.fastaccess.helper.InputHelper;
+import com.fastaccess.helper.Logger;
import com.fastaccess.helper.ParseDateFormat;
import com.fastaccess.helper.ViewHelper;
import com.fastaccess.provider.scheme.LinkParserHelper;
@@ -74,7 +75,8 @@ public class IssuePagerActivity extends BaseActivity implements I
}
@Override public void onActivityCreated(@Nullable Intent intent) {
+ Logger.e(isEnterprise());
if (intent != null && intent.getExtras() != null) {
issueModel = intent.getExtras().getParcelable(BundleConstant.ITEM);
issueNumber = intent.getExtras().getInt(BundleConstant.ID);
diff --git a/app/src/main/java/com/fastaccess/ui/modules/user/UserPagerActivity.java b/app/src/main/java/com/fastaccess/ui/modules/user/UserPagerActivity.java
index 7d0c7238..3608e8b8 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/user/UserPagerActivity.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/user/UserPagerActivity.java
@@ -102,7 +102,6 @@ public class UserPagerActivity extends BaseActivity {
- if (getContentDescription() != null) {
- if (toast != null) toast.cancel();
- toast = Toast.makeText(App.getInstance(), getContentDescription(), Toast.LENGTH_SHORT);
- toast.setGravity(Gravity.CENTER, 0, 0);
- toast.show();
- return true;
- }
- return false;
- });
+ TooltipCompat.setTooltipText(this, getContentDescription());
}
}
diff --git a/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerFastScroller.java b/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/scroll/RecyclerFastScroller.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java b/app/src/main/java/com/prettifier/pretty/PrettifyWebView.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java b/app/src/main/java/com/prettifier/pretty/helper/GithubHelper.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java b/app/src/main/java/com/prettifier/pretty/helper/PrettifyHelper.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/zzhoujay/markdown/style/CodeSpan.java b/app/src/main/java/com/zzhoujay/markdown/style/CodeSpan.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/zzhoujay/markdown/style/FontSpan.java b/app/src/main/java/com/zzhoujay/markdown/style/FontSpan.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/zzhoujay/markdown/style/LinkSpan.java b/app/src/main/java/com/zzhoujay/markdown/style/LinkSpan.java
old mode 100755
new mode 100644
diff --git a/app/src/main/java/com/zzhoujay/markdown/style/MarkDownQuoteSpan.java b/app/src/main/java/com/zzhoujay/markdown/style/MarkDownQuoteSpan.java
old mode 100755
new mode 100644
diff --git a/app/src/main/res/drawable-nodpi/web_hi_res_512.png b/app/src/main/res/drawable-nodpi/web_hi_res_512.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_edittext.9.png b/app/src/main/res/drawable-xxxhdpi/ic_edittext.9.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png b/app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml b/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml
index c98555dd..bfe21c45 100644
--- a/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml
+++ b/app/src/main/res/layouts/other_layouts/layout/drawer_header.xml
@@ -11,7 +11,7 @@
android:id="@+id/navAvatarLayout"
android:layout_width="@dimen/header_icon_zie"
android:layout_height="@dimen/header_icon_zie"
- android:layout_margin="@dimen/spacing_xs_large"/>
+ android:layout_margin="@dimen/spacing_xs_large" />
+ android:background="?selectableItemBackground"
+ android:orientation="horizontal">
-
+ android:layout_weight="1"
+ android:orientation="vertical">
-
+
+
+
+
+
+ android:padding="@dimen/spacing_normal"
+ android:src="@drawable/ic_arrow_drop_down" />
+
-
+ tools:visibility="visible" />
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/mipmap-nodpi/foreground.png b/app/src/main/res/mipmap-nodpi/foreground.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
old mode 100755
new mode 100644
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
old mode 100755
new mode 100644
diff --git a/app/src/main/res/values-w820dp-land/dimens.xml b/app/src/main/res/values-w820dp-land/dimens.xml
old mode 100755
new mode 100644
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
old mode 100755
new mode 100644