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 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 28, 2022
A app client for Github

Git.NB A android app client for Github. 效果图 关于项目 Git.NB现以升级到2.0,功能大有升级,UI大改版本。各种有趣的操作,欢迎下载代码试完。 如果发现有任何问题和建议,随时欢迎Email或者开Issues, 如果有版权问题,立即删除。 使用的开源技术

null 319 Sep 9, 2022
GitHub Android application

Gitskarios Beta Testing Community Forum / Discussion Join the beta here Download it from Google Play! What is Gitskarios? Gitskarios is an Android App

Gitskarios 530 Dec 19, 2022
An Android App for Github

A Github Android APP How does it look like ? Feature Last Events Repository Detail User Detail Read formatted code Star repository, follow people Sear

Quinn 492 Jan 3, 2023
GitPoint is one of the most feature-rich unofficial GitHub clients that is 100% free.

View repository and user information, control your notifications and even manage your issues and pull requests. Built with React Native, GitPoint is one of the most feature-rich unofficial GitHub clients that is 100% free.

GitPoint 4.6k Dec 28, 2022
A Reddit client for Android

This is a Reddit client on Android written in Java. It does not have any ads and it features clean UI and smooth browsing experience.

null 2.6k Jan 9, 2023
An unofficial open source Reddit client for Android.

RedReader An unofficial, open source Android client for Reddit. Features Free and open-source Software - no ads/tracking Lightweight and fast Swipe po

null 1.4k Jan 7, 2023
Open-source alternative Instagram client on Android.

Instagram client; previously known as InstaGrabber.

Austin Huang 1.1k Jul 23, 2021
A light Sina Weibo client for Android

BlackLight 新浪微博客户端 请注意,当前BlackLight的开发已经被冻结,直到2016年高考后重启。 The development progress has been FROZEN till June 2016. 详细介绍以及Changelog请见Play商店。 https://pl

Paper Airplane Dev Team/纸飞机开发团队 884 Nov 22, 2022
Cnblogs Client for Android - Material Design

Cotable - Yet Another Cnblogs Client for Android Description Cotable = Code + Stable (The Paradise of Coder) The Android client of Cnblogs that named

Steve Lemuel 38 Feb 12, 2022
A handy Dribbble client for Android.

Notice Gunnner has been deprecated since Dribbble API v1 has been retired on March 26, 2018. Gunnner Gunnner1 is a handy Dribbble client for Android.

Egor Neliuba 60 Feb 12, 2022
An Android client for Pump.io

Impeller - An Android client for Pump.io What is it A client for Pump.io, intended to provide a rich, platform-integrated experience. Runs on Android

Erin 46 Nov 1, 2022
A shadowsocks client for Android

Shadowsocks for Android for Android & Chrome OS (beta) for Android TV (beta) PREREQUISITES JDK 1.8 Android SDK Android NDK Rust with Android targets i

shadowsocks 33.2k Jan 2, 2023
Skooter App - Android client source code

Skooter App STAY CONNECTED. LOCALLY Skooter is a FREE mobile application that acts like a Hyper Local Bulletin Board for your area by showing the most

Prathmesh Ranaut 61 Feb 23, 2022
An Android client for the microblogging server Mastodon

Tusky Tusky is a beautiful Android client for Mastodon. Mastodon is an ActivityPub federated social network. That means no single entity controls the

Tusky 1.8k Dec 31, 2022
YouJoin Android Client, a cool app of connection, use Material Design.

YouJoin-Android 简介 这个repo是YouJoin社交平台的Android客户端,代码由本人独立编写,功能和特点包括: 采用Material Design设计 登录注册 即时聊天 个人中心(支持资料编辑、头像上传) 心情动态(支持最多九张图片;支持点赞、评论) 好友关注 附近的人(采

ZZQ 298 Nov 29, 2022
Simple Twitter Client just for tweeting, written in Kotlin with reactive MVVM-like approach

Monotweety Simple Twitter Client just for tweeting. Monotweety is also available at F-Droid compatible repository called IzzyOnDroid F-Droid Repositor

Yasuhiro SHIMIZU 110 Nov 11, 2022
Yet another Twitter unofficial client for Lollipop.

Tweetin Yet another Twitter unofficial client. Just design for Lollipop now!!! Screenshot: How to use the source code? Just import the Tweetin folder

Matthew Lee 177 Aug 24, 2022
Android Stories library - Instagram-like android stories library that supports images from disk or from internet (url)

Android Stories Library Instagram like stories library for Android. Add it in your root build.gradle at the end of repositories: allprojects { reposi

Panagiotis Makris 3 Dec 20, 2022