Groundwork to implement landscape and welcome screen

Bug: 8159728
Change-Id: I05ff6578980ec2e210ebb482ea51b1600e74a4f4
main
Tadashi G. Takaoka 2013-04-18 17:19:40 +09:00
parent 16ec2e1155
commit fcefabf9ab
11 changed files with 208 additions and 61 deletions

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2013, 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.
*/
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:color="@color/setup_text_action" />
<item
android:state_pressed="true"
android:color="@color/setup_text_action" />
<item
android:color="@color/setup_step_background" />
</selector>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2013, 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.
*/
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<view class="com.android.inputmethod.latin.setup.SetupStartIndicatorView$LabelView"
android:id="@+id/setup_start_label"
android:text="@string/setup_start_action"
android:gravity="end|center_vertical"
android:layout_width="0dp"
android:layout_weight="1.0"
style="@style/setupStepActionLabelStyleCommon" />
<view class="com.android.inputmethod.latin.setup.SetupStartIndicatorView$IndicatorView"
android:id="@+id/setup_start_indicator"
style="@style/setupStepStartIndicatorStyle" />
</merge>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2013, 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.
*/
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@+id/setup_step_bullets"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:orientation="horizontal">
<TextView
android:id="@+id/setup_step1_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step1_bullet" />
<TextView
android:id="@+id/setup_step2_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step2_bullet" />
<TextView
android:id="@+id/setup_step3_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step3_bullet" />
</LinearLayout>
<com.android.inputmethod.latin.setup.SetupStepIndicatorView
android:id="@+id/setup_step_indicator"
android:layout_width="match_parent"
android:layout_height="24dp" />
<FrameLayout
android:id="@+id/setup_steps_pane"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/setup_step1"
layout="@layout/setup_step" />
<include
android:id="@+id/setup_step2"
layout="@layout/setup_step" />
<include
android:id="@+id/setup_step3"
layout="@layout/setup_step" />
</FrameLayout>
<TextView
android:id="@+id/setup_finish"
android:text="@string/setup_finish_action"
style="@style/setupStepActionLabelStyle"
android:layout_marginTop="2dp" />
</merge>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2013, 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.
*/
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/setup_steps_title" />
<include layout="@layout/setup_steps_cards" />
</LinearLayout>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2013, 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.
*/
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/setup_title"
style="@style/setupTitleStyle"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</merge>

View File

@ -18,7 +18,7 @@
*/
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/setup_background"
@ -26,55 +26,7 @@
android:paddingRight="@dimen/setup_horizontal_padding"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<TextView
android:id="@+id/setup_title"
style="@style/setupTitleStyle"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<LinearLayout
android:id="@+id/setup_step_bullets"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/setup_title"
android:paddingTop="16dp"
android:orientation="horizontal">
<TextView
android:id="@+id/setup_step1_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step1_bullet" />
<TextView
android:id="@+id/setup_step2_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step2_bullet" />
<TextView
android:id="@+id/setup_step3_bullet"
style="@style/setupStepBulletStyle"
android:text="@string/setup_step3_bullet" />
</LinearLayout>
<com.android.inputmethod.latin.setup.SetupStepIndicatorView
android:id="@+id/setup_step_indicator"
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_below="@id/setup_step_bullets" />
<FrameLayout
android:id="@+id/setup_steps_pane"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/setup_step_indicator">
<include
android:id="@+id/setup_step1"
layout="@layout/setup_step" />
<include
android:id="@+id/setup_step2"
layout="@layout/setup_step" />
<include
android:id="@+id/setup_step3"
layout="@layout/setup_step" />
</FrameLayout>
<TextView
android:id="@+id/setup_finish"
android:text="@string/setup_finish_action"
style="@style/setupStepActionLabelStyle"
android:layout_below="@id/setup_steps_pane"
android:layout_marginTop="2dp" />
</RelativeLayout>
<include
android:id="@+id/setup_steps_screen"
layout="@layout/setup_steps_screen" />
</FrameLayout>

View File

@ -16,5 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<dimen name="setup_title_text_size">64sp</dimen>
<dimen name="setup_welcome_description_text_size">36sp</dimen>
<dimen name="setup_horizontal_padding">96dp</dimen>
</resources>

View File

@ -16,5 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<dimen name="setup_title_text_size">64sp</dimen>
<dimen name="setup_welcome_description_text_size">36sp</dimen>
<dimen name="setup_horizontal_padding">192dp</dimen>
</resources>

View File

@ -16,5 +16,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<dimen name="setup_title_text_size">46sp</dimen>
<dimen name="setup_welcome_description_text_size">26sp</dimen>
<dimen name="setup_horizontal_padding">16dp</dimen>
</resources>

View File

@ -21,6 +21,9 @@
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
</style>
<style name="setupWelcomeDescritpionStyle" parent="setupTitleStyle">
<item name="android:textSize">@dimen/setup_welcome_description_text_size</item>
</style>
<style name="setupStepBulletStyle">
<item name="android:textColor">@color/setup_text_dark</item>
<item name="android:textSize">22sp</item>
@ -43,6 +46,10 @@
<style name="setupStepInstructionStyle" parent="setupStepBaseStyle">
<item name="android:textSize">14sp</item>
</style>
<style name="setupStepStartIndicatorStyle">
<item name="android:layout_width">24dp</item>
<item name="android:layout_height">48dp</item>
</style>
<style name="setupStepActionLabelStyleCommon" parent="setupStepBaseStyle">
<item name="android:textColor">@color/setup_step_action_color</item>
<item name="android:background">@drawable/setup_step_action_background</item>
@ -54,4 +61,8 @@
<item name="android:clickable">true</item>
<item name="android:focusable">true</item>
</style>
<style name="setupStepStartActionLabelStyleCommon" parent="setupStepActionLabelStyleCommon">
<item name="android:paddingLeft">24dp</item>
<item name="android:paddingRight">24dp</item>
</style>
</resources>

View File

@ -38,10 +38,11 @@ import com.android.inputmethod.latin.StaticInnerHandlerWrapper;
import java.util.HashMap;
// TODO: Use Fragment to implement welcome screen and setup steps.
public final class SetupActivity extends Activity implements View.OnClickListener {
private SetupStepIndicatorView mStepIndicatorView;
private TextView mActionFinish;
private final SetupStepGroup mSetupSteps = new SetupStepGroup();
private final SetupStepGroup mSetupStepGroup = new SetupStepGroup();
private static final String STATE_STEP = "step";
private int mStepNumber;
private static final int STEP_1 = 1;
@ -108,9 +109,9 @@ public final class SetupActivity extends Activity implements View.OnClickListene
return;
}
final TextView titleView = (TextView)findViewById(R.id.setup_title);
final TextView stepsTitle = (TextView)findViewById(R.id.setup_title);
final String applicationName = getResources().getString(getApplicationInfo().labelRes);
titleView.setText(getString(R.string.setup_steps_title, applicationName));
stepsTitle.setText(getString(R.string.setup_steps_title, applicationName));
mStepIndicatorView = (SetupStepIndicatorView)findViewById(R.id.setup_step_indicator);
@ -125,7 +126,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene
mHandler.startPollingImeSettings();
}
});
mSetupSteps.addStep(STEP_1, step1);
mSetupStepGroup.addStep(STEP_1, step1);
final SetupStep step2 = new SetupStep(applicationName,
(TextView)findViewById(R.id.setup_step2_bullet), findViewById(R.id.setup_step2),
@ -139,7 +140,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene
.showInputMethodPicker();
}
});
mSetupSteps.addStep(STEP_2, step2);
mSetupStepGroup.addStep(STEP_2, step2);
final SetupStep step3 = new SetupStep(applicationName,
(TextView)findViewById(R.id.setup_step3_bullet), findViewById(R.id.setup_step3),
@ -151,7 +152,7 @@ public final class SetupActivity extends Activity implements View.OnClickListene
invokeSubtypeEnablerOfThisIme();
}
});
mSetupSteps.addStep(STEP_3, step3);
mSetupStepGroup.addStep(STEP_3, step3);
mActionFinish = (TextView)findViewById(R.id.setup_finish);
TextViewCompatUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(mActionFinish,
@ -290,8 +291,8 @@ public final class SetupActivity extends Activity implements View.OnClickListene
private void updateSetupStepView() {
final int layoutDirection = ViewCompatUtils.getLayoutDirection(mStepIndicatorView);
mStepIndicatorView.setIndicatorPosition(
getIndicatorPosition(mStepNumber, mSetupSteps.getTotalStep(), layoutDirection));
mSetupSteps.enableStep(mStepNumber);
getIndicatorPosition(mStepNumber, mSetupStepGroup.getTotalStep(), layoutDirection));
mSetupStepGroup.enableStep(mStepNumber);
mActionFinish.setVisibility((mStepNumber == STEP_3) ? View.VISIBLE : View.GONE);
}