This commit is contained in:
Ali 2020-12-22 22:00:33 +04:00
parent c672132a3c
commit 9223423215
2 changed files with 40 additions and 28 deletions

View File

@ -55,9 +55,9 @@
<key>INIntentDefinitionSystemVersion</key>
<string>20C69</string>
<key>INIntentDefinitionToolsBuildVersion</key>
<string>12B45b</string>
<string>12C33</string>
<key>INIntentDefinitionToolsVersion</key>
<string>12.2</string>
<string>12.3</string>
<key>INIntents</key>
<array>
<dict>
@ -70,7 +70,7 @@
<key>INIntentIneligibleForSuggestions</key>
<true/>
<key>INIntentLastParameterTag</key>
<integer>5</integer>
<integer>19</integer>
<key>INIntentName</key>
<string>SelectFriends</string>
<key>INIntentParameters</key>
@ -202,7 +202,7 @@
<key>INIntentParameterSupportsMultipleValues</key>
<true/>
<key>INIntentParameterTag</key>
<integer>3</integer>
<integer>19</integer>
<key>INIntentParameterType</key>
<string>Object</string>
</dict>

View File

@ -248,39 +248,51 @@ struct WidgetView: View {
}
func peersView(geometry: GeometryProxy, peers: WidgetDataPeers) -> some View {
let defaultItemSize: CGFloat = 60.0
let defaultPaddingFraction: CGFloat = 0.36
let columnCount: Int
let rowCount: Int
let rowHeight: CGFloat
let topOffset: CGFloat
let itemSizeFraction: CGFloat
let horizontalInsetFraction: CGFloat
let verticalInsetFraction: CGFloat
let horizontalSpacingFraction: CGFloat
let verticalSpacingFraction: CGFloat
switch self.widgetFamily {
case .systemLarge:
itemSizeFraction = 0.1762917933
horizontalInsetFraction = 0.04863221884
verticalInsetFraction = 0.04863221884
horizontalSpacingFraction = 0.06079027356
verticalSpacingFraction = 0.06079027356
columnCount = 4
rowCount = 4
rowHeight = 80.0
topOffset = 10.0
case .systemMedium:
itemSizeFraction = 0.1762917933
horizontalInsetFraction = 0.04863221884
verticalInsetFraction = 0.1032258065
horizontalSpacingFraction = 0.06079027356
verticalSpacingFraction = 0.07741935484
columnCount = 4
rowCount = 2
rowHeight = 70.0
topOffset = 0.0
case .systemSmall:
itemSizeFraction = 0.335483871
horizontalInsetFraction = 0.1032258065
verticalInsetFraction = 0.1032258065
horizontalSpacingFraction = 0.1161290323
verticalSpacingFraction = 0.1161290323
columnCount = 2
rowCount = 2
rowHeight = 72.0
topOffset = 0.0
@unknown default:
itemSizeFraction = 0.335483871
horizontalInsetFraction = 0.1032258065
verticalInsetFraction = 0.1032258065
horizontalSpacingFraction = 0.1161290323
verticalSpacingFraction = 0.1161290323
columnCount = 2
rowCount = 2
rowHeight = 72.0
topOffset = 0.0
}
let columnCount = Int(round(geometry.size.width / (defaultItemSize * (1.0 + defaultPaddingFraction))))
let itemSize = floor(geometry.size.width / (CGFloat(columnCount) + defaultPaddingFraction * CGFloat(columnCount - 1)))
let rowOffset: [CGFloat] = [
topOffset + itemSize / 2.0,
topOffset + itemSize / 2.0 + rowHeight,
topOffset + itemSize / 2.0 + rowHeight * 2,
topOffset + itemSize / 2.0 + rowHeight * 3,
]
let itemSize = floor(geometry.size.width * itemSizeFraction)
return ZStack {
ForEach(0 ..< min(peers.peers.count, columnCount * rowCount), content: { i in
@ -291,7 +303,7 @@ struct WidgetView: View {
itemSize: itemSize
).frame(width: itemSize, height: itemSize)
}).frame(width: itemSize, height: itemSize)
.position(x: itemSize / 2.0 + floor(CGFloat(i % columnCount) * itemSize * (1.0 + defaultPaddingFraction)), y: rowOffset[i / columnCount])
.position(x: floor(horizontalInsetFraction * geometry.size.width + itemSize / 2.0 + CGFloat(i % columnCount) * (itemSize + horizontalSpacingFraction * geometry.size.width)), y: floor(verticalInsetFraction * geometry.size.height + itemSize / 2.0 + CGFloat(i / columnCount) * (itemSize + verticalSpacingFraction * geometry.size.height)))
})
}
}
@ -321,7 +333,7 @@ struct WidgetView: View {
ZStack {
peerViews()
}
.padding(.all)
.padding(0.0)
}
}
@ -417,7 +429,7 @@ struct Static_Widget: Widget {
return IntentConfiguration(kind: kind, intent: SelectFriendsIntent.self, provider: Provider(), content: { entry in
WidgetView(data: getWidgetData(contents: entry.contents))
})
.supportedFamilies([.systemSmall, .systemMedium, .systemLarge])
.supportedFamilies([.systemSmall, .systemMedium])
.configurationDisplayName(presentationData.widgetGalleryTitle)
.description(presentationData.widgetGalleryDescription)
}