The app will help users (especially smartwatches users) know when there is an earthquake with location and all of the related information. Also, with the communication methods between app and watch, users can be able to shake their wrist in order to display image of where the earthquake just happened.
How does it work and Main Features:
- User can choose to login with Twitter account or not. Users cannot pull images if not logged in.
- Data of new earthquakes are retrieved from USGS website using API call, automatically update every 5 seconds.
- When there is a new Earthquake, location, magnitude and distance to earthquake it will be pushed to watch and also make the watch vibrate. (2 different methods of vibration to make sure it vibrates the watch)
- An intent containing earthquake's data along with Google Map (Marker + circle) will be displayed on phone when there is a new earthquake. Image searching based on the coordinates of the earthquake using twitter API, within given radius (for now is 200kms)
* When an image at the surrounding area cannot be found found, a default image will be shown instead.
- When an image is displayed, another notification will be pushed to phone regarding screen name of user who created the image and where it was created.
- Main Activity will display all saved Earthquakes and new earthquakes during the last 1 hour, along with the current location of user on the top.
- Custom message for Earthquake Class, based on magnitude (http://www.geo.mtu.edu/UPSeis/magnitude.html)
- Custom message for distance to earthquake, based on distance using GoogleMapAPI.
- Users can select any earthquake in the list to display more information and google map - interactive. From this single view, user can also be able to view the image of the location.
- Google map will display a circle around the affected area of the center of earthquake.
- Users can save new Earthquake to the list or remove saved earthquakes from the list. This gives users more choices rather than just add the recent earthquake to the list. They can go back to the list and view the image later. The data will be saved permanently (next time users run the app it is still be there)
- Work in both horizontal and vertical mode.
Phone side: display new earthquake data, save/remove earthquake (permanently), use Map API, location API, Twitter API, USGS API, scrollable list of Earthquake, trigger event on watch (vibrate, notification), permanent internal storage
Watch side: vibrate and display notification with corresponding information when there is new earth quake, when click on earthquake on list or viewing image.
Unresolved Issues and Things I wish I could do:
- Cannot stimulate shake gesture on emulator, telnet doesn't work on windows. That prevents me from doing all the work related to watch sensor.
- Icon on watch notification cannot change, no matter what and how I change it. (I do have custom image for both wear and phone)
- Work on custom color for ListView and all the information. I keep them simple so I won't loose many points on the design aspect.
- Filter all the noises from Twitter images.
Source + APK:
- Need to remove line 136-140 in HandHeldActivity (//test) to remove dummy data and prevent the app from flushing out all the data every run. (or every new saved earthquake will be removed on next run)
- Need to remove the event where the latest earthquake is treated as recent earthquake.
- Checkout branch "clean" for the clean build.