Github client for Android

Overview

Octodroid

OctoDroid

This application provides access to GitHub and lets you stay connected with your network

Download

Get it on Google Play Download OctoDroid from F-Droid.org

Main features

Repository

  • List repositories
  • Watch/unwatch repository
  • View branches/tags
  • View pull requests
  • View contributors
  • View watchers/networks
  • View issues

User

  • View basic information
  • Activity feeds
  • Follow/unfollow user
  • View public/watched repositories
  • View followers/following
  • View organizations (if type is user)
  • View members (if type is organization)

Issue

  • List issues
  • Filter by label, assignee or milestone
  • Create/edit/close/reopen issue
  • Comment on issue
  • Manage labels
  • Manage milestones

Commit

  • View commit (shows files changed/added/deleted)
  • Diff viewer with colorized HTML
  • View commit history on each file

Tree/File browser

  • Browse source code
  • View code with syntax hightlighting

Gist

  • List public gists
  • View gist content

Explore Github

  • Public timeline
  • Trending repos (today, week, month, forever)
  • GitHub blog

..and many more

How to Build Octodroid

  • Ensure Android SDK platform version 26 and build-tools version 26.0.2 are installed
  • Register an application for your OctoDroid usage under your GitHub settings
    • naming is up to you
    • callback URL must be gh4a://oauth
  • Create a client.properties file with the following content:
" ClientSecret="" ">
ClientId=""
ClientSecret=""
  • Build using Gradle
./gradlew assembleDebug
  • To get a full list of available tasks
./gradlew tasks

Open Source Libraries

Contributions

Comments
  • Reactions in comments and issues

    Reactions in comments and issues

    It would be great if the new reactions in the web version of GitHub would be also visible in the app for comments, issues and pull requests. Also it would be awesome to be able to set reactions, too.

    enhancement preview-api-only 
    opened by FabianWilms 59
  • Repository fragment rx refactor

    Repository fragment rx refactor

    Newly introduced :

    • rxJava2
    • rxAndroid
    • retrolambda

    removed classes :

    • FillReadmeTask
    • ReadmeLoader

    FillReadmeTask has been replaced by asynchronous operation concatenation from flatMap operator (rxJava2) while ReadmeLoader has been removed in favour of RepositoryService.

    The newly created service package is meant to gather Service classes, each one wrapping data loading logic that is currently contained into Loaders. This would have the advantage of reducing the number of Loader and AsyncTask classes used, plus it would group asynchronous data fetch processes by Fragment, instead of by Data.

    This would make the program logic easier to follow in my opinion, since background services populating the view would be all declared in one Service class, instead of multiple Loader and AsyncTask classes.

    opened by MattiaPrimavera 50
  • More fixes

    More fixes

    This fixes the downloads of downloads and zipballs as well as this NPE:

    java.lang.NullPointerException at com.gh4a.activities.RepositoryActivity.onOptionsItemSelected(RepositoryActivity.java:405) at android.support.v4.app.Watson.onMenuItemSelected(Watson.java:119) at com.actionbarsherlock.ActionBarSherlock.callbackOptionsItemSelected(ActionBarSherlock.java:603) at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchOptionsItemSelected(ActionBarSherlockNative.java:78) at com.actionbarsherlock.app.SherlockFragmentActivity.onMenuItemSelected(SherlockFragmentActivity.java:205) at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1012) at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735) at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152) [...]

    opened by maniac103 50
  • Pull request reviews

    Pull request reviews

    Heavy work in progress. Created to make it easy for myself to list tasks and share updates.

    Tasks

    :white_check_mark: Step 1 - Behavior

    :white_check_mark: Review Comments screen

    • [x] ~~Redirect to correct commit or pull request changes when clicking on diff hunk file~~
      • Apparently, to display diffs for outdated comments we need to load multiple commits and combine the output. This means that support for this is not something for this pull request. The current solution is just to disable clicking on outdated files.
    • [x] ~~Figure out how many diff lines to display~~
      • I don't really see a way how to determine this. 4 lines work nicely for now
    • [x] ~~Figure out when to display hunk header in diffs (@@ line)~~
      • These are displayed when they are located directly above the first visible line. For now, I'm just going to not display them at all.
    • [x] Add option to enter file with selected comment highlighted
    • [x] Fix sorting issues
      • Most probably the sort order is first by filename, then by line number.
    • [x] Toolbar actions
      • [x] Share
      • [x] Open in browser
    • [x] Make line numbers clickable for sharing
    • [x] Replying
      • [x] Figure out when to disable reply buttons (They are not always available)
        • If review comment is a reply to someone else's comment and was submitted together with other comments then it's displayed without reply button. Right now the app doesn't display it at all so I'll have to fix that. It's a bit confusing but better let's stay consistent :)
      • [x] Add replying dialog
      • [x] Refresh review after replying
    • [x] Comment actions
      • [x] Edit
      • [x] Delete

    :white_check_mark: Reviews

    • [x] Add indicator showing that all comments in review are outdated
    • [x] Correctly load pending reviews and their comments
    • [x] Add options menu
      • [x] ~~Edit (if has body text)~~
        • Couldn't find a way to edit reviews with API
      • [x] Share
    • [x] ~~Add view changes button (figure out how exactly it works)~~
      • Similar to viewing files for outdated comments this would require loading and combining diff from multiple commits.
    • [x] Add quoting for reviews with body

    :white_check_mark: Link handling

    • [x] Handle #pullrequestreview-<id> links
    • [x] Handle #discussion_r<id> links
    • [x] Handle #discussion-diff-<id><line id> links

    Step 2 - User Interface

    General

    • [x] Test with dark theme

    Review Comments screen

    • [x] Make text in diff hunks selectable
    • [x] Improve appearance of file headers
    • [x] Make outdated hunks indicator easier to distinguish
    • [x] Add spacing/dividers between hunks?

    Reviews

    • [x] Improve show details button, should it be so big?
    • [x] Improve review details text (right now hard to see when if it's a body or summary)
    • [x] Improve indicator for all outdated comments
    • [x] Add correct review type icons (approved, requested changes, etc)

    Step 3 - Cleanup

    • [x] Extract all strings

    This is 1st pull request implementing reviews support. It's focused on displaying them and replying to comment. Next pull requests will deal with creating new reviews, requesting reviewers etc.

    #391

    opened by Tunous 45
  • Too small scrolling text area when entering issue bodies and comments

    Too small scrolling text area when entering issue bodies and comments

    When entering the body text for a new issue, or a comment on an existing issue, we only have space (depending on device) for about four lines of text. Even though we can scroll within that, it's very cramped.

    When clicking the edit button next to an existing comment, we get a much larger text editor to work in. It would good to be able to somehow use such an editor when first creating issues or comments.

    opened by JohnVeness 44
  • Material Design

    Material Design

    If Octodroid/GH4A could have Material design implemented, that would be awesome, especially as the overall design style makes the usage of apps cleaner and easier.

    opened by ir-g 37
  • Notifications

    Notifications

    Work in progress.

    Still thinking about this but I tink I have a basic implementation idea. I want it to look similar to the event cards in "News Feed" but since each notification is a different item I'll have to do it a bit differently.

    1. When the notification in a holder is null then we'll render a header with repository name and a button to mark all notifications from that repo as read. It should also have standing out background and a top shadow to replicate the card look.

    2. When the notification is not null then we'll render a notification. This will have a card background and some more notification specific stuff on it. Not sure exactly how I'll make this one look like.

    3. When the notification is set to be the last one it'll also render the bottom shadow which will, in turn, look like all the notifications and header were located on a single card.

    You can get a basic idea of how the grouping will work if you open the app and check the log.

    We'll see how it'll turn out once I get some more time to finish this. Let me know if you have any suggestions or questions.

    Closes #175.

    opened by Tunous 35
  • Notifications

    Notifications

    Implemented using https://github.com/evernote/android-job for backward compatibility without the need to have Google Play Services.

    • Each GitHub notifications gets its own notification and all of them are bundled together (Not sure how it works on older API, need to test that)
    • There is a setting to toggle them, which I have set to be disabled by default
    • There is a setting to change synchronization interval ranging from 15min (lowest possible value) to 6 hours (can add higher values)
    • Clicking on notification opens its corresponding screen and automatically dismisses it from notification drawer
    • All notifications belong to a single channel on Android O so users can customize here a priority, sound, vibration, etc.

    Potential improvements:

    • Auto-mark as read when clicking on notifications (could be controlled by setting)
    • Button to manually mark as read (unsubscribe?)
    • Include launcher badges (I plan to create a separate pull request for that once this one is merged)
    • Better icon. I've used the launcher icon but it would be nice if someone could create a vector drawable with a similar shape. @slapperwan perhaps you still have contact with the guy that made the launcher icon (Would be also nice to create adaptive icon)
    • Display icon of repository owner on each notification. (@maniac103 I'm not sure myself how to make it work well. We need something to load a Bitmap and the loading must finish before Job finishes.)
    • Support notifications for multiple accounts
    • Handle logged-out case (do not check for notifications when logged out, stop job when logging out)

    Closes #42

    opened by Tunous 33
  • Add old pure black theme

    Add old pure black theme

    OctoDroid's old pure black theme, simple and clean, now gone, should be kept as a third alternative.

    I believe I'm not the only one who can't stand the new Material Design dark theme, and although I appreciate the effort to modernize app's appearance but for some things like git the oldschool black terminal look is natural. Currently I've reverted to 3.7.2, which is perfect for me, and disabled updates.

    • black

      • OPEN status is immediately visible
      • header is small and unobtrusive
      • subject (title) is emphasized
      • overall: content is dominating

      black-fs8

    • Material Dark

      • OPEN status is practically lost
      • header is huge, bright and dominating
      • header labels are wrapped in a broken way
      • subject (title) isn't the most readable thing in the header, so it looks unstructured
      • avatar is tinted
      • overall: appearance is prioritized, content is subdued, which isn't what Material Design is about, actually.

      gray-fs8

    opened by tophf 29
  • Implement GitHub Notifications

    Implement GitHub Notifications

    It should be really useful to add a panel with GitHub notifications, near the news feed. The API seems simple to use: https://developer.github.com/v3/activity/notifications/

    In a second round, it can help to solve #42.

    feature 
    opened by LeoColomb 28
  • counters issue in

    counters issue in "About" tabs

    Octodriod v4.4.0 OS version : Android 8.1.0

    There seems to be a problem with the counters of stars, followers, gist... that we can find in "about" tabs (counters on repositories list are ok)

    When counters equals 0 on github, Octodroid set them at 1 For a fresh new project : issue, PR, fork, stars & watcher are at 1

    I tried to star one of my projects : counter is correctly updated in repositories list but it stays at 1 in "about" tab (and this time, it is correct).

    I saw this issue on directory "about" & user "about" tabs.

    opened by giom-l 26
  • A few fixes to the notification screen

    A few fixes to the notification screen

    This small PR puts together a few fixes for some minor bugs I found in the Notifications screen:

    • tapping on the repository name accidentally marks all notifications as read (#1255)
    • unsubscribing from a notification thread marks the notification as read in the UI, however this isn't done on the server side: after refreshing the screen the notification is still displayed as unread (#1258). To address this, I've decided to display a toast to let the user know that the unsubscription was successful, without marking the notification as read.
    • if a notification has already been read, avoid calling the API to mark it as read again when the user taps on it. This prevents useless API calls and works around a weird side-effect (maybe a bug?) of the GH API endpoint, which marks a notification as read but also unexpectedly moves it to Inbox if it was marked as done.

    Fixes #1255 Fixes #1258

    opened by Fs00 0
  • [Feature request] Copy username

    [Feature request] Copy username

    Hello,

    It would be nice to be able to copy usernames, either by making those selectable, or by adding the option anywhere possible, especially in issue/PR comments and user profile.

    Thanks

    opened by KaKi87 0
  • Show review_dismissed events in pull request timeline

    Show review_dismissed events in pull request timeline

    This PR adds support for review_dismissed events in the pull request timeline.

    dismissed_review_example

    The implementation lacks two things compared to the GitHub UI:

    • the user who made the dismissed review (GH UI says "X dismissed Y's stale review"), because objects returned by the API don't contain that piece of information
    • the dismissal message, which can be optionally set when the review is dismissed manually. I honestly didn't feel like changing the layout to add that detail, which isn't used most of the time in my experience.

    I've also tweaked the message that gets displayed when a review is dismissed: now it says "previously reviewed" instead of just "reviewed", so that at least users can see at a glance which reviews are dismissed. (It would be nice to show "previously approved/requested changes" like the GitHub UI, but again the API doesn't provide that piece of information :/)

    opened by Fs00 0
  • Navigation icon is red on night theme on Android Lollipop

    Navigation icon is red on night theme on Android Lollipop

    While doing some tests on Lollipop, I've noticed that for some strange reason when the night theme is enabled in settings, the navigation icon in the app bar is red instead of white.

    broken_bar_api21

    It doesn't seem to be a recent regression, since the bug was present even at commit 4a620a9b (yes, I've randomly checked out a random old commit and gave it a try).

    It is also worth noting the missing margin for the dropdown arrow in the top right corner (it's too close to the profile picture, compared to recent Android versions).

    opened by Fs00 0
Releases(4.6.10)
Owner
Azwan Adli
Azwan Adli
GitHub application fetches events, repositories and profile using GitHub APIs

GitHub application using GitHub REST API Dagger MVVM architecture Mockk Jetpack Compose Kotlin Coroutines Application pages Attention If you want to u

Marjan DavoodiNejad 6 Oct 17, 2022
GitHub client for Android based on the abandoned official app

ForkHub ForkHub started off as a fork of the official Android app from GitHub, and has since seen lots of improvements. You can see a comprehensive li

Jon Ander Peñalba 2.8k Dec 28, 2022
Github client for Android

OctoDroid This application provides access to GitHub and lets you stay connected with your network Download Main features Repository List repositories

Azwan Adli 1.5k Dec 30, 2022
GitFlame is the ultimate GitHub client for Android.

GitFlame Yet another open-source GitHub client app built from scratch using latest and best Android practices. Tech stack & Open-source libraries Mini

Klejvi Kapaj 11 Dec 27, 2022
An unofficial Zerotier Android client patched from official client

An unofficial Zerotier Android client patched from official client

KAAAsS 819 Dec 29, 2022
MEGA Android Client - A fully-featured client to access your Cloud Storage provided by MEGA

A fully-featured client to access your Cloud Storage provided by MEGA. This document will guide you to build the application on a Linux machine with Android Studio.

Mega Limited 1.1k Jan 3, 2023
An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

Joel Kanyi 9 Aug 26, 2022
Vanilla Music Player for Android (abandoned). Visit https://github.com/vanilla-music/vanilla for an actively developed fork

Translating You can help translate here. If your language isn't on the list, open an issue and I can add it. Building To build you will need: A Java c

Chris Eby 154 Dec 9, 2022
Implementation of the application using the latest Android Tech Stack and the GitHub REST API.

GitHub Viewer Implementation of the application using the latest Android Tech Stack and the GitHub REST API. <!-- Github login. You can change the use

Vitaliy Zarubin 53 Jan 3, 2023
Shows how to build a VPN app for Android using leaf: https://github.com/eycorsican/leaf .

aleaf Shows how to build a VPN app for Android using leaf. Dependencies Rust GCC/clang Make SDK NDK LLVM (Windows host only, see below) Building Linux

null 34 Sep 3, 2021
Git history is an android application that simply tracks GitHub repository's issues.

Git History About Git history is an android application that simply tracks GitHub repository's issues. You can search for user and get all public repo

Aditya Sutar 0 Oct 17, 2021
Um aplicativo Android desenvolvido para fazer downloads de branches de repositórios do Github.

Branch Downloader Branch Downloader é um aplicativo Android desenvolvido para que o usuário possa baixar branches de repositórios do Github. Índice Fu

Sebastião Lucas Marques dos Santos 0 Jan 13, 2022
Kurly-assignment - Search GitHub Repository App For Android

Search GitHub Repository App Outline Github 내의 수많은 리포지토리를 키워드를 통해 검색할 수 있습니다. Ho

Minjeong Kim 0 Jan 5, 2022
GithubBrower - Github Browser Sample with Android Architecture Components

Github Browser Sample with Android Architecture Components This is a sample app

KuanTing 0 Jan 6, 2022
Github Repo Search Android App

Github Repo Search Android App Modular android app for searching trending Github repositories and the details of each repository.

mertselcukdemir 4 Mar 7, 2022
A GitHub user Android apps using Dagger 2, MVVM, Modularization, Clean Architecture, and Airbnb Epoxy

A GitHub user Android apps using Dagger 2, MVVM, Modularization, Clean Architecture, and Airbnb Epoxy.

Alva Yonara Puramandya 3 Dec 28, 2022
This projects implements Github User search with Android Pagination 3 Library

GithubUser Search An Android App that lists the github users sorted by most followers Resources GitHub API Building Clone the git repository Build ./g

Siyanatullah Khan 3 Oct 12, 2022
Android application for GitHub user search and view user details

GitHubApp Android application for GitHub user search and view user details Architecture UI observing the live data for the main list as received from

null 1 Mar 29, 2022