Move general-purpose code out of LauncherActivity

Two classes are factored out:
- TwaLauncher encapsulates launching TWA, including connecting to
service, etc.
- PwaWrapperSplashScreenStrategy, which contains all the code managing
splash screens (except for the decision of whether to show them).

What remains in LauncherActivity:
- Usage of TwaLauncher and SplashScreenStrategy, including destroying them.
- Showing toast to update Chrome. I don't think this should be part of TwaLauncher
or any other general-purpose class.
- Code ensuring we finish LauncherActivity when TWA finishes. This is specific to
TWA as PWA wrapper use case.
- A few protected methods, such as getLaunchingUrl().

Change-Id: Ia87b24ac82710e163edb263fa94067dfc2ecb771
Reviewed-on: https://chromium-review.googlesource.com/c/custom-tabs-client/+/1581940
Reviewed-by: Yusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Pavel Shmakov <pshmakov@chromium.org>
8 files changed
tree: ade62806e0eee50222b32dcc60e2a323b200aeca
  1. Application/
  2. customtabs/
  3. demos/
  4. gradle/
  5. infra/
  6. shared/
  7. .gitignore
  8. build.gradle
  9. codereview.settings
  10. CONTRIBUTING.md
  11. CREDITS
  12. gradlew
  13. gradlew.bat
  14. LICENSE
  15. OWNERS
  16. README.md
  17. settings.gradle
  18. Using.md
README.md

Chrome Custom Tabs - Examples and Documentation

Chrome Custom Tabs provides a way for an application to customize and interact with a Chrome Activity on Android. This makes the web content feel like being a part of the application, while retaining the full functionality and performance of a complete web browser.

Examples

Using Custom Tabs should be easy. This repository hosts examples and in-depth documentation. The examples are importable as projects into the Android Studio.

Bugs, Issues and Discussion

We want to hear your feedback! Please create bugs and start discussions using this template. Please use the template for any issues related to the Custom Tabs APIs, their implementation in Chrome, the examples in this repository, and related functionality of the Android Support Library.

Note: we know that the GitHub issue tracker is great! However, since Custom Tabs is mostly driven by Chrome developers, and we want to keep all bugs in one place, we prefer the Chromium issue tracker at the moment.

Contributing

We accept contributions to Custom Tabs examples and documentation. Please see our contributor's guide.