GithubHelp home page GithubHelp logo

2cloud / android2cloud Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 5.0 2.49 MB

The original Android client for the 2cloud Project

Home Page: http://www.2cloudproject.com

License: MIT License

Java 100.00%

android2cloud's Introduction

2cloud Android Client

About

2cloud is a free, decentralised, open source project to try and make sharing content between browsers and devices as seamless and effortless as possible. An up-to-date list of devices and browsers supported by the project is available at http://www.2cloudproject.com/clients

This is the Android client that was launched originally in July of 2010. It has been deprecated in an effort to free our team to focus on the future, instead of the past. This repository will remain here for archival purposes, as well as to make the code available to any of the users whose phones can't run the newer version.

Installation Instructions

We tried to make installation and modification as easy as possible. Simply download the code (either using git or the download button on Github) and build it like any other Android application. You'll need the SDK, but Google has some helpful resources for people who need help getting started.

Where to Get Help

We try to maintain a presence with our users. To wit, we have:

If you don't use any of those... you're kind of out of luck.

Contribution Guidelines

The quickest, easiest, and most assured way to contribute is to be a beta tester. Simply join the mailing list and wait for a new beta to be released. Try and break it. Submit feedback. Wash, rinse, repeat.

If you're interested in contributing code, we use different guidelines for each part of our app. This is driven by necessity; you can't use JUnit on Javascript, for example. Unfortunately, we're still in the process of defining our guidelines for Android. This project has been retired, but we'll still accept pull requests for it provided you explain what you changed, why you changed it, and why the app is better that way. In our future version, expect to see unit tests with JUnit and Checkstyle implemented and required for pull requests.

The best way to figure out what's on our to-do list is to look at the issue tracker or ask on the dev mailing list. Whatever you work on should be something you want to see implemented, though.

Contributors

2cloud is an open source application. It is technically "owned" by Second Bit LLC, but all that really means is they take care of the mundane administrative and financial stuff. The team behind 2cloud is separate from the Second Bit team (despite some overlap). The 2cloud team is as follows:

They're pretty friendly. Please do get in touch!

Credits and Alternatives

One of the great parts about being an open source project is how often we get to stand on the shoulders of giants. Without these people and projects, we couldn't do what we do.

  • blog.notdot.net
  • Signpost, a (sadly discontinued) OAuth library for Java that suits our needs wonderfully
  • Chrome to Phone (Inspiration)
  • The sample In-App Payments app was largely cannibalised for our In-App payments system

There are some alternatives to 2cloud out there, and we encourage you to try them out. Use what works best for you. You can find an up-to-date list on our website.

android2cloud's People

Stargazers

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

Watchers

 avatar

android2cloud's Issues

Fix Resolution Issues

There have been reports that the app does not work with lower resolutions. We need to fix this.

No Indicator for OAuth Request Token call

There's no indication that anything is happening when OAuthGetRequestToken is called. It also, I believe, blocks the UI. Should be moved to a background thread, perhaps even the service.

Track Version When Installed

When the app is run for the first time (either after an install or after data is cleared), we should store the version number. That way, we know if the user upgraded or did a fresh install and can handle the event appropriately.

onCreateDialog is throwing an error

This one's really weird. Josh reported an error in which onCreateDialog is causing a force close. This shouldn't be happening (http://developer.android.com/reference/android/app/Activity.html#onCreateDialog(int, android.os.Bundle))

Probable cause is that the rooted 2.1 Samsung Moment he's using has, for some reason, opted not to support this method. Though it's deprecated, it should still be supported on all pre-Honeycomb phones.

Solution seems to be migrating to DialogFragment and using the Compatibility Package.

I/dalvikvm( 9042): Could not find method
android.app.Activity.onCreateDialog, referenced from method
com.suchagit.android2cloud.PostLinkActivity.onCreateDialog

Update Host Field

A lot of people will have their host field set to the default. If that's the case, we need to invalidate their authentication and ask them to reauthenticate.

2.1.1 Broke Silent Sending

It looks like 2.1.1 broke silent sending somehow. I don't know what it is about that feature... I hate it?

Easy A references aside, I seem to break that a lot. Let's not release it broken.

Authentication doesn't open trusted browser

When authenticating, it creates what appears to be a web view rather than a browser intent. However, for it to be trustworthy it must open the my chosen browser so that I can be sure I know what I'm entering my credentials into. At the moment I have no idea what the app is really doing with my username/password, and I'm left with just having to trust it.

False Error About Account Setup

Due to (I believe) the multiple activities that are created for the OAuth dance, if the user hits the back button after setting up an account, they get an erroneous error about account setup failure.

NullPointerException When Matching Links in PostLinkActivity

There appears to be a NPE when logging the link that was shared with the app. Most likely cause is that there was no EXTRA_TEXT in the Intent, which would make the "link" String null.

Syslog below:

java.lang.RuntimeException: Unable to resume activity {com.suchagit.android2cloud/com.suchagit.android2cloud.PostLinkActivity}: java.lang.NullPointerException: println needs a message
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2124)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2139)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1672)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.d(Log.java:137)
at com.suchagit.android2cloud.PostLinkActivity.onResume(PostLinkActivity.java:122)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3832)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2114)

Detect Timezone Issues

I'm really tired of responding to emails from people who don't have their timezone set correctly.

The solution is simple: after getting a 400 result from the OAuth request, we send another request to get the server's time. We check that against the device's time. If they don't match, rather than suggesting they email us, we just tell them to correct the issue. Potentially tell them what their date, time, and timezone are all set to and point out that one probably isn't right.

Host Not Included in OAuth Authorisation Call

For whatever reason, Signpost sometimes excludes the host from the return for its authorisation call. We need to test for the presence of a host, and add one if one is not present.

Host Not Getting Set

App force closes if host is not set. Need to catch that and throw an error.

java.lang.IllegalStateException: Target host must not be null, or set in parameters.
at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:572)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:653)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
at com.suchagit.android2cloud.util.HttpClient.exec(HttpClient.java:92)
at com.suchagit.android2cloud.HttpService.onHandleIntent(HttpService.java:47)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.os.HandlerThread.run(HandlerThread.java:60)

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.