mirror of
https://github.com/exituser/Pearcleaner.git
synced 2026-09-17 07:19:04 +00:00
v3.0.1
This commit is contained in:
@@ -43,6 +43,7 @@ class Locations: ObservableObject {
|
||||
"\(home)/Library/Preferences",
|
||||
"\(home)/Library/Preferences/ByHost",
|
||||
"\(home)/Library/Saved Application State",
|
||||
"\(home)/Library/Services",
|
||||
"\(home)/Library/WebKit",
|
||||
"/Users/Shared",
|
||||
"/Users/Library",
|
||||
|
||||
@@ -541,6 +541,7 @@ struct FilesViewActionButton: ButtonStyle {
|
||||
|
||||
|
||||
|
||||
|
||||
struct SentinelToggleStyle: ToggleStyle {
|
||||
|
||||
func makeBody(configuration: Configuration) -> some View {
|
||||
@@ -669,7 +670,7 @@ struct PearDropView: View {
|
||||
VStack(alignment: .center, spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
LinearGradient(gradient: Gradient(colors: [.green, .orange]), startPoint: .leading, endPoint: .trailing)
|
||||
.frame(width: 195)
|
||||
.frame(width: 220)
|
||||
LinearGradient(gradient: Gradient(colors: [.orange, Color("mode").opacity(0.5)]), startPoint: .leading, endPoint: .trailing)
|
||||
.frame(width: 10)
|
||||
LinearGradient(gradient: Gradient(colors: [Color("mode").opacity(0.5), Color("mode").opacity(0.5)]), startPoint: .leading, endPoint: .trailing)
|
||||
@@ -679,7 +680,7 @@ struct PearDropView: View {
|
||||
Image("logo_text_small")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 500, height: 120)
|
||||
.frame(width: 500)
|
||||
.padding()
|
||||
)
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ struct PearcleanerApp: App {
|
||||
loadAllPaths(allApps: sortedApps.userApps + sortedApps.systemApps, appState: appState, locations: locations)
|
||||
}
|
||||
|
||||
getFeatures(appState: appState, show: $showFeature, features: $features)
|
||||
|
||||
|
||||
#if !DEBUG
|
||||
Task {
|
||||
@@ -114,6 +114,7 @@ struct PearcleanerApp: App {
|
||||
// Check for updates after app launch
|
||||
if diskP {
|
||||
loadGithubReleases(appState: appState)
|
||||
getFeatures(appState: appState, show: $showFeature, features: $features)
|
||||
}
|
||||
|
||||
// Check for disk/accessibility permissions just once on initial app launch
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"color-space" : "display-p3",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0x59",
|
||||
"green" : "0x48",
|
||||
"blue" : "0xFF",
|
||||
"green" : "0xFF",
|
||||
"red" : "0xFF"
|
||||
}
|
||||
},
|
||||
@@ -23,8 +23,8 @@
|
||||
"color-space" : "display-p3",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0x59",
|
||||
"green" : "0x48",
|
||||
"blue" : "0xFF",
|
||||
"green" : "0xFF",
|
||||
"red" : "0xFF"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "display-p3",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0xF6",
|
||||
"green" : "0xF6",
|
||||
"red" : "0xF6"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"color-space" : "display-p3",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0x29",
|
||||
"green" : "0x28",
|
||||
"red" : "0x29"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,7 @@ struct GeneralSettingsTab: View {
|
||||
.font(.callout)
|
||||
.foregroundStyle(.gray)
|
||||
}
|
||||
InfoButton(text: "When transparent material is enabled, sticky section headers (User/System) in app list are disabled to keep from showing app name text overlayed under the section header text with no background to separate the two.", color: nil)
|
||||
Spacer()
|
||||
Toggle(isOn: $glass, label: {
|
||||
})
|
||||
|
||||
@@ -64,35 +64,46 @@ struct AppListView: View {
|
||||
}
|
||||
}
|
||||
.padding(.top, 20)
|
||||
.padding(.bottom)
|
||||
// .padding(.bottom)
|
||||
|
||||
ScrollView {
|
||||
|
||||
LazyVStack(alignment: .leading, pinnedViews: [.sectionHeaders]) {
|
||||
LazyVStack(alignment: .leading, spacing: 0, pinnedViews: [glass ? [] : .sectionHeaders]) {
|
||||
|
||||
if filteredUserApps.count > 0 {
|
||||
VStack {
|
||||
Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)
|
||||
// VStack {
|
||||
// Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)
|
||||
ForEach(filteredUserApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
if appInfo != filteredUserApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
Section(header: Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)) {
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
.padding(.vertical,5)
|
||||
if appInfo != filteredUserApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
}
|
||||
}
|
||||
// AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
// if appInfo != filteredUserApps.last {
|
||||
// Divider().padding(.horizontal, 5)
|
||||
// }
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
if filteredSystemApps.count > 0 {
|
||||
VStack {
|
||||
Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)
|
||||
// VStack {
|
||||
// Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)
|
||||
Section(header: Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)) {
|
||||
|
||||
ForEach(filteredSystemApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
.padding(.vertical,5)
|
||||
if appInfo != filteredSystemApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -199,6 +210,7 @@ struct Header: View {
|
||||
@EnvironmentObject var locations: Locations
|
||||
@Binding var showPopover: Bool
|
||||
@AppStorage("settings.general.instant") private var instantSearch: Bool = true
|
||||
@AppStorage("settings.general.glass") private var glass: Bool = true
|
||||
|
||||
|
||||
var body: some View {
|
||||
@@ -253,7 +265,8 @@ struct Header: View {
|
||||
Spacer()
|
||||
|
||||
}
|
||||
.padding(.vertical, 8)
|
||||
.padding(.vertical, 9)
|
||||
.padding(.leading, 6)
|
||||
.background(!glass ? Color("windowBG") : .clear)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,9 +91,11 @@ struct MiniEmptyView: View {
|
||||
Image(systemName: "plus.square.dashed")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 100, height: 100)
|
||||
.frame(width: 120, height: 120)
|
||||
.padding()
|
||||
.fontWeight(.ultraLight)
|
||||
)
|
||||
.frame(width: 160)
|
||||
}
|
||||
|
||||
Text("Drop your app here")
|
||||
@@ -142,6 +144,7 @@ struct MiniAppView: View {
|
||||
@State private var showUsr: Bool = true
|
||||
@AppStorage("settings.general.mini") private var mini: Bool = false
|
||||
@AppStorage("settings.general.instant") private var instantSearch: Bool = true
|
||||
@AppStorage("settings.general.glass") private var glass: Bool = true
|
||||
@Binding var showPopover: Bool
|
||||
|
||||
var body: some View {
|
||||
@@ -185,43 +188,50 @@ struct MiniAppView: View {
|
||||
|
||||
ScrollView {
|
||||
|
||||
LazyVStack(alignment: .leading, pinnedViews: [.sectionHeaders]) {
|
||||
LazyVStack(alignment: .leading, spacing: 0, pinnedViews: [glass ? [] : .sectionHeaders]) {
|
||||
|
||||
if filteredUserApps.count > 0 {
|
||||
|
||||
VStack {
|
||||
Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)
|
||||
ForEach(filteredUserApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
if appInfo != filteredUserApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
// VStack {
|
||||
// Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)
|
||||
Section(header: Header(title: "User", count: filteredUserApps.count, showPopover: $showPopover)) {
|
||||
|
||||
ForEach(filteredUserApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
// .padding(.vertical,5)
|
||||
if appInfo != filteredUserApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
if filteredSystemApps.count > 0 {
|
||||
|
||||
VStack {
|
||||
Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)
|
||||
ForEach(filteredSystemApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
if appInfo != filteredSystemApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
// VStack {
|
||||
// Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)
|
||||
Section(header: Header(title: "System", count: filteredSystemApps.count, showPopover: $showPopover)) {
|
||||
ForEach(filteredSystemApps, id: \.self) { appInfo in
|
||||
AppListItems(search: $search, showPopover: $showPopover, appInfo: appInfo)
|
||||
.padding(.vertical,5)
|
||||
if appInfo != filteredSystemApps.last {
|
||||
Divider().padding(.horizontal, 5)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.padding(.horizontal)
|
||||
|
||||
|
||||
}
|
||||
.scrollIndicators(.never)
|
||||
|
||||
if appState.currentView != .empty {
|
||||
SearchBarMiniBottom(search: $search)
|
||||
SearchBarMiniBottom(search: $search).background(.ultraThinMaterial)
|
||||
}
|
||||
}
|
||||
.padding(.bottom)
|
||||
|
||||
Reference in New Issue
Block a user