Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b7e6d5a authored by Sergey Nikolaienkov's avatar Sergey Nikolaienkov Committed by Robin Lee
Browse files

Add preference_permissions_revoke layout for TVs

Bug: 158098457
Test: manually ran on TV
Test: atest android.os.cts.AutoRevokeTest
Change-Id: I9c9c0a920777c21483fbe15640c6f26064429a0a
parent 5ae10d44
Loading
Loading
Loading
Loading
+76 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2020 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:minHeight="?android:attr/listPreferredItemHeightSmall"
              android:gravity="center_vertical"
              android:paddingStart="?android:attr/listPreferredItemPaddingStart"
              android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
              android:paddingTop="16dp"
              android:paddingBottom="16dp"
              android:background="?android:attr/selectableItemBackground"
              android:focusable="true"
              android:clipToPadding="false">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <!-- We are not showing here, but need to keep it here, because SwitchPreference expects it. -->
        <LinearLayout
            android:id="@android:id/icon_frame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone">
            <ImageView
                android:id="@android:id/icon"
                android:layout_width="@dimen/permission_icon_size"
                android:layout_height="@dimen/permission_icon_size"/>
        </LinearLayout>

        <TextView
            android:id="@android:id/title"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textAppearance="?android:attr/textAppearanceListItem"/>

        <!-- Preference should place its actual preference widget here. -->
        <LinearLayout
            android:id="@android:id/widget_frame"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="end|center_vertical"
            android:paddingStart="16dp"
            android:orientation="vertical"/>

    </LinearLayout>

    <TextView
        android:id="@android:id/summary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/title"
        android:layout_alignStart="@android:id/title"
        android:textAppearance="?android:attr/textAppearanceListItemSecondary"
        android:textColor="?android:attr/textColorSecondary"
        android:maxLines="10"/>

</LinearLayout>
+3 −1
Original line number Diff line number Diff line
@@ -47,9 +47,11 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.SwitchPreference;

import com.android.permissioncontroller.R;
import com.android.permissioncontroller.permission.model.AppPermissionGroup;
import com.android.permissioncontroller.permission.model.AppPermissions;
import com.android.permissioncontroller.permission.model.livedatatypes.AutoRevokeState;
import com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity;
import com.android.permissioncontroller.permission.ui.model.AppPermissionGroupsViewModel;
import com.android.permissioncontroller.permission.ui.model.AppPermissionGroupsViewModelFactory;
import com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity;
@@ -57,7 +59,6 @@ import com.android.permissioncontroller.permission.utils.KotlinUtils;
import com.android.permissioncontroller.permission.utils.LocationUtils;
import com.android.permissioncontroller.permission.utils.SafetyNetLogger;
import com.android.permissioncontroller.permission.utils.Utils;
import com.android.permissioncontroller.R;

public final class AppPermissionsFragment extends SettingsWithHeader
        implements OnPreferenceClickListener {
@@ -397,6 +398,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
    private void addAutoRevokePreferences(PreferenceScreen screen) {
        SwitchPreference autoRevokeSwitch =
                new SwitchPreference(screen.getPreferenceManager().getContext());
        autoRevokeSwitch.setLayoutResource(R.layout.preference_permissions_revoke);
        autoRevokeSwitch.setOnPreferenceClickListener((preference) -> {
            mViewModel.setAutoRevoke(autoRevokeSwitch.isChecked());
            android.util.Log.w(LOG_TAG, "setAutoRevoke " + autoRevokeSwitch.isChecked());