diff --git a/internal/bridge/bridge.go b/internal/bridge/bridge.go index 94b5708e..e4e4e8e0 100644 --- a/internal/bridge/bridge.go +++ b/internal/bridge/bridge.go @@ -48,6 +48,7 @@ type Bridge struct { clientManager pmapi.Manager updater Updater versioner Versioner + cacheProvider CacheProvider } func New( @@ -87,6 +88,7 @@ func New( clientManager: clientManager, updater: updater, versioner: versioner, + cacheProvider: cacheProvider, } if setting.GetBool(settings.FirstStartKey) { @@ -193,9 +195,6 @@ func (b *Bridge) SetKeychainApp(helper string) { } func (b *Bridge) EnableCache() error { - // Set this back to the default location before enabling. - b.settings.Set(settings.CacheLocationKey, "") - if err := b.Users.EnableCache(); err != nil { return err } @@ -211,6 +210,8 @@ func (b *Bridge) DisableCache() error { } b.settings.SetBool(settings.CacheEnabledKey, false) + // Reset back to the default location when disabling. + b.settings.Set(settings.CacheLocationKey, b.cacheProvider.GetDefaultMessageCacheDir()) return nil } diff --git a/internal/bridge/types.go b/internal/bridge/types.go index fe0a541f..f7f82073 100644 --- a/internal/bridge/types.go +++ b/internal/bridge/types.go @@ -32,6 +32,7 @@ type Locator interface { type CacheProvider interface { GetIMAPCachePath() string GetDBDir() string + GetDefaultMessageCacheDir() string } type SettingsProvider interface { diff --git a/test/context/cache.go b/test/context/cache.go index 916861a0..e311d9e0 100644 --- a/test/context/cache.go +++ b/test/context/cache.go @@ -53,3 +53,7 @@ func (c *fakeCache) GetIMAPCachePath() string { func (c *fakeCache) GetTransferDir() string { return c.dir } + +func (c *fakeCache) GetDefaultMessageCacheDir() string { + return c.dir +}