Loading AndroidManifest.xml +30 −1 Original line number Diff line number Diff line Loading @@ -1197,6 +1197,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.security.LockscreenDashboardFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_display"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1223,6 +1225,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.deviceinfo.legal.ModuleLicensesDashboard" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_about_device"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1243,6 +1247,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1266,6 +1272,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.managedomainurls.ManageDomainUrls" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> </activity> <activity android:name="Settings$AppMemoryUsageActivity" Loading @@ -1278,6 +1286,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.ProcessStatsUi" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> </activity> <activity Loading @@ -1290,6 +1300,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading Loading @@ -1396,6 +1408,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1417,6 +1431,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading Loading @@ -2245,6 +2261,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.network.apn.ApnEditor" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_network"/> </activity> <activity Loading Loading @@ -2273,6 +2291,8 @@ android:value="com.android.settings.development.DevelopmentSettingsDashboardFragment" /> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <!-- The opposite of DevelopmentSettingsActivity, it's no-op and only enabled when the real Loading Loading @@ -2307,6 +2327,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.print.PrintSettingsFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_connected_devices"/> </activity> <activity android:name="Settings$PrintJobSettingsActivity" Loading @@ -2319,6 +2341,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.print.PrintJobSettingsFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_connected_devices"/> </activity> <activity android:name=".development.AppPicker" Loading @@ -2339,7 +2363,10 @@ android:label="@string/accessor_info_title" /> <activity android:name="Settings$WebViewAppPickerActivity" android:label="@string/select_webview_provider_dialog_title" /> android:label="@string/select_webview_provider_dialog_title"> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <activity android:name="Settings$BugReportHandlerPickerActivity" android:label="@string/bug_report_handler_title" Loading @@ -2353,6 +2380,8 @@ android:value="true" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.bugreporthandler.BugReportHandlerPicker" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <activity android:name=".bluetooth.BluetoothPairingDialog" Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +7 −3 Original line number Diff line number Diff line Loading @@ -99,7 +99,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements if (mHomepageView == null) { return false; } else { if (!mLoadedListeners.contains(listener)) { mLoadedListeners.add(listener); } return true; } } Loading @@ -113,11 +115,13 @@ public class SettingsHomepageActivity extends FragmentActivity implements return; } Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion); final View homepageView = mHomepageView; mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE); mHomepageView.setVisibility(View.VISIBLE); mHomepageView = null; mLoadedListeners.forEach(listener -> listener.onHomepageLoaded()); mLoadedListeners.clear(); homepageView.setVisibility(View.VISIBLE); } @Override Loading Loading @@ -199,7 +203,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements mSuggestionView = findViewById(R.id.suggestion_content); mHomepageView = findViewById(R.id.settings_homepage_container); // Hide the homepage for preparing the suggestion. mHomepageView.setVisibility(View.GONE); mHomepageView.setVisibility(View.INVISIBLE); // Schedule a timer to show the homepage and hide the suggestion on timeout. mHomepageView.postDelayed(() -> showHomepageWithSuggestion(false), HOMEPAGE_LOADING_TIMEOUT_MS); Loading src/com/android/settings/homepage/TopLevelSettings.java +2 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,8 @@ public class TopLevelSettings extends DashboardFragment implements @Override protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext())) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext()) || !(getActivity() instanceof SettingsHomepageActivity)) { return super.onCreateAdapter(preferenceScreen); } Loading src/com/android/settings/search/SearchResultTrampoline.java +2 −3 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class SearchResultTrampoline extends Activity { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { startActivity(intent); } else if (isFromSettingsIntelligence(callingActivity)) { } else if (isSettingsIntelligence(callingActivity)) { // Register SplitPairRule for SubSettings, set clearTop false to prevent unexpected back // navigation behavior. ActivityEmbeddingRulesController.registerSubSettingsPairRule(this, Loading @@ -104,7 +104,6 @@ public class SearchResultTrampoline extends Activity { startActivity(intent); } else { // Two-pane case intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(SettingsActivity.getTrampolineIntent(intent, highlightMenuKey)); } Loading @@ -112,7 +111,7 @@ public class SearchResultTrampoline extends Activity { finish(); } private boolean isFromSettingsIntelligence(ComponentName callingActivity) { private boolean isSettingsIntelligence(ComponentName callingActivity) { return callingActivity != null && TextUtils.equals( callingActivity.getPackageName(), FeatureFactory.getFactory(this).getSearchFeatureProvider() Loading src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java +17 −10 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ import com.android.settings.homepage.SettingsHomepageActivity; /** * Adapter for highlighting top level preferences */ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter { public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter implements SettingsHomepageActivity.HomepageLoadedListener { private static final String TAG = "HighlightableTopLevelAdapter"; Loading @@ -60,6 +61,7 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt private String mHighlightKey; private String mPreviousHighlightKey; private int mHighlightPosition = RecyclerView.NO_POSITION; private int mScrollPosition = RecyclerView.NO_POSITION; private boolean mHighlightNeeded; private boolean mScrolled; Loading Loading @@ -135,9 +137,11 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt return; } // Scroll before highlight if needed. final boolean highlightNeeded = isHighlightNeeded(); if (highlightNeeded) { scrollToPositionIfNeeded(position); mScrollPosition = position; scroll(); } // Turn on/off highlight when screen split mode is changed. Loading Loading @@ -189,26 +193,29 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt requestHighlight(); } private void scrollToPositionIfNeeded(int position) { if (mScrolled || position < 0) { @Override public void onHomepageLoaded() { scroll(); } private void scroll() { if (mScrolled || mScrollPosition < 0) { return; } if (mHomepageActivity.registerHomepageLoadedListenerIfNeeded( () -> scrollToPositionIfNeeded(position))) { if (mHomepageActivity.registerHomepageLoadedListenerIfNeeded(this)) { return; } // Only when the recyclerView is loaded, it can be scrolled final View view = mRecyclerView.getChildAt(position); final View view = mRecyclerView.getChildAt(mScrollPosition); if (view == null) { mRecyclerView.postDelayed(() -> scrollToPositionIfNeeded(position), DELAY_HIGHLIGHT_DURATION_MILLIS); mRecyclerView.postDelayed(() -> scroll(), DELAY_HIGHLIGHT_DURATION_MILLIS); return; } mScrolled = true; Log.d(TAG, "Scroll to position " + position); Log.d(TAG, "Scroll to position " + mScrollPosition); // Scroll to the top to reset the position. mRecyclerView.nestedScrollBy(0, -mRecyclerView.getHeight()); Loading Loading
AndroidManifest.xml +30 −1 Original line number Diff line number Diff line Loading @@ -1197,6 +1197,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.security.LockscreenDashboardFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_display"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1223,6 +1225,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.deviceinfo.legal.ModuleLicensesDashboard" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_about_device"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1243,6 +1247,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1266,6 +1272,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.managedomainurls.ManageDomainUrls" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> </activity> <activity android:name="Settings$AppMemoryUsageActivity" Loading @@ -1278,6 +1286,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.ProcessStatsUi" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> </activity> <activity Loading @@ -1290,6 +1300,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading Loading @@ -1396,6 +1408,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading @@ -1417,6 +1431,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.applications.manageapplications.ManageApplications" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_apps"/> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity> Loading Loading @@ -2245,6 +2261,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.network.apn.ApnEditor" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_network"/> </activity> <activity Loading Loading @@ -2273,6 +2291,8 @@ android:value="com.android.settings.development.DevelopmentSettingsDashboardFragment" /> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <!-- The opposite of DevelopmentSettingsActivity, it's no-op and only enabled when the real Loading Loading @@ -2307,6 +2327,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.print.PrintSettingsFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_connected_devices"/> </activity> <activity android:name="Settings$PrintJobSettingsActivity" Loading @@ -2319,6 +2341,8 @@ </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.print.PrintJobSettingsFragment" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_connected_devices"/> </activity> <activity android:name=".development.AppPicker" Loading @@ -2339,7 +2363,10 @@ android:label="@string/accessor_info_title" /> <activity android:name="Settings$WebViewAppPickerActivity" android:label="@string/select_webview_provider_dialog_title" /> android:label="@string/select_webview_provider_dialog_title"> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <activity android:name="Settings$BugReportHandlerPickerActivity" android:label="@string/bug_report_handler_title" Loading @@ -2353,6 +2380,8 @@ android:value="true" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.bugreporthandler.BugReportHandlerPicker" /> <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" android:value="@string/menu_key_system"/> </activity> <activity android:name=".bluetooth.BluetoothPairingDialog" Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +7 −3 Original line number Diff line number Diff line Loading @@ -99,7 +99,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements if (mHomepageView == null) { return false; } else { if (!mLoadedListeners.contains(listener)) { mLoadedListeners.add(listener); } return true; } } Loading @@ -113,11 +115,13 @@ public class SettingsHomepageActivity extends FragmentActivity implements return; } Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion); final View homepageView = mHomepageView; mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE); mHomepageView.setVisibility(View.VISIBLE); mHomepageView = null; mLoadedListeners.forEach(listener -> listener.onHomepageLoaded()); mLoadedListeners.clear(); homepageView.setVisibility(View.VISIBLE); } @Override Loading Loading @@ -199,7 +203,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements mSuggestionView = findViewById(R.id.suggestion_content); mHomepageView = findViewById(R.id.settings_homepage_container); // Hide the homepage for preparing the suggestion. mHomepageView.setVisibility(View.GONE); mHomepageView.setVisibility(View.INVISIBLE); // Schedule a timer to show the homepage and hide the suggestion on timeout. mHomepageView.postDelayed(() -> showHomepageWithSuggestion(false), HOMEPAGE_LOADING_TIMEOUT_MS); Loading
src/com/android/settings/homepage/TopLevelSettings.java +2 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,8 @@ public class TopLevelSettings extends DashboardFragment implements @Override protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext())) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext()) || !(getActivity() instanceof SettingsHomepageActivity)) { return super.onCreateAdapter(preferenceScreen); } Loading
src/com/android/settings/search/SearchResultTrampoline.java +2 −3 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class SearchResultTrampoline extends Activity { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { startActivity(intent); } else if (isFromSettingsIntelligence(callingActivity)) { } else if (isSettingsIntelligence(callingActivity)) { // Register SplitPairRule for SubSettings, set clearTop false to prevent unexpected back // navigation behavior. ActivityEmbeddingRulesController.registerSubSettingsPairRule(this, Loading @@ -104,7 +104,6 @@ public class SearchResultTrampoline extends Activity { startActivity(intent); } else { // Two-pane case intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(SettingsActivity.getTrampolineIntent(intent, highlightMenuKey)); } Loading @@ -112,7 +111,7 @@ public class SearchResultTrampoline extends Activity { finish(); } private boolean isFromSettingsIntelligence(ComponentName callingActivity) { private boolean isSettingsIntelligence(ComponentName callingActivity) { return callingActivity != null && TextUtils.equals( callingActivity.getPackageName(), FeatureFactory.getFactory(this).getSearchFeatureProvider() Loading
src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java +17 −10 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ import com.android.settings.homepage.SettingsHomepageActivity; /** * Adapter for highlighting top level preferences */ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter { public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter implements SettingsHomepageActivity.HomepageLoadedListener { private static final String TAG = "HighlightableTopLevelAdapter"; Loading @@ -60,6 +61,7 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt private String mHighlightKey; private String mPreviousHighlightKey; private int mHighlightPosition = RecyclerView.NO_POSITION; private int mScrollPosition = RecyclerView.NO_POSITION; private boolean mHighlightNeeded; private boolean mScrolled; Loading Loading @@ -135,9 +137,11 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt return; } // Scroll before highlight if needed. final boolean highlightNeeded = isHighlightNeeded(); if (highlightNeeded) { scrollToPositionIfNeeded(position); mScrollPosition = position; scroll(); } // Turn on/off highlight when screen split mode is changed. Loading Loading @@ -189,26 +193,29 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt requestHighlight(); } private void scrollToPositionIfNeeded(int position) { if (mScrolled || position < 0) { @Override public void onHomepageLoaded() { scroll(); } private void scroll() { if (mScrolled || mScrollPosition < 0) { return; } if (mHomepageActivity.registerHomepageLoadedListenerIfNeeded( () -> scrollToPositionIfNeeded(position))) { if (mHomepageActivity.registerHomepageLoadedListenerIfNeeded(this)) { return; } // Only when the recyclerView is loaded, it can be scrolled final View view = mRecyclerView.getChildAt(position); final View view = mRecyclerView.getChildAt(mScrollPosition); if (view == null) { mRecyclerView.postDelayed(() -> scrollToPositionIfNeeded(position), DELAY_HIGHLIGHT_DURATION_MILLIS); mRecyclerView.postDelayed(() -> scroll(), DELAY_HIGHLIGHT_DURATION_MILLIS); return; } mScrolled = true; Log.d(TAG, "Scroll to position " + position); Log.d(TAG, "Scroll to position " + mScrollPosition); // Scroll to the top to reset the position. mRecyclerView.nestedScrollBy(0, -mRecyclerView.getHeight()); Loading