- Programming in Java
- Connecting to an API
- Parsing the JSON response
- Handling error cases gracefully
- Updating information regularly
- Using an AsyncTask
- Doing network operations independent of the Activity lifecycle
- Implementing the Preference Fragment
- Launching a Settings Activity from a menu in the Main Activity
- Using Uri.Builder class to add query parameters to the URL
- Updating and displaying the Preference Summary
Tested on Nexus 5X emulator / API level 27 (portrait mode)
The purpose of the descriptive data material (images, text, etc.) use is non-commercial. Data resources are used for the purpose of serving the needs of specified educational program. If you are an owner of intellectual property who believes your intellectual property has been improperly used, the material may be removed under a notice.
Descriptive data material accessed through Guardian Open Platform Content API: https://open-platform.theguardian.com/documentation/.
Icons made by Pixel Buddha & Gregor Cresnar from https://www.flaticon.com/ are licensed by CC BY 3.0.
Launcher icon made by Vectors Market from https://www.flaticon.com/ is licensed by CC BY 3.0.
It is prohibited to use this original work (e.g., code, language, formulas, etc.) in your assignments, projects, or assessments, as it will be a violation of Udacity Honor Code & Code of Conduct.
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.