Name Description Size
DefaultSearchOnEditorActionListener.kt A [TextView.OnEditorActionListener] that will make a search using the default engine on submit. 1315
HomeTile.kt Unique id used to identify specific home tiles, e.g. for deletion, etc. * 2596
HomeTilePlaceholderGenerator.kt Get a representative character for the given URL. For example this method will return "f" for "http://m.facebook.com/foobar". 3269
HomeTileScreenshotStore.kt The format with which to compress on disk. Our goals for storage: - Store full resolution, with minimal artifacting: we don't know how we'll display the images in future redesigns so we want to preserve them as best as possible. - Take up minimal space: we don't have how many tiles the user will store. WebP was chosen through testing: it produces the smallest file sizes with the least amount of visual artifacting but is the most computationally expensive to save (2000ms WebP vs. 200ms JPEG), which is irrelevant for our infrequent screenshots. For file size comparisons, at 1080p, quality 50 on IMDB (a dense page): - WebP is ~65 KiB with almost no artifacts - JPEG is ~130 KiB with noticeable artifacts up close - PNG is ~1.6MiB with no artifacts (it is lossless) 6854
HomeTilesManager.kt Static accessor for bundled tiles, which are loaded from assets/bundled/bundled_tiles.json. The urls provided in the bundled tiles are expected to close matches (including on Uri.path, scheme [http or https]) with the final site that is loaded (after any server redirects, etc). That way we can clearly reflect "pinned" state of these sites on the homescreen by matching by url. 10086
NavigationOverlayAnimations.kt Encapsulation of animation code for the navigation overlay. 5578
NavigationOverlayFragment.kt An overlay that allows the user to navigate to new pages including via the home tiles. The overlay should be added to a fullscreen view and can be used in two modes: - Initial homescreen: navigation is placed below the app bar - Dialog: navigation is full screen, overlaid on a semi opaque overlay Note: this was originally implemented as a DialogFragment to better decouple the UI of the overlay from the app but there was a long delay before it could be displayed so we switched to a regular Fragment. 7983
PinnedTileRepo.kt A repository encapsulating possible states of the pinned tiles. 845