Loading AndroidManifest.xml +9 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,15 @@ </intent-filter> </activity> <receiver android:name=".search.SearchStateReceiver" android:exported="true" android:permission="android.permission.READ_SEARCH_INDEXABLES"> <intent-filter> <action android:name="com.android.settings.SEARCH_START"/> <action android:name="com.android.settings.SEARCH_EXIT"/> </intent-filter> </receiver> <activity android:name="Settings$WifiSettingsActivity" android:label="@string/wifi_settings" Loading src/com/android/settings/SettingsApplication.java +4 −4 Original line number Diff line number Diff line Loading @@ -16,17 +16,17 @@ package com.android.settings; import android.app.Activity; import android.app.Application; import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.homepage.SettingsHomepageActivity; import java.lang.ref.WeakReference; /** Settings application which sets up activity embedding rules for the large screen device. */ public class SettingsApplication extends Application { private WeakReference<Activity> mHomeActivity = new WeakReference<>(null); private WeakReference<SettingsHomepageActivity> mHomeActivity = new WeakReference<>(null); @Override public void onCreate() { Loading @@ -37,11 +37,11 @@ public class SettingsApplication extends Application { controller.initRules(); } public void setHomeActivity(Activity homeActivity) { public void setHomeActivity(SettingsHomepageActivity homeActivity) { mHomeActivity = new WeakReference<>(homeActivity); } public Activity getHomeActivity() { public SettingsHomepageActivity getHomeActivity() { return mHomeActivity.get(); } } src/com/android/settings/SettingsInitialize.java +7 −2 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import androidx.window.embedding.SplitController; import com.android.settings.Settings.CreateShortcutActivity; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.search.SearchStateReceiver; import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; Loading @@ -67,7 +68,7 @@ public class SettingsInitialize extends BroadcastReceiver { managedProfileSetup(context, pm, broadcast, userInfo); webviewSettingSetup(context, pm, userInfo); ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context)); enableTwoPaneDeepLinkActivityIfNecessary(pm, broadcast); enableTwoPaneDeepLinkActivityIfNecessary(pm, context); } private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast, Loading Loading @@ -148,12 +149,16 @@ public class SettingsInitialize extends BroadcastReceiver { shortcutManager.updateShortcuts(updates); } private void enableTwoPaneDeepLinkActivityIfNecessary(PackageManager pm, Intent intent) { private void enableTwoPaneDeepLinkActivityIfNecessary(PackageManager pm, Context context) { final ComponentName deepLinkHome = new ComponentName(Utils.SETTINGS_PACKAGE_NAME, SettingsHomepageActivity.ALIAS_DEEP_LINK); final ComponentName searchStateReceiver = new ComponentName(context, SearchStateReceiver.class); final int enableState = SplitController.getInstance().isSplitSupported() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(searchStateReceiver, enableState, PackageManager.DONT_KILL_APP); } } src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +10 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.settings.Settings; import com.android.settings.SubSettings; import com.android.settings.Utils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SliceDeepLinkHomepageActivity; import java.util.HashSet; import java.util.Set; Loading Loading @@ -128,6 +129,15 @@ public class ActivityEmbeddingRulesController { true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */, clearTop); registerTwoPanePairRule( context, getComponentName(context, SliceDeepLinkHomepageActivity.class), secondaryComponent, secondaryIntentAction, true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */, clearTop); } /** Register a SplitPairRule for SubSettings if the device supports 2-pane. */ Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +18 −15 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements private static final int DEFAULT_HIGHLIGHT_MENU_KEY = R.string.menu_key_network; private static final long HOMEPAGE_LOADING_TIMEOUT_MS = 300; private TopLevelSettings mMainFragment; private View mHomepageView; private View mSuggestionView; private CategoryMixin mCategoryMixin; Loading Loading @@ -124,6 +125,11 @@ public class SettingsHomepageActivity extends FragmentActivity implements homepageView.setVisibility(View.VISIBLE); } /** Returns the main content fragment */ public TopLevelSettings getMainFragment() { return mMainFragment; } @Override public CategoryMixin getCategoryMixin() { return mCategoryMixin; Loading @@ -132,7 +138,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHomeActivity(); setContentView(R.layout.settings_homepage_container); final View appBar = findViewById(R.id.app_bar_container); Loading Loading @@ -162,10 +167,10 @@ public class SettingsHomepageActivity extends FragmentActivity implements showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content); } } final Fragment fragment = new TopLevelSettings(); fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mMainFragment = new TopLevelSettings(); mMainFragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, getHighlightMenuKey()); showFragment(fragment, R.id.main_content); showFragment(mMainFragment, R.id.main_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); Loading @@ -174,6 +179,12 @@ public class SettingsHomepageActivity extends FragmentActivity implements launchDeepLinkIntentToRight(); } @Override protected void onStart() { ((SettingsApplication) getApplication()).setHomeActivity(this); super.onStart(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Loading @@ -189,10 +200,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements launchDeepLinkIntentToRight(); } protected void setHomeActivity() { ((SettingsApplication) getApplication()).setHomeActivity(this); } private void showSuggestionFragment() { final Class<? extends Fragment> fragment = FeatureFactory.getFactory(this) .getSuggestionFeatureProvider(this).getContextualSuggestionFragment(); Loading Loading @@ -314,13 +321,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements } private void reloadHighlightMenuKey() { final TopLevelSettings fragment = (TopLevelSettings) getSupportFragmentManager().findFragmentById(R.id.main_content); if (fragment != null) { fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mMainFragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, getHighlightMenuKey()); fragment.reloadHighlightMenuKey(); } mMainFragment.reloadHighlightMenuKey(); } private void initHomepageContainer() { Loading Loading
AndroidManifest.xml +9 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,15 @@ </intent-filter> </activity> <receiver android:name=".search.SearchStateReceiver" android:exported="true" android:permission="android.permission.READ_SEARCH_INDEXABLES"> <intent-filter> <action android:name="com.android.settings.SEARCH_START"/> <action android:name="com.android.settings.SEARCH_EXIT"/> </intent-filter> </receiver> <activity android:name="Settings$WifiSettingsActivity" android:label="@string/wifi_settings" Loading
src/com/android/settings/SettingsApplication.java +4 −4 Original line number Diff line number Diff line Loading @@ -16,17 +16,17 @@ package com.android.settings; import android.app.Activity; import android.app.Application; import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.homepage.SettingsHomepageActivity; import java.lang.ref.WeakReference; /** Settings application which sets up activity embedding rules for the large screen device. */ public class SettingsApplication extends Application { private WeakReference<Activity> mHomeActivity = new WeakReference<>(null); private WeakReference<SettingsHomepageActivity> mHomeActivity = new WeakReference<>(null); @Override public void onCreate() { Loading @@ -37,11 +37,11 @@ public class SettingsApplication extends Application { controller.initRules(); } public void setHomeActivity(Activity homeActivity) { public void setHomeActivity(SettingsHomepageActivity homeActivity) { mHomeActivity = new WeakReference<>(homeActivity); } public Activity getHomeActivity() { public SettingsHomepageActivity getHomeActivity() { return mHomeActivity.get(); } }
src/com/android/settings/SettingsInitialize.java +7 −2 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import androidx.window.embedding.SplitController; import com.android.settings.Settings.CreateShortcutActivity; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.search.SearchStateReceiver; import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; Loading @@ -67,7 +68,7 @@ public class SettingsInitialize extends BroadcastReceiver { managedProfileSetup(context, pm, broadcast, userInfo); webviewSettingSetup(context, pm, userInfo); ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context)); enableTwoPaneDeepLinkActivityIfNecessary(pm, broadcast); enableTwoPaneDeepLinkActivityIfNecessary(pm, context); } private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast, Loading Loading @@ -148,12 +149,16 @@ public class SettingsInitialize extends BroadcastReceiver { shortcutManager.updateShortcuts(updates); } private void enableTwoPaneDeepLinkActivityIfNecessary(PackageManager pm, Intent intent) { private void enableTwoPaneDeepLinkActivityIfNecessary(PackageManager pm, Context context) { final ComponentName deepLinkHome = new ComponentName(Utils.SETTINGS_PACKAGE_NAME, SettingsHomepageActivity.ALIAS_DEEP_LINK); final ComponentName searchStateReceiver = new ComponentName(context, SearchStateReceiver.class); final int enableState = SplitController.getInstance().isSplitSupported() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(searchStateReceiver, enableState, PackageManager.DONT_KILL_APP); } }
src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +10 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.settings.Settings; import com.android.settings.SubSettings; import com.android.settings.Utils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SliceDeepLinkHomepageActivity; import java.util.HashSet; import java.util.Set; Loading Loading @@ -128,6 +129,15 @@ public class ActivityEmbeddingRulesController { true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */, clearTop); registerTwoPanePairRule( context, getComponentName(context, SliceDeepLinkHomepageActivity.class), secondaryComponent, secondaryIntentAction, true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */, clearTop); } /** Register a SplitPairRule for SubSettings if the device supports 2-pane. */ Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +18 −15 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements private static final int DEFAULT_HIGHLIGHT_MENU_KEY = R.string.menu_key_network; private static final long HOMEPAGE_LOADING_TIMEOUT_MS = 300; private TopLevelSettings mMainFragment; private View mHomepageView; private View mSuggestionView; private CategoryMixin mCategoryMixin; Loading Loading @@ -124,6 +125,11 @@ public class SettingsHomepageActivity extends FragmentActivity implements homepageView.setVisibility(View.VISIBLE); } /** Returns the main content fragment */ public TopLevelSettings getMainFragment() { return mMainFragment; } @Override public CategoryMixin getCategoryMixin() { return mCategoryMixin; Loading @@ -132,7 +138,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHomeActivity(); setContentView(R.layout.settings_homepage_container); final View appBar = findViewById(R.id.app_bar_container); Loading Loading @@ -162,10 +167,10 @@ public class SettingsHomepageActivity extends FragmentActivity implements showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content); } } final Fragment fragment = new TopLevelSettings(); fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mMainFragment = new TopLevelSettings(); mMainFragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, getHighlightMenuKey()); showFragment(fragment, R.id.main_content); showFragment(mMainFragment, R.id.main_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); Loading @@ -174,6 +179,12 @@ public class SettingsHomepageActivity extends FragmentActivity implements launchDeepLinkIntentToRight(); } @Override protected void onStart() { ((SettingsApplication) getApplication()).setHomeActivity(this); super.onStart(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Loading @@ -189,10 +200,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements launchDeepLinkIntentToRight(); } protected void setHomeActivity() { ((SettingsApplication) getApplication()).setHomeActivity(this); } private void showSuggestionFragment() { final Class<? extends Fragment> fragment = FeatureFactory.getFactory(this) .getSuggestionFeatureProvider(this).getContextualSuggestionFragment(); Loading Loading @@ -314,13 +321,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements } private void reloadHighlightMenuKey() { final TopLevelSettings fragment = (TopLevelSettings) getSupportFragmentManager().findFragmentById(R.id.main_content); if (fragment != null) { fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mMainFragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, getHighlightMenuKey()); fragment.reloadHighlightMenuKey(); } mMainFragment.reloadHighlightMenuKey(); } private void initHomepageContainer() { Loading