Livingstone Apps

Retailers 1.2
Livingstone
A coding example that illustrates downloadinga list of retailers from a web service using REST calls. The datais displayed in a RecyclerView. Tapping on a list item page thePageViewer to show the details of the company along with a GoogleMap of where the retailer is located.The app displays 10 items at a time. When you scroll towards thebottom, the next 10 items or remaining items will get loaded.If you disconnect the device from any Internet connection andrun the app, you will get a snackbar at the bottom of the appindicating to check your internet connection and try again.This app was tested on:LG Nexus 5 running (Android 6.0 - Marshmallow)Samsung Galaxy Tab Pro 10 (Android 4.4.2 - KitKat)Huawei Ascend Y300 (Android 4.1.1 - Jelly Bean)Coding features:RecyclerView that uses NetworkImageViews for displaying companylogos.Volley for downloading JSON and caching bitmap imagesSqlite db for caching retailer dataConversion from JSON to POJOs through GsonPagerView with two fragments (list and details)CoordinatorLayout for moving toolbar into and out of view withscrollingClean separation between UI, business layer and data accesslayer
Accelerometer Gauge 1.1
Livingstone
An Android app that captures and displaysaccelerometer data on a professionally looking gauge and uploadsthe data to PubNub where it can be viewed on a web page.This app is used as a coding example for Android developers onhow to capture and display accelerometer data on a professionallylooking gauge in real-time.Data is also uploaded to PubNub where it can also be viewed on aweb page in almost real-time.The gauge contains a button that lets you cycle through 4modes:* Speed* Current distance* Total distance* DemoIn Speed mode, speed is shown when you move the device. Shakingthe device faster will result in a larger value beingdisplayed.In Current Distance mode, the app accumulates distance from thetime the app starts and any motion is detected. Distance isdisplayed on the 7 segment display as a value and also shown on thecolored bar segments.In Total Distance mode, the app displays the total distanceaccumulated since the app first started. By "first started", thismeans that the very first time you started the app after installingit. If you exit the app and start it again, that would be thesecond time. Total Distance is shown only on the 7 segmentdisplay.In Demo mode, the accelerometer data is ignored and fake speedvalues are incremented from zero till 10 and then back down to zeroand then repeats.After installing the app, you can also see the data on a webpage by visiting:http://niketestapp.github.io/Accel/index.htmlThe gauge also displays a small connection icon. When it is red,it means that no data is being uploaded to PubNub. This could bebecause the device's wifi is turned off, or possibly becausePubNub's servers are not available. When data is successfully sent,the icon will be green.If multiple devices run the app simultaneously, the gauge dataon the web page will update for each device. This is because PubNubforwards the data to whatever clients subscribe to the data. In areal application, you would probably not want multiple devicesupdating a single gauge at the same time. The purpose here howeveris simply to demonstrate how data can be easily transmitted from adevice to a web page in near real-time.The app only forwards 5 data points per second to PubNub.Source code available at:https://github.com/JohannBlake/Accel
Weather 1.0
Livingstone
Retrieves the weather forecast for the next16days for your current location which is obtained usingyourdevice's location services. The forecast is updated every30minutes. A notification is generated if rain is expected withinthenext 24 hours.Source available at:https://github.com/JohannBlake/Weather
Image Gallery 1.0
Livingstone
The purpose of this app is to demonstratehowto retrieve images from Shutterstock using a RESTful callanddisplaying them in a RecyclerView. A query can be enteredtoretrieve a specific set of images. The app includesapull-to-refresh to retrieve additional images. Tapping onathumbnail image will also load a larger version of the image.Source code available at:https://github.com/JohannBlake/ShutterstockDemo
Canadian Postal Code Keyboard 1.0
Livingstone
This is a demo app for Android developers.This widget is a virtual keyboard that lets you enterCanadianpostal codes. The keyboard does not implement any AndroidAPIs thatreplace it's own virtual keyboard. Instead, it's a popupview thatis implemented as a library component that you attach toEditTextcontrols. When the user taps on an EditText to enter data,thevirtual keyboard is displayed. Any characters entered inthekeyboard are not entered into the EditText until the Save buttononthe keyboard has been pressed. A textview above the keyboardkeysshows the postal code being entered. Logic is applied tothekeyboard so that the user can only enter a valid postalcode,meaning that the keys alternate between letters and numbers astheyare typed in and only valid characters and numbers aredisplayed onthe keybord. There are some minor postal code rules aswell thatenforce the validation.The keyboard resizes to the width of the parent view that itispart of. A demo app is included that shows how to implementthekeyboard.Source code available at:https://github.com/JohannBlake/CanadianPostalCodeKeyboard
Job Search 1.1.2
Livingstone
Job search is a time consuming activitythatnormally requires visiting multiple job search portalsincludingIndeed, LinkedIn, Monster, CareerBuilder and Dice.Job search is only one part of finding a job. There is alsothework to track job applications, salaries, locations, notes,thepeople you deal with and even how an interview went.You could write all this stuff down...or...use Livingstone.Livingstone handles job search by searching through millionsofjob offers using advanced search criteria. Multiple queries canbedefined to achieve relevant results. A single unified listingisproduced.Search- Create multiple queries- Search millions of jobs across all the top job portals- Enter advanced search criteria for accurate results- Separate search results into matched jobs andnon-matchedjobs- View new jobs since your last search- Jobs are sorted by date with the newest at the top of thelistTrack- Assign a status: applied, response, in progress, inlimbo,rejected, canceled, won- Record the salary or contract rate- Add notes- Assign contacts for the recruiter and interviewers- Record company info: name, address, website anddescription.- View the company's location on a map.- Record and rate how an interview went- Bookmark jobs you're interested inMore- Add a custom job listing- Send your recorded data to an e-mail address- Backup/Restore your data to your Google Drive accountLivingstone significantly reduces the amount of timespentsearching for jobs and organizes your applications in a cleanandmanageable way. It also reduces or eliminates the need foralertsfrom various portals.NOTE: Currently listings are only available for the USandCanada. Additional countries will be added in the nearfuture.