README.md
1This directory contains code, tools and data for the AOSP reference location
2time zone provider. Location time zone providers are used for location-based
3time zone detection on Android. See Android's
4android.service.timezone.TimeZoneProviderService class for more details.
5
6Directory structure
7===================
8
9`apex`
10 - Files associated with a proposed mainline module APEX to hold the AOSP
11 reference location time zone provider.
12
13`common`
14 - Utility code shared between several subdirectories.
15
16`data_pipeline`
17 - Code for a host sample / reference data generation pipeline. See
18 `run-data-pipeline.sh` below.
19
20`geotz_lookup`
21 - A high-level API for performing time zone ID lookups for a location using
22 the `tzs2.dat` file. Supports host and device usage.
23
24`locationtzprovider`
25 - A reference location time zone provider that uses AOSP APIs to obtain
26 location and the `geotz_lookup` APIs to obtain the time zone IDs to pass to
27 the platform.
28
29`output_data`
30 - Holds the `tzs2.dat` file generated by `run-data-pipeline.sh` along with
31 the associated license files.
32
33`s2storage`
34 - File reading / writing code and tools to support `tzs2.dat` generation on
35 host, and the file's use on host and device. See `s2storage/README.md` for
36 format details.
37
38`tzbb_data`
39 - Data / licenses from the external
40 [timezone-boundary-builder](https://github.com/evansiroky/timezone-boundary-builder)
41 project. Used as input for the reference data generation pipeline.
42
43`validation`
44 - Tooling to help validate the `tzs2.dat` file against other data sources.
45
46
47Data file update tools
48======================
49
50`download-tzbb-files.sh`
51 - Used to refresh the data in `tzbb_data/` from the
52 [timezone-boundary-builder](https://github.com/evansiroky/timezone-boundary-builder)
53 project.
54
55`run-data-pipeline.sh`
56 - Runs the `data_pipeline` data generation pipeline. It takes data from
57 `tzbb_data/`, processes it, and puts the resulting `tzs2.dat` file in
58 `output_data/`.
59
60