photoprism/internal/config/app.go

54 lines
1.1 KiB
Go
Raw Normal View History

2021-11-22 10:26:10 +00:00
package config
import (
"github.com/photoprism/photoprism/pkg/fs"
"github.com/photoprism/photoprism/pkg/txt"
"path/filepath"
"strings"
)
// AppName returns the app name when installed on a device.
func (c *Config) AppName() string {
name := strings.TrimSpace(c.options.AppName)
if name == "" {
name = c.SiteTitle()
}
clean := func(r rune) rune {
switch r {
case '\'', '"':
return -1
}
return r
}
name = strings.Map(clean, name)
return txt.Clip(name, 32)
}
// AppMode returns the app mode when installed on a device.
func (c *Config) AppMode() string {
switch c.options.AppMode {
case "fullscreen", "standalone", "minimal-ui", "browser":
return c.options.AppMode
default:
return "standalone"
}
}
// AppIcon returns the app icon when installed on a device.
func (c *Config) AppIcon() string {
defaultIcon := "logo"
if c.options.AppIcon == "" || c.options.AppIcon == defaultIcon {
// Default.
} else if fs.FileExists(filepath.Join(c.ImgPath(), "icons", c.options.AppIcon+"-192.png")) {
return c.options.AppIcon
}
return defaultIcon
}