Agent thinks it fixed the crash on SDK36 and lack of interval counting down on SDK24.
This commit is contained in:
1 parent
432a1394b9
commit
9ff779b26c
2 files changed
+7
-2
No files matched your search
@@ -389,7 +389,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
// Delegate countdown logic to ForegroundService to survive Doze mode on SDK 36+
|
||||
Intent svcIntent = new Intent(this, TimerForegroundService.class);
|
||||
svcIntent.setAction(Alert.ACTION_TIMER);
|
||||
svcIntent.putExtra(TimerForegroundService.EXTRA_INTERVAL_MS, longLoopInterval);
|
||||
// Pass the calculated `interval` (which includes the 60s fallback if user entered nothing)
|
||||
svcIntent.putExtra(TimerForegroundService.EXTRA_INTERVAL_MS, interval);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForegroundService(svcIntent);
|
||||
} else {
|
||||
@@ -703,7 +704,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
syncVolume();
|
||||
|
||||
// Register receiver to get live updates from ForegroundService while app is visible
|
||||
registerReceiver(timerUpdateReceiver, new IntentFilter(TimerForegroundService.class.getName() + ".UPDATE"));
|
||||
// RECEIVER_NOT_EXPORTED (0x00010000) is required on Android 13+ for local broadcasts
|
||||
registerReceiver(timerUpdateReceiver, new IntentFilter(TimerForegroundService.class.getName() + ".UPDATE"), 0x00010000);
|
||||
|
||||
if (DEBUG) Log.d(tag, "Finished");
|
||||
}
|
||||
|
||||
@@ -64,6 +64,9 @@ public class TimerForegroundService extends Service {
|
||||
if (newInterval > 0) {
|
||||
loopIntervalMs = newInterval;
|
||||
endTimeMillis = System.currentTimeMillis() + loopIntervalMs;
|
||||
tick(); // Start the countdown immediately when the service is launched
|
||||
} else {
|
||||
Log.w(TAG, "Received start command without a valid positive interval.");
|
||||
}
|
||||
|
||||
return START_STICKY;
|
||||
|
||||
Reference in new issue
Block a user