mirror of
https://github.com/prashantgupta24/automatic-mouse-mover.git
synced 2024-12-22 16:34:11 +00:00
Merge pull request #36 from prashantgupta24/error-handling
🐛 fix multiple error window bug
This commit is contained in:
commit
93224b122b
2
.github/workflows/go.yml
vendored
2
.github/workflows/go.yml
vendored
@ -9,7 +9,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: macos-12
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
@ -68,10 +68,11 @@ func (m *MouseMover) run(heartbeatCh chan *tracker.Heartbeat, activityTracker *t
|
|||||||
} else {
|
} else {
|
||||||
didNotMoveCount := state.getDidNotMoveCount()
|
didNotMoveCount := state.getDidNotMoveCount()
|
||||||
state.updateDidNotMoveCount(didNotMoveCount + 1)
|
state.updateDidNotMoveCount(didNotMoveCount + 1)
|
||||||
msg := fmt.Sprintf("Mouse pointer cannot be moved at %v. Last moved at %v. Happened %v times. See README for details.",
|
state.updateLastErrorTime(time.Now())
|
||||||
|
msg := fmt.Sprintf("Mouse pointer cannot be moved at %v. Last moved at %v. Happened %v times. (Only notifies once every 24 hours.) See README for details.",
|
||||||
time.Now(), state.getLastMouseMovedTime(), state.getDidNotMoveCount())
|
time.Now(), state.getLastMouseMovedTime(), state.getDidNotMoveCount())
|
||||||
logger.Errorf(msg)
|
logger.Errorf(msg)
|
||||||
if state.getDidNotMoveCount() >= 10 {
|
if state.getDidNotMoveCount() >= 10 && (time.Since(state.lastErrorTime).Hours() > 24) { //show only 1 error in a 24 hour window
|
||||||
go func() {
|
go func() {
|
||||||
robotgo.ShowAlert("Error with Automatic Mouse Mover", msg)
|
robotgo.ShowAlert("Error with Automatic Mouse Mover", msg)
|
||||||
}()
|
}()
|
||||||
|
@ -94,6 +94,18 @@ func (s *state) updateLastMouseMovedTime(time time.Time) {
|
|||||||
s.lastMouseMovedTime = time
|
s.lastMouseMovedTime = time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *state) getLastErrorTime() time.Time {
|
||||||
|
s.mutex.RLock()
|
||||||
|
defer s.mutex.RUnlock()
|
||||||
|
return s.lastErrorTime
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *state) updateLastErrorTime(time time.Time) {
|
||||||
|
s.mutex.Lock()
|
||||||
|
defer s.mutex.Unlock()
|
||||||
|
s.lastErrorTime = time
|
||||||
|
}
|
||||||
|
|
||||||
func (s *state) getDidNotMoveCount() int {
|
func (s *state) getDidNotMoveCount() int {
|
||||||
s.mutex.RLock()
|
s.mutex.RLock()
|
||||||
defer s.mutex.RUnlock()
|
defer s.mutex.RUnlock()
|
||||||
|
@ -166,6 +166,7 @@ func (suite *TestMover) TestMouseMoveFailure() {
|
|||||||
assert.False(t, state.isSystemSleeping(), "machine should not be sleeping")
|
assert.False(t, state.isSystemSleeping(), "machine should not be sleeping")
|
||||||
assert.True(t, time.Time.IsZero(state.getLastMouseMovedTime()), "should be default")
|
assert.True(t, time.Time.IsZero(state.getLastMouseMovedTime()), "should be default")
|
||||||
assert.Equal(t, state.getDidNotMoveCount(), 0, "should be 0")
|
assert.Equal(t, state.getDidNotMoveCount(), 0, "should be 0")
|
||||||
|
assert.True(t, state.getLastErrorTime().IsZero(), "should be default")
|
||||||
|
|
||||||
heartbeatCh <- &tracker.Heartbeat{
|
heartbeatCh <- &tracker.Heartbeat{
|
||||||
WasAnyActivity: false,
|
WasAnyActivity: false,
|
||||||
@ -174,4 +175,5 @@ func (suite *TestMover) TestMouseMoveFailure() {
|
|||||||
time.Sleep(time.Millisecond * 500) //wait for it to be registered
|
time.Sleep(time.Millisecond * 500) //wait for it to be registered
|
||||||
assert.True(t, time.Time.IsZero(state.getLastMouseMovedTime()), "should be default but is ", state.getLastMouseMovedTime())
|
assert.True(t, time.Time.IsZero(state.getLastMouseMovedTime()), "should be default but is ", state.getLastMouseMovedTime())
|
||||||
assert.NotEqual(t, state.getDidNotMoveCount(), 0, "should not be 0")
|
assert.NotEqual(t, state.getDidNotMoveCount(), 0, "should not be 0")
|
||||||
|
assert.NotEqual(t, state.getLastErrorTime(), 0, "should not be 0")
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ type state struct {
|
|||||||
isAppRunning bool
|
isAppRunning bool
|
||||||
isSysSleeping bool
|
isSysSleeping bool
|
||||||
lastMouseMovedTime time.Time
|
lastMouseMovedTime time.Time
|
||||||
|
lastErrorTime time.Time
|
||||||
didNotMoveCount int
|
didNotMoveCount int
|
||||||
override *override
|
override *override
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user