Merge "Use SDK check for showing permission hub and add RequiresApi(S)." into sc-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsFragment.java
index db9a797..06fcb0d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsFragment.java
@@ -22,6 +22,7 @@
import android.Manifest.permission_group;
import android.app.ActionBar;
+import android.app.Activity;
import android.app.AppOpsManager.OpEventProxyInfo;
import android.app.role.RoleManager;
import android.content.Context;
@@ -29,6 +30,7 @@
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.TypedArray;
+import android.os.Build;
import android.os.Bundle;
import android.os.UserHandle;
import android.text.format.DateFormat;
@@ -42,6 +44,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
@@ -80,6 +83,7 @@
/**
* The permission details page showing the history/timeline of a permission
*/
+@RequiresApi(Build.VERSION_CODES.S)
public class PermissionDetailsFragment extends SettingsWithLargeHeader implements
PermissionUsages.PermissionsUsagesChangeCallback {
public static final int FILTER_24_HOURS = 2;
@@ -156,20 +160,22 @@
R.id.extended_fab);
// Load the background tint color from the application theme
// rather than the Material Design theme
- final int colorAccentTertiary = getContext().getColor(
+ Activity activity = getActivity();
+ ColorStateList backgroundColor = activity.getColorStateList(
android.R.color.system_accent3_100);
- extendedFab.setBackgroundTintList(ColorStateList.valueOf(colorAccentTertiary));
-
+ extendedFab.setBackgroundTintList(backgroundColor);
extendedFab.setText(R.string.manage_permission);
- final boolean isDarkMode = (getActivity().getResources().getConfiguration().uiMode
+ boolean isUiModeNight = (activity.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
- int textColor = isDarkMode ? android.R.attr.textColorPrimaryInverse
+ int textColorAttr = isUiModeNight ? android.R.attr.textColorPrimaryInverse
: android.R.attr.textColorPrimary;
- TypedArray colorArray = getActivity().obtainStyledAttributes(new int[] { textColor });
- extendedFab.setTextColor(colorArray.getColor(0, -1));
- extendedFab.setIcon(getActivity().getDrawable(R.drawable.ic_settings_outline));
+ TypedArray typedArray = activity.obtainStyledAttributes(new int[] { textColorAttr });
+ ColorStateList textColor = typedArray.getColorStateList(0);
+ typedArray.recycle();
+ extendedFab.setTextColor(textColor);
+ extendedFab.setIcon(activity.getDrawable(R.drawable.ic_settings_outline));
extendedFab.setVisibility(View.VISIBLE);
- extendedFab.setOnClickListener(v -> {
+ extendedFab.setOnClickListener(view -> {
Intent intent = new Intent(Intent.ACTION_MANAGE_PERMISSION_APPS)
.putExtra(Intent.EXTRA_PERMISSION_NAME, mFilterGroup);
startActivity(intent);
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsWrapperFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsWrapperFragment.java
index 99a6ecc..43f62ad 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsWrapperFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionDetailsWrapperFragment.java
@@ -17,10 +17,12 @@
package com.android.permissioncontroller.permission.debug;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import androidx.preference.PreferenceFragmentCompat;
import com.android.permissioncontroller.permission.ui.ManagePermissionsActivity;
@@ -29,6 +31,7 @@
/**
* Wrapper over PermissionDetailsFragment
*/
+@RequiresApi(Build.VERSION_CODES.S)
public class PermissionDetailsWrapperFragment extends PermissionsCollapsingToolbarBaseFragment {
@NonNull
@Override
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
index 0275aef..7e90178 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
@@ -23,6 +23,7 @@
import android.app.Activity;
import android.app.role.RoleManager;
import android.content.Context;
+import android.os.Build;
import android.os.Bundle;
import android.util.ArrayMap;
import android.util.ArraySet;
@@ -33,6 +34,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroupAdapter;
@@ -62,6 +64,7 @@
/**
* The main page for the privacy dashboard.
*/
+@RequiresApi(Build.VERSION_CODES.S)
public class PermissionUsageV2Fragment extends SettingsWithLargeHeader implements
PermissionUsages.PermissionsUsagesChangeCallback {
private static final String LOG_TAG = "PermUsageV2Fragment";
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2WrapperFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2WrapperFragment.java
index 1090b2c..ccb181b 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2WrapperFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2WrapperFragment.java
@@ -17,10 +17,12 @@
package com.android.permissioncontroller.permission.debug;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import androidx.preference.PreferenceFragmentCompat;
import com.android.permissioncontroller.permission.ui.handheld.PermissionsCollapsingToolbarBaseFragment;
@@ -28,6 +30,7 @@
/**
* Wrapper over PermissionUsageV2Fragment
*/
+@RequiresApi(Build.VERSION_CODES.S)
public class PermissionUsageV2WrapperFragment extends PermissionsCollapsingToolbarBaseFragment{
@NonNull
@Override
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsages.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsages.java
index fb1d815..a6a07eb 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsages.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsages.java
@@ -33,6 +33,7 @@
import android.content.pm.PackageInfo;
import android.media.AudioManager;
import android.media.AudioRecordingConfiguration;
+import android.os.Build;
import android.os.Bundle;
import android.os.Process;
import android.util.ArrayMap;
@@ -42,6 +43,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import com.android.permissioncontroller.permission.model.AppPermissionGroup;
import com.android.permissioncontroller.permission.model.AppPermissionUsage;
@@ -63,6 +65,7 @@
/**
* Loads all permission usages for a set of apps and permission groups.
*/
+@RequiresApi(Build.VERSION_CODES.S)
public final class PermissionUsages implements LoaderCallbacks<List<AppPermissionUsage>> {
public static final int USAGE_FLAG_LAST = 1 << 0;
public static final int USAGE_FLAG_HISTORICAL = 1 << 2;
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/Utils.kt b/PermissionController/src/com/android/permissioncontroller/permission/debug/Utils.kt
index be7e00c..37896df 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/Utils.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/Utils.kt
@@ -41,9 +41,6 @@
/* Default location precision */
const val PROPERTY_LOCATION_PRECISION = "location_precision"
-/* Whether privacy hub feature is enabled */
-const val PROPERTY_PRIVACY_HUB_ENABLED = "privacy_hub_enabled"
-
const val SECONDS = 1
const val MINUTES = 2
const val HOURS = 3
@@ -124,14 +121,6 @@
}
/**
- * Whether the privacy hub feature is enabled
- */
-fun isPrivacyHubEnabled(): Boolean {
- return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
- PROPERTY_PRIVACY_HUB_ENABLED, true)
-}
-
-/**
* Build a string representing the given time if it happened on the current day and the date
* otherwise.
*
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
index cfd9387..03352f8 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
@@ -30,6 +30,7 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PermissionInfo;
+import android.os.Build;
import android.os.Bundle;
import android.os.UserHandle;
import android.util.Log;
@@ -158,7 +159,7 @@
break;
case Intent.ACTION_REVIEW_PERMISSION_USAGE: {
- if (!UtilsKt.isPrivacyHubEnabled()) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
finishAfterTransition();
return;
}
@@ -169,15 +170,17 @@
} break;
case Intent.ACTION_REVIEW_PERMISSION_HISTORY: {
- if (UtilsKt.isPrivacyHubEnabled()) {
- String groupName = getIntent()
- .getStringExtra(Intent.EXTRA_PERMISSION_GROUP_NAME);
- boolean showSystem = getIntent()
- .getBooleanExtra(EXTRA_SHOW_SYSTEM, false);
- androidXFragment = PermissionDetailsWrapperFragment
- .newInstance(groupName, Long.MAX_VALUE, showSystem);
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
+ finishAfterTransition();
+ return;
}
+ String groupName = getIntent()
+ .getStringExtra(Intent.EXTRA_PERMISSION_GROUP_NAME);
+ boolean showSystem = getIntent()
+ .getBooleanExtra(EXTRA_SHOW_SYSTEM, false);
+ androidXFragment = PermissionDetailsWrapperFragment
+ .newInstance(groupName, Long.MAX_VALUE, showSystem);
break;
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
index 68abb0d..16febb8 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
@@ -42,6 +42,7 @@
import android.graphics.drawable.Drawable;
import android.icu.text.ListFormatter;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
@@ -55,6 +56,7 @@
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes;
import androidx.lifecycle.ViewModelProvider;
import androidx.preference.Preference;
@@ -203,6 +205,7 @@
}
@Override
+ @RequiresApi(Build.VERSION_CODES.S)
public void onPermissionUsagesChanged() {
if (mPermissionUsages.getUsages().isEmpty()) {
return;
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java
index 3a36b85..ba4928b 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionAppsFragment.java
@@ -40,6 +40,7 @@
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -52,6 +53,7 @@
import android.view.View;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import androidx.lifecycle.ViewModelProvider;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
@@ -175,6 +177,7 @@
}
@Override
+ @RequiresApi(Build.VERSION_CODES.S)
public void onPermissionUsagesChanged() {
if (mPermissionUsages.getUsages().isEmpty()) {
return;