Launch the new TopLevelSettings for all settings tab.
The new TopLevelSettings page uses a standard DashboardFragment to host all top level settings. It's easier to maintain than DashboardSummary. It does not support conditional cards or suggestion cards. We will use PersonalSettingsFragment to host these as contextual cards going forward. Bug: 110405144 Test: visual Change-Id: I2ab2d3556e870e86ebc18f9876336c4a3a361897
This commit is contained in:
@@ -62,6 +62,7 @@ import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.core.gateway.SettingsGateway;
|
||||
import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||
import com.android.settings.dashboard.DashboardSummary;
|
||||
import com.android.settings.homepage.TopLevelSettings;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.DeviceIndexFeatureProvider;
|
||||
import com.android.settings.wfd.WifiDisplaySettings;
|
||||
@@ -403,10 +404,15 @@ public class SettingsActivity extends SettingsBaseActivity
|
||||
// Show search icon as up affordance if we are displaying the main Dashboard
|
||||
mInitialTitleResId = R.string.dashboard_title;
|
||||
|
||||
if (SettingsHomepageActivity.isDynamicHomepageEnabled(this)) {
|
||||
switchToFragment(TopLevelSettings.class.getName(), null /* args */, false, false,
|
||||
mInitialTitleResId, mInitialTitle, false);
|
||||
} else {
|
||||
switchToFragment(DashboardSummary.class.getName(), null /* args */, false, false,
|
||||
mInitialTitleResId, mInitialTitle, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setTitleFromIntent(Intent intent) {
|
||||
Log.d(LOG_TAG, "Starting to set activity title");
|
||||
|
@@ -29,6 +29,7 @@ import com.android.settings.core.FeatureFlags;
|
||||
import com.android.settings.core.SettingsBaseActivity;
|
||||
import com.android.settings.dashboard.DashboardSummary;
|
||||
import com.android.settings.homepage.PersonalSettingsFragment;
|
||||
import com.android.settings.homepage.TopLevelSettings;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.SearchFeatureProvider;
|
||||
|
||||
@@ -58,8 +59,7 @@ public class SettingsHomepageActivity extends SettingsBaseActivity {
|
||||
FeatureFactory.getFactory(this).getSearchFeatureProvider()
|
||||
.initSearchToolbar(this, searchButton);
|
||||
|
||||
final BottomNavigationView navigation = (BottomNavigationView) findViewById(
|
||||
R.id.bottom_nav);
|
||||
final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
|
||||
navigation.setOnNavigationItemSelectedListener(item -> {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.homepage_personal_settings:
|
||||
@@ -68,7 +68,7 @@ public class SettingsHomepageActivity extends SettingsBaseActivity {
|
||||
return true;
|
||||
|
||||
case R.id.homepage_all_settings:
|
||||
switchFragment(DashboardSummary.class.getName(), ALL_SETTINGS_TAG,
|
||||
switchFragment(TopLevelSettings.class.getName(), ALL_SETTINGS_TAG,
|
||||
PERSONAL_SETTINGS_TAG);
|
||||
return true;
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ public class PersonalSettingsFragment extends InstrumentedFragment {
|
||||
Bundle savedInstanceState) {
|
||||
final View rootView = inflater.inflate(R.layout.settings_homepage,
|
||||
container, false);
|
||||
mCardsContainer = (RecyclerView) rootView.findViewById(R.id.card_container);
|
||||
mCardsContainer = rootView.findViewById(R.id.card_container);
|
||||
mLayoutManager = new GridLayoutManager(getActivity(), SPAN_COUNT,
|
||||
LinearLayoutManager.VERTICAL, false /* reverseLayout */);
|
||||
mCardsContainer.setLayoutManager(mLayoutManager);
|
||||
|
@@ -73,7 +73,8 @@ public class SettingsActivityTest {
|
||||
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
|
||||
final Intent intent = new Intent(mContext, Settings.class);
|
||||
final SettingsActivity activity =
|
||||
Robolectric.buildActivity(SettingsActivity.class, intent).create(Bundle.EMPTY).get();
|
||||
Robolectric.buildActivity(SettingsActivity.class, intent).create(
|
||||
Bundle.EMPTY).get();
|
||||
|
||||
assertThat(activity.findViewById(R.id.search_bar).getVisibility())
|
||||
.isEqualTo(View.INVISIBLE);
|
||||
@@ -84,7 +85,8 @@ public class SettingsActivityTest {
|
||||
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
|
||||
final Intent intent = new Intent(mContext, Settings.class);
|
||||
final SettingsActivity activity =
|
||||
Robolectric.buildActivity(SettingsActivity.class, intent).create(Bundle.EMPTY).get();
|
||||
Robolectric.buildActivity(SettingsActivity.class, intent).create(
|
||||
Bundle.EMPTY).get();
|
||||
|
||||
assertThat(activity.findViewById(R.id.search_bar).getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
@@ -92,6 +94,7 @@ public class SettingsActivityTest {
|
||||
@Test
|
||||
public void launchSettingFragment_nullExtraShowFragment_shouldNotCrash() {
|
||||
when(mActivity.getSupportFragmentManager()).thenReturn(mFragmentManager);
|
||||
doReturn(mContext.getContentResolver()).when(mActivity).getContentResolver();
|
||||
when(mFragmentManager.beginTransaction()).thenReturn(mock(FragmentTransaction.class));
|
||||
|
||||
doReturn(RuntimeEnvironment.application.getClassLoader()).when(mActivity).getClassLoader();
|
||||
|
Reference in New Issue
Block a user