Merge "Update margins to match specs" into nyc-mr1-dev

This commit is contained in:
Maurice Lam
2016-05-24 00:45:14 +00:00
committed by Android (Google) Code Review
14 changed files with 30 additions and 142 deletions

View File

@@ -50,7 +50,7 @@
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top" android:layout_marginTop="@dimen/suw_description_glif_margin_top"
android:text="@string/setup_fingerprint_enroll_finish_message_secondary" android:text="@string/setup_fingerprint_enroll_finish_message_secondary"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:visibility="gone" /> android:visibility="gone" />

View File

@@ -35,7 +35,7 @@
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top"> android:layout_marginTop="@dimen/suw_description_glif_margin_top">
<TextView <TextView
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"

View File

@@ -47,7 +47,7 @@
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top" android:layout_marginTop="@dimen/suw_description_glif_margin_top"
android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/> android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
<View <View

View File

@@ -35,7 +35,7 @@
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top" android:layout_marginTop="@dimen/suw_description_glif_margin_top"
android:text="@string/security_settings_fingerprint_enroll_finish_message"/> android:text="@string/security_settings_fingerprint_enroll_finish_message"/>
<TextView <TextView
@@ -43,7 +43,7 @@
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top" android:layout_marginTop="@dimen/suw_description_glif_margin_top"
android:text="@string/setup_fingerprint_enroll_finish_message_secondary" android:text="@string/setup_fingerprint_enroll_finish_message_secondary"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:visibility="gone" /> android:visibility="gone" />

View File

@@ -20,10 +20,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:minHeight="56dp" android:minHeight="56dp"
android:paddingBottom="@dimen/suw_description_margin_bottom_lists" android:paddingBottom="@dimen/suw_description_glif_margin_bottom_lists"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingTop="@dimen/suw_description_margin_top" android:paddingTop="@dimen/suw_description_glif_margin_top"
android:text="@string/setup_lock_settings_picker_fingerprint_message" android:text="@string/setup_lock_settings_picker_fingerprint_message"
android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra" android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra"
android:textAppearance="?android:attr/textAppearanceListItem" /> android:textAppearance="?android:attr/textAppearanceListItem" />

View File

@@ -20,10 +20,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:minHeight="56dp" android:minHeight="56dp"
android:paddingBottom="@dimen/suw_description_margin_bottom_lists" android:paddingBottom="@dimen/suw_description_glif_margin_bottom_lists"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingTop="@dimen/suw_description_margin_top" android:paddingTop="@dimen/suw_description_glif_margin_top"
android:text="@string/setup_lock_settings_picker_message" android:text="@string/setup_lock_settings_picker_message"
android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra" android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra"
android:textAppearance="?android:attr/textAppearanceListItem" /> android:textAppearance="?android:attr/textAppearanceListItem" />

View File

@@ -20,9 +20,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:minHeight="56dp" android:minHeight="56dp"
android:paddingBottom="@dimen/suw_description_margin_bottom_lists" android:paddingBottom="@dimen/suw_description_glif_margin_bottom_lists"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingTop="@dimen/suw_description_margin_top" android:paddingTop="@dimen/suw_description_glif_margin_top"
android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra" android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra"
android:textAppearance="?android:attr/textAppearanceListItem" /> android:textAppearance="?android:attr/textAppearanceListItem" />

View File

@@ -47,7 +47,7 @@
style="@style/TextAppearance.FingerprintMessage" style="@style/TextAppearance.FingerprintMessage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/suw_description_margin_top" android:layout_marginTop="@dimen/suw_description_glif_margin_top"
android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/> android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
<View <View

View File

@@ -31,7 +31,7 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
style="@style/SuwDescription" style="@style/SuwDescription.Glif"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/lock_screen_notifications_interstitial_message" /> android:text="@string/lock_screen_notifications_interstitial_message" />

View File

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2016 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"
xmlns:tools="http://schemas.android.com/tools"
style="@style/SuwItemContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="@dimen/suw_description_margin_top"
android:paddingBottom="@dimen/suw_description_margin_bottom_lists">
<FrameLayout
android:id="@+id/suw_items_icon_container"
android:layout_width="@dimen/suw_items_icon_container_width"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="start">
<ImageView
android:id="@+id/suw_items_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<com.android.settings.widget.LinkTextView
android:id="@+id/suw_items_title"
style="@style/SuwItemTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:lineSpacingExtra="@dimen/suw_description_line_spacing_extra"
android:textAlignment="viewStart"
android:textAppearance="@style/TextAppearance.SuwDescription"
tools:ignore="UnusedAttribute" />
<com.android.settings.widget.LinkTextView
android:id="@+id/suw_items_summary"
style="@style/SuwItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:textAlignment="viewStart"
android:visibility="gone"
tools:ignore="UnusedAttribute" />
</LinearLayout>
</LinearLayout>

View File

@@ -741,7 +741,7 @@
<!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature[CHAR LIMIT=29] --> <!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature[CHAR LIMIT=29] -->
<string name="security_settings_fingerprint_enroll_introduction_title">Unlock with fingerprint</string> <string name="security_settings_fingerprint_enroll_introduction_title">Unlock with fingerprint</string>
<!-- Introduction detail message shown in fingerprint enrollment dialog [CHAR LIMIT=NONE]--> <!-- Introduction detail message shown in fingerprint enrollment dialog [CHAR LIMIT=NONE]-->
<string name="security_settings_fingerprint_enroll_introduction_message">Just touch the fingerprint sensor to unlock your phone, authorize purchases, or sign in to apps. Be careful whose fingerprints you add. Even one added print can do any of these things.\n\nNote: Your fingerprint may be less secure than a strong pattern or PIN. <annotation id="url">Learn more</annotation></string> <string name="security_settings_fingerprint_enroll_introduction_message">Just touch the fingerprint sensor to unlock your phone, authorize purchases, or sign in to apps. Be careful whose fingerprints you add. Even one added print can do any of these things.\n\nNote: Your fingerprint may be less secure than a strong pattern or PIN.</string>
<!-- Button text to cancel enrollment from the introduction [CHAR LIMIT=22] --> <!-- Button text to cancel enrollment from the introduction [CHAR LIMIT=22] -->
<string name="security_settings_fingerprint_enroll_introduction_cancel">Cancel</string> <string name="security_settings_fingerprint_enroll_introduction_cancel">Cancel</string>
<!-- Button text to continue to the next screen from the introduction [CHAR LIMIT=22] --> <!-- Button text to continue to the next screen from the introduction [CHAR LIMIT=22] -->

View File

@@ -20,7 +20,7 @@
<Item <Item
android:enabled="false" android:enabled="false"
android:id="@+id/fingerprint_introduction_message" android:id="@+id/fingerprint_introduction_message"
android:layout="@layout/suw_item_link_description"/> android:layout="@layout/suw_items_description" />
<Item <Item
android:id="@+id/next_button" android:id="@+id/next_button"

View File

@@ -18,20 +18,12 @@ package com.android.settings.fingerprint;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Typeface;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.text.Annotation;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.style.URLSpan;
import android.util.Log; import android.util.Log;
import android.view.View;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockGeneric; import com.android.settings.ChooseLockGeneric;
@@ -42,12 +34,15 @@ import com.android.setupwizardlib.GlifRecyclerLayout;
import com.android.setupwizardlib.items.IItem; import com.android.setupwizardlib.items.IItem;
import com.android.setupwizardlib.items.Item; import com.android.setupwizardlib.items.Item;
import com.android.setupwizardlib.items.RecyclerItemAdapter; import com.android.setupwizardlib.items.RecyclerItemAdapter;
import com.android.setupwizardlib.span.LinkSpan;
/** /**
* Onboarding activity for fingerprint enrollment. * Onboarding activity for fingerprint enrollment.
*/ */
public class FingerprintEnrollIntroduction extends FingerprintEnrollBase public class FingerprintEnrollIntroduction extends FingerprintEnrollBase
implements RecyclerItemAdapter.OnItemSelectedListener { implements RecyclerItemAdapter.OnItemSelectedListener, LinkSpan.OnClickListener {
private static final String TAG = "FingerprintIntro";
protected static final int CHOOSE_LOCK_GENERIC_REQUEST = 1; protected static final int CHOOSE_LOCK_GENERIC_REQUEST = 1;
protected static final int FINGERPRINT_FIND_SENSOR_REQUEST = 2; protected static final int FINGERPRINT_FIND_SENSOR_REQUEST = 2;
@@ -66,13 +61,7 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase
final RecyclerItemAdapter adapter = (RecyclerItemAdapter) layout.getAdapter(); final RecyclerItemAdapter adapter = (RecyclerItemAdapter) layout.getAdapter();
adapter.setOnItemSelectedListener(this); adapter.setOnItemSelectedListener(this);
Item item = (Item) adapter.findItemById(R.id.fingerprint_introduction_message); Item item = (Item) adapter.findItemById(R.id.fingerprint_introduction_message);
item.setTitle(LearnMoreSpan.linkify( item.setTitle(getText(R.string.security_settings_fingerprint_enroll_introduction_message));
getText(R.string.security_settings_fingerprint_enroll_introduction_message),
getString(R.string.help_url_fingerprint)));
// setupwizard library automatically sets the divider inset to
// R.dimen.suw_items_icon_divider_inset. We adjust this back to 0 as we do not want
// an inset within settings.
layout.setDividerInset(0);
updatePasswordQuality(); updatePasswordQuality();
} }
@@ -145,6 +134,8 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase
launchFindSensor(token); launchFindSensor(token);
return; return;
} }
} else if (requestCode == LEARN_MORE_REQUEST) {
overridePendingTransition(R.anim.suw_slide_back_in, R.anim.suw_slide_back_out);
} }
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }
@@ -170,51 +161,22 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase
finish(); finish();
} }
private static class LearnMoreSpan extends URLSpan { @Override
private static final String TAG = "LearnMoreSpan"; public void onClick(LinkSpan span) {
private static final Typeface TYPEFACE_MEDIUM = if ("url".equals(span.getId())) {
Typeface.create("sans-serif-medium", Typeface.NORMAL); String url = getString(R.string.help_url_fingerprint);
Intent intent = HelpUtils.getHelpIntent(this, url, getClass().getName());
private LearnMoreSpan(String url) {
super(url);
}
@Override
public void onClick(View widget) {
Context ctx = widget.getContext();
Intent intent = HelpUtils.getHelpIntent(ctx, getURL(), ctx.getClass().getName());
if (intent == null) { if (intent == null) {
Log.w(LearnMoreSpan.TAG, "Null help intent."); Log.w(TAG, "Null help intent.");
return; return;
} }
try { try {
// This needs to be startActivityForResult even though we do not care about the // This needs to be startActivityForResult even though we do not care about the
// actual result because the help app needs to know about who invoked it. // actual result because the help app needs to know about who invoked it.
widget.startActivityForResult(intent, LEARN_MORE_REQUEST); startActivityForResult(intent, LEARN_MORE_REQUEST);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
Log.w(LearnMoreSpan.TAG, Log.w(TAG, "Activity was not found for intent, " + e);
"Actvity was not found for intent, " + intent.toString());
} }
} }
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
ds.setTypeface(TYPEFACE_MEDIUM);
}
public static CharSequence linkify(CharSequence rawText, String uri) {
SpannableString msg = new SpannableString(rawText);
Annotation[] spans = msg.getSpans(0, msg.length(), Annotation.class);
SpannableStringBuilder builder = new SpannableStringBuilder(msg);
for (Annotation annotation : spans) {
int start = msg.getSpanStart(annotation);
int end = msg.getSpanEnd(annotation);
LearnMoreSpan link = new LearnMoreSpan(uri);
builder.setSpan(link, start, end, msg.getSpanFlags(link));
}
return builder;
}
} }
} }

View File

@@ -62,9 +62,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu
final Item cancelItem = (Item) adapter.findItemById(R.id.cancel_button); final Item cancelItem = (Item) adapter.findItemById(R.id.cancel_button);
cancelItem.setTitle( cancelItem.setTitle(
getText(R.string.security_settings_fingerprint_enroll_introduction_cancel_setup)); getText(R.string.security_settings_fingerprint_enroll_introduction_cancel_setup));
layout.setDividerInset(getResources().getDimensionPixelSize(
R.dimen.suw_items_glif_icon_divider_inset));
} }
@Override @Override