• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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