From db556612712556b1cd2d2a183fa0c40f45c7337e Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Sat, 20 Oct 2018 23:59:52 +0800 Subject: [PATCH] Change homepage layout - merge PersonalSettingsFragment and TopLevelSettings together Bug: 118224579 Test: manual Change-Id: Ieee50a22babb25023e2a1767793e220862a38363 --- res/layout/condition_header.xml | 2 +- res/layout/condition_tile.xml | 2 +- res/layout/settings_homepage.xml | 41 ++++++++++- res/layout/settings_homepage_container.xml | 54 +++++--------- res/values/dimens.xml | 3 + res/values/strings.xml | 5 ++ .../homepage/ContextualCardsAdapter.java | 1 - .../homepage/SettingsHomepageActivity.java | 47 ++---------- .../SettingsHomepageActivityTest.java | 71 ------------------- 9 files changed, 73 insertions(+), 153 deletions(-) delete mode 100644 tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java diff --git a/res/layout/condition_header.xml b/res/layout/condition_header.xml index f2143193ace..e33157e717e 100644 --- a/res/layout/condition_header.xml +++ b/res/layout/condition_header.xml @@ -26,7 +26,7 @@ diff --git a/res/layout/settings_homepage.xml b/res/layout/settings_homepage.xml index 83c771c3302..0ba36096672 100644 --- a/res/layout/settings_homepage.xml +++ b/res/layout/settings_homepage.xml @@ -15,8 +15,43 @@ limitations under the License. --> - + android:layout_height="wrap_content" + android:orientation="vertical"> + + + + + + + + + + + + diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml index ba8b48adb03..78ec39f8416 100644 --- a/res/layout/settings_homepage_container.xml +++ b/res/layout/settings_homepage_container.xml @@ -15,44 +15,28 @@ limitations under the License. --> - + android:layout_height="match_parent"> - - - - - - - - - - - - + android:orientation="vertical" + android:descendantFocusability="blocksDescendants"> - + + + + + + + + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index edece3cb930..dc39475d66e 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -311,6 +311,7 @@ 10dp 5dp + 36dp 24dp @@ -357,4 +358,6 @@ 24dp + + diff --git a/res/values/strings.xml b/res/values/strings.xml index c81920e08de..a842d36d1dd 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10271,4 +10271,9 @@ Medical info, emergency contacts + + + See more + + See less diff --git a/src/com/android/settings/homepage/ContextualCardsAdapter.java b/src/com/android/settings/homepage/ContextualCardsAdapter.java index 8e6f805c9f8..4144d4da6d8 100644 --- a/src/com/android/settings/homepage/ContextualCardsAdapter.java +++ b/src/com/android/settings/homepage/ContextualCardsAdapter.java @@ -17,7 +17,6 @@ package com.android.settings.homepage; import android.content.Context; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java index bfd8c4d1f12..c6040f608c4 100644 --- a/src/com/android/settings/homepage/SettingsHomepageActivity.java +++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java @@ -22,7 +22,6 @@ import android.os.Bundle; import android.util.FeatureFlagUtils; import android.widget.Toolbar; -import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -32,13 +31,10 @@ import com.android.settings.core.FeatureFlags; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.overlay.FeatureFactory; -import com.google.android.material.bottomnavigation.BottomNavigationView; - public class SettingsHomepageActivity extends SettingsBaseActivity { - @VisibleForTesting - static final String PERSONAL_SETTINGS_TAG = "personal_settings"; - private static final String ALL_SETTINGS_TAG = "all_settings"; + private static final String SUGGESTION_TAG = "suggestion"; + private static final String MAIN_TAG = "main"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -58,49 +54,18 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { FeatureFactory.getFactory(this).getSearchFeatureProvider() .initSearchToolbar(this, toolbar); - final BottomNavigationView navigation = findViewById(R.id.bottom_nav); - navigation.setOnNavigationItemSelectedListener(item -> { - switch (item.getItemId()) { - case R.id.homepage_personal_settings: - switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG, - ALL_SETTINGS_TAG); - return true; - - case R.id.homepage_all_settings: - switchFragment(new TopLevelSettings(), ALL_SETTINGS_TAG, - PERSONAL_SETTINGS_TAG); - return true; - } - return false; - }); - - if (savedInstanceState == null) { - // savedInstanceState is null, this is first load. - // Default to open contextual cards. - switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG, - ALL_SETTINGS_TAG); - } + showFragment(new PersonalSettingsFragment(), R.id.suggestion_content, SUGGESTION_TAG); + showFragment(new TopLevelSettings(), R.id.main_content, MAIN_TAG); } public static boolean isDynamicHomepageEnabled(Context context) { return FeatureFlagUtils.isEnabled(context, FeatureFlags.DYNAMIC_HOMEPAGE); } - private void switchFragment(Fragment fragment, String showFragmentTag, String hideFragmentTag) { + private void showFragment(Fragment fragment, int id, String tag) { final FragmentManager fragmentManager = getSupportFragmentManager(); final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - - final Fragment hideFragment = fragmentManager.findFragmentByTag(hideFragmentTag); - if (hideFragment != null) { - fragmentTransaction.hide(hideFragment); - } - - Fragment showFragment = fragmentManager.findFragmentByTag(showFragmentTag); - if (showFragment == null) { - fragmentTransaction.add(R.id.main_content, fragment, showFragmentTag); - } else { - fragmentTransaction.show(showFragment); - } + fragmentTransaction.add(id, fragment, tag); fragmentTransaction.commit(); } } \ No newline at end of file diff --git a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java deleted file mode 100644 index 89ec476ed4c..00000000000 --- a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2018 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.homepage; - -import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; - -import static com.android.settings.homepage.SettingsHomepageActivity.PERSONAL_SETTINGS_TAG; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.Context; -import android.content.Intent; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; -import android.util.FeatureFlagUtils; - -import androidx.fragment.app.Fragment; - -import com.android.settings.core.FeatureFlags; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -public class SettingsHomepageActivityTest { - - private Context mContext; - private SettingsHomepageActivity mActivity; - - @Before - public void setUp() { - mContext = InstrumentationRegistry.getTargetContext(); - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, true); - } - - @After - public void tearDown() { - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, false); - } - - @Test - public void launchHomepage_shouldOpenPersonalSettings() { - final Intent intent = new Intent().setClass(mContext, SettingsHomepageActivity.class) - .addFlags(FLAG_ACTIVITY_NEW_TASK); - - mActivity = (SettingsHomepageActivity) InstrumentationRegistry.getInstrumentation() - .startActivitySync(intent); - - final Fragment fragment = mActivity.getSupportFragmentManager() - .findFragmentByTag(PERSONAL_SETTINGS_TAG); - - assertThat(fragment).isInstanceOf(PersonalSettingsFragment.class); - } - -}