Giter VIP home page Giter VIP logo

edmontonwifi's People

Contributors

amauryesparza avatar chris-hut avatar

Watchers

 avatar

Forkers

amauryesparza

edmontonwifi's Issues

Add search functionality

Blocked by #2

Kinda silly having this huge ass list for them wifis.

Add search functionality for:

  • Everything - default search
  • Advanced search - by name, address, filter by status/provider/location within xkms

Improve look of wifi view

When you look into my eyes, then you won't be seeing what's on the screen.

Right now when you click on a wifi from the list to choose it, all of the information is displayed very ugly.

Lettuce fix this

Definition of done:

  • Improve buttons
  • Maybe a little picture?
  • Bigger font sizes
  • fill the screen with info
  • make sure nothing is cropped on small devices
  • Add comments section?

Help Section in Settings

Since no one really cares about the 1st time tutorial, there should be a help section in settings that tells everyone about how to use the app

Create another Fragment for testing

Before I worry about trying to fix all of this stuff, I should create at least one other fragment that will be in the navigation drawer so that I can make sure that everything works with multiple fragments.

Fragment can just be blank or say something like "Coming Soon"

Improve the look of list of wifis

Currently in main activity, we list all wifis, but this sure doesn't look that great.

Definition of done:

  • Make this more appealing
  • Test it out on on different sized screens
  • Colours, font size, effects?

Action On Click isn't being saved

Currently MainActivities actionOnClick variable that determines what to do when a use clicks on a wifi in the list isn't being saved when the application is being killed.

This is probably due to me being stupid with my SharedPreferences since I haven't used them in a while.

Figure this out and fix it.

Definition of done:

  • actionOnClick is saved when app is killed
  • Test this manually a couple of times

Refactor Sorting Of Objects

Currently I have it so that Wifi s a preference listener and whenever the sort preference is changed, the wifi will sort based on that.

This is a terrible design, and once I start adding wifis, the overhead of adding all of them as listeners is silly. What I should do, possibly in MainActivity, is have MainActivity get the sort preference and then tell all of the possible fragments that they should sort themselves in this way.

Improve location getting

Since we're just currently getting the user's location in the onCreate of MainActivity, we should allow them to refresh their location when they want.

Also current implementation just tells user how far away they are from each wifi with no units or anything, should spruce that up a bit.

Definition of done:

  • Add refresh location button
  • Add magic units that change from ms to kms
  • Add location in ListView of MainActivity
  • Show/do something better when we don't have the users location
  • for the kms, divide by 1000

Fix Sorting of WiFis

Needs to be done after #44.

The addition of the NavigationDrawer broke sorting of Wifis. This is because the Sort Dialog is created by MainActivity, and when calling its SortDialogFragmentCallback thing, it calls MainActivity, who doesn't have any more wifis.

Possible solutions:

  • Pass the callback call to the Fragment through the MainActivity
  • Start and get callback straight from the Fragment
  • Move this logic somewhere else, like in a settings screen?

Intent to maps

Currently the intent to maps doesn't seem to work all of the time, need to make sure that we're using the correct city

Update the ActionBar text based on the foreground Fragment

Needs to be done after #44.

Currently the actionbar text is always EdmontonWifi, even though it should be the name of the Fragment that is currently in the foreground.

This shouldn't be to hard to implement; I remember in a couple tutorials seeing how to do this.

Improve Search Functionality

Right now we just mash the search, this could probably be done a lot better.

Definition of done:

  • At least looked into a better way of actually doing the search/removing the non-believers
  • Search by just name, address kinda thing
  • Display a message if no results found

Redo getting location to actually do it properly

Right now we're just using some magic method I got from stackoverflow to get the location of the device, which sucks because:

  • Isn't very debug-able
  • Only works on high-accuracy location settings
  • Only tries to get location once, when we should try for a little bit until we get a nice lock
  • User can't really tell that we're getting their location for them

Should be done with #27

Definition of done:

  • Use the google approved location strategies
  • Do all of this plus notifying use in background thread, as per #27
  • Try more than once and for more than one second to get user's location, gps might not have a lock yet
  • Background thread if applicable

Throw some MVC on this

This currently isn't very MVCy.
Let's try and change that.

Definition of done:

  • There is a Wifis or ListofWifis class or something that is used to get a list of wifis
  • MainActivity, (a view), has its own local copy of Wifis which can then be filtered and whatnot

1st Time Opening Tutorial

Wouldn't it be nice if this app showed you what is supposed to happen the first time you open it?
You know the #HOLOYOLO blue that circles stuff and tells you about what is happening?

Definition of done:

  • Figure out good colors
  • For MainActivity, add help for search, wifi, and options
  • For WifiViewActivity, add help for buttons and explain everything

Decide whether to implement WifiList's notifyView

Currently WifiList WifiList doesn't have the ability to update views when the list of Wifi's is changed.

Should we implement this?

  • It would be an easy enough change - see StoryList from CMPUT301

However when would wifiList ever change except for when I personally update the JSON?

Add reset settings to default button

From Setting Default Values

PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);
Calling this during onCreate() ensures that your application is properly initialized with default settings, which your application might need to read in order to determine some behaviors (such as whether to download data while on a cellular network).

A boolean indicating whether the default values should be set more than once.
When false, the system sets the default values only if this method has never been called in the past (or the KEY_HAS_SET_DEFAULT_VALUES in the default value shared preferences file is false).
As long as you set the third argument to false, you can safely call this method every time your activity starts without overriding the user's saved preferences by resetting them to the defaults. However, if you set it to true, you will override any previous values with the defaults.

So all I have to do is call that again, but there might be a better way of doing this.

Fix the disgusting casting of OnClickActionDialogFragments activity

See here that I'm currently doing this disgusting method of casting the activity that is is attached to/with the DialogFragment in order to get the last saved actionOnClick variable so the dialog shows what the user last selected.

May be blocked by #7

Definition of done:

  • Getting the correct action to display in the dialog is done in a much nicer manner

Fix Menus for multiple fragments

Needs to be done after #44.

The MainActivity has the ability to check if the NavigationDrawer is currently open or not. This means that in order to hide the Menus while the NavigationDrawer is open, I'll need to be using MainActivity to perform this action.

I think my options are:

  • Create an OptionsCreateCallback that all additional fragments will listen to, and every time onCreateOptionsMenu is called, MainActivity will use this callback to let all of the Fragments know the status of the NavigationDrawer.
  • Somehow move the logic of NavigationDrawerFragment.isOpen() to each fragment.

Try looking in the Developer Docs and other places for best practices.

Fix up ActionBars

Currently the action bar says WifiViewActivity and doesn't allow the user to get back to the main activity without pressing the back button.

Same thing for SearchActivity

Put the name of the WiFi in the ActionBar

Fix sort by dialog

Might have forgotten to remove the status from this.

If you click sort on something, the toast displays inaccurate info if you choose one of the later ones.

If you hit the last one, the app crashes, probably an indexouttabounds

Don't think it was actually sorted either

Let user search for distance from some place

Say the user either doesn't have that good of location, (no gps/they're in a tunnel), lettuce let them search from another location and we'll base all the results off of that.

Let users set a location to find wifi distances from:

  • Address of some place
  • Lat/Long for crazy people - this could be like some intent from another app though?
  • Maybe saved/starred locations?

Related to #4

Create a README

What's the point of a project if no one even knows what it is, what it's supposed to do!

Fix up the sorting dialog

Currently the sort dialog looks like it was made as a grade 10 com sci example to the class.

Lets make them a bit nicer.

Definition of done:

  • Both use nice radio buttons
  • Both have apply/positive cancel/negative buttons

Add some info about each location

Sure, you might say with a hint of sarcasm in your tone, in the wifi view we, (maybe), show what kind of facility the wifi is, but there should be some background as well.

Adding More Edmonton Open Datas?

Sure this app is totally useless right now, but why not give a person a reason to actually download it?

I'm talking about supporting multiple different open datas, (data sets? things? not really sure what to call this). Since I've already implemented the loading the data from json, (albeit, not that nicely, it wouldn't be that hard to add even more information about the city of Edmonton into the app.

End goal, assuming all of these JSONs are small enough, would be an app where you can choose what "thing"/service you are looking for, and I'd be able to give you a bit of information about each location, show you the closest one, and direct you to it via google maps.

This would require a tad bit of refactoring, especially because of the large amounts of data we'd be keeping in memory, it might be smarter to switch to a database here, but that's another thing to keep in mind.

Update Settings so it is readable

Settings isn't very readable right now, let's fix that.

  • We should add the current sort choice as summary for the sort option
  • Also add a stub for a global help activity/fragment

Move sorting to background thread

Sorting should be moved to a background thread before I stop adding lots of different datas, especially now that they all are listening for updates to the sort preference.

Implement a Wifi view activity

After a Wifi is clicked, it's silly to have us just do something right off the bat, we should go to some viewing of the Wifi, where the user can from there, do what they want, this will also make it much easier to handle from the search activity.

This will also remove a lot of logic from onListItemClick

Do some fancy listview drop down magic

Clicking on an item is so Ice Cream Sandwich.

We should add a little down arrow toggle thing that will show the user more of the information about the WiFi when toggled.

Add Recent Search Suggestions

This sounds kinda cool:

Already Implemented:

  • Recent history search suggestions

Implement this:

  • Clear History in settings somewhere

Handle some actual errors and make some tests for them

Currently we just hope that everything works perfectly and if something goes wrong we'll probably just end up crashing. Let's handle some error cases and make some tests for them.

Cases:

  • JSON doesn't exist
  • JSON is corrupted
  • Wifi object doesn't have something that we think it should

Add Construction Data

Let's ad the construction data, just so we can have more than one data, as well as giving us a better test of how we're loading data.

Related to #34

Get user's location

This will be a big one.

Need to be able to get the users location and use it properly.
Check out Location Strategies for strategies on how to do this.

I'm thinking something like initially ask/get the users location, then have a refresh location button somewhere.

Create Dialog to sort List of Wifi's

Since a bunch of comparators have been created in the Wifi class, there should be for the user to sort the list of Wifis in a bunch of different ways.

Possible ways to sort:

  • Name, Address, Status, Facility, Distance to some place

Definition of done:

  • User can sort the list of wifis by many different methods

Think about how data is stored

Right now we just load the data from the json.txt file, and then keep it in memory as an ArrayList. Is this the best idea?

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.