diff options
author | Russell Brenner <russellbrenner@google.com> | 2012-05-17 12:49:15 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-17 12:49:15 -0700 |
commit | 1c0a8f953ba85bd21660a44dbbf891f313367196 (patch) | |
tree | 60fc67e50f72d42bc4c08c679a0660fc5a25c4ff | |
parent | 70b599983967b68894a9c41df2279424f6ab3fef (diff) | |
parent | fc86669031e9c11efa688cbf95e53c77dbc0a03d (diff) | |
download | packages_apps_settings-1c0a8f953ba85bd21660a44dbbf891f313367196.zip packages_apps_settings-1c0a8f953ba85bd21660a44dbbf891f313367196.tar.gz packages_apps_settings-1c0a8f953ba85bd21660a44dbbf891f313367196.tar.bz2 |
Merge "Wifi select screen redlines" into jb-dev
-rw-r--r-- | AndroidManifest.xml | 5 | ||||
-rw-r--r-- | res/layout/setup_preference.xml | 141 | ||||
-rwxr-xr-x | res/values-sw600dp/dimens.xml | 5 | ||||
-rw-r--r-- | res/values/colors.xml | 2 | ||||
-rwxr-xr-x | res/values/dimens.xml | 11 | ||||
-rw-r--r-- | res/values/styles.xml | 24 | ||||
-rw-r--r-- | src/com/android/settings/wifi/WifiSettings.java | 80 |
7 files changed, 264 insertions, 4 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9dccb4d..d73d2f6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -145,8 +145,9 @@ <activity android:name=".wifi.WifiPickerActivity" android:label="@string/wifi_setup_wizard_title" - android:clearTaskOnLaunch="true" - android:icon="@drawable/empty_icon"> + android:theme="@style/setup_wizard_theme" + android:icon="@drawable/empty_icon" + android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.net.wifi.PICK_WIFI_NETWORK" /> diff --git a/res/layout/setup_preference.xml b/res/layout/setup_preference.xml new file mode 100644 index 0000000..93eb9df --- /dev/null +++ b/res/layout/setup_preference.xml @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2012, 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. +*/ +--> +<view + xmlns:android="http://schemas.android.com/apk/res/android" + class="com.android.settings.wifi.WifiSettings$ProportionalOuterFrame" + android:layout_height="match_parent" + android:layout_width="match_parent"> + + <RelativeLayout + android:id="@+id/title_area" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:gravity="bottom"> + + <LinearLayout + android:id="@+id/button_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignBottom="@id/title" + android:gravity="bottom" + android:orientation="horizontal"> + <TextView + android:id="@+id/title" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1.0" + style="@style/SetupTitle" + android:text="@string/wifi_setup_wizard_title" + android:gravity="bottom" /> + + <ImageButton + android:id="@+id/add_network" + android:layout_width="@dimen/setup_button_size" + android:layout_height="@dimen/setup_button_size" + android:layout_marginLeft="8dip" + android:layout_marginBottom="8dip" + android:src="@drawable/ic_menu_add" + android:background="?android:attr/actionBarItemBackground" /> + + <ImageButton + android:id="@+id/wps_push" + android:layout_width="@dimen/setup_button_size" + android:layout_height="@dimen/setup_button_size" + android:layout_marginLeft="8dip" + android:layout_marginRight="8dip" + android:layout_marginBottom="8dip" + android:src="@drawable/ic_wps" + android:background="?android:attr/actionBarItemBackground" /> + + </LinearLayout> + + <!-- Divider --> + <View + android:id="@+id/top_divider" + style="@style/TopDivider" + android:layout_below="@id/button_bar" /> + + </RelativeLayout> + + <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@id/title_area" + android:background="@android:color/transparent" + android:orientation="vertical" > + + <ListView + android:id="@android:id/list" + android:layout_width="match_parent" + android:layout_height="0px" + android:layout_weight="1" + android:cacheColorHint="@android:color/transparent" + android:clipToPadding="false" + android:drawSelectorOnTop="false" + android:paddingTop="0dip" + android:scrollbarAlwaysDrawVerticalTrack="true" /> + + <TextView + android:id="@android:id/empty" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:visibility="gone" /> + + <RelativeLayout + android:id="@+id/button_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="0" + android:visibility="gone" > + + <Button + android:id="@+id/back_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_margin="5dip" + android:text="@string/wifi_setup_back" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:orientation="horizontal" > + + <Button + android:id="@+id/skip_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:text="@string/wifi_setup_skip" + android:visibility="gone" /> + + <Button + android:id="@+id/next_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:text="@string/wifi_setup_next" /> + </LinearLayout> + </RelativeLayout> + </LinearLayout> +</view>
\ No newline at end of file diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml index 1fb7e59..aad21a0 100755 --- a/res/values-sw600dp/dimens.xml +++ b/res/values-sw600dp/dimens.xml @@ -25,4 +25,9 @@ <dimen name="content_margin_left">16dip</dimen> <dimen name="description_margin_top">26dip</dimen> <dimen name="crypt_clock_size">120sp</dimen> + <dimen name="setup_title_size">60sp</dimen> + <item type="dimen" name="setup_title_height">20%</item> + <item type="dimen" name="setup_border_width">10%</item> + <dimen name="setup_margin_bottom">0dip</dimen> + <dimen name="setup_button_size">48dip</dimen> </resources> diff --git a/res/values/colors.xml b/res/values/colors.xml index 2bba937..f81d614 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -32,4 +32,6 @@ <color name="divider_color">#20ffffff</color> <color name="title_color">@android:color/holo_blue_light</color> + <color name="setup_divider_color">#333333</color> + </resources>
\ No newline at end of file diff --git a/res/values/dimens.xml b/res/values/dimens.xml index ba69f13..f0587c3 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -36,4 +36,15 @@ <dimen name="volume_seekbar_side_margin">8dip</dimen> <dimen name="crypt_clock_size">100sp</dimen> + + <item type="dimen" name="setup_title_height">15%</item> + <item type="dimen" name="setup_border_width">5%</item> + <dimen name="setup_margin_bottom">0dip</dimen> + <dimen name="setup_title_size">25sp</dimen> + <dimen name="setup_button_size">32dip</dimen> + + <dimen name="divider_height">3dip</dimen> + <dimen name="divider_margin_top">6dip</dimen> + <dimen name="divider_margin_bottom">7dip</dimen> + </resources> diff --git a/res/values/styles.xml b/res/values/styles.xml index 6ee99b3..2370683 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -82,6 +82,30 @@ <style name="Theme.CreateShortCut" parent="android:Theme.Holo.DialogWhenLarge"> </style> + <style name="setup_wizard_theme" parent="android:Theme.Holo.NoActionBar"> + <item name="android:windowSoftInputMode">adjustPan</item> + </style> + + <!-- We'd like to have this as 16dip hight including paddingTop/paddingBottom to + be consistent with ProgressBar --> + <style name="TopDivider"> + <item name="android:layout_width">match_parent</item> + <item name="android:layout_height">@dimen/divider_height</item> + <item name="android:background">@color/setup_divider_color</item> + <item name="android:focusable">false</item> + <item name="android:clickable">false</item> + <item name="android:layout_marginTop">@dimen/divider_margin_top</item> + <item name="android:layout_marginBottom">@dimen/divider_margin_bottom</item> + </style> + + <style name="SetupTitle"> + <item name="android:fontFamily">sans-serif-light</item> + <item name="android:textSize">@dimen/setup_title_size</item> + <item name="android:textColor">@color/title_color</item> + <item name="android:clickable">false</item> + <item name="android:longClickable">false</item> + </style> + <style name="wifi_item"> <item name="android:layout_width">200dip</item> <item name="android:layout_height">wrap_content</item> diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 00e0bc5..ac7f321 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -20,7 +20,6 @@ import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID; import android.app.ActionBar; import android.app.Activity; -import android.app.AlertDialog; import android.app.Dialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -28,13 +27,13 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.wifi.ScanResult; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WpsInfo; @@ -46,15 +45,21 @@ import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import android.security.Credentials; import android.security.KeyStore; +import android.util.AttributeSet; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Gravity; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.ImageButton; +import android.widget.RelativeLayout; import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; @@ -188,6 +193,37 @@ public class WifiSettings extends SettingsPreferenceFragment } @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + if (mSetupWizardMode) { + View view = inflater.inflate(R.layout.setup_preference, container, false); + ImageButton b1 = (ImageButton) view.findViewById(R.id.wps_push); + if (b1 != null) { + b1.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + showDialog(WPS_PBC_DIALOG_ID); + } + }); + } + ImageButton b2 = (ImageButton) view.findViewById(R.id.add_network); + if (b2 != null) { + b2.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mWifiManager.isWifiEnabled()) { + onAddNetworkPressed(); + } + } + }); + } + return view; + } else { + return super.onCreateView(inflater, container, savedInstanceState); + } + } + + @Override public void onActivityCreated(Bundle savedInstanceState) { // We don't call super.onActivityCreated() here, since it assumes we already set up // Preference (probably in onCreate()), while WifiSettings exceptionally set it up in @@ -904,4 +940,44 @@ public class WifiSettings extends SettingsPreferenceFragment } return R.string.help_url_wifi; } + + /** + * Used as the outer frame of all setup wizard pages that need to adjust their margins based + * on the total size of the available display. (e.g. side margins set to 10% of total width.) + */ + public static class ProportionalOuterFrame extends RelativeLayout { + public ProportionalOuterFrame(Context context) { + super(context); + } + public ProportionalOuterFrame(Context context, AttributeSet attrs) { + super(context, attrs); + } + public ProportionalOuterFrame(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + /** + * Set our margins and title area height proportionally to the available display size + */ + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int parentWidth = MeasureSpec.getSize(widthMeasureSpec); + int parentHeight = MeasureSpec.getSize(heightMeasureSpec); + final Resources resources = getContext().getResources(); + float titleHeight = resources.getFraction(R.dimen.setup_title_height, 1, 1); + float sideMargin = resources.getFraction(R.dimen.setup_border_width, 1, 1); + int bottom = resources.getDimensionPixelSize(R.dimen.setup_margin_bottom); + setPadding( + (int) (parentWidth * sideMargin), + 0, + (int) (parentWidth * sideMargin), + bottom); + View title = findViewById(R.id.title_area); + if (title != null) { + title.setMinimumHeight((int) (parentHeight * titleHeight)); + } + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } + } |