Coder Social home page Coder Social logo

pockethub's Introduction

PocketHub Build Status Get it on Google Play

This repository contains the source code for the PocketHub Android app.

This is the same repository as the now-defunct official GitHub Android app.

What's going on here?

What happened to the old app?

GitHub didn't want to maintain the app anymore, so it's been released to the community and maintained as a public project. We are actively working towards a re-release to the Play Store, and this app will be the spiritual successor to the original GitHub app.

What's PocketHub?

A name we decided that sounded good. We're a team of a few people helping organizing and prepare this.

What about the other forks out there?

They'll remain forks. Obviously we'd prefer them to focus on improving this project, but otherwise we're not coordinating anything with them.

What's the immediate plan?

We're shooting for an initial re-release just to get the app out there. There have been a significant number of changes since the app was last updated, with many functional and design changes that we need to make sure are good to go.

What's the less-immediate plan?

After the initial release, we'll start working on giving this app a proper refresh. Much of the UI has already been touched up with elements of Material Design, but we have a long ways to go. Android has changed a lot since this was actively developed, and it's time we take advantage of those changes.

How can I help?

Please see the issues section to report any bugs or feature requests and to see the list of known issues. We can't promise fast response times since we all have full time jobs of our own, but we will do our best to respond in a timely fashion. If you'd like to contribute, please fork this repository and contribute back using pull requests.

Any contributions, large or small, major features, bug fixes, additional language translations, unit/integration tests are welcomed and appreciated but will be thoroughly reviewed and discussed. Please read CONTRIBUTING.md first!

Setup Environment

  1. Create a GitHub application (https://github.com/settings/applications/new)
  2. Set the following gradle properties via one of the ways described here:
  • pockethub_github_client=your_application_client_id
  • pockethub_github_secret=your_application_client_secret
  • pockethub_github_callback=your_callback_url

Callback URL

  • The callback URL needs to be in the format your_schema://whatever_you_want
  • Use a custom schema like myawesomeschema (not http or https)
  • The schema must be lowercase (Reference)

Legacy Notes

If you had a current installation of the Github App installed and then enabled 2FA (2 Factor Authentication), then you must delete the Personal Access Token (PAT) from your configuration (via the web interface). A thanks to @landstander668 for posting this workaround.

License

pockethub's People

Contributors

aandis avatar adman avatar atermenji avatar bananeweizen avatar chiara-de-liberato avatar crazymaster avatar dajo90 avatar ezrabrooks avatar fadils avatar gustavobite avatar hellodanylo avatar joaocsousa avatar jojosch avatar jonan avatar justinmuller avatar kevinsawicki avatar larsgrefer avatar markzhai avatar meisolsson avatar plweegie avatar rk4an avatar rtyley avatar seabornlee avatar stefma avatar veyndan avatar vovayatsyuk avatar wubin28 avatar xen0n avatar xhmikosr avatar zacsweers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pockethub's Issues

Exception on Dashboard, swiping through all tabs then back again

Just swipe from side to side on the dashboard - so from Gists, to Issues, then back again to Pull Requests, and the app will die.

E/AndroidRuntime(19622): FATAL EXCEPTION: main
E/AndroidRuntime(19622): android.view.InflateException: Binary XML file line #33: Error inflating class fragment
E/AndroidRuntime(19622): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)
E/AndroidRuntime(19622): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
E/AndroidRuntime(19622): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
E/AndroidRuntime(19622): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(19622): at com.github.mobile.android.gist.GistsActivity.onCreateView(GistsActivity.java:57)
E/AndroidRuntime(19622): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:844)
E/AndroidRuntime(19622): at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1195)
E/AndroidRuntime(19622): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
E/AndroidRuntime(19622): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1371)
E/AndroidRuntime(19622): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:429)
E/AndroidRuntime(19622): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:104)
E/AndroidRuntime(19622): at android.support.v4.view.ViewPager.populate(ViewPager.java:692)
E/AndroidRuntime(19622): at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:984)
E/AndroidRuntime(19622): at android.support.v4.view.ViewPager.computeScroll(ViewPager.java:956)
E/AndroidRuntime(19622): at android.view.ViewGroup.drawChild(ViewGroup.java:1648)
E/AndroidRuntime(19622): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
E/AndroidRuntime(19622): at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
E/AndroidRuntime(19622): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
E/AndroidRuntime(19622): at android.view.ViewGroup.drawChild(ViewGroup.java:1730)
E/AndroidRuntime(19622): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
E/AndroidRuntime(19622): at android.view.View.draw(View.java:6988)
E/AndroidRuntime(19622): at android.widget.FrameLayout.draw(FrameLayout.java:357)
E/AndroidRuntime(19622): at android.view.ViewGroup.drawChild(ViewGroup.java:1732)
E/AndroidRuntime(19622): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459)
E/AndroidRuntime(19622): at android.view.View.draw(View.java:6988)
E/AndroidRuntime(19622): at android.widget.FrameLayout.draw(FrameLayout.java:357)
E/AndroidRuntime(19622): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1961)
E/AndroidRuntime(19622): at android.view.ViewRoot.draw(ViewRoot.java:1602)
E/AndroidRuntime(19622): at android.view.ViewRoot.performTraversals(ViewRoot.java:1323)
E/AndroidRuntime(19622): at android.view.ViewRoot.handleMessage(ViewRoot.java:1961)
E/AndroidRuntime(19622): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19622): at android.os.Looper.loop(Looper.java:150)
E/AndroidRuntime(19622): at android.app.ActivityThread.main(ActivityThread.java:4293)
E/AndroidRuntime(19622): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19622): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(19622): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
E/AndroidRuntime(19622): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
E/AndroidRuntime(19622): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(19622): Caused by: java.lang.IllegalArgumentException: Binary XML file line #33: Duplicate id 0x7f090014, tag null, or parent id 0x0 with another fragment for com.github.mobile.android.gist.GistFragment
E/AndroidRuntime(19622): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:269)
E/AndroidRuntime(19622): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
E/AndroidRuntime(19622): ... 37 more

It's wierd that it should complain about layout inflating - it's already inflated every thing just fine and shown all three tabs, so why it should suddenly freak out on the return to the Gist fragment is a mystery to me...

avatars using transparency can look bad against non-white backgrounds

Some users have avatars with possibly unintentional transparency, those avatars don't look good against a non-white background:

rendered over previous background

Other avatars are well-designed for transparent display, like our github gravatar:

good transparency on gtihub avatar

It's probably best to backfill our images with white, anything else will have surprising consequences.

support for Issues

View, filter, create, update, set labels & milestones, edit, comment...

markdown preview?

Syntax highlighting for files (and diffs?)

For presenting blobs, gists, etc we need syntax highlighting...

a) use a WebView (the Android Gmail app renders mail messages using a web view) with a syntax-highlighting JavaScript lib. There are lots of these:

http://shjs.sourceforge.net/
https://github.com/alexgorbatchev/SyntaxHighlighter
https://github.com/isagalaev/highlight.js
http://code.google.com/p/google-code-prettify/
http://ace.ajax.org/ - also a code editor...

b) use a Java highlighting library, but there don't seem to be many maintained libraries around:

http://code.google.com/p/jsyntaxpane/
source-grab from Eclipse or Intellij?

Diffs: Of course, personally I'm in love with animated diffs, and it might be hard to combine the animated diff approach with syntax highlighting - maybe only show plain-black-text during transition...

support for Pull Requests

Creating new pull requests: this is potentially a bit more meaty than supporting issues... require you to have a forked repo setup on GitHub so you can point the recipient at it to show them the available changes. Potentially you could have that repo already setup, and just select a source and target branch to initiate a new pull request... it would be really nice to get some Agit-style device-based-git in place so that you can do rebases...

Artwork for the Android Market

Launching an app requires the following Artwork for the Android Market, as well as a few screenshots:

  • High Resolution Application Icon: Use: In various locations in Android Market.
    Does not replace launcher icon.
    Specs: 512x512, 32-bit PNG with alpha; Max size of 1024KB.
  • Promotional Graphic:
    Use: In various locations in Android Market.
    Specs: 180w x 120h, 24 bit PNG or JPEG (no alpha), Full bleed, no border in art.
  • Feature Graphic:
    Use: The featured section in Android Market. Will be downsized to mini or micro.
    Specs: 1024w x 500h, 24 bit PNG or JPEG (no alpha) with no transparency

Please see the full details here:

https://support.google.com/androidmarket/developer/bin/answer.py?hl=en&answer=1078870

Some more guidance here:

http://android-developers.blogspot.com/2011/10/android-market-featured-image.html

Having these images is quite important for the promotion of the app - Google will be more likely to 'surface' apps with high-quality Promotional Graphics. A 1024 x 500 Featured Image is required for feature placement consideration.

Avatars duplicated after initial load

Odd behaviour on avatar loading, the loaded avatar appears to wipe out other avatars... reproducible by doing a fresh install and then opening the home activity:

duplicate avatars

switching to non-org view does not work

I can switch between organizations using the selector in the upper-left. But switching to my own account does not seem to work. The button in the upper-left shows my name and gravatar, but the repository and member lists are for the "git" organization.

Image Loader

Can we have the loading image icon spin so they know that something is happening? when the phone is on 3G sometimes it takes a bit and i d like the user to know something is happening.

Offline access

The ability to see your issues, pull-requests etc while offline... and add comments, labels etc that sync-up when you re-connect.

Exception logged viewing issue

  • Open an issue
  • Click the comment button on the toolbar before the issue finished loading
  • The following is logged

D/VIA     ( 3957): Exception loading issue
D/VIA     ( 3957): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
D/VIA     ( 3957):  at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1265)
D/VIA     ( 3957):  at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1276)
D/VIA     ( 3957):  at android.app.BackStackRecord.commitInternal(BackStackRecord.java:541)
D/VIA     ( 3957):  at android.app.BackStackRecord.commit(BackStackRecord.java:525)
D/VIA     ( 3957):  at android.nfc.NfcFragment.attach(NfcFragment.java:40)
D/VIA     ( 3957):  at android.nfc.NfcActivityManager.getOrCreateState(NfcActivityManager.java:153)
D/VIA     ( 3957):  at android.nfc.NfcActivityManager.setNdefPushMessage(NfcActivityManager.java:99)
D/VIA     ( 3957):  at android.nfc.NfcAdapter.setNdefPushMessage(NfcAdapter.java:565)
D/VIA     ( 3957):  at com.github.mobile.android.util.Beam.setBeamMessage(Beam.java:62)
D/VIA     ( 3957):  at com.github.mobile.android.issue.ViewIssueActivity$5.call(ViewIssueActivity.java:248)
D/VIA     ( 3957):  at com.github.mobile.android.issue.ViewIssueActivity$5.call(ViewIssueActivity.java:243)

Handle GitHub.com links

Add a URL handler for GitHub.com links. So when I get an issue notification email, I can have it open directly in the solo instead of actually going to the site.

Avatars need to be rounded before scaled

A single rounding number can not be used for avatar's shown in a number of sizes.

Previously the avatar images were rounded before scaling down allowing the images to look consistent at all sizes in regards to corner radius.

See assigned avatar at top of issue view, very rounded.

Track usage of API v3

Setup tracking of the GitHubAndroid user-agent similar to the Java API and Mac app so that we can track the traffic from the different versions.

occasional "Not found (404)" messages

Whenever I start the app or switch orgs, I get a notification that says Not found (404). I'm not sure what is causing it, though (I end up on the "news" tab, though, and it says "no news", so that might be related).

No Issue Filters

@kevinsawicki I think when there are zero issue filters setup, we should have a dolled up message that says "Create your first filter" or something to give them a quick walk through of what the crap an issue filter is.

I also think before we launch we can create several of these pop ups to walk through features that may not be as obvious as we think they are.

Thoughts?

Create save/apply icon

Currently a โ–บ symbol is used.

This icon will be used when a gist or issue is being created or an issue is being edited.

Open supported links in application

Links in issues, gists, comments, that point to other issues, gists should open up inside the application instead opening in a web browser.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.