Coder Social home page Coder Social logo

taedium-android's Introduction

Taedium is a service to break the cycle of boredom amongst friends ("I don't know what do you want to do?"). Taedium recommends all kinds of different activities based on any topics you can imagine. Because the database is populated by the users, there is no limit to the variety of recommendations you might get. Recommendations can be filtered, liked/disliked and are recommended based on your personal tastes.

Installation

The Android app is now available in the Android Market so please download and install it there.

Filing Issues

Please file any issues or enhancement requests you come across. We really appreciate it!

taedium-android's People

Contributors

jvoll avatar ahal-test avatar

Stargazers

 avatar

Watchers

Shane da Silva avatar James Cloos avatar

Forkers

ahal jvoll

taedium-android's Issues

Occasional crash on load

Stack trace from Android developer console:

java.lang.RuntimeException: Unable to start activity ComponentInfo{me.taedium.android/me.taedium.android.view.ViewRecommendation}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment me.taedium.android.view.RecommendationAdapter$RecFragment: make sure class name exists, is public, and has an empty constructor that is public
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment me.taedium.android.view.RecommendationAdapter$RecFragment: make sure class name exists, is public, and has an empty constructor that is public
at android.support.v4.app.Fragment.instantiate(Fragment.java:388)
at android.support.v4.app.FragmentState.instantiate(Fragment.java:96)
at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1662)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:192)
at me.taedium.android.view.ViewRecommendation.onCreate(ViewRecommendation.java:45)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
... 11 more
Caused by: java.lang.InstantiationException: me.taedium.android.view.RecommendationAdapter$RecFragment
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.support.v4.app.Fragment.instantiate(Fragment.java:377)
... 17 more

Use new likes API

I noticed that we aren't getting likes/dislikes when we load a list of activities. I looked into it and the reason is that the API has changed so that we must request likes/dislikes separately and they don't come back automatically when we just request a bunch of activities for a user.

I talked to Shane and the reason for this is that it difficult to change what comes back in the activity object based on the user. This might change in the future, but we agreed that for now we fix bugs and no new features so we should fix this.

Detect duplicates when adding activities

From a user study done with my family:
Brother added "Go running" and we didn't show anything saying that similar activities exist. We should do something to warn the user of potential duplicates on the first screen when the user enters the title or something.

Disabled buttons look active

By default disabled buttons are a light grey and look like they can be clicked. We should see if we can change that.

Implement activity buffer/cache

I want to let users set an activity buffer (cache size) which we will immediately fill with activities. When an activity is viewed it gets removed from the buffer (when there are 10 empty spaces we re-fill it).

This way:
a) The user doesn't need network connectivity
b) The user never has to wait for the next set of activities to load

This will be slightly tricky since we will need to think about filtering and stuff like that. Maybe the buffer could be used as a backup in case there is no internet connection.

I'm going to say this will likely not be targeted for the demo, but it's something I'd like to do long term.

Replace RecommendationGallery with ViewPager

We are using a somewhat hacky solution to get our horizontal scrolling the way we want it. Google recently released a ViewPager widget that looks like it does exactly what we want. We should use this instead.

Text spacing and button cutoff for help dialogs

Help dialogs look good but I noticed two things (at least on my device):

  1. Sometimes there seems to be an extra space insert in front of the beginning of some of the first lines of each paragraph in the dialogs.
  2. The OK button gets cutoff a bit on some of them (noticeably on the "People and Age" page but perhaps others as well, didn't check them all).

I'd look into these myself right now...but I'm too tired and figured since you (ahal) implemented it, you'd have an easier time fixing this.

Add help dialogs to the add activity wizard

From a user study done with my family:
The common user (including my two siblings) didn't really understand what tags were or why they were there. We have a whole page, we should add a small description with text along the lines of "Tags help us give you better recommendations. For example, if you add the activity "Play Super Mario Bros" you would tag this with "video games"."

Need to rework how users add tags

From a user study done with my family:
User tried adding a tag and just clicked "done". Tag didn't show up and she was confused as to why. Clicking "Add" followed by "Done" is not intuitive. I don't have a better solution in mind yet but I feel like we need to address this with a rework of how this page functions.

Don't fail when there is no network

Currently the app will crash or do other undefined behaviour when network calls fail. We should have a "No internet detected" activity whenever there isn't a network connection. This should be implemented in caller.java

Button on add activity map view should fill width

The default button style bakes some padding into the actual image.. this makes certain buttons such as the "Use specified location" button in the add activity map view look ugly. We should spin our own button style without padding (or make it look better in general while we're at it).

Filter info is reset upon re-opening app

For example if I set "Environment" to "Indoor" the filter bar will say "Indoor" on the right side. However if I restart the app it will no longer say "Indoor" even though the Indoor check box is still checked.

Add a home button in the menu

With the recent addition of the profile pages, it is possible to get buried very deep in the activity stack and have to hit the back button many times to get back to the main page. We should have a "Home" button in the menu to unravel the activity stack and pull you back to the main page.

Show some indication that user is logged in

If a user logs in, we should make it obvious somehow that they are logged in. The use case for this is that I was scrolling through activities (thinking that I was logged in) and wondered why my likes/dislikes weren't showing up. Turns out I wasn't logged in. I'm not sure exactly how/where to show this, but I think it might be a good idea to somehow make it more obvious.

Header fixes

  1. The titles in the UI for profile pages look like buttons (as per our past convention with the "Add Activity" button). We should move these titles out of the header by adding another bar below it. This will take some experimentation.
  2. We broke the header when adding these titles to it. On Shane's phone (phones with small screens) the taedium text in the header overlaps the lightbulb. This is an easy fix, but these two things should be fixed at the same time.
  3. We should consider making the header "Add Activity" button match the look and feel of the Like/Dislike/Flag buttons in the footer that we have on the ViewRecommendations page.

Don't fail when there is no network

Currently the app will crash or do other undefined behaviour when network calls fail. We should have a "No internet detected" activity whenever there isn't a network connection. This should be implemented in caller.java

Dialogs stretch to full width of screen in landscape view

To reproduce open a dialog (most offensive looking one is the login dialog) and flip the screen to landscape mode. I'm not sure exactly how to make this look its best, however I'm thinking that just by not stretching the dialog to the full width of the screen in landscape mode will help a lot.

Hook the add map activity search box into Google maps service

At the moment it just interprets input as an address and tries to spit out a lat/long. This means if you search something like "Younge and Dundas" it will have no idea what to do. Instead we should make a call to the Maps API to get the same results as if they typed into Google maps. Failing this we should remove this feature and just allow users to select a city.

Implement 'todo activity' list

Users should be able to save activities that they want to do for later and be able to view these activities on their profile page

Header on Register page has unnecessary line

This line is used on other pages to denote a button. Apparently this is the only page in the UI where we don't show a button there, so we should remove this line or add a button. Really there is no reason that the "Add Activity" button can't be displayed there since you no longer are required to be a registered user in order to submit an activity. Perhaps that is the best fix.

Persistent Login needed

Login doesn't always seem to persist across sessions. Ideally, you should remain logged in even if you turn your phone on and off.

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.