Create XL layouts for incoming, outgoing, exchange

* Create XL fragments (will be shared w/settings)
* Create XL landscape activities
* Create XL portrait activities
* Placeholders left for integration with settings - remove in settings CL
* Quick fixes (non shipping) for phone UX
* Update existing portait next/prev buttons per new wireframes

Bug: 3188940
Change-Id: Ied6e7fd1e968fd6db57607a68dabf7e00ba78ee6
This commit is contained in:
Andy Stadler 2010-11-16 16:40:34 -08:00
parent 15f46cc715
commit e6c6587b04
31 changed files with 1056 additions and 81 deletions

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen holder - landscape - see layout/ for small-screen version --> <!-- Account setup - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Exchange Setup - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_exchange_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Buttons on the right -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/top_divider"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/previous"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
<!-- Fragment on the left containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupExchangeFragment"
android:layout_below="@+id/top_divider"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/next"
android:layout_marginRight="64dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Incoming setup - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_incoming_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Buttons on the right -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/top_divider"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/previous"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
<!-- Fragment on the left containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupIncomingFragment"
android:layout_below="@+id/top_divider"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/next"
android:layout_marginRight="64dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen format - landscape - see layout/ for small-screen version --> <!-- Account Names - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen holder - landscape - see layout/ for small-screen version --> <!-- Account Options - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -61,7 +61,6 @@
<!-- Layout on the left containing the setup info --> <!-- Layout on the left containing the setup info -->
<RelativeLayout <RelativeLayout
android:id="@+id/setup_basics_fragment"
android:layout_below="@+id/top_divider" android:layout_below="@+id/top_divider"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/next" android:layout_toLeftOf="@+id/next"

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Outgoing Setup - XL - landscape - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_outgoing_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Buttons on the right -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/top_divider"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/previous"
android:layout_alignParentRight="true"
android:layout_marginTop="32dip"
android:layout_marginRight="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
<!-- Fragment on the left containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupOutgoingFragment"
android:layout_below="@+id/top_divider"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/next"
android:layout_marginRight="64dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen holder - portrait - see layout/ for small-screen version --> <!-- Account setup - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -57,15 +57,15 @@
<Button <Button
android:id="@+id/manual_setup" android:id="@+id/manual_setup"
android:layout_below="@+id/setup_basics_fragment" android:layout_below="@+id/setup_basics_fragment"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dip" android:layout_marginTop="48dip"
android:layout_alignParentLeft="true"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/account_setup_basics_manual_setup_action" /> android:text="@string/account_setup_basics_manual_setup_action" />
<Button <Button
android:id="@+id/next" android:id="@+id/next"
android:layout_below="@+id/manual_setup" android:layout_below="@+id/setup_basics_fragment"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dip" android:layout_marginTop="48dip"
android:layout_alignParentRight="true"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/next_action" /> android:text="@string/next_action" />

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Exchange Setup - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_exchange_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Fragment on the top containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupExchangeFragment"
android:layout_below="@+id/top_divider"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<!-- Buttons below -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentLeft="true"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentRight="true"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Incoming setup - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_incoming_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Fragment on the top containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupIncomingFragment"
android:layout_below="@+id/top_divider"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<!-- Buttons below -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentLeft="true"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentRight="true"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen format - portrait - see layout/ for small-screen version --> <!-- Account Names - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -87,8 +87,8 @@
<Button <Button
android:id="@+id/next" android:id="@+id/next"
android:layout_below="@+id/names_layout" android:layout_below="@+id/names_layout"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dip" android:layout_marginTop="48dip"
android:layout_alignParentRight="true"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/next_action" /> android:text="@string/next_action" />

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen holder - portrait - see layout/ for small-screen version --> <!-- Account Options - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -43,7 +43,7 @@
<!-- Layout on the top containing the setup info --> <!-- Layout on the top containing the setup info -->
<RelativeLayout <RelativeLayout
android:id="@+id/setup_basics_fragment" android:id="@+id/setup_options_section"
android:layout_below="@+id/top_divider" android:layout_below="@+id/top_divider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -180,14 +180,14 @@
<!-- Buttons below --> <!-- Buttons below -->
<Button <Button
android:id="@+id/previous" android:id="@+id/previous"
android:layout_below="@+id/setup_basics_fragment" android:layout_below="@+id/setup_options_section"
android:layout_marginTop="48dip" android:layout_marginTop="48dip"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/previous_action" /> android:text="@string/previous_action" />
<Button <Button
android:id="@+id/next" android:id="@+id/next"
android:layout_below="@+id/setup_basics_fragment" android:layout_below="@+id/setup_options_section"
android:layout_marginTop="48dip" android:layout_marginTop="48dip"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
style="@style/accountSetupButton" style="@style/accountSetupButton"

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Outgoing Setup - XL - portrait - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dip"
android:paddingLeft="96dip"
android:paddingRight="96dip"
>
<!-- Headline and hairline divider -->
<TextView
android:id="@+id/headline"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_outgoing_headline"
android:textAppearance="@style/accountSetupHeadline" />
<View
android:id="@+id/top_divider"
android:layout_below="@+id/headline"
android:layout_marginBottom="16dip"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<!-- Fragment on the top containing the setup info -->
<fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupOutgoingFragment"
android:layout_below="@+id/top_divider"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<!-- Buttons below -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentLeft="true"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_marginTop="48dip"
android:layout_alignParentRight="true"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>

View File

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Large-screen version - see layout/ for small-screen version --> <!-- Account-type picker - xlarge - see layout/ for small-screen version -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Exchange server settings - xlarge - see layout/ for phone UX variant -->
<!-- TODO add back styles for final appearance -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dip"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:stretchColumns="1" >
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_exchange_username_label" />
<EditText
android:id="@+id/account_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_password_label" />
<EditText
android:id="@+id/account_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_exchange_server_label" />
<!-- Note: we use inputType=textUri as the closest approximation to a server name -->
<EditText
android:id="@+id/account_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textUri"
android:imeOptions="actionDone" />
</TableRow>
<!-- Note, this row is not a TableRow, and it will span the entire table - no columns -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dip"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<CheckBox
android:id="@+id/account_ssl"
android:layout_marginTop="16dip"
android:layout_marginBottom="16dip"
android:layout_marginLeft="32dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_exchange_ssl_label" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
</LinearLayout>
<!-- Note, this row is not a TableRow, and it will span the entire table - no columns -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<CheckBox
android:id="@+id/account_trust_certificates"
android:layout_marginTop="16dip"
android:layout_marginBottom="16dip"
android:layout_marginLeft="32dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_exchange_trust_certificates_label" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
</LinearLayout>
<TableRow
android:paddingTop="32dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_exchange_device_id_label" />
<!-- TODO - when adding back in styles, this should be slightly different (was "medium") -->
<TextView
android:id="@+id/device_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffbebebe" />
</TableRow>
</TableLayout>

View File

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Incoming server settings - xlarge - see layout/ for phone UX variant -->
<!-- TODO add back styles for final appearance -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dip"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:stretchColumns="1" >
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_username_label" />
<EditText
android:id="@+id/account_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_password_label" />
<EditText
android:id="@+id/account_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<!-- This text may be changed in code if the server is IMAP, etc. -->
<TextView
android:id="@+id/account_server_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_pop_server_label" />
<!-- Note: we use inputType=textUri as the closest approximation to a server name -->
<EditText
android:id="@+id/account_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textUri"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_security_label" />
<Spinner
android:id="@+id/account_security_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_port_label" />
<EditText
android:id="@+id/account_port"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:id="@+id/account_delete_policy_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_delete_policy_label" />
<Spinner
android:id="@+id/account_delete_policy"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:id="@+id/imap_path_prefix_section"
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_incoming_imap_path_prefix_label" />
<EditText
android:id="@+id/imap_path_prefix"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/account_setup_incoming_imap_path_prefix_hint"
android:inputType="text"
android:imeOptions="actionDone" />
</TableRow>
</TableLayout>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Incoming server settings - xlarge - see layout/ for phone UX variant -->
<!-- TODO add back styles for final appearance -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dip"
android:layout_marginLeft="16dip"
android:layout_marginRight="96dip"
android:stretchColumns="1" >
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_outgoing_smtp_server_label" />
<!-- Note: we use inputType=textUri as the closest approximation to a server name -->
<EditText
android:id="@+id/account_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textUri"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_outgoing_security_label" />
<Spinner
android:id="@+id/account_security_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:paddingTop="16dip" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_outgoing_port_label" />
<EditText
android:id="@+id/account_port"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:imeOptions="actionDone" />
</TableRow>
<!-- Note, this row is not a TableRow, and it will span the entire table - no columns -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dip"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
<CheckBox
android:id="@+id/account_require_login"
android:layout_marginTop="16dip"
android:layout_marginBottom="16dip"
android:layout_marginLeft="32dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_setup_outgoing_require_login_label" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/account_setup_divider_color" />
</LinearLayout>
<TableRow
android:id="@+id/account_require_login_settings"
android:paddingTop="16dip"
android:visibility="gone" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_outgoing_username_label" />
<EditText
android:id="@+id/account_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:imeOptions="actionDone" />
</TableRow>
<TableRow
android:id="@+id/account_require_login_settings_2"
android:paddingTop="16dip"
android:visibility="gone" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginRight="16dip"
android:text="@string/account_setup_outgoing_password_label" />
<EditText
android:id="@+id/account_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionDone" />
</TableRow>
</TableLayout>

View File

@ -41,14 +41,14 @@
<Button <Button
android:id="@+id/manual_setup" android:id="@+id/manual_setup"
android:layout_below="@+id/setup_basics_fragment" android:layout_below="@+id/setup_basics_fragment"
android:layout_centerHorizontal="true" android:layout_alignParentLeft="true"
android:layout_marginTop="32dip" android:layout_marginTop="16dip"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/account_setup_basics_manual_setup_action" /> android:text="@string/account_setup_basics_manual_setup_action" />
<Button <Button
android:id="@+id/next" android:id="@+id/next"
android:layout_below="@+id/manual_setup" android:layout_below="@+id/setup_basics_fragment"
android:layout_centerHorizontal="true" android:layout_alignParentRight="true"
android:layout_marginTop="16dip" android:layout_marginTop="16dip"
style="@style/accountSetupButton" style="@style/accountSetupButton"
android:text="@string/next_action" /> android:text="@string/next_action" />

View File

@ -20,11 +20,34 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true"> android:fillViewport="true">
<fragment <RelativeLayout
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupExchangeFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" >
android:layout_weight="1"
/> <fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupExchangeFragment"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<!-- Buttons below -->
<!-- TODO - quick placeholder - phone UX still TBD -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentLeft="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentRight="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>
</ScrollView> </ScrollView>

View File

@ -14,6 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Exchange server settings - default - see layout-xlarge/ for XL variant -->
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -20,11 +20,34 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true" > android:fillViewport="true" >
<fragment <RelativeLayout
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupIncomingFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" >
android:layout_weight="1"
/> <fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupIncomingFragment"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<!-- Buttons below -->
<!-- TODO - quick placeholder - phone UX still TBD -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentLeft="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentRight="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>
</ScrollView> </ScrollView>

View File

@ -14,6 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Incoming server settings - default - see layout-xlarge/ for XL variant -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -56,6 +56,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="match_parent" /> android:layout_width="match_parent" />
<!-- TODO - quick placeholder - phone UX still TBD -->
<Button <Button
android:id="@+id/next" android:id="@+id/next"
android:layout_marginTop="16dip" android:layout_marginTop="16dip"

View File

@ -77,6 +77,7 @@
android:text="@string/account_setup_options_sync_email_label" /> android:text="@string/account_setup_options_sync_email_label" />
<!-- Buttons below --> <!-- Buttons below -->
<!-- TODO - quick placeholder - phone UX still TBD -->
<Button <Button
android:id="@+id/previous" android:id="@+id/previous"
android:layout_marginTop="16dip" android:layout_marginTop="16dip"

View File

@ -20,11 +20,34 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true" > android:fillViewport="true" >
<fragment <RelativeLayout
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupOutgoingFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" >
android:layout_weight="1"
/> <fragment
android:id="@+id/setup_fragment"
class="com.android.email.activity.setup.AccountSetupOutgoingFragment"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<!-- Buttons below -->
<!-- TODO - quick placeholder - phone UX still TBD -->
<Button
android:id="@+id/previous"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentLeft="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/previous_action" />
<Button
android:id="@+id/next"
android:layout_below="@+id/setup_fragment"
android:layout_alignParentRight="true"
android:layout_marginTop="16dip"
style="@style/accountSetupButton"
android:text="@string/next_action" />
</RelativeLayout>
</ScrollView> </ScrollView>

View File

@ -14,6 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<!-- Outgoing server settings - default - see layout-xlarge/ for XL variant -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -465,12 +465,12 @@ save attachment.</string>
<string name="message_list_snippet"><xliff:g id="subject" example="Re: Foo"> <string name="message_list_snippet"><xliff:g id="subject" example="Re: Foo">
%1$s</xliff:g> - <xliff:g id="text" example="Hi, John. Blah...">%2$s</xliff:g></string> %1$s</xliff:g> - <xliff:g id="text" example="Hi, John. Blah...">%2$s</xliff:g></string>
<!-- Title of screen when setting up new email account --> <!-- Title of screen when setting up new email account [CHAR LIMIT=45] -->
<string name="account_setup_basics_title">Account setup</string> <string name="account_setup_basics_title">Account setup</string>
<!-- Title of the screen when adding exchange account --> <!-- Title of the screen when adding exchange account [CHAR LIMIT=45] -->
<string name="account_setup_basics_exchange_title"> <string name="account_setup_basics_exchange_title">
Add an Exchange account</string> Add an Exchange account</string>
<!-- Title of the screen when adding exchange account --> <!-- Title of the screen when adding exchange account [CHAR LIMIT=45] -->
<string name="account_setup_basics_exchange_title_alternate"> <string name="account_setup_basics_exchange_title_alternate">
Add an Exchange ActiveSync account</string> Add an Exchange ActiveSync account</string>
<!-- Headline of screen when setting up new email account (large text over divider) <!-- Headline of screen when setting up new email account (large text over divider)
@ -517,7 +517,7 @@ save attachment.</string>
<string name="account_setup_check_settings_check_outgoing_msg"> <string name="account_setup_check_settings_check_outgoing_msg">
Checking outgoing server settings\u2026</string> Checking outgoing server settings\u2026</string>
<!-- Title of "Set up email" screen after success --> <!-- Title of "Set up email" screen after success [CHAR LIMIT=45] -->
<string name="account_setup_names_title">Account setup</string> <string name="account_setup_names_title">Account setup</string>
<!-- Text that appears on "Set up email" screen after successfully setting up an account <!-- Text that appears on "Set up email" screen after successfully setting up an account
[CHAR LIMIT=none] --> [CHAR LIMIT=none] -->
@ -530,10 +530,9 @@ save attachment.</string>
<string name="account_setup_names_user_name_label"> <string name="account_setup_names_user_name_label">
Your name (displayed on outgoing messages)</string> Your name (displayed on outgoing messages)</string>
<!-- Activity Title for the first screen in manual setup (where you select IMAP or POP3) --> <!-- Activity Title for the account type selector (IMAP or POP3 or EAS) [CHAR LIMIT=45] -->
<string name="account_setup_account_type_title">Account setup</string> <string name="account_setup_account_type_title">Account setup</string>
<!-- Headline for the first screen in manual setup (where you select IMAP or POP3) <!-- Headline for the the account type selector (IMAP or POP3 or EAS) [CHAR LIMIT=none] -->
[CHAR LIMIT=none] -->
<string name="account_setup_account_type_headline">Account type</string> <string name="account_setup_account_type_headline">Account type</string>
<!-- "Add new email account" screen, text that appears on screen --> <!-- "Add new email account" screen, text that appears on screen -->
<string name="account_setup_account_type_instructions">What type of account is this?</string> <string name="account_setup_account_type_instructions">What type of account is this?</string>
@ -552,8 +551,10 @@ save attachment.</string>
<string name="account_setup_account_type_exchange_action_alternate" <string name="account_setup_account_type_exchange_action_alternate"
translatable="false">Microsoft Exchange ActiveSync</string> translatable="false">Microsoft Exchange ActiveSync</string>
<!-- "Incoming server settings" screen, label for text field --> <!-- "Incoming server settings" screen, title [CHAR LIMIT=45] -->
<string name="account_setup_incoming_title">Incoming server settings</string> <string name="account_setup_incoming_title">Account setup</string>
<!-- "Incoming server settings" screen, headline (text over divider) [CHAR LIMIT=none] -->
<string name="account_setup_incoming_headline">Incoming server settings</string>
<!-- "Incoming server settings" screen, label for text field --> <!-- "Incoming server settings" screen, label for text field -->
<string name="account_setup_incoming_username_label">Username</string> <string name="account_setup_incoming_username_label">Username</string>
<!-- "Incoming server settings" screen, label for text field --> <!-- "Incoming server settings" screen, label for text field -->
@ -569,11 +570,13 @@ save attachment.</string>
<!-- "Incoming server settings" screen, options for "Security type" pop-up menu --> <!-- "Incoming server settings" screen, options for "Security type" pop-up menu -->
<string name="account_setup_incoming_security_none_label">None</string> <string name="account_setup_incoming_security_none_label">None</string>
<!-- "Incoming server settings" screen, options for "Security type" pop-up menu --> <!-- "Incoming server settings" screen, options for "Security type" pop-up menu -->
<string name="account_setup_incoming_security_ssl_trust_certificates_label">SSL (Accept all certificates)</string> <string name="account_setup_incoming_security_ssl_trust_certificates_label">
SSL (Accept all certificates)</string>
<!-- "Incoming server settings" screen, options for "Security type" pop-up menu --> <!-- "Incoming server settings" screen, options for "Security type" pop-up menu -->
<string name="account_setup_incoming_security_ssl_label">SSL</string> <string name="account_setup_incoming_security_ssl_label">SSL</string>
<!-- "Incoming server settings" screen, options for "Security type" pop-up menu --> <!-- "Incoming server settings" screen, options for "Security type" pop-up menu -->
<string name="account_setup_incoming_security_tls_trust_certificates_label">TLS (Accept all certificates)</string> <string name="account_setup_incoming_security_tls_trust_certificates_label">
TLS (Accept all certificates)</string>
<!-- "Incoming server settings" screen, options for "Security type" pop-up menu --> <!-- "Incoming server settings" screen, options for "Security type" pop-up menu -->
<string name="account_setup_incoming_security_tls_label">TLS</string> <string name="account_setup_incoming_security_tls_label">TLS</string>
<!-- "Incoming server settings" screen, label for pop-up menu --> <!-- "Incoming server settings" screen, label for pop-up menu -->
@ -582,14 +585,17 @@ save attachment.</string>
<!-- "Incoming server settings" screen, options in pop-up menu for Delete email from server: --> <!-- "Incoming server settings" screen, options in pop-up menu for Delete email from server: -->
<string name="account_setup_incoming_delete_policy_never_label">Never</string> <string name="account_setup_incoming_delete_policy_never_label">Never</string>
<!-- "Incoming server settings" screen, options in pop-up menu for Delete email from server: --> <!-- "Incoming server settings" screen, options in pop-up menu for Delete email from server: -->
<string name="account_setup_incoming_delete_policy_delete_label">When I delete from Inbox</string> <string name="account_setup_incoming_delete_policy_delete_label">
When I delete from Inbox</string>
<!-- "Incoming server settings" screen, label for setting IMAP path prefix: --> <!-- "Incoming server settings" screen, label for setting IMAP path prefix: -->
<string name="account_setup_incoming_imap_path_prefix_label">IMAP path prefix</string> <string name="account_setup_incoming_imap_path_prefix_label">IMAP path prefix</string>
<!-- "Incoming server settings" screen, hint for setting IMAP path prefix: --> <!-- "Incoming server settings" screen, hint for setting IMAP path prefix: -->
<string name="account_setup_incoming_imap_path_prefix_hint">Optional</string> <string name="account_setup_incoming_imap_path_prefix_hint">Optional</string>
<!-- Title of "Outgoing server settings" screen -->
<string name="account_setup_outgoing_title">Outgoing server settings</string> <!-- "Outgoing server settings" screen, title [CHAR LIMIT=45] -->
<string name="account_setup_outgoing_title">Account setup</string>
<!-- "Outgoing server settings" screen, headline (text over divider) [CHAR LIMIT=none] -->
<string name="account_setup_outgoing_headline">Outgoing server settings</string>
<!-- On "Outgoing server settings" screen, label for text field --> <!-- On "Outgoing server settings" screen, label for text field -->
<string name="account_setup_outgoing_smtp_server_label">SMTP server</string> <string name="account_setup_outgoing_smtp_server_label">SMTP server</string>
<!-- On "Outgoing server settings" screen, label for text field --> <!-- On "Outgoing server settings" screen, label for text field -->
@ -603,8 +609,10 @@ save attachment.</string>
<!-- On "Outgoing server settings" screen, label for text field --> <!-- On "Outgoing server settings" screen, label for text field -->
<string name="account_setup_outgoing_password_label">Password</string> <string name="account_setup_outgoing_password_label">Password</string>
<!-- Title of "Exchange server settings" screen --> <!-- Title of "Exchange server settings" screen [CHAR LIMIT=45] -->
<string name="account_setup_exchange_title">Server settings</string> <string name="account_setup_exchange_title">Account setup</string>
<!-- Headline of "Exchange server settings" screen (text over divider) [CHAR LIMIT=none] -->
<string name="account_setup_exchange_headline">Server settings</string>
<!-- On "Exchange" setup screen, the name of the server --> <!-- On "Exchange" setup screen, the name of the server -->
<string name="account_setup_exchange_server_label">Server</string> <string name="account_setup_exchange_server_label">Server</string>
<!-- On "Exchange" setup screen, the domain\\username --> <!-- On "Exchange" setup screen, the domain\\username -->
@ -616,7 +624,7 @@ save attachment.</string>
<!-- On "Exchange" setup screen, the exchange device-id label [CHAR LIMIT=30] --> <!-- On "Exchange" setup screen, the exchange device-id label [CHAR LIMIT=30] -->
<string name="account_setup_exchange_device_id_label">Mobile Device ID</string> <string name="account_setup_exchange_device_id_label">Mobile Device ID</string>
<!-- In Account setup options screen, Activity title --> <!-- In Account setup options screen, Activity title [CHAR LIMIT=45] -->
<string name="account_setup_options_title">Account settings</string> <string name="account_setup_options_title">Account settings</string>
<!-- In Account setup options screen, Activity headline [CHAR LIMIT=none] --> <!-- In Account setup options screen, Activity headline [CHAR LIMIT=none] -->
<string name="account_setup_options_headline">Account options</string> <string name="account_setup_options_headline">Account options</string>

View File

@ -41,6 +41,8 @@ public abstract class AccountServerBaseFragment extends Fragment
protected Context mContext; protected Context mContext;
protected Callback mCallback = EmptyCallback.INSTANCE; protected Callback mCallback = EmptyCallback.INSTANCE;
protected boolean mNextButtonEnabled; protected boolean mNextButtonEnabled;
// STOPSHIP - this is a temp UI for "next" in AccountSettings. Disabled during Account Setup.
public boolean mNextButtonDisplayed = true;
/** /**
* Callback interface that owning activities must provide * Callback interface that owning activities must provide
@ -103,23 +105,30 @@ public abstract class AccountServerBaseFragment extends Fragment
} }
// Add a "Next" button when this fragment is displayed // Add a "Next" button when this fragment is displayed
// TODO remove this and replace with a button during Account Settings
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater); super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.account_setup_next_option, menu); if (mNextButtonDisplayed) {
inflater.inflate(R.menu.account_setup_next_option, menu);
}
} }
/** /**
* Enable/disable "next" button * Enable/disable "next" button
* TODO remove this and replace with a button during Account Settings
*/ */
@Override @Override
public void onPrepareOptionsMenu(Menu menu) { public void onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.next); if (mNextButtonDisplayed) {
item.setEnabled(mNextButtonEnabled); MenuItem item = menu.findItem(R.id.next);
item.setEnabled(mNextButtonEnabled);
}
} }
/** /**
* Respond to clicks in the "Next" button * Respond to clicks in the "Next" button
* TODO remove this and replace with a button during Account Settings
*/ */
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {

View File

@ -25,6 +25,9 @@ import android.app.Activity;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/** /**
* Provides generic setup for Exchange accounts. The following fields are supported: * Provides generic setup for Exchange accounts. The following fields are supported:
@ -61,7 +64,7 @@ import android.os.Bundle;
* finish() (removes self from back stack) * finish() (removes self from back stack)
*/ */
public class AccountSetupExchange extends AccountSetupActivity public class AccountSetupExchange extends AccountSetupActivity
implements AccountSetupExchangeFragment.Callback { implements AccountSetupExchangeFragment.Callback, OnClickListener {
// Keys for savedInstanceState // Keys for savedInstanceState
private final static String STATE_STARTED_AUTODISCOVERY = private final static String STATE_STARTED_AUTODISCOVERY =
@ -69,6 +72,7 @@ public class AccountSetupExchange extends AccountSetupActivity
boolean mStartedAutoDiscovery; boolean mStartedAutoDiscovery;
/* package */ AccountSetupExchangeFragment mFragment; /* package */ AccountSetupExchangeFragment mFragment;
private Button mNextButton;
/* package */ boolean mNextButtonEnabled; /* package */ boolean mNextButtonEnabled;
public static void actionIncomingSettings(Activity fromActivity, int mode, Account account) { public static void actionIncomingSettings(Activity fromActivity, int mode, Account account) {
@ -86,6 +90,13 @@ public class AccountSetupExchange extends AccountSetupActivity
mFragment = (AccountSetupExchangeFragment) mFragment = (AccountSetupExchangeFragment)
getFragmentManager().findFragmentById(R.id.setup_fragment); getFragmentManager().findFragmentById(R.id.setup_fragment);
mFragment.setCallback(this); mFragment.setCallback(this);
// TODO temp code to inhibit the options menu - still needed for AccountSettings
mFragment.mNextButtonDisplayed = false;
invalidateOptionsMenu();
mNextButton = (Button) findViewById(R.id.next);
mNextButton.setOnClickListener(this);
findViewById(R.id.previous).setOnClickListener(this);
// One-shot to launch autodiscovery at the entry to this activity (but not if it restarts) // One-shot to launch autodiscovery at the entry to this activity (but not if it restarts)
mStartedAutoDiscovery = false; mStartedAutoDiscovery = false;
@ -97,6 +108,21 @@ public class AccountSetupExchange extends AccountSetupActivity
} }
} }
/**
* Implements View.OnClickListener
*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.next:
mFragment.onNext();
break;
case R.id.previous:
onBackPressed();
break;
}
}
@Override @Override
public void onSaveInstanceState(Bundle outState) { public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
@ -168,13 +194,9 @@ public class AccountSetupExchange extends AccountSetupActivity
/** /**
* Implements AccountServerBaseFragment.Callback * Implements AccountServerBaseFragment.Callback
*/ */
public void onEnableProceedButtons(boolean enabled) { public void onEnableProceedButtons(boolean enable) {
boolean wasEnabled = mNextButtonEnabled; mNextButtonEnabled = enable;
mNextButtonEnabled = enabled; mNextButton.setEnabled(enable);
if (enabled != wasEnabled) {
invalidateOptionsMenu();
}
} }
/** /**

View File

@ -24,6 +24,9 @@ import android.app.Activity;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/** /**
* Provides setup flow for IMAP/POP accounts. * Provides setup flow for IMAP/POP accounts.
@ -32,9 +35,10 @@ import android.os.Bundle;
* the settings as entered. If the account is OK, proceeds to AccountSetupOutgoing. * the settings as entered. If the account is OK, proceeds to AccountSetupOutgoing.
*/ */
public class AccountSetupIncoming extends AccountSetupActivity public class AccountSetupIncoming extends AccountSetupActivity
implements AccountSetupIncomingFragment.Callback { implements AccountSetupIncomingFragment.Callback, OnClickListener {
/* package */ AccountSetupIncomingFragment mFragment; /* package */ AccountSetupIncomingFragment mFragment;
private Button mNextButton;
/* package */ boolean mNextButtonEnabled; /* package */ boolean mNextButtonEnabled;
public static void actionIncomingSettings(Activity fromActivity, int mode, Account account) { public static void actionIncomingSettings(Activity fromActivity, int mode, Account account) {
@ -54,8 +58,30 @@ public class AccountSetupIncoming extends AccountSetupActivity
// Configure fragment // Configure fragment
mFragment.setCallback(this); mFragment.setCallback(this);
// TODO temp code to inhibit the options menu - still needed for AccountSettings
mFragment.mNextButtonDisplayed = false;
invalidateOptionsMenu();
mNextButton = (Button) findViewById(R.id.next);
mNextButton.setOnClickListener(this);
findViewById(R.id.previous).setOnClickListener(this);
} }
/**
* Implements View.OnClickListener
*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.next:
mFragment.onNext();
break;
case R.id.previous:
onBackPressed();
break;
}
}
/** /**
* Implements AccountServerBaseFragment.Callback * Implements AccountServerBaseFragment.Callback
* *
@ -74,12 +100,8 @@ public class AccountSetupIncoming extends AccountSetupActivity
* Implements AccountServerBaseFragment.Callback * Implements AccountServerBaseFragment.Callback
*/ */
public void onEnableProceedButtons(boolean enable) { public void onEnableProceedButtons(boolean enable) {
boolean wasEnabled = mNextButtonEnabled;
mNextButtonEnabled = enable; mNextButtonEnabled = enable;
mNextButton.setEnabled(enable);
if (enable != wasEnabled) {
invalidateOptionsMenu();
}
} }
/** /**

View File

@ -24,6 +24,9 @@ import android.app.Activity;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/** /**
* Provides setup flow for SMTP (for IMAP/POP accounts). * Provides setup flow for SMTP (for IMAP/POP accounts).
@ -32,9 +35,10 @@ import android.os.Bundle;
* the settings as entered. If the account is OK, proceeds to AccountSetupOptions. * the settings as entered. If the account is OK, proceeds to AccountSetupOptions.
*/ */
public class AccountSetupOutgoing extends Activity public class AccountSetupOutgoing extends Activity
implements AccountSetupOutgoingFragment.Callback { implements AccountSetupOutgoingFragment.Callback, OnClickListener {
/* package */ AccountSetupOutgoingFragment mFragment; /* package */ AccountSetupOutgoingFragment mFragment;
private Button mNextButton;
/* package */ boolean mNextButtonEnabled; /* package */ boolean mNextButtonEnabled;
public static void actionOutgoingSettings(Activity fromActivity, int mode, Account account) { public static void actionOutgoingSettings(Activity fromActivity, int mode, Account account) {
@ -54,6 +58,28 @@ public class AccountSetupOutgoing extends Activity
// Configure fragment // Configure fragment
mFragment.setCallback(this); mFragment.setCallback(this);
// TODO temp code to inhibit the options menu - still needed for AccountSettings
mFragment.mNextButtonDisplayed = false;
invalidateOptionsMenu();
mNextButton = (Button) findViewById(R.id.next);
mNextButton.setOnClickListener(this);
findViewById(R.id.previous).setOnClickListener(this);
}
/**
* Implements View.OnClickListener
*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.next:
mFragment.onNext();
break;
case R.id.previous:
onBackPressed();
break;
}
} }
/** /**
@ -74,12 +100,8 @@ public class AccountSetupOutgoing extends Activity
* Implements AccountServerBaseFragment.Callback * Implements AccountServerBaseFragment.Callback
*/ */
public void onEnableProceedButtons(boolean enable) { public void onEnableProceedButtons(boolean enable) {
boolean wasEnabled = mNextButtonEnabled;
mNextButtonEnabled = enable; mNextButtonEnabled = enable;
mNextButton.setEnabled(enable);
if (enable != wasEnabled) {
invalidateOptionsMenu();
}
} }
/** /**

View File

@ -65,7 +65,8 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
private EditText mServerView; private EditText mServerView;
private EditText mPortView; private EditText mPortView;
private CheckBox mRequireLoginView; private CheckBox mRequireLoginView;
private ViewGroup mRequireLoginSettingsView; private View mRequireLoginSettingsView;
private View mRequireLoginSettingsView2;
private Spinner mSecurityTypeView; private Spinner mSecurityTypeView;
// Support for lifecycle // Support for lifecycle
@ -98,8 +99,8 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
mServerView = (EditText) view.findViewById(R.id.account_server); mServerView = (EditText) view.findViewById(R.id.account_server);
mPortView = (EditText) view.findViewById(R.id.account_port); mPortView = (EditText) view.findViewById(R.id.account_port);
mRequireLoginView = (CheckBox) view.findViewById(R.id.account_require_login); mRequireLoginView = (CheckBox) view.findViewById(R.id.account_require_login);
mRequireLoginSettingsView = mRequireLoginSettingsView = view.findViewById(R.id.account_require_login_settings);
(ViewGroup) view.findViewById(R.id.account_require_login_settings); mRequireLoginSettingsView2 = view.findViewById(R.id.account_require_login_settings_2);
mSecurityTypeView = (Spinner) view.findViewById(R.id.account_security_type); mSecurityTypeView = (Spinner) view.findViewById(R.id.account_security_type);
mRequireLoginView.setOnCheckedChangeListener(this); mRequireLoginView.setOnCheckedChangeListener(this);
@ -317,6 +318,9 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mRequireLoginSettingsView.setVisibility(isChecked ? View.VISIBLE : View.GONE); mRequireLoginSettingsView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
if (mRequireLoginSettingsView2 != null) {
mRequireLoginSettingsView2.setVisibility(isChecked ? View.VISIBLE : View.GONE);
}
validateFields(); validateFields();
} }