├── .gitignore ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── common-biis ├── .gitignore ├── README.md ├── complete │ ├── .google │ │ └── packaging.yaml │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── google-services.json │ │ ├── proguard-rules.pro │ │ ├── proguardTest-rules.pro │ │ └── src │ │ │ ├── androidTestMock │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── architecture │ │ │ │ └── blueprints │ │ │ │ └── todoapp │ │ │ │ └── tasks │ │ │ │ ├── AppNavigationTest.kt │ │ │ │ ├── TasksActivityTest.kt │ │ │ │ └── TestUtils.kt │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── android │ │ │ │ │ └── architecture │ │ │ │ │ └── blueprints │ │ │ │ │ └── todoapp │ │ │ │ │ ├── Event.kt │ │ │ │ │ ├── ScrollChildSwipeRefreshLayout.kt │ │ │ │ │ ├── ServiceLocator.kt │ │ │ │ │ ├── TodoApplication.kt │ │ │ │ │ ├── ViewModelFactory.kt │ │ │ │ │ ├── addedittask │ │ │ │ │ ├── AddEditTaskFragment.kt │ │ │ │ │ └── AddEditTaskViewModel.kt │ │ │ │ │ ├── data │ │ │ │ │ ├── Result.kt │ │ │ │ │ ├── Task.kt │ │ │ │ │ └── source │ │ │ │ │ │ ├── DefaultTasksRepository.kt │ │ │ │ │ │ ├── TasksDataSource.kt │ │ │ │ │ │ ├── TasksRepository.kt │ │ │ │ │ │ ├── local │ │ │ │ │ │ ├── TasksDao.kt │ │ │ │ │ │ ├── TasksLocalDataSource.kt │ │ │ │ │ │ └── ToDoDatabase.kt │ │ │ │ │ │ └── remote │ │ │ │ │ │ └── TasksRemoteDataSource.kt │ │ │ │ │ ├── statistics │ │ │ │ │ ├── StatisticsFragment.kt │ │ │ │ │ ├── StatisticsUtils.kt │ │ │ │ │ └── StatisticsViewModel.kt │ │ │ │ │ ├── taskdetail │ │ │ │ │ ├── TaskDetailFragment.kt │ │ │ │ │ └── TaskDetailViewModel.kt │ │ │ │ │ ├── tasks │ │ │ │ │ ├── TasksActivity.kt │ │ │ │ │ ├── TasksAdapter.kt │ │ │ │ │ ├── TasksFilterType.kt │ │ │ │ │ ├── TasksFragment.kt │ │ │ │ │ ├── TasksListBindings.kt │ │ │ │ │ └── TasksViewModel.kt │ │ │ │ │ └── util │ │ │ │ │ ├── EspressoIdlingResource.kt │ │ │ │ │ ├── FragmentExt.kt │ │ │ │ │ ├── SimpleCountingIdlingResource.kt │ │ │ │ │ └── ViewExt.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ ├── drawer_item_color.xml │ │ │ │ ├── ic_add.xml │ │ │ │ ├── ic_assignment_turned_in_24dp.xml │ │ │ │ ├── ic_check_circle_96dp.xml │ │ │ │ ├── ic_done.xml │ │ │ │ ├── ic_edit.xml │ │ │ │ ├── ic_filter_list.xml │ │ │ │ ├── ic_list.xml │ │ │ │ ├── ic_menu.xml │ │ │ │ ├── ic_search_black_24dp.xml │ │ │ │ ├── ic_statistics.xml │ │ │ │ ├── ic_statistics_100dp.xml │ │ │ │ ├── ic_statistics_24dp.xml │ │ │ │ ├── ic_verified_user_96dp.xml │ │ │ │ ├── list_completed_touch_feedback.xml │ │ │ │ ├── logo_no_fill.png │ │ │ │ ├── touch_feedback.xml │ │ │ │ └── trash_icon.png │ │ │ │ ├── font │ │ │ │ ├── opensans_font.xml │ │ │ │ ├── opensans_regular.ttf │ │ │ │ └── opensans_semibold.ttf │ │ │ │ ├── layout │ │ │ │ ├── addtask_frag.xml │ │ │ │ ├── nav_header.xml │ │ │ │ ├── statistics_frag.xml │ │ │ │ ├── task_item.xml │ │ │ │ ├── taskdetail_frag.xml │ │ │ │ ├── tasks_act.xml │ │ │ │ └── tasks_frag.xml │ │ │ │ ├── menu │ │ │ │ ├── drawer_actions.xml │ │ │ │ ├── filter_tasks.xml │ │ │ │ ├── taskdetail_fragment_menu.xml │ │ │ │ └── tasks_fragment_menu.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── navigation │ │ │ │ └── nav_graph.xml │ │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ ├── values │ │ │ │ ├── arrays.xml │ │ │ │ ├── attrs.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── shortcuts.xml │ │ │ ├── sharedTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── architecture │ │ │ │ └── blueprints │ │ │ │ └── todoapp │ │ │ │ ├── MainCoroutineRule.kt │ │ │ │ ├── addedittask │ │ │ │ └── AddEditTaskFragmentTest.kt │ │ │ │ ├── data │ │ │ │ └── source │ │ │ │ │ ├── FakeRepository.kt │ │ │ │ │ └── local │ │ │ │ │ ├── TasksDaoTest.kt │ │ │ │ │ └── TasksLocalDataSourceTest.kt │ │ │ │ ├── statistics │ │ │ │ └── StatisticsFragmentTest.kt │ │ │ │ ├── taskdetail │ │ │ │ └── TaskDetailFragmentTest.kt │ │ │ │ ├── tasks │ │ │ │ └── TasksFragmentTest.kt │ │ │ │ └── util │ │ │ │ ├── DataBindingIdlingResource.kt │ │ │ │ └── TasksRepositoryExt.kt │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── architecture │ │ │ │ └── blueprints │ │ │ │ └── todoapp │ │ │ │ ├── FakeFailingTasksRemoteDataSource.kt │ │ │ │ ├── LiveDataTestUtil.kt │ │ │ │ ├── TestUtil.kt │ │ │ │ ├── addedittask │ │ │ │ └── AddEditTaskViewModelTest.kt │ │ │ │ ├── data │ │ │ │ └── source │ │ │ │ │ ├── DefaultTasksRepositoryTest.kt │ │ │ │ │ └── FakeDataSource.kt │ │ │ │ ├── statistics │ │ │ │ ├── StatisticsUtilsTest.kt │ │ │ │ └── StatisticsViewModelTest.kt │ │ │ │ ├── taskdetail │ │ │ │ └── TaskDetailViewModelTest.kt │ │ │ │ └── tasks │ │ │ │ └── TasksViewModelTest.kt │ │ │ └── resources │ │ │ └── mockito-extensions │ │ │ └── org.mockito.plugins.MockMaker │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── media │ └── to-do-demo.gif └── starter │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ ├── proguardTest-rules.pro │ └── src │ │ ├── androidTestMock │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── architecture │ │ │ └── blueprints │ │ │ └── todoapp │ │ │ └── tasks │ │ │ ├── AppNavigationTest.kt │ │ │ ├── TasksActivityTest.kt │ │ │ └── TestUtils.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── architecture │ │ │ │ └── blueprints │ │ │ │ └── todoapp │ │ │ │ ├── Event.kt │ │ │ │ ├── ScrollChildSwipeRefreshLayout.kt │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── TodoApplication.kt │ │ │ │ ├── ViewModelFactory.kt │ │ │ │ ├── addedittask │ │ │ │ ├── AddEditTaskFragment.kt │ │ │ │ └── AddEditTaskViewModel.kt │ │ │ │ ├── data │ │ │ │ ├── Result.kt │ │ │ │ ├── Task.kt │ │ │ │ └── source │ │ │ │ │ ├── DefaultTasksRepository.kt │ │ │ │ │ ├── TasksDataSource.kt │ │ │ │ │ ├── TasksRepository.kt │ │ │ │ │ ├── local │ │ │ │ │ ├── TasksDao.kt │ │ │ │ │ ├── TasksLocalDataSource.kt │ │ │ │ │ └── ToDoDatabase.kt │ │ │ │ │ └── remote │ │ │ │ │ └── TasksRemoteDataSource.kt │ │ │ │ ├── statistics │ │ │ │ ├── StatisticsFragment.kt │ │ │ │ ├── StatisticsUtils.kt │ │ │ │ └── StatisticsViewModel.kt │ │ │ │ ├── taskdetail │ │ │ │ ├── TaskDetailFragment.kt │ │ │ │ └── TaskDetailViewModel.kt │ │ │ │ ├── tasks │ │ │ │ ├── TasksActivity.kt │ │ │ │ ├── TasksAdapter.kt │ │ │ │ ├── TasksFilterType.kt │ │ │ │ ├── TasksFragment.kt │ │ │ │ ├── TasksListBindings.kt │ │ │ │ └── TasksViewModel.kt │ │ │ │ └── util │ │ │ │ ├── EspressoIdlingResource.kt │ │ │ │ ├── FragmentExt.kt │ │ │ │ ├── SimpleCountingIdlingResource.kt │ │ │ │ └── ViewExt.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── drawer_item_color.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_assignment_turned_in_24dp.xml │ │ │ ├── ic_check_circle_96dp.xml │ │ │ ├── ic_done.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_filter_list.xml │ │ │ ├── ic_list.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_search_black_24dp.xml │ │ │ ├── ic_statistics.xml │ │ │ ├── ic_statistics_100dp.xml │ │ │ ├── ic_statistics_24dp.xml │ │ │ ├── ic_verified_user_96dp.xml │ │ │ ├── list_completed_touch_feedback.xml │ │ │ ├── logo_no_fill.png │ │ │ ├── touch_feedback.xml │ │ │ └── trash_icon.png │ │ │ ├── font │ │ │ ├── opensans_font.xml │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── layout │ │ │ ├── addtask_frag.xml │ │ │ ├── nav_header.xml │ │ │ ├── statistics_frag.xml │ │ │ ├── task_item.xml │ │ │ ├── taskdetail_frag.xml │ │ │ ├── tasks_act.xml │ │ │ └── tasks_frag.xml │ │ │ ├── menu │ │ │ ├── drawer_actions.xml │ │ │ ├── filter_tasks.xml │ │ │ ├── taskdetail_fragment_menu.xml │ │ │ └── tasks_fragment_menu.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── navigation │ │ │ └── nav_graph.xml │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── arrays.xml │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── shortcuts.xml │ │ ├── sharedTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── architecture │ │ │ └── blueprints │ │ │ └── todoapp │ │ │ ├── MainCoroutineRule.kt │ │ │ ├── addedittask │ │ │ └── AddEditTaskFragmentTest.kt │ │ │ ├── data │ │ │ └── source │ │ │ │ ├── FakeRepository.kt │ │ │ │ └── local │ │ │ │ ├── TasksDaoTest.kt │ │ │ │ └── TasksLocalDataSourceTest.kt │ │ │ ├── statistics │ │ │ └── StatisticsFragmentTest.kt │ │ │ ├── taskdetail │ │ │ └── TaskDetailFragmentTest.kt │ │ │ ├── tasks │ │ │ └── TasksFragmentTest.kt │ │ │ └── util │ │ │ ├── DataBindingIdlingResource.kt │ │ │ └── TasksRepositoryExt.kt │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── architecture │ │ │ └── blueprints │ │ │ └── todoapp │ │ │ ├── FakeFailingTasksRemoteDataSource.kt │ │ │ ├── LiveDataTestUtil.kt │ │ │ ├── TestUtil.kt │ │ │ ├── addedittask │ │ │ └── AddEditTaskViewModelTest.kt │ │ │ ├── data │ │ │ └── source │ │ │ │ ├── DefaultTasksRepositoryTest.kt │ │ │ │ └── FakeDataSource.kt │ │ │ ├── statistics │ │ │ ├── StatisticsUtilsTest.kt │ │ │ └── StatisticsViewModelTest.kt │ │ │ ├── taskdetail │ │ │ └── TaskDetailViewModelTest.kt │ │ │ └── tasks │ │ │ └── TasksViewModelTest.kt │ │ └── resources │ │ └── mockito-extensions │ │ └── org.mockito.plugins.MockMaker │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── dynamic-shortcuts ├── README.md ├── complete │ ├── .google │ │ └── packaging.yaml │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── android │ │ │ │ └── architecture │ │ │ │ └── blueprints │ │ │ │ └── todoapp │ │ │ │ ├── Event.kt │ │ │ │ ├── ScrollChildSwipeRefreshLayout.kt │ │ │ │ ├── ServiceLocator.kt │ │ │ │ ├── TodoApplication.kt │ │ │ │ ├── ViewModelFactory.kt │ │ │ │ ├── addedittask │ │ │ │ ├── AddEditTaskFragment.kt │ │ │ │ └── AddEditTaskViewModel.kt │ │ │ │ ├── data │ │ │ │ ├── Result.kt │ │ │ │ ├── Task.kt │ │ │ │ └── source │ │ │ │ │ ├── DefaultTasksRepository.kt │ │ │ │ │ ├── ShortcutsRepository.kt │ │ │ │ │ ├── TasksDataSource.kt │ │ │ │ │ ├── TasksRepository.kt │ │ │ │ │ ├── local │ │ │ │ │ ├── TasksDao.kt │ │ │ │ │ ├── TasksLocalDataSource.kt │ │ │ │ │ └── ToDoDatabase.kt │ │ │ │ │ └── remote │ │ │ │ │ └── TasksRemoteDataSource.kt │ │ │ │ ├── statistics │ │ │ │ ├── StatisticsFragment.kt │ │ │ │ ├── StatisticsUtils.kt │ │ │ │ └── StatisticsViewModel.kt │ │ │ │ ├── taskdetail │ │ │ │ ├── TaskDetailFragment.kt │ │ │ │ └── TaskDetailViewModel.kt │ │ │ │ ├── tasks │ │ │ │ ├── TasksActivity.kt │ │ │ │ ├── TasksAdapter.kt │ │ │ │ ├── TasksFilterType.kt │ │ │ │ ├── TasksFragment.kt │ │ │ │ ├── TasksListBindings.kt │ │ │ │ └── TasksViewModel.kt │ │ │ │ └── util │ │ │ │ ├── FragmentExt.kt │ │ │ │ └── ViewExt.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── drawer_item_color.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_assignment_turned_in_24dp.xml │ │ │ ├── ic_check_circle_96dp.xml │ │ │ ├── ic_done.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_filter_list.xml │ │ │ ├── ic_list.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_search_black_24dp.xml │ │ │ ├── ic_statistics.xml │ │ │ ├── ic_statistics_100dp.xml │ │ │ ├── ic_statistics_24dp.xml │ │ │ ├── ic_verified_user_96dp.xml │ │ │ ├── list_completed_touch_feedback.xml │ │ │ ├── logo_no_fill.png │ │ │ ├── touch_feedback.xml │ │ │ └── trash_icon.png │ │ │ ├── font │ │ │ ├── opensans_font.xml │ │ │ ├── opensans_regular.ttf │ │ │ └── opensans_semibold.ttf │ │ │ ├── layout │ │ │ ├── addtask_frag.xml │ │ │ ├── nav_header.xml │ │ │ ├── statistics_frag.xml │ │ │ ├── task_item.xml │ │ │ ├── taskdetail_frag.xml │ │ │ ├── tasks_act.xml │ │ │ └── tasks_frag.xml │ │ │ ├── menu │ │ │ ├── drawer_actions.xml │ │ │ ├── filter_tasks.xml │ │ │ ├── taskdetail_fragment_menu.xml │ │ │ └── tasks_fragment_menu.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── navigation │ │ │ └── nav_graph.xml │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── arrays.xml │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── shortcuts.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── media │ ├── dynamic-shortcut-demo.gif │ └── to-do-demo.gif └── starter │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ └── architecture │ │ │ └── blueprints │ │ │ └── todoapp │ │ │ ├── Event.kt │ │ │ ├── ScrollChildSwipeRefreshLayout.kt │ │ │ ├── ServiceLocator.kt │ │ │ ├── TodoApplication.kt │ │ │ ├── ViewModelFactory.kt │ │ │ ├── addedittask │ │ │ ├── AddEditTaskFragment.kt │ │ │ └── AddEditTaskViewModel.kt │ │ │ ├── data │ │ │ ├── Result.kt │ │ │ ├── Task.kt │ │ │ └── source │ │ │ │ ├── DefaultTasksRepository.kt │ │ │ │ ├── TasksDataSource.kt │ │ │ │ ├── TasksRepository.kt │ │ │ │ ├── local │ │ │ │ ├── TasksDao.kt │ │ │ │ ├── TasksLocalDataSource.kt │ │ │ │ └── ToDoDatabase.kt │ │ │ │ └── remote │ │ │ │ └── TasksRemoteDataSource.kt │ │ │ ├── statistics │ │ │ ├── StatisticsFragment.kt │ │ │ ├── StatisticsUtils.kt │ │ │ └── StatisticsViewModel.kt │ │ │ ├── taskdetail │ │ │ ├── TaskDetailFragment.kt │ │ │ └── TaskDetailViewModel.kt │ │ │ ├── tasks │ │ │ ├── TasksActivity.kt │ │ │ ├── TasksAdapter.kt │ │ │ ├── TasksFilterType.kt │ │ │ ├── TasksFragment.kt │ │ │ ├── TasksListBindings.kt │ │ │ └── TasksViewModel.kt │ │ │ └── util │ │ │ ├── FragmentExt.kt │ │ │ └── ViewExt.kt │ │ └── res │ │ ├── drawable │ │ ├── drawer_item_color.xml │ │ ├── ic_add.xml │ │ ├── ic_assignment_turned_in_24dp.xml │ │ ├── ic_check_circle_96dp.xml │ │ ├── ic_done.xml │ │ ├── ic_edit.xml │ │ ├── ic_filter_list.xml │ │ ├── ic_list.xml │ │ ├── ic_menu.xml │ │ ├── ic_search_black_24dp.xml │ │ ├── ic_statistics.xml │ │ ├── ic_statistics_100dp.xml │ │ ├── ic_statistics_24dp.xml │ │ ├── ic_verified_user_96dp.xml │ │ ├── list_completed_touch_feedback.xml │ │ ├── logo_no_fill.png │ │ ├── touch_feedback.xml │ │ └── trash_icon.png │ │ ├── font │ │ ├── opensans_font.xml │ │ ├── opensans_regular.ttf │ │ └── opensans_semibold.ttf │ │ ├── layout │ │ ├── addtask_frag.xml │ │ ├── nav_header.xml │ │ ├── statistics_frag.xml │ │ ├── task_item.xml │ │ ├── taskdetail_frag.xml │ │ ├── tasks_act.xml │ │ └── tasks_frag.xml │ │ ├── menu │ │ ├── drawer_actions.xml │ │ ├── filter_tasks.xml │ │ ├── taskdetail_fragment_menu.xml │ │ └── tasks_fragment_menu.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── navigation │ │ └── nav_graph.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── shortcuts.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── fitness-biis ├── README.md ├── complete │ ├── .google │ │ └── packaging.yaml │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── ic_launcher-web.png │ │ │ ├── java │ │ │ └── com │ │ │ │ └── devrel │ │ │ │ └── android │ │ │ │ └── fitactions │ │ │ │ ├── Const.kt │ │ │ │ ├── FitApp.kt │ │ │ │ ├── FitMainActivity.kt │ │ │ │ ├── home │ │ │ │ ├── FitStatsAdapter.kt │ │ │ │ └── FitStatsFragment.kt │ │ │ │ ├── model │ │ │ │ ├── FitActivity.kt │ │ │ │ ├── FitDatabase.kt │ │ │ │ ├── FitRepository.kt │ │ │ │ └── FitStats.kt │ │ │ │ └── tracking │ │ │ │ ├── FitTrackingFragment.kt │ │ │ │ └── FitTrackingService.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── as_start_stop_toggle.xml │ │ │ ├── avd_start_stop_toggle.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_run.xml │ │ │ ├── vd_start.xml │ │ │ └── vd_stop.xml │ │ │ ├── layout │ │ │ ├── fit_activity.xml │ │ │ ├── fit_stats_fragment.xml │ │ │ ├── fit_stats_row.xml │ │ │ └── fit_tracking_fragment.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ ├── arrays.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── shortcuts.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── media │ └── fit-actions-demo.gif └── starter │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ └── com │ │ │ └── devrel │ │ │ └── android │ │ │ └── fitactions │ │ │ ├── Const.kt │ │ │ ├── FitApp.kt │ │ │ ├── FitMainActivity.kt │ │ │ ├── home │ │ │ ├── FitStatsAdapter.kt │ │ │ └── FitStatsFragment.kt │ │ │ ├── model │ │ │ ├── FitActivity.kt │ │ │ ├── FitDatabase.kt │ │ │ ├── FitRepository.kt │ │ │ └── FitStats.kt │ │ │ └── tracking │ │ │ ├── FitTrackingFragment.kt │ │ │ └── FitTrackingService.kt │ │ └── res │ │ ├── drawable │ │ ├── as_start_stop_toggle.xml │ │ ├── avd_start_stop_toggle.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_run.xml │ │ ├── vd_start.xml │ │ └── vd_stop.xml │ │ ├── layout │ │ ├── fit_activity.xml │ │ ├── fit_stats_fragment.xml │ │ ├── fit_stats_row.xml │ │ └── fit_tracking_fragment.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── shortcuts.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle └── widget ├── README.md ├── complete ├── .google │ └── packaging.yaml ├── CONTRIBUTING.md ├── LICENSE ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ └── com │ │ │ └── devrel │ │ │ └── android │ │ │ └── fitactions │ │ │ ├── Const.kt │ │ │ ├── FitMainActivity.kt │ │ │ ├── LiveDataExtensions.kt │ │ │ ├── home │ │ │ ├── FitStatsAdapter.kt │ │ │ └── FitStatsFragment.kt │ │ │ ├── model │ │ │ ├── FitActivity.kt │ │ │ ├── FitDatabase.kt │ │ │ ├── FitRepository.kt │ │ │ └── FitStats.kt │ │ │ ├── tracking │ │ │ ├── FitTrackingFragment.kt │ │ │ └── FitTrackingService.kt │ │ │ └── widgets │ │ │ ├── StatsWidget.kt │ │ │ └── StatsWidgetProvider.kt │ │ └── res │ │ ├── drawable-v21 │ │ ├── app_widget_background.xml │ │ └── app_widget_inner_view_background.xml │ │ ├── drawable │ │ ├── as_start_stop_toggle.xml │ │ ├── avd_start_stop_toggle.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_run.xml │ │ ├── vd_start.xml │ │ └── vd_stop.xml │ │ ├── layout │ │ ├── fit_activity.xml │ │ ├── fit_stats_fragment.xml │ │ ├── fit_stats_row.xml │ │ ├── fit_tracking_fragment.xml │ │ └── stats_widget.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night-v31 │ │ └── themes.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-v31 │ │ ├── styles.xml │ │ └── themes.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ └── themes.xml │ │ └── xml │ │ ├── shortcuts.xml │ │ └── stats_widget.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── media └── widget-demo.gif └── starter ├── CONTRIBUTING.md ├── LICENSE ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── ic_launcher-web.png │ ├── java │ └── com │ │ └── devrel │ │ └── android │ │ └── fitactions │ │ ├── Const.kt │ │ ├── FitMainActivity.kt │ │ ├── LiveDataExtensions.kt │ │ ├── home │ │ ├── FitStatsAdapter.kt │ │ └── FitStatsFragment.kt │ │ ├── model │ │ ├── FitActivity.kt │ │ ├── FitDatabase.kt │ │ ├── FitRepository.kt │ │ └── FitStats.kt │ │ ├── tracking │ │ ├── FitTrackingFragment.kt │ │ └── FitTrackingService.kt │ │ └── widgets │ │ ├── StatsWidget.kt │ │ └── StatsWidgetProvider.kt │ └── res │ ├── drawable-v21 │ ├── app_widget_background.xml │ └── app_widget_inner_view_background.xml │ ├── drawable │ ├── as_start_stop_toggle.xml │ ├── avd_start_stop_toggle.xml │ ├── ic_launcher_background.xml │ ├── ic_launcher_foreground.xml │ ├── ic_run.xml │ ├── vd_start.xml │ └── vd_stop.xml │ ├── layout │ ├── fit_activity.xml │ ├── fit_stats_fragment.xml │ ├── fit_stats_row.xml │ ├── fit_tracking_fragment.xml │ └── stats_widget.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── values-night-v31 │ └── themes.xml │ ├── values-v21 │ └── styles.xml │ ├── values-v31 │ ├── styles.xml │ └── themes.xml │ ├── values │ ├── arrays.xml │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ ├── styles.xml │ └── themes.xml │ └── xml │ ├── shortcuts.xml │ └── stats_widget.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Mac files 6 | .DS_Store 7 | 8 | # files for the dex VM 9 | *.dex 10 | 11 | # Java class files 12 | *.class 13 | 14 | # generated files 15 | bin/ 16 | gen/ 17 | 18 | # Ignore gradle files 19 | .gradle/ 20 | build/ 21 | 22 | # Local configuration file (sdk path, etc) 23 | local.properties 24 | 25 | # Proguard folder generated by Eclipse 26 | proguard/ 27 | proguard-project.txt 28 | 29 | # Eclipse files 30 | .project 31 | .classpath 32 | .settings/ 33 | 34 | # Android Studio/IDEA 35 | *.iml 36 | .idea -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution, 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows [Google's Open Source Community 28 | Guidelines](https://opensource.google.com/conduct/). -------------------------------------------------------------------------------- /common-biis/.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Mac files 6 | .DS_Store 7 | 8 | # files for the dex VM 9 | *.dex 10 | 11 | # Java class files 12 | *.class 13 | 14 | # generated files 15 | bin/ 16 | gen/ 17 | 18 | # Ignore gradle files 19 | .gradle/ 20 | build/ 21 | 22 | # Local configuration file (sdk path, etc) 23 | local.properties 24 | 25 | # Proguard folder generated by Eclipse 26 | proguard/ 27 | proguard-project.txt 28 | 29 | # Eclipse files 30 | .project 31 | .classpath 32 | .settings/ 33 | 34 | # Android Studio/IDEA 35 | *.iml 36 | .idea -------------------------------------------------------------------------------- /common-biis/complete/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [app-actions] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: android/app-actions 24 | level: intermediate 25 | apiRefs: 26 | license: apache2 27 | -------------------------------------------------------------------------------- /common-biis/complete/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /common-biis/complete/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontoptimize 2 | 3 | # Some methods are only called from tests, so make sure the shrinker keeps them. 4 | -keep class com.example.android.architecture.blueprints.** { *; } 5 | 6 | -keep class androidx.drawerlayout.widget.DrawerLayout { *; } 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -keep class com.google.common.base.Preconditions { *; } 13 | 14 | -keep class androidx.room.RoomDataBase { *; } 15 | -keep class androidx.room.Room { *; } 16 | -keep class android.arch.** { *; } 17 | 18 | # Proguard rules that are applied to your test apk/code. 19 | -ignorewarnings 20 | 21 | -keepattributes *Annotation* 22 | 23 | -dontnote junit.framework.** 24 | -dontnote junit.runner.** 25 | 26 | -dontwarn androidx.test.** 27 | -dontwarn org.junit.** 28 | -dontwarn org.hamcrest.** 29 | -dontwarn com.squareup.javawriter.JavaWriter 30 | # Uncomment this if you use Mockito 31 | -dontwarn org.mockito.** 32 | -------------------------------------------------------------------------------- /common-biis/complete/app/proguardTest-rules.pro: -------------------------------------------------------------------------------- 1 | # Proguard rules that are applied to your test apk/code. 2 | -ignorewarnings 3 | -dontoptimize 4 | 5 | -keepattributes *Annotation* 6 | 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -dontnote junit.framework.** 13 | -dontnote junit.runner.** 14 | 15 | -dontwarn androidx.test.** 16 | -dontwarn org.junit.** 17 | -dontwarn org.hamcrest.** 18 | -dontwarn com.squareup.javawriter.JavaWriter 19 | # Uncomment this if you use Mockito 20 | -dontwarn org.mockito.** -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/drawer_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_check_circle_96dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_statistics.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_statistics_100dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 24 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_statistics_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/ic_verified_user_96dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/list_completed_touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/logo_no_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/drawable/logo_no_fill.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/drawable/trash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/drawable/trash_icon.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/font/opensans_font.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/font/opensans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/font/opensans_regular.ttf -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/font/opensans_semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/font/opensans_semibold.ttf -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/menu/drawer_actions.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/menu/filter_tasks.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/menu/taskdetail_fragment_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | 64dp 22 | 23 | 24dp 24 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | #FFFFF0 19 | #263238 20 | #2E7D32 21 | #757575 22 | 23 | #CCCCCC 24 | 25 | #CFD8DC 26 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 16dp 20 | 16dp 21 | 22 | 16dp 23 | 24 | 8dp 25 | 192dp 26 | 16dp 27 | 100dp 28 | 29 | 30 | -------------------------------------------------------------------------------- /common-biis/complete/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /common-biis/complete/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true 21 | kapt.incremental.apt=true 22 | -------------------------------------------------------------------------------- /common-biis/complete/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/complete/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /common-biis/complete/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jun 08 22:50:06 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /common-biis/complete/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /common-biis/media/to-do-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/media/to-do-demo.gif -------------------------------------------------------------------------------- /common-biis/starter/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /common-biis/starter/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontoptimize 2 | 3 | # Some methods are only called from tests, so make sure the shrinker keeps them. 4 | -keep class com.example.android.architecture.blueprints.** { *; } 5 | 6 | -keep class androidx.drawerlayout.widget.DrawerLayout { *; } 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -keep class com.google.common.base.Preconditions { *; } 13 | 14 | -keep class androidx.room.RoomDataBase { *; } 15 | -keep class androidx.room.Room { *; } 16 | -keep class android.arch.** { *; } 17 | 18 | # Proguard rules that are applied to your test apk/code. 19 | -ignorewarnings 20 | 21 | -keepattributes *Annotation* 22 | 23 | -dontnote junit.framework.** 24 | -dontnote junit.runner.** 25 | 26 | -dontwarn androidx.test.** 27 | -dontwarn org.junit.** 28 | -dontwarn org.hamcrest.** 29 | -dontwarn com.squareup.javawriter.JavaWriter 30 | # Uncomment this if you use Mockito 31 | -dontwarn org.mockito.** 32 | -------------------------------------------------------------------------------- /common-biis/starter/app/proguardTest-rules.pro: -------------------------------------------------------------------------------- 1 | # Proguard rules that are applied to your test apk/code. 2 | -ignorewarnings 3 | -dontoptimize 4 | 5 | -keepattributes *Annotation* 6 | 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -dontnote junit.framework.** 13 | -dontnote junit.runner.** 14 | 15 | -dontwarn androidx.test.** 16 | -dontwarn org.junit.** 17 | -dontwarn org.hamcrest.** 18 | -dontwarn com.squareup.javawriter.JavaWriter 19 | # Uncomment this if you use Mockito 20 | -dontwarn org.mockito.** -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/drawer_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_check_circle_96dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_statistics.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_statistics_100dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 24 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_statistics_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/ic_verified_user_96dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/list_completed_touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/logo_no_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/drawable/logo_no_fill.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/drawable/trash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/drawable/trash_icon.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/font/opensans_font.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/font/opensans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/font/opensans_regular.ttf -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/font/opensans_semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/font/opensans_semibold.ttf -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/menu/drawer_actions.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/menu/filter_tasks.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/menu/taskdetail_fragment_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | 64dp 22 | 23 | 24dp 24 | 25 | 26 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | #FFFFF0 19 | #263238 20 | #2E7D32 21 | #757575 22 | 23 | #CCCCCC 24 | 25 | #CFD8DC 26 | 27 | 28 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 16dp 20 | 16dp 21 | 22 | 16dp 23 | 24 | 8dp 25 | 192dp 26 | 16dp 27 | 100dp 28 | 29 | 30 | -------------------------------------------------------------------------------- /common-biis/starter/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /common-biis/starter/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true 21 | kapt.incremental.apt=true 22 | -------------------------------------------------------------------------------- /common-biis/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/common-biis/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /common-biis/starter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jun 08 22:50:06 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip 7 | -------------------------------------------------------------------------------- /common-biis/starter/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [app-actions] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: android/app-actions 24 | level: intermediate 25 | apiRefs: 26 | license: apache2 27 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontoptimize 2 | 3 | # Some methods are only called from tests, so make sure the shrinker keeps them. 4 | -keep class com.example.android.architecture.blueprints.** { *; } 5 | 6 | -keep class androidx.drawerlayout.widget.DrawerLayout { *; } 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -keep class com.google.common.base.Preconditions { *; } 13 | 14 | -keep class androidx.room.RoomDataBase { *; } 15 | -keep class androidx.room.Room { *; } 16 | -keep class android.arch.** { *; } 17 | 18 | # Proguard rules that are applied to your test apk/code. 19 | -ignorewarnings 20 | 21 | -keepattributes *Annotation* 22 | 23 | -dontnote junit.framework.** 24 | -dontnote junit.runner.** 25 | 26 | -dontwarn androidx.test.** 27 | -dontwarn org.junit.** 28 | -dontwarn org.hamcrest.** 29 | -dontwarn com.squareup.javawriter.JavaWriter 30 | # Uncomment this if you use Mockito 31 | -dontwarn org.mockito.** 32 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/drawer_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_check_circle_96dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_statistics.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_statistics_100dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 24 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_statistics_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/ic_verified_user_96dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/list_completed_touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/logo_no_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/drawable/logo_no_fill.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/drawable/trash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/drawable/trash_icon.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/font/opensans_font.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/font/opensans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/font/opensans_regular.ttf -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/font/opensans_semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/font/opensans_semibold.ttf -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/menu/drawer_actions.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/menu/filter_tasks.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/menu/taskdetail_fragment_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | 64dp 22 | 23 | 24dp 24 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | #FFFFF0 19 | #263238 20 | #2E7D32 21 | #757575 22 | 23 | #CCCCCC 24 | 25 | #CFD8DC 26 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true 21 | kapt.incremental.apt=true 22 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/complete/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jun 08 22:50:06 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip 7 | -------------------------------------------------------------------------------- /dynamic-shortcuts/complete/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /dynamic-shortcuts/media/dynamic-shortcut-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/media/dynamic-shortcut-demo.gif -------------------------------------------------------------------------------- /dynamic-shortcuts/media/to-do-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/media/to-do-demo.gif -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontoptimize 2 | 3 | # Some methods are only called from tests, so make sure the shrinker keeps them. 4 | -keep class com.example.android.architecture.blueprints.** { *; } 5 | 6 | -keep class androidx.drawerlayout.widget.DrawerLayout { *; } 7 | -keep class androidx.test.espresso.** 8 | # keep the class and specified members from being removed or renamed 9 | -keep class androidx.test.espresso.IdlingRegistry { *; } 10 | -keep class androidx.test.espresso.IdlingResource { *; } 11 | 12 | -keep class com.google.common.base.Preconditions { *; } 13 | 14 | -keep class androidx.room.RoomDataBase { *; } 15 | -keep class androidx.room.Room { *; } 16 | -keep class android.arch.** { *; } 17 | 18 | # Proguard rules that are applied to your test apk/code. 19 | -ignorewarnings 20 | 21 | -keepattributes *Annotation* 22 | 23 | -dontnote junit.framework.** 24 | -dontnote junit.runner.** 25 | 26 | -dontwarn androidx.test.** 27 | -dontwarn org.junit.** 28 | -dontwarn org.hamcrest.** 29 | -dontwarn com.squareup.javawriter.JavaWriter 30 | # Uncomment this if you use Mockito 31 | -dontwarn org.mockito.** 32 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/drawer_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_check_circle_96dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_done.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_list.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_statistics.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_statistics_24dp.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/ic_verified_user_96dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/list_completed_touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/logo_no_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/drawable/logo_no_fill.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/touch_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/drawable/trash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/drawable/trash_icon.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/font/opensans_font.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/font/opensans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/font/opensans_regular.ttf -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/font/opensans_semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/font/opensans_semibold.ttf -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/menu/drawer_actions.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/menu/filter_tasks.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/menu/taskdetail_fragment_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | 64dp 22 | 23 | 24dp 24 | 25 | 26 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | #FFFFF0 19 | #263238 20 | #2E7D32 21 | #757575 22 | 23 | #CCCCCC 24 | 25 | #CFD8DC 26 | 27 | 28 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true 21 | kapt.incremental.apt=true 22 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/dynamic-shortcuts/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Jun 08 22:50:06 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip 7 | -------------------------------------------------------------------------------- /dynamic-shortcuts/starter/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /fitness-biis/complete/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [app-actions] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: android/app-actions 24 | level: intermediate 25 | apiRefs: 26 | license: apache2 27 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/java/com/devrel/android/fitactions/Const.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions 19 | 20 | /** 21 | * Static object that defines the different BIIs 22 | */ 23 | object BiiIntents { 24 | const val START_EXERCISE = "exerciseType" 25 | const val STOP_EXERCISE = "stopExercise" 26 | 27 | object Actions { 28 | const val ACTION_TOKEN_EXTRA = "actions.fulfillment.extra.ACTION_TOKEN" 29 | } 30 | } -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/java/com/devrel/android/fitactions/model/FitStats.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions.model 19 | 20 | /** 21 | * Entity that contains the total user stats. 22 | */ 23 | data class FitStats(val totalCount: Int, val totalDistanceMeters: Double, val totalDurationMs: Long) -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/layout/fit_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | #5382E8 21 | #2B4479 22 | #EAA51D 23 | 24 | #81D4FA 25 | 26 | -------------------------------------------------------------------------------- /fitness-biis/complete/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 16dp 20 | 21 | -------------------------------------------------------------------------------- /fitness-biis/complete/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/complete/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /fitness-biis/complete/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Nov 07 16:43:48 GMT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /fitness-biis/complete/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | include ':app' 19 | -------------------------------------------------------------------------------- /fitness-biis/media/fit-actions-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/media/fit-actions-demo.gif -------------------------------------------------------------------------------- /fitness-biis/starter/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/java/com/devrel/android/fitactions/Const.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions 19 | 20 | /** 21 | * Static object that defines the different BIIs 22 | */ 23 | object BiiIntents { 24 | const val START_EXERCISE = "exerciseType" 25 | const val STOP_EXERCISE = "stopExercise" 26 | 27 | object Actions { 28 | const val ACTION_TOKEN_EXTRA = "actions.fulfillment.extra.ACTION_TOKEN" 29 | } 30 | } -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/java/com/devrel/android/fitactions/model/FitStats.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions.model 19 | 20 | /** 21 | * Entity that contains the total user stats. 22 | */ 23 | data class FitStats(val totalCount: Int, val totalDistanceMeters: Double, val totalDurationMs: Long) -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/layout/fit_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | #5382E8 21 | #2B4479 22 | #EAA51D 23 | 24 | #81D4FA 25 | 26 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 16dp 20 | 21 | -------------------------------------------------------------------------------- /fitness-biis/starter/app/src/main/res/xml/shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /fitness-biis/starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/fitness-biis/starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /fitness-biis/starter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Nov 07 16:43:48 GMT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /fitness-biis/starter/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | include ':app' 19 | -------------------------------------------------------------------------------- /widget/complete/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # This file is used by Google as part of our samples packaging process. 16 | # End users may safely ignore this file. It has no relevance to other systems. 17 | --- 18 | status: PUBLISHED 19 | technologies: [Android] 20 | categories: [app-actions] 21 | languages: [Kotlin] 22 | solutions: [Mobile] 23 | github: android/app-actions 24 | level: intermediate 25 | apiRefs: 26 | license: apache2 27 | -------------------------------------------------------------------------------- /widget/complete/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /widget/complete/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/java/com/devrel/android/fitactions/Const.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions 19 | 20 | /** 21 | * Static object that defines the different BIIs 22 | * https://developers.google.com/assistant/app/reference/built-in-intents 23 | */ 24 | object BiiIntents { 25 | const val START_EXERCISE = "exerciseType" 26 | const val STOP_EXERCISE = "stopExercise" 27 | 28 | object Actions { 29 | const val ACTION_TOKEN_EXTRA = "actions.fulfillment.extra.ACTION_TOKEN" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/java/com/devrel/android/fitactions/LiveDataExtensions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions 19 | 20 | import androidx.lifecycle.LiveData 21 | import androidx.lifecycle.Observer 22 | 23 | /** 24 | * Create single use observer for activity LiveData 25 | */ 26 | fun LiveData.observeOnce(observer: Observer) { 27 | observeForever(object : Observer { 28 | override fun onChanged(t: T?) { 29 | observer.onChanged(t) 30 | removeObserver(this) 31 | } 32 | }) 33 | } -------------------------------------------------------------------------------- /widget/complete/app/src/main/java/com/devrel/android/fitactions/model/FitStats.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package com.devrel.android.fitactions.model 19 | 20 | /** 21 | * Entity that contains the total user stats. 22 | */ 23 | data class FitStats(val totalCount: Int, val totalDistanceMeters: Double, val totalDurationMs: Long) -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/drawable-v21/app_widget_background.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/drawable-v21/app_widget_inner_view_background.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/layout/fit_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android/app-actions-samples/fea0f48a6d7f1c43d47c3ad14bfd11ace4b5629c/widget/complete/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values-night-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 11 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values-v31/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 12 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | #5382E8 20 | #2B4479 21 | #EAA51D 22 | 23 | #81D4FA 24 | #FFE1F5FE 25 | #FF81D4FA 26 | #FF039BE5 27 | #FF01579B 28 | 29 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 16dp 20 | 21 | 25 | 0dp 26 | 27 | -------------------------------------------------------------------------------- /widget/complete/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 11 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values-v31/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 12 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | #5382E8 20 | #2B4479 21 | #EAA51D 22 | 23 | #81D4FA 24 | #FFE1F5FE 25 | #FF81D4FA 26 | #FF039BE5 27 | #FF01579B 28 | 29 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 16dp 20 | 21 | 25 | 0dp 26 | 27 | -------------------------------------------------------------------------------- /widget/starter/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 |