Giter Club home page Giter Club logo

virginmobileminuteschecker's Introduction

For those using the Motorola Triumph, LG Optimus V, or Samsung Intercept 
in the US as part of Virgin Mobile's "Beyond Talk" plan, this application 
fetches and displays your remaining minutes and account balance. 
No more trying to log on to their website via a tiny browser!

Feel free to send suggestions or - better yet - patches!

Note: This application was not developed or endorsed by Virgin Mobile.

This application and source code are distributed under the
Simplified BSD License. See LICENSE for details.

virginmobileminuteschecker's People

Contributors

dgw avatar drfloob avatar poundifdef avatar xbakesx 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

Watchers

 avatar  avatar  avatar  avatar

virginmobileminuteschecker's Issues

Insecure Password Field

When creating an account, the password field shows the numbers entered instead of it being a true password field.

There are trade-offs here. In the current versions of Android, there is no numeric password (there is one added in 3.0 Honeycomb). So we can make the password field here secure, however that means every time you enter a password you have to hit alt to get to numbers.

Allow Github wiki to allow public edits

I'd love to add some useful information to the wiki (the app is pretty self-explanatory, so it shouldn't need to be too in-depth), however, right now you seem to have disabled public edits to the wiki via the Admin panel for this repository. Please uncheck that box so collaborators can make improvements to the wiki.

Support for other carriers

It would be really neat to see this expand to T-Mobile prepay, Boost Mobile, and some of the other pre-pay carriers that allow Android devices.

Monthly Charge Showing HTML

The "Monthly Charge" item in the app is now showing most of the HTML for the page instead of the correct monthly charge. This is because VM changed the HTML of their page.

Line 140 of WebsiteScraper.java:

srch = "<h3>Monthly Charge</h3><p>";

Should now be:

srch = "<h3>Next Month's Charge</h3><p>";

That should fix the bug I think. I currently don't have a dev environment setup to test/build Android apps, but I will try to set one up in the next few days to test if I can. I thought I would just post it as a bug since it might be a quick fix for someone who is already setup to work on the project.

Thanks for all your hard work on this project! It is a big help!

do not toast if user has logged out

If a user specifically presses the "log out" button, it means that they do not want the app automatically doing updates or showing toast messages. We should keep track of whether the cache was invalidated because the user pressed "log out" or for some other reason - and if it is the former, make the app as non-invasive as possible

Append "Minutes Checker" to the toast

I'm thinking about appending some string to the toast to tell the user that the toast is coming from the Minutes Checker app, as opposed to an indicator that is built into the phone itself. That the toast is related to the app is non-obvious. This is in response to an email I received:

I was wondering if you could fix a bug in your Android app. I receive the error "The Virgin Mobile Page cannot load, please try to logon again" after ending a call, which I traced to your app. It took quite a while to determine what the cause was (it was only after a Factory Reset that I figured it out). The phone in question is a Samsung Intercept. Would you be able to create an updated version to correct this issue?

Track Mobile Web Usage

Virgin Mobile started throttling 3G usage after 2560.0 MB. They track your MB used on the site; it's not on the main page, it's under the "Data & Web" popup.

How hard would it be to integrate this into the app?

can't see minutes after phone call

Whenever a call ends, com/drfloob/VirginMobileMinutesChecker/call_trigger/MinutesService.java always shows a message saying that it could not log on to retrieve my minutes. This should be fixed or removed alltogether. It could be unreliable to fetch minutes immediately after a phone call.

"Information" Widget won't load

When I add the "Information" widget (not the pie graph) I get a "Problem Loading Widget" message and this stacktrace:

07-04 11:13:26.957: WARN/AppWidgetHostView(2177): updateAppWidget couldn't find any view, using error view
07-04 11:13:26.957: WARN/AppWidgetHostView(2177): android.widget.RemoteViews$ActionException: can't find view: 0x7f080025
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews$ReflectionAction.apply(RemoteViews.java:446)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews.performApply(RemoteViews.java:955)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews.apply(RemoteViews.java:932)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:219)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:155)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:218)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.launcher2.Launcher.completeAddAppWidget(Launcher.java:946)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.launcher2.Launcher.onActivityResult(Launcher.java:564)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.launcher2.Launcher.addAppWidget(Launcher.java:1226)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.launcher2.Launcher.onActivityResult(Launcher.java:561)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.Activity.dispatchActivityResult(Activity.java:3890)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.access$2800(ActivityThread.java:125)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.os.Looper.loop(Looper.java:123)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at java.lang.reflect.Method.invokeNative(Native Method)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at java.lang.reflect.Method.invoke(Method.java:521)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-04 11:13:26.957: WARN/AppWidgetHostView(2177):     at dalvik.system.NativeStart.main(Native Method)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177): updateAppWidget couldn't find any view, using error view
07-04 11:13:27.002: WARN/AppWidgetHostView(2177): android.widget.RemoteViews$ActionException: can't find view: 0x7f080025
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews$ReflectionAction.apply(RemoteViews.java:446)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews.performApply(RemoteViews.java:955)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.widget.RemoteViews.apply(RemoteViews.java:932)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:219)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:250)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.appwidget.AppWidgetHost.startListening(AppWidgetHost.java:122)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at com.android.launcher2.Launcher.onResume(Launcher.java:584)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.Activity.performResume(Activity.java:3823)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2059)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.os.Looper.loop(Looper.java:123)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at java.lang.reflect.Method.invokeNative(Native Method)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at java.lang.reflect.Method.invoke(Method.java:521)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-04 11:13:27.002: WARN/AppWidgetHostView(2177):     at dalvik.system.NativeStart.main(Native Method)
07-04 11:13:27.012: WARN/InputManagerService(2084): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@438835a0

1.3 commit changed defaults in only 1 of 2 places

in your v1.3 commit, you changed the default outgoingCallPrefTitle to true, but the default in code is false (see MinutesService.java around line 57). So it wasn't actually on by default. I verified that just visiting the settings screen showed a checked box next to the option, which then was enough to make the pref stick as "true".

Device support?

Why does the description say "For those using the Motorola Triumph, LG Optimus V, or Samsung Intercept"? Is there any reason why this wouldn't work on other devices?

'Charged end of' instead of 'Charged on'

ISSUE:
At the end of each billing cycle, I can never remember at what hour of the 'Charged on' date my minutes runs out. For instance, on April 10, I will ask myself if 'Charged on: 04/11/12' means that I will get fresh minutes on April 11 @ 00:01 or on April 11 @ 23:59. It turns out to be the latter.

SOLUTION:
Relabeling 'Charged on' to 'Charged end of' will remove this ambiguity.

Thanks,

Henrik

Remove Account

It should be more obvious that a long press on an account number can delete the account.

Paying your bill before the first of the month results in incorrect display

If you pay your bill before the first day of the month, the display assumes you are running out of minutes (it is red) and the black bar indicating your month is inverted.

I topped up on 11/25 and paid my monthly charge for December (due on 12/14, to be precise) at that time. My next charge is now due 1/14/12. I have used 79 of 300 minutes.

Here are two screenshots to illustrate what's going on:
http://img835.imageshack.us/img835/6594/shot000001m.png
http://img36.imageshack.us/img36/8645/shot000002m.png

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.