odk-x / tool-suite-X

ODK-X Tool Suite Project roadmaps, issue queue, release notes and wiki.
https://www.odk-x.org
Apache License 2.0
25 stars 41 forks source link

Sync conflict resolution #73

Open orilevari opened 6 years ago

orilevari commented 6 years ago

Software and hardware versions

ODK Services/Tables/Survey v2.0.5, Android 6, Nexus 6

Problem description

When syncing changes that result in a merge conflict, 2 items result in incorrect behaviour.

1) The UI for resolving conflicts only shows up when backing out from user defined Tables pages. Until this happens, the database is in an inconsistent state, so pages which are dependent on local database rows to render will break. 2) When in the UI for resolving conflicts, if you rotate the screen, the phone will automatically take the server version and exit the conflict resolution UI.

Steps to reproduce the problem

1) In Tables, navigate to a page with openDetailView or openListView (not sure if this is necessary). Then sync changes which will cause a merge conflict. Note that the conflict resolution will not be triggered until pressing back to return to an earlier screen. Any pages dependent on rows in conflict will not render correctly.

2) Rotate the screen during conflict resolution.

Expected behavior

1) After syncing down conflicts, the user interface for resolving conflicts should be immediately displayed before re-rendering an Tables user defined html pages.

2) Rotating the screen during conflict resolution should not functionally change anything besides rotating the existing user interface.

IAmJaishree commented 3 years ago

@wbrunette looking this issue I have a query.

should we allow the user to run the app in the landscape mode after rotating the screen? do we have specific use cases in which users will prefer to run this screen in the landscape mode?

if not we can just restrict the rotation of this screen. Otherwise we can come up with some other fix.

wbrunette commented 3 years ago

@IAmJaishree, yes having the screen rotate is a valid use case. People often like using tablets in landscape mode.