From 09badaed48e57c3fadc63922b77e5087666a54c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yilli=C3=A9?= Date: Mon, 11 Jul 2022 14:30:26 +0500 Subject: [PATCH] gui : Add an option to specify a custom x-axis value for status bar items MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The var TW_CUSTOM_CLOCK_POS, TW_CUSTOM_CPU_POS and TW_CUSTOM_BATTERY_POS can be used to specify a custom position for the clock, cpu temperature and battery percentage on the x-axis. - The value can either be a whole number refering to the starting position of that specific item on the x-axis or it can be 'left', 'right' or 'center' which will try to automatically calculate such a value that items appear to be left , right or center aligned respectively. - Incase of TW_NO_CPU_TEMP being set to true, the CPU_POS var can be used for the TWRP version text that takes the place of the cpu temp. One of the use-cases of this var is when the status bar items overlap with the camera cutout. In that case, instead of specifiying an offset for the whole gui on y-axis, the status bar items can be offset along the x-axis only. Signed-off-by: Yillié Change-Id: Ic01d301731822a598b0ca8adb2280c4d01a3622f Signed-off-by: Mohd Faraz --- gui/libguitwrp_defaults.go | 73 +++++++++++++++++++++++++++++++++ gui/theme/landscape_hdpi/ui.xml | 57 +++++++++++++++++++++++++ gui/theme/landscape_mdpi/ui.xml | 57 +++++++++++++++++++++++++ gui/theme/portrait_hdpi/ui.xml | 57 +++++++++++++++++++++++++ gui/theme/portrait_mdpi/ui.xml | 57 +++++++++++++++++++++++++ gui/theme/watch_mdpi/ui.xml | 57 +++++++++++++++++++++++++ 6 files changed, 358 insertions(+) diff --git a/gui/libguitwrp_defaults.go b/gui/libguitwrp_defaults.go index 222564c7..4ba6491f 100644 --- a/gui/libguitwrp_defaults.go +++ b/gui/libguitwrp_defaults.go @@ -76,14 +76,87 @@ func copyThemeResources(ctx android.BaseContext, dirs []string, files []string) version = strings.Split(line, " ")[2] } } + + _props := [3]string{"TW_CUSTOM_BATTERY_POS", "TW_CUSTOM_CPU_POS", "TW_CUSTOM_CLOCK_POS" } + props := [3]string{"0", "0", "0"} + for i, item := range _props { + if getMakeVars(ctx, item) != "" { + props[i] = strings.Trim(getMakeVars(ctx, item), "\"") + } + } + _files := [2]string{"splash.xml", "ui.xml"} for _, i := range _files { + var fontsize int = 0 + var width int = 0 + data, err = ioutil.ReadFile(twRes + i) if err != nil { fmt.Println(err) return } + newFile := strings.Replace(string(data), "{themeversion}", version, -1) + + // Custom position for status bar items - start + if i == "ui.xml" { + + for _, line := range strings.Split(string(data), "\n") { + if strings.Contains(line, "name=\"font_m\"") { + fontsize, err = strconv.Atoi(strings.Split(line, "\"")[5]) + if err != nil { + fmt.Println(err) + return + } + } + if strings.Contains(line, "resolution") { + width, err = strconv.Atoi(strings.Split(line, "\"")[1]) + if err != nil { + fmt.Println(err) + return + } + } + } + + var cpusize int = (fontsize * 5) + (width/100) + var clocksize int = (fontsize * 4) + (width/100) + var batterysize int = (fontsize * 6) - (width/100) + var pos_clock_24 string = props[2] + for j := 0; j < len(props); j++ { + if props[j] == "left" { + props[j] = strconv.Itoa(width/50) + if _props[j] == "TW_CUSTOM_CLOCK_POS" { + pos_clock_24 = props[j] + } + } else if props[j] == "center" { + if _props[j] == "TW_CUSTOM_BATTERY_POS" { + props[j] = strconv.Itoa( (width/2) - (batterysize*43/100) ) + } else if _props[j] == "TW_CUSTOM_CLOCK_POS" { + pos := (width/2) - (clocksize*45/100) + props[j] = strconv.Itoa(pos) + pos_clock_24 = strconv.Itoa( pos * 31/30 ) + } else if _props[j] == "TW_CUSTOM_CPU_POS" { + props[j] = strconv.Itoa( (width/2) - (cpusize*41/100) ) + } + } else if props[j] == "right" { + if _props[j] == "TW_CUSTOM_BATTERY_POS" { + props[j] = strconv.Itoa( width - batterysize ) + } else if _props[j] == "TW_CUSTOM_CLOCK_POS" { + props[j] = strconv.Itoa(width - clocksize) + pos_clock_24 = props[j] + } else if _props[j] == "TW_CUSTOM_CPU_POS" { + props[j] = strconv.Itoa( width - cpusize ) + } + } + } + + newFile = strings.Replace(newFile, "{battery_pos}", props[0], -1) + newFile = strings.Replace(newFile, "{cpu_pos}", props[1], -1) + newFile = strings.Replace(newFile, "{clock_12_pos}", props[2], -1) + newFile = strings.Replace(newFile, "{clock_24_pos}", pos_clock_24, -1) + } + // Custom position for status bar items - end + err = ioutil.WriteFile(twRes + i, []byte(newFile), 0) if err != nil { fmt.Println(err) diff --git a/gui/theme/landscape_hdpi/ui.xml b/gui/theme/landscape_hdpi/ui.xml index bd055bd5..5f29e096 100755 --- a/gui/theme/landscape_hdpi/ui.xml +++ b/gui/theme/landscape_hdpi/ui.xml @@ -226,6 +226,10 @@ + + + + @@ -267,6 +271,7 @@ + %tw_version% @@ -274,12 +279,15 @@ + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + %tw_time% @@ -290,12 +298,61 @@ + {@battery_pct=Battery: %tw_battery%} + + + + + + + + %tw_version% + + + + + + + + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + + + + + + + %tw_time% + + + + + + + + %tw_time% + + + + + + + + + + + + {@battery_pct=Battery: %tw_battery%} + + + + diff --git a/gui/theme/landscape_mdpi/ui.xml b/gui/theme/landscape_mdpi/ui.xml index 9ab8863d..e6c58b25 100755 --- a/gui/theme/landscape_mdpi/ui.xml +++ b/gui/theme/landscape_mdpi/ui.xml @@ -226,6 +226,10 @@ + + + + @@ -267,6 +271,7 @@ + %tw_version% @@ -274,12 +279,15 @@ + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + %tw_time% @@ -290,12 +298,61 @@ + {@battery_pct=Battery: %tw_battery%} + + + + + + + + %tw_version% + + + + + + + + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + + + + + + + %tw_time% + + + + + + + + %tw_time% + + + + + + + + + + + + {@battery_pct=Battery: %tw_battery%} + + + + diff --git a/gui/theme/portrait_hdpi/ui.xml b/gui/theme/portrait_hdpi/ui.xml index f7d21da3..7c4d2aa0 100755 --- a/gui/theme/portrait_hdpi/ui.xml +++ b/gui/theme/portrait_hdpi/ui.xml @@ -223,6 +223,10 @@ + + + + @@ -264,6 +268,7 @@ + %tw_version% @@ -271,12 +276,15 @@ + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + %tw_time% @@ -287,12 +295,61 @@ + {@battery_pct=Battery: %tw_battery%} + + + + + + + + %tw_version% + + + + + + + + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + + + + + + + %tw_time% + + + + + + + + %tw_time% + + + + + + + + + + + + {@battery_pct=Battery: %tw_battery%} + + + + diff --git a/gui/theme/portrait_mdpi/ui.xml b/gui/theme/portrait_mdpi/ui.xml index 9189df0c..4566dc7d 100755 --- a/gui/theme/portrait_mdpi/ui.xml +++ b/gui/theme/portrait_mdpi/ui.xml @@ -223,6 +223,10 @@ + + + + @@ -264,6 +268,7 @@ + %tw_version% @@ -271,12 +276,15 @@ + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + %tw_time% @@ -287,12 +295,61 @@ + {@battery_pct=Battery: %tw_battery%} + + + + + + + + %tw_version% + + + + + + + + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + + + + + + + %tw_time% + + + + + + + + %tw_time% + + + + + + + + + + + + {@battery_pct=Battery: %tw_battery%} + + + + diff --git a/gui/theme/watch_mdpi/ui.xml b/gui/theme/watch_mdpi/ui.xml index ed7ac825..24a4d466 100644 --- a/gui/theme/watch_mdpi/ui.xml +++ b/gui/theme/watch_mdpi/ui.xml @@ -182,6 +182,10 @@ + + + + @@ -203,6 +207,7 @@ + {@twrp_watch_header=TWRP %tw_version%} @@ -210,12 +215,15 @@ + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + %tw_time% @@ -226,12 +234,61 @@ + {@battery_pct=Battery: %tw_battery%} + + + + + + + + {@twrp_watch_header=TWRP %tw_version%} + + + + + + + + {@cpu_temp=CPU: %tw_cpu_temp% °C} + + + + + + + + %tw_time% + + + + + + + + %tw_time% + + + + + + + + + + + + {@battery_pct=Battery: %tw_battery%} + + + +