Relace BuildCompat.isAtLeastS to check Build.VERSION.SDK_INT
Fixes: 191227729 Test: robotest & manual Change-Id: I4b865b7de33a6801783dd645213fef0cda8d4dd2
This commit is contained in:
@@ -14,7 +14,8 @@ android_library {
|
||||
resource_dirs: ["res"],
|
||||
|
||||
static_libs: [
|
||||
"androidx.preference_preference",
|
||||
"androidx.preference_preference",
|
||||
"SettingsLibUtils",
|
||||
],
|
||||
|
||||
sdk_version: "system_current",
|
||||
|
||||
@@ -27,10 +27,11 @@ import android.widget.Button;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.core.os.BuildCompat;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settingslib.utils.BuildCompatUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -94,7 +95,7 @@ public class ActionButtonsPreference extends Preference {
|
||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||
super.onBindViewHolder(holder);
|
||||
|
||||
final boolean allowedDivider = !BuildCompat.isAtLeastS();
|
||||
final boolean allowedDivider = !BuildCompatUtils.isAtLeastS();
|
||||
holder.setDividerAllowedAbove(allowedDivider);
|
||||
holder.setDividerAllowedBelow(allowedDivider);
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ android_library {
|
||||
static_libs: [
|
||||
"androidx.preference_preference",
|
||||
"SettingsLibSettingsTheme",
|
||||
"SettingsLibUtils",
|
||||
],
|
||||
|
||||
sdk_version: "system_current",
|
||||
|
||||
@@ -35,10 +35,11 @@ import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.ColorRes;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.core.os.BuildCompat;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settingslib.utils.BuildCompatUtils;
|
||||
|
||||
/**
|
||||
* Banner message is a banner displaying important information (permission request, page error etc),
|
||||
* and provide actions for user to address. It requires a user action to be dismissed.
|
||||
@@ -83,7 +84,7 @@ public class BannerMessagePreference extends Preference {
|
||||
}
|
||||
|
||||
private static final String TAG = "BannerPreference";
|
||||
private static final boolean IS_AT_LEAST_S = BuildCompat.isAtLeastS();
|
||||
private static final boolean IS_AT_LEAST_S = BuildCompatUtils.isAtLeastS();
|
||||
|
||||
private final BannerMessagePreference.ButtonInfo mPositiveButtonInfo =
|
||||
new BannerMessagePreference.ButtonInfo();
|
||||
|
||||
@@ -16,8 +16,9 @@ android_library {
|
||||
static_libs: [
|
||||
"androidx.preference_preference",
|
||||
"SettingsLibSettingsTheme",
|
||||
"SettingsLibUtils",
|
||||
],
|
||||
|
||||
sdk_version: "system_current",
|
||||
min_sdk_version: "21",
|
||||
min_sdk_version: "28",
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
package="com.android.settingslib.widget">
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="21"
|
||||
android:minSdkVersion="28"
|
||||
android:targetSdkVersion="31"/>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -30,7 +30,8 @@ import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.core.os.BuildCompat;
|
||||
|
||||
import com.android.settingslib.utils.BuildCompatUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -74,7 +75,7 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec
|
||||
|
||||
LayoutInflater.from(context).inflate(R.layout.settingslib_main_switch_bar, this);
|
||||
|
||||
if (!BuildCompat.isAtLeastS()) {
|
||||
if (!BuildCompatUtils.isAtLeastS()) {
|
||||
final TypedArray a = context.obtainStyledAttributes(
|
||||
new int[]{android.R.attr.colorAccent});
|
||||
mBackgroundActivatedColor = a.getColor(0, 0);
|
||||
@@ -207,7 +208,7 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec
|
||||
mTextView.setEnabled(enabled);
|
||||
mSwitch.setEnabled(enabled);
|
||||
|
||||
if (BuildCompat.isAtLeastS()) {
|
||||
if (BuildCompatUtils.isAtLeastS()) {
|
||||
if (enabled) {
|
||||
mFrameView.setBackground(isChecked() ? mBackgroundOn : mBackgroundOff);
|
||||
} else {
|
||||
@@ -226,7 +227,7 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec
|
||||
}
|
||||
|
||||
private void setBackground(boolean isChecked) {
|
||||
if (!BuildCompat.isAtLeastS()) {
|
||||
if (!BuildCompatUtils.isAtLeastS()) {
|
||||
setBackgroundColor(isChecked ? mBackgroundActivatedColor : mBackgroundColor);
|
||||
} else {
|
||||
mFrameView.setBackground(isChecked ? mBackgroundOn : mBackgroundOff);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.settingslib.widget">
|
||||
package="com.android.settingslib.utils">
|
||||
|
||||
<uses-sdk android:minSdkVersion="21" />
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2021 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.
|
||||
*/
|
||||
|
||||
package com.android.settingslib.utils;
|
||||
|
||||
import android.os.Build.VERSION;
|
||||
|
||||
/**
|
||||
* An util class to check whether the current OS version is higher or equal to sdk version of
|
||||
* device.
|
||||
*/
|
||||
public final class BuildCompatUtils {
|
||||
|
||||
/**
|
||||
* Implementation of BuildCompat.isAtLeast*() suitable for use in Settings
|
||||
*
|
||||
* <p>This still should try using BuildCompat.isAtLeastR() as source of truth, but also checking
|
||||
* for VERSION_SDK_INT and VERSION.CODENAME in case when BuildCompat implementation returned
|
||||
* false. Note that both checks should be >= and not = to make sure that when Android version
|
||||
* increases (i.e., from R to S), this does not stop working.
|
||||
*
|
||||
* <p>Supported configurations:
|
||||
*
|
||||
* <ul>
|
||||
* <li>For current Android release: when new API is not finalized yet (CODENAME = "S", SDK_INT
|
||||
* = 30|31)
|
||||
* <li>For current Android release: when new API is finalized (CODENAME = "REL", SDK_INT = 31)
|
||||
* <li>For next Android release (CODENAME = "T", SDK_INT = 30+)
|
||||
* </ul>
|
||||
*
|
||||
* <p>Note that Build.VERSION_CODES.S cannot be used here until final SDK is available, because
|
||||
* it is equal to Build.VERSION_CODES.CUR_DEVELOPMENT before API finalization.
|
||||
*
|
||||
* @return Whether the current OS version is higher or equal to S.
|
||||
*/
|
||||
public static boolean isAtLeastS() {
|
||||
if (VERSION.SDK_INT < 30) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (VERSION.CODENAME.equals("REL") && VERSION.SDK_INT >= 31)
|
||||
|| (VERSION.CODENAME.length() == 1
|
||||
&& VERSION.CODENAME.compareTo("S") >= 0
|
||||
&& VERSION.CODENAME.compareTo("Z") <= 0);
|
||||
}
|
||||
|
||||
private BuildCompatUtils() {}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ import android.content.pm.PackageManager;
|
||||
import android.os.UserManager;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settingslib.widget.R;
|
||||
import com.android.settingslib.utils.R;
|
||||
|
||||
public class AppUtils {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user