- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.3k
 
Closed
Labels
Description
Designs
Add ability to start scans, see status, and manage threats.
Tasks
- Introduce scan feature flag (use a temporary scan menu item as an entry point that displays when scan feature flag is enabled) - Jetpack Mobile: Scan - Introduce feature flag #13334
 
High priority (must have)
Scan
- Show a loading screen while current scan status is being fetched (@ashiagr) Issue/13326 scan full screen loading & error handling #13920
 - Show an error with retry when the fetch fails (@ashiagr) Issue/13326 scan full screen loading & error handling #13920
 - Here to help -> link to contact support (@ashiagr) Issue/13326 here to help #13937
 - Polish the UI (@ashiagr) In Progress Issue/13326 scan design review #13949, Issue/13326 threat details & history design review #13950
 -  Filter out invalid states in 
ScanStateListItemsBuilder(@ashiagr) - Issue/13326 support provisioning and invalid scan states #13923 - "Something went wrong" screen/response from the server - if the app doesn't crash consider this medium priority (@ashiagr) Issue/13326 support provisioning and invalid scan states #13923
 - Scan menu item shouldn't be shown for sites with business plan (@malinajirka) (Issue/13326 hide scan on wpcom sites #13962)
 
Threat Details
- Get a free estimate (sync with iOS) (@malinajirka) (Issue/13326 get free estimate #13938)
 - Use Firebase config for the hardcoded url
 - Polish the UI (@ashiagr )
 - Sync with iOS about all supported threat types (@malinajirka)
 - Fix and Ignore threat action can fail on missing server credentials -> check how the app handles it (check even Fix All action on Scan screen) (@malinajirka) (Issue/13326 missing server credentials #13931)
 
Push Notification
- Update the “threat found” notification so it redirects the user to the new screen (@malinajirka) (Issue/13326 fix threat found redirection #13941)
 
Scan History
- Scan history -> threat details screen -> fix/ ignore action should show scan screen with updated threats status. (@malinajirka) (Issue/13326 navigate to scan screen from detail #13924)
 
Tracks
- Add tracking (@malinajirka) (Scan tracking #13954)
 
Finishing Touches
- Check Small Devices (@malinajirka)
 - Check RTL languages (@malinajirka)
 - Design Review (@ashiagr)
 
Medium priority (can be implemented after the release)
Network + Persistance
Delete scan state from the database on Authorization ErrorNot needed anymore after animation fixes in Issue/13326 fix scan backup menu animation #13976Add connected test for threat actions (fix/ ignore)Real time connected test for fix/ ignore threat doesn't seem to be feasible right now as it will exhaust existing threats on the site considering there's no option to "unignore/unfix" a threat or "create threat" via API.
My Site
- Fine-tune the scan menu icon on MySite screen (maybe low) Jetpack Section: Optimize My Site Menu Items #13969 Jetpack Section: Update My Site Menu Items Strings #13982
 
Scan
-  Tweak tests for 
ScanStateListItemsBuilderTest(consider doing during the pair programming call) Issue/13326 tweak scan state builder tests #14032 - Add auto-retry behavior on network error while polling status. (@malinajirka ) Update retry logic for Scan/Restore/DownloadBackup use cases #14050
 
Scan History
- Wrap fetchScanHistory into a usecase (Populate Scan History screen with data from /scan/history endpoint #13802) (@malinajirka)
 
Threat detail
- Implement custom diff view + logic in ThreatDetailsListItemsBuilder for "infected core file" threat type - On Hold (will be added after seeing scan feature usage)
 
Known issues
- Handle pluralisation of strings (threat vs threats based on threat count) (@ashiagr) In progress Issue/13326 pluralisation of strings based on threats count #14021
 
Finishing touches
- Check Accessibility
 
Low priority (nice to have)
-  Make 
getScanStateForSite,getThreatModelByThreatIdandaddOrUpdateScanStateModelForSitesuspend functions (@ashiagr) - Issue/13326 changes for fluxc scanstore suspend function #14010 - Check scan start issue described in Issue/13326 check fix threat status on init #13904 (review) - Unable to reproduce now
 
Scan History
- RecylerViews with Date Headers (reuse or duplicate adapters, VH from activity log) (@ashiagr - trial)
 - UI bug reported here Issue/13326 fix threat list item UI issue #14091
 
Network + Persistence
- Create skeletal ScanStore, ScanActions,ScanRestClient, ScanSqlUtils in FluxC - ScanStore: Introduce skeleton classes WordPress-FluxC-Android#1760
 - Introduce new actions, endpoints, models, tables
- Get scan state  - Part 1 (network), Part 2 (tests), Part 3 (store state into db)
- Get scan feature unlocked status
 - Get the scanning status
 - Get the list of threats
 
 - Start a new scan ScanStore: Start new scan WordPress-FluxC-Android#1785
 - Get threat details - Part 1 Prepare ThreatModel (1, 2), Part 2 (network)
 - Store threat details - ScanStore: Store threats data in db WordPress-FluxC-Android#1806
 - Get the scan history Issue/13326 add scan history endpoint 2 WordPress-FluxC-Android#1841
 - Fix / Ignore threats - ScanStore: Fix/ Ignore Threat WordPress-FluxC-Android#1824
 - Get fix/ ignore threat status ScanStore: Fix/ Ignore Threat WordPress-FluxC-Android#1824
 
 - Get scan state  - Part 1 (network), Part 2 (tests), Part 3 (store state into db)
 - Add connected tests - In progress (added as and when needed)
 
My Site
- Update menu item for scan on My Site tab based on status fetched - Jetpack Mobile: Scan menu #13555
 - Update menu item for scan based on Jetpack Capabilities
 - Link to Scan screen on scan item click
 
Scan
- Create skeleton vm, fragment, tests - Jetpack Mobile: Scan - Create skeleton vm, fragment, test #13527
 - Introduce UiStates Jetpack Mobile: Scan Introduce UiState #13578
 - Create views for different scan states - Jetpack Mobile: Scan UiStates part(ii) #13605
- Scan State: Ready/ Scan Now
 - Scan State: Scanning
 - Scan State: Threats Found
 
 - Create incremental progress bar instead of indefinite one when progress levels are known
 - Handle different actions
- Scan now/ Scan again - Scan: Fetch scan state with polling #13740
 -  Fix all -
In ProgressIssue/13326 trigger fix threats #13795, Issue/13326 fetch fix threats status #13798, Issue/13326 check fix threat status on init #13904 - Threat click -> link to Threat Details Threat Details: Skeleton with blank Content UiState #13675
 - History menu > link to Scan History Issue/13326 init scan history #13750
 -  Fine-tune buttons (apply style based on whether button is secondary or not) Issue/13326 scan screen UI iteration 1 #13873
... and more 
 
Server Credentials
Out of scope
Threat Details
- Create skeleton vm, fragment, tests Threat Details: Skeleton with blank Content UiState #13675
 - Introduce UiStates Threat Details: Skeleton with blank Content UiState #13675
 - Error handling
 - Create views for Threat Details with Fix/ Ignore buttons Jetpack Mobile: Threat Details - list items builder #13703
 - Handle different actions
- Fix Threat - Issue/13326 fix threat from threat details #13825
 - Ignore Threat - Issue/13326 ignore threat #13768
 
 
Scan History
- Create skeleton vm, fragment, tests (Issue/13326 init scan history #13750, Issue/13326 init history view pager #13757)
 - Introduce UiStates (Scan history UI state #13842)
 - Show a loading screen while history is being fetched (Scan history UI state #13842)
 - Create views for
- No History (Scan history UI state #13842)
 - Filter Tabs (Issue/13326 update tabs #13827)
 
 - Handle different actions
- History record click action -> link row to threat details (Scan History OnClick action #13856)
 Load more -> load paginated results(pagination is not supported on the API)
 
Known Issues
- Address Jetpack Mobile: Scan - ThreatItem #13646 (review)
 - Check if it's only on mobile or also on calypso: Triggering the Scan the first time returns instantly with everything being “okay”, and only if you trigger it once more, sometimes many times more, it will actually trigger a “full” scan. - Issue/13326 start scan after delay #13903
 
