diff --git a/AdvancedDisplay/Android.mk b/AdvancedDisplay/Android.mk
new file mode 100644
index 0000000..f848efe
--- /dev/null
+++ b/AdvancedDisplay/Android.mk
@@ -0,0 +1,15 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := AdvancedDisplay
+LOCAL_CERTIFICATE := platform
+
+include $(BUILD_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AdvancedDisplay/AndroidManifest.xml b/AdvancedDisplay/AndroidManifest.xml
new file mode 100644
index 0000000..bd470fa
--- /dev/null
+++ b/AdvancedDisplay/AndroidManifest.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AdvancedDisplay/res/drawable/ic_launcher_cmdevicesettings.png b/AdvancedDisplay/res/drawable/ic_launcher_cmdevicesettings.png
new file mode 100755
index 0000000..9bfdd78
Binary files /dev/null and b/AdvancedDisplay/res/drawable/ic_launcher_cmdevicesettings.png differ
diff --git a/AdvancedDisplay/res/layout/top.xml b/AdvancedDisplay/res/layout/top.xml
new file mode 100755
index 0000000..744b568
--- /dev/null
+++ b/AdvancedDisplay/res/layout/top.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/AdvancedDisplay/res/values-de/arrays.xml b/AdvancedDisplay/res/values-de/arrays.xml
new file mode 100644
index 0000000..d3faa6a
--- /dev/null
+++ b/AdvancedDisplay/res/values-de/arrays.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ - CyanogenMod (Standard)
+ - UI
+ - Video
+ - Video warm
+ - Video kalt
+ - Kamera
+ - Navigation
+ - Gallerie
+ - VT
+
+
+
+ - Dynamisch (Standard)
+ - Standard
+ - Natürlich
+ - Film
+
+
+
+ - Normal
+ - Invertiert
+
+
diff --git a/AdvancedDisplay/res/values-de/strings.xml b/AdvancedDisplay/res/values-de/strings.xml
new file mode 100644
index 0000000..419f05c
--- /dev/null
+++ b/AdvancedDisplay/res/values-de/strings.xml
@@ -0,0 +1,28 @@
+
+
+
+ Zurücksetzen
+
+ Display
+ Farben
+ Szenario
+ Wähle das mDNIe Szenario
+ Modus
+ Wähle den mDNIe Modus
+ Negativ Modus
+ Invertiere Farben
+
+
diff --git a/AdvancedDisplay/res/values-es/arrays.xml b/AdvancedDisplay/res/values-es/arrays.xml
new file mode 100644
index 0000000..94c10b9
--- /dev/null
+++ b/AdvancedDisplay/res/values-es/arrays.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ - CyanogenMod (por defecto)
+ - UI
+ - Vídeo
+ - Vídeo cálido
+ - Vídeo frío
+ - Camara
+ - Navegación
+ - Galería
+ - VT
+
+
+ - Estándar (por defecto)
+ - Dinámico
+ - Natural
+ - Película
+
+
+ - Normal
+ - Invertido
+
+
diff --git a/AdvancedDisplay/res/values-es/strings.xml b/AdvancedDisplay/res/values-es/strings.xml
new file mode 100644
index 0000000..e7c1594
--- /dev/null
+++ b/AdvancedDisplay/res/values-es/strings.xml
@@ -0,0 +1,26 @@
+
+
+
+ Restablecer
+ Pantalla
+ Colores
+ Escenario
+ Establecer escenario mDNIe
+ Modo
+ Establecer modo mDNIe
+ Modo Negativo
+ Habilitar/deshabilitar colores invertidos
+
diff --git a/AdvancedDisplay/res/values-fr/arrays.xml b/AdvancedDisplay/res/values-fr/arrays.xml
new file mode 100644
index 0000000..6983df7
--- /dev/null
+++ b/AdvancedDisplay/res/values-fr/arrays.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ - CyanogenMod (Défaut)
+ - UI
+ - Vidéo
+ - Vidéo chaude
+ - Vidéo froide
+ - Caméra
+ - Navigation
+ - Galerie
+ - VT
+
+
+ - Dynamique (Défaut)
+ - Standard
+ - Naturel
+ - Vidéo
+
+
+ - Normal
+ - Inversé
+
+
diff --git a/AdvancedDisplay/res/values-fr/strings.xml b/AdvancedDisplay/res/values-fr/strings.xml
new file mode 100644
index 0000000..4e5e67c
--- /dev/null
+++ b/AdvancedDisplay/res/values-fr/strings.xml
@@ -0,0 +1,26 @@
+
+
+
+ Réinitialiser
+ Écran
+ Couleurs
+ Scénario
+ Définir le scénario mDNIe
+ Mode
+ Définir le mode mDNIe
+ Mode négatif
+ Activer/désactiver les couleurs inversées
+
diff --git a/AdvancedDisplay/res/values-hu/arrays.xml b/AdvancedDisplay/res/values-hu/arrays.xml
new file mode 100644
index 0000000..dae3a4c
--- /dev/null
+++ b/AdvancedDisplay/res/values-hu/arrays.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ - CyanogenMod (Alapbeállítás)
+ - Felhasználói felület
+ - Videó
+ - Videó (Meleg árnyalat)
+ - Videó (Hideg árnyalat)
+ - Kamera
+ - Navigáció
+ - Galéria
+ - VT
+
+
+ - Dinamikus (Alapbeállítás)
+ - Hagyományos
+ - Természetes
+ - Film
+
+
+ - Normál
+ - Fordított
+
+
diff --git a/AdvancedDisplay/res/values-hu/strings.xml b/AdvancedDisplay/res/values-hu/strings.xml
new file mode 100644
index 0000000..b8fcba6
--- /dev/null
+++ b/AdvancedDisplay/res/values-hu/strings.xml
@@ -0,0 +1,26 @@
+
+
+
+ Beállítások visszaállítása alaphelyzetbe
+ Kijelző
+ Színek
+ Megjelenítés
+ mDNIe megjelenítési beállítások
+ Üzemmód
+ mDNIe üzemmódok
+ Negatív üzemmód
+ Fordított színek ki/be
+
diff --git a/AdvancedDisplay/res/values-nl/arrays.xml b/AdvancedDisplay/res/values-nl/arrays.xml
new file mode 100644
index 0000000..d0baeed
--- /dev/null
+++ b/AdvancedDisplay/res/values-nl/arrays.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ - CyanogenMod (standaard)
+ - Uiterlijk
+ - Video
+ - Video (warm)
+ - Video (koud)
+ - Camera
+ - Navigatie
+ - Galerij
+ - VT
+
+
+
+ - Dynamisch (standaard)
+ - Standaard
+ - Natuurlijk
+ - Film
+
+
+
+ - Normaal
+ - Omgedraaid
+
+
diff --git a/AdvancedDisplay/res/values-nl/strings.xml b/AdvancedDisplay/res/values-nl/strings.xml
new file mode 100644
index 0000000..eafc3a5
--- /dev/null
+++ b/AdvancedDisplay/res/values-nl/strings.xml
@@ -0,0 +1,28 @@
+
+
+
+ Standaardwaarden
+
+ Scherm
+ Kleuren
+
+ Scenario
+ mDNIe-scenario instellen
+ Modus
+ mDNIe-modus instellen
+ Negatieve modus
+ Negatieve kleuren in-/uitschakelen
+
diff --git a/AdvancedDisplay/res/values-pl/arrays.xml b/AdvancedDisplay/res/values-pl/arrays.xml
new file mode 100644
index 0000000..30274f2
--- /dev/null
+++ b/AdvancedDisplay/res/values-pl/arrays.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ - CyanogenMod (domyślnie)
+ - UI
+ - Wideo
+ - Ciepły film
+ - Zimny film
+ - Kamera
+ - Nawigacja
+ - Galeria
+ - VT
+
+
+
+ - Dynamicznie (domyślnie)
+ - Standardowo
+ - Naturalnie
+ - Film
+
+
+
+ - Normalnie
+ - Odwrócony
+
+
diff --git a/AdvancedDisplay/res/values-pl/strings.xml b/AdvancedDisplay/res/values-pl/strings.xml
new file mode 100644
index 0000000..06ad53b
--- /dev/null
+++ b/AdvancedDisplay/res/values-pl/strings.xml
@@ -0,0 +1,25 @@
+
+
+
+ Ekran
+ Kolory
+ Technologia mDNIe
+ Ustaw scenariusz mDNIe
+ Tryb
+ Ustaw tryb mDNIe
+ Tryb negatywu
+ Włącz/wyłącz odwrócone kolory
+
diff --git a/AdvancedDisplay/res/values-pt-rBR/arrays.xml b/AdvancedDisplay/res/values-pt-rBR/arrays.xml
new file mode 100644
index 0000000..77a51d2
--- /dev/null
+++ b/AdvancedDisplay/res/values-pt-rBR/arrays.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ - CyanogenMod (Padrão)
+ - IU
+ - Vídeo
+ - Vídeo Quente
+ - Vídeo Frio
+ - Câmera
+ - Navegação
+ - Galeria
+ - VT
+
+
+
+ - Padrão
+ - Dinâmico
+ - Natural
+ - Filme
+
+
+
+ - Normal
+ - Invertido
+
+
diff --git a/AdvancedDisplay/res/values-pt-rBR/strings.xml b/AdvancedDisplay/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..76487b3
--- /dev/null
+++ b/AdvancedDisplay/res/values-pt-rBR/strings.xml
@@ -0,0 +1,25 @@
+
+
+
+ Tela
+ Cores
+ Cenário
+ Define o Cenário mDNIe
+ Modo
+ Define o Modo mDNIe
+ Modo Negativo
+ Ativar/Desativar cores invertidas
+
diff --git a/AdvancedDisplay/res/values-ru/arrays.xml b/AdvancedDisplay/res/values-ru/arrays.xml
new file mode 100644
index 0000000..a32bc26
--- /dev/null
+++ b/AdvancedDisplay/res/values-ru/arrays.xml
@@ -0,0 +1,39 @@
+
+
+
+
+ - CyanogenMod (По умолч.)
+ - Видео
+ - Видео (тёпл.)
+ - Видео (хол.)
+ - Камера
+ - Навигация
+ - Галерея
+ - VT
+
+
+
+ - Динамический (По умолч.)
+ - Стандартный
+ - Натуральный
+ - Кино
+
+
+
+ - Нормально
+ - Инверсия
+
+
diff --git a/AdvancedDisplay/res/values-ru/strings.xml b/AdvancedDisplay/res/values-ru/strings.xml
new file mode 100644
index 0000000..9cabd97
--- /dev/null
+++ b/AdvancedDisplay/res/values-ru/strings.xml
@@ -0,0 +1,25 @@
+
+
+
+ Экран
+ Цвета
+ Сценарий
+ Установка сценария mDNIe
+ Режим
+ Установка режима mDNIe
+ Негатив
+ Вкл./выкл. инверсии цветов
+
diff --git a/AdvancedDisplay/res/values-zh-rCN/arrays.xml b/AdvancedDisplay/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000..8b295c4
--- /dev/null
+++ b/AdvancedDisplay/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ - CyanogenMod (默认)
+ - 界面
+ - 影片
+ - 影片 (温)
+ - 影片 (冷)
+ - 相机
+ - 导航
+ - 图库
+ - VT
+
+
+
+ - 动态 (默认)
+ - 标准
+ - 自然
+ - 电影
+
+
+
+ - 正常
+ - 反色
+
+
diff --git a/AdvancedDisplay/res/values-zh-rCN/strings.xml b/AdvancedDisplay/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..b5ee6f6
--- /dev/null
+++ b/AdvancedDisplay/res/values-zh-rCN/strings.xml
@@ -0,0 +1,25 @@
+
+
+
+ 屏幕
+ 颜色
+ 场景
+ 设置 mDNIe 场景
+ 模式
+ 设置 mDNIe 模式
+ 负极模式
+ 启用/禁用反色
+
diff --git a/AdvancedDisplay/res/values/arrays.xml b/AdvancedDisplay/res/values/arrays.xml
new file mode 100644
index 0000000..cff1afa
--- /dev/null
+++ b/AdvancedDisplay/res/values/arrays.xml
@@ -0,0 +1,106 @@
+
+
+
+
+ - CyanogenMod (Default)
+ - UI
+ - Video
+ - Video Warm
+ - Video Cold
+ - Camera
+ - Navigation
+ - Gallery
+ - VT
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+
+
+
+ - Dynamic (Default)
+ - Standard
+ - Natural
+ - Movie
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+
+
+
+ - Normal
+ - Inverted
+
+
+
+ - 0
+ - 1
+
+
+
+ - Never
+ - 1 second
+ - 2 seconds
+ - 3 seconds (Default)
+ - 4 seconds
+ - 5 seconds
+ - 6 seconds
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+
+
+
+ - Blinking
+ - Fading
+
+
+
+ - 0
+ - 1
+
+
+
+ - UMTS Only
+ - HSDPA Only
+ - HSDPA + HSUPA
+
+
+
+ - 21
+ - 22
+ - 23
+
+
diff --git a/AdvancedDisplay/res/values/config.xml b/AdvancedDisplay/res/values/config.xml
new file mode 100644
index 0000000..5e4be8f
--- /dev/null
+++ b/AdvancedDisplay/res/values/config.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ true
+ "/sys/vibrator/pwm_val"
+ 100
+ 75
+ 50
+ 0
+
+
+ "/sys/class/sec/sec_epen"
+ "/sys/class/sec/sec_epen/epen_saving_mode"
+
+
+ false
+ false
+
+ 10
+ 9
+ 5
+ 1
+ 63
+ 60
+ 50
+ 0
+
+
+ true
+
+
+ true
+
+
+ "/sys/class/lcd/panel/power_reduce"
+ "/sys/class/mdnie/mdnie/scenario"
+ "/sys/class/mdnie/mdnie/mode"
+ "/sys/class/mdnie/mdnie/negative"
+
+
diff --git a/AdvancedDisplay/res/values/strings.xml b/AdvancedDisplay/res/values/strings.xml
new file mode 100644
index 0000000..d7438f4
--- /dev/null
+++ b/AdvancedDisplay/res/values/strings.xml
@@ -0,0 +1,33 @@
+
+
+
+ Advanced Display
+
+ Reset to default
+
+
+ Screen
+ Colors
+
+
+ Scenario
+ Set the mDNIe Scenario
+ Mode
+ Set the mDNIe Mode
+ Negative Mode
+ Enable/Disable inverted colors
+
+
diff --git a/AdvancedDisplay/res/xml/screen_preferences.xml b/AdvancedDisplay/res/xml/screen_preferences.xml
new file mode 100644
index 0000000..56e536c
--- /dev/null
+++ b/AdvancedDisplay/res/xml/screen_preferences.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java
new file mode 100644
index 0000000..d838c31
--- /dev/null
+++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.cyanogenmod.settings.device;
+
+import android.app.ActionBar;
+import android.app.ActionBar.Tab;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.FragmentActivity;
+import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.view.MenuItem;
+
+import com.cyanogenmod.settings.device.R;
+
+import java.util.ArrayList;
+
+public class DisplaySettings extends FragmentActivity {
+
+ public static final String SHARED_PREFERENCES_BASENAME = "com.cyanogenmod.settings.device";
+ public static final String ACTION_UPDATE_PREFERENCES = "com.cyanogenmod.settings.device.UPDATE";
+ public static final String KEY_CABC = "cabc";
+ public static final String KEY_MDNIE_SCENARIO = "mdnie_scenario";
+ public static final String KEY_MDNIE_MODE = "mdnie_mode";
+ public static final String KEY_MDNIE_NEGATIVE = "mdnie_negative";
+ public static final String KEY_LED_FADE = "led_fade";
+ public static final String KEY_TOUCHKEY_LIGHT = "touchkey_light";
+ public static final String KEY_TOUCHKEY_TIMEOUT = "touchkey_timeout";
+ public static final String KEY_HSPA = "hspa";
+ public static final String KEY_USE_DOCK_AUDIO = "dock_audio";
+ public static final String KEY_CATEGORY_SPEN = "category_spen";
+ public static final String KEY_SPEN_POWER_SAVING_MODE = "spen_power_saving";
+
+ ViewPager mViewPager;
+ TabsAdapter mTabsAdapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ mViewPager = new ViewPager(this);
+ mViewPager.setId(R.id.viewPager);
+ setContentView(mViewPager);
+
+ final ActionBar bar = getActionBar();
+ bar.setTitle(R.string.app_name);
+ bar.setDisplayHomeAsUpEnabled(true);
+
+ mTabsAdapter = new TabsAdapter(this, mViewPager);
+ mTabsAdapter.addTab(bar.newTab().setText(R.string.category_screen_title),
+ ScreenFragmentActivity.class, null);
+
+ if (savedInstanceState != null) {
+ bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
+ }
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
+ }
+
+ public static class TabsAdapter extends FragmentPagerAdapter
+ implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
+ private final Context mContext;
+ private final ActionBar mActionBar;
+ private final ViewPager mViewPager;
+ private final ArrayList mTabs = new ArrayList();
+
+ static final class TabInfo {
+ private final Class> clss;
+ private final Bundle args;
+
+ TabInfo(Class> _class, Bundle _args) {
+ clss = _class;
+ args = _args;
+ }
+ }
+
+ public TabsAdapter(Activity activity, ViewPager pager) {
+ super(activity.getFragmentManager());
+ mContext = activity;
+ mActionBar = activity.getActionBar();
+ mViewPager = pager;
+ mViewPager.setAdapter(this);
+ mViewPager.setOnPageChangeListener(this);
+ }
+
+ public void addTab(ActionBar.Tab tab, Class> clss, Bundle args) {
+ TabInfo info = new TabInfo(clss, args);
+ tab.setTag(info);
+ tab.setTabListener(this);
+ mTabs.add(info);
+ mActionBar.addTab(tab);
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getCount() {
+ return mTabs.size();
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ TabInfo info = mTabs.get(position);
+ return Fragment.instantiate(mContext, info.clss.getName(), info.args);
+ }
+
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+ }
+
+ public void onPageSelected(int position) {
+ mActionBar.setSelectedNavigationItem(position);
+ }
+
+ public void onPageScrollStateChanged(int state) {
+ }
+
+ public void onTabSelected(Tab tab, FragmentTransaction ft) {
+ Object tag = tab.getTag();
+ for (int i=0; i