4
4
import dynamic_fps .impl .config .DynamicFPSConfig ;
5
5
import dynamic_fps .impl .service .Platform ;
6
6
import dynamic_fps .impl .util .Logging ;
7
+ import dynamic_fps .impl .util .Threads ;
7
8
import net .lostluma .battery .api .Battery ;
8
9
import net .lostluma .battery .api .Manager ;
9
10
import net .lostluma .battery .api .State ;
10
11
import net .lostluma .battery .api .exception .LibraryLoadError ;
11
12
import net .lostluma .battery .api .util .LibraryUtil ;
12
- import net .minecraft .client .Minecraft ;
13
13
import org .jetbrains .annotations .Nullable ;
14
14
15
15
import java .io .IOException ;
@@ -29,7 +29,6 @@ public class BatteryTracker {
29
29
private static @ Nullable Manager manager = null ;
30
30
private static Collection <Battery > batteries = Collections .emptyList ();
31
31
32
- private static final Minecraft minecraft = Minecraft .getInstance ();
33
32
private static final Duration updateInterval = Duration .of (15 , ChronoUnit .SECONDS );
34
33
35
34
public static int charge () {
@@ -57,7 +56,7 @@ public static boolean hasBatteries() {
57
56
}
58
57
59
58
public static void init () {
60
- if (manager != null || !DynamicFPSConfig . INSTANCE . batteryTracker (). enabled ()) {
59
+ if (manager != null || !isFeatureEnabled ()) {
61
60
return ;
62
61
}
63
62
@@ -72,10 +71,14 @@ public static void init() {
72
71
}
73
72
} else {
74
73
manager = temp ; // Keep around to allow updating batteries
75
- Thread . ofVirtual (). name ( "refresh-battery" ). start ( BatteryTracker ::updateBatteries );
74
+ Threads . create ( "refresh-battery" , BatteryTracker ::updateBatteries );
76
75
}
77
76
}
78
77
78
+ public static boolean isFeatureEnabled () {
79
+ return DynamicFPSConfig .INSTANCE .batteryTracker ().enabled ();
80
+ }
81
+
79
82
private static State mergeStates (State a , State b ) {
80
83
if (a == b ) {
81
84
return a ;
@@ -105,15 +108,15 @@ private static void updateState() {
105
108
changed = true ;
106
109
107
110
int current = charge ;
108
- minecraft . schedule (() -> DynamicFPSMod .onBatteryChargeChanged (current , newCharge ));
111
+ Threads . runOnMainThread (() -> DynamicFPSMod .onBatteryChargeChanged (current , newCharge ));
109
112
}
110
113
111
114
if (readInitialData && status != newStatus ) {
112
115
changed = true ;
113
116
114
117
State current = status ;
115
118
State updated = newStatus ;
116
- minecraft . schedule (() -> DynamicFPSMod .onBatteryStatusChanged (current , updated ));
119
+ Threads . runOnMainThread (() -> DynamicFPSMod .onBatteryStatusChanged (current , updated ));
117
120
}
118
121
119
122
charge = newCharge ;
@@ -177,7 +180,7 @@ private static Manager createManager() {
177
180
path = "no_library" ;
178
181
}
179
182
180
- ErrorToast .queueToast (localized ("toast" , path ));
183
+ Threads . runOnMainThread (() -> ErrorToast .queueToast (localized ("toast" , path ) ));
181
184
}
182
185
183
186
return result ;
0 commit comments