Use new app header in more screens.

- This covers app data usage settings, power usage details
- Addded helper method on AppHeaderController to build the header as
  Preference because every fragment needs to do this anyway.

Bug: 32442716
Test: RunSettingsRoboTests

Change-Id: I6d38321b867154f8fb5194b993d118bcdbbfedc9
This commit is contained in:
Fan Zhang
2016-10-28 11:17:04 -07:00
parent 5abaef7dd1
commit fdb833873a
9 changed files with 123 additions and 59 deletions

View File

@@ -27,6 +27,7 @@ import android.content.res.Resources;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.UserHandle; import android.os.UserHandle;
import android.support.annotation.IntDef; import android.support.annotation.IntDef;
import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -58,6 +59,7 @@ public class AppHeaderController {
int ACTION_APP_PREFERENCE = 3; int ACTION_APP_PREFERENCE = 3;
int ACTION_NOTIF_PREFERENCE = 4; int ACTION_NOTIF_PREFERENCE = 4;
} }
public static final String PREF_KEY_APP_HEADER = "pref_app_header";
private static final String TAG = "AppDetailFeature"; private static final String TAG = "AppDetailFeature";
@@ -175,6 +177,17 @@ public class AppHeaderController {
} }
} }
/**
* Done mutating appheader, rebinds everything and return a new {@link LayoutPreference}.
*/
public LayoutPreference done(Context context) {
final LayoutPreference pref = new LayoutPreference(context, done());
// Makes sure it's the first preference onscreen.
pref.setOrder(-1000);
pref.setKey(PREF_KEY_APP_HEADER);
return pref;
}
/** /**
* Done mutating appheader, rebinds everything. * Done mutating appheader, rebinds everything.
*/ */

View File

@@ -20,7 +20,6 @@ import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.util.Log; import android.util.Log;
import android.view.View;
import com.android.settings.AppHeader; import com.android.settings.AppHeader;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -47,7 +46,7 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
mPackageInfo.applicationInfo.loadLabel(mPm), mPackageName, mPackageInfo.applicationInfo.loadLabel(mPm), mPackageName,
mPackageInfo.applicationInfo.uid, 0); mPackageInfo.applicationInfo.uid, 0);
} else { } else {
final View appHeader = FeatureFactory.getFactory(activity) final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity) .getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */) .newAppHeaderController(this, null /* appHeader */)
.setIcon(mPackageInfo.applicationInfo.loadIcon(mPm)) .setIcon(mPackageInfo.applicationInfo.loadIcon(mPm))
@@ -56,11 +55,8 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
.setPackageName(mPackageName) .setPackageName(mPackageName)
.setUid(mPackageInfo.applicationInfo.uid) .setUid(mPackageInfo.applicationInfo.uid)
.setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE) .setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE)
.done(); .done(getPrefContext());
final Preference appHeaderPref = new LayoutPreference(getPrefContext(), appHeader); getPreferenceScreen().addPreference(pref);
// Makes sure it's the first preference onscreen.
appHeaderPref.setOrder(-1000);
getPreferenceScreen().addPreference(appHeaderPref);
} }
} }
} }

View File

@@ -31,8 +31,8 @@ import android.os.LocaleList;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.preference.PreferenceFrameLayout; import android.preference.PreferenceFrameLayout;
import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@@ -52,9 +52,9 @@ import android.widget.FrameLayout;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SectionIndexer; import android.widget.SectionIndexer;
import android.widget.Spinner; import android.widget.Spinner;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader; import com.android.settings.AppHeader;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings.AllApplicationsActivity; import com.android.settings.Settings.AllApplicationsActivity;
import com.android.settings.Settings.HighPowerApplicationsActivity; import com.android.settings.Settings.HighPowerApplicationsActivity;
@@ -67,6 +67,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState; import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
import com.android.settings.applications.AppStateUsageBridge.UsageState; import com.android.settings.applications.AppStateUsageBridge.UsageState;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.fuelgauge.HighPowerDetail; import com.android.settings.fuelgauge.HighPowerDetail;
import com.android.settings.fuelgauge.PowerWhitelistBackend; import com.android.settings.fuelgauge.PowerWhitelistBackend;
@@ -338,7 +339,7 @@ public class ManageApplications extends InstrumentedFragment
private void createHeader() { private void createHeader() {
Activity activity = getActivity(); Activity activity = getActivity();
FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header); FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
mSpinnerHeader = (ViewGroup) activity.getLayoutInflater() mSpinnerHeader = activity.getLayoutInflater()
.inflate(R.layout.apps_filter_spinner, pinnedHeader, false); .inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
mFilterSpinner = (Spinner) mSpinnerHeader.findViewById(R.id.filter_spinner); mFilterSpinner = (Spinner) mSpinnerHeader.findViewById(R.id.filter_spinner);
mFilterAdapter = new FilterSpinnerAdapter(this); mFilterAdapter = new FilterSpinnerAdapter(this);
@@ -371,9 +372,23 @@ public class ManageApplications extends InstrumentedFragment
@Override @Override
public void onViewCreated(View view, Bundle savedInstanceState) { public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
if (mListType == LIST_TYPE_STORAGE) { if (mListType == LIST_TYPE_STORAGE) {
final Activity activity = getActivity();
final boolean isNewIAEnabled = FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity)
.isEnabled();
if (!isNewIAEnabled) {
FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header); FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, -1, pinnedHeader); AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, -1, pinnedHeader);
} else {
final View appHeader = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeaderView */)
.setLabel(mVolumeName)
.done();
mListView.addHeaderView(appHeader);
}
} }
} }

View File

@@ -133,7 +133,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
: new ColorDrawable(0), : new ColorDrawable(0),
mApp.mUiLabel, mApp.mPackage, mApp.mUiTargetApp.uid); mApp.mUiLabel, mApp.mPackage, mApp.mUiTargetApp.uid);
} else { } else {
final View appHeader = FeatureFactory.getFactory(activity) final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity) .getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */) .newAppHeaderController(this, null /* appHeader */)
.setIcon(mApp.mUiTargetApp != null .setIcon(mApp.mUiTargetApp != null
@@ -145,11 +145,8 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
? mApp.mUiTargetApp.uid ? mApp.mUiTargetApp.uid
: UserHandle.USER_NULL) : UserHandle.USER_NULL)
.setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE) .setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE)
.done(); .done(getPrefContext());
final Preference appHeaderPref = new LayoutPreference(getPrefContext(), appHeader); getPreferenceScreen().addPreference(pref);
// Makes sure it's the first preference onscreen.
appHeaderPref.setOrder(-1000);
getPreferenceScreen().addPreference(appHeaderPref);
} }
} }

View File

@@ -14,6 +14,7 @@
package com.android.settings.datausage; package com.android.settings.datausage;
import android.app.Activity;
import android.app.LoaderManager; import android.app.LoaderManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -29,7 +30,6 @@ import android.net.NetworkTemplate;
import android.net.TrafficStats; import android.net.TrafficStats;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -38,13 +38,15 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader; import com.android.settings.AppHeader;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.AppHeaderController;
import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppInfoBase;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.AppItem; import com.android.settingslib.AppItem;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
import com.android.settingslib.net.ChartData; import com.android.settingslib.net.ChartData;
@@ -53,7 +55,6 @@ import com.android.settingslib.net.UidDetailProvider;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -345,15 +346,32 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
public void onViewCreated(View view, Bundle savedInstanceState) { public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
View header = setPinnedHeaderView(R.layout.app_header);
String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null; String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
int uid = 0; int uid = 0;
try { try {
uid = pkg != null ? getPackageManager().getPackageUid(pkg, 0) : 0; uid = pkg != null ? getPackageManager().getPackageUid(pkg, 0) : 0;
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
} }
final Activity activity = getActivity();
if (!FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity).isEnabled()) {
View header = setPinnedHeaderView(R.layout.app_header);
AppHeader.setupHeaderView(getActivity(), mIcon, mLabel, AppHeader.setupHeaderView(getActivity(), mIcon, mLabel,
pkg, uid, AppHeader.includeAppInfo(this), 0, header, null); pkg, uid, AppHeader.includeAppInfo(this), 0, header, null);
} else {
final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */)
.setIcon(mIcon)
.setLabel(mLabel)
.setPackageName(pkg)
.setUid(uid)
.setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
AppHeaderController.ActionType.ACTION_NONE)
.done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
} }
@Override @Override

View File

@@ -37,6 +37,7 @@ import android.os.UserHandle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener; import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -53,6 +54,7 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.WirelessSettings; import com.android.settings.WirelessSettings;
import com.android.settings.applications.AppHeaderController;
import com.android.settings.applications.InstalledAppDetails; import com.android.settings.applications.InstalledAppDetails;
import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.LayoutPreference;
import com.android.settings.bluetooth.BluetoothSettings; import com.android.settings.bluetooth.BluetoothSettings;
@@ -462,13 +464,14 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
} }
private void setupHeader() { private void setupHeader() {
final Activity activity = getActivity();
final Bundle args = getArguments(); final Bundle args = getArguments();
String title = args.getString(EXTRA_TITLE); final String title = args.getString(EXTRA_TITLE);
final int iconId = args.getInt(EXTRA_ICON_ID, 0);
String pkg = args.getString(EXTRA_ICON_PACKAGE); String pkg = args.getString(EXTRA_ICON_PACKAGE);
int iconId = args.getInt(EXTRA_ICON_ID, 0);
Drawable appIcon = null; Drawable appIcon = null;
int uid = -1; int uid = -1;
final PackageManager pm = getActivity().getPackageManager(); final PackageManager pm = activity.getPackageManager();
if (!TextUtils.isEmpty(pkg)) { if (!TextUtils.isEmpty(pkg)) {
try { try {
@@ -481,17 +484,38 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
// Use default icon // Use default icon
} }
} else if (iconId != 0) { } else if (iconId != 0) {
appIcon = getActivity().getDrawable(iconId); appIcon = activity.getDrawable(iconId);
} }
if (appIcon == null) { if (appIcon == null) {
appIcon = getActivity().getPackageManager().getDefaultActivityIcon(); appIcon = activity.getPackageManager().getDefaultActivityIcon();
} }
if (pkg == null && mPackages != null) { if (pkg == null && mPackages != null) {
pkg = mPackages[0]; pkg = mPackages[0];
} }
if (!FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity).isEnabled()) {
AppHeader.createAppHeader(this, appIcon, title, pkg, uid, AppHeader.createAppHeader(this, appIcon, title, pkg, uid,
mDrainType != DrainType.APP ? android.R.color.white : 0); mDrainType != DrainType.APP ? android.R.color.white : 0);
} else {
final PreferenceScreen screen = getPreferenceScreen();
final Preference appHeaderPref =
findPreference(AppHeaderController.PREF_KEY_APP_HEADER);
if (appHeaderPref != null) {
return;
}
final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */)
.setIcon(appIcon)
.setLabel(title)
.setPackageName(pkg)
.setUid(uid)
.setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
AppHeaderController.ActionType.ACTION_NONE)
.done(getPrefContext());
screen.addPreference(pref);
}
} }
public void onClick(View v) { public void onClick(View v) {

View File

@@ -29,7 +29,6 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory;
import android.util.ArrayMap; import android.util.ArrayMap;
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.AppHeader; import com.android.settings.AppHeader;
@@ -37,7 +36,6 @@ import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.AppHeaderController; import com.android.settings.applications.AppHeaderController;
import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.notification.NotificationBackend.AppRow; import com.android.settings.notification.NotificationBackend.AppRow;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -134,20 +132,18 @@ public class AppNotificationSettings extends NotificationSettingsBase {
updateDependents(mAppRow.appImportance); updateDependents(mAppRow.appImportance);
} }
if (mDashboardFeatureProvider.isEnabled()) { if (mDashboardFeatureProvider.isEnabled()) {
final AppHeaderController appHeaderController = FeatureFactory.getFactory(activity) final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity) .getApplicationFeatureProvider(activity)
.newAppHeaderController(this /* fragment */, null /* appHeader */); .newAppHeaderController(this /* fragment */, null /* appHeader */)
final View appHeader = appHeaderController.setIcon(mAppRow.icon) .setIcon(mAppRow.icon)
.setLabel(mAppRow.label) .setLabel(mAppRow.label)
.setPackageName(mAppRow.pkg) .setPackageName(mAppRow.pkg)
.setUid(mAppRow.uid) .setUid(mAppRow.uid)
.setAppNotifPrefIntent(mAppRow.settingsIntent) .setAppNotifPrefIntent(mAppRow.settingsIntent)
.setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO, .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE) AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE)
.done(); .done(getPrefContext());
final Preference appHeaderPref = new LayoutPreference(getPrefContext(), appHeader); getPreferenceScreen().addPreference(pref);
appHeaderPref.setOrder(0);
getPreferenceScreen().addPreference(appHeaderPref);
} }
} }

View File

@@ -16,17 +16,6 @@
package com.android.settings.notification; package com.android.settings.notification;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader;
import com.android.settings.R;
import com.android.settings.RingtonePreference;
import com.android.settings.applications.AppHeaderController;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
import android.app.Activity; import android.app.Activity;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.content.Intent; import android.content.Intent;
@@ -35,7 +24,16 @@ import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.service.notification.NotificationListenerService.Ranking; import android.service.notification.NotificationListenerService.Ranking;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.view.View;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader;
import com.android.settings.R;
import com.android.settings.RingtonePreference;
import com.android.settings.applications.AppHeaderController;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
public class ChannelNotificationSettings extends NotificationSettingsBase { public class ChannelNotificationSettings extends NotificationSettingsBase {
protected static final String KEY_LIGHTS = "lights"; protected static final String KEY_LIGHTS = "lights";
@@ -102,20 +100,18 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
mMaxImportance); mMaxImportance);
} }
if (mDashboardFeatureProvider.isEnabled()) { if (mDashboardFeatureProvider.isEnabled()) {
final AppHeaderController appHeaderController = FeatureFactory.getFactory(activity) final Preference pref = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity) .getApplicationFeatureProvider(activity)
.newAppHeaderController(this /* fragment */, null /* appHeader */); .newAppHeaderController(this /* fragment */, null /* appHeader */)
final View appHeader = appHeaderController.setIcon(mAppRow.icon) .setIcon(mAppRow.icon)
.setLabel(mAppRow.label) .setLabel(mAppRow.label)
.setSummary(mChannel.getName()) .setSummary(mChannel.getName())
.setPackageName(mAppRow.pkg) .setPackageName(mAppRow.pkg)
.setUid(mAppRow.uid) .setUid(mAppRow.uid)
.setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO, .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
AppHeaderController.ActionType.ACTION_NONE) AppHeaderController.ActionType.ACTION_NONE)
.done(); .done(getPrefContext());
final Preference appHeaderPref = new LayoutPreference(getPrefContext(), appHeader); getPreferenceScreen().addPreference(pref);
appHeaderPref.setOrder(0);
getPreferenceScreen().addPreference(appHeaderPref);
} }
} }

View File

@@ -25,6 +25,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.os.UserHandle; import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
@@ -86,6 +87,14 @@ public class AppHeaderControllerTest {
assertThat(view).isNotNull(); assertThat(view).isNotNull();
} }
@Test
public void testBuildView_withContext_shouldBuildPreference() {
mController = new AppHeaderController(mShadowContext, mFragment, null);
Preference preference = mController.done(mShadowContext);
assertThat(preference instanceof LayoutPreference).isTrue();
}
@Test @Test
public void testBuildView_constructedWithView_shouldReturnSameView() { public void testBuildView_constructedWithView_shouldReturnSameView() {
View inputView = mLayoutInflater.inflate(R.layout.app_details, null /* root */); View inputView = mLayoutInflater.inflate(R.layout.app_details, null /* root */);