Skip to content

Commit

Permalink
gui : Add an option to specify a custom x-axis value for status bar i…
Browse files Browse the repository at this point in the history
…tems

 - 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é <yilliee@protonmail.com>
Change-Id: Ic01d301731822a598b0ca8adb2280c4d01a3622f
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
  • Loading branch information
Yilliee authored and bigbiff committed Aug 23, 2022
1 parent 808344f commit 09badae
Show file tree
Hide file tree
Showing 6 changed files with 358 additions and 0 deletions.
73 changes: 73 additions & 0 deletions gui/libguitwrp_defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
57 changes: 57 additions & 0 deletions gui/theme/landscape_hdpi/ui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,10 @@
<variable name="pattern_dot_dia" value="32"/>
<variable name="pattern_line_w" value="12"/>
<variable name="pattern_size" value="648"/>
<variable name="tw_clock_12_pos_x" value="{clock_12_pos}"/>
<variable name="tw_clock_24_pos_x" value="{clock_24_pos}"/>
<variable name="tw_cpu_pos_x" value="{cpu_pos}"/>
<variable name="tw_battery_pos_x" value="{battery_pos}"/>
</variables>

<mousecursor>
Expand Down Expand Up @@ -267,19 +271,23 @@

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" var2="0"/>
<condition var1="tw_clock_24_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%center_x%" y="%row1_header_y%" placement="5"/>
<text>%tw_time%</text>
Expand All @@ -290,12 +298,61 @@
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%indent_right%" y="%row1_header_y%" placement="1"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined START -->

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_clock_12_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_24_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="1"/>
<font resource="font_m"/>
<placement x="%tw_clock_24_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<conditions>
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" op="!=" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%tw_battery_pos_x%" y="%row1_header_y%"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined END -->

<fill color="#000000">
<condition var1="tw_busy" var2="0"/>
<placement x="0" y="%navbar_y%" w="%screen_width%" h="%navbar_height%"/>
Expand Down
57 changes: 57 additions & 0 deletions gui/theme/landscape_mdpi/ui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,10 @@
<variable name="pattern_dot_dia" value="12"/>
<variable name="pattern_line_w" value="4"/>
<variable name="pattern_size" value="252"/>
<variable name="tw_clock_12_pos_x" value="{clock_12_pos}"/>
<variable name="tw_clock_24_pos_x" value="{clock_24_pos}"/>
<variable name="tw_cpu_pos_x" value="{cpu_pos}"/>
<variable name="tw_battery_pos_x" value="{battery_pos}"/>
</variables>

<mousecursor>
Expand Down Expand Up @@ -267,19 +271,23 @@

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" var2="0"/>
<condition var1="tw_clock_24_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%center_x%" y="%row1_header_y%" placement="5"/>
<text>%tw_time%</text>
Expand All @@ -290,12 +298,61 @@
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%indent_right%" y="%row1_header_y%" placement="1"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined START -->

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_clock_12_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_24_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="1"/>
<font resource="font_m"/>
<placement x="%tw_clock_24_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<conditions>
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" op="!=" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%tw_battery_pos_x%" y="%row1_header_y%"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined END -->

<fill color="#000000">
<condition var1="tw_busy" var2="0"/>
<placement x="0" y="%navbar_y%" w="%screen_width%" h="%navbar_height%"/>
Expand Down
57 changes: 57 additions & 0 deletions gui/theme/portrait_hdpi/ui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,10 @@
<variable name="pattern_dot_dia" value="32"/>
<variable name="pattern_line_w" value="12"/>
<variable name="pattern_size" value="828"/>
<variable name="tw_clock_12_pos_x" value="{clock_12_pos}"/>
<variable name="tw_clock_24_pos_x" value="{clock_24_pos}"/>
<variable name="tw_cpu_pos_x" value="{cpu_pos}"/>
<variable name="tw_battery_pos_x" value="{battery_pos}"/>
</variables>

<mousecursor>
Expand Down Expand Up @@ -264,19 +268,23 @@

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%indent%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" var2="0"/>
<condition var1="tw_clock_24_pos_x" var2="0"/>
<font resource="font_m"/>
<placement x="%center_x%" y="%row1_header_y%" placement="5"/>
<text>%tw_time%</text>
Expand All @@ -287,12 +295,61 @@
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%indent_right%" y="%row1_header_y%" placement="1"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined START -->

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="1"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>%tw_version%</text>
</text>

<text color="%text_color%">
<condition var1="tw_no_cpu_temp" var2="0"/>
<condition var1="tw_cpu_pos_x" op="!=" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_cpu_pos_x%" y="%row1_header_y%"/>
<text>{@cpu_temp=CPU: %tw_cpu_temp% °C}</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_12_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="0"/>
<font resource="font_m"/>
<placement x="%tw_clock_12_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<condition var1="tw_clock_24_pos_x" op="!=" var2="0"/>
<condition var1="tw_military_time" var2="1"/>
<font resource="font_m"/>
<placement x="%tw_clock_24_pos_x%" y="%row1_header_y%"/>
<text>%tw_time%</text>
</text>

<text color="%text_color%">
<conditions>
<condition var1="tw_no_battery_percent" var2="0"/>
<condition var1="tw_battery" op="&gt;" var2="0"/>
<condition var1="tw_battery" op="&lt;" var2="101"/>
<condition var1="tw_battery_pos_x" op="!=" var2="0"/>
</conditions>
<font resource="font_m"/>
<placement x="%tw_battery_pos_x%" y="%row1_header_y%"/>
<text>{@battery_pct=Battery: %tw_battery%}</text>
</text>

<!-- Custom position for status bar items if defined END -->

<fill color="#000000">
<condition var1="tw_busy" var2="0"/>
<placement x="0" y="%navbar_y%" w="%screen_width%" h="%navbar_height%"/>
Expand Down
Loading

0 comments on commit 09badae

Please sign in to comment.