Support highlightable Settings homepage menu for 2-pane

1. Add a preference group adapter to perform highlighting
2. Add a class for mapping highlighable menu keys and preference keys
3. Add an API to determine if the screen is in split mode

Bug: 199017944
Test: manual, build
Change-Id: I8e3fe5fb96480a31ee0f3b3afb6ad78999d3d2bc
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index cc9542b..a892b97 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -83,7 +83,8 @@
     }
 
     public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class DataSaverSummaryActivity extends SettingsActivity{ /* empty */ }
+    /** Activity for Data saver settings. */
+    public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ }
     public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ }
     public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ }
@@ -121,13 +122,9 @@
     public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityDaltonizerSettingsActivity extends SettingsActivity { /* empty */ }
-    /**
-     * Activity for lockscreen settings.
-     */
+    /** Activity for lockscreen settings. */
     public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ }
-    /**
-     * Activity for Reduce Bright Colors.
-     */
+    /** Activity for Reduce Bright Colors. */
     public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ }
     /** Activity for the security dashboard. */
     public static class SecurityDashboardActivity extends SettingsActivity {