Code Monkey home page Code Monkey logo

meteroid's Introduction

Build Status

logo

What

Small Android application to use with mete, the Matekasse of Chaosdorf.

Where

How does it look?

the main screen

adding an account

your logs

License

The MIT License (MIT)

Copyright (c) 2013-2016 Chaosdorf e.V.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Privacy

The meteroid app stores a few things permanently on your device ("permanently" meaning, until you uninstall the app or clear its data):

  • the URL of your chosen mete instance
  • your user ID (just a number that identifies you)
  • your last five used items

Additionally, some data may be cached temporarily:

  • your avatar
  • the avatars of other users
  • the images of drinks

The rest of the data is kept in your mete instance. Please check its terms and make sure you trust its operators:

  • your chosen name (this can just be a nickname)
  • your e-mail address (optional)
  • your usage history (optional)

meteroid's People

Contributors

ytvwld avatar donnerbart avatar feuerrot avatar kamikazow avatar exmatrikulator avatar

Stargazers

Minho Ryang avatar ScottMJaffe, MEd REQ 6 IC3-level A23–9214685 et seq. avatar  avatar Dago avatar  avatar Ralaud avatar  avatar Oerb avatar Mic Szillat avatar  avatar

Watchers

N-te avatar James Cloos avatar Oerb avatar  avatar  avatar  avatar OpenApk avatar

meteroid's Issues

Hardware Back-Button

Es wäre super, wenn man nicht nur über das 'zurück'-Icon in der App, sondern auch mit den Hardware-/Soft-Buttons auf die Übersicht zurück kommen könnte.
atm wird beim Betätigen des Hardware-/Soft-Buttons die App beendet.

Build fails for Marshmallow.

This is the error log:

:meteroid:preBuild UP-TO-DATE
:meteroid:preDebugBuild UP-TO-DATE
:meteroid:prepareDebugDependencies
:meteroid:compileDebugAidl
:meteroid:compileDebugRenderscript
:meteroid:generateDebugBuildConfig
:meteroid:mergeDebugAssets
:meteroid:mergeDebugResources
/home/niklas/dev/meteroid/meteroid/src/main/res/drawable-hdpi/button_reload.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/niklas/dev/meteroid/meteroid/src/main/res/drawable-xhdpi/button_reload.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/niklas/dev/meteroid/meteroid/src/main/res/drawable-mdpi/button_reload.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/niklas/dev/meteroid/meteroid/src/main/res/drawable/button_reload.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
:meteroid:processDebugManifest
:meteroid:processDebugResources
:meteroid:generateDebugSources
:meteroid:compileDebug
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:27: error: package org.apache.http.message does not exist
import org.apache.http.message.BasicNameValuePair;
                              ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:93: error: cannot find symbol
        public static List<BasicNameValuePair> userToPostParams(final User user)
                           ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:29: error: package org.apache.http does not exist
import org.apache.http.HttpEntity;
                      ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:30: error: package org.apache.http does not exist
import org.apache.http.HttpResponse;
                      ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:31: error: package org.apache.http.client does not exist
import org.apache.http.client.HttpClient;
                             ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:32: error: package org.apache.http.client.methods does not exist
import org.apache.http.client.methods.HttpGet;
                                     ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:33: error: package org.apache.http.impl.client does not exist
import org.apache.http.impl.client.DefaultHttpClient;
                                  ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:34: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.BasicHttpContext;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:35: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.HTTP;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:36: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.HttpContext;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:37: error: package org.apache.http.util does not exist
import org.apache.http.util.EntityUtils;
                           ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:29: error: package org.apache.http does not exist
import org.apache.http.HttpEntity;
                      ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:30: error: package org.apache.http does not exist
import org.apache.http.HttpResponse;
                      ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:31: error: package org.apache.http.client does not exist
import org.apache.http.client.HttpClient;
                             ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:32: error: package org.apache.http.client.entity does not exist
import org.apache.http.client.entity.UrlEncodedFormEntity;
                                    ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:33: error: package org.apache.http.client.methods does not exist
import org.apache.http.client.methods.HttpPost;
                                     ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:34: error: package org.apache.http.impl.client does not exist
import org.apache.http.impl.client.DefaultHttpClient;
                                  ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:35: error: package org.apache.http.message does not exist
import org.apache.http.message.BasicNameValuePair;
                              ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:36: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.BasicHttpContext;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:37: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.HTTP;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:38: error: package org.apache.http.protocol does not exist
import org.apache.http.protocol.HttpContext;
                               ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:39: error: package org.apache.http.util does not exist
import org.apache.http.util.EntityUtils;
                           ^
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:49: error: cannot find symbol
        private final List<BasicNameValuePair> postData;
                           ^
  symbol:   class BasicNameValuePair
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:51: error: cannot find symbol
        public LongRunningIOPost(final LongRunningIOCallback callback, final LongRunningIOTask id, final String url, final List<BasicNameValuePair> postData)
                                                                                                                                ^
  symbol:   class BasicNameValuePair
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:95: error: cannot find symbol
                final List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
                           ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:95: error: cannot find symbol
                final List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
                                                                     ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:96: error: cannot find symbol
                pairs.add(new BasicNameValuePair("user[name]", user.getName()));
                              ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:97: error: cannot find symbol
                pairs.add(new BasicNameValuePair("user[email]", user.getEmail()));
                              ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/controller/UserController.java:98: error: cannot find symbol
                pairs.add(new BasicNameValuePair("user[balance]", String.valueOf(user.getBalance())));
                              ^
  symbol:   class BasicNameValuePair
  location: class UserController
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:55: error: cannot find symbol
                HttpClient httpClient = new DefaultHttpClient();
                ^
  symbol:   class HttpClient
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:55: error: cannot find symbol
                HttpClient httpClient = new DefaultHttpClient();
                                            ^
  symbol:   class DefaultHttpClient
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:56: error: cannot find symbol
                HttpContext localContext = new BasicHttpContext();
                ^
  symbol:   class HttpContext
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:56: error: cannot find symbol
                HttpContext localContext = new BasicHttpContext();
                                               ^
  symbol:   class BasicHttpContext
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:57: error: cannot find symbol
                HttpGet httpGet = new HttpGet(url);
                ^
  symbol:   class HttpGet
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:57: error: cannot find symbol
                HttpGet httpGet = new HttpGet(url);
                                      ^
  symbol:   class HttpGet
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:60: error: cannot find symbol
                        HttpResponse response = httpClient.execute(httpGet, localContext);
                        ^
  symbol:   class HttpResponse
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:67: error: cannot find symbol
                        HttpEntity entity = response.getEntity();
                        ^
  symbol:   class HttpEntity
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:68: error: cannot find symbol
                        return EntityUtils.toString(entity, HTTP.UTF_8);
                                                            ^
  symbol:   variable HTTP
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOGet.java:68: error: cannot find symbol
                        return EntityUtils.toString(entity, HTTP.UTF_8);
                               ^
  symbol:   variable EntityUtils
  location: class LongRunningIOGet
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:62: error: cannot find symbol
                HttpClient httpClient = new DefaultHttpClient();
                ^
  symbol:   class HttpClient
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:62: error: cannot find symbol
                HttpClient httpClient = new DefaultHttpClient();
                                            ^
  symbol:   class DefaultHttpClient
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:63: error: cannot find symbol
                HttpContext localContext = new BasicHttpContext();
                ^
  symbol:   class HttpContext
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:63: error: cannot find symbol
                HttpContext localContext = new BasicHttpContext();
                                               ^
  symbol:   class BasicHttpContext
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:64: error: cannot find symbol
                HttpPost httpPost = new HttpPost(url);
                ^
  symbol:   class HttpPost
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:64: error: cannot find symbol
                HttpPost httpPost = new HttpPost(url);
                                        ^
  symbol:   class HttpPost
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:67: error: cannot find symbol
                        httpPost.setEntity(new UrlEncodedFormEntity(postData));
                                               ^
  symbol:   class UrlEncodedFormEntity
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:76: error: cannot find symbol
                        HttpResponse response = httpClient.execute(httpPost, localContext);
                        ^
  symbol:   class HttpResponse
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:83: error: cannot find symbol
                        HttpEntity entity = response.getEntity();
                        ^
  symbol:   class HttpEntity
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:84: error: cannot find symbol
                        return EntityUtils.toString(entity, HTTP.UTF_8);
                                                            ^
  symbol:   variable HTTP
  location: class LongRunningIOPost
/home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/longrunningio/LongRunningIOPost.java:84: error: cannot find symbol
                        return EntityUtils.toString(entity, HTTP.UTF_8);
                               ^
  symbol:   variable EntityUtils
  location: class LongRunningIOPost
Note: /home/niklas/dev/meteroid/meteroid/src/main/java/de/chaosdorf/meteroid/PickUsername.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
50 errors
:meteroid:compileDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':meteroid:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 9.155 secs

Glitches in SetHostname

If you open the screen for setting the hostname repeatedly, there will be a few graphics glitches.

They've been there already for a few years and I've got no idea why or what to do about them.

Kein Farbverlauf

Bei einer vollen Liste hält sich der visuelle Gewinn durch den Farbverlauf im Hintergrund in Grenzen.
Bei AMOLED-Screens (zB bei Galaxys) ist Schwarz=aus -- ganz schwarze Flächen sparen also Strom.

Optionale Vollbild-Uhr

Wenn das Mete-Pad im Multiuser-Modus an der Wand hängt, könnte nach einigen Minuten eine Uhr angezeigt werden – sinnvoll, wenn man in der Küche keine Uhr hängen hat.

App crashes after inputting user in Meteroid

Expected behavior

Wanted to create user so I can start depositing, I expected after creating user it will be saved then I will start.

Actual behavior

After clicking the save button, App crashes.

How to reproduce

  • download Meteroid app from here
  • fill host name and save
  • click on the adding user by using the plus sign below
  • fill the spaces provided
  • click the save button at the top right corner
    App crashes
  • Mobile: Infinix note 4
  • Operating system: android 7.0
  • version: 2.4.0

Recording Of The Bug

https://youtu.be/voqGexfCpGA



Posted on Utopian.io - Rewarding Open Source Contributors

Display wrapped

meteroid should display the wrapped page it it's there.

implementation idea:

  • check whether user has logs enabled
  • check whether December or January
  • check whether /user/{id}/wrapped/{year} returns 200 or 404
  • display a snack bar or something like that
  • display wrapped in a browser tab or webview or stuff like that

Group user names by first character

Android's fast scrolling seems to be not very intuitive to people not familiar with Android UX concepts.

Also, it doesn't quite provide what we want:
Displaying only users with names whose first character matches the one given.
(Instead it jumps to the beginning of the category.)

We should probably copy Mete's behavior here.

Edit drinks

It would be nice, if drinks could be added, modified and deleted.

show more shortcuts

Since 2fa4f37, we show a shortcut for the last drink.
Android allows us to show more (about five, I think), but we would then need to implement an algorithm which curates this list.

Display audits

It should be possible to view the audits (for a given time frame and / or for a given user).

Verify URLs before saving

When setting the URL of the server to connect to, we should check whether it is actually reachable and speaks a known version of the Space-Market API before saving.

update Gradle plugin for Android

Since October 2017, there's a new version of the Gradle plugin for Android.

Updating would bring a few benefits:

  • improved build time
  • support for Java 8 features
  • support for Gradle 5

But there are many hurdles:

  • the new version seems to bring in a new version of the databinding stuff which requires Android API >= 14
  • the new version seems to bring in a new version of the support library
  • which breaks https://github.com/makovkastar/FloatingActionButton, so this has to be replaced

So, this probably is much work. And we won't get any positive outcome until most of it is done.

If we're lucky, we can pin some stuff and do that later.

The branch issue22 contains a few commits heading in this direction.

Cryptographic APIs misuses

I'm a PhD student interested in finding security vulnerabilities in open source projects.

We found a total of 10 warnings (indicating potential vulnerabilities) when running the CogniCrypt static analyzer (*) on meteroid (or its library dependencies). We documented each one of these issues in private gists for the sake of confidentiality (non-disclosure).

Can you please let us know whether we can share these gists with you? We are eager to evaluate the perception of developers (e.g. severity of these warnings) and improve meteroid's security, and the quality of the reports of static analysis tools.
(*) https://github.com/CROSSINGTUD/CryptoAnalysis

Entering https:// causes a fatal exception

Expected behaviour

When a user enters a URL which the application deems to be invalid the user should be presented with a prompt which informs them that the URL is not valid.

Actual behavior

When a user enters a URL which is invalid the application crashes.

How to reproduce

  1. Download the application from here
  2. Install & Launch
  3. When you launch the application you will be taken to a page where you enter a host name. This input field on this page will have a pre-populated URL.
  4. Remove the prepopulated URL and add in https://
  5. Click save using the icon on the top right.
  6. The application will stop

Environment

  • Application Version: 2.4.0
  • Operating system: Android 5.0.2
  • Device: Samsung Galaxy Alpha
  • Model Number: SM-G850

Recording Of The Bug

An image which shows the bug can be seen below:

ezgif-1-f41f5e7e94.gif



Posted on Utopian.io - Rewarding Open Source Contributors

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.