Merge "fix InactiveApps instrumentation" into mnc-dev
diff --git a/res/drawable-mdpi/nfc_how_it_works.png b/res/drawable-mdpi/nfc_how_it_works.png
index ef3cd8c..1dc272c 100644
--- a/res/drawable-mdpi/nfc_how_it_works.png
+++ b/res/drawable-mdpi/nfc_how_it_works.png
Binary files differ
diff --git a/res/drawable-xhdpi/nfc_how_it_works.png b/res/drawable-xhdpi/nfc_how_it_works.png
index 874d32f..e61d77f 100644
--- a/res/drawable-xhdpi/nfc_how_it_works.png
+++ b/res/drawable-xhdpi/nfc_how_it_works.png
Binary files differ
diff --git a/res/drawable-xxhdpi/nfc_how_it_works.png b/res/drawable-xxhdpi/nfc_how_it_works.png
index 748ad6a..0c816bd 100644
--- a/res/drawable-xxhdpi/nfc_how_it_works.png
+++ b/res/drawable-xxhdpi/nfc_how_it_works.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/nfc_how_it_works.png b/res/drawable-xxxhdpi/nfc_how_it_works.png
index d970dae..0add50f 100644
--- a/res/drawable-xxxhdpi/nfc_how_it_works.png
+++ b/res/drawable-xxxhdpi/nfc_how_it_works.png
Binary files differ
diff --git a/res/layout-land/fingerprint_enroll_enrolling.xml b/res/layout-land/fingerprint_enroll_enrolling.xml
index 8577f5f..c72c029 100644
--- a/res/layout-land/fingerprint_enroll_enrolling.xml
+++ b/res/layout-land/fingerprint_enroll_enrolling.xml
@@ -61,7 +61,10 @@
android:layout_weight="1"
android:layout_height="match_parent">
- <include layout="@layout/fingerprint_enroll_enrolling_content"/>
+ <include layout="@layout/fingerprint_enroll_enrolling_content"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"/>
<TextView
style="@style/TextAppearance.FingerprintErrorText"
diff --git a/res/layout-land/fingerprint_enroll_finish.xml b/res/layout-land/fingerprint_enroll_finish.xml
index 558866c..f1bf885 100644
--- a/res/layout-land/fingerprint_enroll_finish.xml
+++ b/res/layout-land/fingerprint_enroll_finish.xml
@@ -79,8 +79,8 @@
<ImageView
android:id="@+id/fingerprint_in_app_indicator"
- android:layout_width="120dp"
- android:layout_height="120dp"
+ android:layout_width="@dimen/fingerprint_in_app_indicator_size"
+ android:layout_height="@dimen/fingerprint_in_app_indicator_size"
android:layout_gravity="center_horizontal"
android:contentDescription="@android:string/fingerprint_icon_content_description"
android:src="@drawable/fp_app_indicator" />
diff --git a/res/layout/fingerprint_enroll_enrolling_base.xml b/res/layout/fingerprint_enroll_enrolling_base.xml
index 23ffa69..c93de4e 100644
--- a/res/layout/fingerprint_enroll_enrolling_base.xml
+++ b/res/layout/fingerprint_enroll_enrolling_base.xml
@@ -57,8 +57,8 @@
<include layout="@layout/fingerprint_enroll_enrolling_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="36dp"
- android:layout_gravity="center_horizontal"/>
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="@dimen/fingerprint_enrolling_content_margin_top"/>
<TextView
style="@style/TextAppearance.FingerprintErrorText"
@@ -67,6 +67,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_gravity="center_horizontal"
+ android:accessibilityLiveRegion="polite"
android:visibility="invisible"/>
</LinearLayout>
diff --git a/res/layout/fingerprint_enroll_enrolling_content.xml b/res/layout/fingerprint_enroll_enrolling_content.xml
index b3171a3..fd6d726 100644
--- a/res/layout/fingerprint_enroll_enrolling_content.xml
+++ b/res/layout/fingerprint_enroll_enrolling_content.xml
@@ -19,13 +19,12 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="36dp"
android:layout_gravity="center_horizontal">
<ImageView
android:id="@+id/fingerprint_animator"
- android:layout_width="88dp"
- android:layout_height="88dp"
+ android:layout_width="@dimen/fingerprint_animation_size"
+ android:layout_height="@dimen/fingerprint_animation_size"
android:layout_centerInParent="true"
android:background="@drawable/fp_illustration_enrollment"
android:backgroundTint="@color/fingerprint_indicator_background_resting"
@@ -33,8 +32,8 @@
<ProgressBar
android:id="@+id/fingerprint_progress_bar"
- android:layout_width="192dp"
- android:layout_height="192dp"
+ android:layout_width="@dimen/fingerprint_progress_bar_size"
+ android:layout_height="@dimen/fingerprint_progress_bar_size"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyleHorizontal"
android:max="10000"
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index cbb6466..f65e932 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -37,9 +37,13 @@
android:layout_marginTop="@dimen/suw_description_margin_top"
android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
+ <View
+ android:layout_height="0dp"
+ android:layout_width="match_parent"
+ android:layout_weight="1"/>
+
<include
layout="@layout/fingerprint_enroll_find_sensor_graphic"
- android:layout_marginTop="32dp"
android:layout_width="@dimen/fingerprint_find_sensor_graphic_size"
android:layout_height="@dimen/fingerprint_find_sensor_graphic_size"
android:layout_gravity="center_horizontal"/>
diff --git a/res/layout/fingerprint_enroll_finish_base.xml b/res/layout/fingerprint_enroll_finish_base.xml
index e0e261e..3ca5dfc 100644
--- a/res/layout/fingerprint_enroll_finish_base.xml
+++ b/res/layout/fingerprint_enroll_finish_base.xml
@@ -37,11 +37,15 @@
android:layout_marginTop="@dimen/suw_description_margin_top"
android:text="@string/security_settings_fingerprint_enroll_finish_message"/>
+ <View
+ android:layout_height="0dp"
+ android:layout_width="match_parent"
+ android:layout_weight="1"/>
+
<ImageView
android:id="@+id/fingerprint_in_app_indicator"
- android:layout_width="120dp"
- android:layout_height="120dp"
- android:layout_marginTop="56dp"
+ android:layout_width="@dimen/fingerprint_in_app_indicator_size"
+ android:layout_height="@dimen/fingerprint_in_app_indicator_size"
android:layout_gravity="center_horizontal"
android:contentDescription="@android:string/fingerprint_icon_content_description"
android:src="@drawable/fp_app_indicator" />
diff --git a/res/values-sw400dp/dimens.xml b/res/values-sw400dp/dimens.xml
new file mode 100755
index 0000000..fcc9c6f
--- /dev/null
+++ b/res/values-sw400dp/dimens.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2015 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
+ -->
+
+<resources>
+ <dimen name="fingerprint_ring_radius">106dp</dimen>
+ <dimen name="fingerprint_animation_size">100dp</dimen>
+ <dimen name="fingerprint_progress_bar_size">220dp</dimen>
+ <dimen name="fingerprint_enrolling_content_margin_top">56dp</dimen>
+ <dimen name="fingerprint_in_app_indicator_size">176dp</dimen>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c10e83f..d41ff03 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -233,6 +233,10 @@
<dimen name="fingerprint_decor_padding_top">0dp</dimen>
<dimen name="fingerprint_error_text_appear_distance">16dp</dimen>
<dimen name="fingerprint_error_text_disappear_distance">-8dp</dimen>
+ <dimen name="fingerprint_animation_size">88dp</dimen>
+ <dimen name="fingerprint_progress_bar_size">192dp</dimen>
+ <dimen name="fingerprint_enrolling_content_margin_top">36dp</dimen>
+ <dimen name="fingerprint_in_app_indicator_size">120dp</dimen>
<dimen name="confirm_credentials_security_method_margin">48dp</dimen>
<dimen name="fab_size">56dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index faa0c1c..9a3242e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -747,7 +747,7 @@
<string name="security_settings_fingerprint_enroll_start_title">Let\u2019s start!</string>
<!-- Message shown in fingerprint enrollment dialog to begin enrollment -->
<string name="security_settings_fingerprint_enroll_start_message">Put your finger on the fingerprint sensor. Lift after you feel a vibration.</string>
- <!-- Title shown in fingerprint enrollment dialog to repeat touching the fingerprint sensor [CHAR LIMIT=22] -->
+ <!-- Title shown in fingerprint enrollment dialog to repeat touching the fingerprint sensor [CHAR LIMIT=28] -->
<string name="security_settings_fingerprint_enroll_repeat_title">Great! Now repeat.</string>
<!-- Message shown in fingerprint enrollment dialog to repeat touching the fingerprint sensor -->
<string name="security_settings_fingerprint_enroll_repeat_message">Put the same finger on the fingerprint sensor and lift after you feel a vibration.</string>
@@ -5588,29 +5588,25 @@
<!-- Caption for button linking to a page explaining how Tap and Pay works-->
<string name="nfc_payment_how_it_works">How it works</string>
<!-- String shown when there are no NFC payment applications installed -->
- <string name="nfc_payment_no_apps">Use Tap & pay to make in-store purchases</string>
+ <string name="nfc_payment_no_apps">Pay with your phone in stores</string>
<!-- Header text that can be clicked on to change the default payment app -->
<string name="nfc_payment_default">Payment default</string>
<!-- Summary text that is shown when no default app is set -->
<string name="nfc_payment_default_not_set">Not set</string>
<!-- String indicating the label of the default payment app and a description of its state; eg Google Wallet - MasterCard 1234 -->
<string name="nfc_payment_app_and_desc"><xliff:g id="app">%1$s</xliff:g> - <xliff:g id="description">%2$s</xliff:g></string>
- <!-- Header for action to choose when the open app supports TapPay -->
- <string name="nfc_payment_open_app">If open app supports Tap & pay</string>
+ <!-- Header for what to do when the open app supports TapPay: use the default set app, or the open app -->
+ <string name="nfc_payment_use_default">Use default</string>
+ <!-- Always use the default app (independent of what app is open) -->
+ <string name="nfc_payment_favor_default">Always</string>
<!-- If open app supports TapPay, use that app instead of the default -->
- <string name="nfc_payment_favor_open">Use that app instead of <xliff:g id="app">%1$s</xliff:g></string>
- <!-- If open app supports TapPay, use that app instead of the default (name of default app unknown) -->
- <string name="nfc_payment_favor_open_default_unknown">Use that app instead</string>
- <!-- If open app supports TapPay, still use the default app -->
- <string name="nfc_payment_favor_default">Still use <xliff:g id="app">%1$s</xliff:g></string>
- <!-- If open app supports TapPay, still use the default app (name of default app unknown) -->
- <string name="nfc_payment_favor_default_default_unknown">Still use default</string>
+ <string name="nfc_payment_favor_open">Except when another payment app is open</string>
<!-- Header for a dialog asking the user which payment app to use -->
<string name="nfc_payment_pay_with">At a Tap & pay terminal, pay with:</string>
<!-- Header for text explaning how to pay at a payment terminal in a store -->
<string name="nfc_how_it_works_title">Paying at the terminal</string>
<!-- Content for text explaning how to pay at a payment terminal in a store -->
- <string name="nfc_how_it_works_content">Once you\u2019ve set up a Tap & pay app and your phone is powered on, tap your phone on any terminal with the Tap & pay logo on it to make a purchase.</string>
+ <string name="nfc_how_it_works_content">Set up a payment app. Then just hold the back of your phone up to any terminal with the contactless symbol.</string>
<!-- Button the user can click to indicate he understood and dismiss the screen -->
<string name="nfc_how_it_works_got_it">Got it</string>
<!-- NFC More... title. [CHAR LIMIT=40] -->
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index da3aeb8..4f8d726 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -26,24 +26,14 @@
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
-import android.annotation.Nullable;
import android.app.Activity;
-import android.app.Fragment;
import android.content.Intent;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
import android.os.CountDownTimer;
import android.os.SystemClock;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.storage.StorageManager;
-import android.view.MenuItem;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import android.widget.TextView;
@@ -52,7 +42,6 @@
import android.view.ViewGroup;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -149,7 +138,10 @@
ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT);
}
- mLockPatternView.setTactileFeedbackEnabled(mLockPatternUtils.isTactileFeedbackEnabled());
+ mLockPatternView.setTactileFeedbackEnabled(
+ mLockPatternUtils.isTactileFeedbackEnabled());
+ mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
+ UserHandle.myUserId()));
mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
updateStage(Stage.NeedToUnlock);
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 7a5a60a..e014465 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -485,7 +485,7 @@
// a header at the top.
FrameLayout pinnedHeader = (FrameLayout) rootView.findViewById(R.id.pinned_header);
AppHeader.createAppHeader(getActivity(), detail.icon, detail.label, null, pinnedHeader);
- AppDetailsFragment.show(DataUsageSummary.this, app, detail.label, false);
+ AppDetailsFragment.show(DataUsageSummary.this, app, detail.label, true);
} catch (NameNotFoundException e) {
Log.w(TAG, "Could not find " + mShowAppImmediatePkg, e);
Toast.makeText(getActivity(), getString(R.string.unknown_app), Toast.LENGTH_LONG)
@@ -936,9 +936,11 @@
if (isAppDetailMode()) {
mAppDetail.setVisibility(View.VISIBLE);
mCycleAdapter.setChangeVisible(false);
+ mChart.setVisibility(View.GONE);
} else {
mAppDetail.setVisibility(View.GONE);
mCycleAdapter.setChangeVisible(true);
+ mChart.setVisibility(View.VISIBLE);
// hide detail stats when not in detail mode
mChart.bindDetailNetworkStats(null);
@@ -1998,6 +2000,16 @@
target.mCurrentApp = null;
target.updateBody();
}
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ getFragmentManager().popBackStack();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
}
/**
diff --git a/src/com/android/settings/applications/AppStatePowerBridge.java b/src/com/android/settings/applications/AppStatePowerBridge.java
index 069c901..e25b9c9 100644
--- a/src/com/android/settings/applications/AppStatePowerBridge.java
+++ b/src/com/android/settings/applications/AppStatePowerBridge.java
@@ -56,7 +56,7 @@
}
public static final AppFilter FILTER_POWER_WHITELISTED = new CompoundFilter(
- ApplicationsState.FILTER_PERSONAL, new AppFilter() {
+ ApplicationsState.FILTER_PERSONAL_WITHOUT_DISABLED_UNTIL_USED, new AppFilter() {
@Override
public void init() {
}
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 27b6c80..3a0eee6 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -836,6 +836,9 @@
@Override
protected ProcStatsPackageEntry doInBackground(Void... params) {
+ if (getActivity() == null) {
+ return null;
+ }
if (mPackageInfo == null) {
return null;
}
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index ce2dbe0..44ced66 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -154,7 +154,7 @@
public static final AppFilter[] FILTERS = new AppFilter[] {
new CompoundFilter(AppStatePowerBridge.FILTER_POWER_WHITELISTED,
ApplicationsState.FILTER_ALL_ENABLED), // High power whitelist, on
- new CompoundFilter(ApplicationsState.FILTER_PERSONAL,
+ new CompoundFilter(ApplicationsState.FILTER_PERSONAL_WITHOUT_DISABLED_UNTIL_USED,
ApplicationsState.FILTER_ALL_ENABLED), // All apps label, but personal filter
ApplicationsState.FILTER_EVERYTHING, // All apps
ApplicationsState.FILTER_ALL_ENABLED, // Enabled
diff --git a/src/com/android/settings/applications/ManageAssist.java b/src/com/android/settings/applications/ManageAssist.java
index de69bb6..f1d70ee 100644
--- a/src/com/android/settings/applications/ManageAssist.java
+++ b/src/com/android/settings/applications/ManageAssist.java
@@ -20,6 +20,7 @@
import android.content.ComponentName;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.os.Handler;
import android.preference.Preference;
import android.preference.SwitchPreference;
import android.provider.Settings;
@@ -45,6 +46,7 @@
private SwitchPreference mContextPref;
private SwitchPreference mScreenshotPref;
private VoiceInputListPreference mVoiceInputPref;
+ private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle icicle) {
@@ -78,6 +80,7 @@
if (preference == mContextPref) {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSIST_STRUCTURE_ENABLED,
(boolean) newValue ? 1 : 0);
+ postUpdateUi();
return true;
}
if (preference == mScreenshotPref) {
@@ -102,6 +105,15 @@
return false;
}
+ private void postUpdateUi() {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ updateUi();
+ }
+ });
+ }
+
private void updateUi() {
mDefaultAssitPref.refreshAssistApps();
mVoiceInputPref.refreshVoiceInputs();
@@ -122,6 +134,11 @@
getPreferenceScreen().addPreference(mVoiceInputPref);
mVoiceInputPref.setAssistRestrict(currentAssist);
}
+
+ mScreenshotPref.setEnabled(mContextPref.isChecked());
+ if (!mContextPref.isChecked()) {
+ mScreenshotPref.setChecked(false);
+ }
}
private boolean isCurrentAssistVoiceService() {
diff --git a/src/com/android/settings/nfc/NfcForegroundPreference.java b/src/com/android/settings/nfc/NfcForegroundPreference.java
index 4f4398f..8ee5535 100644
--- a/src/com/android/settings/nfc/NfcForegroundPreference.java
+++ b/src/com/android/settings/nfc/NfcForegroundPreference.java
@@ -40,19 +40,12 @@
PaymentBackend.PaymentAppInfo defaultApp = mPaymentBackend.getDefaultApp();
boolean foregroundMode = mPaymentBackend.isForegroundMode();
setPersistent(false);
- setTitle(getContext().getString(R.string.nfc_payment_open_app));
+ setTitle(getContext().getString(R.string.nfc_payment_use_default));
CharSequence favorOpen;
CharSequence favorDefault;
clearItems();
- if (defaultApp == null) {
- favorOpen = getContext().getString(R.string.nfc_payment_favor_open_default_unknown);
- favorDefault = getContext().getString(R.string.nfc_payment_favor_default_default_unknown);
- } else {
- favorOpen = getContext().getString(R.string.nfc_payment_favor_open, defaultApp.label);
- favorDefault = getContext().getString(R.string.nfc_payment_favor_default, defaultApp.label);
- }
- addItem(favorOpen.toString(), true);
- addItem(favorDefault.toString(), false);
+ addItem(getContext().getString(R.string.nfc_payment_favor_open), true);
+ addItem(getContext().getString(R.string.nfc_payment_favor_default), false);
if (foregroundMode) {
setSelectedValue(true);
} else {