diff --git a/DeviceSettings/AndroidManifest.xml b/DeviceSettings/AndroidManifest.xml
index 0c62ee2d..b37aa00f 100644
--- a/DeviceSettings/AndroidManifest.xml
+++ b/DeviceSettings/AndroidManifest.xml
@@ -75,6 +75,16 @@
+
+
+
+
+
+
+
+
diff --git a/DeviceSettings/res/drawable/thermal_balance.xml b/DeviceSettings/res/drawable/thermal_balance.xml
new file mode 100644
index 00000000..e0a5b308
--- /dev/null
+++ b/DeviceSettings/res/drawable/thermal_balance.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/DeviceSettings/res/values-de-rDE/strings.xml b/DeviceSettings/res/values-de-rDE/strings.xml
index ca2aab91..49d0b8bb 100644
--- a/DeviceSettings/res/values-de-rDE/strings.xml
+++ b/DeviceSettings/res/values-de-rDE/strings.xml
@@ -20,7 +20,17 @@
Displaykalibierung
Stärke
-
+
+ Temperatur
+ Temperatur Einstellung
+ Wähle das Temperatur Profil
+ Wähle das Temperatur Profil
+
+ Performance
+ Energieeffizient
+ Gaming
+ Balance
+ Energiesparen
Haptisches Feedback
diff --git a/DeviceSettings/res/values-es-rES/strings.xml b/DeviceSettings/res/values-es-rES/strings.xml
index d7ca6084..53aad60e 100644
--- a/DeviceSettings/res/values-es-rES/strings.xml
+++ b/DeviceSettings/res/values-es-rES/strings.xml
@@ -33,6 +33,19 @@
Pantalla ambiente
Ajustes pantalla ambiente
+
+
+ Rendimiento
+ Ajustes de Rendimiento
+ Elija su configuración de Rendimiento
+ Elija su configuración de Rendimiento
+
+
+ Rendimiento
+ Batería
+ Juego
+ Balance
+ Batería Extrema
Mi Sound Enhancer
diff --git a/DeviceSettings/res/values-es-rMX/strings.xml b/DeviceSettings/res/values-es-rMX/strings.xml
index 54fda481..818dca2d 100644
--- a/DeviceSettings/res/values-es-rMX/strings.xml
+++ b/DeviceSettings/res/values-es-rMX/strings.xml
@@ -25,6 +25,19 @@
Retroalimentación háptica
Fuerza
+
+ Rendimiento
+ Ajustes de Rendimiento
+ Elija su configuración de Rendimiento
+ Elija su configuración de Rendimiento
+
+
+ Rendimiento
+ Batería
+ Juego
+ Balance
+ Batería Extrema
+
Mi Sound Enhancer
Optimizar la calidad del audio
diff --git a/DeviceSettings/res/values-es/strings.xml b/DeviceSettings/res/values-es/strings.xml
index ed5fd6c5..b49b788a 100644
--- a/DeviceSettings/res/values-es/strings.xml
+++ b/DeviceSettings/res/values-es/strings.xml
@@ -33,6 +33,21 @@
Doze de xiaomi
Pantalla ambiente
+
+
+ Rendimiento
+ Ajustes de Rendimiento
+ Elija su configuración de Rendimiento
+ Elija su configuración de Rendimiento
+
+
+ Rendimiento
+ Batería
+ Juego
+ Balance
+ Batería Extrema
+
+
Mi Sound Enhancer
diff --git a/DeviceSettings/res/values-in-rID/strings.xml b/DeviceSettings/res/values-in-rID/strings.xml
index bf980116..6522685a 100644
--- a/DeviceSettings/res/values-in-rID/strings.xml
+++ b/DeviceSettings/res/values-in-rID/strings.xml
@@ -37,6 +37,19 @@
Umpan balik getaran
Kekuatan
+
+ Suhu
+ Setelan suhu
+ Pilih profil suhu
+ Pilih profil suhu yang anda sukai
+
+
+ Performa
+ Baterai
+ Gaming
+ Seimbang
+ Hemat baterai ekstrim
+
Mi Sound Enhancer
Optimalkan kualitas audio
diff --git a/DeviceSettings/res/values-ja-rJP/strings.xml b/DeviceSettings/res/values-ja-rJP/strings.xml
index 558fb76f..8a27678b 100644
--- a/DeviceSettings/res/values-ja-rJP/strings.xml
+++ b/DeviceSettings/res/values-ja-rJP/strings.xml
@@ -29,6 +29,19 @@
振動フィードバック
強さ
+
+ パフォーマンス
+ パフォーマンスの設定
+ パフォーマンス設定を選択して下さい
+ パフォーマンス設定を選択して下さい
+
+
+ 高性能
+ 省電力
+ ゲーム
+ バランス
+ 超省電力
+
サウンドエンハンサ
diff --git a/DeviceSettings/res/values-ko-rKR/strings.xml b/DeviceSettings/res/values-ko-rKR/strings.xml
index b85bca34..3e75b753 100644
--- a/DeviceSettings/res/values-ko-rKR/strings.xml
+++ b/DeviceSettings/res/values-ko-rKR/strings.xml
@@ -37,6 +37,19 @@
햅틱 피드백
강도
+
+ 쓰로틀링 관리
+ 쓰로틀링 관리 설정
+ 쓰로틀링 관리 프로필 설정
+ 쓰로틀링 관리 프로필 선택
+
+
+ 성능 향상
+ 배터리 효율 향상
+ 게이밍 특화
+ 균형 설정
+ 배터리 효율 매우 향상
+
사운드 강화
diff --git a/DeviceSettings/res/values-pt-rBR/strings.xml b/DeviceSettings/res/values-pt-rBR/strings.xml
index f37fa314..6deee64b 100644
--- a/DeviceSettings/res/values-pt-rBR/strings.xml
+++ b/DeviceSettings/res/values-pt-rBR/strings.xml
@@ -37,6 +37,19 @@
Retorno de vibração
Intensidade
+
+ Temperatura
+ Configurações de temperatura
+ Permite escolher o perfil de Temperatura adotado pelo aparelho
+ Escolha o perfil de Temperatura
+
+
+ Desempenho
+ Bateria
+ Jogos
+ Balanceado
+ Bateria Extrema
+
Áudio
diff --git a/DeviceSettings/res/values-ru-rRU/strings.xml b/DeviceSettings/res/values-ru-rRU/strings.xml
index ade6c345..1289ccb3 100644
--- a/DeviceSettings/res/values-ru-rRU/strings.xml
+++ b/DeviceSettings/res/values-ru-rRU/strings.xml
@@ -37,6 +37,19 @@
Вибрация
Сила
+
+ Температурные режимы
+ Настройки температуры
+ Выберите температурный режим
+ Выберите температурный режим
+
+
+ Производительность
+ Энергосбережение
+ Игры
+ Баланс
+ Экстремальное энергосбережение
+
Аудио
diff --git a/DeviceSettings/res/values-ru/strings.xml b/DeviceSettings/res/values-ru/strings.xml
index af18ca7f..db1144f8 100644
--- a/DeviceSettings/res/values-ru/strings.xml
+++ b/DeviceSettings/res/values-ru/strings.xml
@@ -31,6 +31,19 @@
Вибрация
Сила
+
+ Производительность
+ Настройки производительности
+ Выберите Ваш профиль производительности
+ Выберите Ваш профиль производительности
+
+
+ Производительность
+ Энергосбережение
+ Игры
+ Баланс
+ Экстримальное энергосбережение
+
Аудио
diff --git a/DeviceSettings/res/values-sk-rSK/strings.xml b/DeviceSettings/res/values-sk-rSK/strings.xml
index e7888eea..847d0774 100644
--- a/DeviceSettings/res/values-sk-rSK/strings.xml
+++ b/DeviceSettings/res/values-sk-rSK/strings.xml
@@ -37,6 +37,19 @@
Hmatová spätná odozva
Sila
+
+ Výkon
+ Nastavenia Výkonu
+ Režim výkonu
+ Režim výkonu
+
+
+ Výkon
+ Šetrič batérie
+ Herný
+ Vyvážený
+ Extrémny šetrič batŕeie
+
Mi vylepšenie zvuku
Optimalizácia kvality zvuku
diff --git a/DeviceSettings/res/values-zh-rCN/strings.xml b/DeviceSettings/res/values-zh-rCN/strings.xml
index 56efc269..9da99332 100644
--- a/DeviceSettings/res/values-zh-rCN/strings.xml
+++ b/DeviceSettings/res/values-zh-rCN/strings.xml
@@ -29,6 +29,19 @@
触觉反馈
强度
+
+ 性能
+ 性能选项
+ 性能选项
+ 设置性能选项
+
+
+ 高性能
+ 延长电池
+ 游戏
+ 平衡
+ 极致延长电池
+
音米
diff --git a/DeviceSettings/res/values-zh/strings.xml b/DeviceSettings/res/values-zh/strings.xml
index d4e06751..14cc6e1e 100644
--- a/DeviceSettings/res/values-zh/strings.xml
+++ b/DeviceSettings/res/values-zh/strings.xml
@@ -29,6 +29,23 @@
触觉反馈
强度
+
+ 性能
+ 性能选项
+ 性能选项
+ 设置性能选项
+
+
+ 高性能
+ 延长电池
+ 游戏
+ 平衡
+ 极致延长电池
+
+
+
+
+
音频
diff --git a/DeviceSettings/res/values/arrays.xml b/DeviceSettings/res/values/arrays.xml
index d28ee528..ab4ad4e9 100644
--- a/DeviceSettings/res/values/arrays.xml
+++ b/DeviceSettings/res/values/arrays.xml
@@ -14,6 +14,20 @@
limitations under the License.
-->
+
+ - @string/thermal_balance
+ - @string/thermal_performance
+ - @string/thermal_battery
+ - @string/thermal_gaming
+ - @string/thermal_extreme_battery
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
diff --git a/DeviceSettings/res/values/strings.xml b/DeviceSettings/res/values/strings.xml
index c82ddc7e..c8a9a8b1 100644
--- a/DeviceSettings/res/values/strings.xml
+++ b/DeviceSettings/res/values/strings.xml
@@ -37,6 +37,19 @@
Haptic Feedback
Strength
+
+ Thermal
+ Thermal Settings
+ Choose your Thermal Profile
+ Choose your Thermal Profile
+
+
+ Performance
+ Battery
+ Gaming
+ Balance
+ Extreme Battery
+
Display Color Calibration
Color Settings
diff --git a/DeviceSettings/res/xml/preferences_xiaomi_parts.xml b/DeviceSettings/res/xml/preferences_xiaomi_parts.xml
index f4e32cfe..ea5af1de 100644
--- a/DeviceSettings/res/xml/preferences_xiaomi_parts.xml
+++ b/DeviceSettings/res/xml/preferences_xiaomi_parts.xml
@@ -187,4 +187,20 @@
android:summary="@string/fastcharge_summary" />
+
+
+
+
+
diff --git a/DeviceSettings/src/org/lineageos/settings/device/BootReceiver.java b/DeviceSettings/src/org/lineageos/settings/device/BootReceiver.java
index 18c71ac1..7aa6de05 100644
--- a/DeviceSettings/src/org/lineageos/settings/device/BootReceiver.java
+++ b/DeviceSettings/src/org/lineageos/settings/device/BootReceiver.java
@@ -82,6 +82,10 @@ public class BootReceiver extends BroadcastReceiver implements Utils {
FileUtils.setProp(DeviceSettings.HALL_WAKEUP_PROP, Settings.Secure.getInt(
context.getContentResolver(), DeviceSettings.PREF_HALL_WAKEUP, 1) == 1);
+ // Thermal
+ FileUtils.setValue(DeviceSettings.THERMAL_PATH, Settings.Secure.getInt(context.getContentResolver(),
+ DeviceSettings.PREF_THERMAL, 0));
+
// Dirac
context.startService(new Intent(context, DiracService.class));
diff --git a/DeviceSettings/src/org/lineageos/settings/device/DeviceSettings.java b/DeviceSettings/src/org/lineageos/settings/device/DeviceSettings.java
index b60ac1e6..bd1fddcd 100644
--- a/DeviceSettings/src/org/lineageos/settings/device/DeviceSettings.java
+++ b/DeviceSettings/src/org/lineageos/settings/device/DeviceSettings.java
@@ -78,6 +78,9 @@ public class DeviceSettings extends PreferenceFragment implements
public static final String HALL_WAKEUP_PATH = "/sys/module/hall/parameters/hall_toggle";
public static final String HALL_WAKEUP_PROP = "persist.service.folio_daemon";
+ public static final String PREF_THERMAL = "thermal";
+ public static final String THERMAL_PATH = "/sys/devices/virtual/thermal/thermal_message/sconfig";
+
private static final String DEVICE_DOZE_PACKAGE_NAME = "com.advanced.settings.doze";
private static final String DEVICE_JASON_PACKAGE_NAME = "org.lineageos.settings.devicex";
@@ -90,6 +93,7 @@ public class DeviceSettings extends PreferenceFragment implements
private SecureSettingListPreference mHeadsetType;
private SecureSettingListPreference mPreset;
private SecureSettingSwitchPreference mFastcharge;
+ private SecureSettingListPreference mTHERMAL;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -160,6 +164,12 @@ public class DeviceSettings extends PreferenceFragment implements
return true;
});
+ // Thermal Switch
+ mTHERMAL = (SecureSettingListPreference) findPreference(PREF_THERMAL);
+ mTHERMAL.setValue(FileUtils.getValue(THERMAL_PATH));
+ mTHERMAL.setSummary(mTHERMAL.getEntry());
+ mTHERMAL.setOnPreferenceChangeListener(this);
+
// Dirac
boolean enhancerEnabled;
try {
@@ -271,6 +281,12 @@ public class DeviceSettings extends PreferenceFragment implements
}
break;
+ case PREF_THERMAL:
+ mTHERMAL.setValue((String) value);
+ mTHERMAL.setSummary(mTHERMAL.getEntry());
+ FileUtils.setValue(THERMAL_PATH, (String) value);
+ break;
+
default:
break;
}
diff --git a/DeviceSettings/src/org/lineageos/settings/device/PerformanceTileService.java b/DeviceSettings/src/org/lineageos/settings/device/PerformanceTileService.java
new file mode 100644
index 00000000..9526241f
--- /dev/null
+++ b/DeviceSettings/src/org/lineageos/settings/device/PerformanceTileService.java
@@ -0,0 +1,39 @@
+package org.lineageos.settings.device;
+
+import android.service.quicksettings.Tile;
+import android.service.quicksettings.TileService;
+
+public class PerformanceTileService extends TileService {
+
+ @Override
+ public void onStartListening() {
+
+ int currentState = Integer.parseInt(FileUtils.getValue(DeviceSettings.THERMAL_PATH));
+
+ Tile tile = getQsTile();
+ tile.setState(Tile.STATE_ACTIVE);
+ tile.setLabel(getResources().getStringArray(R.array.thermal_profiles)[currentState]);
+
+ tile.updateTile();
+ super.onStartListening();
+ }
+
+ @Override
+ public void onClick() {
+ int currentState = Integer.parseInt(FileUtils.getValue(DeviceSettings.THERMAL_PATH));
+
+ int nextState;
+ if (currentState == 4) {
+ nextState = 0;
+ } else {
+ nextState = currentState + 1;
+ }
+
+ Tile tile = getQsTile();
+ FileUtils.setValue(DeviceSettings.THERMAL_PATH, nextState);
+ tile.setLabel(getResources().getStringArray(R.array.thermal_profiles)[nextState]);
+
+ tile.updateTile();
+ super.onClick();
+ }
+}