Retrieve WifiDppQrGeneratorFragment at runtime.
* Add getWifiDppQrCodeGeneratorFragment() in WifiFeatureProvider * WifiDppConfiguratorActivity calls from the FeatureFactory to get WifiDppQrCodeGeneratorFragment instance * Use a flag to guard this behaviour * Updated a few private variables of WifiDppQrCodeGeneratorFragment to protected so I can access them in derived classes. Bug: b/338891273 Settings Intake: b/329012096 Test: manual test, override the flag locally, and check I can switch to overriden implementation. Flag: com.android.settings.flags.enable_wifi_sharing_runtime_fragment Change-Id: I715bf89bd9be221f06914e87629c76bf7a2f743f
This commit is contained in:
12
aconfig/settings_wifi_flag_declarations.aconfig
Normal file
12
aconfig/settings_wifi_flag_declarations.aconfig
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package: "com.android.settings.flags"
|
||||||
|
container: "system_ext"
|
||||||
|
|
||||||
|
# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
|
||||||
|
|
||||||
|
flag {
|
||||||
|
name: "enable_wifi_sharing_runtime_fragment"
|
||||||
|
namespace: "prism_qr"
|
||||||
|
description: "Use WifiFeatureProvider to get the instance of WifiDppQrCodeGeneratorFragment."
|
||||||
|
bug: "329012096"
|
||||||
|
}
|
||||||
|
|
@@ -35,6 +35,8 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.flags.Flags;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -236,7 +238,12 @@ public class WifiDppConfiguratorActivity extends WifiDppBaseActivity implements
|
|||||||
WifiDppUtils.TAG_FRAGMENT_QR_CODE_GENERATOR);
|
WifiDppUtils.TAG_FRAGMENT_QR_CODE_GENERATOR);
|
||||||
|
|
||||||
if (fragment == null) {
|
if (fragment == null) {
|
||||||
fragment = new WifiDppQrCodeGeneratorFragment();
|
if (Flags.enableWifiSharingRuntimeFragment()) {
|
||||||
|
fragment = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
|
||||||
|
.getWifiDppQrCodeGeneratorFragment();
|
||||||
|
} else {
|
||||||
|
fragment = new WifiDppQrCodeGeneratorFragment();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (fragment.isVisible()) {
|
if (fragment.isVisible()) {
|
||||||
return;
|
return;
|
||||||
|
@@ -56,7 +56,7 @@ public class WifiDppQrCodeGeneratorFragment extends WifiDppQrCodeBaseFragment {
|
|||||||
private static final String TAG = "WifiDppQrCodeGeneratorFragment";
|
private static final String TAG = "WifiDppQrCodeGeneratorFragment";
|
||||||
|
|
||||||
private ImageView mQrCodeView;
|
private ImageView mQrCodeView;
|
||||||
private String mQrCode;
|
protected String mQrCode;
|
||||||
|
|
||||||
private static final String CHIP_LABEL_METADATA_KEY = "android.service.chooser.chip_label";
|
private static final String CHIP_LABEL_METADATA_KEY = "android.service.chooser.chip_label";
|
||||||
private static final String CHIP_ICON_METADATA_KEY = "android.service.chooser.chip_icon";
|
private static final String CHIP_ICON_METADATA_KEY = "android.service.chooser.chip_icon";
|
||||||
@@ -258,7 +258,7 @@ public class WifiDppQrCodeGeneratorFragment extends WifiDppQrCodeBaseFragment {
|
|||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setQrCode() {
|
protected void setQrCode() {
|
||||||
try {
|
try {
|
||||||
final int qrcodeSize = getContext().getResources().getDimensionPixelSize(
|
final int qrcodeSize = getContext().getResources().getDimensionPixelSize(
|
||||||
R.dimen.qrcode_size);
|
R.dimen.qrcode_size);
|
||||||
|
@@ -27,6 +27,7 @@ import androidx.lifecycle.ViewModelProvider;
|
|||||||
import androidx.lifecycle.ViewModelStoreOwner;
|
import androidx.lifecycle.ViewModelStoreOwner;
|
||||||
|
|
||||||
import com.android.settings.wifi.details.WifiNetworkDetailsViewModel;
|
import com.android.settings.wifi.details.WifiNetworkDetailsViewModel;
|
||||||
|
import com.android.settings.wifi.dpp.WifiDppQrCodeGeneratorFragment;
|
||||||
import com.android.settings.wifi.repository.SharedConnectivityRepository;
|
import com.android.settings.wifi.repository.SharedConnectivityRepository;
|
||||||
import com.android.settings.wifi.repository.WifiHotspotRepository;
|
import com.android.settings.wifi.repository.WifiHotspotRepository;
|
||||||
import com.android.settings.wifi.tether.WifiHotspotSecurityViewModel;
|
import com.android.settings.wifi.tether.WifiHotspotSecurityViewModel;
|
||||||
@@ -146,6 +147,15 @@ public class WifiFeatureProvider {
|
|||||||
return viewModel;
|
return viewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets an instance of WifiDppQrCodeGeneratorFragment
|
||||||
|
*/
|
||||||
|
public WifiDppQrCodeGeneratorFragment getWifiDppQrCodeGeneratorFragment() {
|
||||||
|
WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment();
|
||||||
|
verboseLog(TAG, "getWifiDppQrCodeGeneratorFragment():" + fragment);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a {@link Log#VERBOSE} log message.
|
* Send a {@link Log#VERBOSE} log message.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user