/* * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include //! @addtogroup Foundation //! @{ //! @addtogroup LaunchReason Launch Reason //! \brief API for checking what caused the application to launch. //! //! This includes the system, launch by user interaction (User selects the //! application from the launcher menu), //! launch by the mobile or a mobile companion application, //! or launch by a scheduled wakeup event for the specified application. //! //! @{ //! AppLaunchReason is used to inform the application about how it was launched //! @note New launch reasons may be added in the future. As a best practice, it //! is recommended to only handle the cases that the app needs to know about, //! rather than trying to handle all possible launch reasons. typedef enum { APP_LAUNCH_SYSTEM = 0, //!< App launched by the system APP_LAUNCH_USER, //!< App launched by user selection in launcher menu APP_LAUNCH_PHONE, //!< App launched by mobile or companion app APP_LAUNCH_WAKEUP, //!< App launched by wakeup event APP_LAUNCH_WORKER, //!< App launched by worker calling worker_launch_app() APP_LAUNCH_QUICK_LAUNCH, //!< App launched by user using quick launch APP_LAUNCH_TIMELINE_ACTION, //!< App launched by user opening it from a pin APP_LAUNCH_SMARTSTRAP, //!< App launched by a smartstrap } AppLaunchReason; //! Provides the method used to launch the current application. //! @return The method or reason the current application was launched AppLaunchReason app_launch_reason(void); //! Get the argument passed to the app when it was launched. //! @note Currently the only way to pass arguments to apps is by using an openWatchApp action //! on a pin. //! @return The argument passed to the app, or 0 if the app wasn't launched from a Launch App action uint32_t app_launch_get_args(void); //! @} // group Launch_Reason //! @} // group Foundation