Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.

Commit 9a3a08b

Browse files
brindydus7
andauthored
tab manager multi select mode (#3921)
Task/Issue URL: https://app.asana.com/0/392891325557410/1209303765372372/f Tech Design URL: CC: **Description**: Adds UI and menus for multi-tab select. Minor deviation from Figma - long press menu items are only specific to the current tap and make more sense. **Steps to test this PR**: Phone: 1. Internal user off 3. Go to tab switcher ensure it looks like production 4. Internal user on 5. Open various combinations of new tabs / web pages, single, and multiple. 8. Check that long pressing a tab and choosing select tab enters select mode and selects the tab 9. Tap anywhere on screen to exit select mode 10. Tap anywhere on screen again to go back to previous screen 6. Back in tab switcher tap edit and check menu items 7. Use Select Tabs to enter select mode 8. Check bottom menu and button are enabled when appropriate and show correct menu items 9. Check long press menu items are appropriate Repeat test on iPad: 1. Bottom bar (and therefore menu) doesn't exist, check Figma for iPad details **Definition of Done (Internal Only)**: * [x] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? --------- Co-authored-by: Mariusz Śpiewak <[email protected]>
1 parent 4c93f4f commit 9a3a08b

File tree

18 files changed

+1381
-280
lines changed

18 files changed

+1381
-280
lines changed

DuckDuckGo-iOS.xcodeproj/project.pbxproj

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,6 @@
511511
851CD674244D7E6000331B98 /* UserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85449F0023FEAF3000512AAF /* UserDefaultsExtension.swift */; };
512512
851DFD87212C39D300D95F20 /* TabSwitcherButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851DFD86212C39D300D95F20 /* TabSwitcherButton.swift */; };
513513
851DFD8A212C5EE800D95F20 /* TabSwitcherButtonTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851DFD89212C5EE800D95F20 /* TabSwitcherButtonTests.swift */; };
514-
851EA0882D39D39600A1A590 /* TabSwitcherTopBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851EA0872D39D39600A1A590 /* TabSwitcherTopBarView.swift */; };
515514
851F74262B9A1BFD00747C42 /* Suggestions in Frameworks */ = {isa = PBXBuildFile; productRef = 851F74252B9A1BFD00747C42 /* Suggestions */; };
516515
85200FA11FBC5BB5001AF290 /* DDGPersistenceContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85200FA01FBC5BB5001AF290 /* DDGPersistenceContainer.swift */; };
517516
8521FDE6238D414B00A44CC3 /* FileStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8521FDE4238D411400A44CC3 /* FileStoreTests.swift */; };
@@ -566,6 +565,8 @@
566565
8565A34B1FC8D96B00239327 /* LaunchTabNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8565A34A1FC8D96B00239327 /* LaunchTabNotification.swift */; };
567566
8565A34D1FC8DFE400239327 /* LaunchTabNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8565A34C1FC8DFE400239327 /* LaunchTabNotificationTests.swift */; };
568567
8567E29D2CF77A700035926F /* MockFireproofing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85C503FC2CF0E7B10075DF6F /* MockFireproofing.swift */; };
568+
8569E1702D52C9A4004A3CB7 /* TabSwitcherBarsStateHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8569E16F2D52C993004A3CB7 /* TabSwitcherBarsStateHandler.swift */; };
569+
856F28D72D3EC5FA00A88211 /* TabSwitcherViewController+MultiSelect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856F28D62D3EC5FA00A88211 /* TabSwitcherViewController+MultiSelect.swift */; };
569570
857229882BBEE74100E2E802 /* AppRatingPromptDatabaseMigrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857229872BBEE74100E2E802 /* AppRatingPromptDatabaseMigrationTests.swift */; };
570571
8572298A2BBEF0C800E2E802 /* AppRatingPrompt_v1 in Resources */ = {isa = PBXBuildFile; fileRef = 857229892BBEF0C800E2E802 /* AppRatingPrompt_v1 */; };
571572
8577A1C5255D2C0D00D43FCD /* HitTestingToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8577A1C4255D2C0D00D43FCD /* HitTestingToolbar.swift */; };
@@ -1962,7 +1963,6 @@
19621963
851B128B2220483A004781BC /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = "<group>"; };
19631964
851DFD86212C39D300D95F20 /* TabSwitcherButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSwitcherButton.swift; sourceTree = "<group>"; };
19641965
851DFD89212C5EE800D95F20 /* TabSwitcherButtonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSwitcherButtonTests.swift; sourceTree = "<group>"; };
1965-
851EA0872D39D39600A1A590 /* TabSwitcherTopBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSwitcherTopBarView.swift; sourceTree = "<group>"; };
19661966
85200FA01FBC5BB5001AF290 /* DDGPersistenceContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DDGPersistenceContainer.swift; sourceTree = "<group>"; };
19671967
8521FDE4238D411400A44CC3 /* FileStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileStoreTests.swift; sourceTree = "<group>"; };
19681968
852409302C78030D00CB28FC /* MockUsageSegmentation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUsageSegmentation.swift; sourceTree = "<group>"; };
@@ -2018,6 +2018,8 @@
20182018
8563A03B1F9288D600F04442 /* BrowserChromeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserChromeManager.swift; sourceTree = "<group>"; };
20192019
8565A34A1FC8D96B00239327 /* LaunchTabNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchTabNotification.swift; sourceTree = "<group>"; };
20202020
8565A34C1FC8DFE400239327 /* LaunchTabNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchTabNotificationTests.swift; sourceTree = "<group>"; };
2021+
8569E16F2D52C993004A3CB7 /* TabSwitcherBarsStateHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSwitcherBarsStateHandler.swift; sourceTree = "<group>"; };
2022+
856F28D62D3EC5FA00A88211 /* TabSwitcherViewController+MultiSelect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TabSwitcherViewController+MultiSelect.swift"; sourceTree = "<group>"; };
20212023
857229872BBEE74100E2E802 /* AppRatingPromptDatabaseMigrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppRatingPromptDatabaseMigrationTests.swift; sourceTree = "<group>"; };
20222024
857229892BBEF0C800E2E802 /* AppRatingPrompt_v1 */ = {isa = PBXFileReference; lastKnownFileType = folder; path = AppRatingPrompt_v1; sourceTree = "<group>"; };
20232025
8577A1C4255D2C0D00D43FCD /* HitTestingToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HitTestingToolbar.swift; sourceTree = "<group>"; };
@@ -6533,16 +6535,17 @@
65336535
F1386BA21E6846320062FC3C /* TabSwitcher */ = {
65346536
isa = PBXGroup;
65356537
children = (
6538+
8569E16F2D52C993004A3CB7 /* TabSwitcherBarsStateHandler.swift */,
65366539
9872D204247DCAC100CEF398 /* TabPreviewsSource.swift */,
65376540
85DFEDF824CF3D0E00973FE7 /* TabsBarCell.swift */,
65386541
8586A10F24CCCD040049720E /* TabsBarViewController.swift */,
65396542
F1ED309B1EDC2EA400651986 /* TabSwitcher.storyboard */,
65406543
F1617C181E573EA800DEDCAF /* TabSwitcherDelegate.swift */,
65416544
6FF9AD3E2CE63DC200C5A406 /* TabSwitcherOpenDailyPixel.swift */,
65426545
984D035B24AE15CD0066CFB8 /* TabSwitcherSettings.swift */,
6543-
851EA0872D39D39600A1A590 /* TabSwitcherTopBarView.swift */,
65446546
F1617C121E572E0300DEDCAF /* TabSwitcherViewController.swift */,
65456547
85F2FFCE2211F8E5006BB258 /* TabSwitcherViewController+KeyCommands.swift */,
6548+
856F28D62D3EC5FA00A88211 /* TabSwitcherViewController+MultiSelect.swift */,
65466549
984D035924ACCC7D0066CFB8 /* TabViewCell.swift */,
65476550
F1DE78571E5CAE350058895A /* TabViewGridCell.swift */,
65486551
984D035724ACCC6F0066CFB8 /* TabViewListCell.swift */,
@@ -8259,9 +8262,11 @@
82598262
D664C7C92B289AA200CBFA76 /* AsyncHeadlessWebView.swift in Sources */,
82608263
F1F5337C1F26A9EF00D80D4F /* UserText.swift in Sources */,
82618264
1E8AD1C727BE9B2900ABA377 /* DownloadsListDataSource.swift in Sources */,
8265+
8569E1702D52C9A4004A3CB7 /* TabSwitcherBarsStateHandler.swift in Sources */,
82628266
9FE08BDC2C2A88FA001D5EBC /* OnboardingIntroViewController.swift in Sources */,
82638267
3157B43527F497F50042D3D7 /* SaveLoginViewController.swift in Sources */,
82648268
C14D43012B45D6CD00ACA4DC /* AutofillDebugViewController.swift in Sources */,
8269+
856F28D72D3EC5FA00A88211 /* TabSwitcherViewController+MultiSelect.swift in Sources */,
82658270
853C5F6121C277C7001F7A05 /* global.swift in Sources */,
82668271
EE9D68D82AE15AD600B55EF4 /* UIApplicationExtension.swift in Sources */,
82678272
566B73702BECD46800FF1959 /* MainViewController+SyncAlerts.swift in Sources */,
@@ -8306,7 +8311,6 @@
83068311
9FE08BD62C2A60CD001D5EBC /* MetricBuilder.swift in Sources */,
83078312
1E1626072968413B0004127F /* ViewExtension.swift in Sources */,
83088313
31A42566285A0A6300049386 /* FaviconViewModel.swift in Sources */,
8309-
851EA0882D39D39600A1A590 /* TabSwitcherTopBarView.swift in Sources */,
83108314
6F691CCA2C4979EC002E9553 /* FavoritesTooltip.swift in Sources */,
83118315
CBF259502D37ED6600AC63E4 /* Resuming.swift in Sources */,
83128316
859DB8132CE6263C001F7210 /* TextZoomStorage.swift in Sources */,

DuckDuckGo-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 12 additions & 0 deletions
Loading
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "Bookmark-All-16.svg",
5+
"idiom" : "universal"
6+
}
7+
],
8+
"info" : {
9+
"author" : "xcode",
10+
"version" : 1
11+
},
12+
"properties" : {
13+
"template-rendering-intent" : "template"
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "Share-Apple-16.svg",
5+
"idiom" : "universal"
6+
}
7+
],
8+
"info" : {
9+
"author" : "xcode",
10+
"version" : 1
11+
},
12+
"properties" : {
13+
"template-rendering-intent" : "template"
14+
}
15+
}
Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)