Hide search box if it is called in initial setup wizard
- Search box is hidden if user set intent extra isSetupFlow true Fixes: 135717823 Test: search box is hidden in the following command adb shell am start -a android.settings.SETTINGS --ez isSetupFlow true Change-Id: Ia3d955c9390d6b0eef9391b9b35b6a483eb63d26
This commit is contained in:
@@ -49,6 +49,7 @@ import com.android.settingslib.RestrictedLockUtilsInternal;
|
|||||||
import com.google.android.setupcompat.template.FooterBarMixin;
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||||
import com.google.android.setupcompat.template.FooterButton;
|
import com.google.android.setupcompat.template.FooterButton;
|
||||||
import com.google.android.setupcompat.template.FooterButton.ButtonType;
|
import com.google.android.setupcompat.template.FooterButton.ButtonType;
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
import com.google.android.setupdesign.GlifLayout;
|
import com.google.android.setupdesign.GlifLayout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,7 +87,7 @@ public class MasterClearConfirm extends InstrumentedFragment {
|
|||||||
getActivity().getSystemService(Context.OEM_LOCK_SERVICE);
|
getActivity().getSystemService(Context.OEM_LOCK_SERVICE);
|
||||||
|
|
||||||
if (pdbManager != null && !oemLockManager.isOemUnlockAllowed() &&
|
if (pdbManager != null && !oemLockManager.isOemUnlockAllowed() &&
|
||||||
Utils.isDeviceProvisioned(getActivity())) {
|
WizardManagerHelper.isDeviceProvisioned(getActivity())) {
|
||||||
// if OEM unlock is allowed, the persistent data block will be wiped during FR
|
// if OEM unlock is allowed, the persistent data block will be wiped during FR
|
||||||
// process. If disabled, it will be wiped here, unless the device is still being
|
// process. If disabled, it will be wiped here, unless the device is still being
|
||||||
// provisioned, in which case the persistent data block will be preserved.
|
// provisioned, in which case the persistent data block will be preserved.
|
||||||
|
@@ -276,7 +276,7 @@ public class SettingsActivity extends SettingsBaseActivity
|
|||||||
launchSettingFragment(initialFragmentName, intent);
|
launchSettingFragment(initialFragmentName, intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean deviceProvisioned = Utils.isDeviceProvisioned(this);
|
final boolean deviceProvisioned = WizardManagerHelper.isDeviceProvisioned(this);
|
||||||
|
|
||||||
final ActionBar actionBar = getActionBar();
|
final ActionBar actionBar = getActionBar();
|
||||||
if (actionBar != null) {
|
if (actionBar != null) {
|
||||||
|
@@ -73,7 +73,6 @@ import android.provider.ContactsContract.Contacts;
|
|||||||
import android.provider.ContactsContract.Data;
|
import android.provider.ContactsContract.Data;
|
||||||
import android.provider.ContactsContract.Profile;
|
import android.provider.ContactsContract.Profile;
|
||||||
import android.provider.ContactsContract.RawContacts;
|
import android.provider.ContactsContract.RawContacts;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
@@ -729,11 +728,6 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isDeviceProvisioned(Context context) {
|
|
||||||
return Settings.Global.getInt(context.getContentResolver(),
|
|
||||||
Settings.Global.DEVICE_PROVISIONED, 0) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean startQuietModeDialogIfNecessary(Context context, UserManager um,
|
public static boolean startQuietModeDialogIfNecessary(Context context, UserManager um,
|
||||||
int userId) {
|
int userId) {
|
||||||
if (um.isQuietModeEnabled(UserHandle.of(userId))) {
|
if (um.isQuietModeEnabled(UserHandle.of(userId))) {
|
||||||
|
@@ -53,6 +53,8 @@ import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
|||||||
import com.android.settingslib.development.SystemPropPoker;
|
import com.android.settingslib.development.SystemPropPoker;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -166,7 +168,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
|
|||||||
super.onActivityCreated(icicle);
|
super.onActivityCreated(icicle);
|
||||||
// Apply page-level restrictions
|
// Apply page-level restrictions
|
||||||
setIfOnlyAvailableForAdmins(true);
|
setIfOnlyAvailableForAdmins(true);
|
||||||
if (isUiRestricted() || !Utils.isDeviceProvisioned(getActivity())) {
|
if (isUiRestricted() || !WizardManagerHelper.isDeviceProvisioned(getActivity())) {
|
||||||
// Block access to developer options if the user is not the owner, if user policy
|
// Block access to developer options if the user is not the owner, if user policy
|
||||||
// restricts it, or if the device has not been provisioned
|
// restricts it, or if the device has not been provisioned
|
||||||
mIsAvailable = false;
|
mIsAvailable = false;
|
||||||
|
@@ -46,6 +46,8 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
|||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
public class BuildNumberPreferenceController extends BasePreferenceController implements
|
public class BuildNumberPreferenceController extends BasePreferenceController implements
|
||||||
LifecycleObserver, OnStart {
|
LifecycleObserver, OnStart {
|
||||||
|
|
||||||
@@ -131,7 +133,7 @@ public class BuildNumberPreferenceController extends BasePreferenceController im
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Don't enable developer options until device has been provisioned
|
// Don't enable developer options until device has been provisioned
|
||||||
if (!Utils.isDeviceProvisioned(mContext)) {
|
if (!WizardManagerHelper.isDeviceProvisioned(mContext)) {
|
||||||
mMetricsFeatureProvider.action(
|
mMetricsFeatureProvider.action(
|
||||||
mContext, SettingsEnums.ACTION_SETTINGS_BUILD_NUMBER_PREF);
|
mContext, SettingsEnums.ACTION_SETTINGS_BUILD_NUMBER_PREF);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -36,12 +36,8 @@ import android.app.admin.DevicePolicyManager.PasswordComplexity;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.UserInfo;
|
|
||||||
import android.hardware.face.Face;
|
|
||||||
import android.hardware.face.FaceManager;
|
import android.hardware.face.FaceManager;
|
||||||
import android.hardware.fingerprint.Fingerprint;
|
|
||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.hardware.fingerprint.FingerprintManager.RemovalCallback;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
@@ -76,7 +72,7 @@ import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
|||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
import com.android.settingslib.RestrictedPreference;
|
import com.android.settingslib.RestrictedPreference;
|
||||||
|
|
||||||
import java.util.List;
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
public class ChooseLockGeneric extends SettingsActivity {
|
public class ChooseLockGeneric extends SettingsActivity {
|
||||||
public static final String CONFIRM_CREDENTIALS = "confirm_credentials";
|
public static final String CONFIRM_CREDENTIALS = "confirm_credentials";
|
||||||
@@ -188,7 +184,8 @@ public class ChooseLockGeneric extends SettingsActivity {
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
if (!Utils.isDeviceProvisioned(activity) && !canRunBeforeDeviceProvisioned()) {
|
if (!WizardManagerHelper.isDeviceProvisioned(activity)
|
||||||
|
&& !canRunBeforeDeviceProvisioned()) {
|
||||||
Log.i(TAG, "Refusing to start because device is not provisioned");
|
Log.i(TAG, "Refusing to start because device is not provisioned");
|
||||||
activity.finish();
|
activity.finish();
|
||||||
return;
|
return;
|
||||||
|
@@ -32,16 +32,16 @@ import android.app.admin.DevicePolicyManager.PasswordComplexity;
|
|||||||
import android.app.admin.PasswordMetrics;
|
import android.app.admin.PasswordMetrics;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,7 +110,7 @@ public class SetNewPasswordActivity extends Activity implements SetNewPasswordCo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
|
public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
|
||||||
final boolean isInSetupWizard = !Utils.isDeviceProvisioned(this);
|
final boolean isInSetupWizard = !WizardManagerHelper.isDeviceProvisioned(this);
|
||||||
Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
|
Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
|
||||||
: new Intent(this, ChooseLockGeneric.class);
|
: new Intent(this, ChooseLockGeneric.class);
|
||||||
intent.setAction(mNewPasswordAction);
|
intent.setAction(mNewPasswordAction);
|
||||||
|
@@ -34,6 +34,8 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.search.SearchIndexableResources;
|
import com.android.settingslib.search.SearchIndexableResources;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FeatureProvider for Settings Search
|
* FeatureProvider for Settings Search
|
||||||
*/
|
*/
|
||||||
@@ -67,8 +69,9 @@ public interface SearchFeatureProvider {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Utils.isDeviceProvisioned(activity) ||
|
if (!WizardManagerHelper.isDeviceProvisioned(activity)
|
||||||
!Utils.isPackageEnabled(activity, getSettingsIntelligencePkgName(activity))) {
|
|| !Utils.isPackageEnabled(activity, getSettingsIntelligencePkgName(activity))
|
||||||
|
|| WizardManagerHelper.isAnySetupWizard(activity.getIntent())) {
|
||||||
final ViewGroup parent = (ViewGroup) toolbar.getParent();
|
final ViewGroup parent = (ViewGroup) toolbar.getParent();
|
||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
parent.setVisibility(View.GONE);
|
parent.setVisibility(View.GONE);
|
||||||
|
@@ -17,8 +17,8 @@
|
|||||||
package com.android.settings.search.actionbar;
|
package com.android.settings.search.actionbar;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -37,6 +37,8 @@ import com.android.settings.search.SearchFeatureProvider;
|
|||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
|
import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
public class SearchMenuController implements LifecycleObserver, OnCreateOptionsMenu {
|
public class SearchMenuController implements LifecycleObserver, OnCreateOptionsMenu {
|
||||||
|
|
||||||
public static final String NEED_SEARCH_ICON_IN_ACTION_BAR = "need_search_icon_in_action_bar";
|
public static final String NEED_SEARCH_ICON_IN_ACTION_BAR = "need_search_icon_in_action_bar";
|
||||||
@@ -61,13 +63,14 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
final Context context = mHost.getContext();
|
final Activity activity = mHost.getActivity();
|
||||||
final String SettingsIntelligencePkgName = context.getString(
|
final String SettingsIntelligencePkgName = activity.getString(
|
||||||
R.string.config_settingsintelligence_package_name);
|
R.string.config_settingsintelligence_package_name);
|
||||||
if (!Utils.isDeviceProvisioned(mHost.getContext())) {
|
if (!WizardManagerHelper.isDeviceProvisioned(activity)
|
||||||
|
|| WizardManagerHelper.isAnySetupWizard(activity.getIntent())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!Utils.isPackageEnabled(mHost.getContext(), SettingsIntelligencePkgName)) {
|
if (!Utils.isPackageEnabled(activity, SettingsIntelligencePkgName)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (menu == null) {
|
if (menu == null) {
|
||||||
@@ -83,17 +86,17 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
|
|||||||
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
|
|
||||||
searchItem.setOnMenuItemClickListener(target -> {
|
searchItem.setOnMenuItemClickListener(target -> {
|
||||||
final Intent intent = FeatureFactory.getFactory(context)
|
final Intent intent = FeatureFactory.getFactory(activity)
|
||||||
.getSearchFeatureProvider()
|
.getSearchFeatureProvider()
|
||||||
.buildSearchIntent(context, mPageId);
|
.buildSearchIntent(activity, mPageId);
|
||||||
|
|
||||||
if (context.getPackageManager().queryIntentActivities(intent,
|
if (activity.getPackageManager().queryIntentActivities(intent,
|
||||||
PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
|
PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
|
FeatureFactory.getFactory(activity).getMetricsFeatureProvider()
|
||||||
.action(context, SettingsEnums.ACTION_SEARCH_RESULTS);
|
.action(activity, SettingsEnums.ACTION_SEARCH_RESULTS);
|
||||||
mHost.startActivityForResult(intent, SearchFeatureProvider.REQUEST_CODE);
|
mHost.startActivityForResult(intent, SearchFeatureProvider.REQUEST_CODE);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
@@ -74,6 +74,8 @@ import com.android.settingslib.RestrictedPreference;
|
|||||||
import com.android.settingslib.drawable.CircleFramedDrawable;
|
import com.android.settingslib.drawable.CircleFramedDrawable;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -224,7 +226,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
addPreferencesFromResource(R.xml.user_settings);
|
addPreferencesFromResource(R.xml.user_settings);
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
if (!Utils.isDeviceProvisioned(activity)) {
|
if (!WizardManagerHelper.isDeviceProvisioned(activity)) {
|
||||||
activity.finish();
|
activity.finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -977,7 +979,8 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private void updateAddUser(Context context) {
|
private void updateAddUser(Context context) {
|
||||||
if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin)
|
if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin)
|
||||||
&& Utils.isDeviceProvisioned(context) && mUserCaps.mUserSwitcherEnabled) {
|
&& WizardManagerHelper.isDeviceProvisioned(context)
|
||||||
|
&& mUserCaps.mUserSwitcherEnabled) {
|
||||||
mAddUser.setVisible(true);
|
mAddUser.setVisible(true);
|
||||||
final boolean moreUsers = mUserManager.canAddMoreUsers();
|
final boolean moreUsers = mUserManager.canAddMoreUsers();
|
||||||
mAddUser.setEnabled(moreUsers && !mAddingUser && mUserManager.canSwitchUsers());
|
mAddUser.setEnabled(moreUsers && !mAddingUser && mUserManager.canSwitchUsers());
|
||||||
|
@@ -6,6 +6,8 @@ com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentFo
|
|||||||
com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
|
com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
|
||||||
com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
||||||
com.android.settings.accounts.AccountDetailDashboardFragment
|
com.android.settings.accounts.AccountDetailDashboardFragment
|
||||||
|
com.android.settings.accounts.AccountPersonalDashboardFragment
|
||||||
|
com.android.settings.accounts.AccountWorkProfileDashboardFragment
|
||||||
com.android.settings.accounts.AccountSyncSettings
|
com.android.settings.accounts.AccountSyncSettings
|
||||||
com.android.settings.accounts.ChooseAccountFragment
|
com.android.settings.accounts.ChooseAccountFragment
|
||||||
com.android.settings.applications.appinfo.AppInfoDashboardFragment
|
com.android.settings.applications.appinfo.AppInfoDashboardFragment
|
||||||
|
@@ -17,29 +17,33 @@
|
|||||||
package com.android.settings.search.actionbar;
|
package com.android.settings.search.actionbar;
|
||||||
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.InstrumentedFragment;
|
import com.android.settings.core.InstrumentedFragment;
|
||||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
|
||||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
import org.robolectric.Robolectric;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@@ -48,40 +52,27 @@ public class SearchMenuControllerTest {
|
|||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private TestPreferenceFragment mPreferenceHost;
|
|
||||||
private InstrumentedFragment mHost;
|
private InstrumentedFragment mHost;
|
||||||
private Context mContext;
|
private FragmentActivity mActivity;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = RuntimeEnvironment.application;
|
mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
|
||||||
mHost = new InstrumentedFragment() {
|
mHost = spy(new InstrumentedFragment() {
|
||||||
@Override
|
|
||||||
public Context getContext() {
|
|
||||||
return mContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.TESTING;
|
return SettingsEnums.TESTING;
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
mPreferenceHost = new TestPreferenceFragment();
|
Global.putInt(mActivity.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
|
||||||
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
|
|
||||||
|
|
||||||
|
when(mHost.getActivity()).thenReturn(mActivity);
|
||||||
when(mMenu.add(Menu.NONE, Menu.NONE, 0 /* order */, R.string.search_menu))
|
when(mMenu.add(Menu.NONE, Menu.NONE, 0 /* order */, R.string.search_menu))
|
||||||
.thenReturn(mock(MenuItem.class));
|
.thenReturn(mock(MenuItem.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void init_prefFragment_shouldAddMenu() {
|
|
||||||
SearchMenuController.init(mPreferenceHost);
|
|
||||||
mPreferenceHost.getSettingsLifecycle().onCreateOptionsMenu(mMenu, null /* inflater */);
|
|
||||||
|
|
||||||
verify(mMenu).add(Menu.NONE, Menu.NONE, 0 /* order */, R.string.search_menu);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void init_observableFragment_shouldAddMenu() {
|
public void init_observableFragment_shouldAddMenu() {
|
||||||
SearchMenuController.init(mHost);
|
SearchMenuController.init(mHost);
|
||||||
@@ -103,26 +94,22 @@ public class SearchMenuControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void init_deviceNotProvisioned_shouldNotAddMenu() {
|
public void init_deviceNotProvisioned_shouldNotAddMenu() {
|
||||||
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
|
Global.putInt(mActivity.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
|
||||||
SearchMenuController.init(mHost);
|
SearchMenuController.init(mHost);
|
||||||
mHost.getSettingsLifecycle().onCreateOptionsMenu(mMenu, null /* inflater */);
|
mHost.getSettingsLifecycle().onCreateOptionsMenu(mMenu, null /* inflater */);
|
||||||
|
|
||||||
verifyZeroInteractions(mMenu);
|
verifyZeroInteractions(mMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class TestPreferenceFragment extends InstrumentedPreferenceFragment {
|
@Test
|
||||||
@Override
|
public void init_startFromSetupWizard_shouldNotAddMenu() {
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
final Intent intent = new Intent();
|
||||||
}
|
intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
|
||||||
|
mActivity.setIntent(intent);
|
||||||
|
SearchMenuController.init(mHost);
|
||||||
|
|
||||||
@Override
|
mHost.getSettingsLifecycle().onCreateOptionsMenu(mMenu, null /* inflater */);
|
||||||
public Context getContext() {
|
|
||||||
return RuntimeEnvironment.application;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
verifyZeroInteractions(mMenu);
|
||||||
public int getMetricsCategory() {
|
|
||||||
return SettingsEnums.TESTING;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user