Greetings osu! community!
A little about
(Feel free to skip if you don't care~)Until now I was just the typical forum-lurker, but then I found myself to have too much time and created this little application.
I got this Idea while scrolling through the forums and looking at all the signatures.
(Some of you sure got some "special" ones, just by the way)
While doing so, my phone catched my eye and I thought: "Wouldn't it be kind of fun to write an app like this?"
So this is basically it, an Android application for your phone thats shows your stats.
For now it will be only availabe here on the forums, so you have to "manually" install it with the .apk file.
I know, its not that big of a deal, but I had fun writing this application and will keep working on it. (If I can think of things to do)
Features
General:- Shows your or other peoples stats
- Multiple language support (If you would like to contribute to this, contact me)
- Auto update, you don't have to manually check!
- Also supports osu!tp!
- Multiple Widget support
- Falls back on last queried stats while offline
- Shows rank changes since your last click update
- Also shows changes for Performance Points & plays
- Updates every hour
- Updates on click
- Different Widget backgrounds for each gamemode (If you would like to contribute to this, contact me)
- Multiple Widget types and sizes
- Used to configure the Widget
- Autocomplete function for user names
- Search history (Menu button)
- Additional options (Menu button)
- Access userpage by clicking on the avatar
- Check for updates (Click on the version number)
- Showing 5 most recent events
Frequently asked questions (FAQ)
"Ah, but whats up with this annoying bug I found here?"If you happen to find any bugs or just want to drop some feedback, feel free to do so.
You can either contact me directly, or leave a post in this thread.
Please remember to post your phone and Android version and, if possible, a way to reproduce this bug.
"You said something about.. multiple languages and.. contributing.. what gives?"
There isn't that much text to be translated yet, but if you like, you could contribute with a translation.
Simply drop me a message and I will send you the english texts to be translated.
Almost every language is welcome so far.
Update:
There is a translation interface now, contact me and we can talk about the access.
"Can I help with the programming/coding?"
At the moment I am not looking for a cooperation in that point, don't get me wrong, I appreciate the thought, really.
But I don't think its necessary right now, maybe sometime in the future.
"I got questions about how does THIS work or how did you do THAT?"
Simply leave a post here or PM me directly and I'll see if I can answer your question.
I don't mind, so don't be shy.
"What IDE are you using?"
I am using Eclipse right now, but I consider switching to Android Studio at some point.
"Hey, what about releasing on the Play Store (Google Market)?"
For now I won't release on the Play Store, I don't see the need for this, yet.
I got my own update system, so this is no problem really.
An upside would be, that I could reach more people with that.
Feel free to drop your opinion anyways.
Update:
There will be a release on the Play Store after 1.1.5, you will be noticed on your device.
"Whats the package name?"
de.givepackageplz.osurank
de -> Germany;
givepackageplz -> I like to name things alike my nickname;
osurank -> Well obvious;
"Do you log any userdata of some kind?"
I can see connections to the update server.
(No direct user information is logged during this process)
With update 1.1.2 I started logging query traffic.
(Mostly containing query amounts to improve performance)
All data that is collected is disconnected from the user!
"Is osu!Rank compatible with Android x.x.x?"
MinVersion:
GINGERBREAD_MR1 (SDK 10) 2.3.3
TargetVersion:
JELLY_BEAN_MR1 (SDK 17) 4.2
MaxVersion:
None
"What permissions are you using and why?"
android.permission.INTERNET:
Query data from the osu!API or check the osu!Rank update server.
android.permission.ACCESS_NETWORK_STATE:
Check for available network connection.
android.permission.WRITE_EXTERNAL_STORAGE:
Caching avatars and storing data.
"I can't search for users with pure-numerical names!"
This is a known problem within the osu!api itself.
Simply use the user ID, this will work.
After searching or setting the Widget with the user ID once, osu!Rank will remember it and connect the name with the ID.
Update:
This should no longer be an issue.
"What are those funny icons supposed to mean when using osu!tp?"
➶ -> Accuracy rating.
➟ -> Speed rating.
◎ -> Aim rating.
See the documentation for more information about osu!tp itself.
"iPhone, iPhone, iPhone, iPhone!?"
Let me just say "I don't plan to do it right now", but I actually was looking into it recently.
Don't expect an iOS port soon, but there might be a version sometime!
Update:
Pushed back due to other stuff.
"Can I somehow test the newest Versions? (Pre-Releases)"
I actually got a test build where I update all changes that are not released yet, similar to the osu!test one.
If you want to help, feel free to contact me.
"I can't get my osu!tp stats!" *New*
I am afraid osu!tp is down and will most likely be removed with the next update.
Languages already included
- English
- German
- Spanish (S v p e r)
- French (jyvii) (partly)
- Norwegian (petterroea)
- Simplified Chinese (Oinari-sama)
- Traditional Chinese (Oinari-sama)
- Japanese (non-native)
- Portuguese (Maav)
- Polish (Maxorq)
- Finnish (Cassu2) (partly)
- Thai (NeVe12p4wNeD)
- Dutch (baraatje123)
- Italian (Roxas)
- Korean ([ Trostal ])
- Indonesian (Faishal Akbar)
- Serbian (Valdyr)
- Russian (bakatrouble)
Download
(Version 1.1.5)osu!Rank (Official mirror)
Complete-o-meter
(Version 1.1.6)10% completed.
PAUSED.
(Updated: 14.07.2015)
Changelog
(Click to expand)
Version: 1.1.5:
[Fix] Performance updates for the API-Queries.
[Add] Userpage support. (Beta)
[Fix] Adjusted Flag-Caching.
[Fix] Complete rework for the level-bar. (Credit to skyleo)
[Add] Korean language. (Credit to [ Trostal ])
[Add] Indonesian language. (Credit to Faishal Akbar)
[Fix] Changed server for updates.
[Fix] Reworked all Activities.
[Add] Added a contact Activity.
[Fix] Moved some content from Copyright to Contact.
[Add] Searchbar. (Much more user friendly.)
[Add] Images for events. (S, SS, A, etc.)
[Fix] Reworked Panel-Widgets. (Layout)
[Fix] Reworked Avatar-Widget. (Layout)
[Fix] Panel-Widgets: Slightly changed the rounding of the corners.
[Add] Mode icons instead of mode names everywhere possible.
[Add] Serbian language. (Credit to Valdyr)
[Fix] Panel-Widget: "The XP bar is kind of "bent" in several random places." -Oinari-sama
[Fix] Widgets: White Widget background on placement. (Sony Xperia 4.3 API 18)
[Fix] Widgets: Random ANR.
[Fix] Preperations for Play Store release.
[Fix] Widgets: Optimized the code a little.
[Add] QueryAPIConfig class for easier config handling of the queries.
[Add] QueryAPIData class for easier data handling.
[Fix] Implemented the QueryAPIData & QueryAPIConfig everywhere needed.
[Fix] Changed Query behavior.
[Fix] Improved caching a lot.
[Add] Russian language. (Credit to bakatrouble)
[Fix] Fixed a naughty URL encoding bug.
[Fix] Changed Backend behavior slightly.
[Add] Implemented new caching system.
[Rem] Removed the old caching system.
[Fix] New target version: 19.
[Fix] Reworked MainActivity completly!
[Rem] Reset to default output after Widget selection.
[Fix] Reworked Contact slightly.
[Add] AutoScroll class.
[Add] AutoScroll function to Translator list.
[Add] AutoScroll function to Event list.
[Fix] Changed frame design of output.
[Fix] Removed empty lines behind the events.
[Fix] Panel-Widgets: Changed mode display.
[Add] Country Rank to osu!tp.
[Add] Country Flags.
[Fix] osu!tp activity output is now in the same format as the Widgets output.
[Add] Option to disable country flags.
[Add] Option to disable automatic event scrolling.
[Fix] Changed "AutoUpdate" string to be more accurate.
[Fix] Reworked image caching.
[Fix] Changed "Avatar cache" to "Image cache".
[Fix] Changed internal folder structure slightly.
[Add] Clean up app folder onCreate.
[Fix] Possible solution for "No such user" when pressing random.
[Add] Several new strings.
[Rem] Obsolete "textview_user" string.
[Fix] Adjusted debug output format slightly.
[Fix] Interface adjustments for 2.2.3 Gingerbread [SDK 10] users.
[Add] Dutch (NL) language. (Credit to baraatje123)
[Add] Italian (IT) language. (Credit to Roxas)
[Fix] Panel-Widgets: Rank overlapping left stats.
[Rem] "Rank:" String infront of ranking, String now unused.
[Fix] Placed the "Acc." & "Accuracy" String behind the accuracy instead of infront it.
[Add] Backend Backup. (Mostly for updates)
[Add] Feature to enable/disable "Search" and "Set Widget" button. (Long press on the "Random" button)
[Fix] Selecting a Widget inside the dropdown won't overwrite the input field anymore. (Long press on the dropdown to do so now)
[Fix] Don't block last searched name after pressing "Random" and then trying to search for it again.
[Fix] Numerical user names are now correctly searchable.
[Rem] Ability to search by user ID, will (may)be back again later.
[Fix] Exception when level value is null.
[Add] Country Ranks when searching! (Workaround for now, will be corrected later)
[Fix] Usernames are now correctly trimmed. (Whitespaces infront & behind the name are removed)
[Add] Portuguese (PT) language. (Credit to Maav)
[Fix] Adjusted a few debug features.
[Rem] Avatar-Widget: Useless lookups.
[Add] Implemented osu!tp support for "Search".
[Add] Polish (PL) language. (Credit to Maxorq)
[Add] Finnish (FI) language. (Credit to Cassu2)
[Add] Implemented osu!tp support for Widgets!
[Fix] Small adjustments to AutoUpdate backend.
[Fix] Adjusted osu!tp output.
[Add] Icon-Widget: osu!tp background!
[Fix] AutoUpdate cleanup.
[Rem] Obsolete global vars.
[Rem] Obsolete "Whitespace" strings. (All languages)
[Rem] Never used "User avatar" string. (All languages)
[Add] Thai (TH) language. (Credit to NeVe12p4wNeD)
[Fix] Mail address inside "Contact" now clickable.
[Fix] All around code cleanup, the usual.
[Fix] Consistency changes.
[Fix] Security based backend changes.
[Fix] Adjusted time calculation of events slightly. (May explode)
[Add] On a whim I decided to add a Random-button!
[Fix] Random-button does not log users anymore. (Searchlog -> Only for searches)
[Add] Widget dropdown is now only refreshed if there were changes. (Or on entering the "Settings" screen)
[Fix] Tried to fix issue where Notification crashes osu!Rank.
[Fix] Changed debug cmd handling slightly.
[Add] First steps for error reporting.
[Fix] Layouts for Android version 2.2.3 Gingerbread [SDK 10]. (Sorry, they were totally messed up before!)
[Fix] Reworked Notification style slightly. (Dependend on Android version)
[Fix] Changed difference calculation, first calculation after "Set Widget" should display correctly now.
[Fix] Localisation updates. (FR, DE)
[Fix] Adjusted HTML parsing of events slightly. (May explode)
[Add] Norwegian (NO) language. (Credit to petterroea)
[Add] Chinese (ZH)[Simplified & Traditional] language. (Credit to Oinari-sama)
[Fix] Adjustment to "setLanguage" function. (Can now handle multiple languages for one country and vice versa)
[Fix] Ordering languages alphabetical now, rather than time of include. (Excluding "Local language" entry)
[Fix] Changed "Level percentage" to fit recent web changes.
[Fix] Changed threading behavior of Widgets, should fix sudden lags and improve performance.
[Fix] Changed Widget selection check slightly.
[Add] A wild "Back" button appears inside the preferences, its very effective.
[Fix] Like everytime, code cleanup.
[Fix] Adjusted Primitive & Wrapper datatypes.
[Fix] Reworked AutoUpdate completly, now working within the application!
[Add] Contact section, also including all translators.
[Fix] Changed Copyright section.
[Fix] Disabled Hardware "Back" button inside the MainActivity for now. (Workaround)
[Add] Notification on updates without opening the Application! (AutoUpdate must be turned on)
[Fix] AutoUpdate check on Application startup now runs "silent", no "No update available." message. (Only on manual check by clicking on the Version)
[Add] All translators are now mentioned under "Contact".
[Fix] Slight changes to Event parsing.
[Add] Now also showing difference of Accuracy!
[Fix] Changed behavior of "No such user" situation.
[Fix] Only notify user every few hours at max, outside of the application, if there is a new update. (AutoUpdate needs to be on)
[Fix] If Android Version > GINGERBREAD_MK1(SDK10) use different notifier.
[Add] Clicking on Avatar inside "Contact" links directly to profile.
[Fix] Changed Rank/Plays/pp difference format slightly. (Added separators for thousands)
[Add] Japanese (JA) language.
[Add] "Invalid API key" notification, just in case.
[Fix] Caught exceptions caused by negative integers.
[Fix] Caught possible selection error.
[Fix] 100% Accuracy not correctly displayed in some cases.
[Fix] Changed parsing of JSON slightly.
[Add] Error message if JSON parsing fails. (Was just a "random" error number before)
[Fix] Changed "explode" string for Fatal Errors. (Used for everything that could explode while connecting to the database)
[Fix] Changed query behavior on same data.
[Fix] Changed String insert function.
[Add] Showing 5 most recent events when using "Search".
[Fix] Changed handling of float values.
[Fix] Changed Preferences slightly.
[Fix] Changed Backend query slightly.
[Fix] Fixed clicking on Avatar after "Search". (again)
[Fix] Changed "Set Widget" slightly.
[Fix] "," is now allways used as the thousands separator.
[Fix] "." is now allways used as decimal separator.
[Fix] Adjusted timeouts again.
[Fix] Changed Avatar cache bahavior to be more consistent.
[Fix] Updated Languages. (DE, FR)
[Fix] Cached bitmaps are now again correctly deleted on Widget removal.
[Fix] Changed onClick behavior.
[Rem] Redundant WidgetsRunning function.
[Fix] Typos inside Strings. (FR)
[Fix] Changed "Widget created!" message slightly. (ES)
[Fix] Changed handling of default output message.
[Rem] ForceEnglish, farewell old friend.
[Add] Language selection inside the Settings menu.
[Rem] Strings for ForceEnglish. (EN, DE, ES, FR)
[Add] Several new Strings for the Language selection. (EN, DE, ES, FR)
[Fix] Remodelled "onClick" events.
[Fix] Clean up of dead code parts.
[Rem] SpamProtection, update system works different now. (Noticeable on Widgets)
[Fix] Changed "Do you really want to xy?" question slightly. (EN)
[Fix] Changed AutoUpdate behavior.
[Add] Widgets automaticly update on "Widget set".
[Rem] Got rid of the annoying SpamProtection, handling it otherwise now.
[Rem] SpamProtection strings. (All languages)
[Fix] Optimized a few intents slightly.
[Add] Widgets: Added color indicator for rank changes. (Excluding Icon-Widget)
[Fix] Avatar-Widget: Adjusted Rank & RankChange margins.
[Add] Panel-Widget: Now also showing changes for "plays", like Wide-Panel-Widget does.
[Fix] Odd behavior of "Back-Button".
[Fix] Clicking on the avatar now works everytime. (Inside the application)
[Fix] Included API key into query. (Queries should now work again)
[Fix] "Set Widget" only sets if there is different data.
[Fix] "Search" only searches if its a different query than before.
[Fix] Changed Avatar cache behavior on query errors.
[Rem] Obsolete receiver.
[Fix] Changed "Query" to "Search". (EN, DE, ES)
[Fix] Changed "Logged Queries" to "Search History". (EN, DE, ES)
[Fix] Several other small localisation updates. (EN, DE, ES)
[Fix] Changed order inside menu.
[Add] A new Widget Type: Wide-Panel-Widget. (Uses the same layout as the normal Panel)
[Fix] Changed Bitmap loading slightly.
[Fix] Panel-Widget: Added padding to the Avatar inside the Panel. (Only noticeable for wide panel)
[Fix] Added check for connection when clicking on the osu! link.
[Fix] Query Logger now only logs existing users.
[Fix] Changed Preference saving.
[Fix] Removed whitespace infront of "Change me" string.
[Fix] Sort "Search history" alphabetically and case insensitve.
[Fix] Removed the max lines (5) for the output.
[Add] French (FR) language. (Credit to jyvii)
[Fix] Adjusted max "Search History" length.
[Add] Start to implement user debug functions. (Work in progress)
[Add] Included "TxtFileArray"-module for later use of debugging. (Credit to skyleo)
[Fix] Changed the way of updating Widgets.
[Add] More colors for the CtB-background due to color testing. (Chosen at random, feedback welcome)
[Fix] Changed ClickSpamProtection and SpamProtection slightly.
[Fix] Decreased SpamProtection for "Search" queries. (10 down to 5)
[Add] Function to clear cache.
[Fix] Crash on certain Android versions, caused by the Panel-Widget. (nullref (╯°□°)╯︵ ┻━┻)
[Fix] Catched a few more possible errors, while at it.
[Fix] Panel-Widget: Adjusted the "Creation" and "No such user" message.
[Fix] Renamed the Widget to "osu!Rank (Icon)". (Will start to refer to Widgets inside Changelog indivudually now)
[Add] New Panel like Widget: "osu!Rank (Panel)"!
[Fix] Lots of code cleanup.
[Fix] Icon-Widget: Changed font sizes. (Feedback welcome)
[Add] Icon-Widget: Added backgrounds for each mode. (Work in progress)
[Rem] Icon-Widget: Got rid of obsolete "gamemode" tag.
[Add] Icon-Widget: Showing the Accuracy now above "plays".
[Fix] Complete remodel of Widget update function.
[Fix] Icon Widget: Adjusted position of "Status text" alias "Loading". (Feedback welcome)
[Fix] Icon-Widget: Changed size of "Status text".
[Fix] Icon-Widget: Adjusted glow slightly. (Feedback welcome)
[Add] Permission to access SD-Card. (See below)
[Add] Panel-Widget: Avatar caching for offline views and performance.
[Add] Panel-Widget: Also remove cached avatar if Widget is being removed.
[Fix] Changed Auto-Complete design.
[Fix] Changed default output string, again. (EN, DE, ES)
[Fix] Changed pp handling a little.
[Add] Reading timeout. (So that Connection timeout isn't lonely anymore)
[Fix] Tweaked timeouts.
[Fix] "update_text" string. (DE)
[Fix] Typo inside strings, "exisitert" -> "existiert". (DE)
[Fix] Widget selection now displays changes correctly.
[Fix] Reworked query function for more performance.
[Add] Included a (now working) timeout for the Widget and the Application.
[Fix] Changed behavior for "user does not exist" cases.
[Add] Internal error code for exceptions. (Used for better handling)
[Add] New "timeout" strings. (EN, DE, ES)
[Fix] As always, random code cleanup.
[Fix] Changed button layout slightly. (Acted strange in some cases)
[Fix] Shortend "logged query" strings. (EN, DE, ES)
[Fix] Updated strings. (ES)
[Fix] Cleanup in Backend script.
[Fix] Internal string changes in Backend script.
[Fix] Improved update performance, also included timeout.
[Fix] Changed string "Force english" to "Force English". (EN)
[Add] Added some error message strings. (EN, DE, ES)
[Fix] Rewrote the whole error handling.
[Fix] Widget status message appears now in the background. (Its not replacing the name anymore)
[Fix] Status message and Text got a slight glow now.
[Fix] Fully reworked the Widget update function.
[Add] Prepared future support for different backgrounds. (No different background implementet yet!)
[Rem] Replaced debugger/placeholder string "Nonce" with... empty space.
[Add] String short form for "Accuracy", not used yet. (EN, DE, ES)
[Fix] Changed "Click to do X" to "Touch X to do Z". (EN, DE, ES)
[Fix] "Force english" should now work correctly on Widgets.
[Fix] "[" and "]" are now usable for queries. (Sorry, sorry~)
[Add] AutoUpdate Backend.
[Add] AutoUpdate function. Checks on start or by clicking on the bottom left version. (May explode!)
[Add] New strings for the update prompt.
[Add] Option to enable/disable the on startup AutoUpdate. (Menu button)
[Fix] Remodel of a few classes for performance.
[Fix] Reworked application layout, making it more intuitive. (Credit to Oinari-sama)
[Fix] Small changes to the Widget layout, more to come. (Credit to Oinari-sama)
[Add] Spanish (ES) language. (Credit to S v p e r)
[Fix] Changed typo inside DE string.
[Fix] Loading "Force english" config earlier now.
[Fix] Removed loading "Force english" on resume, should still be present.
[Fix] Forcing a restart on "Force english" to reload all Strings correctly and cleanly.
[Fix] "Force english" is not that aggressive anymore.
[Fix] Random code cleanup, again.
[Fix] Adjusted a layout variable for the Widget.
[Fix] Changed "No Widget" string (EN, DE).
[Fix] Changed minSdkVersion to 10 (still working on lower support, target is 17).
[Fix] Changed SpamProtection for the Activity slightly.
[Add] Included a "Change me!" string for empty Widgets inside the Activity (EN, DE).
[Add] New Icon.
[Rem] Removed all traces of the old icon, goodbye old friend.
[Fix] Caught possibility for errors inside the accuracy.
[Fix] Changed the check behavior inside the menu a little.
[Fix] All around code cleanup.
[Fix] Changed positioning and handling of avatars slightly.
[Fix] String changes inside DE.
[Fix] Changed .apk name to include the version: "osu!Rank-1.0.2.apk"
[Fix] Showing wrong accuracy.
[Fix] SpamProtection tweaking.
[Add] First release!
Known issues / To do / Coming soon
(Click to expand)
1.1.6:
[Fix] Pressing back in MainActivity now closes the Application again.
[Fix] Database error when using osu!tp.
[Add] Swedish (SV) language. (Credit to Freddeeeee)
[Fix] App crash caused by loading not existing user avatars.
[Rem] osu!tp support.
[Fix] Rework Search History saving.
[Add] Multi-User-Widget.
[Add] Compare users.
[Add] 1x2 Panel Widget.
[Fix] Icon-Widget: Rework design.
[Add] Nicer layout for them tablet screens! (Zakkyliar)
[Fix] Change Widget Fonts.
[Add] Lockscreen Widget.
[Fix] Rework Widget config saving.
[Add] 4x4 Widget. (Oinari-sama)
[Add] "Live Translations".
[Add] Website for osu!Rank.