Last modified on 7 August 2024, at 11:11

Branch Download

Revision as of 11:11, 7 August 2024 by LGE (Talk | contribs) (BranchDownloadCommand)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

To support offline use cases, UBIK® clients provide the possibility to bring data offline. It's achieved by downloading specified data branches in advance.

Manual Download

When using the clients in non-offline sync modes, you can trigger a branch download from any content object. Depending on the clients and the XAML customizings, the UI for starting branch downloads might differ. Here's the default UI on different clients.
IC Hint square.pngManual downloads always have higher priorities than automatic downloads. In other words, a manual download will "cut in line" in front of all automatic downloads (except if one is already in the middle of executing).

BranchDownloadCommand

With the BranchDownloadCommand it is possible to download a branch manually.

  • CheckOut CommandParameter (optional, defaults to false): Setting CheckOut to true provides the possibility to check out all downloaded content afterwards. Further information see in Exclusive Access Content (Client).
  • SkipDialog CommandParameter (optional, defaults to false): Usually before downloading a branch a dialog is raised for the user to confirm or cancel the action. Setting SkipDialog to true provides the possibility to skip this dialog.


UWP

  <Button
     xmlns:example="using:UBIK.WinX.Controls"
     Command="{Binding BranchDownloadCommand}">
      <Button.CommandParameter>
          <example:KeyValueList>
              <example:KeyValueParameter Key="CheckOut" Value="False" />
          </example:KeyValueList>
      </Button.CommandParameter>
  </Button>

Xamarin

  <Button
     xmlns:example="using:clr-namespace:UBIK.CPL.Classes;assembly=UBIK.CPL"
     Command="{Binding BranchDownloadCommand}">
      <Button.CommandParameter>
          <example:KeyValueList>
              <example:KeyValueParameter Key="CheckOut" Value="False" />
          </example:KeyValueList>
      </Button.CommandParameter>
  </Button>

Automatic Download

Content objects can be classified in a way that their branches are automatically downloaded to the clients. Different configurations are supported so that the download can happen at different timing.

Configurable Offline Sync Levels

Content objects can be classified with the OFFLINE_SYNC_LEVEL_CLASSIFICATION to download a certain amount of children levels instead of infinite levels.

IC Hint square.pngSublevels to analyze
If there are sublevels to analyze all the information on the children will be ignored. Here just the SyncLevel (in this case the ChildDepth) of the root object will be respected.

Download States

To help users better understand what is going on during a branch download, the clients display different icons. The following examples are from the Xamarin clients.

IC Hint square.pngAll states are displayed for an entire branch. If the parent (direct or indirect) of a child object is syncing, that child object will display the same syncing state.
IC Hint square.pngStates are displayed in different priorities (syncing > pending > synced/failed). For example, if a child object is syncing and its parent is pending, the child object will "retain" its syncing state. But if their states are switched, the child object's pending state will be "overwritten" by the parent's syncing state. As for the synced/failed states, the more recent one is displayed.

Background Download

On Android, UBIK® makes sure branch download tasks are not interrupted/suspended even when the device is locked or in sleep mode. However, this is only possible when UBIK® is excluded from the list of battery usage optimized apps.

To help you check and change this setting, UBIK® will try to lead you to the relevant settings page upon its first launch. But it's also a good idea to check the settings according to the specifications of your specific device models.