Change control semantics in transcode settings

Change global transcode enable toggle preference to global disable
toggle preference. Change app slection for skipping transcode to
app selection for enabling transcode, by default transcoding would be
disabled for all apps.

Test: Manual, Roboelectric unit tests
Change-Id: I44f4d1b24fac70a4560e8b3a12d505bd2da26f20
This commit is contained in:
Biswarup Pal
2020-11-15 13:49:29 +00:00
parent 5816d414db
commit ab51e8ff38
5 changed files with 41 additions and 41 deletions

View File

@@ -33,19 +33,19 @@ import java.util.Arrays;
import java.util.List;
/**
* The controller for the "Skip transcoding for apps" section on the transcode settings
* The controller for the "Enable transcoding for apps" section on the transcode settings
* screen.
*/
public class TranscodeSkipAppsPreferenceController extends BasePreferenceController implements
public class TranscodeAppsPreferenceController extends BasePreferenceController implements
Preference.OnPreferenceChangeListener {
private static final String SKIP_SELECTED_APPS_PROP_KEY =
"persist.sys.fuse.transcode_skip_uids";
private static final String TRANSCODE_SELECTED_APPS_PROP_KEY =
"persist.sys.fuse.transcode_uids";
private final PackageManager mPackageManager;
private final List<String> mUidsToSkip = new ArrayList<>();
private final List<String> mUids = new ArrayList<>();
public TranscodeSkipAppsPreferenceController(Context context,
public TranscodeAppsPreferenceController(Context context,
String preferenceKey) {
super(context, preferenceKey);
mPackageManager = context.getPackageManager();
@@ -60,8 +60,8 @@ public class TranscodeSkipAppsPreferenceController extends BasePreferenceControl
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final Context context = screen.getContext();
mUidsToSkip.addAll(Arrays.asList(
SystemProperties.get(SKIP_SELECTED_APPS_PROP_KEY).split(",")));
mUids.addAll(Arrays.asList(
SystemProperties.get(TRANSCODE_SELECTED_APPS_PROP_KEY).split(",")));
Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = mPackageManager.queryIntentActivities(launcherIntent, 0);
@@ -71,7 +71,7 @@ public class TranscodeSkipAppsPreferenceController extends BasePreferenceControl
preference.setTitle(app.loadLabel(mPackageManager));
preference.setIcon(app.loadIcon(mPackageManager));
preference.setKey(uid);
preference.setChecked(isSkippedForTranscoding(uid));
preference.setChecked(isSelectedForTranscoding(uid));
preference.setOnPreferenceChangeListener(this);
screen.addPreference(preference);
@@ -83,15 +83,15 @@ public class TranscodeSkipAppsPreferenceController extends BasePreferenceControl
boolean value = (Boolean) o;
String uidStr = preference.getKey();
if (value) {
mUidsToSkip.add(uidStr);
mUids.add(uidStr);
} else {
mUidsToSkip.remove(uidStr);
mUids.remove(uidStr);
}
SystemProperties.set(SKIP_SELECTED_APPS_PROP_KEY, String.join(",", mUidsToSkip));
SystemProperties.set(TRANSCODE_SELECTED_APPS_PROP_KEY, String.join(",", mUids));
return true;
}
private boolean isSkippedForTranscoding(String uid) {
return mUidsToSkip.contains(uid);
private boolean isSelectedForTranscoding(String uid) {
return mUids.contains(uid);
}
}

View File

@@ -22,7 +22,7 @@ import android.os.SystemProperties;
import com.android.settings.core.TogglePreferenceController;
/**
* The controller for the "Enable transcode for all apps" switch on the transcode settings
* The controller for the "Disable transcoding for all apps" switch on the transcode settings
* screen.
*/
public class TranscodeGlobalTogglePreferenceController extends TogglePreferenceController {
@@ -41,12 +41,12 @@ public class TranscodeGlobalTogglePreferenceController extends TogglePreferenceC
@Override
public boolean isChecked() {
return SystemProperties.getBoolean(TRANSCODE_ENABLED_PROP_KEY, false);
return !SystemProperties.getBoolean(TRANSCODE_ENABLED_PROP_KEY, false);
}
@Override
public boolean setChecked(boolean isChecked) {
SystemProperties.set(TRANSCODE_ENABLED_PROP_KEY, String.valueOf(isChecked));
SystemProperties.set(TRANSCODE_ENABLED_PROP_KEY, String.valueOf(!isChecked));
return true;
}
}