This directory contains code, tools and data for the AOSP reference location time zone provider. Location time zone providers are used for location-based time zone detection on Android. See Android's android.service.timezone.TimeZoneProviderService class for more details. Directory structure =================== `apex` - Files associated with a proposed mainline module APEX to hold the AOSP reference location time zone provider. `common` - Utility code shared between several subdirectories. `data_pipeline` - Code for a host sample / reference data generation pipeline. See `run-data-pipeline.sh` below. `geotz_lookup` - A high-level API for performing time zone ID lookups for a location using the `tzs2.dat` file. Supports host and device usage. `locationtzprovider` - A reference location time zone provider that uses AOSP APIs to obtain location and the `geotz_lookup` APIs to obtain the time zone IDs to pass to the platform. `output_data` - Holds the `tzs2.dat` file generated by `run-data-pipeline.sh` along with the associated license files. `s2storage` - File reading / writing code and tools to support `tzs2.dat` generation on host, and the file's use on host and device. See `s2storage/README.md` for format details. `tzbb_data` - Data / licenses from the external [timezone-boundary-builder](https://github.com/evansiroky/timezone-boundary-builder) project. Used as input for the reference data generation pipeline. `validation` - Tooling to help validate the `tzs2.dat` file against other data sources. Data file update tools ====================== `download-tzbb-files.sh` - Used to refresh the data in `tzbb_data/` from the [timezone-boundary-builder](https://github.com/evansiroky/timezone-boundary-builder) project. `run-data-pipeline.sh` - Runs the `data_pipeline` data generation pipeline. It takes data from `tzbb_data/`, processes it, and puts the resulting `tzs2.dat` file in `output_data/`.