├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── assets │ ├── direct-apk-download.png │ ├── feature_graphic.png │ ├── first.png │ ├── fourth.png │ ├── sec.png │ ├── third.png │ └── web_hi_res_512.png └── workflows │ └── android_build.yml ├── .gitignore ├── LICENSE ├── README.md ├── app ├── build.gradle.kts ├── keys_debug.jks ├── objectbox-models │ └── default.json ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── fastaccess │ │ ├── helper │ │ └── TestHelper.java │ │ └── ui │ │ └── modules │ │ ├── login │ │ ├── LoginActivityTest.java │ │ └── LoginChooserActivityTest.java │ │ └── main │ │ └── MainActivityTest.java │ ├── debug │ └── res │ │ ├── values │ │ ├── secrets.xml │ │ └── strings.xml │ │ └── xml │ │ └── shortcuts.xml │ └── main │ ├── AndroidManifest.xml │ ├── assets │ ├── colors.json │ ├── emojis.json │ ├── fonts │ │ └── app_font.ttf │ ├── highlight │ │ ├── js │ │ │ ├── prettify.js │ │ │ ├── prettify_line_number.js │ │ │ └── scrollto.js │ │ └── styles │ │ │ ├── prettify.css │ │ │ ├── prettify_dark.css │ │ │ └── themes │ │ │ ├── agate.css │ │ │ ├── androidstudio.css │ │ │ ├── arduino-light.css │ │ │ ├── arta.css │ │ │ ├── ascetic.css │ │ │ ├── atelier-cave-dark.css │ │ │ ├── atelier-cave-light.css │ │ │ ├── atelier-dune-dark.css │ │ │ ├── atelier-dune-light.css │ │ │ ├── atelier-estuary-dark.css │ │ │ ├── atelier-estuary-light.css │ │ │ ├── atelier-forest-dark.css │ │ │ ├── atelier-forest-light.css │ │ │ ├── atelier-heath-dark.css │ │ │ ├── atelier-heath-light.css │ │ │ ├── atelier-lakeside-dark.css │ │ │ ├── atelier-lakeside-light.css │ │ │ ├── atelier-plateau-dark.css │ │ │ ├── atelier-plateau-light.css │ │ │ ├── atelier-savanna-dark.css │ │ │ ├── atelier-savanna-light.css │ │ │ ├── atelier-seaside-dark.css │ │ │ ├── atelier-seaside-light.css │ │ │ ├── atelier-sulphurpool-dark.css │ │ │ ├── atelier-sulphurpool-light.css │ │ │ ├── atom-one-dark.css │ │ │ ├── atom-one-light.css │ │ │ ├── brown-paper.css │ │ │ ├── codepen-embed.css │ │ │ ├── color-brewer.css │ │ │ ├── darcula.css │ │ │ ├── dark.css │ │ │ ├── darkula.css │ │ │ ├── default.css │ │ │ ├── docco.css │ │ │ ├── dracula.css │ │ │ ├── far.css │ │ │ ├── foundation.css │ │ │ ├── github-gist.css │ │ │ ├── github.css │ │ │ ├── googlecode.css │ │ │ ├── grayscale.css │ │ │ ├── gruvbox-dark.css │ │ │ ├── gruvbox-light.css │ │ │ ├── hopscotch.css │ │ │ ├── hybrid.css │ │ │ ├── idea.css │ │ │ ├── ir-black.css │ │ │ ├── kimbie.dark.css │ │ │ ├── kimbie.light.css │ │ │ ├── magula.css │ │ │ ├── mono-blue.css │ │ │ ├── monokai-sublime.css │ │ │ ├── monokai.css │ │ │ ├── obsidian.css │ │ │ ├── ocean.css │ │ │ ├── paraiso-dark.css │ │ │ ├── paraiso-light.css │ │ │ ├── pojoaque.css │ │ │ ├── purebasic.css │ │ │ ├── qtcreator_dark.css │ │ │ ├── qtcreator_light.css │ │ │ ├── railscasts.css │ │ │ ├── rainbow.css │ │ │ ├── routeros.css │ │ │ ├── school-book.css │ │ │ ├── solarized-dark.css │ │ │ ├── solarized-light.css │ │ │ ├── sunburst.css │ │ │ ├── tomorrow-night-blue.css │ │ │ ├── tomorrow-night-bright.css │ │ │ ├── tomorrow-night-eighties.css │ │ │ ├── tomorrow-night.css │ │ │ ├── tomorrow.css │ │ │ ├── vs.css │ │ │ ├── vs2015.css │ │ │ ├── xcode.css │ │ │ ├── xt256.css │ │ │ └── zenburn.css │ ├── lottie │ │ ├── bounching_ball.json │ │ └── code_invite_success.json │ └── md │ │ ├── github.css │ │ ├── github_dark.css │ │ ├── intercept-hash.js │ │ └── intercept-touch.js │ ├── graphql │ └── github │ │ ├── .graphqlconfig │ │ ├── PinnedRepos.graphql │ │ ├── PullRequestTimeline.graphql │ │ ├── RepoProject.graphql │ │ └── schema.graphqls │ ├── java │ └── com │ │ ├── fastaccess │ │ ├── App.kt │ │ ├── GlideModule.kt │ │ ├── data │ │ │ ├── dao │ │ │ │ ├── AccessTokenModel.kt │ │ │ │ ├── AppLanguageModel.kt │ │ │ │ ├── AssigneesRequestModel.kt │ │ │ │ ├── AuthModel.kt │ │ │ │ ├── BranchesModel.kt │ │ │ │ ├── CommentRequestModel.kt │ │ │ │ ├── CommitCountModel.kt │ │ │ │ ├── CommitFileChanges.kt │ │ │ │ ├── CommitFileListModel.kt │ │ │ │ ├── CommitFileModel.kt │ │ │ │ ├── CommitLinesModel.kt │ │ │ │ ├── CommitListModel.kt │ │ │ │ ├── CommitRequestModel.kt │ │ │ │ ├── CreateGistModel.kt │ │ │ │ ├── CreateIssueModel.kt │ │ │ │ ├── CreateMilestoneModel.kt │ │ │ │ ├── EditRepoFileModel.kt │ │ │ │ ├── EditReviewCommentModel.kt │ │ │ │ ├── FileOrTree.kt │ │ │ │ ├── FilesListModel.kt │ │ │ │ ├── FilterOptionsModel.kt │ │ │ │ ├── FirebaseTrendingConfigModel.kt │ │ │ │ ├── FragmentPagerAdapterModel.kt │ │ │ │ ├── GistHubErrorsModel.kt │ │ │ │ ├── GitCommitListModel.kt │ │ │ │ ├── GitCommitModel.kt │ │ │ │ ├── GitHubErrorResponse.kt │ │ │ │ ├── GitHubStatusModel.kt │ │ │ │ ├── GithubFileModel.kt │ │ │ │ ├── GithubState.kt │ │ │ │ ├── GithubStatusComponentModel.kt │ │ │ │ ├── GithubStatusComponentsModel.kt │ │ │ │ ├── GithubStatusPageModel.kt │ │ │ │ ├── GroupedNotificationModel.kt │ │ │ │ ├── GroupedReviewModel.kt │ │ │ │ ├── ImgurReponseModel.kt │ │ │ │ ├── IssueEventAdapterModel.kt │ │ │ │ ├── IssueRequestModel.kt │ │ │ │ ├── IssuesPageable.kt │ │ │ │ ├── LabelListModel.kt │ │ │ │ ├── LabelModel.kt │ │ │ │ ├── LanguageColorModel.kt │ │ │ │ ├── LicenseModel.kt │ │ │ │ ├── LockIssuePrModel.kt │ │ │ │ ├── MarkdownModel.kt │ │ │ │ ├── MergeRequestModel.kt │ │ │ │ ├── MergeResponseModel.kt │ │ │ │ ├── MilestoneModel.kt │ │ │ │ ├── NameParser.kt │ │ │ │ ├── NotificationSoundModel.kt │ │ │ │ ├── NotificationSubjectModel.kt │ │ │ │ ├── NotificationSubscriptionBodyModel.kt │ │ │ │ ├── Pageable.kt │ │ │ │ ├── PayloadModel.kt │ │ │ │ ├── PostReactionModel.kt │ │ │ │ ├── ProUsersModel.kt │ │ │ │ ├── ProjectCardModel.kt │ │ │ │ ├── ProjectColumnModel.kt │ │ │ │ ├── ProjectsModel.kt │ │ │ │ ├── PullRequestAdapterModel.kt │ │ │ │ ├── PullRequestStatusModel.kt │ │ │ │ ├── PullsIssuesParser.kt │ │ │ │ ├── ReactionsModel.kt │ │ │ │ ├── ReleasesAssetsListModel.kt │ │ │ │ ├── ReleasesAssetsModel.kt │ │ │ │ ├── RenameModel.kt │ │ │ │ ├── RepoPathsManager.kt │ │ │ │ ├── RepoPermissionsModel.kt │ │ │ │ ├── RepoSubscriptionModel.kt │ │ │ │ ├── ReviewCommentModel.kt │ │ │ │ ├── ReviewModel.kt │ │ │ │ ├── ReviewRequestModel.kt │ │ │ │ ├── SearchCodeModel.kt │ │ │ │ ├── SettingsModel.kt │ │ │ │ ├── SimpleUrlsModel.kt │ │ │ │ ├── SlackInvitePostModel.kt │ │ │ │ ├── SlackResponseModel.kt │ │ │ │ ├── SparseBooleanArrayParcelable.kt │ │ │ │ ├── StatusesModel.kt │ │ │ │ ├── TabsCountStateModel.kt │ │ │ │ ├── TeamsModel.kt │ │ │ │ ├── TimelineModel.kt │ │ │ │ ├── TopicsModel.kt │ │ │ │ ├── TreeResponseModel.kt │ │ │ │ ├── TrendingModel.kt │ │ │ │ ├── UsersListModel.kt │ │ │ │ ├── WikiModel.kt │ │ │ │ ├── timeline │ │ │ │ │ ├── AuthorModel.kt │ │ │ │ │ ├── CommentEvent.kt │ │ │ │ │ ├── GenericEvent.kt │ │ │ │ │ ├── ParentsModel.kt │ │ │ │ │ ├── PullRequestCommitModel.kt │ │ │ │ │ ├── PullRequestReviewModel.kt │ │ │ │ │ ├── PullRequestTimelineModel.kt │ │ │ │ │ └── SourceModel.kt │ │ │ │ ├── types │ │ │ │ │ ├── EventsType.kt │ │ │ │ │ ├── FilesType.kt │ │ │ │ │ ├── GitEntryType.kt │ │ │ │ │ ├── IssueEventType.kt │ │ │ │ │ ├── IssueState.kt │ │ │ │ │ ├── MyIssuesType.kt │ │ │ │ │ ├── NotificationReason.kt │ │ │ │ │ ├── NotificationType.kt │ │ │ │ │ ├── ReactionTypes.kt │ │ │ │ │ ├── ReviewStateType.kt │ │ │ │ │ └── StatusStateType.kt │ │ │ │ └── wiki │ │ │ │ │ ├── FirebaseWikiConfigModel.kt │ │ │ │ │ ├── WikiContentModel.kt │ │ │ │ │ └── WikiSideBarModel.kt │ │ │ ├── db │ │ │ │ └── ObjectBox.kt │ │ │ ├── entity │ │ │ │ ├── Comment.kt │ │ │ │ ├── Commit.kt │ │ │ │ ├── Event.kt │ │ │ │ ├── FastHubNotification.kt │ │ │ │ ├── Gist.kt │ │ │ │ ├── GitHubPackage.kt │ │ │ │ ├── Issue.kt │ │ │ │ ├── IssueEvent.kt │ │ │ │ ├── Login.kt │ │ │ │ ├── Notification.kt │ │ │ │ ├── NotificationQueue.kt │ │ │ │ ├── PinnedGists.kt │ │ │ │ ├── PinnedIssues.kt │ │ │ │ ├── PinnedPullRequests.kt │ │ │ │ ├── PinnedRepos.kt │ │ │ │ ├── PullRequest.kt │ │ │ │ ├── Release.kt │ │ │ │ ├── Repo.kt │ │ │ │ ├── RepoFile.kt │ │ │ │ ├── SearchHistory.kt │ │ │ │ ├── User.kt │ │ │ │ ├── ViewerFile.kt │ │ │ │ ├── converters │ │ │ │ │ ├── BaseConverter.kt │ │ │ │ │ ├── CommitConverter.kt │ │ │ │ │ ├── CommitFilesConverter.kt │ │ │ │ │ ├── CommitsConverter.kt │ │ │ │ │ ├── EventsTypeConverter.kt │ │ │ │ │ ├── FilesTypeConverter.kt │ │ │ │ │ ├── GistConverter.kt │ │ │ │ │ ├── GitCommitConverter.kt │ │ │ │ │ ├── GitHubFilesConverter.kt │ │ │ │ │ ├── GitHubPackagesConverter.kt │ │ │ │ │ ├── GitHubStateConverter.kt │ │ │ │ │ ├── IssueConverter.kt │ │ │ │ │ ├── IssueEventTypeConverter.kt │ │ │ │ │ ├── IssueStateConverter.kt │ │ │ │ │ ├── LabelConverter.kt │ │ │ │ │ ├── LabelsListConverter.kt │ │ │ │ │ ├── LicenseConverter.kt │ │ │ │ │ ├── MilestoneConverter.kt │ │ │ │ │ ├── NotificationSubjectConverter.kt │ │ │ │ │ ├── NotificationTypeConverter.kt │ │ │ │ │ ├── PayloadConverter.kt │ │ │ │ │ ├── PullRequestConverter.kt │ │ │ │ │ ├── ReactionsConverter.kt │ │ │ │ │ ├── ReleasesAssetsConverter.kt │ │ │ │ │ ├── RenameConverter.kt │ │ │ │ │ ├── RepoConverter.kt │ │ │ │ │ ├── RepoPermissionConverter.kt │ │ │ │ │ ├── TeamConverter.kt │ │ │ │ │ ├── TopicsConverter.kt │ │ │ │ │ ├── UserConverter.kt │ │ │ │ │ └── UsersConverter.kt │ │ │ │ └── dao │ │ │ │ │ ├── CommentDao.kt │ │ │ │ │ ├── CommitDao.kt │ │ │ │ │ ├── EventDao.kt │ │ │ │ │ ├── FastHubNotificationDao.kt │ │ │ │ │ ├── GistDao.kt │ │ │ │ │ ├── GitHubPackageDao.kt │ │ │ │ │ ├── IssueDao.kt │ │ │ │ │ ├── IssueEventDao.kt │ │ │ │ │ ├── LoginDao.kt │ │ │ │ │ ├── NotificationDao.kt │ │ │ │ │ ├── NotificationQueueDao.kt │ │ │ │ │ ├── PinnedGistsDao.kt │ │ │ │ │ ├── PinnedIssuesDao.kt │ │ │ │ │ ├── PinnedPullRequestsDao.kt │ │ │ │ │ ├── PinnedReposDao.kt │ │ │ │ │ ├── PullRequestDao.kt │ │ │ │ │ ├── ReleaseDao.kt │ │ │ │ │ ├── RepoDao.kt │ │ │ │ │ ├── RepoFileDao.kt │ │ │ │ │ ├── SearchHistoryDao.kt │ │ │ │ │ ├── UserDao.kt │ │ │ │ │ ├── Utils.kt │ │ │ │ │ └── ViewerFileDao.kt │ │ │ └── service │ │ │ │ ├── ContentService.kt │ │ │ │ ├── GistService.kt │ │ │ │ ├── ImgurService.kt │ │ │ │ ├── IssueService.kt │ │ │ │ ├── LoginRestService.kt │ │ │ │ ├── NotificationService.kt │ │ │ │ ├── OrganizationService.kt │ │ │ │ ├── ProjectsService.kt │ │ │ │ ├── PullRequestService.kt │ │ │ │ ├── ReactionsService.kt │ │ │ │ ├── RepoService.kt │ │ │ │ ├── ReviewService.kt │ │ │ │ ├── ScrapService.kt │ │ │ │ ├── SearchService.kt │ │ │ │ ├── SlackService.kt │ │ │ │ └── UserRestService.kt │ │ ├── exception │ │ │ └── AuthNullOrBlankException.kt │ │ ├── helper │ │ │ ├── ActivityHelper.kt │ │ │ ├── AnimHelper.kt │ │ │ ├── AppHelper.kt │ │ │ ├── BundleConstant.kt │ │ │ ├── Bundler.kt │ │ │ ├── CustomTabsHelper.kt │ │ │ ├── DeviceNameGetter.kt │ │ │ ├── FileHelper.kt │ │ │ ├── GithubConfigHelper.kt │ │ │ ├── InputHelper.kt │ │ │ ├── Logger.kt │ │ │ ├── ObjectsCompat.kt │ │ │ ├── ParcelableHelper.kt │ │ │ ├── ParseDateFormat.kt │ │ │ ├── PrefGetter.kt │ │ │ ├── PrefHelper.kt │ │ │ ├── RxHelper.kt │ │ │ ├── SettingsDataStore.kt │ │ │ ├── TypeFaceHelper.kt │ │ │ └── ViewHelper.kt │ │ ├── provider │ │ │ ├── colors │ │ │ │ └── ColorsProvider.kt │ │ │ ├── crash │ │ │ │ └── Report.kt │ │ │ ├── emoji │ │ │ │ ├── Emoji.kt │ │ │ │ ├── EmojiLoader.kt │ │ │ │ ├── EmojiManager.kt │ │ │ │ ├── EmojiParser.kt │ │ │ │ ├── EmojiTrie.kt │ │ │ │ └── Fitzpatrick.kt │ │ │ ├── gson │ │ │ │ └── ToGsonProvider.kt │ │ │ ├── markdown │ │ │ │ ├── CachedComments.kt │ │ │ │ ├── MarkDownProvider.kt │ │ │ │ └── extension │ │ │ │ │ ├── emoji │ │ │ │ │ ├── Emoji.kt │ │ │ │ │ ├── EmojiExtension.kt │ │ │ │ │ └── internal │ │ │ │ │ │ ├── EmojiDelimiterProcessor.kt │ │ │ │ │ │ └── EmojiNodeRenderer.kt │ │ │ │ │ └── mention │ │ │ │ │ ├── Mention.kt │ │ │ │ │ ├── MentionExtension.kt │ │ │ │ │ └── internal │ │ │ │ │ ├── MentionDelimiterProcessor.kt │ │ │ │ │ └── MentionNodeRenderer.kt │ │ │ ├── rest │ │ │ │ ├── ApolloProvider.kt │ │ │ │ ├── DownloadProvider.kt │ │ │ │ ├── HttpProvider.kt │ │ │ │ ├── ImgurProvider.kt │ │ │ │ ├── LoginProvider.kt │ │ │ │ ├── RepoQueryProvider.kt │ │ │ │ ├── RestProvider.kt │ │ │ │ ├── converters │ │ │ │ │ └── GithubResponseConverter.kt │ │ │ │ ├── interceptors │ │ │ │ │ ├── AuthenticationInterceptor.kt │ │ │ │ │ ├── ContentTypeInterceptor.kt │ │ │ │ │ └── PaginationInterceptor.kt │ │ │ │ ├── jsoup │ │ │ │ │ └── JsoupProvider.kt │ │ │ │ └── loadmore │ │ │ │ │ └── OnLoadMore.kt │ │ │ ├── scheme │ │ │ │ ├── LinkParserHelper.kt │ │ │ │ └── SchemeParser.kt │ │ │ ├── tasks │ │ │ │ ├── git │ │ │ │ │ ├── GithubActionService.kt │ │ │ │ │ └── ReactionService.kt │ │ │ │ ├── notification │ │ │ │ │ ├── NotificationSchedulerJobTask.kt │ │ │ │ │ └── ReadNotificationService.kt │ │ │ │ └── version │ │ │ │ │ └── CheckVersionService.kt │ │ │ ├── theme │ │ │ │ └── ThemeEngine.kt │ │ │ └── timeline │ │ │ │ ├── CommentsHelper.kt │ │ │ │ ├── HtmlHelper.kt │ │ │ │ ├── ReactionsProvider.kt │ │ │ │ ├── TimelineConverter.kt │ │ │ │ ├── TimelineProvider.kt │ │ │ │ └── handler │ │ │ │ ├── BetterLinkMovementExtended.kt │ │ │ │ ├── CodeBackgroundRoundedSpan.kt │ │ │ │ ├── DrawableHandler.kt │ │ │ │ ├── EmojiHandler.kt │ │ │ │ ├── HeaderHandler.kt │ │ │ │ ├── HrHandler.kt │ │ │ │ ├── HrSpan.kt │ │ │ │ ├── ItalicHandler.kt │ │ │ │ ├── LinkHandler.kt │ │ │ │ ├── ListsHandler.kt │ │ │ │ ├── MarginHandler.kt │ │ │ │ ├── PreTagHandler.kt │ │ │ │ ├── QuoteHandler.kt │ │ │ │ ├── StrikethroughHandler.kt │ │ │ │ ├── SubScriptHandler.kt │ │ │ │ ├── SuperScriptHandler.kt │ │ │ │ ├── TableHandler.kt │ │ │ │ ├── UnderlineHandler.kt │ │ │ │ └── drawable │ │ │ │ ├── DrawableGetter.kt │ │ │ │ ├── GlideDrawableTarget.kt │ │ │ │ └── UrlDrawable.kt │ │ ├── ui │ │ │ ├── adapter │ │ │ │ ├── AssigneesAdapter.kt │ │ │ │ ├── BranchesAdapter.kt │ │ │ │ ├── ColumnCardAdapter.kt │ │ │ │ ├── CommentsAdapter.kt │ │ │ │ ├── CommitCommentsAdapter.kt │ │ │ │ ├── CommitFilesAdapter.kt │ │ │ │ ├── CommitLinesAdapter.kt │ │ │ │ ├── CommitsAdapter.kt │ │ │ │ ├── EmojiAdapter.kt │ │ │ │ ├── FastHubNotificationsAdapter.kt │ │ │ │ ├── FeedsAdapter.kt │ │ │ │ ├── FragmentsPagerAdapter.kt │ │ │ │ ├── GistFilesAdapter.kt │ │ │ │ ├── GistsAdapter.kt │ │ │ │ ├── IssuesAdapter.kt │ │ │ │ ├── IssuesTimelineAdapter.kt │ │ │ │ ├── LabelColorsAdapter.kt │ │ │ │ ├── LabelsAdapter.kt │ │ │ │ ├── LoginAdapter.kt │ │ │ │ ├── MilestonesAdapter.kt │ │ │ │ ├── NotificationsAdapter.kt │ │ │ │ ├── PackagesAdapter.kt │ │ │ │ ├── PinnedReposAdapter.kt │ │ │ │ ├── ProfileOrgsAdapter.kt │ │ │ │ ├── ProfilePinnedReposAdapter.kt │ │ │ │ ├── ProjectsAdapter.kt │ │ │ │ ├── PullRequestAdapter.kt │ │ │ │ ├── ReleasesAdapter.kt │ │ │ │ ├── RepoFilePathsAdapter.kt │ │ │ │ ├── RepoFilesAdapter.kt │ │ │ │ ├── ReposAdapter.kt │ │ │ │ ├── ReviewCommentsAdapter.kt │ │ │ │ ├── SearchCodeAdapter.kt │ │ │ │ ├── SettingsAdapter.kt │ │ │ │ ├── SimpleListAdapter.kt │ │ │ │ ├── SpinnerAdapter.kt │ │ │ │ ├── TeamsAdapter.kt │ │ │ │ ├── TopicsAdapter.kt │ │ │ │ ├── TrendingAdapter.kt │ │ │ │ ├── UsersAdapter.kt │ │ │ │ ├── callback │ │ │ │ │ ├── OnToggleView.kt │ │ │ │ │ └── ReactionsCallback.kt │ │ │ │ └── viewholder │ │ │ │ │ ├── AssigneesViewHolder.kt │ │ │ │ │ ├── ColumnCardViewHolder.kt │ │ │ │ │ ├── CommentsViewHolder.kt │ │ │ │ │ ├── CommitCommentsViewHolder.kt │ │ │ │ │ ├── CommitLinesViewHolder.kt │ │ │ │ │ ├── CommitThreadViewHolder.kt │ │ │ │ │ ├── CommitsViewHolder.kt │ │ │ │ │ ├── EmojiViewHolder.kt │ │ │ │ │ ├── FastHubNotificationViewHolder.kt │ │ │ │ │ ├── FeedsViewHolder.kt │ │ │ │ │ ├── GistFilesViewHolder.kt │ │ │ │ │ ├── GistsViewHolder.kt │ │ │ │ │ ├── GroupedReviewsViewHolder.kt │ │ │ │ │ ├── IssueDetailsViewHolder.kt │ │ │ │ │ ├── IssueTimelineViewHolder.kt │ │ │ │ │ ├── IssuesViewHolder.kt │ │ │ │ │ ├── LabelColorsViewHolder.kt │ │ │ │ │ ├── LabelsViewHolder.kt │ │ │ │ │ ├── LoginViewHolder.kt │ │ │ │ │ ├── MilestonesViewHolder.kt │ │ │ │ │ ├── NotificationsHeaderViewHolder.kt │ │ │ │ │ ├── NotificationsViewHolder.kt │ │ │ │ │ ├── PackagesViewHolder.kt │ │ │ │ │ ├── PinnedReposViewHolder.kt │ │ │ │ │ ├── ProfileOrgsViewHolder.kt │ │ │ │ │ ├── ProfilePinnedReposViewHolder.kt │ │ │ │ │ ├── ProjectViewHolder.kt │ │ │ │ │ ├── PullRequestEventViewHolder.kt │ │ │ │ │ ├── PullRequestFilesViewHolder.kt │ │ │ │ │ ├── PullRequestViewHolder.kt │ │ │ │ │ ├── PullStatusViewHolder.kt │ │ │ │ │ ├── ReleasesViewHolder.kt │ │ │ │ │ ├── RepoFilePathsViewHolder.kt │ │ │ │ │ ├── RepoFilesViewHolder.kt │ │ │ │ │ ├── ReposViewHolder.kt │ │ │ │ │ ├── ReviewCommentsViewHolder.kt │ │ │ │ │ ├── ReviewsViewHolder.kt │ │ │ │ │ ├── SearchCodeViewHolder.kt │ │ │ │ │ ├── SimpleViewHolder.kt │ │ │ │ │ ├── TeamsViewHolder.kt │ │ │ │ │ ├── TimelineCommentsViewHolder.kt │ │ │ │ │ ├── TrendingViewHolder.kt │ │ │ │ │ ├── UnknownTypeViewHolder.kt │ │ │ │ │ └── UsersViewHolder.kt │ │ │ ├── base │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── BaseBottomSheetDialog.kt │ │ │ │ ├── BaseDialogFragment.kt │ │ │ │ ├── BaseFragment.kt │ │ │ │ ├── BaseMvpBottomSheetDialogFragment.kt │ │ │ │ ├── MainNavDrawer.kt │ │ │ │ ├── adapter │ │ │ │ │ ├── BaseRecyclerAdapter.kt │ │ │ │ │ └── BaseViewHolder.kt │ │ │ │ └── mvp │ │ │ │ │ ├── BaseMvp.kt │ │ │ │ │ └── presenter │ │ │ │ │ ├── BasePresenter.kt │ │ │ │ │ └── EmptyPresenter.kt │ │ │ ├── delegate │ │ │ │ ├── ActivityViewBindingDelegate.kt │ │ │ │ ├── FragmentViewBindingDelegate.kt │ │ │ │ └── FragmentViewFindDelegate.kt │ │ │ ├── modules │ │ │ │ ├── about │ │ │ │ │ ├── CommonLibsActivity.kt │ │ │ │ │ └── FastHubAboutActivity.kt │ │ │ │ ├── changelog │ │ │ │ │ ├── ChangelogBottomSheetDialog.kt │ │ │ │ │ ├── ChangelogMvp.kt │ │ │ │ │ └── ChangelogPresenter.kt │ │ │ │ ├── code │ │ │ │ │ └── CodeViewerActivity.kt │ │ │ │ ├── editor │ │ │ │ │ ├── EditorActivity.kt │ │ │ │ │ ├── EditorMvp.kt │ │ │ │ │ ├── EditorPresenter.kt │ │ │ │ │ ├── comment │ │ │ │ │ │ └── CommentEditorFragment.kt │ │ │ │ │ ├── emoji │ │ │ │ │ │ ├── EmojiBottomSheet.kt │ │ │ │ │ │ ├── EmojiMvp.kt │ │ │ │ │ │ └── EmojiPresenter.kt │ │ │ │ │ └── popup │ │ │ │ │ │ ├── EditorLinkImageDialogFragment.kt │ │ │ │ │ │ ├── EditorLinkImageMvp.kt │ │ │ │ │ │ └── EditorLinkImagePresenter.kt │ │ │ │ ├── feeds │ │ │ │ │ ├── FeedsFragment.kt │ │ │ │ │ ├── FeedsMvp.kt │ │ │ │ │ └── FeedsPresenter.kt │ │ │ │ ├── filter │ │ │ │ │ ├── chooser │ │ │ │ │ │ ├── FilterAddChooserListener.kt │ │ │ │ │ │ └── FilterChooserBottomSheetDialog.kt │ │ │ │ │ └── issues │ │ │ │ │ │ ├── FilterIssuesActivity.kt │ │ │ │ │ │ ├── FilterIssuesActivityMvp.kt │ │ │ │ │ │ ├── FilterIssuesActivityPresenter.kt │ │ │ │ │ │ └── fragment │ │ │ │ │ │ ├── FilterIssueFragment.kt │ │ │ │ │ │ ├── FilterIssuePresenter.kt │ │ │ │ │ │ └── FilterIssuesMvp.kt │ │ │ │ ├── gists │ │ │ │ │ ├── GistsFragment.kt │ │ │ │ │ ├── GistsListActivity.kt │ │ │ │ │ ├── GistsMvp.kt │ │ │ │ │ ├── GistsPresenter.kt │ │ │ │ │ ├── create │ │ │ │ │ │ ├── CreateGistActivity.kt │ │ │ │ │ │ ├── CreateGistMvp.kt │ │ │ │ │ │ ├── CreateGistPresenter.kt │ │ │ │ │ │ └── dialog │ │ │ │ │ │ │ ├── AddGistBottomSheetDialog.kt │ │ │ │ │ │ │ ├── AddGistMvp.kt │ │ │ │ │ │ │ └── AddGistPresenter.kt │ │ │ │ │ ├── gist │ │ │ │ │ │ ├── GistActivity.kt │ │ │ │ │ │ ├── GistFragmentHelper.kt │ │ │ │ │ │ ├── GistMvp.kt │ │ │ │ │ │ ├── GistPresenter.kt │ │ │ │ │ │ ├── comments │ │ │ │ │ │ │ ├── GistCommentsFragment.kt │ │ │ │ │ │ │ ├── GistCommentsMvp.kt │ │ │ │ │ │ │ └── GistCommentsPresenter.kt │ │ │ │ │ │ └── files │ │ │ │ │ │ │ ├── GistFilesListFragment.kt │ │ │ │ │ │ │ ├── GistFilesListMvp.kt │ │ │ │ │ │ │ └── GistFilesListPresenter.kt │ │ │ │ │ └── starred │ │ │ │ │ │ ├── StarredGistsFragment.kt │ │ │ │ │ │ ├── StarredGistsMvp.kt │ │ │ │ │ │ └── StarredGistsPresenter.kt │ │ │ │ ├── login │ │ │ │ │ ├── LoginActivity.kt │ │ │ │ │ ├── LoginMvp.kt │ │ │ │ │ ├── LoginPresenter.kt │ │ │ │ │ └── chooser │ │ │ │ │ │ ├── LoginChooserActivity.kt │ │ │ │ │ │ ├── LoginChooserMvp.kt │ │ │ │ │ │ └── LoginChooserPresenter.kt │ │ │ │ ├── main │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ ├── MainMvp.kt │ │ │ │ │ ├── MainPresenter.kt │ │ │ │ │ ├── donation │ │ │ │ │ │ └── DonationActivity.kt │ │ │ │ │ ├── drawer │ │ │ │ │ │ ├── AccountDrawerFragment.kt │ │ │ │ │ │ └── MainDrawerFragment.kt │ │ │ │ │ ├── faq │ │ │ │ │ │ └── FaqActivity.kt │ │ │ │ │ ├── issues │ │ │ │ │ │ ├── MyIssuesFragment.kt │ │ │ │ │ │ ├── MyIssuesMvp.kt │ │ │ │ │ │ ├── MyIssuesPresenter.kt │ │ │ │ │ │ └── pager │ │ │ │ │ │ │ ├── MyIssuesPagerFragment.kt │ │ │ │ │ │ │ ├── MyIssuesPagerMvp.kt │ │ │ │ │ │ │ └── MyIssuesPagerPresenter.kt │ │ │ │ │ ├── notifications │ │ │ │ │ │ └── FastHubNotificationDialog.kt │ │ │ │ │ ├── orgs │ │ │ │ │ │ ├── OrgListDialogFragment.kt │ │ │ │ │ │ ├── OrgListDialogMvp.kt │ │ │ │ │ │ └── OrgListDialogPresenter.kt │ │ │ │ │ ├── premium │ │ │ │ │ │ ├── PremiumActivity.kt │ │ │ │ │ │ └── PremiumMvp.kt │ │ │ │ │ └── pullrequests │ │ │ │ │ │ ├── MyPullRequestFragment.kt │ │ │ │ │ │ ├── MyPullRequestsMvp.kt │ │ │ │ │ │ ├── MyPullRequestsPresenter.kt │ │ │ │ │ │ └── pager │ │ │ │ │ │ ├── MyPullsPagerFragment.kt │ │ │ │ │ │ ├── MyPullsPagerMvp.kt │ │ │ │ │ │ └── MyPullsPagerPresenter.kt │ │ │ │ ├── notification │ │ │ │ │ ├── NotificationActivity.kt │ │ │ │ │ ├── all │ │ │ │ │ │ ├── AllNotificationsFragment.kt │ │ │ │ │ │ ├── AllNotificationsMvp.kt │ │ │ │ │ │ └── AllNotificationsPresenter.kt │ │ │ │ │ ├── callback │ │ │ │ │ │ └── OnNotificationChangedListener.kt │ │ │ │ │ ├── fasthub │ │ │ │ │ │ ├── FastHubNotificationsFragment.kt │ │ │ │ │ │ ├── FastHubNotificationsMvp.kt │ │ │ │ │ │ └── FastHubNotificationsPresenter.kt │ │ │ │ │ └── unread │ │ │ │ │ │ ├── UnreadNotificationMvp.kt │ │ │ │ │ │ ├── UnreadNotificationsFragment.kt │ │ │ │ │ │ └── UnreadNotificationsPresenter.kt │ │ │ │ ├── parser │ │ │ │ │ └── LinksParserActivity.kt │ │ │ │ ├── pinned │ │ │ │ │ ├── PinnedReposActivity.kt │ │ │ │ │ ├── gist │ │ │ │ │ │ ├── PinnedGistFragment.kt │ │ │ │ │ │ ├── PinnedGistMvp.kt │ │ │ │ │ │ └── PinnedGistPresenter.kt │ │ │ │ │ ├── issue │ │ │ │ │ │ ├── PinnedIssueFragment.kt │ │ │ │ │ │ ├── PinnedIssueMvp.kt │ │ │ │ │ │ └── PinnedIssuePresenter.kt │ │ │ │ │ ├── pullrequest │ │ │ │ │ │ ├── PinnedPullRequestFragment.kt │ │ │ │ │ │ ├── PinnedPullRequestMvp.kt │ │ │ │ │ │ └── PinnedPullRequestPresenter.kt │ │ │ │ │ └── repo │ │ │ │ │ │ ├── PinnedReposFragment.kt │ │ │ │ │ │ ├── PinnedReposMvp.kt │ │ │ │ │ │ └── PinnedReposPresenter.kt │ │ │ │ ├── profile │ │ │ │ │ ├── ProfilePagerFragment.kt │ │ │ │ │ ├── ProfilePagerMvp.kt │ │ │ │ │ ├── ProfilePagerPresenter.kt │ │ │ │ │ ├── followers │ │ │ │ │ │ ├── ProfileFollowersFragment.kt │ │ │ │ │ │ ├── ProfileFollowersMvp.kt │ │ │ │ │ │ └── ProfileFollowersPresenter.kt │ │ │ │ │ ├── following │ │ │ │ │ │ ├── ProfileFollowingFragment.kt │ │ │ │ │ │ ├── ProfileFollowingMvp.kt │ │ │ │ │ │ └── ProfileFollowingPresenter.kt │ │ │ │ │ ├── gists │ │ │ │ │ │ ├── ProfileGistsFragment.kt │ │ │ │ │ │ ├── ProfileGistsMvp.kt │ │ │ │ │ │ └── ProfileGistsPresenter.kt │ │ │ │ │ ├── org │ │ │ │ │ │ ├── OrgProfileOverviewFragment.kt │ │ │ │ │ │ ├── OrgProfileOverviewMvp.kt │ │ │ │ │ │ ├── OrgProfileOverviewPresenter.kt │ │ │ │ │ │ ├── members │ │ │ │ │ │ │ ├── OrgMembersFragment.kt │ │ │ │ │ │ │ ├── OrgMembersMvp.kt │ │ │ │ │ │ │ └── OrgMembersPresenter.kt │ │ │ │ │ │ ├── project │ │ │ │ │ │ │ └── OrgProjectActivity.kt │ │ │ │ │ │ ├── repos │ │ │ │ │ │ │ ├── OrgReposFragment.kt │ │ │ │ │ │ │ ├── OrgReposMvp.kt │ │ │ │ │ │ │ └── OrgReposPresenter.kt │ │ │ │ │ │ └── teams │ │ │ │ │ │ │ ├── OrgTeamFragment.kt │ │ │ │ │ │ │ ├── OrgTeamMvp.kt │ │ │ │ │ │ │ ├── OrgTeamPresenter.kt │ │ │ │ │ │ │ └── details │ │ │ │ │ │ │ ├── TeamPagerActivity.kt │ │ │ │ │ │ │ ├── members │ │ │ │ │ │ │ ├── TeamMembersFragment.kt │ │ │ │ │ │ │ ├── TeamMembersMvp.kt │ │ │ │ │ │ │ └── TeamMembersPresenter.kt │ │ │ │ │ │ │ └── repos │ │ │ │ │ │ │ ├── TeamReposFragment.kt │ │ │ │ │ │ │ ├── TeamReposMvp.kt │ │ │ │ │ │ │ └── TeamReposPresenter.kt │ │ │ │ │ ├── overview │ │ │ │ │ │ ├── ProfileOverviewFragment.kt │ │ │ │ │ │ ├── ProfileOverviewMvp.kt │ │ │ │ │ │ └── ProfileOverviewPresenter.kt │ │ │ │ │ ├── packages │ │ │ │ │ │ ├── ProfilePackagesFragment.kt │ │ │ │ │ │ ├── ProfilePackagesMvp.kt │ │ │ │ │ │ └── ProfilePackagesPresenter.kt │ │ │ │ │ ├── repos │ │ │ │ │ │ ├── ProfileReposFilterBottomSheetDialog.kt │ │ │ │ │ │ ├── ProfileReposFragment.kt │ │ │ │ │ │ ├── ProfileReposMvp.kt │ │ │ │ │ │ └── ProfileReposPresenter.kt │ │ │ │ │ └── starred │ │ │ │ │ │ ├── ProfileStarredFragment.kt │ │ │ │ │ │ ├── ProfileStarredMvp.kt │ │ │ │ │ │ └── ProfileStarredPresenter.kt │ │ │ │ ├── repos │ │ │ │ │ ├── DummyFragment.kt │ │ │ │ │ ├── RepoPagerActivity.kt │ │ │ │ │ ├── RepoPagerMvp.kt │ │ │ │ │ ├── RepoPagerPresenter.kt │ │ │ │ │ ├── code │ │ │ │ │ │ ├── RepoCodePagerFragment.kt │ │ │ │ │ │ ├── RepoCodePagerMvp.kt │ │ │ │ │ │ ├── RepoCodePagerPresenter.kt │ │ │ │ │ │ ├── commit │ │ │ │ │ │ │ ├── RepoCommitsFragment.kt │ │ │ │ │ │ │ ├── RepoCommitsMvp.kt │ │ │ │ │ │ │ ├── RepoCommitsPresenter.kt │ │ │ │ │ │ │ ├── details │ │ │ │ │ │ │ │ ├── CommitPagerActivity.kt │ │ │ │ │ │ │ │ ├── CommitPagerMvp.kt │ │ │ │ │ │ │ │ ├── CommitPagerPresenter.kt │ │ │ │ │ │ │ │ ├── comments │ │ │ │ │ │ │ │ │ ├── CommitCommentsFragment.kt │ │ │ │ │ │ │ │ │ ├── CommitCommentsMvp.kt │ │ │ │ │ │ │ │ │ └── CommitCommentsPresenter.kt │ │ │ │ │ │ │ │ └── files │ │ │ │ │ │ │ │ │ ├── CommitFilesFragment.kt │ │ │ │ │ │ │ │ │ ├── CommitFilesMvp.kt │ │ │ │ │ │ │ │ │ ├── CommitFilesPresenter.kt │ │ │ │ │ │ │ │ │ └── CommitFilesSingleton.kt │ │ │ │ │ │ │ ├── history │ │ │ │ │ │ │ │ └── FileCommitHistoryActivity.kt │ │ │ │ │ │ │ └── viewer │ │ │ │ │ │ │ │ └── FullCommitFileActivity.kt │ │ │ │ │ │ ├── contributors │ │ │ │ │ │ │ ├── RepoContributorsFragment.kt │ │ │ │ │ │ │ ├── RepoContributorsMvp.kt │ │ │ │ │ │ │ ├── RepoContributorsPresenter.kt │ │ │ │ │ │ │ └── graph │ │ │ │ │ │ │ │ ├── GraphContributorsFragment.kt │ │ │ │ │ │ │ │ ├── model │ │ │ │ │ │ │ │ └── GraphStatModel.kt │ │ │ │ │ │ │ │ └── viewcomponent │ │ │ │ │ │ │ │ └── GraphView.kt │ │ │ │ │ │ ├── files │ │ │ │ │ │ │ ├── RepoFilesFragment.kt │ │ │ │ │ │ │ ├── RepoFilesMvp.kt │ │ │ │ │ │ │ ├── RepoFilesPresenter.kt │ │ │ │ │ │ │ ├── activity │ │ │ │ │ │ │ │ └── RepoFilesActivity.kt │ │ │ │ │ │ │ └── paths │ │ │ │ │ │ │ │ ├── RepoFilePathFragment.kt │ │ │ │ │ │ │ │ ├── RepoFilePathMvp.kt │ │ │ │ │ │ │ │ └── RepoFilePathPresenter.kt │ │ │ │ │ │ ├── prettifier │ │ │ │ │ │ │ ├── ViewerFragment.kt │ │ │ │ │ │ │ ├── ViewerMvp.kt │ │ │ │ │ │ │ └── ViewerPresenter.kt │ │ │ │ │ │ └── releases │ │ │ │ │ │ │ ├── ReleasesListActivity.kt │ │ │ │ │ │ │ ├── RepoReleasesFragment.kt │ │ │ │ │ │ │ ├── RepoReleasesMvp.kt │ │ │ │ │ │ │ └── RepoReleasesPresenter.kt │ │ │ │ │ ├── extras │ │ │ │ │ │ ├── assignees │ │ │ │ │ │ │ ├── AssigneesDialogFragment.kt │ │ │ │ │ │ │ ├── AssigneesMvp.kt │ │ │ │ │ │ │ └── AssigneesPresenter.kt │ │ │ │ │ │ ├── branches │ │ │ │ │ │ │ ├── BranchesFragment.kt │ │ │ │ │ │ │ ├── BranchesMvp.kt │ │ │ │ │ │ │ ├── BranchesPresenter.kt │ │ │ │ │ │ │ └── pager │ │ │ │ │ │ │ │ ├── BranchesPagerFragment.kt │ │ │ │ │ │ │ │ └── BranchesPagerListener.kt │ │ │ │ │ │ ├── labels │ │ │ │ │ │ │ ├── LabelsDialogFragment.kt │ │ │ │ │ │ │ ├── LabelsMvp.kt │ │ │ │ │ │ │ ├── LabelsPresenter.kt │ │ │ │ │ │ │ └── create │ │ │ │ │ │ │ │ ├── CreateLabelDialogFragment.kt │ │ │ │ │ │ │ │ ├── CreateLabelMvp.kt │ │ │ │ │ │ │ │ └── CreateLabelPresenter.kt │ │ │ │ │ │ ├── license │ │ │ │ │ │ │ ├── RepoLicenseBottomSheet.kt │ │ │ │ │ │ │ ├── RepoLicenseMvp.kt │ │ │ │ │ │ │ └── RepoLicensePresenter.kt │ │ │ │ │ │ ├── locking │ │ │ │ │ │ │ ├── LockIssuePrBottomSheetDialog.kt │ │ │ │ │ │ │ └── LockIssuePrCallback.kt │ │ │ │ │ │ ├── milestone │ │ │ │ │ │ │ ├── MilestoneDialogFragment.kt │ │ │ │ │ │ │ ├── MilestoneMvp.kt │ │ │ │ │ │ │ ├── MilestonePresenter.kt │ │ │ │ │ │ │ └── create │ │ │ │ │ │ │ │ ├── CreateMilestoneDialogFragment.kt │ │ │ │ │ │ │ │ ├── CreateMilestoneMvp.kt │ │ │ │ │ │ │ │ ├── CreateMilestonePresenter.kt │ │ │ │ │ │ │ │ └── MilestoneDialogFragment.kt │ │ │ │ │ │ ├── misc │ │ │ │ │ │ │ ├── RepoMiscDialogFragment.kt │ │ │ │ │ │ │ ├── RepoMiscMvp.kt │ │ │ │ │ │ │ └── RepoMiscPresenter.kt │ │ │ │ │ │ └── popup │ │ │ │ │ │ │ ├── IssuePopupFragment.kt │ │ │ │ │ │ │ ├── IssuePopupMvp.kt │ │ │ │ │ │ │ └── IssuePopupPresenter.kt │ │ │ │ │ ├── git │ │ │ │ │ │ ├── EditRepoFileActivity.kt │ │ │ │ │ │ ├── EditRepoFileMvp.kt │ │ │ │ │ │ ├── EditRepoFilePresenter.kt │ │ │ │ │ │ └── delete │ │ │ │ │ │ │ ├── DeleteContentFileCallback.kt │ │ │ │ │ │ │ └── DeleteFileBottomSheetFragment.kt │ │ │ │ │ ├── issues │ │ │ │ │ │ ├── RepoIssuesPagerFragment.kt │ │ │ │ │ │ ├── RepoIssuesPagerMvp.kt │ │ │ │ │ │ ├── RepoIssuesPagerPresenter.kt │ │ │ │ │ │ ├── create │ │ │ │ │ │ │ ├── CreateIssueActivity.kt │ │ │ │ │ │ │ ├── CreateIssueMvp.kt │ │ │ │ │ │ │ └── CreateIssuePresenter.kt │ │ │ │ │ │ └── issue │ │ │ │ │ │ │ ├── RepoClosedIssuesFragment.kt │ │ │ │ │ │ │ ├── RepoIssuesMvp.kt │ │ │ │ │ │ │ ├── RepoIssuesPresenter.kt │ │ │ │ │ │ │ ├── RepoOpenedIssuesFragment.kt │ │ │ │ │ │ │ └── details │ │ │ │ │ │ │ ├── IssuePagerActivity.kt │ │ │ │ │ │ │ ├── IssuePagerMvp.kt │ │ │ │ │ │ │ ├── IssuePagerPresenter.kt │ │ │ │ │ │ │ └── timeline │ │ │ │ │ │ │ ├── IssueTimelineFragment.kt │ │ │ │ │ │ │ ├── IssueTimelineMvp.kt │ │ │ │ │ │ │ └── IssueTimelinePresenter.kt │ │ │ │ │ ├── projects │ │ │ │ │ │ ├── RepoProjectsFragmentPager.kt │ │ │ │ │ │ ├── columns │ │ │ │ │ │ │ ├── ProjectColumnFragment.kt │ │ │ │ │ │ │ ├── ProjectColumnMvp.kt │ │ │ │ │ │ │ └── ProjectColumnPresenter.kt │ │ │ │ │ │ ├── crud │ │ │ │ │ │ │ └── ProjectCurdDialogFragment.kt │ │ │ │ │ │ ├── details │ │ │ │ │ │ │ ├── ProjectPagerActivity.kt │ │ │ │ │ │ │ ├── ProjectPagerMvp.kt │ │ │ │ │ │ │ └── ProjectPagerPresenter.kt │ │ │ │ │ │ └── list │ │ │ │ │ │ │ ├── RepoProjectFragment.kt │ │ │ │ │ │ │ ├── RepoProjectMvp.kt │ │ │ │ │ │ │ └── RepoProjectPresenter.kt │ │ │ │ │ ├── pull_requests │ │ │ │ │ │ ├── RepoPullRequestPagerFragment.kt │ │ │ │ │ │ ├── RepoPullRequestPagerMvp.kt │ │ │ │ │ │ ├── RepoPullRequestPagerPresenter.kt │ │ │ │ │ │ └── pull_request │ │ │ │ │ │ │ ├── RepoPullRequestFragment.kt │ │ │ │ │ │ │ ├── RepoPullRequestMvp.kt │ │ │ │ │ │ │ ├── RepoPullRequestPresenter.kt │ │ │ │ │ │ │ ├── details │ │ │ │ │ │ │ ├── PullRequestPagerActivity.kt │ │ │ │ │ │ │ ├── PullRequestPagerMvp.kt │ │ │ │ │ │ │ ├── PullRequestPagerPresenter.kt │ │ │ │ │ │ │ ├── commits │ │ │ │ │ │ │ │ ├── PullRequestCommitsFragment.kt │ │ │ │ │ │ │ │ ├── PullRequestCommitsMvp.kt │ │ │ │ │ │ │ │ └── PullRequestCommitsPresenter.kt │ │ │ │ │ │ │ ├── files │ │ │ │ │ │ │ │ ├── PullRequestFilesFragment.kt │ │ │ │ │ │ │ │ ├── PullRequestFilesMvp.kt │ │ │ │ │ │ │ │ ├── PullRequestFilesPresenter.kt │ │ │ │ │ │ │ │ └── fullscreen │ │ │ │ │ │ │ │ │ ├── FullScreenFileChangeActivity.kt │ │ │ │ │ │ │ │ │ ├── FullScreenFileChangeMvp.kt │ │ │ │ │ │ │ │ │ └── FullScreenFileChangePresenter.kt │ │ │ │ │ │ │ └── timeline │ │ │ │ │ │ │ │ └── timeline │ │ │ │ │ │ │ │ ├── PullRequestTimelineFragment.kt │ │ │ │ │ │ │ │ ├── PullRequestTimelineMvp.kt │ │ │ │ │ │ │ │ └── PullRequestTimelinePresenter.kt │ │ │ │ │ │ │ └── merge │ │ │ │ │ │ │ ├── MergePullRequestDialogFragment.kt │ │ │ │ │ │ │ ├── MergePullRequestMvp.kt │ │ │ │ │ │ │ └── MergePullRequestPresenter.kt │ │ │ │ │ ├── reactions │ │ │ │ │ │ ├── ReactionsDialogFragment.kt │ │ │ │ │ │ ├── ReactionsDialogMvp.kt │ │ │ │ │ │ └── ReactionsDialogPresenter.kt │ │ │ │ │ └── wiki │ │ │ │ │ │ ├── WikiActivity.kt │ │ │ │ │ │ ├── WikiMvp.kt │ │ │ │ │ │ └── WikiPresenter.kt │ │ │ │ ├── reviews │ │ │ │ │ ├── AddReviewDialogFragment.kt │ │ │ │ │ ├── callback │ │ │ │ │ │ └── ReviewCommentListener.kt │ │ │ │ │ └── changes │ │ │ │ │ │ ├── ReviewChangesFragment.kt │ │ │ │ │ │ ├── ReviewChangesMvp.kt │ │ │ │ │ │ └── ReviewChangesPresenter.kt │ │ │ │ ├── search │ │ │ │ │ ├── SearchActivity.kt │ │ │ │ │ ├── SearchMvp.kt │ │ │ │ │ ├── SearchPresenter.kt │ │ │ │ │ ├── SearchUserActivity.kt │ │ │ │ │ ├── code │ │ │ │ │ │ ├── SearchCodeFragment.kt │ │ │ │ │ │ ├── SearchCodeMvp.kt │ │ │ │ │ │ └── SearchCodePresenter.kt │ │ │ │ │ ├── issues │ │ │ │ │ │ ├── SearchIssuesFragment.kt │ │ │ │ │ │ ├── SearchIssuesMvp.kt │ │ │ │ │ │ └── SearchIssuesPresenter.kt │ │ │ │ │ ├── repos │ │ │ │ │ │ ├── SearchReposFragment.kt │ │ │ │ │ │ ├── SearchReposMvp.kt │ │ │ │ │ │ ├── SearchReposPresenter.kt │ │ │ │ │ │ └── files │ │ │ │ │ │ │ ├── SearchFileActivity.kt │ │ │ │ │ │ │ ├── SearchFileMvp.kt │ │ │ │ │ │ │ └── SearchFilePresenter.kt │ │ │ │ │ └── users │ │ │ │ │ │ ├── SearchUsersFragment.kt │ │ │ │ │ │ ├── SearchUsersMvp.kt │ │ │ │ │ │ └── SearchUsersPresenter.kt │ │ │ │ ├── settings │ │ │ │ │ ├── LanguageBottomSheetDialog.kt │ │ │ │ │ ├── SettingsActivity.kt │ │ │ │ │ ├── SlackBottomSheetDialog.kt │ │ │ │ │ ├── category │ │ │ │ │ │ ├── SettingsCategoryActivity.kt │ │ │ │ │ │ ├── SettingsCategoryFragment.kt │ │ │ │ │ │ └── SettingsCategoryPresenter.kt │ │ │ │ │ └── sound │ │ │ │ │ │ ├── NotificationSoundBottomSheet.kt │ │ │ │ │ │ ├── NotificationSoundMvp.kt │ │ │ │ │ │ └── NotificationSoundPresenter.kt │ │ │ │ ├── theme │ │ │ │ │ ├── ThemeActivity.kt │ │ │ │ │ ├── code │ │ │ │ │ │ ├── ThemeCodeActivity.kt │ │ │ │ │ │ ├── ThemeCodeMvp.kt │ │ │ │ │ │ └── ThemeCodePresenter.kt │ │ │ │ │ └── fragment │ │ │ │ │ │ ├── ThemeFragment.kt │ │ │ │ │ │ ├── ThemeFragmentMvp.kt │ │ │ │ │ │ └── ThemeFragmentPresenter.kt │ │ │ │ ├── trending │ │ │ │ │ ├── TrendingActivity.kt │ │ │ │ │ ├── TrendingMvp.kt │ │ │ │ │ ├── TrendingPresenter.kt │ │ │ │ │ └── fragment │ │ │ │ │ │ ├── TrendingFragment.kt │ │ │ │ │ │ ├── TrendingFragmentMvp.kt │ │ │ │ │ │ └── TrendingFragmentPresenter.kt │ │ │ │ └── user │ │ │ │ │ ├── UserPagerActivity.kt │ │ │ │ │ ├── UserPagerMvp.kt │ │ │ │ │ └── UserPagerPresenter.kt │ │ │ └── widgets │ │ │ │ ├── AppbarRefreshLayout.kt │ │ │ │ ├── AutoLinearLayout.kt │ │ │ │ ├── AvatarLayout.kt │ │ │ │ ├── CardsPagerTransformerBasic.kt │ │ │ │ ├── ColorPickerPreference.kt │ │ │ │ ├── DiffLineSpan.kt │ │ │ │ ├── FloatingActionButtonBehavior.kt │ │ │ │ ├── FontAutoCompleteEditText.kt │ │ │ │ ├── FontButton.kt │ │ │ │ ├── FontCheckbox.kt │ │ │ │ ├── FontEditText.kt │ │ │ │ ├── FontRadioButton.kt │ │ │ │ ├── FontSwitchView.kt │ │ │ │ ├── FontTextView.kt │ │ │ │ ├── ForegroundImageView.kt │ │ │ │ ├── ForegroundRelativeLayout.kt │ │ │ │ ├── LabelSpan.kt │ │ │ │ ├── NestedCoordinatorLayout.kt │ │ │ │ ├── SpannableBuilder.kt │ │ │ │ ├── StateLayout.kt │ │ │ │ ├── TabletBehavior.kt │ │ │ │ ├── ViewPagerView.kt │ │ │ │ ├── color │ │ │ │ └── ColorGenerator.kt │ │ │ │ ├── contributions │ │ │ │ ├── ContributionsDay.kt │ │ │ │ ├── ContributionsHtmlProvider.kt │ │ │ │ ├── GitHubContributionsView.kt │ │ │ │ └── utils │ │ │ │ │ ├── ColorsUtils.kt │ │ │ │ │ └── DatesUtils.kt │ │ │ │ ├── dialog │ │ │ │ ├── ListDialogView.kt │ │ │ │ ├── MessageDialogView.kt │ │ │ │ └── ProgressDialogFragment.kt │ │ │ │ ├── markdown │ │ │ │ ├── MarkDownLayout.kt │ │ │ │ └── MarkdownEditText.kt │ │ │ │ └── recyclerview │ │ │ │ ├── BottomPaddingDecoration.kt │ │ │ │ ├── DynamicRecyclerView.kt │ │ │ │ ├── InsetDividerDecoration.kt │ │ │ │ ├── ProgressBarViewHolder.kt │ │ │ │ ├── layout_manager │ │ │ │ ├── GridManager.kt │ │ │ │ ├── LinearManager.kt │ │ │ │ └── StaggeredManager.kt │ │ │ │ └── scroll │ │ │ │ ├── InfiniteScroll.kt │ │ │ │ └── RecyclerViewFastScroller.kt │ │ └── utils │ │ │ ├── Optional.kt │ │ │ ├── ParcelUtil.kt │ │ │ ├── Query.kt │ │ │ └── ThrottleClickListener.kt │ │ ├── prettifier │ │ └── pretty │ │ │ ├── NestedWebView.kt │ │ │ ├── PrettifyWebView.kt │ │ │ ├── callback │ │ │ └── MarkDownInterceptorInterface.kt │ │ │ └── helper │ │ │ ├── CodeThemesHelper.kt │ │ │ ├── GithubHelper.kt │ │ │ ├── HtmlHelper.kt │ │ │ └── PrettifyHelper.kt │ │ └── zzhoujay │ │ └── markdown │ │ └── style │ │ ├── CodeSpan.kt │ │ ├── FontSpan.kt │ │ ├── LinkSpan.kt │ │ └── MarkDownQuoteSpan.kt │ └── res │ ├── animator │ ├── cardview_selector.xml │ ├── minus_to_plus.xml │ ├── plus_minus_rotate.xml │ └── plus_to_minus.xml │ ├── color │ └── search_tab_highlighter.xml │ ├── drawable-nodpi │ └── web_hi_res_512.png │ ├── drawable-small │ └── splash_screen_drawable.xml │ ├── drawable-v26 │ ├── ic_app_shortcut_github.xml │ ├── ic_app_shortcut_issues.xml │ ├── ic_app_shortcut_pinned.xml │ ├── ic_app_shortcut_profile.xml │ └── ic_app_shortcut_pull_requests.xml │ ├── drawable-xxxhdpi │ ├── ic_edittext.9.png │ └── ic_timeline_arrow_left.9.png │ ├── drawable │ ├── arrow_toggle_drawable.xml │ ├── asl_follow.xml │ ├── avd_follow.xml │ ├── avd_unfollow.xml │ ├── bottom_border.xml │ ├── circle_shape.xml │ ├── fastscroller_bubble.xml │ ├── ic_add.xml │ ├── ic_add_emoji.xml │ ├── ic_announcement.xml │ ├── ic_app_shortcut_github.xml │ ├── ic_app_shortcut_github_foreground.xml │ ├── ic_app_shortcut_issues.xml │ ├── ic_app_shortcut_issues_foreground.xml │ ├── ic_app_shortcut_pinned.xml │ ├── ic_app_shortcut_pinned_foreground.xml │ ├── ic_app_shortcut_profile.xml │ ├── ic_app_shortcut_profile_foreground.xml │ ├── ic_app_shortcut_pull_requests.xml │ ├── ic_app_shortcut_pull_requests_foreground.xml │ ├── ic_arrow_drop_down.xml │ ├── ic_arrow_drop_up.xml │ ├── ic_arrow_right.xml │ ├── ic_at.xml │ ├── ic_back.xml │ ├── ic_backup.xml │ ├── ic_blank.xml │ ├── ic_block.xml │ ├── ic_book.xml │ ├── ic_bookmark.xml │ ├── ic_branch.xml │ ├── ic_brower.xml │ ├── ic_brush.xml │ ├── ic_bug.xml │ ├── ic_check.xml │ ├── ic_check_small.xml │ ├── ic_checkbox.xml │ ├── ic_checkbox_empty.xml │ ├── ic_checkbox_empty_small.xml │ ├── ic_checkbox_small.xml │ ├── ic_circle_small.xml │ ├── ic_clear.xml │ ├── ic_clear_all.xml │ ├── ic_clear_black.xml │ ├── ic_code.xml │ ├── ic_color_lens.xml │ ├── ic_comment.xml │ ├── ic_comment_small.xml │ ├── ic_copy.xml │ ├── ic_crop_square.xml │ ├── ic_done.xml │ ├── ic_download.xml │ ├── ic_edit.xml │ ├── ic_email.xml │ ├── ic_eye.xml │ ├── ic_eye_off.xml │ ├── ic_fasthub_mascot.xml │ ├── ic_feedback.xml │ ├── ic_file_document.xml │ ├── ic_file_multi.xml │ ├── ic_filter.xml │ ├── ic_folder.xml │ ├── ic_follow.xml │ ├── ic_fork.xml │ ├── ic_fork_small.xml │ ├── ic_format_bold.xml │ ├── ic_format_italic.xml │ ├── ic_format_list_bulleted.xml │ ├── ic_format_quote.xml │ ├── ic_format_strikethrough.xml │ ├── ic_format_underlined.xml │ ├── ic_fullscreen.xml │ ├── ic_gists.xml │ ├── ic_github.xml │ ├── ic_github_dark.xml │ ├── ic_github_shortcut.xml │ ├── ic_group.xml │ ├── ic_header_one.xml │ ├── ic_header_three.xml │ ├── ic_header_two.xml │ ├── ic_heart.xml │ ├── ic_heart_full.xml │ ├── ic_home.xml │ ├── ic_image.xml │ ├── ic_incognito.xml │ ├── ic_incognito_avatar.xml │ ├── ic_info.xml │ ├── ic_info_outline.xml │ ├── ic_inline_code.xml │ ├── ic_insert_link.xml │ ├── ic_issue_closed.xml │ ├── ic_issue_closed_small.xml │ ├── ic_issue_opened.xml │ ├── ic_issue_opened_small.xml │ ├── ic_issues.xml │ ├── ic_issues_shortcut.xml │ ├── ic_issues_small.xml │ ├── ic_label.xml │ ├── ic_language.xml │ ├── ic_language_small.xml │ ├── ic_license.xml │ ├── ic_lightblub.xml │ ├── ic_list_numbers.xml │ ├── ic_location.xml │ ├── ic_lock.xml │ ├── ic_logout.xml │ ├── ic_menu.xml │ ├── ic_merge.xml │ ├── ic_milestone.xml │ ├── ic_minus.xml │ ├── ic_money.xml │ ├── ic_newline.xml │ ├── ic_notification.xml │ ├── ic_notifications_none.xml │ ├── ic_overflow.xml │ ├── ic_people.xml │ ├── ic_person.xml │ ├── ic_pin.xml │ ├── ic_pin_filled.xml │ ├── ic_pin_shortcut.xml │ ├── ic_profile.xml │ ├── ic_profile_shortcut.xml │ ├── ic_project.xml │ ├── ic_pull_requests.xml │ ├── ic_pull_requests_shortcut.xml │ ├── ic_pull_requests_small.xml │ ├── ic_push.xml │ ├── ic_redo.xml │ ├── ic_repo.xml │ ├── ic_restore.xml │ ├── ic_restricted.xml │ ├── ic_ring.xml │ ├── ic_ring_sound.xml │ ├── ic_rocket.xml │ ├── ic_search.xml │ ├── ic_send.xml │ ├── ic_settings.xml │ ├── ic_share.xml │ ├── ic_slack.xml │ ├── ic_star.xml │ ├── ic_star_filled.xml │ ├── ic_star_small.xml │ ├── ic_storage_small.xml │ ├── ic_submodule.xml │ ├── ic_subscribe.xml │ ├── ic_support.xml │ ├── ic_sync.xml │ ├── ic_time.xml │ ├── ic_time_small.xml │ ├── ic_title.xml │ ├── ic_track_changes.xml │ ├── ic_trash.xml │ ├── ic_trending.xml │ ├── ic_undo.xml │ ├── ic_unfollow.xml │ ├── ic_unlock.xml │ ├── ic_unsubscribe.xml │ ├── ic_update.xml │ ├── ic_wrap_text.xml │ ├── left_border.xml │ ├── rect_shape.xml │ ├── right_border.xml │ ├── scrim.xml │ ├── splash_screen_drawable.xml │ ├── toolbar_shadow_up.xml │ └── top_border.xml │ ├── layout │ └── dialog_contribution_graph.xml │ ├── layouts │ ├── main_layouts │ │ ├── layout-land │ │ │ ├── bottom_fab.xml │ │ │ ├── fragment_container.xml │ │ │ ├── header_title_with_toolbar.xml │ │ │ ├── issues_bottom_navigation.xml │ │ │ ├── main_bottom_navigation.xml │ │ │ ├── profile_follow_action_layout.xml │ │ │ └── repo_file_header_layout.xml │ │ ├── layout-sw600dp │ │ │ ├── bottom_fab.xml │ │ │ ├── fragment_container.xml │ │ │ ├── header_title_with_toolbar.xml │ │ │ ├── issues_bottom_navigation.xml │ │ │ ├── main_bottom_navigation.xml │ │ │ └── repo_file_header_layout.xml │ │ └── layout │ │ │ ├── accounts_menu_layout.xml │ │ │ ├── activity_fragment_layout.xml │ │ │ ├── activity_main_view.xml │ │ │ ├── activity_search_file.xml │ │ │ ├── activity_search_user.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_settings_category.xml │ │ │ ├── add_banner_layout.xml │ │ │ ├── add_gist_file_layout.xml │ │ │ ├── add_review_dialog_layout.xml │ │ │ ├── bottom_fab.xml │ │ │ ├── branches_tabbed_viewpager.xml │ │ │ ├── centered_tabbed_viewpager.xml │ │ │ ├── comment_box_layout.xml │ │ │ ├── commit_file_full_layout.xml │ │ │ ├── commit_pager_activity.xml │ │ │ ├── commit_with_branch_layout.xml │ │ │ ├── create_gist_layout.xml │ │ │ ├── create_issue_layout.xml │ │ │ ├── create_label_layout.xml │ │ │ ├── create_milestone_layout.xml │ │ │ ├── delete_repo_file_layout.xml │ │ │ ├── dialog_picker.xml │ │ │ ├── edit_project_column_note_layout.xml │ │ │ ├── edit_repo_file_layout.xml │ │ │ ├── editor_layout.xml │ │ │ ├── emoji_popup_layout.xml │ │ │ ├── fab_micro_grid_refresh_list.xml │ │ │ ├── faq_view_layout.xml │ │ │ ├── filter_bottom_sheet.xml │ │ │ ├── filter_issues_popup.xml │ │ │ ├── filter_issues_prs_layout.xml │ │ │ ├── fragment_container.xml │ │ │ ├── full_screen_file_changes_layout.xml │ │ │ ├── general_viewer_layout.xml │ │ │ ├── gists_activity_layout.xml │ │ │ ├── gists_pager_layout.xml │ │ │ ├── header_title_with_toolbar.xml │ │ │ ├── icon_row_item.xml │ │ │ ├── issue_pager_activity.xml │ │ │ ├── issue_popup_layout.xml │ │ │ ├── issues_bottom_navigation.xml │ │ │ ├── license_viewer_layout.xml │ │ │ ├── login_chooser_layout.xml │ │ │ ├── login_form_layout.xml │ │ │ ├── main_bottom_navigation.xml │ │ │ ├── main_nav_fragment_layout.xml │ │ │ ├── markdown_buttons_layout.xml │ │ │ ├── markdown_link_image_dialog_layout.xml │ │ │ ├── merge_dialog_layout.xml │ │ │ ├── micro_grid_refresh_list.xml │ │ │ ├── milestone_dialog_layout.xml │ │ │ ├── notification_activity_layout.xml │ │ │ ├── notifications_bottom_sheet_layout.xml │ │ │ ├── packages_with_chooser_layout.xml │ │ │ ├── picker_dialog.xml │ │ │ ├── pro_features_layout.xml │ │ │ ├── profile_follow_action_layout.xml │ │ │ ├── project_columns_layout.xml │ │ │ ├── projects_activity_layout.xml │ │ │ ├── pull_request_files_layout.xml │ │ │ ├── repo_file_header_layout.xml │ │ │ ├── repo_file_layout.xml │ │ │ ├── repo_header_icons_layout.xml │ │ │ ├── repo_pager_activity.xml │ │ │ ├── review_changes_bottom_layout.xml │ │ │ ├── review_comment_dialog_layout.xml │ │ │ ├── search_layout.xml │ │ │ ├── settings_layout.xml │ │ │ ├── small_grid_refresh_list.xml │ │ │ ├── submit_review_layout.xml │ │ │ ├── support_development_layout.xml │ │ │ ├── tabbed_pager_layout.xml │ │ │ ├── tabbed_viewpager.xml │ │ │ ├── tending_buttons_layout.xml │ │ │ ├── theme_code_layout.xml │ │ │ ├── theme_layout.xml │ │ │ ├── theme_viewpager.xml │ │ │ ├── title_header_layout.xml │ │ │ ├── toolbar_activity_layout.xml │ │ │ ├── trending_activity_layout.xml │ │ │ ├── vertical_refresh_list.xml │ │ │ ├── view_pager_activity_layout.xml │ │ │ └── wiki_activity_layout.xml │ ├── other_layouts │ │ ├── layout-land │ │ │ └── appbar_start_margin.xml │ │ ├── layout-sw600dp │ │ │ └── appbar_start_margin.xml │ │ └── layout │ │ │ ├── appbar_elevation_dark.xml │ │ │ ├── appbar_start_margin.xml │ │ │ ├── appbar_tabbed_elevation.xml │ │ │ ├── avatar_layout.xml │ │ │ ├── dialog_guide_layout.xml │ │ │ ├── drawer_header.xml │ │ │ ├── empty_layout.xml │ │ │ ├── fastscroller_layout.xml │ │ │ ├── home_button.xml │ │ │ ├── lock_issue_pr_dialog.xml │ │ │ ├── message_dialog.xml │ │ │ ├── nav_menu_layout.xml │ │ │ ├── progress_dialog_layout.xml │ │ │ ├── simple_footer_list_dialog.xml │ │ │ ├── simple_list_dialog.xml │ │ │ ├── single_container_layout.xml │ │ │ └── state_layout.xml │ └── row_layouts │ │ ├── layout-sw600dp │ │ ├── login_row_item_menu.xml │ │ └── repos_row_item_menu.xml │ │ └── layout │ │ ├── add_filter_row_layout.xml │ │ ├── branches_row_item.xml │ │ ├── column_card_row_layout.xml │ │ ├── comments_dropdown_layout.xml │ │ ├── comments_row_item.xml │ │ ├── commit_file_row_item.xml │ │ ├── commit_line_row_item.xml │ │ ├── emoji_row_item.xml │ │ ├── fasthub_notification_row_item.xml │ │ ├── feeds_row_item.xml │ │ ├── feeds_row_no_image_item.xml │ │ ├── file_path_row_item.xml │ │ ├── gist_files_row_item.xml │ │ ├── grouped_commit_comment_row.xml │ │ ├── grouped_review_timeline_row_item.xml │ │ ├── issue_detail_header_row_item.xml │ │ ├── issue_no_image_row_item.xml │ │ ├── issue_row_item.xml │ │ ├── issue_timeline_row_item.xml │ │ ├── label_row_item.xml │ │ ├── login_row_item.xml │ │ ├── login_row_item_menu.xml │ │ ├── milestone_row_item.xml │ │ ├── no_emojies_comments_row_item.xml │ │ ├── notification_header_row_item.xml │ │ ├── notifications_row_item.xml │ │ ├── org_profile_overview_layout.xml │ │ ├── packages_row_item.xml │ │ ├── preference_widget_color.xml │ │ ├── profile_org_row_item.xml │ │ ├── profile_overview_layout.xml │ │ ├── profile_pinned_repo_row_item.xml │ │ ├── progress_layout.xml │ │ ├── pull_status_row_item.xml │ │ ├── pullrequest_file_row_item.xml │ │ ├── releases_row_item.xml │ │ ├── repo_files_row_item.xml │ │ ├── repos_row_item.xml │ │ ├── repos_row_item_menu.xml │ │ ├── repos_row_no_image_item.xml │ │ ├── review_comments_row_item.xml │ │ ├── review_timeline_row_item.xml │ │ ├── simple_color_row_item.xml │ │ ├── simple_row_item.xml │ │ ├── topics_row_item.xml │ │ ├── trending_row_item.xml │ │ ├── unknown_row_item.xml │ │ └── users_small_row_item.xml │ ├── menu-land │ └── bottom_nav_menu.xml │ ├── menu-sw600dp │ ├── bottom_nav_menu.xml │ ├── repo_bottom_nav_menu.xml │ └── repo_with_project_bottom_nav_menu.xml │ ├── menu │ ├── add_menu.xml │ ├── bottom_nav_menu.xml │ ├── comments_menu.xml │ ├── commit_row_menu.xml │ ├── done_menu.xml │ ├── download_browser_menu.xml │ ├── download_share_menu.xml │ ├── drawer_menu.xml │ ├── dynamic_trending_menu.xml │ ├── filter_fab_menu.xml │ ├── filter_issue_state_menu.xml │ ├── gist_menu.xml │ ├── issue_menu.xml │ ├── link_popup_menu.xml │ ├── notification_menu.xml │ ├── project_card_menu.xml │ ├── pull_request_menu.xml │ ├── repo_bottom_nav_menu.xml │ ├── repo_contributors_menu.xml │ ├── repo_menu.xml │ ├── repo_with_project_bottom_nav_menu.xml │ ├── search_menu.xml │ ├── share_menu.xml │ ├── trending_menu.xml │ └── wrap_menu_option.xml │ ├── mipmap-nodpi │ └── foreground.png │ ├── raw │ └── changelog.html │ ├── translations │ ├── drawable │ │ ├── ic_baseline_business.xml │ │ ├── ic_baseline_web.xml │ │ └── ic_twitter.xml │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ └── values │ │ └── ic_launcher_background.xml │ ├── values-ar │ └── strings.xml │ ├── values-bg │ └── strings.xml │ ├── values-cs │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-in │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-ja │ └── strings.xml │ ├── values-ko │ └── strings.xml │ ├── values-land │ └── dimens.xml │ ├── values-lt │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-pt-rPT │ └── strings.xml │ ├── values-ru │ └── strings.xml │ ├── values-sw600dp-land │ └── dimens.xml │ ├── values-sw600dp │ └── dimens.xml │ ├── values-sw720dp-land │ └── dimens.xml │ ├── values-sw720dp │ └── dimens.xml │ ├── values-tr │ └── strings.xml │ ├── values-w820dp-land │ └── dimens.xml │ ├── values-w820dp │ └── dimens.xml │ ├── values-zh-rCN │ └── strings.xml │ ├── values-zh-rTW │ └── strings.xml │ ├── values │ ├── arrays.xml │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── graphview.xml │ ├── paths.xml │ ├── strings.xml │ ├── styles.xml │ ├── theme_amlod.xml │ ├── theme_attrs.xml │ ├── theme_bluish.xml │ ├── theme_dark.xml │ ├── theme_light.xml │ ├── theme_midnight.xml │ └── themes.xml │ └── xml │ ├── about_settings.xml │ ├── backup_settings.xml │ ├── behaviour_settings.xml │ ├── customization_settings.xml │ ├── fasthub_settings.xml │ ├── language_settings.xml │ ├── notification_settings.xml │ └── shortcuts.xml ├── build.gradle.kts ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[FR]" 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/assets/direct-apk-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/direct-apk-download.png -------------------------------------------------------------------------------- /.github/assets/feature_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/feature_graphic.png -------------------------------------------------------------------------------- /.github/assets/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/first.png -------------------------------------------------------------------------------- /.github/assets/fourth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/fourth.png -------------------------------------------------------------------------------- /.github/assets/sec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/sec.png -------------------------------------------------------------------------------- /.github/assets/third.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/third.png -------------------------------------------------------------------------------- /.github/assets/web_hi_res_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/.github/assets/web_hi_res_512.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .DS_Store 5 | /build 6 | /.idea/ 7 | /app/build/ 8 | /app/debug/ 9 | /app/secrets.properties 10 | /app/keys_release.jks 11 | -------------------------------------------------------------------------------- /app/keys_debug.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/app/keys_debug.jks -------------------------------------------------------------------------------- /app/src/debug/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | FastHub-RE Debug 4 | -------------------------------------------------------------------------------- /app/src/main/assets/fonts/app_font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/app/src/main/assets/fonts/app_font.ttf -------------------------------------------------------------------------------- /app/src/main/assets/highlight/styles/themes/darkula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Deprecated due to a typo in the name and left here for compatibility purpose only. 3 | Please use darcula.css instead. 4 | */ 5 | 6 | @import url('darcula.css'); 7 | -------------------------------------------------------------------------------- /app/src/main/graphql/github/.graphqlconfig: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Github GraphQL Schema", 3 | "schemaPath": "schema.graphqls", 4 | "extensions": { 5 | "endpoints": { 6 | "Default GraphQL Endpoint": { 7 | "url": "https://api.github.com/graphql", 8 | "headers": { 9 | "user-agent": "JS GraphQL" 10 | }, 11 | "introspect": false 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/GlideModule.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess 2 | 3 | import com.bumptech.glide.annotation.GlideModule 4 | import com.bumptech.glide.module.AppGlideModule 5 | 6 | 7 | @GlideModule 8 | class GlideModule : AppGlideModule() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/AssigneesRequestModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 05 Mar 2017, 12:01 PM 5 | */ 6 | class AssigneesRequestModel { 7 | var assignees: List? = null 8 | var reviewers: List? = null 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommitFileListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 12 Feb 2017, 12:06 AM 5 | */ 6 | class CommitFileListModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommitListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import com.fastaccess.data.entity.Commit 4 | 5 | /** 6 | * Created by Kosh on 12 Feb 2017, 12:10 AM 7 | */ 8 | class CommitListModel : ArrayList() 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CommitRequestModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by kosh on 31/08/2017. 5 | */ 6 | class CommitRequestModel( 7 | var message: String, 8 | var content: String?, 9 | var sha: String, 10 | var branch: String 11 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CreateGistModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import android.os.Parcelable 4 | import com.google.gson.annotations.SerializedName 5 | import kotlinx.parcelize.Parcelize 6 | 7 | /** 8 | * Created by Kosh on 18 Feb 2017, 11:15 PM 9 | */ 10 | @Parcelize 11 | class CreateGistModel( 12 | var files: MutableMap, 13 | var description: String, 14 | @SerializedName("public") var publicGist: Boolean 15 | ) : Parcelable -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/CreateMilestoneModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | /** 6 | * Created by Kosh on 05 Mar 2017, 2:30 AM 7 | */ 8 | class CreateMilestoneModel { 9 | var title: String? = null 10 | var description: String? = null 11 | 12 | @SerializedName("due_on") 13 | var dueOn: String? = null 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GistHubErrorsModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 18 Feb 2017, 2:10 PM 5 | */ 6 | class GistHubErrorsModel { 7 | var resource: String? = null 8 | var field: String? = null 9 | var code: String? = null 10 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GitCommitListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 12 Feb 2017, 12:14 AM 5 | */ 6 | class GitCommitListModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GitHubErrorResponse.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 18 Feb 2017, 2:09 PM 5 | */ 6 | class GitHubErrorResponse { 7 | var message: String? = null 8 | var documentationUrl: String? = null 9 | var errors: List? = null 10 | override fun toString(): String { 11 | return "GitHubErrorResponse{" + 12 | "message='" + message + '\'' + 13 | ", documentation_url='" + documentationUrl + '\'' + 14 | ", errors=" + errors + 15 | '}' 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/GithubFileModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import java.io.Serializable 4 | 5 | /** 6 | * Created by Kosh on 10 Feb 2017, 9:46 PM 7 | */ 8 | class GithubFileModel : HashMap(), Serializable -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/LabelListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 12 Feb 2017, 1:32 PM 5 | */ 6 | class LabelListModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/LockIssuePrModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 10.02.18. 5 | */ 6 | class LockIssuePrModel { 7 | var isLocked = false 8 | var activeLockReason: String? = null 9 | 10 | constructor() {} 11 | constructor(locked: Boolean, activeLockReason: String?) { 12 | isLocked = locked 13 | this.activeLockReason = activeLockReason 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/NotificationSoundModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import android.net.Uri 4 | 5 | /** 6 | * Created by kosh on 23/07/2017. 7 | */ 8 | class NotificationSoundModel(val name: String? = null, val uri: Uri? = null, val isSelected: Boolean = false) -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/NotificationSubscriptionBodyModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Hashemsergani on 14.10.17. 5 | */ 6 | class NotificationSubscriptionBodyModel(var subscribed: Boolean, var ignored: Boolean) -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/ReleasesAssetsListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 31 Dec 2016, 1:28 PM 5 | */ 6 | class ReleasesAssetsListModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/RepoPathsManager.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import com.fastaccess.data.entity.RepoFile 4 | 5 | /** 6 | * Created by Kosh on 03 Mar 2017, 10:43 PM 7 | */ 8 | class RepoPathsManager { 9 | private val files = HashMap>() 10 | fun getPaths(url: String, ref: String): List? { 11 | return files["$ref/$url"] 12 | } 13 | 14 | fun setFiles(ref: String, path: String, paths: List) { 15 | files["$ref/$path"] = paths 16 | } 17 | 18 | fun clear() { 19 | files.clear() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/RepoSubscriptionModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import java.util.* 4 | 5 | /** 6 | * Created by Kosh on 14 Mar 2017, 9:10 PM 7 | */ 8 | class RepoSubscriptionModel { 9 | var isSubscribed = false 10 | var isIgnored = false 11 | var createdAt: Date? = null 12 | var url: String? = null 13 | var repositoryUrl: String? = null 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/TopicsModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | /** 4 | * Created by Kosh on 09 May 2017, 7:52 PM 5 | */ 6 | class TopicsModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/TreeResponseModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import com.fastaccess.data.entity.RepoFile 4 | 5 | /** 6 | * Created by Kosh on 12 Apr 2017, 1:12 PM 7 | */ 8 | class TreeResponseModel { 9 | var sha: String? = null 10 | var url: String? = null 11 | var truncated = false 12 | var tree: List? = null 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/UsersListModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao 2 | 3 | import com.fastaccess.data.entity.User 4 | 5 | /** 6 | * Created by Kosh on 12 Feb 2017, 1:33 PM 7 | */ 8 | class UsersListModel : ArrayList() 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/FilesType.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | import androidx.annotation.DrawableRes 4 | import com.fastaccess.R 5 | 6 | /** 7 | * Created by Kosh on 17 Feb 2017, 7:45 PM 8 | */ 9 | enum class FilesType(@get:DrawableRes @param:DrawableRes val icon: Int = R.drawable.ic_file_document) { 10 | file(R.drawable.ic_file_document), dir(R.drawable.ic_folder), blob(R.drawable.ic_file_document), tree( 11 | R.drawable.ic_folder 12 | ), 13 | symlink(R.drawable.ic_submodule); 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/GitEntryType.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | enum class GitEntryType { 4 | commit, tree, blob 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/IssueState.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | import androidx.annotation.StringRes 4 | import com.fastaccess.R 5 | 6 | enum class IssueState( 7 | @get:StringRes 8 | @param:StringRes var status: Int 9 | ) { 10 | `open`(R.string.opened), closed(R.string.closed), all(R.string.all) 11 | 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/MyIssuesType.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | /** 4 | * Created by Kosh on 30 Apr 2017, 1:03 PM 5 | */ 6 | enum class MyIssuesType { 7 | CREATED, ASSIGNED, MENTIONED, REVIEW, PARTICIPATED 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/NotificationReason.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | enum class NotificationReason { 4 | subscribed, manual, author, comment, mention, team_mention, state_change, assign 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/types/NotificationType.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.types 2 | 3 | import androidx.annotation.DrawableRes 4 | import com.fastaccess.R 5 | 6 | /** 7 | * Created by Kosh on 19 Apr 2017, 7:57 PM 8 | */ 9 | enum class NotificationType(@get:DrawableRes @param:DrawableRes val drawableRes: Int) { 10 | PullRequest(R.drawable.ic_pull_requests), Issue(R.drawable.ic_issues), Commit(R.drawable.ic_push); 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/dao/wiki/FirebaseWikiConfigModel.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.dao.wiki 2 | 3 | data class FirebaseWikiConfigModel( 4 | var wikiWrapper: String = "#wiki-wrapper", 5 | var wikiHeader: String = ".gh-header > h1.gh-header-title", 6 | var sideBarHref: String = "href", 7 | var wikiBody: String = "#wiki-body", 8 | var wikiSubHeader: String = ".gh-header-meta", 9 | var wikiContent: String = "#wiki-content", 10 | var sideBarGroup: String = ".js-wiki-sidebar-toggle-display > ul > li", 11 | var sideBarGroupSummaryTitle: String = "details > summary > div > a", 12 | var sideBarGroupItem: String = "details > ul > li", 13 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/db/ObjectBox.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.db 2 | 3 | import android.content.Context 4 | import com.fastaccess.data.entity.MyObjectBox 5 | import io.objectbox.BoxStore 6 | 7 | 8 | class ObjectBox { 9 | companion object { 10 | lateinit var boxStore: BoxStore 11 | fun init(context: Context) { 12 | boxStore = MyObjectBox.builder() 13 | .androidContext(context.applicationContext) 14 | .build() 15 | // if (BuildConfig.DEBUG) { 16 | // val started = AndroidObjectBrowser(boxStore).start(context) 17 | // Log.i("ObjectBrowser", "Started: $started") 18 | // } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/CommitConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.Commit 4 | import java.lang.reflect.Type 5 | 6 | class CommitConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/CommitFilesConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.CommitFileListModel 4 | import java.lang.reflect.Type 5 | 6 | class CommitFilesConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/CommitsConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.CommitListModel 4 | import java.lang.reflect.Type 5 | 6 | class CommitsConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/EventsTypeConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.types.EventsType 4 | import io.objectbox.converter.PropertyConverter 5 | 6 | class EventsTypeConverter : PropertyConverter { 7 | override fun convertToEntityProperty(databaseValue: Int?): EventsType? { 8 | if (databaseValue == null || databaseValue == -1) { 9 | return null 10 | } 11 | return EventsType.values()[databaseValue] 12 | } 13 | 14 | override fun convertToDatabaseValue(entityProperty: EventsType?): Int { 15 | return entityProperty?.ordinal ?: -1 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/FilesTypeConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.types.FilesType 4 | import io.objectbox.converter.PropertyConverter 5 | 6 | class FilesTypeConverter : PropertyConverter { 7 | override fun convertToEntityProperty(databaseValue: Int?): FilesType? { 8 | if (databaseValue == null || databaseValue == -1) { 9 | return null 10 | } 11 | return FilesType.values()[databaseValue] 12 | } 13 | 14 | override fun convertToDatabaseValue(entityProperty: FilesType?): Int { 15 | return entityProperty?.ordinal ?: -1 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/GistConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.Gist 4 | import java.lang.reflect.Type 5 | 6 | class GistConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/GitCommitConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.GitCommitModel 4 | import java.lang.reflect.Type 5 | 6 | class GitCommitConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/GitHubFilesConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.GithubFileModel 4 | import java.lang.reflect.Type 5 | 6 | class GitHubFilesConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/GitHubPackagesConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.GitHubPackage 4 | import java.lang.reflect.Type 5 | 6 | class GitHubPackagesConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/GitHubStateConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.GithubState 4 | import java.lang.reflect.Type 5 | 6 | class GitHubStateConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/IssueConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.Issue 4 | import java.lang.reflect.Type 5 | 6 | class IssueConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/IssueEventTypeConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.types.IssueEventType 4 | import io.objectbox.converter.PropertyConverter 5 | 6 | class IssueEventTypeConverter : PropertyConverter { 7 | override fun convertToEntityProperty(databaseValue: Int?): IssueEventType? { 8 | if (databaseValue == null || databaseValue == -1) { 9 | return null 10 | } 11 | return IssueEventType.values()[databaseValue] 12 | } 13 | 14 | override fun convertToDatabaseValue(entityProperty: IssueEventType?): Int { 15 | return entityProperty?.ordinal ?: -1 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/IssueStateConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.types.IssueState 4 | import io.objectbox.converter.PropertyConverter 5 | 6 | class IssueStateConverter : PropertyConverter { 7 | override fun convertToEntityProperty(databaseValue: Int?): IssueState? { 8 | if (databaseValue == null || databaseValue == -1) { 9 | return null 10 | } 11 | return IssueState.values()[databaseValue] 12 | } 13 | 14 | override fun convertToDatabaseValue(entityProperty: IssueState?): Int { 15 | return entityProperty?.ordinal ?: -1 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/LabelConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.LabelModel 4 | import java.lang.reflect.Type 5 | 6 | class LabelConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/LabelsListConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.LabelListModel 4 | import java.lang.reflect.Type 5 | 6 | class LabelsListConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/LicenseConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.LicenseModel 4 | import java.lang.reflect.Type 5 | 6 | class LicenseConverter: BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/MilestoneConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.MilestoneModel 4 | import java.lang.reflect.Type 5 | 6 | class MilestoneConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/NotificationSubjectConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.NotificationSubjectModel 4 | import java.lang.reflect.Type 5 | 6 | class NotificationSubjectConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/PayloadConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.PayloadModel 4 | import java.lang.reflect.Type 5 | 6 | class PayloadConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/PullRequestConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.PullRequest 4 | import java.lang.reflect.Type 5 | 6 | class PullRequestConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/ReactionsConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.ReactionsModel 4 | import java.lang.reflect.Type 5 | 6 | class ReactionsConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/ReleasesAssetsConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.ReleasesAssetsListModel 4 | import java.lang.reflect.Type 5 | 6 | class ReleasesAssetsConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/RenameConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.RenameModel 4 | import java.lang.reflect.Type 5 | 6 | class RenameConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/RepoConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.Repo 4 | import java.lang.reflect.Type 5 | 6 | class RepoConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/RepoPermissionConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.RepoPermissionsModel 4 | import java.lang.reflect.Type 5 | 6 | class RepoPermissionConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/TeamConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.TeamsModel 4 | import java.lang.reflect.Type 5 | 6 | class TeamConverter:BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/TopicsConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.TopicsModel 4 | import java.lang.reflect.Type 5 | 6 | class TopicsConverter: BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/UserConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.entity.User 4 | import java.lang.reflect.Type 5 | 6 | class UserConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/entity/converters/UsersConverter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.entity.converters 2 | 3 | import com.fastaccess.data.dao.UsersListModel 4 | import java.lang.reflect.Type 5 | 6 | class UsersConverter : BaseConverter() { 7 | override val genericType: Type = genericType() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/ImgurService.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service 2 | 3 | import com.fastaccess.data.dao.ImgurReponseModel 4 | import io.reactivex.Observable 5 | import okhttp3.RequestBody 6 | import retrofit2.http.Body 7 | import retrofit2.http.POST 8 | import retrofit2.http.Query 9 | 10 | /** 11 | * Created by Kosh on 15 Apr 2017, 8:06 PM 12 | */ 13 | interface ImgurService { 14 | @POST("image") 15 | fun postImage( 16 | @Query("title") title: String, 17 | @Body body: RequestBody 18 | ): Observable 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/ScrapService.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service 2 | 3 | 4 | import io.reactivex.Observable 5 | import retrofit2.Response 6 | import retrofit2.http.GET 7 | import retrofit2.http.Path 8 | import retrofit2.http.Query 9 | 10 | /** 11 | * Created by Kosh on 02 Jun 2017, 12:58 PM 12 | */ 13 | 14 | interface ScrapService { 15 | 16 | @GET("{lan}") 17 | fun getTrending( 18 | @Path("lan") lan: String, 19 | @Query("since") since: String 20 | ): Observable> 21 | 22 | @GET("{path}") 23 | fun getWiki( 24 | @Path(value = "path", encoded = true) path: String 25 | ): Observable 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/data/service/SlackService.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.data.service 2 | 3 | import com.fastaccess.data.dao.SlackInvitePostModel 4 | import com.fastaccess.data.dao.SlackResponseModel 5 | import io.reactivex.Observable 6 | import retrofit2.http.Body 7 | import retrofit2.http.Headers 8 | import retrofit2.http.POST 9 | 10 | /** 11 | * Created by Kosh on 01 May 2017, 1:04 AM 12 | */ 13 | interface SlackService { 14 | @POST("FastHubSlackInvite") 15 | @Headers("X-API-Key: MvFQyrJ9703DYmKHvk13I3agw3AdH8vh1lKbKGx4") 16 | fun invite(@Body body: SlackInvitePostModel): Observable 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/exception/AuthNullOrBlankException.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.exception 2 | 3 | import java.io.IOException 4 | 5 | class AuthNullOrBlankException: IOException() {} -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/GithubConfigHelper.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.helper 2 | 3 | import com.fastaccess.BuildConfig 4 | 5 | /** 6 | * Created by thermatk on 12.04.17. 7 | */ 8 | object GithubConfigHelper { 9 | @JvmStatic 10 | val redirectUrl = "fasthub://login" 11 | 12 | @JvmStatic 13 | val clientId = BuildConfig.GITHUB_CLIENT_ID 14 | 15 | @JvmStatic 16 | val secret = BuildConfig.GITHUB_SECRET 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/ObjectsCompat.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.helper 2 | 3 | /** 4 | * Created by Kosh on 18 Apr 2017, 10:57 PM 5 | */ 6 | object ObjectsCompat { 7 | @JvmStatic 8 | fun nonNull(obj: Any?): Boolean { 9 | return obj != null 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/helper/TypeFaceHelper.kt: -------------------------------------------------------------------------------- 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 | object TypeFaceHelper { 11 | lateinit var typeface: Typeface 12 | 13 | @JvmStatic 14 | fun generateTypeface(context: Context) { 15 | typeface = Typeface.createFromAsset(context.assets, "fonts/app_font.ttf") 16 | } 17 | 18 | @JvmStatic 19 | fun applyTypeface(textView: TextView) { 20 | textView.typeface = typeface 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/crash/Report.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.crash 2 | 3 | import android.content.Context 4 | import timber.log.Timber 5 | 6 | class Report { 7 | companion object { 8 | fun init(context: Context) { 9 | } 10 | 11 | fun reportCatchException(e: Exception) { 12 | Timber.e(e, "FastHub-Re Crash Report") 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/markdown/extension/emoji/Emoji.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.markdown.extension.emoji 2 | 3 | import org.commonmark.node.CustomNode 4 | import org.commonmark.node.Delimited 5 | 6 | /** 7 | * Created by kosh on 20/08/2017. 8 | */ 9 | class Emoji : CustomNode(), Delimited { 10 | override fun getOpeningDelimiter(): String { 11 | return DELIMITER 12 | } 13 | 14 | override fun getClosingDelimiter(): String { 15 | return DELIMITER 16 | } 17 | 18 | companion object { 19 | private const val DELIMITER = ":" 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/markdown/extension/mention/Mention.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.markdown.extension.mention 2 | 3 | import org.commonmark.node.CustomNode 4 | import org.commonmark.node.Delimited 5 | 6 | /** 7 | * Created by kosh on 20/08/2017. 8 | */ 9 | class Mention : CustomNode(), Delimited { 10 | override fun getOpeningDelimiter(): String { 11 | return DELIMITER 12 | } 13 | 14 | override fun getClosingDelimiter(): String { 15 | return " " 16 | } 17 | 18 | companion object { 19 | private const val DELIMITER = "@" 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/rest/interceptors/ContentTypeInterceptor.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.rest.interceptors 2 | 3 | import okhttp3.Interceptor 4 | import okhttp3.Response 5 | 6 | /** 7 | * Created by Kosh on 05 Jul 2017, 8:14 PM 8 | */ 9 | 10 | class ContentTypeInterceptor : Interceptor { 11 | override fun intercept(chain: Interceptor.Chain): Response { 12 | val request = chain.request() 13 | return chain.proceed(request.newBuilder() 14 | .addHeader("Accept", "application/vnd.github.v3+json") 15 | .addHeader("Content-type", "application/vnd.github.v3+json") 16 | .method(request.method, request.body) 17 | .build()) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/rest/loadmore/OnLoadMore.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.rest.loadmore 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.PaginationListener 4 | import com.fastaccess.ui.widgets.recyclerview.scroll.InfiniteScroll 5 | 6 | open class OnLoadMore

@JvmOverloads constructor( 7 | private val presenter: PaginationListener

?, 8 | var parameter: P? = null 9 | ) : InfiniteScroll() { 10 | override fun onLoadMore(page: Int, totalItemsCount: Int): Boolean { 11 | if (presenter != null) { 12 | presenter.previousTotal = totalItemsCount 13 | return presenter.onCallApi(page + 1, parameter) 14 | } 15 | return false 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/timeline/handler/ItalicHandler.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.timeline.handler 2 | 3 | import android.graphics.Typeface 4 | import android.text.SpannableStringBuilder 5 | import com.zzhoujay.markdown.style.FontSpan 6 | import net.nightwhistler.htmlspanner.TagNodeHandler 7 | import org.htmlcleaner.TagNode 8 | 9 | /** 10 | * Created by Kosh on 06 May 2017, 11:02 AM 11 | */ 12 | class ItalicHandler : TagNodeHandler() { 13 | override fun handleTagNode( 14 | node: TagNode, 15 | builder: SpannableStringBuilder, 16 | start: Int, 17 | end: Int 18 | ) { 19 | builder.setSpan(FontSpan(1F, Typeface.ITALIC), start, builder.length, 33) 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/timeline/handler/StrikethroughHandler.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.timeline.handler 2 | 3 | import android.text.SpannableStringBuilder 4 | import android.text.style.StrikethroughSpan 5 | import net.nightwhistler.htmlspanner.TagNodeHandler 6 | import org.htmlcleaner.TagNode 7 | 8 | class StrikethroughHandler : TagNodeHandler() { 9 | override fun handleTagNode( 10 | node: TagNode, 11 | builder: SpannableStringBuilder, 12 | start: Int, 13 | end: Int 14 | ) { 15 | builder.setSpan(StrikethroughSpan(), start, end, 33) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/timeline/handler/SubScriptHandler.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.timeline.handler 2 | 3 | import android.text.SpannableStringBuilder 4 | import android.text.style.RelativeSizeSpan 5 | import android.text.style.SubscriptSpan 6 | import net.nightwhistler.htmlspanner.TagNodeHandler 7 | import org.htmlcleaner.TagNode 8 | 9 | class SubScriptHandler : TagNodeHandler() { 10 | override fun handleTagNode( 11 | node: TagNode, 12 | builder: SpannableStringBuilder, 13 | start: Int, 14 | end: Int 15 | ) { 16 | builder.setSpan(SubscriptSpan(), start, end, 33) 17 | builder.setSpan(RelativeSizeSpan(0.8f), start, end, 33) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/timeline/handler/SuperScriptHandler.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.timeline.handler 2 | 3 | import android.text.SpannableStringBuilder 4 | import android.text.style.RelativeSizeSpan 5 | import android.text.style.SuperscriptSpan 6 | import net.nightwhistler.htmlspanner.TagNodeHandler 7 | import org.htmlcleaner.TagNode 8 | 9 | class SuperScriptHandler : TagNodeHandler() { 10 | override fun handleTagNode( 11 | node: TagNode, 12 | builder: SpannableStringBuilder, 13 | start: Int, 14 | end: Int 15 | ) { 16 | builder.setSpan(SuperscriptSpan(), start, end, 33) 17 | builder.setSpan(RelativeSizeSpan(0.8f), start, end, 33) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/provider/timeline/handler/UnderlineHandler.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.provider.timeline.handler 2 | 3 | import android.text.SpannableStringBuilder 4 | import android.text.style.UnderlineSpan 5 | import net.nightwhistler.htmlspanner.TagNodeHandler 6 | import org.htmlcleaner.TagNode 7 | 8 | class UnderlineHandler : TagNodeHandler() { 9 | override fun handleTagNode( 10 | tagNode: TagNode, 11 | spannableStringBuilder: SpannableStringBuilder, 12 | start: Int, 13 | end: Int 14 | ) { 15 | spannableStringBuilder.setSpan(UnderlineSpan(), start, end, 33) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/callback/OnToggleView.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter.callback 2 | 3 | interface OnToggleView { 4 | fun onToggle(id: Long, isCollapsed: Boolean): Boolean 5 | fun isCollapsed(id: Long): Boolean 6 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/callback/ReactionsCallback.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter.callback 2 | 3 | /** 4 | * Created by Kosh on 03 Apr 2017, 2:52 PM 5 | */ 6 | interface ReactionsCallback { 7 | fun isPreviouslyReacted(id: Long, vId: Int): Boolean 8 | fun isCallingApi(id: Long, vId: Int): Boolean 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/viewholder/SimpleViewHolder.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter.viewholder 2 | 3 | import android.view.View 4 | import com.fastaccess.R 5 | import com.fastaccess.ui.base.adapter.BaseRecyclerAdapter 6 | import com.fastaccess.ui.base.adapter.BaseViewHolder 7 | import com.fastaccess.ui.widgets.FontTextView 8 | 9 | /** 10 | * Created by Kosh on 31 Dec 2016, 3:12 PM 11 | */ 12 | class SimpleViewHolder( 13 | itemView: View, 14 | adapter: BaseRecyclerAdapter, OnItemClickListener>? 15 | ) : 16 | BaseViewHolder(itemView, adapter) { 17 | val title: FontTextView = itemView.findViewById(R.id.title) 18 | override fun bind(t: O) { 19 | title.text = t.toString() 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/adapter/viewholder/UnknownTypeViewHolder.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.adapter.viewholder 2 | 3 | import android.view.View 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | 6 | /** 7 | * Created by kosh on 07/08/2017. 8 | */ 9 | class UnknownTypeViewHolder(view: View) : BaseViewHolder(view) { 10 | override fun bind(t: Any) {} //DO NOTHING 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/base/mvp/presenter/EmptyPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.base.mvp.presenter 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp 4 | 5 | class EmptyPresenter: BasePresenter() 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/about/CommonLibsActivity.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.about 2 | 3 | import android.os.Bundle 4 | import com.fastaccess.provider.theme.ThemeEngine 5 | 6 | class CommonLibsActivity : com.mikepenz.aboutlibraries.ui.LibsActivity() { 7 | override fun onCreate(savedInstanceState: Bundle?) { 8 | ThemeEngine.apply(this) 9 | super.onCreate(savedInstanceState) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/changelog/ChangelogMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.changelog 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | 5 | /** 6 | * Created by Kosh on 28 May 2017, 10:53 AM 7 | */ 8 | interface ChangelogMvp { 9 | interface View : FAView { 10 | fun onChangelogLoaded(html: String?) 11 | } 12 | 13 | interface Presenter { 14 | fun onLoadChangelog() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/editor/emoji/EmojiMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.editor.emoji 2 | 3 | import com.fastaccess.provider.emoji.Emoji 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp 6 | 7 | /** 8 | * Created by kosh on 17/08/2017. 9 | */ 10 | interface EmojiMvp { 11 | 12 | interface View : BaseMvp.FAView, BaseViewHolder.OnItemClickListener { 13 | fun clearAdapter() 14 | fun onAddEmoji(emoji: Emoji) 15 | } 16 | 17 | interface Presenter { 18 | fun onLoadEmoji() 19 | } 20 | 21 | interface EmojiCallback { 22 | fun onEmojiAdded(emoji: Emoji?) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/editor/popup/EditorLinkImageMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.editor.popup 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | import java.io.File 5 | 6 | /** 7 | * Created by Kosh on 15 Apr 2017, 9:06 PM 8 | */ 9 | interface EditorLinkImageMvp { 10 | interface EditorLinkCallback { 11 | fun onAppendLink(title: String?, link: String?, isLink: Boolean) 12 | } 13 | 14 | interface View : FAView { 15 | fun onUploaded(title: String?, link: String?) 16 | } 17 | 18 | interface Presenter { 19 | fun onSubmit(title: String?, file: File) 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/filter/chooser/FilterAddChooserListener.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.filter.chooser 2 | 3 | /** 4 | * Created by Kosh on 10 Apr 2017, 12:19 PM 5 | */ 6 | interface FilterAddChooserListener { 7 | fun onAddSelected() 8 | fun onSearchSelected() 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/filter/issues/FilterIssuesActivityMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.filter.issues 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | 5 | /** 6 | * Created by Kosh on 09 Apr 2017, 6:19 PM 7 | */ 8 | interface FilterIssuesActivityMvp { 9 | interface View : FAView { 10 | fun onSetCount(count: Int, isOpen: Boolean) 11 | } 12 | 13 | interface Presenter { 14 | fun onStart(login: String, repoId: String) 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/gists/create/dialog/AddGistMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.gists.create.dialog 2 | 3 | import com.fastaccess.data.dao.FilesListModel 4 | import com.fastaccess.ui.base.mvp.BaseMvp 5 | import com.fastaccess.ui.modules.editor.emoji.EmojiMvp 6 | import com.fastaccess.ui.modules.editor.popup.EditorLinkImageMvp 7 | import com.fastaccess.ui.widgets.markdown.MarkDownLayout 8 | 9 | /** 10 | * Created by kosh on 14/08/2017. 11 | */ 12 | interface AddGistMvp { 13 | 14 | interface View : BaseMvp.FAView, EditorLinkImageMvp.EditorLinkCallback, MarkDownLayout.MarkdownListener, EmojiMvp.EmojiCallback 15 | interface Presenter 16 | interface AddGistFileListener { 17 | fun onFileAdded(file: FilesListModel, position: Int? = -1) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/gists/create/dialog/AddGistPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.gists.create.dialog 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 4 | 5 | /** 6 | * Created by kosh on 14/08/2017. 7 | */ 8 | class AddGistPresenter : BasePresenter(), AddGistMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/login/chooser/LoginChooserMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.login.chooser 2 | 3 | import com.fastaccess.data.entity.Login 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp 6 | import com.fastaccess.ui.modules.settings.LanguageBottomSheetDialog 7 | 8 | interface LoginChooserMvp { 9 | 10 | interface View : BaseMvp.FAView, LanguageBottomSheetDialog.LanguageDialogListener, 11 | BaseViewHolder.OnItemClickListener { 12 | fun onAccountsLoaded(accounts: List?) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/login/chooser/LoginChooserPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.login.chooser 2 | 3 | import com.fastaccess.data.entity.dao.LoginDao 4 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 5 | 6 | class LoginChooserPresenter : BasePresenter() { 7 | init { 8 | manageObservable( 9 | LoginDao.getAccounts().toList() 10 | .toObservable() 11 | .doOnNext { 12 | sendToView { view -> 13 | view.onAccountsLoaded(it) 14 | } 15 | }) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.issues.pager 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | import com.fastaccess.ui.modules.repos.RepoPagerMvp.TabsBadgeListener 5 | 6 | /** 7 | * Created by Kosh on 26 Mar 2017, 12:15 AM 8 | */ 9 | interface MyIssuesPagerMvp { 10 | interface View : FAView, TabsBadgeListener 11 | interface Presenter 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.issues.pager 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 4 | 5 | /** 6 | * Created by Kosh on 26 Mar 2017, 12:17 AM 7 | */ 8 | class MyIssuesPagerPresenter : BasePresenter(), MyIssuesPagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/orgs/OrgListDialogMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.orgs 2 | 3 | import com.fastaccess.data.entity.User 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | 6 | /** 7 | * Created by Kosh on 15 Apr 2017, 1:53 PM 8 | */ 9 | interface OrgListDialogMvp { 10 | interface View : FAView { 11 | fun onNotifyAdapter(items: List?) 12 | } 13 | 14 | interface Presenter { 15 | fun onLoadOrgs() 16 | val orgs: ArrayList 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/premium/PremiumMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.premium 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp 4 | 5 | /** 6 | * Created by kosh on 15/07/2017. 7 | */ 8 | interface PremiumMvp { 9 | 10 | interface View : BaseMvp.FAView { 11 | fun onSuccessfullyActivated() 12 | fun onNoMatch() 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.pullrequests.pager 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | import com.fastaccess.ui.modules.repos.RepoPagerMvp.TabsBadgeListener 5 | 6 | /** 7 | * Created by Kosh on 26 Mar 2017, 12:15 AM 8 | */ 9 | interface MyPullsPagerMvp { 10 | interface View : FAView, TabsBadgeListener 11 | interface Presenter 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/main/pullrequests/pager/MyPullsPagerPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.main.pullrequests.pager 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 4 | 5 | /** 6 | * Created by Kosh on 26 Mar 2017, 12:17 AM 7 | */ 8 | class MyPullsPagerPresenter : BasePresenter(), MyPullsPagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/notification/callback/OnNotificationChangedListener.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.notification.callback 2 | 3 | import com.fastaccess.data.dao.GroupedNotificationModel 4 | 5 | interface OnNotificationChangedListener { 6 | fun onNotificationChanged(notification: GroupedNotificationModel, index: Int) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/notification/fasthub/FastHubNotificationsMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.notification.fasthub 2 | 3 | import com.fastaccess.data.entity.FastHubNotification 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp 6 | 7 | /** 8 | * Created by Kosh on 19.11.17. 9 | */ 10 | interface FastHubNotificationsMvp { 11 | 12 | interface View : BaseMvp.FAView, BaseViewHolder.OnItemClickListener { 13 | fun notifyAdapter(items: List?) 14 | } 15 | 16 | interface Presenter { 17 | fun getData(): List 18 | fun load() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/pinned/gist/PinnedGistMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.pinned.gist 2 | 3 | import com.fastaccess.data.entity.Gist 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | 7 | /** 8 | * Created by Kosh on 25 Mar 2017, 7:57 PM 9 | */ 10 | interface PinnedGistMvp { 11 | interface View : FAView { 12 | fun onNotifyAdapter(items: List?) 13 | fun onDeletePinnedGist(id: Long, position: Int) 14 | } 15 | 16 | interface Presenter : BaseViewHolder.OnItemClickListener { 17 | val pinnedGists: ArrayList 18 | fun onReload() 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/pinned/issue/PinnedIssueMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.pinned.issue 2 | 3 | import com.fastaccess.data.entity.Issue 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | 7 | /** 8 | * Created by Kosh on 25 Mar 2017, 7:57 PM 9 | */ 10 | interface PinnedIssueMvp { 11 | interface View : FAView { 12 | fun onNotifyAdapter(items: List?) 13 | fun onDeletePinnedIssue(id: Long, position: Int) 14 | } 15 | 16 | interface Presenter : BaseViewHolder.OnItemClickListener { 17 | val pinnedIssue: ArrayList 18 | fun onReload() 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/pinned/pullrequest/PinnedPullRequestMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.pinned.pullrequest 2 | 3 | import com.fastaccess.data.entity.PullRequest 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | 7 | /** 8 | * Created by Kosh on 25 Mar 2017, 7:57 PM 9 | */ 10 | interface PinnedPullRequestMvp { 11 | interface View : FAView { 12 | fun onNotifyAdapter(items: List?) 13 | fun onDeletePinnedPullRequest(id: Long, position: Int) 14 | } 15 | 16 | interface Presenter : BaseViewHolder.OnItemClickListener { 17 | val pinnedPullRequest: ArrayList 18 | fun onReload() 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/pinned/repo/PinnedReposMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.pinned.repo 2 | 3 | import com.fastaccess.data.entity.PinnedRepos 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | 7 | /** 8 | * Created by Kosh on 25 Mar 2017, 7:57 PM 9 | */ 10 | interface PinnedReposMvp { 11 | interface View : FAView { 12 | fun onNotifyAdapter(items: List?) 13 | fun onDeletePinnedRepo(id: Long, position: Int) 14 | } 15 | 16 | interface Presenter : BaseViewHolder.OnItemClickListener { 17 | val pinnedRepos: ArrayList 18 | fun onReload() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | 6 | /** 7 | * Created by Kosh on 03 Dec 2016, 7:59 AM 8 | */ 9 | interface ProfilePagerMvp { 10 | interface View : FAView { 11 | fun onNavigateToFollowers() 12 | fun onNavigateToFollowing() 13 | fun onCheckType(isOrg: Boolean) 14 | } 15 | 16 | interface Presenter : FAPresenter 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/ProfilePagerPresenter.kt: -------------------------------------------------------------------------------- 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 | class ProfilePagerPresenter : BasePresenter(), 9 | ProfilePagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/profile/org/OrgProfileOverviewMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.profile.org 2 | 3 | import android.os.Bundle 4 | import com.fastaccess.data.entity.User 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 6 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 7 | 8 | /** 9 | * Created by Kosh on 03 Dec 2016, 7:59 AM 10 | */ 11 | interface OrgProfileOverviewMvp { 12 | interface View : FAView { 13 | fun onInitViews(userModel: User?) 14 | } 15 | 16 | interface Presenter : FAPresenter { 17 | fun onFragmentCreated(bundle: Bundle?) 18 | fun onWorkOffline(login: String) 19 | var login: String? 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/DummyFragment.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos 2 | 3 | import android.os.Bundle 4 | import android.view.LayoutInflater 5 | import android.view.View 6 | import android.view.ViewGroup 7 | import androidx.fragment.app.Fragment 8 | import com.fastaccess.R 9 | 10 | /** 11 | * Created by Kosh on 11 Mar 2017, 12:10 AM 12 | */ 13 | class DummyFragment : Fragment() { 14 | override fun onCreateView( 15 | inflater: LayoutInflater, 16 | container: ViewGroup?, 17 | savedInstanceState: Bundle? 18 | ): View? { 19 | return inflater.inflate(R.layout.single_container_layout, container, false) 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/RepoCodePagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.code 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | import com.fastaccess.ui.modules.repos.RepoPagerMvp.TabsBadgeListener 6 | 7 | /** 8 | * Created by Kosh on 31 Dec 2016, 1:35 AM 9 | */ 10 | interface RepoCodePagerMvp { 11 | interface View : FAView, TabsBadgeListener { 12 | fun canPressBack(): Boolean 13 | fun onBackPressed() 14 | } 15 | 16 | interface Presenter : FAPresenter 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/code/RepoCodePagerPresenter.kt: -------------------------------------------------------------------------------- 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 | class RepoCodePagerPresenter : BasePresenter(), 9 | RepoCodePagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/branches/pager/BranchesPagerListener.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.branches.pager 2 | 3 | import com.fastaccess.data.dao.BranchesModel 4 | 5 | /** 6 | * Created by kosh on 15/07/2017. 7 | */ 8 | interface BranchesPagerListener { 9 | fun onItemSelect(branch: BranchesModel) 10 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/labels/create/CreateLabelMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.labels.create 2 | 3 | import com.fastaccess.data.dao.LabelModel 4 | import com.fastaccess.ui.base.adapter.BaseViewHolder 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | 7 | /** 8 | * Created by Kosh on 02 Apr 2017, 5:30 PM 9 | */ 10 | interface CreateLabelMvp { 11 | interface View : FAView { 12 | fun onSuccessfullyCreated(labelModel1: LabelModel) 13 | fun onColorSelected(color: String) 14 | } 15 | 16 | interface Presenter : BaseViewHolder.OnItemClickListener { 17 | fun onSubmitLabel( 18 | name: String, color: String, 19 | repo: String, login: String 20 | ) 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/license/RepoLicenseMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.license 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp 4 | 5 | /** 6 | * Created by Kosh on 30 Jun 2017, 12:32 PM 7 | */ 8 | 9 | interface RepoLicenseMvp { 10 | interface View : BaseMvp.FAView { 11 | fun onLicenseLoaded(license: String) 12 | } 13 | 14 | interface Presenter { 15 | fun onLoadLicense(login: String, repo: String) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/license/RepoLicensePresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.license 2 | 3 | import com.fastaccess.provider.rest.RestProvider 4 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 5 | 6 | /** 7 | * Created by Kosh on 30 Jun 2017, 12:34 PM 8 | */ 9 | class RepoLicensePresenter : BasePresenter(), RepoLicenseMvp.Presenter { 10 | 11 | override fun onLoadLicense(login: String, repo: String) { 12 | makeRestCall(RestProvider.getRepoService(isEnterprise).getLicense(login, repo), 13 | { license -> sendToView { it.onLicenseLoaded(license) } }) 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/locking/LockIssuePrCallback.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.locking 2 | 3 | /** 4 | * Created by Kosh on 10.02.18. 5 | */ 6 | 7 | interface LockIssuePrCallback { 8 | fun onLock(reason: String) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/extras/popup/IssuePopupMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.extras.popup 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | 5 | /** 6 | * Created by Kosh on 27 May 2017, 1:55 PM 7 | */ 8 | interface IssuePopupMvp { 9 | interface View : FAView { 10 | fun onSuccessfullySubmitted() 11 | } 12 | 13 | interface Presenter { 14 | fun onSubmit(login: String, repoId: String, issueNumber: Int, text: String) 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/git/delete/DeleteContentFileCallback.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.git.delete 2 | 3 | /** 4 | * Created by Hashemsergani on 02/09/2017. 5 | */ 6 | interface DeleteContentFileCallback { 7 | 8 | fun onDelete(message: String, position: Int) 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.issues 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | import com.fastaccess.ui.modules.repos.RepoPagerMvp.TabsBadgeListener 6 | 7 | /** 8 | * Created by Kosh on 31 Dec 2016, 1:35 AM 9 | */ 10 | interface RepoIssuesPagerMvp { 11 | interface View : FAView, TabsBadgeListener { 12 | fun onAddIssue() 13 | fun setCurrentItem(index: Int, refresh: Boolean) 14 | fun onChangeIssueSort(isLastUpdated: Boolean) 15 | val currentItem: Int 16 | fun onScrolled(isUp: Boolean) 17 | } 18 | 19 | interface Presenter : FAPresenter 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/issues/RepoIssuesPagerPresenter.kt: -------------------------------------------------------------------------------- 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 | class RepoIssuesPagerPresenter : BasePresenter(), 9 | RepoIssuesPagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | import com.fastaccess.ui.modules.repos.RepoPagerMvp.TabsBadgeListener 6 | 7 | /** 8 | * Created by Kosh on 31 Dec 2016, 1:35 AM 9 | */ 10 | interface RepoPullRequestPagerMvp { 11 | interface View : FAView, TabsBadgeListener { 12 | // @get:IntRange(from = 1) 13 | val currentItem: Int 14 | fun onScrolled(isUp: Boolean) 15 | } 16 | 17 | interface Presenter : FAPresenter 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/RepoPullRequestPagerPresenter.kt: -------------------------------------------------------------------------------- 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 | class RepoPullRequestPagerPresenter : BasePresenter(), 9 | RepoPullRequestPagerMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 4 | 5 | /** 6 | * Created by Kosh on 18 Mar 2017, 12:11 PM 7 | */ 8 | interface MergePullRequestMvp { 9 | interface MergeCallback { 10 | fun onMerge(msg: String, mergeMethod: String) 11 | } 12 | 13 | interface View : FAView 14 | interface Presenter 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/pull_requests/pull_request/merge/MergePullRequestPresenter.kt: -------------------------------------------------------------------------------- 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 | class MergePullRequestPresenter : BasePresenter(), 9 | MergePullRequestMvp.Presenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/repos/wiki/WikiMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.repos.wiki 2 | 3 | import android.content.Intent 4 | import com.fastaccess.data.dao.wiki.WikiContentModel 5 | import com.fastaccess.data.dao.wiki.WikiSideBarModel 6 | import com.fastaccess.ui.base.mvp.BaseMvp 7 | 8 | /** 9 | * Created by Kosh on 13 Jun 2017, 8:11 PM 10 | */ 11 | interface WikiMvp { 12 | interface View : BaseMvp.FAView { 13 | fun onLoadContent(wiki: WikiContentModel) 14 | fun onSetPage(page: String) 15 | fun showPrivateRepoError() 16 | } 17 | 18 | interface Presenter { 19 | fun onActivityCreated(intent: Intent?) 20 | fun onSidebarClicked(sidebar: WikiSideBarModel) 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/reviews/callback/ReviewCommentListener.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.reviews.callback 2 | 3 | import android.os.Bundle 4 | import com.fastaccess.data.dao.CommitLinesModel 5 | 6 | /** 7 | * Created by Kosh on 24 Jun 2017, 12:38 PM 8 | */ 9 | interface ReviewCommentListener { 10 | fun onCommentAdded(comment: String, item: CommitLinesModel, bundle: Bundle?) 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/search/repos/files/SearchFileMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.search.repos.files 2 | 3 | import android.os.Bundle 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 5 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 6 | import com.fastaccess.ui.widgets.FontEditText 7 | 8 | interface SearchFileMvp { 9 | interface View : FAView { 10 | fun onValidSearchQuery(query: String) 11 | } 12 | 13 | interface Presenter : FAPresenter { 14 | fun onSearchClicked(editText: FontEditText, inPath: Boolean) 15 | fun onActivityCreated(extras: Bundle?) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/settings/category/SettingsCategoryPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.settings.category 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp.FAPresenter 4 | import com.fastaccess.ui.base.mvp.BaseMvp.FAView 5 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 6 | 7 | /** 8 | * Created by JediB on 5/12/2017. 9 | */ 10 | class SettingsCategoryPresenter : BasePresenter(), FAPresenter -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/settings/sound/NotificationSoundMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.settings.sound 2 | 3 | import android.net.Uri 4 | import com.fastaccess.data.dao.NotificationSoundModel 5 | import com.fastaccess.ui.base.mvp.BaseMvp 6 | 7 | /** 8 | * Created by kosh on 23/07/2017. 9 | */ 10 | 11 | interface NotificationSoundMvp { 12 | interface View : BaseMvp.FAView { 13 | fun onAddSound(sound: NotificationSoundModel) 14 | fun onCompleted() 15 | } 16 | 17 | interface Presenter { 18 | fun loadSounds(default: String? = null) 19 | } 20 | 21 | interface NotificationSoundListener { 22 | fun onSoundSelected(uri: Uri? = null) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/theme/code/ThemeCodeMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.theme.code 2 | 3 | import com.fastaccess.ui.base.mvp.BaseMvp 4 | import com.prettifier.pretty.PrettifyWebView 5 | 6 | /** 7 | * Created by Kosh on 22 Jun 2017, 11:50 PM 8 | */ 9 | interface ThemeCodeMvp { 10 | 11 | interface View : BaseMvp.FAView, PrettifyWebView.OnContentChangedListener { 12 | fun onInitAdapter(list: List) 13 | } 14 | 15 | interface Presenter { 16 | fun onLoadThemes() 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/theme/code/ThemeCodePresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.theme.code 2 | 3 | import com.fastaccess.helper.RxHelper 4 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 5 | import com.prettifier.pretty.helper.CodeThemesHelper 6 | import io.reactivex.Observable 7 | 8 | /** 9 | * Created by Kosh on 22 Jun 2017, 11:52 PM 10 | */ 11 | 12 | class ThemeCodePresenter : BasePresenter(), ThemeCodeMvp.Presenter { 13 | 14 | override fun onLoadThemes() { 15 | manageDisposable(RxHelper.getObservable(Observable.just(CodeThemesHelper.listThemes())) 16 | .subscribe({ list -> sendToView { it.onInitAdapter(list) } }, { onError(it) })) 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragmentMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.theme.fragment 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | import com.fastaccess.ui.base.mvp.BaseMvp 6 | 7 | /** 8 | * Created by Kosh on 08 Jun 2017, 10:52 PM 9 | */ 10 | 11 | interface ThemeFragmentMvp { 12 | 13 | interface ThemeListener { 14 | fun onChangePrimaryDarkColor(@ColorInt color: Int, darkIcons: Boolean) 15 | 16 | fun onThemeApplied() 17 | } 18 | 19 | interface View : BaseMvp.FAView 20 | 21 | interface Presenter 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/theme/fragment/ThemeFragmentPresenter.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.theme.fragment 2 | 3 | import com.fastaccess.ui.base.mvp.presenter.BasePresenter 4 | 5 | /** 6 | * Created by Kosh on 08 Jun 2017, 10:52 PM 7 | */ 8 | 9 | class ThemeFragmentPresenter : BasePresenter(), ThemeFragmentMvp.Presenter 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/modules/trending/TrendingMvp.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.modules.trending 2 | 3 | import androidx.annotation.ColorInt 4 | import com.fastaccess.ui.base.mvp.BaseMvp 5 | 6 | /** 7 | * Created by Kosh on 30 May 2017, 10:51 PM 8 | */ 9 | 10 | interface TrendingMvp { 11 | interface View : BaseMvp.FAView { 12 | fun onAppend(title: String, @ColorInt color: Int) 13 | fun onClearMenu() 14 | } 15 | 16 | interface Presenter { 17 | fun onLoadLanguage() 18 | 19 | fun onFilterLanguage(key: String) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/AppbarRefreshLayout.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout 6 | import com.fastaccess.R 7 | 8 | /** 9 | * Created by kosh on 7/30/2015. CopyRights @ 10 | */ 11 | class AppbarRefreshLayout : SwipeRefreshLayout { 12 | constructor(context: Context) : super(context, null) 13 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { 14 | setColorSchemeResources( 15 | R.color.material_amber_700, 16 | R.color.material_blue_700, 17 | R.color.material_purple_700, 18 | R.color.material_lime_700 19 | ) 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/CardsPagerTransformerBasic.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets 2 | 3 | import android.view.View 4 | import androidx.viewpager.widget.ViewPager 5 | import kotlin.math.abs 6 | 7 | class CardsPagerTransformerBasic(private val baseElevation: Int, private val raisingElevation: Int) : ViewPager.PageTransformer { 8 | override fun transformPage(page: View, position: Float) { 9 | val absPosition = abs(position) 10 | if (absPosition >= 1) { 11 | page.elevation = baseElevation.toFloat() 12 | } else { 13 | page.elevation = (1 - absPosition) * raisingElevation + baseElevation 14 | } 15 | } 16 | 17 | 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/ui/widgets/recyclerview/ProgressBarViewHolder.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.ui.widgets.recyclerview 2 | 3 | import android.view.View 4 | import android.view.ViewGroup 5 | import com.fastaccess.R 6 | import com.fastaccess.ui.base.adapter.BaseViewHolder 7 | 8 | /** 9 | * Created by kosh on 03/08/2017. 10 | */ 11 | class ProgressBarViewHolder private constructor(itemView: View) : BaseViewHolder(itemView) { 12 | override fun bind(t: Any) {} 13 | 14 | companion object { 15 | fun newInstance(viewGroup: ViewGroup?): ProgressBarViewHolder { 16 | return ProgressBarViewHolder(getView(viewGroup!!, R.layout.progress_layout)) 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fastaccess/utils/ParcelUtil.kt: -------------------------------------------------------------------------------- 1 | package com.fastaccess.utils 2 | 3 | import android.os.Parcel 4 | import android.os.Parcelable 5 | 6 | class ParcelUtil { 7 | companion object { 8 | inline fun createParcel(crossinline createFromParcel: (Parcel) -> T?): Parcelable.Creator = 9 | object : Parcelable.Creator { 10 | override fun createFromParcel(source: Parcel): T? = createFromParcel(source) 11 | override fun newArray(size: Int): Array = arrayOfNulls(size) 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/zzhoujay/markdown/style/LinkSpan.kt: -------------------------------------------------------------------------------- 1 | package com.zzhoujay.markdown.style 2 | 3 | import android.text.TextPaint 4 | import android.text.style.URLSpan 5 | 6 | /** 7 | * Created by zhou on 16-7-2. 8 | * 链接Span 9 | */ 10 | class LinkSpan(url: String?, private val color: Int) : URLSpan(url) { 11 | override fun updateDrawState(ds: TextPaint) { 12 | super.updateDrawState(ds) 13 | ds.color = color 14 | ds.isUnderlineText = false 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/animator/minus_to_plus.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/animator/plus_minus_rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/animator/plus_to_minus.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/color/search_tab_highlighter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/web_hi_res_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/app/src/main/res/drawable-nodpi/web_hi_res_512.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-small/splash_screen_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/ic_app_shortcut_github.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/ic_app_shortcut_issues.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/ic_app_shortcut_pinned.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/ic_app_shortcut_profile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/ic_app_shortcut_pull_requests.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_edittext.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/app/src/main/res/drawable-xxxhdpi/ic_edittext.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LightDestory/FastHub-RE/bde32940a89bca7075af045951e9ecad911c1841/app/src/main/res/drawable-xxxhdpi/ic_timeline_arrow_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/arrow_toggle_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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/bottom_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fastscroller_bubble.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_announcement.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_issues.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_issues_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_pinned.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_pinned_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_profile.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_drop_down.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_drop_up.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backup.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_blank.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_block.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bookmark.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brower.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brush.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checkbox.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checkbox_empty.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checkbox_empty_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checkbox_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_circle_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_all.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_code.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_comment.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_comment_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_copy.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_square.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_download.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_eye.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_feedback.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_document.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_multi.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_filter.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /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_format_bold.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_list_bulleted.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_quote.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_strikethrough.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_underlined.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fullscreen.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_gists.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_group.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_one.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_three.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_header_two.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_heart.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_heart_full.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_image.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_inline_code.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_insert_link.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_closed_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issue_opened.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issue_opened_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issues.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issues_shortcut.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_issues_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_label.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_license.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lightblub.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_list_numbers.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_location.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_logout.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_milestone.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_minus.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_money.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_newline.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notification.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notifications_none.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_overflow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pin.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pin_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pin_shortcut.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_profile.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_profile_shortcut.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_project.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_push.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_redo.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_repo.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restricted.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ring.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ring_sound.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_filled.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_storage_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_submodule.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_subscribe.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_support.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_time.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_time_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_title.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_trash.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_trending.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_undo.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/drawable/ic_unlock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_unsubscribe.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_update.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_wrap_text.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/rect_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/right_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/scrim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/splash_screen_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/toolbar_shadow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/top_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 10 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/bottom_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-land/fragment_container.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-land/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-sw600dp/bottom_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-sw600dp/fragment_container.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-sw600dp/issues_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout-sw600dp/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/activity_settings_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/add_banner_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/branches_tabbed_viewpager.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/dialog_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/fragment_container.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/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/main_nav_fragment_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/milestone_dialog_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/notifications_bottom_sheet_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/settings_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/main_layouts/layout/submit_review_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/avatar_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/home_button.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/progress_dialog_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/single_container_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/other_layouts/layout/state_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layouts/row_layouts/layout/preference_widget_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 |