Merge "Revert "fix(magnification thumbnail): remove feature flag, enable thumbnail by default"" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
5c61842f12
@@ -110,6 +110,7 @@ public class FullScreenMagnificationController implements
|
||||
private boolean mAlwaysOnMagnificationEnabled = false;
|
||||
private final DisplayManagerInternal mDisplayManagerInternal;
|
||||
|
||||
private final MagnificationThumbnailFeatureFlag mMagnificationThumbnailFeatureFlag;
|
||||
@NonNull private final Supplier<MagnificationThumbnail> mThumbnailSupplier;
|
||||
|
||||
/**
|
||||
@@ -689,6 +690,13 @@ public class FullScreenMagnificationController implements
|
||||
}
|
||||
}
|
||||
|
||||
void onThumbnailFeatureFlagChanged() {
|
||||
synchronized (mLock) {
|
||||
destroyThumbnail();
|
||||
createThumbnailIfSupported();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the current magnification spec.
|
||||
*
|
||||
@@ -849,19 +857,43 @@ public class FullScreenMagnificationController implements
|
||||
addInfoChangedCallback(magnificationInfoChangedCallback);
|
||||
mScaleProvider = scaleProvider;
|
||||
mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
|
||||
mMagnificationThumbnailFeatureFlag = new MagnificationThumbnailFeatureFlag();
|
||||
mMagnificationThumbnailFeatureFlag.addOnChangedListener(
|
||||
backgroundExecutor, this::onMagnificationThumbnailFeatureFlagChanged);
|
||||
if (thumbnailSupplier != null) {
|
||||
mThumbnailSupplier = thumbnailSupplier;
|
||||
} else {
|
||||
mThumbnailSupplier = () -> {
|
||||
return new MagnificationThumbnail(
|
||||
ctx.getContext(),
|
||||
ctx.getContext().getSystemService(WindowManager.class),
|
||||
new Handler(ctx.getContext().getMainLooper())
|
||||
);
|
||||
if (mMagnificationThumbnailFeatureFlag.isFeatureFlagEnabled()) {
|
||||
return new MagnificationThumbnail(
|
||||
ctx.getContext(),
|
||||
ctx.getContext().getSystemService(WindowManager.class),
|
||||
new Handler(ctx.getContext().getMainLooper())
|
||||
);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private void onMagnificationThumbnailFeatureFlagChanged() {
|
||||
synchronized (mLock) {
|
||||
for (int i = 0; i < mDisplays.size(); i++) {
|
||||
onMagnificationThumbnailFeatureFlagChanged(mDisplays.keyAt(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onMagnificationThumbnailFeatureFlagChanged(int displayId) {
|
||||
synchronized (mLock) {
|
||||
final DisplayMagnification display = mDisplays.get(displayId);
|
||||
if (display == null) {
|
||||
return;
|
||||
}
|
||||
display.onThumbnailFeatureFlagChanged();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Start tracking the magnification region for services that control magnification and the
|
||||
* magnification gesture handler.
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2023 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.server.accessibility.magnification;
|
||||
|
||||
import android.provider.DeviceConfig;
|
||||
|
||||
/**
|
||||
* Encapsulates the feature flags for magnification thumbnail. {@see DeviceConfig}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class MagnificationThumbnailFeatureFlag extends MagnificationFeatureFlagBase {
|
||||
|
||||
private static final String NAMESPACE = DeviceConfig.NAMESPACE_ACCESSIBILITY;
|
||||
private static final String FEATURE_NAME_ENABLE_MAGNIFIER_THUMBNAIL =
|
||||
"enable_magnifier_thumbnail";
|
||||
|
||||
@Override
|
||||
String getNamespace() {
|
||||
return NAMESPACE;
|
||||
}
|
||||
|
||||
@Override
|
||||
String getFeatureName() {
|
||||
return FEATURE_NAME_ENABLE_MAGNIFIER_THUMBNAIL;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean getDefaultValue() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user