Merge "Fix assist gesture keyword" into oc-dr1-dev
diff --git a/res/layout/preference_category_material_settings.xml b/res/layout/preference_category_material_settings.xml
index 5a1043d..3334bbb 100644
--- a/res/layout/preference_category_material_settings.xml
+++ b/res/layout/preference_category_material_settings.xml
@@ -51,6 +51,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.Material.Body2"
+ android:textAlignment="viewStart"
android:textColor="?android:attr/colorAccent"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"/>
<TextView
diff --git a/res/layout/suggestion_condition_footer.xml b/res/layout/suggestion_condition_footer.xml
index f9d30e6..3eea6a5 100644
--- a/res/layout/suggestion_condition_footer.xml
+++ b/res/layout/suggestion_condition_footer.xml
@@ -20,8 +20,8 @@
style="@style/SuggestionConditionStyle"
android:layout_width="match_parent"
android:layout_height="44dp"
- android:paddingTop="4dp"
- android:paddingEnd="16dp"
+ android:paddingTop="10dp"
+ android:paddingEnd="10dp"
android:orientation="horizontal"
android:gravity="end">
diff --git a/res/layout/suggestion_condition_header.xml b/res/layout/suggestion_condition_header.xml
index 4519a46..2551b65 100644
--- a/res/layout/suggestion_condition_header.xml
+++ b/res/layout/suggestion_condition_header.xml
@@ -20,16 +20,13 @@
style="@style/SuggestionConditionStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingTop="10dp"
+ android:paddingBottom="10dp"
android:orientation="vertical">
- <Space
- android:id="@+id/top_space"
- android:layout_width="match_parent"
- android:layout_height="9dp"/>
-
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="35dp"
+ android:layout_height="36dp"
android:layout_centerHorizontal="true">
<FrameLayout
@@ -87,8 +84,4 @@
</RelativeLayout>
- <Space
- android:layout_width="match_parent"
- android:layout_height="12dp"/>
-
</LinearLayout>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 70417e5..af20217 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -329,4 +329,8 @@
<dimen name="battery_meter_width">66dp</dimen>
<dimen name="battery_meter_height">100dp</dimen>
+ <!-- Suggestion/condition header padding -->
+ <dimen name="suggestion_condition_header_padding_collapsed">10dp</dimen>
+ <dimen name="suggestion_condition_header_padding_expanded">5dp</dimen>
+
</resources>
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index dc4c995..fe0111b 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -247,9 +247,8 @@
/**
* Whether to show the checkbox to wipe the eUICC.
*
- * <p>We show the checkbox on any device which supports eUICC as long as either the eUICC was
- * ever provisioned (that is, at least one profile was ever downloaded onto it), or if the user
- * has enabled development mode.
+ * <p>We show the checkbox on any device which supports eUICC as long as the eUICC was ever
+ * provisioned (that is, at least one profile was ever downloaded onto it).
*/
@VisibleForTesting
boolean showWipeEuicc() {
@@ -258,8 +257,7 @@
return false;
}
ContentResolver cr = context.getContentResolver();
- return Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0
- || Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+ return Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0;
}
@VisibleForTesting
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
index 6f9cf40..b64da26 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
@@ -21,6 +21,9 @@
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -30,11 +33,13 @@
public static final String PREF_KEY = "bt_rename_device";
private final Fragment mFragment;
+ private MetricsFeatureProvider mMetricsFeatureProvider;
public BluetoothDeviceRenamePreferenceController(Context context, Fragment fragment,
Lifecycle lifecycle) {
super(context, lifecycle);
mFragment = fragment;
+ mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@VisibleForTesting
@@ -42,6 +47,7 @@
LocalBluetoothAdapter localAdapter) {
super(context, localAdapter);
mFragment = fragment;
+ mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -57,6 +63,8 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (PREF_KEY.equals(preference.getKey())) {
+ mMetricsFeatureProvider.action(mContext,
+ MetricsProto.MetricsEvent.ACTION_BLUETOOTH_RENAME);
LocalDeviceNameDialogFragment.newInstance()
.show(mFragment.getFragmentManager(), LocalDeviceNameDialogFragment.TAG);
return true;
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 6ff33ca..da9e8a7 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -17,6 +17,7 @@
import android.app.Activity;
import android.content.Context;
+import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
@@ -34,7 +35,6 @@
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.Space;
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -62,9 +62,10 @@
private static final String STATE_SUGGESTION_LIST = "suggestion_list";
private static final String STATE_CATEGORY_LIST = "category_list";
private static final String STATE_SUGGESTIONS_SHOWN_LOGGED = "suggestions_shown_logged";
- private static final String STATE_SUGGESTION_CONDITION_MODE = "suggestion_condition_mode";
@VisibleForTesting
+ static final String STATE_SUGGESTION_CONDITION_MODE = "suggestion_condition_mode";
+ @VisibleForTesting
static final int SUGGESTION_CONDITION_HEADER_POSITION = 0;
private final IconCache mCache;
@@ -417,11 +418,12 @@
holder.summary.setText(null);
}
- if (curMode == DashboardData.HEADER_MODE_COLLAPSED) {
- holder.topSpace.setVisibility(View.VISIBLE);
- } else {
- holder.topSpace.setVisibility(View.GONE);
- }
+ final Resources res = mContext.getResources();
+ final int padding = res.getDimensionPixelOffset(
+ curMode == DashboardData.HEADER_MODE_COLLAPSED
+ ? R.dimen.suggestion_condition_header_padding_collapsed
+ : R.dimen.suggestion_condition_header_padding_expanded);
+ holder.itemView.setPadding(0, padding, 0, padding);
holder.itemView.setOnClickListener(v -> {
if (moreSuggestions ) {
@@ -446,8 +448,9 @@
int position) {
// If there is suggestions to show, it will be at position 0 as we don't show the suggestion
// header anymore.
- if (position == (SUGGESTION_CONDITION_HEADER_POSITION)
- && mDashboardData.getSuggestions() != null) {
+ final List<Tile> suggestions = mDashboardData.getSuggestions();
+ if (position == SUGGESTION_CONDITION_HEADER_POSITION
+ && suggestions != null && suggestions.size() > 0) {
mSuggestionAdapter = new SuggestionAdapter(mContext, (List<Tile>)
mDashboardData.getItemEntityByPosition(position), mSuggestionsShownLogged);
mSuggestionDismissHandler = new SuggestionDismissController(mContext,
@@ -548,13 +551,11 @@
public static class SuggestionAndConditionHeaderHolder extends DashboardItemHolder {
public final LinearLayout icons;
public final ImageView expandIndicator;
- public final Space topSpace;
public SuggestionAndConditionHeaderHolder(View itemView) {
super(itemView);
icons = itemView.findViewById(id.additional_icons);
expandIndicator = itemView.findViewById(id.expand_indicator);
- topSpace = itemView.findViewById(id.top_space);
}
}
diff --git a/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
index 2927002..a966beb 100644
--- a/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
+++ b/src/com/android/settings/fuelgauge/BatteryHistoryPreference.java
@@ -35,9 +35,10 @@
private CharSequence mSummary;
private TextView mSummaryView;
- private boolean hideSummary;
@VisibleForTesting
+ boolean hideSummary;
+ @VisibleForTesting
BatteryInfo mBatteryInfo;
public BatteryHistoryPreference(Context context, AttributeSet attrs) {
@@ -56,8 +57,10 @@
public void setBottomSummary(CharSequence text) {
mSummary = text;
if (mSummaryView != null) {
+ mSummaryView.setVisibility(View.VISIBLE);
mSummaryView.setText(mSummary);
}
+ hideSummary = false;
}
public void hideBottomSummary() {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
index 3100e95..90344ce 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
@@ -15,7 +15,10 @@
import android.app.Activity;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.pm.PackageManager;
+import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Bundle;
import android.os.Handler;
@@ -171,7 +174,11 @@
updatePreference(mHistPref);
refreshPowerUsageDataList(mStatsHelper, mUsageListGroup);
- if (mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(context)) {
+ Intent batteryIntent =
+ context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ final boolean plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
+
+ if (mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(context) && !plugged) {
mHistPref.setBottomSummary(
mPowerUsageFeatureProvider.getAdvancedUsageScreenInfoString());
} else {
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index 854857a..a23eff9 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -306,11 +306,8 @@
try {
ApplicationInfo info = mPm.getApplicationInfo(rule.getOwner().getPackageName(), 0);
- LoadIconTask task = new LoadIconTask(this);
- task.execute(info);
setSummary(computeRuleSummary(rule, isSystemRule, info.loadLabel(mPm)));
} catch (PackageManager.NameNotFoundException e) {
- setIcon(R.drawable.ic_label);
appExists = false;
return;
}
@@ -347,29 +344,6 @@
};
}
- private class LoadIconTask extends AsyncTask<ApplicationInfo, Void, Drawable> {
- private final WeakReference<Preference> prefReference;
-
- public LoadIconTask(Preference pref) {
- prefReference = new WeakReference<>(pref);
- }
-
- @Override
- protected Drawable doInBackground(ApplicationInfo... params) {
- return params[0].loadIcon(mPm);
- }
-
- @Override
- protected void onPostExecute(Drawable icon) {
- if (icon != null) {
- final Preference pref = prefReference.get();
- if (pref != null) {
- pref.setIcon(icon);
- }
- }
- }
- }
-
public static class SummaryBuilder {
private Context mContext;
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 239b6cd..0aea810 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -51,7 +51,6 @@
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
-import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
@@ -67,6 +66,7 @@
import com.android.settings.Utils;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.notification.RedactionInterstitial;
+import com.android.settings.widget.ImeAwareEditText;
import com.android.setupwizardlib.GlifLayout;
import java.util.ArrayList;
@@ -180,7 +180,7 @@
private String mChosenPassword;
private boolean mHasChallenge;
private long mChallenge;
- private EditText mPasswordEntry;
+ private ImeAwareEditText mPasswordEntry;
private TextViewInputDisabler mPasswordEntryInputDisabler;
private int mPasswordMinLength = LockPatternUtils.MIN_LOCK_PASSWORD_SIZE;
private int mPasswordMaxLength = 16;
@@ -365,7 +365,7 @@
setupPasswordRequirementsView(view);
mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
- mPasswordEntry = (EditText) view.findViewById(R.id.password_entry);
+ mPasswordEntry = view.findViewById(R.id.password_entry);
mPasswordEntry.setOnEditorActionListener(this);
mPasswordEntry.addTextChangedListener(this);
mPasswordEntry.requestFocus();
@@ -488,6 +488,7 @@
mSaveAndFinishWorker.setListener(this);
} else {
mPasswordEntry.requestFocus();
+ mPasswordEntry.scheduleShowSoftInput();
}
}
diff --git a/tests/robotests/src/com/android/settings/MasterClearTest.java b/tests/robotests/src/com/android/settings/MasterClearTest.java
index d913946..8e8578f 100644
--- a/tests/robotests/src/com/android/settings/MasterClearTest.java
+++ b/tests/robotests/src/com/android/settings/MasterClearTest.java
@@ -92,55 +92,32 @@
@Test
public void testShowWipeEuicc_euiccDisabled() {
prepareEuiccState(
- false /* isEuiccEnabled */, true /* isEuiccProvisioned */,
- true /* isDevelopmentSettingsEnabled */);
+ false /* isEuiccEnabled */, true /* isEuiccProvisioned */);
assertThat(mMasterClear.showWipeEuicc()).isFalse();
}
@Test
public void testShowWipeEuicc_euiccEnabled_unprovisioned() {
prepareEuiccState(
- true /* isEuiccEnabled */, false /* isEuiccProvisioned */,
- false /* isDevelopmentSettingsEnabled */);
+ true /* isEuiccEnabled */, false /* isEuiccProvisioned */);
assertThat(mMasterClear.showWipeEuicc()).isFalse();
}
@Test
public void testShowWipeEuicc_euiccEnabled_provisioned() {
prepareEuiccState(
- true /* isEuiccEnabled */, true /* isEuiccProvisioned */,
- false /* isDevelopmentSettingsEnabled */);
- assertThat(mMasterClear.showWipeEuicc()).isTrue();
- }
-
- @Test
- public void testShowWipeEuicc_euiccEnabled_developmentSettingsEnabled() {
- prepareEuiccState(
- true /* isEuiccEnabled */, false /* isEuiccProvisioned */,
- true /* isDevelopmentSettingsEnabled */);
- assertThat(mMasterClear.showWipeEuicc()).isTrue();
- }
-
- @Test
- public void testShowWipeEuicc_euiccEnabled_provisioned_developmentSettingsEnabled() {
- prepareEuiccState(
- true /* isEuiccEnabled */, true /* isEuiccProvisioned */,
- true /* isDevelopmentSettingsEnabled */);
+ true /* isEuiccEnabled */, true /* isEuiccProvisioned */);
assertThat(mMasterClear.showWipeEuicc()).isTrue();
}
private void prepareEuiccState(
boolean isEuiccEnabled,
- boolean isEuiccProvisioned,
- boolean isDevelopmentSettingsEnabled) {
+ boolean isEuiccProvisioned) {
doReturn(mActivity).when(mMasterClear).getContext();
doReturn(isEuiccEnabled).when(mMasterClear).isEuiccEnabled(any());
ContentResolver cr = mActivity.getContentResolver();
Settings.Global.putInt(
cr, android.provider.Settings.Global.EUICC_PROVISIONED, isEuiccProvisioned ? 1 : 0);
- Settings.Global.putInt(
- cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,
- isDevelopmentSettingsEnabled ? 1 : 0);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
index 5c23d60..8cf8736 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
@@ -36,6 +36,7 @@
import android.content.res.TypedArray;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Icon;
+import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
@@ -48,6 +49,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.conditional.Condition;
+import com.android.settings.dashboard.conditional.ConditionAdapter;
import com.android.settings.dashboard.suggestions.SuggestionAdapter;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -97,6 +99,7 @@
private DashboardAdapter mDashboardAdapter;
private DashboardAdapter.SuggestionAndConditionHeaderHolder mSuggestionHolder;
private DashboardData.SuggestionConditionHeaderData mSuggestionHeaderData;
+ private List<Condition> mConditionList;
@Before
public void setUp() {
@@ -115,10 +118,11 @@
when(mResources.getQuantityString(any(int.class), any(int.class), any()))
.thenReturn("");
- List<Condition> conditions = new ArrayList<>();
- conditions.add(mCondition);
- mDashboardAdapter = new DashboardAdapter(mContext, null, conditions, null, null);
- mSuggestionHeaderData = new DashboardData.SuggestionConditionHeaderData(conditions, 1);
+ mConditionList = new ArrayList<>();
+ mConditionList.add(mCondition);
+ when(mCondition.shouldShow()).thenReturn(true);
+ mDashboardAdapter = new DashboardAdapter(mContext, null, mConditionList, null, null);
+ mSuggestionHeaderData = new DashboardData.SuggestionConditionHeaderData(mConditionList, 1);
when(mView.getTag()).thenReturn(mCondition);
}
@@ -392,6 +396,38 @@
// should not crash
}
+ @Test
+ public void testBindConditionAndSuggestion_emptySuggestion_shouldSetConditionAdapter() {
+ final Bundle savedInstance = new Bundle();
+ savedInstance.putInt(DashboardAdapter.STATE_SUGGESTION_CONDITION_MODE,
+ DashboardData.HEADER_MODE_FULLY_EXPANDED);
+ mDashboardAdapter = new DashboardAdapter(mContext, savedInstance, mConditionList,
+ null /* SuggestionParser */, null /* SuggestionDismissController.Callback */);
+
+ final List<Tile> suggestions = new ArrayList<>();
+ final List<DashboardCategory> categories = new ArrayList<>();
+ final DashboardCategory category = mock(DashboardCategory.class);
+ categories.add(category);
+ final List<Tile> tiles = new ArrayList<>();
+ tiles.add(mock(Tile.class));
+ category.tiles = tiles;
+ mDashboardAdapter.setCategoriesAndSuggestions(categories, suggestions);
+
+ final RecyclerView data = mock(RecyclerView.class);
+ when(data.getResources()).thenReturn(mResources);
+ when(data.getContext()).thenReturn(mContext);
+ when(mResources.getDisplayMetrics()).thenReturn(mock(DisplayMetrics.class));
+ final View itemView = mock(View.class);
+ when(itemView.findViewById(R.id.data)).thenReturn(data);
+ final DashboardAdapter.SuggestionAndConditionContainerHolder holder =
+ new DashboardAdapter.SuggestionAndConditionContainerHolder(itemView);
+
+ mDashboardAdapter.onBindConditionAndSuggestion(
+ holder, DashboardAdapter.SUGGESTION_CONDITION_HEADER_POSITION);
+
+ verify(data).setAdapter(any(ConditionAdapter.class));
+ }
+
private List<Tile> makeSuggestions(String... pkgNames) {
final List<Tile> suggestions = new ArrayList<>();
for (String pkgName : pkgNames) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistoryPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistoryPreferenceTest.java
index 4f8f222..0d03512 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistoryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistoryPreferenceTest.java
@@ -97,6 +97,7 @@
TextView view = (TextView) mViewHolder.findViewById(R.id.bottom_summary);
assertThat(view.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(view.getText()).isEqualTo(TEST_STRING);
+ assertThat(mBatteryHistoryPreference.hideSummary).isFalse();
}
@Test
@@ -107,5 +108,6 @@
TextView view = (TextView) mViewHolder.findViewById(R.id.bottom_summary);
assertThat(view.getVisibility()).isEqualTo(View.GONE);
assertThat(view.getText()).isEqualTo("");
+ assertThat(mBatteryHistoryPreference.hideSummary).isTrue();
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
index c5e4707..796e63c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
@@ -30,6 +30,7 @@
import android.os.BatteryStats;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.TestConfig;
+import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -64,12 +65,7 @@
.setupForTest(mContext)
.getPowerUsageFeatureProvider(mContext);
- mDisChargingBatteryBroadcast = new Intent();
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 0);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
- BatteryManager.BATTERY_STATUS_FULL);
+ mDisChargingBatteryBroadcast = BatteryTestUtils.getDischargingIntent();
doReturn(mContext).when(mContext).getApplicationContext();
when(mStats.computeBatteryTimeRemaining(anyLong())).thenReturn(TEST_TIME_REMAINING);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 24d1bf9..9bd0b6f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -39,6 +39,7 @@
import com.android.settings.TestConfig;
import com.android.settings.graph.UsageView;
+import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -63,6 +64,7 @@
private static final String STATUS_FULL = "Full";
private static final String STATUS_CHARGING_NO_TIME = "50% - charging";
private static final String STATUS_CHARGING_TIME = "50% - 0m until fully charged";
+ private static final String STATUS_NOT_CHARGING = "Not charging";
private static final int PLUGGED_IN = 1;
private static final long REMAINING_TIME_NULL = -1;
private static final long REMAINING_TIME = 2;
@@ -87,20 +89,9 @@
mContext = spy(RuntimeEnvironment.application);
mFeatureFactory = FakeFeatureFactory.setupForTest(mContext);
- mDisChargingBatteryBroadcast = new Intent();
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 0);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
- mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
- BatteryManager.BATTERY_STATUS_FULL);
+ mDisChargingBatteryBroadcast = BatteryTestUtils.getDischargingIntent();
- mChargingBatteryBroadcast = new Intent();
- mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED,
- BatteryManager.BATTERY_PLUGGED_AC);
- mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 50);
- mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
- mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
- BatteryManager.BATTERY_STATUS_UNKNOWN);
+ mChargingBatteryBroadcast = BatteryTestUtils.getChargingIntent();
}
@Test
@@ -110,7 +101,7 @@
mDisChargingBatteryBroadcast, mBatteryStats, SystemClock.elapsedRealtime() * 1000,
true /* shortString */);
- assertThat(info.statusLabel).isEqualTo(STATUS_FULL);
+ assertThat(info.statusLabel).isEqualTo(STATUS_NOT_CHARGING);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
index aa8607f..bf89cac 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
@@ -20,6 +20,7 @@
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
@@ -28,16 +29,19 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.UserManager;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceManager;
+import android.view.View;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.R;
+import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.Utils;
@@ -90,11 +94,12 @@
private PowerUsageAdvanced mPowerUsageAdvanced;
private PowerUsageData mPowerUsageData;
private Context mShadowContext;
+ private Intent mDischargingBatteryIntent;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mShadowContext = RuntimeEnvironment.application;
+ mShadowContext = spy(RuntimeEnvironment.application);
mPowerUsageAdvanced = spy(new PowerUsageAdvanced());
List<BatterySipper> batterySippers = new ArrayList<>();
@@ -107,6 +112,8 @@
batterySippers.add(new BatterySipper(DrainType.WIFI, new FakeUid(FAKE_UID_1),
TYPE_WIFI_USAGE));
+ mDischargingBatteryIntent = BatteryTestUtils.getDischargingIntent();
+ doReturn(mDischargingBatteryIntent).when(mShadowContext).registerReceiver(any(), any());
when(mBatteryStatsHelper.getStats().getDischargeAmount(anyInt())).thenReturn(
DISCHARGE_AMOUNT);
when(mBatteryStatsHelper.getUsageList()).thenReturn(batterySippers);
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
new file mode 100644
index 0000000..2bdab27
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2017 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.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.Intent;
+import android.os.BatteryManager;
+
+public class BatteryTestUtils {
+
+ public static Intent getChargingIntent() {
+ return getCustomBatteryIntent(
+ BatteryManager.BATTERY_PLUGGED_AC,
+ 50 /* level */,
+ 100 /* scale */,
+ BatteryManager.BATTERY_STATUS_CHARGING);
+ }
+
+ public static Intent getDischargingIntent() {
+ return getCustomBatteryIntent(
+ 0 /* plugged */,
+ 10 /* level */,
+ 100 /* scale */,
+ BatteryManager.BATTERY_STATUS_DISCHARGING);
+ }
+
+ public static Intent getCustomBatteryIntent(int plugged, int level, int scale, int status) {
+ Intent intent = new Intent();
+ intent.putExtra(BatteryManager.EXTRA_PLUGGED, plugged);
+ intent.putExtra(BatteryManager.EXTRA_LEVEL, level);
+ intent.putExtra(BatteryManager.EXTRA_SCALE, scale);
+ intent.putExtra(BatteryManager.EXTRA_STATUS, status);
+
+ return intent;
+ }
+
+}