Giter Club home page Giter Club logo

bugdroid's People

Contributors

bvibber avatar juliendev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

bvibber justdave

bugdroid's Issues

Support multiple Bugzilla accounts

I have two Bugzilla accounts on b.m.o. I'm employed by Mozilla as a sysadmin, and I also run the Bugzilla project itself, so I use one for work-related stuff and the other for Bugzilla-related stuff. It'd be useful to be able to switch between them at will.

I'm volunteering to implement this (already made a fork in github), filing the issue here to get it on the record. I'll post a pull request when it's ready.

Immediate NullPointerException at launch

When launching on ASUS TF101, Android 4.0.3, I get this error:

E/AndroidRuntime( 1762): FATAL EXCEPTION: main
E/AndroidRuntime( 1762): java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.julienvermet.bugdroid/fr.julienvermet.bugdroid.menu.MenuActivity}: java.lang.NullPointerException
E/AndroidRuntime( 1762): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
E/AndroidRuntime( 1762): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/AndroidRuntime( 1762): at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/AndroidRuntime( 1762): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/AndroidRuntime( 1762): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1762): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 1762): at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime( 1762): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1762): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 1762): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime( 1762): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime( 1762): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1762): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 1762): at fr.julienvermet.bugdroid.menu.MenuActivity.portrait(MenuActivity.java:127)
E/AndroidRuntime( 1762): at fr.julienvermet.bugdroid.menu.MenuActivity.onCreate(MenuActivity.java:61)
E/AndroidRuntime( 1762): at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime( 1762): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/AndroidRuntime( 1762): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/AndroidRuntime( 1762): ... 11 more
W/ActivityManager( 170): Force finishing activity fr.julienvermet.bugdroid/.menu.MenuActivity

No indication of failure when you enter an incorrect password, it just silently fails

When you add a new account in the account setup, there is no feedback to tell you if you got your password correct or not.

I screwed mine up the first time and wound up getting my account locked out because it didn't tell me I screwed up and then proceeded to make 6 attempts to log in to generate the dashboard (it only takes 5 failures to get locked out). None of those attempts caused any kind of error visible to the user (only in the logcat output), and the dashboard simply failed to populate.

Queries on app home page never complete

They all get the following traceback in logcat:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1304
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:81)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
    at com.google.gson.Gson.fromJson(Gson.java:795)
    at com.google.gson.Gson.fromJson(Gson.java:761)
    at com.google.gson.Gson.fromJson(Gson.java:710)
    at com.google.gson.Gson.fromJson(Gson.java:682)
    at fr.julienvermet.bugdroid.service.BugsIntentService.onHandleIntent(BugsIntentService.java:48)
    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:157)
    at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1304
    at com.google.gson.stream.JsonReader.expect(JsonReader.java:339)
    at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:306)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:79)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
    ... 14 more

Support instances other than bugzilla.mozilla.org as a share target

Implementation gotcha:

  • Right now BugDroid offers itself as a URL handler for bugzilla.mozilla.org URLs. There is no way to register a URL handler at runtime, it must be part of the manifest when the application is installed.

Problems:

  • You no longer have to configure BugDroid to work with bugzilla.mozilla.org at all, and you could use it entirely with a different Bugzilla, yet it still traps and accepts bugzilla.mozilla.org URLs (and only those).

A couple ideas for how to deal with this:

  • Create a "stub" application which does nothing but offer a URL handler for a given site's Bugzilla, then hands off the Intent to BugDroid when it's received. This could be added in one of two ways:
    • Provide separately downloadable "site plugins" in the Play Store for popular Bugzilla sites. Generate and post new ones on request any time someone requests a new site.
    • When a user configures a site, generate the apk for the stub dynamically, drop it on the SD Card, and hand it off to the application installer.

The second option would be easier on the user, except it would require that they enable non-market apps in order to use it.

"Enter" key in search dialog should search instead of adding newline

Looks like a great start!

I find that the on-screen keyboard in the "Words" field on the search dialog shows an enter/carriage return button which adds a newline; probably better if that can be swapped out for a submit/go button to trigger search. I'll poke at source later if you don't beat me to it. :)

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.