cmparts: Add display rotation settings

  * Original work by:
    - Robert Burns
    - Martin Brabham
    - David Van Tonder
    - Michael Bestas
    - Adnan Begovic

Change-Id: If1b4a45fb41b94136209acb47a5549a1b0c25143
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 83c8032..5f4dcd7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -491,4 +491,16 @@
     <string name="stats_collection_title">Stats collection</string>
     <string name="stats_collection_summary">When enabled, allows metrics collection</string>
 
+    <!-- Display : Rotation  -->
+    <string name="accelerometer_title">Auto-rotate screen</string>
+    <string name="display_rotation_title">Rotation settings</string>
+    <string name="display_rotation_disabled">Disabled</string>
+    <string name="display_rotation_unit">degrees</string>
+    <string name="display_lockscreen_rotation_title">Rotate lock screen</string>
+    <string name="display_rotation_category_title">Rotation modes</string>
+    <string name="display_rotation_0_title">0 degrees</string>
+    <string name="display_rotation_90_title">90 degrees</string>
+    <string name="display_rotation_180_title">180 degrees</string>
+    <string name="display_rotation_270_title">270 degrees</string>
+
 </resources>
diff --git a/res/xml/display_rotation.xml b/res/xml/display_rotation.xml
new file mode 100644
index 0000000..b36df56
--- /dev/null
+++ b/res/xml/display_rotation.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The CyanogenMod 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/display_rotation_title">
+
+    <SwitchPreference
+        android:key="accelerometer"
+        android:title="@string/accelerometer_title" />
+    <cyanogenmod.preference.CMSystemSettingSwitchPreference
+        android:key="lockscreen_rotation"
+        android:title="@string/display_lockscreen_rotation_title"
+        android:dependency="accelerometer"
+        android:defaultValue="false" />
+    <PreferenceCategory
+        android:key="display_rotation_category"
+        android:title="@string/display_rotation_category_title" />
+    <CheckBoxPreference
+        android:key="display_rotation_0"
+        android:title="@string/display_rotation_0_title"
+        android:layout="?android:attr/preferenceLayoutChild"
+        android:dependency="accelerometer" />
+    <CheckBoxPreference
+        android:key="display_rotation_90"
+        android:title="@string/display_rotation_90_title"
+        android:layout="?android:attr/preferenceLayoutChild"
+        android:dependency="accelerometer" />
+    <CheckBoxPreference
+        android:key="display_rotation_180"
+        android:title="@string/display_rotation_180_title"
+        android:layout="?android:attr/preferenceLayoutChild"
+        android:dependency="accelerometer" />
+    <CheckBoxPreference
+        android:key="display_rotation_270"
+        android:title="@string/display_rotation_270_title"
+        android:layout="?android:attr/preferenceLayoutChild"
+        android:dependency="accelerometer" />
+
+</PreferenceScreen>
diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml
index 404d93f..94d6a7a 100644
--- a/res/xml/parts_catalog.xml
+++ b/res/xml/parts_catalog.xml
@@ -21,33 +21,37 @@
           android:title="@string/battery_light_title"
           android:fragment="org.cyanogenmod.cmparts.notificationlight.BatteryLightSettings" />
 
-    <part android:key="notification_lights"
-          android:title="@string/notification_light_title"
-          android:fragment="org.cyanogenmod.cmparts.notificationlight.NotificationLightSettings" />
+    <part android:key="button_settings"
+          android:title="@string/button_pref_title"
+          android:fragment="org.cyanogenmod.cmparts.input.ButtonSettings" />
+
+    <part android:key="contributors"
+          android:title="@string/contributors_cloud_fragment_title"
+          android:fragment="org.cyanogenmod.cmparts.contributors.ContributorsCloudFragment" />
 
     <part android:key="livedisplay"
           android:title="@*cyanogenmod.platform:string/live_display_title"
           android:summary="@string/live_display_summary"
           android:fragment="org.cyanogenmod.cmparts.livedisplay.LiveDisplay" />
 
+    <part android:key="notification_lights"
+          android:title="@string/notification_light_title"
+          android:fragment="org.cyanogenmod.cmparts.notificationlight.NotificationLightSettings" />
+
     <part android:key="privacy_settings"
           android:title="@string/privacy_settings_title"
           android:fragment="org.cyanogenmod.cmparts.PrivacySettings" />
 
-    <part android:key="button_settings"
-          android:title="@string/button_pref_title"
-          android:fragment="org.cyanogenmod.cmparts.input.ButtonSettings" />
-
     <part android:key="profiles_settings"
           android:title="@string/profiles_settings_title"
           android:fragment="org.cyanogenmod.cmparts.profiles.ProfilesSettings" />
 
+    <part android:key="rotation"
+          android:title="@string/display_rotation_title"
+          android:fragment="org.cyanogenmod.cmparts.hardware.DisplayRotation" />
+
     <part android:key="status_bar_settings"
           android:title="@string/status_bar_title"
           android:fragment="org.cyanogenmod.cmparts.statusbar.StatusBarSettings" />
 
-    <part android:key="contributors"
-          android:title="@string/contributors_cloud_fragment_title"
-          android:fragment="org.cyanogenmod.cmparts.contributors.ContributorsCloudFragment" />
-
 </parts-catalog>