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
This commit is contained in:
Manish Singh
2020-12-02 06:42:07 +00:00
parent 35390be7be
commit 47445745be
7 changed files with 277 additions and 11 deletions

View File

@@ -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 for the User's control (over other transcoding preferences) preference switch on
* the transcode settings screen.
*/
public class TranscodeUserControlPreferenceController extends TogglePreferenceController {
private static final String TRANSCODE_USER_CONTROL_SYS_PROP_KEY =
"persist.sys.fuse.transcode_user_control";
public TranscodeUserControlPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}
@Override
public boolean isChecked() {
return SystemProperties.getBoolean(TRANSCODE_USER_CONTROL_SYS_PROP_KEY, false);
}
@Override
public boolean setChecked(boolean isChecked) {
SystemProperties.set(TRANSCODE_USER_CONTROL_SYS_PROP_KEY, String.valueOf(isChecked));
return true;
}
@Override
public int getAvailabilityStatus() {
return AVAILABLE;
}
}