summaryrefslogtreecommitdiff
path: root/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
diff options
context:
space:
mode:
authorManish Singh <psych@google.com>2020-12-02 06:42:07 +0000
committerManish Singh <psych@google.com>2020-12-07 03:53:14 +0000
commit47445745beb3d9197bc358a91a6dc15bdbf78b76 (patch)
tree8565a1b9e1b0b865bcaec549bec6881231c62328 /src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
parent35390be7be97c158f875f189b67f9af3a28a279d (diff)
Introduce new preference indicating user control.
If the user enables this, then that means that we will respect user's choices for all the preferences, i.e. we will not update the preferences based on the updates from server. On the other hand, if it's disabled, then the rest of the preferences would not be considered. And we'd decide their values based on the values from the DeviceConfig (which in turn come from the server). The controller for the default-transcoding-behavior for apps was also added. Also, renaming the set prop key for enabling-transcode to match the one in DeviceConfig - transcode_enabled. And while we were at it, we renamed the stirng from "disabling transcoding for all apps" to "enabling transcoding for all apps"; and also changed the controller to enable (instead of disable) transcoding. BUG:169327180 Test: manual testing. And added unit test for TranscodeUserControlPreferenceControllerTest. Change-Id: If9b9face51b669f5177be8bfa18f44471f531058
Diffstat (limited to 'src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java')
-rw-r--r--src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
new file mode 100644
index 0000000000..3cbf3cbde8
--- /dev/null
+++ b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.development.transcode;
+
+import android.content.Context;
+import android.os.SystemProperties;
+
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * The controller (on the transcode settings screen) indicating that by default we assume that apps
+ * support modern formats.
+ */
+public class TranscodeDefaultOptionPreferenceController extends TogglePreferenceController {
+ private static final String TRANSCODE_DEFAULT_SYS_PROP_KEY =
+ "persist.sys.fuse.transcode_default";
+
+ public TranscodeDefaultOptionPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return !SystemProperties.getBoolean(TRANSCODE_DEFAULT_SYS_PROP_KEY, false);
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ SystemProperties.set(TRANSCODE_DEFAULT_SYS_PROP_KEY, String.valueOf(!isChecked));
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}