├── _config.yml ├── settings.gradle ├── app ├── .gitignore └── src │ ├── main │ ├── res │ │ ├── values-land │ │ │ └── dimens.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-nodpi │ │ │ └── web_hi_res_512.png │ │ ├── drawable-xxxhdpi │ │ │ └── ic_timeline_arrow_left.9.png │ │ ├── values-v23 │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ ├── values-sw600dp │ │ │ └── dimens.xml │ │ ├── drawable │ │ │ ├── circle_shape.xml │ │ │ ├── rect_shape.xml │ │ │ ├── toolbar_shadow.xml │ │ │ ├── toolbar_shadow_up.xml │ │ │ ├── ic_minus.xml │ │ │ ├── ic_arrow_drop_down.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_send.xml │ │ │ ├── ic_download.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_done.xml │ │ │ ├── ic_arrow_right.xml │ │ │ ├── ic_format_italic.xml │ │ │ ├── ic_format_quote.xml │ │ │ ├── splash_screen_drawable.xml │ │ │ ├── ic_back.xml │ │ │ ├── ic_clear_all.xml │ │ │ ├── ic_format_strikethrough.xml │ │ │ ├── ic_bookmark.xml │ │ │ ├── ic_header_one.xml │ │ │ ├── ic_milestone.xml │ │ │ ├── ic_trash.xml │ │ │ ├── ic_star_filled.xml │ │ │ ├── ic_clear.xml │ │ │ ├── ic_code.xml │ │ │ ├── ic_clear_black.xml │ │ │ ├── ic_file_multi.xml │ │ │ ├── avd_follow.xml │ │ │ ├── avd_unfollow.xml │ │ │ ├── ic_gists.xml │ │ │ ├── ic_folder.xml │ │ │ ├── ic_list_numbers.xml │ │ │ ├── ic_announcement.xml │ │ │ ├── ic_email.xml │ │ │ ├── ic_header_three.xml │ │ │ ├── ic_image.xml │ │ │ ├── ic_comment.xml │ │ │ ├── ic_format_underlined.xml │ │ │ ├── ic_redo.xml │ │ │ ├── ic_undo.xml │ │ │ ├── ic_copy.xml │ │ │ ├── ic_file_document.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_location.xml │ │ │ ├── ic_issues.xml │ │ │ ├── bottom_border.xml │ │ │ ├── ic_logout.xml │ │ │ ├── ic_overflow.xml │ │ │ ├── ic_ring.xml │ │ │ ├── ic_time.xml │ │ │ ├── ic_star.xml │ │ │ ├── ic_time_small.xml │ │ │ ├── ic_star_small.xml │ │ │ ├── ic_header_two.xml │ │ │ ├── ic_eye.xml │ │ │ ├── ic_issue_closed.xml │ │ │ ├── ic_issue_opened.xml │ │ │ ├── ic_insert_link.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_sync.xml │ │ │ ├── top_border.xml │ │ │ ├── ic_format_bold.xml │ │ │ ├── ic_profile.xml │ │ │ ├── ic_unlock.xml │ │ │ ├── ic_lock.xml │ │ │ ├── ic_label.xml │ │ │ ├── ic_group.xml │ │ │ ├── left_border.xml │ │ │ ├── right_border.xml │ │ │ ├── ic_format_list_bulleted.xml │ │ │ ├── ic_brower.xml │ │ │ ├── ic_heart.xml │ │ │ ├── ic_license.xml │ │ │ ├── ic_follow.xml │ │ │ ├── ic_share.xml │ │ │ ├── ic_unfollow.xml │ │ │ ├── ic_bug.xml │ │ │ ├── asl_follow.xml │ │ │ ├── ic_at.xml │ │ │ ├── ic_pull_requests.xml │ │ │ ├── ic_merge.xml │ │ │ ├── ic_eye_off.xml │ │ │ ├── ic_branch.xml │ │ │ ├── ic_fork.xml │ │ │ ├── ic_fork_small.xml │ │ │ ├── ic_github.xml │ │ │ ├── ic_github_black.xml │ │ │ ├── ic_incognito.xml │ │ │ └── ic_settings.xml │ │ ├── values-sw720dp │ │ │ └── dimens.xml │ │ ├── values-sw600dp-land │ │ │ └── dimens.xml │ │ ├── values-sw720dp-land │ │ │ └── dimens.xml │ │ ├── values-w820dp-land │ │ │ └── dimens.xml │ │ ├── layouts │ │ │ ├── other_layouts │ │ │ │ ├── layout │ │ │ │ │ ├── single_container_layout.xml │ │ │ │ │ ├── state_layout.xml │ │ │ │ │ ├── enable_ads_switch.xml │ │ │ │ │ ├── avatar_layout.xml │ │ │ │ │ ├── appbar_elevation_dark.xml │ │ │ │ │ └── appbar_start_margin.xml │ │ │ │ ├── layout-land │ │ │ │ │ └── appbar_start_margin.xml │ │ │ │ └── layout-large │ │ │ │ │ └── appbar_start_margin.xml │ │ │ ├── main_layouts │ │ │ │ ├── layout │ │ │ │ │ ├── fragment_container.xml │ │ │ │ │ ├── main_bottom_navigation.xml │ │ │ │ │ ├── issues_bottom_navigation.xml │ │ │ │ │ ├── settings_layout.xml │ │ │ │ │ ├── notifications_bottom_sheet_layout.xml │ │ │ │ │ ├── bottom_fab.xml │ │ │ │ │ ├── milestone_dialog_layout.xml │ │ │ │ │ ├── repo_file_layout.xml │ │ │ │ │ ├── vertical_refresh_list.xml │ │ │ │ │ ├── centered_tabbed_viewpager.xml │ │ │ │ │ ├── small_grid_refresh_list.xml │ │ │ │ │ ├── header_title_with_toolbar.xml │ │ │ │ │ └── tabbed_viewpager.xml │ │ │ │ ├── layout-land │ │ │ │ │ ├── fragment_container.xml │ │ │ │ │ ├── main_bottom_navigation.xml │ │ │ │ │ ├── issues_bottom_navigation.xml │ │ │ │ │ ├── bottom_fab.xml │ │ │ │ │ └── header_title_with_toolbar.xml │ │ │ │ └── layout-large │ │ │ │ │ ├── fragment_container.xml │ │ │ │ │ ├── main_bottom_navigation.xml │ │ │ │ │ ├── issues_bottom_navigation.xml │ │ │ │ │ ├── bottom_fab.xml │ │ │ │ │ └── header_title_with_toolbar.xml │ │ │ └── row_layouts │ │ │ │ └── layout │ │ │ │ ├── file_path_row_item.xml │ │ │ │ └── simple_row_item.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── menu │ │ │ ├── add_menu.xml │ │ │ ├── done_menu.xml │ │ │ ├── download_menu.xml │ │ │ ├── notification_menu.xml │ │ │ ├── gist_menu.xml │ │ │ ├── search_menu.xml │ │ │ ├── download_share_menu.xml │ │ │ ├── share_menu.xml │ │ │ ├── repo_menu.xml │ │ │ ├── download_browser_menu.xml │ │ │ ├── drawer_menu.xml │ │ │ ├── bottom_nav_menu.xml │ │ │ └── repo_bottom_nav_menu.xml │ │ ├── animator │ │ │ ├── plus_minus_rotate.xml │ │ │ ├── minus_to_plus.xml │ │ │ ├── plus_to_minus.xml │ │ │ ├── fill_to_star.xml │ │ │ ├── star_to_fill.xml │ │ │ └── cardview_selector.xml │ │ ├── values-night │ │ │ ├── styles.xml │ │ │ ├── themes.xml │ │ │ └── colors.xml │ │ └── values │ │ │ ├── paths.xml │ │ │ ├── styles.xml │ │ │ └── arrays.xml │ ├── assets │ │ ├── fonts │ │ │ └── app_font.ttf │ │ ├── md │ │ │ └── intercept-touch.js │ │ └── highlight │ │ │ └── js │ │ │ ├── lang-rd.js │ │ │ ├── lang-tex.js │ │ │ ├── lang-latex.js │ │ │ ├── lang-go.js │ │ │ ├── lang-proto.js │ │ │ ├── lang-ll.js │ │ │ ├── lang-llvm.js │ │ │ ├── lang-yaml.js │ │ │ ├── lang-yml.js │ │ │ ├── lang-basic.js │ │ │ ├── lang-cbm.js │ │ │ └── lang-wiki.js │ └── java │ │ └── com │ │ ├── fastaccess │ │ ├── data │ │ │ ├── dao │ │ │ │ ├── types │ │ │ │ │ ├── GitEntryType.java │ │ │ │ │ ├── NotificationReason.java │ │ │ │ │ ├── IssueState.java │ │ │ │ │ └── FilesType.java │ │ │ │ ├── LabelListModel.java │ │ │ │ ├── GitCommitListModel.java │ │ │ │ ├── CommitFileListModel.java │ │ │ │ ├── ReleasesAssetsListModel.java │ │ │ │ ├── UsersListModel.java │ │ │ │ ├── CommitListModel.java │ │ │ │ ├── GithubFileModel.java │ │ │ │ ├── converters │ │ │ │ │ ├── IssueConverter.java │ │ │ │ │ ├── RepoConverter.java │ │ │ │ │ ├── UserConverter.java │ │ │ │ │ ├── CommitConverter.java │ │ │ │ │ ├── LabelConverter.java │ │ │ │ │ ├── RenameConverter.java │ │ │ │ │ ├── LicenseConverter.java │ │ │ │ │ ├── PayloadConverter.java │ │ │ │ │ ├── GitHubStateConverter.java │ │ │ │ │ ├── UsersConverter.java │ │ │ │ │ ├── CommitsConverter.java │ │ │ │ │ ├── GitCommitConverter.java │ │ │ │ │ ├── PullRequestConverter.java │ │ │ │ │ ├── GitHubFilesConverter.java │ │ │ │ │ ├── LabelsListConverter.java │ │ │ │ │ ├── MilestoneConverter.java │ │ │ │ │ ├── CommitFilesConverter.java │ │ │ │ │ ├── RepoPermissionConverter.java │ │ │ │ │ ├── ReleasesAssetsConverter.java │ │ │ │ │ ├── NotificationSubjectConverter.java │ │ │ │ │ └── BaseConverter.java │ │ │ │ ├── AssigneesRequestModel.java │ │ │ │ ├── GistHubErrorsModel.java │ │ │ │ ├── CreateMilestoneModel.java │ │ │ │ ├── RepoSubscriptionModel.java │ │ │ │ ├── GitHubErrorResponse.java │ │ │ │ ├── RepoPathsManager.java │ │ │ │ └── CommentRequestModel.java │ │ │ └── service │ │ │ │ ├── OrganizationService.java │ │ │ │ ├── SearchService.java │ │ │ │ ├── NotificationService.java │ │ │ │ └── LoginRestService.java │ │ ├── helper │ │ │ ├── FileHelper.java │ │ │ ├── TypeFaceHelper.java │ │ │ └── RxHelper.java │ │ ├── ui │ │ │ ├── modules │ │ │ │ ├── user │ │ │ │ │ ├── UserPagerPresenter.java │ │ │ │ │ └── UserPagerMvp.java │ │ │ │ ├── profile │ │ │ │ │ ├── ProfilePagerPresenter.java │ │ │ │ │ ├── org │ │ │ │ │ │ └── OrgProfilePagerMvp.java │ │ │ │ │ ├── ProfilePagerMvp.java │ │ │ │ │ ├── repos │ │ │ │ │ │ └── ProfileReposMvp.java │ │ │ │ │ ├── starred │ │ │ │ │ │ └── ProfileStarredMvp.java │ │ │ │ │ ├── followers │ │ │ │ │ │ └── ProfileFollowersMvp.java │ │ │ │ │ ├── following │ │ │ │ │ │ └── ProfileFollowingMvp.java │ │ │ │ │ ├── overview │ │ │ │ │ │ └── ProfileOverviewMvp.java │ │ │ │ │ └── gists │ │ │ │ │ │ └── ProfileGistsMvp.java │ │ │ │ ├── repos │ │ │ │ │ ├── extras │ │ │ │ │ │ ├── labels │ │ │ │ │ │ │ ├── LabelsPresenter.java │ │ │ │ │ │ │ └── LabelsMvp.java │ │ │ │ │ │ ├── assignees │ │ │ │ │ │ │ ├── AssigneesPresenter.java │ │ │ │ │ │ │ └── AssigneesMvp.java │ │ │ │ │ │ └── milestone │ │ │ │ │ │ │ ├── create │ │ │ │ │ │ │ └── CreateMilestoneMvp.java │ │ │ │ │ │ │ └── MilestoneMvp.java │ │ │ │ │ ├── code │ │ │ │ │ │ ├── RepoCodePagerPresenter.java │ │ │ │ │ │ ├── RepoCodePagerMvp.java │ │ │ │ │ │ ├── commit │ │ │ │ │ │ │ └── details │ │ │ │ │ │ │ │ ├── CommitPagerMvp.java │ │ │ │ │ │ │ │ └── files │ │ │ │ │ │ │ │ └── CommitFilesMvp.java │ │ │ │ │ │ └── contributors │ │ │ │ │ │ │ └── RepoContributorsMvp.java │ │ │ │ │ ├── issues │ │ │ │ │ │ ├── RepoIssuesPagerPresenter.java │ │ │ │ │ │ └── RepoIssuesPagerMvp.java │ │ │ │ │ ├── pull_requests │ │ │ │ │ │ ├── RepoPullRequestPagerPresenter.java │ │ │ │ │ │ ├── RepoPullRequestPagerMvp.java │ │ │ │ │ │ └── pull_request │ │ │ │ │ │ │ └── merge │ │ │ │ │ │ │ ├── MergePullRequestPresenter.java │ │ │ │ │ │ │ └── MergePullReqeustMvp.java │ │ │ │ │ └── DummyFragment.java │ │ │ │ ├── gists │ │ │ │ │ ├── gist │ │ │ │ │ │ └── files │ │ │ │ │ │ │ ├── GistFilesListMvp.java │ │ │ │ │ │ │ └── GistFilesListPresenter.java │ │ │ │ │ └── GistsMvp.java │ │ │ │ ├── search │ │ │ │ │ ├── SearchMvp.java │ │ │ │ │ ├── users │ │ │ │ │ │ └── SearchUsersMvp.java │ │ │ │ │ ├── repos │ │ │ │ │ │ └── SearchReposMvp.java │ │ │ │ │ └── issues │ │ │ │ │ │ └── SearchIssuesMvp.java │ │ │ │ └── login │ │ │ │ │ └── LoginMvp.java │ │ │ ├── widgets │ │ │ │ ├── AppbarRefreshLayout.java │ │ │ │ ├── FontSwitchView.java │ │ │ │ └── recyclerview │ │ │ │ │ └── layout_manager │ │ │ │ │ ├── StaggeredManager.java │ │ │ │ │ └── LinearManager.java │ │ │ └── adapter │ │ │ │ ├── viewholder │ │ │ │ └── SimpleViewHolder.java │ │ │ │ ├── CommitsAdapter.java │ │ │ │ ├── FeedsAdapter.java │ │ │ │ ├── ReleasesAdapter.java │ │ │ │ ├── FragmentsPagerAdapter.java │ │ │ │ ├── CommentsAdapter.java │ │ │ │ ├── SearchCodeAdapter.java │ │ │ │ ├── RepoFilesAdapter.java │ │ │ │ ├── SimpleListAdapter.java │ │ │ │ ├── MilestonesAdapter.java │ │ │ │ ├── RepoFilePathsAdapter.java │ │ │ │ └── NotificationsAdapter.java │ │ └── provider │ │ │ └── rest │ │ │ └── interceptors │ │ │ └── AuthenticationInterceptor.java │ │ └── prettifier │ │ └── pretty │ │ └── callback │ │ └── MarkDownInterceptorInterface.java │ └── debug │ └── res │ └── values │ └── secrets.xml ├── .codecov.yml ├── fasthub_as_settings.jar ├── .github └── assets │ ├── mobile_main.png │ ├── tablet_repo.png │ ├── feature_graphic.png │ ├── tablet_commits.png │ ├── web_hi_res_512.png │ └── mobile_main_landscape.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── debug_gradle.properties ├── .gitignore └── .travis.yml /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-tactile -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /google-services.json 3 | -------------------------------------------------------------------------------- /.codecov.yml: -------------------------------------------------------------------------------- 1 | codecov: 2 | token: b3275f76-a606-4c63-9b5c-1c58ef7acba0 3 | -------------------------------------------------------------------------------- /fasthub_as_settings.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/fasthub_as_settings.jar -------------------------------------------------------------------------------- /.github/assets/mobile_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/mobile_main.png -------------------------------------------------------------------------------- /.github/assets/tablet_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/tablet_repo.png -------------------------------------------------------------------------------- /.github/assets/feature_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/feature_graphic.png -------------------------------------------------------------------------------- /.github/assets/tablet_commits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/tablet_commits.png -------------------------------------------------------------------------------- /.github/assets/web_hi_res_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/web_hi_res_512.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 46dp 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/assets/fonts/app_font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/assets/fonts/app_font.ttf -------------------------------------------------------------------------------- /.github/assets/mobile_main_landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/.github/assets/mobile_main_landscape.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/web_hi_res_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/drawable-nodpi/web_hi_res_512.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PDDStudio/FastHub/master/app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/GitEntryType.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types; 2 | 3 | public enum GitEntryType { 4 | commit, 5 | tree, 6 | blob 7 | } -------------------------------------------------------------------------------- /app/src/main/res/values-v23/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #E0E0E0 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32dp 4 | 24dp 5 | 1 6 | -------------------------------------------------------------------------------- /debug_gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2536M 2 | android_store_password=PASSWORD 3 | android_key_password=PASSWORD 4 | android_key_alias=ALIAS 5 | github_client_id=GITHUB_CLIENT_ID 6 | github_secret=GITHUB_SECRET 7 | redirect_url=https://127.0.0.1 -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/FileHelper.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.helper; 2 | 3 | /** 4 | * Created by kosh20111 on 10/7/2015. CopyRights @ Innov8tif 5 | */ 6 | public class FileHelper { 7 | public static final long ONE_MB = 1048576L; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/LabelListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Kosh on 12 Feb 2017, 1:32 PM 7 | */ 8 | 9 | public class LabelListModel extends ArrayList {} 10 | -------------------------------------------------------------------------------- /app/src/debug/res/values/secrets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ca-app-pub-3940256099942544/6300978111 4 | YOUR-DEVICE-ID-FROM-LOGCAT 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GitCommitListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Kosh on 12 Feb 2017, 12:14 AM 7 | */ 8 | 9 | public class GitCommitListModel extends ArrayList {} 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Mar 22 10:32:31 MYT 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommitFileListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Kosh on 12 Feb 2017, 12:06 AM 7 | */ 8 | 9 | public class CommitFileListModel extends ArrayList {} 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw720dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 58dp 4 | 2 5 | 24dp 6 | 2 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/ReleasesAssetsListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:28 PM 7 | */ 8 | 9 | public class ReleasesAssetsListModel extends ArrayList {} 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/NotificationReason.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types; 2 | 3 | public enum NotificationReason { 4 | subscribed, 5 | manual, 6 | author, 7 | comment, 8 | mention, 9 | team_mention, 10 | state_change, 11 | assign, 12 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/rect_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 52dp 4 | 24dp 5 | 2 6 | @dimen/spacing_micro 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 82dp 4 | 24dp 5 | 2 6 | @dimen/spacing_micro 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/UsersListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import com.fastaccess.data.dao.model.User; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * Created by Kosh on 12 Feb 2017, 1:33 PM 9 | */ 10 | 11 | public class UsersListModel extends ArrayList {} 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommitListModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import com.fastaccess.data.dao.model.Commit; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * Created by Kosh on 12 Feb 2017, 12:10 AM 9 | */ 10 | 11 | public class CommitListModel extends ArrayList {} 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 84dp 3 | 3 4 | 24dp 5 | 3 6 | @dimen/spacing_micro 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GithubFileModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.io.Serializable; 4 | import java.util.HashMap; 5 | 6 | /** 7 | * Created by Kosh on 10 Feb 2017, 9:46 PM 8 | */ 9 | 10 | 11 | public class GithubFileModel extends HashMap implements Serializable {} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .DS_Store 5 | /build 6 | /captures 7 | .externalNativeBuild 8 | /gradle.properties 9 | /.idea/ 10 | /app/google-services.json 11 | /app/db/ 12 | /app/build/ 13 | /app/src/main/res/values/secrets.xml 14 | /app/fastaccess-key 15 | fast-for-github-firebase-crashreporting-7lngx-6b5be91d98.json 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/toolbar_shadow.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/toolbar_shadow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/single_container_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/user/UserPagerPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.user; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 03 Dec 2016, 8:00 AM 7 | */ 8 | 9 | class UserPagerPresenter extends BasePresenter implements UserPagerMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_minus.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/state_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 64dp 3 | 2 4 | 24dp 5 | 2 6 | 144dp 7 | @dimen/spacing_micro 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/add_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 03 Dec 2016, 8:00 AM 7 | */ 8 | 9 | class ProfilePagerPresenter extends BasePresenter implements ProfilePagerMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/labels/LabelsPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.labels; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 22 Feb 2017, 7:23 PM 7 | */ 8 | 9 | class LabelsPresenter extends BasePresenter implements LabelsMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/RepoCodePagerPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:36 AM 7 | */ 8 | 9 | class RepoCodePagerPresenter extends BasePresenter implements RepoCodePagerMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/assignees/AssigneesPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.assignees; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 05 Mar 2017, 11:52 AM 7 | */ 8 | 9 | class AssigneesPresenter extends BasePresenter implements AssigneesMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_drop_down.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/done_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.issues; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:36 AM 7 | */ 8 | 9 | class RepoIssuesPagerPresenter extends BasePresenter implements RepoIssuesPagerMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/res/animator/plus_minus_rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/download_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_download.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/fragment_container.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfilePagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.org; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | 5 | /** 6 | * Created by Kosh on 03 Dec 2016, 7:59 AM 7 | */ 8 | 9 | public interface OrgProfilePagerMvp { 10 | 11 | interface View extends BaseMvp.FAView {} 12 | 13 | interface Presenter extends BaseMvp.FAPresenter {} 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/IssueConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.model.Issue; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:30 PM 7 | */ 8 | 9 | public class IssueConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return Issue.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/RepoConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.model.Repo; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 7:58 PM 7 | */ 8 | 9 | public class RepoConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return Repo.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/UserConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.model.User; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 7:58 PM 7 | */ 8 | 9 | public class UserConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return User.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_italic.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_quote.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/splash_screen_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/AssigneesRequestModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Created by Kosh on 05 Mar 2017, 12:01 PM 11 | */ 12 | 13 | @Getter @Setter @NoArgsConstructor 14 | public class AssigneesRequestModel { 15 | private List assignees; 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:36 AM 7 | */ 8 | 9 | class RepoPullRequestPagerPresenter extends BasePresenter implements RepoPullRequestPagerMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_all.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/notification_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GistHubErrorsModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | /** 8 | * Created by Kosh on 18 Feb 2017, 2:10 PM 9 | */ 10 | 11 | @Getter @Setter @NoArgsConstructor class GistHubErrorsModel { 12 | private String resource; 13 | private String field; 14 | private String code; 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/CommitConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.model.Commit; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 7:58 PM 7 | */ 8 | 9 | public class CommitConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return Commit.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/LabelConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.LabelModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:30 PM 7 | */ 8 | 9 | public class LabelConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return LabelModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_strikethrough.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:35 AM 7 | */ 8 | 9 | interface RepoPullRequestPagerMvp { 10 | 11 | interface View extends BaseMvp.FAView {} 12 | 13 | interface Presenter extends BaseMvp.FAPresenter {} 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bookmark.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/RenameConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.RenameModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:29 PM 7 | */ 8 | 9 | public class RenameConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return RenameModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_one.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | android: 3 | components: 4 | - tools 5 | - tools 6 | - platform-tools 7 | - android-25 8 | - build-tools-25.0.2 9 | - extra 10 | 11 | jdk: oraclejdk8 12 | 13 | sudo: required 14 | 15 | script: 16 | - ./gradlew clean assembleDebug 17 | 18 | after_success: 19 | - bash <(curl -s https://codecov.io/bash) 20 | 21 | notifications: 22 | slack: fasthub:mjJWGD8UpgSgKawKa5OqMNlR 23 | email: false -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/LicenseConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.LicenseModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:33 PM 7 | */ 8 | 9 | public class LicenseConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return LicenseModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/PayloadConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.PayloadModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:39 PM 7 | */ 8 | 9 | public class PayloadConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return PayloadModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_milestone.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_trash.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/GitHubStateConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.GithubState; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:41 PM 7 | */ 8 | 9 | public class GitHubStateConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return GithubState.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/UsersConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.UsersListModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:26 PM 7 | */ 8 | 9 | public class UsersConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return UsersListModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/CommitsConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.CommitListModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:37 PM 7 | */ 8 | 9 | public class CommitsConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return CommitListModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/GitCommitConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.GitCommitModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:42 PM 7 | */ 8 | 9 | public class GitCommitConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return GitCommitModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge; 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 4 | 5 | /** 6 | * Created by Kosh on 18 Mar 2017, 12:13 PM 7 | */ 8 | 9 | public class MergePullRequestPresenter extends BasePresenter implements MergePullReqeustMvp.Presenter {} 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/PullRequestConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.model.PullRequest; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 7:58 PM 7 | */ 8 | 9 | public class PullRequestConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return PullRequest.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/GitHubFilesConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.GithubFileModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:21 PM 7 | */ 8 | 9 | public class GitHubFilesConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return GithubFileModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/LabelsListConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.LabelListModel; 4 | 5 | /** 6 | * Created by Kosh on 11 Feb 2017, 11:43 PM 7 | */ 8 | 9 | public class LabelsListConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return LabelListModel.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/MilestoneConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.MilestoneModel; 4 | 5 | /** 6 | * Created by Kosh on 11 Feb 2017, 11:43 PM 7 | */ 8 | 9 | public class MilestoneConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return MilestoneModel.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_code.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_multi.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/avd_follow.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/avd_unfollow.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_gists.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/CommitFilesConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.CommitFileListModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:37 PM 7 | */ 8 | 9 | public class CommitFilesConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return CommitFileListModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/user/UserPagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.user; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | import com.fastaccess.ui.modules.profile.ProfilePagerMvp; 5 | 6 | /** 7 | * Created by Kosh on 04 Dec 2016, 1:11 PM 8 | */ 9 | 10 | public interface UserPagerMvp { 11 | 12 | interface View extends BaseMvp.FAView, ProfilePagerMvp.View {} 13 | 14 | interface Presenter extends BaseMvp.FAPresenter {} 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/res/animator/minus_to_plus.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/animator/plus_to_minus.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/fragment_container.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-large/fragment_container.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/RepoPermissionConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.RepoPermissionsModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 8:33 PM 7 | */ 8 | 9 | public class RepoPermissionConverter extends BaseConverter { 10 | @Override protected Class getTypeClass() { 11 | return RepoPermissionsModel.class; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_list_numbers.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/IssueState.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types; 2 | 3 | import android.support.annotation.StringRes; 4 | 5 | import com.fastaccess.R; 6 | 7 | public enum IssueState { 8 | open(R.string.opened), 9 | closed(R.string.closed); 10 | 11 | int status; 12 | 13 | IssueState(@StringRes int status) { 14 | this.status = status; 15 | } 16 | 17 | @StringRes public int getStatus() { 18 | return status; 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/RepoCodePagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:35 AM 7 | */ 8 | 9 | public interface RepoCodePagerMvp { 10 | 11 | interface View extends BaseMvp.FAView { 12 | boolean canPressBack(); 13 | 14 | void onBackPressed(); 15 | } 16 | 17 | interface Presenter extends BaseMvp.FAPresenter {} 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_announcement.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_three.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_image.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | 5 | /** 6 | * Created by Kosh on 03 Dec 2016, 7:59 AM 7 | */ 8 | 9 | public interface ProfilePagerMvp { 10 | 11 | interface View extends BaseMvp.FAView { 12 | void onNavigateToFollowers(); 13 | 14 | void onNavigateToFollowing(); 15 | } 16 | 17 | interface Presenter extends BaseMvp.FAPresenter {} 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_comment.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_underlined.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/ReleasesAssetsConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.ReleasesAssetsListModel; 4 | 5 | /** 6 | * Created by Kosh on 11 Feb 2017, 11:43 PM 7 | */ 8 | 9 | public class ReleasesAssetsConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return ReleasesAssetsListModel.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.issues; 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp; 4 | 5 | /** 6 | * Created by Kosh on 31 Dec 2016, 1:35 AM 7 | */ 8 | 9 | public interface RepoIssuesPagerMvp { 10 | 11 | interface View extends BaseMvp.FAView { 12 | void onAddIssue(); 13 | 14 | void setCurrentItem(int index); 15 | } 16 | 17 | interface Presenter extends BaseMvp.FAPresenter {} 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_redo.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_undo.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/NotificationSubjectConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.data.dao.NotificationSubjectModel; 4 | 5 | /** 6 | * Created by Kosh on 15 Mar 2017, 7:58 PM 7 | */ 8 | 9 | public class NotificationSubjectConverter extends BaseConverter { 10 | 11 | @Override protected Class getTypeClass() { 12 | return NotificationSubjectModel.class; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_copy.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_document.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Created by Kosh on 05 Mar 2017, 2:30 AM 11 | */ 12 | 13 | @Getter @Setter @NoArgsConstructor 14 | public class CreateMilestoneModel { 15 | private String title; 16 | private String description; 17 | @SerializedName("due_one") private String dueOn; 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_location.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issues.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bottom_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_logout.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_overflow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/gist_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ring.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/RepoSubscriptionModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Created by Kosh on 14 Mar 2017, 9:10 PM 11 | */ 12 | 13 | @Getter @Setter @NoArgsConstructor 14 | public class RepoSubscriptionModel { 15 | private boolean subscribed; 16 | private boolean ignored; 17 | private Date createdAt; 18 | private String url; 19 | private String repositoryUrl; 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_time.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/FilesType.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types; 2 | 3 | import android.support.annotation.DrawableRes; 4 | 5 | import com.fastaccess.R; 6 | 7 | /** 8 | * Created by Kosh on 17 Feb 2017, 7:45 PM 9 | */ 10 | 11 | public enum FilesType { 12 | file(R.drawable.ic_file_document), 13 | dir(R.drawable.ic_folder); 14 | 15 | int icon; 16 | 17 | FilesType(int icon) { 18 | this.icon = icon; 19 | } 20 | 21 | @DrawableRes public int getIcon() { 22 | return icon; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_time_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M15,12C17.21,12 19,10.21 19,8C19,5.79 17.21,4 15,4C12.79,4 11,5.79 11,8C11,10.21 12.79,12 15,12L15,12ZM15,14C12.33,14 7,15.34 7,18L7,20L23,20L23,18C23,15.34 17.67,14 15,14L15,14Z 4 | M6,7 L4,7 L4,10 L1,10 L1,12 L4,12 L4,15 L6,15 L6,12 L9,12 L9,10 L6,10 L6,7 Z 5 | M6,10 L4,10 L4,10 L1,10 L1,12 L4,12 L4,12 L6,12 L6,12 L9,12 L9,10 L6,10 L6,10 Z 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_two.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-large/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/issues_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/issues_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-large/issues_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_eye.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issue_closed.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issue_opened.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/search_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_insert_link.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/download_share_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullReqeustMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.ui.base.mvp.BaseMvp; 6 | 7 | /** 8 | * Created by Kosh on 18 Mar 2017, 12:11 PM 9 | */ 10 | 11 | public interface MergePullReqeustMvp { 12 | 13 | interface MergeCallback { 14 | void onMerge(@NonNull String msg); 15 | } 16 | 17 | interface View extends BaseMvp.FAView { 18 | 19 | } 20 | 21 | interface Presenter {} 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/share_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/settings_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/top_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 10 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_bold.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_profile.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_unlock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_label.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/row_layouts/layout/file_path_row_item.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_group.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/left_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/right_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-large/bottom_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_list_bulleted.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/enable_ads_switch.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.gists.gist.files; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.FilesListModel; 6 | import com.fastaccess.ui.base.mvp.BaseMvp; 7 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 8 | 9 | /** 10 | * Created by Kosh on 13 Nov 2016, 1:35 PM 11 | */ 12 | 13 | interface GistFilesListMvp { 14 | 15 | interface View extends BaseMvp.FAView { 16 | void onOpenFile(@NonNull FilesListModel item); 17 | } 18 | 19 | interface Presenter extends BaseMvp.FAPresenter, BaseViewHolder.OnItemClickListener {} 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brower.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/repo_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | 15 | 16 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_heart.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/animator/fill_to_star.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/animator/star_to_fill.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_license.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/labels/LabelsMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.labels; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.LabelModel; 6 | import com.fastaccess.ui.adapter.LabelsAdapter; 7 | import com.fastaccess.ui.base.mvp.BaseMvp; 8 | 9 | import java.util.ArrayList; 10 | 11 | /** 12 | * Created by Kosh on 22 Feb 2017, 7:22 PM 13 | */ 14 | 15 | public interface LabelsMvp { 16 | 17 | interface SelectedLabelsListener { 18 | void onSelectedLabels(@NonNull ArrayList labels); 19 | } 20 | 21 | interface View extends BaseMvp.FAView, LabelsAdapter.OnSelectLabel {} 22 | 23 | interface Presenter {} 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/TypeFaceHelper.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.helper; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.widget.TextView; 6 | 7 | /** 8 | * Created by Kosh on 17/12/15 10:25 PM 9 | */ 10 | public class TypeFaceHelper { 11 | 12 | private static Typeface typeFace; 13 | 14 | public static void generateTypeface(Context context) { 15 | typeFace = Typeface.createFromAsset(context.getAssets(), "fonts/app_font.ttf"); 16 | } 17 | 18 | public static void applyTypeface(TextView textView) { 19 | textView.setTypeface(typeFace); 20 | } 21 | 22 | public static Typeface getTypeface() { 23 | return typeFace; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/bottom_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/assignees/AssigneesMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.assignees; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.model.User; 6 | import com.fastaccess.ui.AssigneesAdapter; 7 | import com.fastaccess.ui.base.mvp.BaseMvp; 8 | 9 | import java.util.ArrayList; 10 | 11 | /** 12 | * Created by Kosh on 22 Feb 2017, 7:22 PM 13 | */ 14 | 15 | public interface AssigneesMvp { 16 | 17 | interface SelectedAssigneesListener { 18 | void onSelectedAssignees(@NonNull ArrayList users); 19 | } 20 | 21 | interface View extends BaseMvp.FAView, AssigneesAdapter.OnSelectAssignee {} 22 | 23 | interface Presenter {} 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/DummyFragment.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import com.fastaccess.R; 11 | 12 | /** 13 | * Created by Kosh on 11 Mar 2017, 12:10 AM 14 | */ 15 | 16 | public class DummyFragment extends Fragment { 17 | 18 | @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 19 | return inflater.inflate(R.layout.single_container_layout, container, false); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_follow.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_unfollow.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/menu/download_browser_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bug.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GitHubErrorResponse.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * Created by Kosh on 18 Feb 2017, 2:09 PM 11 | */ 12 | 13 | @Getter @Setter @NoArgsConstructor 14 | public class GitHubErrorResponse { 15 | private String message; 16 | private String documentation_url; 17 | private List errors; 18 | 19 | @Override public String toString() { 20 | return "GitHubErrorResponse{" + 21 | "message='" + message + '\'' + 22 | ", documentation_url='" + documentation_url + '\'' + 23 | ", errors=" + errors + 24 | '}'; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/AppbarRefreshLayout.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets; 2 | 3 | import android.content.Context; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | import android.util.AttributeSet; 6 | 7 | import com.fastaccess.R; 8 | 9 | 10 | /** 11 | * Created by kosh on 7/30/2015. CopyRights @ Innov8tif 12 | */ 13 | public class AppbarRefreshLayout extends SwipeRefreshLayout { 14 | 15 | public AppbarRefreshLayout(Context context) { 16 | super(context, null); 17 | } 18 | 19 | public AppbarRefreshLayout(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | setColorSchemeResources(R.color.material_amber_700, R.color.material_blue_700, R.color.material_purple_700, R.color.material_lime_700); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/milestone_dialog_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asl_follow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 13 | 14 | 18 | 19 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_at.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @string/unread 5 | @string/all 6 | 7 | 8 | 9 | @string/turn_off 10 | @string/one_minute 11 | @string/five_minutes 12 | @string/ten_minutes 13 | @string/twenty_minutes 14 | @string/thirty_minutes 15 | 16 | 17 | 18 | @string/auto_theme_mode 19 | @string/light_theme_mode 20 | @string/dark_theme_mode 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/animator/cardview_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pull_requests.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_merge.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/repo_file_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/RxHelper.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.helper; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import rx.Observable; 6 | import rx.android.schedulers.AndroidSchedulers; 7 | import rx.schedulers.Schedulers; 8 | 9 | /** 10 | * Created by Kosh on 11 Nov 2016, 11:53 AM 11 | */ 12 | 13 | public class RxHelper { 14 | public static Observable getObserver(@NonNull Observable observable) { 15 | return observable 16 | .subscribeOn(Schedulers.io()) 17 | .observeOn(AndroidSchedulers.mainThread()); 18 | } 19 | 20 | public static Observable getObserverComputation(@NonNull Observable observable) { 21 | return observable 22 | .subscribeOn(Schedulers.computation()) 23 | .observeOn(AndroidSchedulers.mainThread()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/gists/gist/files/GistFilesListPresenter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.gists.gist.files; 2 | 3 | import android.view.View; 4 | 5 | import com.fastaccess.data.dao.FilesListModel; 6 | import com.fastaccess.helper.Logger; 7 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter; 8 | 9 | /** 10 | * Created by Kosh on 13 Nov 2016, 1:35 PM 11 | */ 12 | 13 | class GistFilesListPresenter extends BasePresenter implements GistFilesListMvp.Presenter { 14 | 15 | @Override public void onItemClick(int position, View v, FilesListModel item) { 16 | Logger.e(item.getFilename()); 17 | if (getView() != null) getView().onOpenFile(item); 18 | } 19 | 20 | @Override public void onItemLongClick(int position, View v, FilesListModel item) { 21 | onItemClick(position, v, item); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/appbar_elevation_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/OrganizationService.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.Pageable; 6 | import com.fastaccess.data.dao.model.User; 7 | 8 | import retrofit2.http.GET; 9 | import retrofit2.http.Path; 10 | import rx.Observable; 11 | 12 | /** 13 | * Created by Kosh on 22 Mar 2017, 6:44 PM 14 | */ 15 | 16 | public interface OrganizationService { 17 | 18 | @GET("/orgs/{org}") Observable getOrganization(@NonNull @Path("org") String org); 19 | 20 | @GET("/user/orgs") Observable> getMyOrganizations(); 21 | 22 | @GET("/users/{user}/orgs") Observable> getMyOrganizations(@NonNull @Path("user") String user); 23 | 24 | @GET("/orgs/{org}/members") Observable> getOrgMembers(@NonNull @Path("user") String user); 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/assets/md/intercept-touch.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function(event) { 2 | document.querySelectorAll('img').forEach(function(img){ 3 | img.onerror = function(){this.style.display='none';}; 4 | }); 5 | }); 6 | 7 | window.onload = function() { 8 | addTouchEvents(document.getElementsByTagName("pre")); 9 | addTouchEvents(document.getElementsByTagName("table")); 10 | addEventListener(document.getElementsByClassName("highlight")); 11 | }; 12 | 13 | function addTouchEvents(elements) { 14 | for (var i = 0; i < elements.length; i++) { 15 | elements[i].addEventListener("touchstart", touchStart, false); 16 | elements[i].addEventListener("touchend", touchEnd, false); 17 | } 18 | } 19 | 20 | function touchStart(event) { 21 | Android.startIntercept(); 22 | } 23 | 24 | function touchEnd(event) { 25 | Android.stopIntercept(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/appbar_start_margin.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/drawer_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 16 | 17 | 18 | 22 | 23 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/search/SearchMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.search; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.view.ViewPager; 6 | import android.widget.AutoCompleteTextView; 7 | 8 | import com.fastaccess.data.dao.model.SearchHistory; 9 | import com.fastaccess.ui.base.mvp.BaseMvp; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 08 Dec 2016, 8:19 PM 15 | */ 16 | 17 | interface SearchMvp { 18 | 19 | interface View extends BaseMvp.FAView { 20 | void onNotifyAdapter(@Nullable SearchHistory query); 21 | } 22 | 23 | interface Presenter extends BaseMvp.FAPresenter { 24 | 25 | @NonNull ArrayList getHints(); 26 | 27 | void onSearchClicked(@NonNull ViewPager viewPager, @NonNull AutoCompleteTextView editText); 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-rd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Jeffrey Arnold 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["lit",/^\\(?:cr|l?dots|R|tab)\b/],["kwd",/^\\[a-zA-Z@]+/],["kwd",/^#(?:ifn?def|endif)/],["pln",/^\\[{}]/],["pun",/^[{}()\[\]]+/]]),["Rd","rd"]); 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_eye_off.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_branch.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-tex.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Martin S. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]); 18 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-latex.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Martin S. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]); 18 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-go.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2010 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["pln",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/],["pln",/^(?:[^\/\"\'`]|\/(?![\/\*]))+/i]]),["go"]); 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter.viewholder; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.annotation.Nullable; 5 | import android.view.View; 6 | 7 | import com.fastaccess.R; 8 | import com.fastaccess.ui.widgets.FontTextView; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 10 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 11 | 12 | import butterknife.BindView; 13 | 14 | /** 15 | * Created by Kosh on 31 Dec 2016, 3:12 PM 16 | */ 17 | 18 | public class SimpleViewHolder extends BaseViewHolder { 19 | 20 | @BindView(R.id.title) FontTextView title; 21 | 22 | public SimpleViewHolder(@NonNull View itemView, @Nullable BaseRecyclerAdapter adapter) { 23 | super(itemView, adapter); 24 | } 25 | 26 | @Override public void bind(@NonNull O o) { 27 | title.setText(o.toString()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-proto.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2006 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.annotation.Nullable; 5 | 6 | import com.fastaccess.data.dao.model.RepoFile; 7 | 8 | import java.util.ArrayList; 9 | import java.util.HashMap; 10 | 11 | import lombok.NoArgsConstructor; 12 | 13 | /** 14 | * Created by Kosh on 03 Mar 2017, 10:43 PM 15 | */ 16 | 17 | @NoArgsConstructor 18 | public class RepoPathsManager { 19 | private HashMap> files = new HashMap<>(); 20 | 21 | @Nullable public ArrayList getPaths(@NonNull String url, @NonNull String ref) { 22 | return files.get(ref + "/" + url); 23 | } 24 | 25 | public void setFiles(@NonNull String ref, @NonNull String path, @NonNull ArrayList paths) { 26 | files.put(ref + "/" + path, paths); 27 | } 28 | 29 | public void clear() { 30 | files.clear(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/prettifier/pretty/callback/MarkDownInterceptorInterface.java: -------------------------------------------------------------------------------- 1 | package com.prettifier.pretty.callback; 2 | 3 | import android.webkit.JavascriptInterface; 4 | 5 | import com.fastaccess.helper.Logger; 6 | import com.prettifier.pretty.PrettifyWebView; 7 | 8 | /** 9 | * Created by Kosh on 13 Dec 2016, 3:01 PM 10 | */ 11 | 12 | public class MarkDownInterceptorInterface { 13 | private PrettifyWebView prettifyWebView; 14 | 15 | public MarkDownInterceptorInterface(PrettifyWebView prettifyWebView) { 16 | this.prettifyWebView = prettifyWebView; 17 | } 18 | 19 | @JavascriptInterface public void startIntercept() { 20 | 21 | if (prettifyWebView != null) { 22 | prettifyWebView.setInterceptTouch(true); 23 | } 24 | } 25 | 26 | @JavascriptInterface public void stopIntercept() { 27 | 28 | if (prettifyWebView != null) { 29 | prettifyWebView.setInterceptTouch(false); 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/FontSwitchView.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.SwitchCompat; 5 | import android.util.AttributeSet; 6 | 7 | import com.fastaccess.helper.TypeFaceHelper; 8 | 9 | 10 | /** 11 | * Created by Kosh on 8/18/2015. copyrights are reserved 12 | */ 13 | public class FontSwitchView extends SwitchCompat { 14 | 15 | public FontSwitchView(Context context) { 16 | super(context); 17 | init(); 18 | } 19 | 20 | public FontSwitchView(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | init(); 23 | 24 | } 25 | 26 | public FontSwitchView(Context context, AttributeSet attrs, int defStyleAttr) { 27 | super(context, attrs, defStyleAttr); 28 | init(); 29 | } 30 | 31 | private void init() { 32 | if (isInEditMode()) return; 33 | TypeFaceHelper.applyTypeface(this); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/create/CreateMilestoneMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.milestone.create; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.annotation.Nullable; 5 | 6 | import com.fastaccess.data.dao.MilestoneModel; 7 | import com.fastaccess.ui.base.mvp.BaseMvp; 8 | 9 | /** 10 | * Created by Kosh on 04 Mar 2017, 10:47 PM 11 | */ 12 | 13 | public interface CreateMilestoneMvp { 14 | 15 | interface OnMilestoneAdded { 16 | void onMilestoneAdded(@NonNull MilestoneModel milestoneModel); 17 | } 18 | 19 | interface View extends BaseMvp.FAView { 20 | void onShowTitleError(boolean isError); 21 | 22 | void onMilestoneAdded(@NonNull MilestoneModel milestoneModel); 23 | } 24 | 25 | interface Presenter { 26 | void onSubmit(@Nullable String title, @Nullable String dueOn, 27 | @NonNull String login, @NonNull String repo); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout-land/appbar_start_margin.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout-large/appbar_start_margin.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/row_layouts/layout/simple_row_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #2D3035 4 | #26282C 5 | @color/material_blue_500 6 | #22252A 7 | #fff 8 | @color/material_grey_500 9 | @color/material_grey_300 10 | @color/primary_dark 11 | @color/primary 12 | @color/secondary_text 13 | @color/windowBackground 14 | @color/material_green_900 15 | @color/material_red_900 16 | @color/material_blue_grey_500 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/vertical_refresh_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/commit/details/CommitPagerMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code.commit.details; 2 | 3 | import android.content.Intent; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | 7 | import com.fastaccess.data.dao.model.Commit; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | 10 | /** 11 | * Created by Kosh on 10 Dec 2016, 9:21 AM 12 | */ 13 | 14 | interface CommitPagerMvp { 15 | 16 | interface View extends BaseMvp.FAView { 17 | 18 | void onSetup(); 19 | } 20 | 21 | interface Presenter extends BaseMvp.FAPresenter { 22 | 23 | @Nullable Commit getCommit(); 24 | 25 | void onActivityCreated(@Nullable Intent intent); 26 | 27 | void onWorkOffline(@NonNull String sha, @NonNull String repoId, @NonNull String login); 28 | 29 | String getLogin(); 30 | 31 | String getRepoId(); 32 | 33 | boolean showToRepoBtn(); 34 | 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/res/values-v23/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 15 | 16 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/menu/bottom_nav_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-ll.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Nikhil Dabas 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]); 18 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/centered_tabbed_viewpager.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-llvm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Nikhil Dabas 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]); 18 | -------------------------------------------------------------------------------- /app/src/main/res/menu/repo_bottom_nav_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/StaggeredManager.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets.recyclerview.layout_manager; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.support.v7.widget.StaggeredGridLayoutManager; 6 | import android.util.AttributeSet; 7 | 8 | /** 9 | * Created by Kosh on 17 May 2016, 10:02 PM 10 | */ 11 | public class StaggeredManager extends StaggeredGridLayoutManager { 12 | 13 | public StaggeredManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 14 | super(context, attrs, defStyleAttr, defStyleRes); 15 | } 16 | 17 | public StaggeredManager(int spanCount, int orientation) { 18 | super(spanCount, orientation); 19 | } 20 | 21 | @Override public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { 22 | try { 23 | super.onLayoutChildren(recycler, state); 24 | } catch (IndexOutOfBoundsException ignored) {} 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fork.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/rest/interceptors/AuthenticationInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.rest.interceptors; 2 | 3 | import com.fastaccess.helper.InputHelper; 4 | 5 | import java.io.IOException; 6 | 7 | import lombok.AllArgsConstructor; 8 | import okhttp3.Interceptor; 9 | import okhttp3.Request; 10 | import okhttp3.Response; 11 | 12 | @AllArgsConstructor 13 | public class AuthenticationInterceptor implements Interceptor { 14 | 15 | private String authToken; 16 | private String otp; 17 | 18 | @Override public Response intercept(Chain chain) throws IOException { 19 | Request original = chain.request(); 20 | Request.Builder builder = original.newBuilder(); 21 | if (!InputHelper.isEmpty(authToken)) { 22 | builder.header("Authorization", authToken); 23 | } 24 | if (!InputHelper.isEmpty(otp)) { 25 | builder.addHeader("X-GitHub-OTP", otp.trim()); 26 | } 27 | Request request = builder.build(); 28 | return chain.proceed(request); 29 | } 30 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fork_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/small_grid_refresh_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/gists/GistsMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.gists; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Gist; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 12:35 PM 15 | */ 16 | 17 | interface GistsMvp { 18 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 19 | 20 | void onNotifyAdapter(); 21 | 22 | @NonNull OnLoadMore getLoadMore(); 23 | } 24 | 25 | interface Presenter extends BaseMvp.FAPresenter, 26 | BaseViewHolder.OnItemClickListener, 27 | BaseMvp.PaginationListener { 28 | 29 | @NonNull ArrayList getGists(); 30 | 31 | void onWorkOffline(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_github.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_github_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/header_title_with_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/CommitsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.Commit; 7 | import com.fastaccess.ui.adapter.viewholder.CommitsViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class CommitsAdapter extends BaseRecyclerAdapter> { 18 | 19 | public CommitsAdapter(@NonNull List data) { 20 | super(data); 21 | } 22 | 23 | @Override protected CommitsViewHolder viewHolder(ViewGroup parent, int viewType) { 24 | return CommitsViewHolder.newInstance(parent, this); 25 | } 26 | 27 | @Override protected void onBindView(CommitsViewHolder holder, int position) { 28 | holder.bind(getItem(position)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/FeedsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.Event; 7 | import com.fastaccess.ui.adapter.viewholder.FeedsViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class FeedsAdapter extends BaseRecyclerAdapter> { 18 | 19 | public FeedsAdapter(@NonNull ArrayList Events) { 20 | super(Events); 21 | } 22 | 23 | @Override protected FeedsViewHolder viewHolder(ViewGroup parent, int viewType) { 24 | return new FeedsViewHolder(FeedsViewHolder.getView(parent), this); 25 | } 26 | 27 | @Override protected void onBindView(FeedsViewHolder holder, int position) { 28 | holder.bind(getItem(position)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-yaml.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 ribrdb @ code.google.com 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln", 18 | /^\w+/]]),["yaml","yml"]); 19 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-yml.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 ribrdb @ code.google.com 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln", 18 | /^\w+/]]),["yaml","yml"]); 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommentRequestModel.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | import lombok.Getter; 7 | import lombok.NoArgsConstructor; 8 | import lombok.Setter; 9 | 10 | /** 11 | * Created by Kosh on 20 Nov 2016, 10:40 AM 12 | */ 13 | 14 | @Getter @Setter @NoArgsConstructor 15 | public class CommentRequestModel implements Parcelable { 16 | private String body; 17 | 18 | @Override public int describeContents() { return 0; } 19 | 20 | @Override public void writeToParcel(Parcel dest, int flags) {dest.writeString(this.body);} 21 | 22 | @SuppressWarnings("WeakerAccess") protected CommentRequestModel(Parcel in) {this.body = in.readString();} 23 | 24 | public static final Creator CREATOR = new Creator() { 25 | @Override public CommentRequestModel createFromParcel(Parcel source) {return new CommentRequestModel(source);} 26 | 27 | @Override public CommentRequestModel[] newArray(int size) {return new CommentRequestModel[size];} 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/SearchService.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service; 2 | 3 | import com.fastaccess.data.dao.Pageable; 4 | import com.fastaccess.data.dao.SearchCodeModel; 5 | import com.fastaccess.data.dao.model.Issue; 6 | import com.fastaccess.data.dao.model.Repo; 7 | import com.fastaccess.data.dao.model.User; 8 | 9 | import retrofit2.http.GET; 10 | import retrofit2.http.Query; 11 | import rx.Observable; 12 | 13 | /** 14 | * Created by Kosh on 08 Dec 2016, 9:07 PM 15 | */ 16 | 17 | public interface SearchService { 18 | 19 | @GET("search/repositories") 20 | Observable> searchRepositories(@Query("q") String query, @Query("page") long page); 21 | 22 | @GET("search/code") 23 | Observable> searchCode(@Query("q") String query, @Query("page") long page); 24 | 25 | @GET("search/issues") 26 | Observable> searchIssues(@Query("q") String query, @Query("page") long page); 27 | 28 | @GET("search/users") 29 | Observable> searchUsers(@Query("q") String query, @Query("page") long page); 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/ReleasesAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.Release; 7 | import com.fastaccess.ui.adapter.viewholder.ReleasesViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class ReleasesAdapter extends BaseRecyclerAdapter> { 18 | 19 | public ReleasesAdapter(@NonNull List data) { 20 | super(data); 21 | } 22 | 23 | @Override protected ReleasesViewHolder viewHolder(ViewGroup parent, int viewType) { 24 | return ReleasesViewHolder.newInstance(parent, this); 25 | } 26 | 27 | @Override protected void onBindView(ReleasesViewHolder holder, int position) { 28 | holder.bind(getItem(position)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/FragmentsPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentStatePagerAdapter; 6 | 7 | import com.fastaccess.data.dao.FragmentPagerAdapterModel; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * Created by Kosh on 03 Dec 2016, 9:25 AM 13 | */ 14 | 15 | public class FragmentsPagerAdapter extends FragmentStatePagerAdapter { 16 | 17 | private List fragments; 18 | 19 | public FragmentsPagerAdapter(FragmentManager fm, List fragments) { 20 | super(fm); 21 | this.fragments = fragments; 22 | } 23 | 24 | @Override public Fragment getItem(int position) { 25 | return fragments.get(position).getFragment(); 26 | } 27 | 28 | @Override public int getCount() { 29 | return fragments.size(); 30 | } 31 | 32 | @Override public CharSequence getPageTitle(int position) { 33 | return fragments.get(position).getTitle(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/CommentsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.Comment; 7 | import com.fastaccess.ui.adapter.viewholder.CommentsViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class CommentsAdapter extends BaseRecyclerAdapter> { 18 | 19 | public CommentsAdapter(@NonNull ArrayList eventsModels) { 20 | super(eventsModels); 21 | } 22 | 23 | @Override protected CommentsViewHolder viewHolder(ViewGroup parent, int viewType) { 24 | return CommentsViewHolder.newInstance(parent, this); 25 | } 26 | 27 | @Override protected void onBindView(CommentsViewHolder holder, int position) { 28 | holder.bind(getItem(position)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/repos/ProfileReposMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.repos; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Repo; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 03 Dec 2016, 3:45 PM 15 | */ 16 | 17 | interface ProfileReposMvp { 18 | 19 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 20 | void onNotifyAdapter(); 21 | 22 | @NonNull OnLoadMore getLoadMore(); 23 | } 24 | 25 | interface Presenter extends BaseMvp.FAPresenter, 26 | BaseViewHolder.OnItemClickListener, 27 | BaseMvp.PaginationListener { 28 | 29 | @NonNull ArrayList getRepos(); 30 | 31 | void onWorkOffline(@NonNull String login); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/commit/details/files/CommitFilesMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code.commit.details.files; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | 7 | import com.fastaccess.data.dao.CommitFileListModel; 8 | import com.fastaccess.data.dao.CommitFileModel; 9 | import com.fastaccess.ui.adapter.CommitFilesAdapter; 10 | import com.fastaccess.ui.base.mvp.BaseMvp; 11 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 12 | 13 | /** 14 | * Created by Kosh on 20 Nov 2016, 11:10 AM 15 | */ 16 | 17 | interface CommitFilesMvp { 18 | 19 | interface View extends BaseMvp.FAView, CommitFilesAdapter.OnTogglePatch { 20 | 21 | void onNotifyAdapter(); 22 | 23 | } 24 | 25 | interface Presenter extends BaseMvp.FAPresenter, 26 | BaseMvp.PaginationListener, BaseViewHolder.OnItemClickListener { 27 | 28 | void onFragmentCreated(@Nullable Bundle bundle); 29 | 30 | @NonNull CommitFileListModel getFiles(); 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/search/users/SearchUsersMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.search.users; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.User; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 03 Dec 2016, 3:45 PM 15 | */ 16 | 17 | interface SearchUsersMvp { 18 | 19 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 20 | void onNotifyAdapter(); 21 | 22 | void onSetSearchQuery(@NonNull String query); 23 | 24 | @NonNull OnLoadMore getLoadMore(); 25 | } 26 | 27 | interface Presenter extends BaseMvp.FAPresenter, 28 | BaseViewHolder.OnItemClickListener, 29 | BaseMvp.PaginationListener { 30 | 31 | @NonNull ArrayList getUsers(); 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/NotificationService.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service; 2 | 3 | 4 | import com.fastaccess.data.dao.Pageable; 5 | import com.fastaccess.data.dao.model.Notification; 6 | 7 | import retrofit2.Response; 8 | import retrofit2.http.GET; 9 | import retrofit2.http.PATCH; 10 | import retrofit2.http.PUT; 11 | import retrofit2.http.Path; 12 | import retrofit2.http.Query; 13 | import rx.Observable; 14 | 15 | /** 16 | * Created by Kosh on 19 Feb 2017, 6:34 PM 17 | */ 18 | 19 | public interface NotificationService { 20 | 21 | @GET("notifications") 22 | Observable> getNotifications(@Query("page") int page); 23 | 24 | @GET("notifications?all=true") 25 | Observable> getAllNotifications(@Query("page") int page); 26 | 27 | @GET("/notifications/threads/{id}") 28 | Observable getNotification(@Path("id") String id); 29 | 30 | @PATCH("notifications/threads/{id}") Observable> markAsRead(@Path("id") String id); 31 | 32 | @PUT("notifications") Observable> markAllNotificationsAsRead(); 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/SearchCodeAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.SearchCodeModel; 7 | import com.fastaccess.ui.adapter.viewholder.SearchCodeViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class SearchCodeAdapter extends BaseRecyclerAdapter> { 18 | public SearchCodeAdapter(@NonNull List data) { 19 | super(data); 20 | } 21 | 22 | @Override protected SearchCodeViewHolder viewHolder(ViewGroup parent, int viewType) { 23 | return SearchCodeViewHolder.newInstance(parent, this); 24 | } 25 | 26 | @Override protected void onBindView(SearchCodeViewHolder holder, int position) { 27 | holder.bind(getItem(position)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/starred/ProfileStarredMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.starred; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Repo; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 03 Dec 2016, 3:45 PM 15 | */ 16 | 17 | interface ProfileStarredMvp { 18 | 19 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 20 | void onNotifyAdapter(); 21 | 22 | @NonNull OnLoadMore getLoadMore(); 23 | } 24 | 25 | interface Presenter extends BaseMvp.FAPresenter, 26 | BaseViewHolder.OnItemClickListener, 27 | BaseMvp.PaginationListener { 28 | 29 | @NonNull ArrayList getRepos(); 30 | 31 | void onWorkOffline(@NonNull String login); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/search/repos/SearchReposMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.search.repos; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Repo; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 03 Dec 2016, 3:45 PM 15 | */ 16 | 17 | interface SearchReposMvp { 18 | 19 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 20 | void onNotifyAdapter(); 21 | 22 | 23 | void onSetSearchQuery(@NonNull String query); 24 | 25 | @NonNull OnLoadMore getLoadMore(); 26 | } 27 | 28 | interface Presenter extends BaseMvp.FAPresenter, 29 | BaseViewHolder.OnItemClickListener, 30 | BaseMvp.PaginationListener { 31 | 32 | @NonNull ArrayList getRepos(); 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/search/issues/SearchIssuesMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.search.issues; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Issue; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 03 Dec 2016, 3:45 PM 15 | */ 16 | 17 | interface SearchIssuesMvp { 18 | 19 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 20 | void onNotifyAdapter(); 21 | 22 | void onSetSearchQuery(@NonNull String query); 23 | 24 | @NonNull OnLoadMore getLoadMore(); 25 | } 26 | 27 | interface Presenter extends BaseMvp.FAPresenter, 28 | BaseViewHolder.OnItemClickListener, 29 | BaseMvp.PaginationListener { 30 | 31 | @NonNull ArrayList getIssues(); 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/recyclerview/layout_manager/LinearManager.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets.recyclerview.layout_manager; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.LinearLayoutManager; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.util.AttributeSet; 7 | 8 | /** 9 | * Created by Kosh on 17 May 2016, 10:02 PM 10 | */ 11 | public class LinearManager extends LinearLayoutManager { 12 | 13 | public LinearManager(Context context) { 14 | super(context); 15 | } 16 | 17 | public LinearManager(Context context, int orientation, boolean reverseLayout) { 18 | super(context, orientation, reverseLayout); 19 | } 20 | 21 | public LinearManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 22 | super(context, attrs, defStyleAttr, defStyleRes); 23 | } 24 | 25 | @Override public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { 26 | try { 27 | super.onLayoutChildren(recycler, state); 28 | } catch (IndexOutOfBoundsException ignored) {} 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_incognito.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/converters/BaseConverter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.converters; 2 | 3 | import com.fastaccess.helper.Logger; 4 | import com.fastaccess.provider.rest.RestProvider; 5 | 6 | import io.requery.Converter; 7 | 8 | /** 9 | * Created by Kosh on 15 Mar 2017, 8:02 PM 10 | */ 11 | 12 | public abstract class BaseConverter implements Converter { 13 | 14 | protected abstract Class getTypeClass(); 15 | 16 | @SuppressWarnings("unchecked") @Override public Class getMappedType() { 17 | return (Class) getTypeClass(); 18 | } 19 | 20 | @Override public Class getPersistedType() { 21 | return String.class; 22 | } 23 | 24 | @Override public Integer getPersistedSize() { 25 | return null; 26 | } 27 | 28 | @Override public String convertToPersisted(C value) { 29 | return RestProvider.gson.toJson(value); 30 | } 31 | 32 | @Override public C convertToMapped(Class type, String value) { 33 | Logger.e(type.getSimpleName(), value); 34 | return RestProvider.gson.fromJson(value, type); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/followers/ProfileFollowersMvp.java: -------------------------------------------------------------------------------- 1 | 2 | package com.fastaccess.ui.modules.profile.followers; 3 | 4 | import android.support.annotation.NonNull; 5 | import android.support.v4.widget.SwipeRefreshLayout; 6 | 7 | import com.fastaccess.data.dao.model.User; 8 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 9 | import com.fastaccess.ui.base.mvp.BaseMvp; 10 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 11 | 12 | import java.util.ArrayList; 13 | 14 | /** 15 | * Created by Kosh on 03 Dec 2016, 3:45 PM 16 | */ 17 | 18 | interface ProfileFollowersMvp { 19 | 20 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 21 | void onNotifyAdapter(); 22 | 23 | @NonNull OnLoadMore getLoadMore(); 24 | } 25 | 26 | interface Presenter extends BaseMvp.FAPresenter, 27 | BaseViewHolder.OnItemClickListener, 28 | BaseMvp.PaginationListener { 29 | 30 | @NonNull ArrayList getFollowers(); 31 | 32 | void onWorkOffline(@NonNull String login); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/following/ProfileFollowingMvp.java: -------------------------------------------------------------------------------- 1 | 2 | package com.fastaccess.ui.modules.profile.following; 3 | 4 | import android.support.annotation.NonNull; 5 | import android.support.v4.widget.SwipeRefreshLayout; 6 | 7 | import com.fastaccess.data.dao.model.User; 8 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 9 | import com.fastaccess.ui.base.mvp.BaseMvp; 10 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 11 | 12 | import java.util.ArrayList; 13 | 14 | /** 15 | * Created by Kosh on 03 Dec 2016, 3:45 PM 16 | */ 17 | 18 | interface ProfileFollowingMvp { 19 | 20 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 21 | void onNotifyAdapter(); 22 | 23 | @NonNull OnLoadMore getLoadMore(); 24 | } 25 | 26 | interface Presenter extends BaseMvp.FAPresenter, 27 | BaseViewHolder.OnItemClickListener, 28 | BaseMvp.PaginationListener { 29 | 30 | @NonNull ArrayList getFollowing(); 31 | 32 | void onWorkOffline(@NonNull String login); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/RepoFilesAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.RepoFile; 7 | import com.fastaccess.ui.adapter.viewholder.RepoFilesViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class RepoFilesAdapter extends BaseRecyclerAdapter> { 19 | 20 | 21 | public RepoFilesAdapter(@NonNull ArrayList eventsModels) { 22 | super(eventsModels); 23 | } 24 | 25 | @Override protected RepoFilesViewHolder viewHolder(ViewGroup parent, int viewType) { 26 | return RepoFilesViewHolder.newInstance(parent, this); 27 | } 28 | 29 | @Override protected void onBindView(RepoFilesViewHolder holder, int position) { 30 | holder.bind(getItem(position)); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/SimpleListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.annotation.Nullable; 5 | import android.view.ViewGroup; 6 | 7 | import com.fastaccess.R; 8 | import com.fastaccess.ui.adapter.viewholder.SimpleViewHolder; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 10 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 11 | 12 | import java.util.List; 13 | 14 | public class SimpleListAdapter extends BaseRecyclerAdapter, 15 | SimpleViewHolder.OnItemClickListener> { 16 | public SimpleListAdapter(@NonNull List data, @Nullable SimpleViewHolder.OnItemClickListener listener) { 17 | super(data, listener); 18 | } 19 | 20 | @Override protected SimpleViewHolder viewHolder(ViewGroup parent, int viewType) { 21 | return new SimpleViewHolder<>(BaseViewHolder.getView(parent, R.layout.simple_row_item), this); 22 | } 23 | 24 | @Override protected void onBindView(SimpleViewHolder holder, int position) { 25 | holder.bind(getItem(position)); 26 | } 27 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/overview/ProfileOverviewMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.overview; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | 7 | import com.fastaccess.data.dao.model.User; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | 10 | /** 11 | * Created by Kosh on 03 Dec 2016, 9:15 AM 12 | */ 13 | 14 | interface ProfileOverviewMvp { 15 | 16 | interface View extends BaseMvp.FAView { 17 | void onInitViews(@Nullable User userModel); 18 | 19 | void onInvalidateMenuItem(); 20 | } 21 | 22 | interface Presenter extends BaseMvp.FAPresenter { 23 | 24 | void onFragmentCreated(@Nullable Bundle bundle); 25 | 26 | void onWorkOffline(@NonNull String login); 27 | 28 | void onCheckFollowStatus(@NonNull String login); 29 | 30 | boolean isSuccessResponse(); 31 | 32 | boolean isFollowing(); 33 | 34 | void onFollowButtonClicked(@NonNull String login); 35 | 36 | void onSendUserToView(@Nullable User userModel); 37 | 38 | @NonNull String getLogin(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/MilestonesAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.MilestoneModel; 7 | import com.fastaccess.ui.adapter.viewholder.MilestonesViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class MilestonesAdapter extends BaseRecyclerAdapter> { 19 | 20 | public MilestonesAdapter(@NonNull ArrayList eventsModels) { 21 | super(eventsModels); 22 | } 23 | 24 | @Override protected MilestonesViewHolder viewHolder(ViewGroup parent, int viewType) { 25 | return MilestonesViewHolder.newInstance(parent, this); 26 | } 27 | 28 | @Override protected void onBindView(MilestonesViewHolder holder, int position) { 29 | holder.bind(getItem(position)); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/tabbed_viewpager.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 22 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-basic.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Peter Kofler 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, 18 | null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]); 19 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-cbm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Peter Kofler 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, 18 | null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]); 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/LoginRestService.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.AccessTokenModel; 6 | import com.fastaccess.data.dao.AuthModel; 7 | 8 | import retrofit2.http.Body; 9 | import retrofit2.http.Field; 10 | import retrofit2.http.FormUrlEncoded; 11 | import retrofit2.http.Headers; 12 | import retrofit2.http.POST; 13 | import rx.Observable; 14 | 15 | public interface LoginRestService { 16 | 17 | @POST("authorizations") Observable login(@NonNull @Body AuthModel authModel); 18 | 19 | @FormUrlEncoded @POST("access_token") 20 | @Headers("Accept: application/json") 21 | Observable getAccessToken(@NonNull @Field("code") String code, 22 | @NonNull @Field("client_id") String clientId, 23 | @NonNull @Field("client_secret") String clientSecret, 24 | @NonNull @Field("state") String state, 25 | @NonNull @Field("redirect_uri") String redirectUrl); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/RepoFilePathsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.RepoFile; 7 | import com.fastaccess.ui.adapter.viewholder.RepoFilePathsViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class RepoFilePathsAdapter extends BaseRecyclerAdapter> { 19 | 20 | 21 | public RepoFilePathsAdapter(@NonNull ArrayList eventsModels) { 22 | super(eventsModels); 23 | } 24 | 25 | @Override protected RepoFilePathsViewHolder viewHolder(ViewGroup parent, int viewType) { 26 | return RepoFilePathsViewHolder.newInstance(parent, this); 27 | } 28 | 29 | @Override protected void onBindView(RepoFilePathsViewHolder holder, int position) { 30 | holder.bind(getItem(position)); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/gists/ProfileGistsMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.gists; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | 6 | import com.fastaccess.data.dao.model.Gist; 7 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 8 | import com.fastaccess.ui.base.mvp.BaseMvp; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 12:35 PM 15 | */ 16 | 17 | interface ProfileGistsMvp { 18 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 19 | 20 | void onNotifyAdapter(); 21 | 22 | @NonNull OnLoadMore getLoadMore(); 23 | 24 | void onStartGistView(@NonNull String gistId); 25 | } 26 | 27 | interface Presenter extends BaseMvp.FAPresenter, 28 | BaseViewHolder.OnItemClickListener, 29 | BaseMvp.PaginationListener { 30 | 31 | @NonNull ArrayList getGists(); 32 | 33 | void onWorkOffline(@NonNull String login); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/NotificationsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.view.ViewGroup; 5 | 6 | import com.fastaccess.data.dao.model.Notification; 7 | import com.fastaccess.ui.adapter.viewholder.NotificationsViewHolder; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; 9 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 10 | 11 | import java.util.ArrayList; 12 | 13 | /** 14 | * Created by Kosh on 11 Nov 2016, 2:07 PM 15 | */ 16 | 17 | public class NotificationsAdapter extends BaseRecyclerAdapter> { 19 | 20 | public NotificationsAdapter(@NonNull ArrayList eventsModels) { 21 | super(eventsModels); 22 | } 23 | 24 | @Override protected NotificationsViewHolder viewHolder(ViewGroup parent, int viewType) { 25 | return NotificationsViewHolder.newInstance(parent, this); 26 | } 27 | 28 | @Override protected void onBindView(NotificationsViewHolder holder, int position) { 29 | holder.bind(getItem(position)); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/milestone/MilestoneMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.milestone; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import com.fastaccess.data.dao.MilestoneModel; 6 | import com.fastaccess.ui.base.mvp.BaseMvp; 7 | import com.fastaccess.ui.modules.repos.extras.milestone.create.CreateMilestoneMvp; 8 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 9 | 10 | import java.util.ArrayList; 11 | 12 | /** 13 | * Created by Kosh on 04 Mar 2017, 9:38 PM 14 | */ 15 | 16 | public interface MilestoneMvp { 17 | 18 | 19 | interface OnMilestoneSelected { 20 | void onMilestoneSelected(@NonNull MilestoneModel milestoneModel); 21 | } 22 | 23 | interface View extends BaseMvp.FAView, CreateMilestoneMvp.OnMilestoneAdded { 24 | void onNotifyAdapter(); 25 | 26 | void onMilestoneSelected(@NonNull MilestoneModel milestoneModel); 27 | } 28 | 29 | interface Presenter extends BaseViewHolder.OnItemClickListener { 30 | void onLoadMilestones(@NonNull String login, @NonNull String repo); 31 | 32 | @NonNull ArrayList getMilestones(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-large/header_title_with_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/header_title_with_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/contributors/RepoContributorsMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code.contributors; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.NonNull; 5 | import android.support.v4.widget.SwipeRefreshLayout; 6 | 7 | import com.fastaccess.data.dao.model.User; 8 | import com.fastaccess.provider.rest.loadmore.OnLoadMore; 9 | import com.fastaccess.ui.base.mvp.BaseMvp; 10 | import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; 11 | 12 | import java.util.ArrayList; 13 | 14 | /** 15 | * Created by Kosh on 03 Dec 2016, 3:45 PM 16 | */ 17 | 18 | interface RepoContributorsMvp { 19 | 20 | interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener { 21 | void onNotifyAdapter(); 22 | 23 | @NonNull OnLoadMore getLoadMore(); 24 | } 25 | 26 | interface Presenter extends BaseMvp.FAPresenter, 27 | BaseViewHolder.OnItemClickListener, 28 | BaseMvp.PaginationListener { 29 | 30 | void onFragmentCreated(@NonNull Bundle bundle); 31 | 32 | void onWorkOffline(); 33 | 34 | @NonNull ArrayList getUsers(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/assets/highlight/js/lang-wiki.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t \xA0a-gi-z0-9]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[=*~\^\[\]]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],["lang-",/^\{\{\{([\s\S]+?)\}\}\}/],["lang-",/^`([^\r\n`]+)`/],["str",/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]]),["wiki"]); 18 | PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/login/LoginMvp.java: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.login; 2 | 3 | import android.content.Intent; 4 | import android.net.Uri; 5 | import android.support.annotation.NonNull; 6 | import android.support.annotation.Nullable; 7 | 8 | import com.fastaccess.data.dao.AccessTokenModel; 9 | import com.fastaccess.data.dao.model.Login; 10 | import com.fastaccess.ui.base.mvp.BaseMvp; 11 | 12 | /** 13 | * Created by Kosh on 09 Nov 2016, 9:41 PM 14 | */ 15 | 16 | interface LoginMvp { 17 | 18 | interface View extends BaseMvp.FAView { 19 | 20 | void onRequire2Fa(); 21 | 22 | void onEmptyUserName(boolean isEmpty); 23 | 24 | void onEmptyPassword(boolean isEmpty); 25 | 26 | void onSuccessfullyLoggedIn(); 27 | } 28 | 29 | interface Presenter extends BaseMvp.FAPresenter { 30 | 31 | @NonNull Uri getAuthorizationUrl(); 32 | 33 | void onHandleAuthIntent(@Nullable Intent intent); 34 | 35 | void onTokenResponse(@Nullable AccessTokenModel response); 36 | 37 | void onUserResponse(@Nullable Login response); 38 | 39 | void login(@NonNull String username, @NonNull String password, @Nullable String twoFactorCode); 40 | } 41 | } 42 | --------------------------------------------------------------------------------