Use SetupWizardLayout for the screens that show in Settings to get better visual consistency and new features like showing a progress bar in list view. Bug: 19594252 Change-Id: I53ab17a4c2d922a362e3762f1cdccb512f7d8f6e
150 lines
5.0 KiB
Java
150 lines
5.0 KiB
Java
/*
|
|
* Copyright (C) 2014 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.settings.wifi;
|
|
|
|
import android.app.Dialog;
|
|
import android.net.wifi.WifiConfiguration;
|
|
import android.os.Bundle;
|
|
import android.view.LayoutInflater;
|
|
import android.view.Menu;
|
|
import android.view.MenuInflater;
|
|
import android.view.View;
|
|
import android.view.View.OnClickListener;
|
|
import android.view.ViewGroup;
|
|
import android.widget.ListView;
|
|
import android.widget.TextView;
|
|
|
|
import com.android.settings.R;
|
|
import com.android.settings.SetupWizardUtils;
|
|
import com.android.setupwizardlib.SetupWizardListLayout;
|
|
import com.android.setupwizardlib.view.NavigationBar;
|
|
|
|
/**
|
|
* This customized version of WifiSettings is shown to the user only during Setup Wizard. Menu
|
|
* is not shown, clicking on an access point will auto-advance to the next screen (once connected),
|
|
* and, if the user opts to skip ahead without a wifi connection, a warning message alerts of
|
|
* possible carrier data charges or missing software updates.
|
|
*/
|
|
public class WifiSettingsForSetupWizard extends WifiSettings {
|
|
|
|
private static final String TAG = "WifiSettingsForSetupWizard";
|
|
|
|
private View mAddOtherNetworkItem;
|
|
private TextView mEmptyFooter;
|
|
private boolean mListLastEmpty = false;
|
|
|
|
@Override
|
|
public View onCreateView(final LayoutInflater inflater, ViewGroup container,
|
|
Bundle savedInstanceState) {
|
|
final SetupWizardListLayout layout = (SetupWizardListLayout) inflater.inflate(
|
|
R.layout.setup_wifi_layout, container, false);
|
|
final ListView list = layout.getListView();
|
|
|
|
mAddOtherNetworkItem = inflater.inflate(R.layout.setup_wifi_add_network, list, false);
|
|
list.addFooterView(mAddOtherNetworkItem, null, true);
|
|
mAddOtherNetworkItem.setOnClickListener(new OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if (mWifiManager.isWifiEnabled()) {
|
|
onAddNetworkPressed();
|
|
}
|
|
}
|
|
});
|
|
|
|
final NavigationBar navigationBar = layout.getNavigationBar();
|
|
if (navigationBar != null) {
|
|
WifiSetupActivity activity = (WifiSetupActivity) getActivity();
|
|
activity.onNavigationBarCreated(navigationBar);
|
|
}
|
|
|
|
return layout;
|
|
}
|
|
|
|
@Override
|
|
public void onActivityCreated(Bundle savedInstanceState) {
|
|
super.onActivityCreated(savedInstanceState);
|
|
|
|
if (hasNextButton()) {
|
|
getNextButton().setVisibility(View.GONE);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onAccessPointsChanged() {
|
|
super.onAccessPointsChanged();
|
|
updateFooter(getPreferenceScreen().getPreferenceCount() == 0);
|
|
}
|
|
|
|
@Override
|
|
public void registerForContextMenu(View view) {
|
|
// Suppressed during setup wizard
|
|
}
|
|
|
|
@Override
|
|
/* package */ WifiEnabler createWifiEnabler() {
|
|
// Not shown during setup wizard
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
|
// Do not show menu during setup wizard
|
|
}
|
|
|
|
@Override
|
|
public Dialog onCreateDialog(int dialogId) {
|
|
final Dialog dialog = super.onCreateDialog(dialogId);
|
|
SetupWizardUtils.applyImmersiveFlags(dialog);
|
|
return dialog;
|
|
}
|
|
|
|
@Override
|
|
protected void connect(final WifiConfiguration config) {
|
|
WifiSetupActivity activity = (WifiSetupActivity) getActivity();
|
|
activity.networkSelected();
|
|
super.connect(config);
|
|
}
|
|
|
|
@Override
|
|
protected void connect(final int networkId) {
|
|
WifiSetupActivity activity = (WifiSetupActivity) getActivity();
|
|
activity.networkSelected();
|
|
super.connect(networkId);
|
|
}
|
|
|
|
@Override
|
|
protected TextView initEmptyView() {
|
|
final LayoutInflater inflater = LayoutInflater.from(getActivity());
|
|
mEmptyFooter = (TextView) inflater.inflate(R.layout.setup_wifi_empty, getListView(), false);
|
|
return mEmptyFooter;
|
|
}
|
|
|
|
protected void updateFooter(boolean isEmpty) {
|
|
if (isEmpty != mListLastEmpty) {
|
|
final ListView list = getListView();
|
|
if (isEmpty) {
|
|
list.removeFooterView(mAddOtherNetworkItem);
|
|
list.addFooterView(mEmptyFooter, null, false);
|
|
} else {
|
|
list.removeFooterView(mEmptyFooter);
|
|
list.addFooterView(mAddOtherNetworkItem, null, true);
|
|
}
|
|
mListLastEmpty = isEmpty;
|
|
}
|
|
}
|
|
}
|