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:
@@ -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);
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user