1 /* <lambda>null2 * Copyright (C) 2023 The Android Open Source Project 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 * http://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 package com.android.permissioncontroller.permission.ui.wear 18 19 import android.os.Bundle 20 import android.view.LayoutInflater 21 import android.view.View 22 import android.view.ViewGroup 23 import androidx.compose.ui.platform.ComposeView 24 import androidx.fragment.app.Fragment 25 import androidx.lifecycle.ViewModelProvider 26 import com.android.permissioncontroller.Constants 27 import com.android.permissioncontroller.permission.ui.handheld.ManageCustomPermissionsFragment 28 import com.android.permissioncontroller.permission.ui.handheld.PermissionAppsFragment 29 import com.android.permissioncontroller.permission.ui.model.ManageStandardPermissionsViewModel 30 import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme 31 32 class WearManageStandardPermissionsFragment : Fragment() { 33 override fun onCreateView( 34 inflater: LayoutInflater, 35 container: ViewGroup?, 36 savedInstanceState: Bundle?, 37 ): View? { 38 val activity = requireActivity() 39 val application = activity.getApplication() 40 val sessionId: Long = 41 arguments?.getLong(Constants.EXTRA_SESSION_ID) ?: Constants.INVALID_SESSION_ID 42 val viewModel: ManageStandardPermissionsViewModel = 43 ViewModelProvider( 44 this, 45 ViewModelProvider.AndroidViewModelFactory.getInstance(application), 46 ) 47 .get(ManageStandardPermissionsViewModel::class.java) 48 49 val onPermGroupClick: (String) -> Unit = { permGroupName -> 50 viewModel.showPermissionApps( 51 this, 52 PermissionAppsFragment.createArgs(permGroupName, sessionId), 53 ) 54 } 55 val onCustomPermGroupClick = { 56 viewModel.showCustomPermissions( 57 this, 58 ManageCustomPermissionsFragment.createArgs(sessionId), 59 ) 60 } 61 val onAutoRevokeClick = { 62 viewModel.showAutoRevoke(this, WearUnusedAppsFragment.createArgs(sessionId)) 63 } 64 65 return ComposeView(activity).apply { 66 setContent { 67 WearPermissionTheme { 68 WearManageStandardPermissionScreen( 69 viewModel, 70 onPermGroupClick, 71 onCustomPermGroupClick, 72 onAutoRevokeClick, 73 ) 74 } 75 } 76 } 77 } 78 } 79