Loading res/layout/car_radio_button_preference.xml 0 → 100644 +66 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2019 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:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeightSmall"> <FrameLayout android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" android:minWidth="?android:attr/listPreferredItemHeightSmall" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart"/> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:clipToPadding="false" android:gravity="start|center_vertical" android:paddingBottom="@*android:dimen/car_preference_row_vertical_margin" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingTop="@*android:dimen/car_preference_row_vertical_margin"> <androidx.preference.internal.PreferenceImageView android:id="@android:id/icon" android:layout_width="@*android:dimen/car_preference_icon_size" android:layout_height="@*android:dimen/car_preference_icon_size" android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:orientation="vertical"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"/> <TextView android:id="@android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall"/> </LinearLayout> </LinearLayout> </LinearLayout> src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionFragment.java +9 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import android.view.View; import android.widget.RadioButton; import androidx.annotation.IntDef; import androidx.annotation.NonNull; Loading @@ -41,6 +42,7 @@ import androidx.fragment.app.Fragment; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; import androidx.preference.TwoStatePreference; import com.android.packageinstaller.auto.AutoSettingsFrameFragment; Loading Loading @@ -749,12 +751,16 @@ public class AutoAppPermissionFragment extends AutoSettingsFrameFragment { super(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, android.R.attr.preferenceStyle)); setPersistent(false); setLayoutResource(R.layout.car_radio_button_preference); setWidgetLayoutResource(R.layout.radio_button_preference_widget); } @Override public void setChecked(boolean checked) { super.setChecked(checked); setSummary(checked ? getContext().getString(R.string.car_permission_selected) : null); public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); RadioButton radioButton = (RadioButton) holder.findViewById(R.id.radio_button); radioButton.setChecked(isChecked()); } } Loading src/com/android/packageinstaller/role/ui/auto/AutoDefaultAppPreference.java +10 −20 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.packageinstaller.role.ui.auto; import android.content.Context; import android.text.TextUtils; import android.view.View; import android.widget.TextView; import android.widget.RadioButton; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.PreferenceViewHolder; Loading @@ -33,28 +31,20 @@ public class AutoDefaultAppPreference extends TwoStatePreference { public AutoDefaultAppPreference(Context context) { super(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, android.R.attr.preferenceStyle)); init(); } private void init() { setLayoutResource(R.layout.car_radio_button_preference); setWidgetLayoutResource(R.layout.radio_button_preference_widget); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); TextView summaryView = (TextView) holder.findViewById(android.R.id.summary); if (summaryView == null) { return; } if (isChecked()) { CharSequence current = getSummary(); CharSequence selected = getContext().getString(R.string.car_default_app_selected); if (!TextUtils.isEmpty(current)) { selected = getContext().getString(R.string.car_default_app_selected_with_info, current); } summaryView.setText(selected); summaryView.setVisibility(View.VISIBLE); } else { summaryView.setVisibility(View.GONE); } RadioButton radioButton = (RadioButton) holder.findViewById(R.id.radio_button); radioButton.setChecked(isChecked()); } } Loading
res/layout/car_radio_button_preference.xml 0 → 100644 +66 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2019 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:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeightSmall"> <FrameLayout android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" android:minWidth="?android:attr/listPreferredItemHeightSmall" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart"/> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:clipToPadding="false" android:gravity="start|center_vertical" android:paddingBottom="@*android:dimen/car_preference_row_vertical_margin" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingTop="@*android:dimen/car_preference_row_vertical_margin"> <androidx.preference.internal.PreferenceImageView android:id="@android:id/icon" android:layout_width="@*android:dimen/car_preference_icon_size" android:layout_height="@*android:dimen/car_preference_icon_size" android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:orientation="vertical"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"/> <TextView android:id="@android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall"/> </LinearLayout> </LinearLayout> </LinearLayout>
src/com/android/packageinstaller/permission/ui/auto/AutoAppPermissionFragment.java +9 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.os.Bundle; import android.os.UserHandle; import android.util.Log; import android.view.View; import android.widget.RadioButton; import androidx.annotation.IntDef; import androidx.annotation.NonNull; Loading @@ -41,6 +42,7 @@ import androidx.fragment.app.Fragment; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; import androidx.preference.TwoStatePreference; import com.android.packageinstaller.auto.AutoSettingsFrameFragment; Loading Loading @@ -749,12 +751,16 @@ public class AutoAppPermissionFragment extends AutoSettingsFrameFragment { super(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, android.R.attr.preferenceStyle)); setPersistent(false); setLayoutResource(R.layout.car_radio_button_preference); setWidgetLayoutResource(R.layout.radio_button_preference_widget); } @Override public void setChecked(boolean checked) { super.setChecked(checked); setSummary(checked ? getContext().getString(R.string.car_permission_selected) : null); public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); RadioButton radioButton = (RadioButton) holder.findViewById(R.id.radio_button); radioButton.setChecked(isChecked()); } } Loading
src/com/android/packageinstaller/role/ui/auto/AutoDefaultAppPreference.java +10 −20 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.packageinstaller.role.ui.auto; import android.content.Context; import android.text.TextUtils; import android.view.View; import android.widget.TextView; import android.widget.RadioButton; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.PreferenceViewHolder; Loading @@ -33,28 +31,20 @@ public class AutoDefaultAppPreference extends TwoStatePreference { public AutoDefaultAppPreference(Context context) { super(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, android.R.attr.preferenceStyle)); init(); } private void init() { setLayoutResource(R.layout.car_radio_button_preference); setWidgetLayoutResource(R.layout.radio_button_preference_widget); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); TextView summaryView = (TextView) holder.findViewById(android.R.id.summary); if (summaryView == null) { return; } if (isChecked()) { CharSequence current = getSummary(); CharSequence selected = getContext().getString(R.string.car_default_app_selected); if (!TextUtils.isEmpty(current)) { selected = getContext().getString(R.string.car_default_app_selected_with_info, current); } summaryView.setText(selected); summaryView.setVisibility(View.VISIBLE); } else { summaryView.setVisibility(View.GONE); } RadioButton radioButton = (RadioButton) holder.findViewById(R.id.radio_button); radioButton.setChecked(isChecked()); } }