Add Wifi Setup screen for Setup Wizard with XL size screen.

* Add WifiSettingsForSetupWizardXL as a new Activity
The activity has WifiSettings fragment in it. It also contains
several buttons, texts around the fragment.

* Making configuration UI part of Preference list.
In Wifi Setup for Setup Wizard XL, WifiSettings fragment lets
a UI for configuring access points shown inside a
PregerenceCategory object, while it has been shown as Dialog.

To achieve this action, WifiDialog is decomposed into two parts:
- WifiConfigUiBase (Mainly UI part)
- WifiConfigController (Mainly Wifi controller part)

All codes for wifi configuration in WifiDialog is now in
WifiConfigController, which is reused from
WifiConfigPreference.

* Misc stuff
- Remove AccessPoint#compareTo(). Instead,
  AccessPoint.AccessPointComparater should be used when needed.

Change-Id: I520d690d3301837d32f91dad54a973a379ce1989
This commit is contained in:
Daisuke Miyakawa
2010-08-27 10:04:08 -07:00
parent 0b4dc9fd6f
commit d36699282c
18 changed files with 1537 additions and 426 deletions

View File

@@ -0,0 +1,129 @@
/*
* Copyright (C) 2010 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.content.Context;
import android.content.DialogInterface;
import android.preference.Preference;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.android.settings.R;
/**
* Preference letting users modify a setting for Wifi network. This work as an alternative UI
* for {@link WifiDialog} without shouwing popup Dialog.
*/
public class WifiConfigPreference extends Preference implements WifiConfigUiBase {
private WifiSettings mWifiSettings;
private View mView;
private final DialogInterface.OnClickListener mListener;
private WifiConfigController mController;
private AccessPoint mAccessPoint;
private boolean mEdit;
private LayoutInflater mInflater;
public WifiConfigPreference(WifiSettings wifiSettings,
DialogInterface.OnClickListener listener,
AccessPoint accessPoint, boolean edit) {
super(wifiSettings.getActivity());
mWifiSettings = wifiSettings;
setLayoutResource(R.layout.wifi_config_preference);
mListener = listener;
mAccessPoint = accessPoint;
mEdit = edit;
mInflater = (LayoutInflater)
wifiSettings.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
protected View onCreateView(ViewGroup parent) {
// Called every time the list is created.
if (mView != null) {
// TODO: we need to re-forcus something.
return mView;
}
mView = mInflater.inflate(getLayoutResource(), parent, false);
mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mListener);
return mView;
}
@Override
public WifiConfigController getController() {
return mController;
}
public View findViewById(int id) {
return mView.findViewById(id);
}
public AccessPoint getAccessPoint() {
return mAccessPoint;
}
@Override
public boolean isEdit() {
return mEdit;
}
@Override
public LayoutInflater getLayoutInflater() {
return mInflater;
}
@Override
public Button getSubmitButton() {
return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_connect);
}
@Override
public Button getForgetButton() {
return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget);
}
@Override
public Button getCancelButton() {
return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_cancel);
}
@Override
public void setSubmitButton(CharSequence text) {
final Button button = (Button)
mWifiSettings.getActivity().findViewById(R.id.wifi_setup_connect);
button.setVisibility(View.VISIBLE);
// test
mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget).setVisibility(View.GONE);
}
@Override
public void setForgetButton(CharSequence text) {
final Button button = (Button)
mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget);
button.setVisibility(View.VISIBLE);
}
@Override
public void setCancelButton(CharSequence text) {
final Button button = (Button)
mWifiSettings.getActivity().findViewById(R.id.wifi_setup_cancel);
button.setVisibility(View.VISIBLE);
}
}