page.title=Configuring Display Settings
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<p>This section covers AOSP implementation of various Android display
settings, including app shortcuts, circular launcher icons, do not disturb
(DND), multi-window (split-screen, free-form, and picture-in-picture), high
dynamic range (HDR) video, night light, and retail demo mode. See the subpages
of this section for details.</p>

<h2 id="settingshome">Settings Home screen enhancements</h2>

<p>In Android 7.0, the Settings Home page is enhanced with suggested
settings and customizable status notifications. The feature is implemented
automatically, and device implementers can configure it.</p>


<p>The source code for these enhancements is in these files:</p>

<ul>
<li><code>frameworks/base/packages/SettingsLib/src/com/android/settingslib/SuggestionParser.java</code></li>
<li><code>frameworks/base/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java</code></li>
</ul>
