diff --git a/res/layout/wifi_dpp_fragment_header.xml b/res/layout/wifi_dpp_fragment_header.xml
index 266a3e892de..20bcd7d77c3 100644
--- a/res/layout/wifi_dpp_fragment_header.xml
+++ b/res/layout/wifi_dpp_fragment_header.xml
@@ -27,13 +27,13 @@
android:paddingEnd="16dp">
diff --git a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
index 8d6aa6813c5..90fb850a25d 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
@@ -17,6 +17,13 @@
package com.android.settings.wifi.dpp;
import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
@@ -26,10 +33,11 @@ import com.android.settings.R;
* to the Wi-Fi network.
*/
public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment {
- @Override
- protected int getLayout() {
- return R.layout.wifi_dpp_add_device_fragment;
- }
+ private ProgressBar mProgressBar;
+ private ImageView mWifiApPictureView;
+ private TextView mChooseDifferentNetwork;
+ private Button mButtonLeft;
+ private Button mButtonRight;
@Override
public int getMetricsCategory() {
@@ -37,7 +45,20 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment {
}
@Override
- public void onActivityCreated (Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
+ public final View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.wifi_dpp_add_device_fragment, container,
+ /* attachToRoot */ false);
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ mProgressBar = view.findViewById(R.id.progress_bar);
+ mWifiApPictureView = view.findViewById(R.id.wifi_ap_picture_view);
+ mChooseDifferentNetwork = view.findViewById(R.id.choose_different_network);
+ mButtonLeft = view.findViewById(R.id.button_left);
+ mButtonRight = view.findViewById(R.id.button_right);
}
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
index 66bc349ebdf..a3e6db3953a 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
@@ -17,6 +17,11 @@
package com.android.settings.wifi.dpp;
import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ListView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
@@ -26,10 +31,9 @@ import com.android.settings.R;
* {@code WifiDppConfiguratorActivity} to start with this fragment to choose a saved Wi-Fi network.
*/
public class WifiDppChooseSavedWifiNetworkFragment extends WifiDppQrCodeBaseFragment {
- @Override
- protected int getLayout() {
- return R.layout.wifi_dpp_choose_saved_wifi_network_fragment;
- }
+ private ListView mSavedWifiNetworkList;
+ private Button mButtonLeft;
+ private Button mButtonRight;
@Override
public int getMetricsCategory() {
@@ -37,7 +41,18 @@ public class WifiDppChooseSavedWifiNetworkFragment extends WifiDppQrCodeBaseFrag
}
@Override
- public void onActivityCreated (Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
+ public final View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.wifi_dpp_choose_saved_wifi_network_fragment, container,
+ /* attachToRoot */ false);
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ mSavedWifiNetworkList = view.findViewById(R.id.saved_wifi_network_list);
+ mButtonLeft = view.findViewById(R.id.button_left);
+ mButtonRight = view.findViewById(R.id.button_right);
}
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
index 50e3ee520b1..4ac5850ee2e 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
@@ -17,25 +17,16 @@
package com.android.settings.wifi.dpp;
import android.os.Bundle;
-import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R;
-/**
- * TODO: b/120645817 should refine code to only initiate UI component in each child fragment.
- */
-
/**
* There are below 4 fragments for Wi-Fi DPP UI flow, to reduce redundant code of UI components,
- * this parent fragment instantiates all UI components and provides setting APIs for them.
+ * this parent fragment instantiates common UI components
*
* {@code WifiDppQrCodeScannerFragment}
* {@code WifiDppQrCodeGeneratorFragment}
@@ -43,135 +34,16 @@ import com.android.settings.R;
* {@code WifiDppAddDeviceFragment}
*/
public abstract class WifiDppQrCodeBaseFragment extends InstrumentedFragment {
- private ImageView mHeaderIcon;
- private TextView mTitle;
- private TextView mDescription;
-
- private TextView mErrorMessage; //optional, for WifiDppQrCodeScannerFragment
- private ListView mSavedWifiNetworkList; //optional, for WifiDppChooseSavedWifiNetworkFragment
- private ProgressBar mProgressBar; //optional, for WifiDppAddDeviceFragment
- private ImageView mWifiApPictureView; //optional, for WifiDppAddDeviceFragment
- private TextView mChooseDifferentNetwork;//optional, for WifiDppAddDeviceFragment
-
- private Button mButtonLeft; //optional, for WifiDppChooseSavedWifiNetworkFragment,
- // WifiDppAddDeviceFragment
- private Button mButtonRight; //optional, for WifiDppChooseSavedWifiNetworkFragment,
- // WifiDppAddDeviceFragment
-
- abstract protected int getLayout();
+ protected ImageView mHeaderIcon;
+ protected TextView mTitle;
+ protected TextView mSummary;
@Override
- public final void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
- @Override
- public final View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(getLayout(), container, false);
- initView(view);
- return view;
- }
-
- private void initView(View view) {
- mHeaderIcon = view.findViewById(R.id.header_icon);
- mTitle = view.findViewById(R.id.title);
- mDescription = view.findViewById(R.id.description);
- mErrorMessage = view.findViewById(R.id.error_message);
-
- mSavedWifiNetworkList = view.findViewById(R.id.saved_wifi_network_list);
-
- mProgressBar = view.findViewById(R.id.progress_bar);
- mWifiApPictureView = view.findViewById(R.id.wifi_ap_picture_view);
- mChooseDifferentNetwork = view.findViewById(R.id.choose_different_network);
-
- mButtonLeft = view.findViewById(R.id.button_left);
- mButtonRight = view.findViewById(R.id.button_right);
- }
-
- protected void setHeaderIconImageResource(int resId) {
- mHeaderIcon.setImageResource(resId);
- }
-
- protected void setTitle(String title) {
- mTitle.setText(title);
- }
-
- protected void setDescription(String description) {
- mDescription.setText(description);
- }
-
- /** optional, for WifiDppQrCodeScannerFragment */
- protected void showErrorMessage(boolean show) {
- if (mErrorMessage != null) {
- mErrorMessage.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
- }
- }
-
- /** optional, for WifiDppQrCodeScannerFragment */
- protected void setErrorMessage(String errorMessage) {
- if (mErrorMessage != null) {
- mErrorMessage.setText(errorMessage);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void setLeftButtonText(String text) {
- if (mButtonLeft != null) {
- mButtonLeft.setText(text);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void setRightButtonText(String text) {
- if (mButtonRight != null) {
- mButtonRight.setText(text);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void hideLeftButton() {
- if (mButtonLeft != null) {
- mButtonLeft.setVisibility(View.INVISIBLE);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void hideRightButton() {
- if (mButtonRight != null) {
- mButtonRight.setVisibility(View.INVISIBLE);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void setLeftButtonOnClickListener(View.OnClickListener listener) {
- if (mButtonLeft != null) {
- mButtonLeft.setOnClickListener(listener);
- }
- }
-
- /**
- * optional, for WifiDppChooseSavedWifiNetworkFragment,
- * WifiDppAddDeviceFragment
- */
- protected void setRightButtonOnClickListener(View.OnClickListener listener) {
- if (mButtonRight != null) {
- mButtonRight.setOnClickListener(listener);
- }
+ mHeaderIcon = view.findViewById(android.R.id.icon);
+ mTitle = view.findViewById(android.R.id.title);
+ mSummary = view.findViewById(android.R.id.summary);
}
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index 02ebffcce07..f4bbcc10b85 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -21,10 +21,12 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ImageView;
import com.android.internal.logging.nano.MetricsProto;
@@ -43,11 +45,6 @@ public class WifiDppQrCodeGeneratorFragment extends WifiDppQrCodeBaseFragment {
private ImageView mQrCodeView;
private String mQrCode;
- @Override
- protected int getLayout() {
- return R.layout.wifi_dpp_qrcode_generator_fragment;
- }
-
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR;
@@ -63,25 +60,12 @@ public class WifiDppQrCodeGeneratorFragment extends WifiDppQrCodeBaseFragment {
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- setHeaderIconImageResource(R.drawable.ic_qrcode_24dp);
- WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity())
- .getWifiNetworkConfig();
- if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) {
- throw new IllegalArgumentException("Invalid Wi-Fi network for configuring");
- }
- setTitle(getString(R.string.wifi_dpp_share_wifi));
- setDescription(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
- wifiNetworkConfig.getSsid()));
-
setHasOptionsMenu(true);
- ActionBar actionBar = getActivity().getActionBar();
+ final ActionBar actionBar = getActivity().getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.show();
}
-
- mQrCode = wifiNetworkConfig.getQrCode();
- setQrCode();
}
@Override
@@ -118,10 +102,31 @@ public class WifiDppQrCodeGeneratorFragment extends WifiDppQrCodeBaseFragment {
}
}
+ @Override
+ public final View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.wifi_dpp_qrcode_generator_fragment, container,
+ /* attachToRoot */ false);
+ }
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+
mQrCodeView = view.findViewById(R.id.qrcode_view);
+
+ mHeaderIcon.setImageResource(R.drawable.ic_qrcode_24dp);
+ WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity())
+ .getWifiNetworkConfig();
+ if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) {
+ throw new IllegalStateException("Invalid Wi-Fi network for configuring");
+ }
+ mTitle.setText(R.string.wifi_dpp_share_wifi);
+ mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
+ wifiNetworkConfig.getSsid()));
+
+ mQrCode = wifiNetworkConfig.getQrCode();
+ setQrCode();
}
private void setQrCode() {
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
index 4ec19a695c7..c7c1461a62c 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
@@ -16,7 +16,6 @@
package com.android.settings.wifi.dpp;
-import android.annotation.Nullable;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
@@ -29,11 +28,14 @@ import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Size;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.TextureView;
import android.view.TextureView.SurfaceTextureListener;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
@@ -67,6 +69,7 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
private QrCamera mCamera;
private TextureView mTextureView;
private QrDecorateView mDecorateView;
+ private TextView mErrorMessage;
/** true if the fragment working for configurator, false enrollee*/
private final boolean mIsConfiguratorMode;
@@ -77,11 +80,6 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
/** QR code data scanned by camera */
private WifiQrCode mWifiQrCode;
- @Override
- protected int getLayout() {
- return R.layout.wifi_dpp_qrcode_scanner_fragment;
- }
-
@Override
public int getMetricsCategory() {
if (mIsConfiguratorMode) {
@@ -127,37 +125,11 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- setHeaderIconImageResource(R.drawable.ic_scan_24dp);
-
- if (mIsConfiguratorMode) {
- setTitle(getString(R.string.wifi_dpp_add_device_to_network));
-
- WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity())
- .getWifiNetworkConfig();
- if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) {
- throw new IllegalArgumentException("Invalid Wi-Fi network for configuring");
- }
- setDescription(getString(R.string.wifi_dpp_center_qr_code, wifiNetworkConfig.getSsid()));
- } else {
- setTitle(getString(R.string.wifi_dpp_scan_qr_code));
-
- String description;
- if (TextUtils.isEmpty(mSsid)) {
- description = getString(R.string.wifi_dpp_scan_qr_code_join_unknown_network, mSsid);
- } else {
- description = getString(R.string.wifi_dpp_scan_qr_code_join_network, mSsid);
- }
- setDescription(description);
- }
-
final ActionBar actionBar = getActivity().getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.show();
}
-
- setErrorMessage(getString(R.string.wifi_dpp_could_not_detect_valid_qr_code));
- showErrorMessage(false);
}
@Override
@@ -177,13 +149,45 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
}
@Override
- public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ public final View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.wifi_dpp_qrcode_scanner_fragment, container,
+ /* attachToRoot */ false);
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mTextureView = (TextureView) view.findViewById(R.id.preview_view);
mTextureView.setSurfaceTextureListener(this);
mDecorateView = (QrDecorateView) view.findViewById(R.id.decorate_view);
+
+ mHeaderIcon.setImageResource(R.drawable.ic_scan_24dp);
+ if (mIsConfiguratorMode) {
+ mTitle.setText(R.string.wifi_dpp_add_device_to_network);
+
+ WifiNetworkConfig wifiNetworkConfig = ((WifiNetworkConfig.Retriever) getActivity())
+ .getWifiNetworkConfig();
+ if (!WifiNetworkConfig.isValidConfig(wifiNetworkConfig)) {
+ throw new IllegalStateException("Invalid Wi-Fi network for configuring");
+ }
+ mSummary.setText(getString(R.string.wifi_dpp_center_qr_code,
+ wifiNetworkConfig.getSsid()));
+ } else {
+ mTitle.setText(R.string.wifi_dpp_scan_qr_code);
+
+ String description;
+ if (TextUtils.isEmpty(mSsid)) {
+ description = getString(R.string.wifi_dpp_scan_qr_code_join_unknown_network, mSsid);
+ } else {
+ description = getString(R.string.wifi_dpp_scan_qr_code_join_network, mSsid);
+ }
+ mSummary.setText(description);
+ }
+
+ mErrorMessage = view.findViewById(R.id.error_message);
}
@Override
@@ -321,9 +325,8 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
}
}
- @Override
public void showErrorMessage(boolean show) {
- super.showErrorMessage(show);
+ mErrorMessage.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
if (show) {
mHandler.removeMessages(MESSAGE_HIDE_ERROR_MESSAGE);