Support category changed mechanism in homepage

- Homepage cannot referesh UI whenever an injected component is changed
- Extract categories related codes to a mixin

Test: manual, robotest
Fixes: 179792445
Change-Id: I1c13c541ce07b9c36fe984a035623985b5603560
This commit is contained in:
Jason Chiu
2021-06-17 17:48:02 +08:00
parent 5a8476a709
commit c713c3e8ea
6 changed files with 378 additions and 168 deletions

View File

@@ -38,13 +38,16 @@ import androidx.fragment.app.FragmentTransaction;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.accounts.AvatarViewMixin;
import com.android.settings.core.CategoryMixin;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
import com.android.settingslib.transition.SettingsTransitionHelper;
public class SettingsHomepageActivity extends FragmentActivity {
/** Settings homepage activity */
public class SettingsHomepageActivity extends FragmentActivity implements
CategoryMixin.CategoryHandler {
private static final String TAG = "SettingsHomepageActivity";
@@ -52,6 +55,12 @@ public class SettingsHomepageActivity extends FragmentActivity {
private View mHomepageView;
private View mSuggestionView;
private CategoryMixin mCategoryMixin;
@Override
public CategoryMixin getCategoryMixin() {
return mCategoryMixin;
}
/**
* Shows the homepage and shows/hides the suggestion together. Only allows to be executed once
@@ -87,6 +96,8 @@ public class SettingsHomepageActivity extends FragmentActivity {
.initSearchToolbar(this /* activity */, toolbar, SettingsEnums.SETTINGS_HOMEPAGE);
getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
mCategoryMixin = new CategoryMixin(this);
getLifecycle().addObserver(mCategoryMixin);
if (!getSystemService(ActivityManager.class).isLowRamDevice()) {
// Only allow features on high ram devices.