diff options
Diffstat (limited to 'Settings/src/com/android/tv/settings/TvSettingsActivity.java')
-rw-r--r-- | Settings/src/com/android/tv/settings/TvSettingsActivity.java | 123 |
1 files changed, 9 insertions, 114 deletions
diff --git a/Settings/src/com/android/tv/settings/TvSettingsActivity.java b/Settings/src/com/android/tv/settings/TvSettingsActivity.java index 20c0f8f66..a3ab44211 100644 --- a/Settings/src/com/android/tv/settings/TvSettingsActivity.java +++ b/Settings/src/com/android/tv/settings/TvSettingsActivity.java @@ -16,7 +16,9 @@ package com.android.tv.settings; -import static com.android.tv.settings.library.overlay.FlavorUtils.ALL_FLAVORS_MASK; +import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; + +import static com.android.tv.settings.overlay.FlavorUtils.ALL_FLAVORS_MASK; import android.content.Intent; import android.os.Bundle; @@ -36,17 +38,11 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; -import com.android.tv.settings.compat.PreferenceControllerFragmentCompat; -import com.android.tv.settings.library.ManagerUtil; -import com.android.tv.settings.library.PreferenceCompat; -import com.android.tv.settings.library.SettingsManager; -import com.android.tv.settings.library.State; -import com.android.tv.settings.library.UIUpdateCallback; -import com.android.tv.settings.library.overlay.FlavorUtils; +import com.android.tv.settings.overlay.FlavorUtils; import java.util.List; -public abstract class TvSettingsActivity extends FragmentActivity implements HasSettingsManager { +public abstract class TvSettingsActivity extends FragmentActivity { private static final String TAG = "TvSettingsActivity"; private static final String SETTINGS_FRAGMENT_TAG = @@ -55,94 +51,8 @@ public abstract class TvSettingsActivity extends FragmentActivity implements Has private static final int UI_UPDATE_DELAY_MS = 200; private static final int REQUEST_CODE_STARTUP_VERIFICATION = 1; - public SettingsManager mSettingsManager; private Handler mHandler = new Handler(Looper.getMainLooper()); - private final UIUpdateCallback mUIUpdateCallback = - new UIUpdateCallback() { - @Override - public void notifyUpdate( - int state, PreferenceCompat preference) { - // Delay the preference updates if there is no visible fragment yet, this - // could happen when a configuration change has occurred. - if (getVisibleFragment() == null) { - mHandler.postDelayed(() -> { - notifyUpdate(state, preference); - }, UI_UPDATE_DELAY_MS); - return; - } - getVisibleFragment().getChildFragmentManager().getFragments().stream() - .filter( - fragment -> - fragment instanceof PreferenceControllerFragmentCompat - && - ((PreferenceControllerFragmentCompat) fragment) - .getStateIdentifier() == state) - - .forEach( - fragment -> - ((PreferenceControllerFragmentCompat) fragment) - .updatePref(preference)); - } - - @Override - public void notifyUpdateAll( - int state, List<PreferenceCompat> preferences) { - // Delay the preference updates if there is no visible fragment yet, this - // could happen when a configuration change has occurred. - if (getVisibleFragment() == null) { - mHandler.postDelayed(() -> { - notifyUpdateAll(state, preferences); - }, UI_UPDATE_DELAY_MS); - return; - } - getVisibleFragment().getChildFragmentManager().getFragments().stream() - .filter( - fragment -> - fragment instanceof PreferenceControllerFragmentCompat - && - ((PreferenceControllerFragmentCompat) fragment) - .getStateIdentifier() == state) - .forEach( - fragment -> - ((PreferenceControllerFragmentCompat) fragment) - .updateAllPref(preferences)); - } - - @Override - public void notifyUpdateScreenTitle(int state, String title) { - // Delay the preference updates if there is no visible fragment yet, this - // could happen when a configuration change has occurred. - if (getVisibleFragment() == null) { - mHandler.postDelayed(() -> { - notifyUpdateScreenTitle(state, title); - }, UI_UPDATE_DELAY_MS); - return; - } - getVisibleFragment().getChildFragmentManager().getFragments().stream() - .filter( - fragment -> - fragment instanceof PreferenceControllerFragmentCompat - && - ((PreferenceControllerFragmentCompat) fragment) - .getStateIdentifier() == state) - .forEach( - fragment -> - ((PreferenceControllerFragmentCompat) fragment) - .updateScreenTitle(title)); - } - - @Override - public void notifyNavigateBackward(int state) { - - } - - @Override - public void notifyNavigateForward(int state) { - - } - }; - public Fragment getVisibleFragment() { FragmentManager fragmentManager = getSupportFragmentManager(); List<Fragment> fragments = fragmentManager.getFragments(); @@ -157,13 +67,11 @@ public abstract class TvSettingsActivity extends FragmentActivity implements Has } @Override - public SettingsManager getSettingsManager() { - return mSettingsManager; - } - - @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); + if ((FlavorUtils.getFlavor(this) & getAvailableFlavors()) == 0) { Log.w(TAG, "Activity is not supported in current flavor"); finish(); @@ -292,20 +200,7 @@ public abstract class TvSettingsActivity extends FragmentActivity implements Has @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (mSettingsManager != null && ManagerUtil.getStateIdentifier(requestCode) != -1) { - int stateIdentifier = ManagerUtil.getStateIdentifier(requestCode); - getVisibleFragment().getChildFragmentManager().getFragments().stream().filter( - fragment -> - fragment instanceof PreferenceControllerFragmentCompat - && ((PreferenceControllerFragmentCompat) fragment) - .getStateIdentifier() == stateIdentifier) - .findAny().ifPresent(fragment -> { - State state = ((PreferenceControllerFragmentCompat) fragment).getState(); - if (state != null) { - mSettingsManager.onActivityResult(state, requestCode, resultCode, data); - } - }); - } else if (requestCode == REQUEST_CODE_STARTUP_VERIFICATION) { + if (requestCode == REQUEST_CODE_STARTUP_VERIFICATION) { if (resultCode == RESULT_OK) { Log.v(TAG, "Startup verification succeeded."); if (FlavorUtils.getFlavor(this) == FlavorUtils.FLAVOR_X |