[Network Connection] Implement toasting after wifi is connected
When wifi is connected (onUserSelectionConnectSuccess), making a toast infos user and closed the dialog. Bug: 123160958 Test: atest NetworkRequestDialogFragmentTest Change-Id: I85ab648188018773e1f76541d18903c733bc3e69
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
@@ -36,6 +37,7 @@ import android.widget.ArrayAdapter;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -65,15 +67,9 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
/** Message sent to us to stop scanning wifi and pop up timeout dialog. */
|
||||
private static final int MESSAGE_STOP_SCAN_WIFI_LIST = 0;
|
||||
|
||||
/** Message sent to us to finish activity. */
|
||||
private static final int MESSAGE_FINISH_ACTIVITY = 1;
|
||||
|
||||
/** Spec defines there should be 5 wifi ap on the list at most. */
|
||||
private static final int MAX_NUMBER_LIST_ITEM = 5;
|
||||
|
||||
/** Holding time to let user be aware that selected wifi ap is connected */
|
||||
private static final int DELAY_TIME_USER_AWARE_CONNECTED_MS = 1 * 1000;
|
||||
|
||||
/** Delayed time to stop scanning wifi. */
|
||||
private static final int DELAY_TIME_STOP_SCAN_MS = 30 * 1000;
|
||||
|
||||
@@ -184,7 +180,6 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
mHandler.removeMessages(MESSAGE_FINISH_ACTIVITY);
|
||||
if (mFilterWifiTracker != null) {
|
||||
mFilterWifiTracker.onDestroy();
|
||||
mFilterWifiTracker = null;
|
||||
@@ -215,10 +210,7 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
switch (msg.what) {
|
||||
case MESSAGE_STOP_SCAN_WIFI_LIST:
|
||||
removeMessages(MESSAGE_STOP_SCAN_WIFI_LIST);
|
||||
stopScanningAndMaybePopErrorDialog(ERROR_DIALOG_TYPE.TIME_OUT);
|
||||
break;
|
||||
case MESSAGE_FINISH_ACTIVITY:
|
||||
stopScanningAndMaybePopErrorDialog(/* ERROR_DIALOG_TYPE */ null);
|
||||
stopScanningAndPopErrorDialog(ERROR_DIALOG_TYPE.TIME_OUT);
|
||||
break;
|
||||
default:
|
||||
// Do nothing.
|
||||
@@ -227,29 +219,21 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
}
|
||||
};
|
||||
|
||||
protected void stopScanningAndMaybePopErrorDialog(ERROR_DIALOG_TYPE type) {
|
||||
protected void stopScanningAndPopErrorDialog(ERROR_DIALOG_TYPE type) {
|
||||
// Dismisses current dialog.
|
||||
final Dialog dialog = getDialog();
|
||||
if (dialog != null && dialog.isShowing()) {
|
||||
dismiss();
|
||||
}
|
||||
|
||||
if (type == null) {
|
||||
// If no error, finishes activity.
|
||||
if (getActivity() != null) {
|
||||
getActivity().finish();
|
||||
}
|
||||
} else {
|
||||
// Throws error dialog.
|
||||
final NetworkRequestErrorDialogFragment fragment = NetworkRequestErrorDialogFragment
|
||||
.newInstance();
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putSerializable(NetworkRequestErrorDialogFragment.DIALOG_TYPE, type);
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(getActivity().getSupportFragmentManager(),
|
||||
NetworkRequestDialogFragment.class.getSimpleName());
|
||||
}
|
||||
|
||||
// Throws error dialog.
|
||||
final NetworkRequestErrorDialogFragment fragment = NetworkRequestErrorDialogFragment
|
||||
.newInstance();
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putSerializable(NetworkRequestErrorDialogFragment.DIALOG_TYPE, type);
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(getActivity().getSupportFragmentManager(),
|
||||
NetworkRequestDialogFragment.class.getSimpleName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -306,7 +290,7 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
|
||||
@Override
|
||||
public void onAbort() {
|
||||
stopScanningAndMaybePopErrorDialog(ERROR_DIALOG_TYPE.ABORT);
|
||||
stopScanningAndPopErrorDialog(ERROR_DIALOG_TYPE.ABORT);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -354,24 +338,17 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp
|
||||
|
||||
@Override
|
||||
public void onUserSelectionConnectSuccess(WifiConfiguration wificonfiguration) {
|
||||
// Removes the progress icon.
|
||||
final Dialog dialog = getDialog();
|
||||
if (dialog != null) {
|
||||
final View view = dialog.findViewById(R.id.network_request_title_progress);
|
||||
if (view != null) {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) {
|
||||
Toast.makeText(activity, R.string.network_connection_connect_successful,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
activity.finish();
|
||||
}
|
||||
|
||||
// Posts delay to finish self since connection is success.
|
||||
mHandler.removeMessages(MESSAGE_STOP_SCAN_WIFI_LIST);
|
||||
mHandler.sendEmptyMessageDelayed(MESSAGE_FINISH_ACTIVITY,
|
||||
DELAY_TIME_USER_AWARE_CONNECTED_MS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserSelectionConnectFailure(WifiConfiguration wificonfiguration) {
|
||||
stopScanningAndMaybePopErrorDialog(ERROR_DIALOG_TYPE.ABORT);
|
||||
stopScanningAndPopErrorDialog(ERROR_DIALOG_TYPE.ABORT);
|
||||
}
|
||||
|
||||
private final class FilterWifiTracker {
|
||||
|
Reference in New Issue
Block a user