Code Monkey home page Code Monkey logo

boogdroid's People

Contributors

albfan avatar crystal-rainslide avatar johnmh avatar jonan avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

boogdroid's Issues

BoogDroid incorrectly blocks the back key

On the latest build on F-Droid, upon starting the app and then pressing the back button to leave it, BoogDroid re-asserts the server list activity to the top of the activity stack again. What should happen is the back button should allow the default Activity behavior to occur.

refactor api processing

xmlrpc, jsonrpc and rest need to be refactored. Expose a common interface and implement one for every existing api. Take care of #12 for version differences or features provided by extensions.

Updated zh-rCN (Chinese (China)) translation

I have translated your application into zh-rCN (Chinese (China)). Here is the xml:

app/src/main/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- GENERAL -->
    <string name="app_name">BoogDroid</string>
    <string name="no_items">无元素。</string>
    <string name="invalid_product">无效产品</string>
    <string name="invalid_bug">无效 bug</string>

    <!-- REGISTER -->
    <string name="server_name">服务器名称</string>
    <string name="url">URL</string>
    <string name="user_name">用户名</string>
    <string name="password">密码</string>
    <string name="ok">确定</string>
    <string name="cancel">取消</string>
    <string name="manage_servers">管理服务器</string>
    <string name="add_server">添加服务器</string>
    <string name="edit_server">编辑服务器</string>
    <string name="name_cant_be_empty">必须输入名称</string>
    <string name="server_with_that_name_exists">已有同名服务器</string>
    <string name="url_cant_be_empty">必须输入 URL</string>
    <string name="delete_server_title">删除服务器 <b>%1$s</b></string>
    <string name="delete_server_description">服务器 <b>%1$s</b> 及其所有配置信息将被删除。</string>

    <!-- INFO -->
    <string name="reporter">Reporter</string>
    <string name="assignee">Assignee</string>
    <string name="author">作者</string>
    <string name="add_comment">添加 comment</string>
    <string name="status">状态:</string>
    <string name="resolution">分辨率:</string>
    <string name="invalid_change_status">无法更改至此状态</string>
    <string name="invalid_change_status_comment_required">无法更改状态,需要 comment</string>
</resources>

Translation made with Stringlate.

tabs on bugs fragment

same as #14 tabs for (assigned to me, created by me, recently updated, updated this week) can be added.

Maybe the best approach would be to add a filter section on server to define a query and a name, so any number of tabs can be configured.

Complete application crash after account addition on every start

I tried to add a Bugzilla account to BoodDroid.

Now it crashes on every startup without allowing to do anything. Even the crash popup disappears almost instantly.

Here's the result of an adb logcat -v threadtime:

07-26 17:43:35.039  3857  3857 I Timeline: Timeline: Activity_launch_request id:me.johnmh.boogdroid time:322204807
07-26 17:43:35.040   916  3652 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=me.johnmh.boogdroid/.ui.ActivityServer bnds=[32,203][196,393]} from uid 10110 on display 0
07-26 17:43:35.083   916   933 V BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@e04e3b3
07-26 17:43:35.083   916   933 I ActivityManager: Start proc 14078:me.johnmh.boogdroid/u0a274 for activity me.johnmh.boogdroid/.ui.ActivityServer
07-26 17:43:35.125  3857  4216 D OpenGLRenderer: endAllActiveAnimators on 0x9aa1e180 (StateListDrawable) with handle 0x9f7ff880
07-26 17:43:35.149 14078 14078 W System  : ClassLoader referenced unknown path: /data/app/me.johnmh.boogdroid-1/lib/arm
07-26 17:43:35.377 14078 14078 W art     : Before Android 4.1, method int android.support.v7.internal.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
07-26 17:43:35.563 14078 14098 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
07-26 17:43:35.571 14078 14097 W System  : ClassLoader referenced unknown path: /system/framework/tcmclient.jar
07-26 17:43:35.610 14078 14098 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I741a3d36ca)
07-26 17:43:35.610 14078 14098 I Adreno-EGL: OpenGL ES Shader Compiler Version: E031.29.00.00
07-26 17:43:35.610 14078 14098 I Adreno-EGL: Build Date: 04/04/16 Mon
07-26 17:43:35.610 14078 14098 I Adreno-EGL: Local Branch: mybranch19053788
07-26 17:43:35.610 14078 14098 I Adreno-EGL: Remote Branch: quic/LA.BF.1.1.3_rb1.12
07-26 17:43:35.610 14078 14098 I Adreno-EGL: Local Patches: NONE
07-26 17:43:35.610 14078 14098 I Adreno-EGL: Reconstruct Branch: NOTHING
07-26 17:43:35.614 14078 14098 I OpenGLRenderer: Initialized EGL, version 1.4
07-26 17:43:35.715   916   970 I ActivityManager: Displayed me.johnmh.boogdroid/.ui.ActivityServer: +645ms
07-26 17:43:35.715   916   970 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{96d8a35 u0 me.johnmh.boogdroid/.ui.ActivityServer t7926} time:322205483
07-26 17:43:35.737 26769 26769 I GoogleInputMethod: onStartInputView() : Dummy InputConnection bound
07-26 17:43:35.797 26769 26769 W VoiceImeTranscriptor: UIME feature enabled: true
07-26 17:43:35.802 26769 26769 I EmojiDataExtension: onActivate() : Locale = fr
07-26 17:43:35.802 26769 26769 I EmojiSuperpacksFeature: Emoji superpacks enabled
07-26 17:43:35.802 26769 26769 I Conv2QueryExtension: isEnabled() : true
07-26 17:43:35.802 26769 26769 I Conv2QueryExtension: Current locale: fr, config allows these locales: de,en,fr,it,es,pt
07-26 17:43:35.802 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.pill.PillExtension.
07-26 17:43:35.802 26769 26769 I Conv2QueryExtension: Conv2Query not enabled due to current app [com.sonyericsson.home] not in whitelist
07-26 17:43:35.802 26769 26769 W Conv2QueryExtension: onActivate() : Disabled by unsupported host app
07-26 17:43:35.802 26769 26769 I GifEntryExtension: onActivate()
07-26 17:43:35.802 26769 26769 I DevFeatureConfig: Gif candidate disabled by Phenotype
07-26 17:43:35.804 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.search.gif.GifEntryPointCandidateExtension.
07-26 17:43:35.814 26769 26769 I DevFeatureConfig: MagicG disabled for locale: 'fr'
07-26 17:43:35.814 26769 26769 I DevFeatureConfig: Instant Search disabled for locale: 'fr'
07-26 17:43:35.814 26769 26769 I FeatureCardNotice: Feature card notice not shown: no cards to display
07-26 17:43:35.814 26769 26769 I Delight5Facilitator: Cancelling personalized data flush runnable
07-26 17:43:35.814 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.search.nativecard.FeatureCardNoticeExtension.
07-26 17:43:35.816 26769 26769 W VoiceImeTranscriptor: UIME feature enabled: true
07-26 17:43:35.816 26769 26769 I VoiceImeExtension: Voice Extension onStartInputView() Mic status = [MicIconHidden-VoiceInputUnAvailable, ]
07-26 17:43:35.831 26769 26769 I GoogleInputMethod: onFinishInputView() : Dummy InputConnection bound
07-26 17:43:35.831 26769 26769 I PhenotypeExpConfig: refreshConfiguration() : Force = false : UpdateAvailable = false : Age = 592 minutes : MaxAge = 720 minutes
07-26 17:43:35.832 26769 26769 I GoogleInputMethod: onFinishInput() : Dummy InputConnection bound
07-26 17:43:35.890 26769 26769 I LatinIme: onActivate() : EditorInfo = Package = me.johnmh.boogdroid : Type = Text : Learning = Disable : Suggestion = Show : AutoCorrection = Disable : Microphone = Show : Incognito = Disable
07-26 17:43:35.891 26769 26769 I LatinIme: isMonolingualEnUs(): false. enable_autospace_after_punctuation_setting: true. pref_key_enable_autospace_after_punctuation: false. EditorInfoUtil.shouldEnableAutoCorrection(editorInfo): false.
07-26 17:43:35.904 26769 26769 I InputContext: input context reset success: true error: 0 input_state_id 888
07-26 17:43:35.947 26769 26769 W VoiceImeTranscriptor: UIME feature enabled: true
07-26 17:43:35.954 26769 26769 I DevFeatureConfig: MagicG disabled for locale: 'fr'
07-26 17:43:35.954 26769 26769 I DevFeatureConfig: MagicG disabled for locale: 'fr'
07-26 17:43:35.955 26769 26769 I LatinMotionHandler: consumeEvent() : GestureTypingEnabled = true
07-26 17:43:35.956 26769 26769 I EmojiDataExtension: onActivate() : Locale = fr
07-26 17:43:35.956 26769 26769 I EmojiSuperpacksFeature: Emoji superpacks enabled
07-26 17:43:35.956 26769 26769 I Conv2QueryExtension: isEnabled() : true
07-26 17:43:35.956 26769 26769 I Conv2QueryExtension: Current locale: fr, config allows these locales: de,en,fr,it,es,pt
07-26 17:43:35.956 26769 26769 I Conv2QueryExtension: Conv2Query not enabled due to current app [me.johnmh.boogdroid] not in whitelist
07-26 17:43:35.956 26769 26769 W Conv2QueryExtension: onActivate() : Disabled by unsupported host app
07-26 17:43:35.956 26769 26769 I GifEntryExtension: onActivate()
07-26 17:43:35.956 26769 26769 I DevFeatureConfig: Gif candidate disabled by Phenotype
07-26 17:43:35.957 26769 26769 I DevFeatureConfig: MagicG disabled for locale: 'fr'
07-26 17:43:35.957 26769 26769 I DevFeatureConfig: Instant Search disabled for locale: 'fr'
07-26 17:43:35.957 26769 26769 I FeatureCardNotice: Feature card notice not shown: no cards to display
07-26 17:43:35.957 26769 26769 W VoiceImeTranscriptor: UIME feature enabled: true
07-26 17:43:35.957 26769 26769 I VoiceImeExtension: Voice Extension onStartInputView() Mic status = [MicIconHidden-VoiceInputUnAvailable, ]
07-26 17:43:35.962 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.pill.PillExtension.
07-26 17:43:35.963 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.search.gif.GifEntryPointCandidateExtension.
07-26 17:43:35.963 26769 26854 I PrimesMetrics: Ignore memory metric of com.google.android.apps.inputmethod.libs.search.nativecard.FeatureCardNoticeExtension.
07-26 17:43:35.986 26769 26769 I FeaturePermissions: onSharedPreferenceChanged() : Key = latest_activation_time : Feature = null
07-26 17:43:35.988 26769 26769 I FeaturePermissions: onSharedPreferenceChanged() : Key = latest_activation_time : Feature = null
07-26 17:43:36.243   916   949 I ActivityManager: Start proc 14109:com.sonymobile.getmore/u0a36 for service com.sonymobile.getmore/.MonitorService
07-26 17:43:36.356 14109 14109 W System  : ClassLoader referenced unknown path: /data/app/com.sonymobile.getmore-1/lib/arm
07-26 17:43:36.389 14109 14109 V GetMoreApplication: Starting com.sonymobile.getmore, version: 1.2.A.0.44
07-26 17:43:36.696 14078 14097 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
07-26 17:43:36.696 14078 14097 E AndroidRuntime: Process: me.johnmh.boogdroid, PID: 14078
07-26 17:43:36.696 14078 14097 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.os.AsyncTask$3.done(AsyncTask.java:309)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:818)
07-26 17:43:36.696 14078 14097 E AndroidRuntime: Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.os.Handler.<init>(Handler.java:200)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.os.Handler.<init>(Handler.java:114)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.widget.Toast$TN.<init>(Toast.java:359)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.widget.Toast.<init>(Toast.java:105)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.widget.Toast.makeText(Toast.java:266)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at me.johnmh.boogdroid.bugzilla.BugzillaTask.doXmlImplementation(BugzillaTask.java:117)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at me.johnmh.boogdroid.bugzilla.BugzillaTask.doInBackground(BugzillaTask.java:81)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at me.johnmh.boogdroid.bugzilla.BugzillaTask.doInBackground(BugzillaTask.java:55)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at android.os.AsyncTask$2.call(AsyncTask.java:295)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-26 17:43:36.696 14078 14097 E AndroidRuntime:    ... 4 more
07-26 17:43:36.699   916  2831 D ActivityManager: New dropbox entry: me.johnmh.boogdroid, data_app_crash, 8dd2f135-5767-4d84-8b8a-cff55bbdecf5
07-26 17:43:36.701   916  2831 W ActivityManager:   Force finishing activity me.johnmh.boogdroid/.ui.ActivityServer
07-26 17:43:36.759 14040 14133 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1271 android.content.ContextWrapper.bindService:604 com.sonyericsson.crashmonitor.MiscTaAdapter.open:90 com.sonyericsson.crashmonitor.service.CrashMonitorService.onInit:127 com.sonyericsson.crashmonitor.service.CrashMonitorService.onHandleIntent:192
07-26 17:43:36.760   916 25327 I OpenGLRenderer: Initialized EGL, version 1.4
07-26 17:43:36.776   916   934 I ActivityManager: Start proc 14138:com.sonyericsson.android.bootinfo:remote/1000 for service com.sonyericsson.android.bootinfo/.MiscTaService
07-26 17:43:36.848  3857  3857 I Timeline: Timeline: Activity_idle id: android.os.BinderProxy@b0fc9a4 time:322206616
07-26 17:43:36.972   916   970 I Timeline: Timeline: Activity_windows_visible id: ActivityRecord{ad6e1f0 u0 com.sonyericsson.home/com.sonymobile.home.HomeActivity t7847} time:322206740
07-26 17:43:37.303 14078 14128 I Process : Sending signal. PID: 14078 SIG: 9
07-26 17:43:37.323   916  3292 D GraphicsStats: Buffer count: 11
07-26 17:43:37.342   916  3890 I ActivityManager: Process me.johnmh.boogdroid (pid 14078) has died
07-26 17:43:37.351 26769 26769 I GoogleInputMethodImpl: hideSoftInput() : flags = 0
07-26 17:43:37.352   916  3892 W InputMethodManagerService: Got RemoteException sending setActive(false) notification to pid 14078 uid 10274
07-26 17:43:37.356 26769 26769 I PhenotypeExpConfig: refreshConfiguration() : Force = false : UpdateAvailable = false : Age = 592 minutes : MaxAge = 720 minutes
07-26 17:43:37.363 26769 26769 I LatinIme: onDeactivate()
07-26 17:43:37.373 26769 26769 I GoogleInputMethod: onStartInput() : Dummy InputConnection bound
07-26 17:43:37.538   916   970 W AppOps  : Finishing op nesting under-run: uid 1000 pkg android code 24 time=0 duration=0 nesting=0

Device is a Sony Xperia Z3 Compact running standard Android 6.0.1 rom.

Search Feature

I don't see a search feature in BoogDroid. This makes it very difficult to find specific indexes. If it doesn't already have a feature like this I think it would be a very good idea.

Add test suite

Once a bugzilla version is tested you can grab object responses and create mocks to test app (at least backed) and be sure new features are not breaking old ones.

A good sandbox coulb be https://landfill.bugzilla.org/ but I don't now really if it exposes api

Filter by tag

in gnome, tags like newcomers are used to show affordable task for newbies, so a filter by tags can be really useful.

The idea is to use a swipe tab on bugs fragment. This feature could traverse products too, but that's a bigger change.

Progress display during initial(?) refresh

It would be nice to get some progress displayed during the initial (I hope that's only done one, at least) refresh when adding a server.

This would tell me whether anything is hapenning at all, actually.

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.