import CodexBarCore extension StatusItemController { func menuLocalizationSignature() -> String { [ codexBarLocalizationSignature(), self.settings.hidePersonalInfo ? "hide-personal-info" : "show-personal-info", L("Overview"), L("Cost"), ].joined(separator: "|") } func rememberMergedSwitcherState(_ providers: [UsageProvider], _ selection: ProviderSwitcherSelection?) { self.rememberMergedSwitcherState( providers, selection, self.includesOverviewTab(for: providers)) } func rememberMergedSwitcherState( _ providers: [UsageProvider], _ selection: ProviderSwitcherSelection?, _ includesOverview: Bool) { self.lastSwitcherProviders = providers self.lastSwitcherUsageBarsShowUsed = self.settings.usageBarsShowUsed self.lastMergedSwitcherSelection = selection self.lastMergedMenuContentSelection = selection self.lastSwitcherIncludesOverview = includesOverview self.lastMenuLocalizationSignature = self.menuLocalizationSignature() } private func includesOverviewTab(for providers: [UsageProvider]) -> Bool { !self.settings.resolvedMergedOverviewProviders( activeProviders: providers, maxVisibleProviders: SettingsStore.mergedOverviewProviderLimit).isEmpty }}
import CodexBarCore
extension StatusItemController {
func menuLocalizationSignature() -> String {
[
codexBarLocalizationSignature(),
self.settings.hidePersonalInfo ? "hide-personal-info" : "show-personal-info",
L("Overview"),
L("Cost"),
].joined(separator: "|")
}
func rememberMergedSwitcherState(_ providers: [UsageProvider], _ selection: ProviderSwitcherSelection?) {
self.rememberMergedSwitcherState(
providers,
selection,
self.includesOverviewTab(for: providers))
}
func rememberMergedSwitcherState(
_ providers: [UsageProvider],
_ selection: ProviderSwitcherSelection?,
_ includesOverview: Bool)
{
self.lastSwitcherProviders = providers
self.lastSwitcherUsageBarsShowUsed = self.settings.usageBarsShowUsed
self.lastMergedSwitcherSelection = selection
self.lastMergedMenuContentSelection = selection
self.lastSwitcherIncludesOverview = includesOverview
self.lastMenuLocalizationSignature = self.menuLocalizationSignature()
}
private func includesOverviewTab(for providers: [UsageProvider]) -> Bool {
!self.settings.resolvedMergedOverviewProviders(
activeProviders: providers,
maxVisibleProviders: SettingsStore.mergedOverviewProviderLimit).isEmpty
}
}