Guide: GeneralSync for Android

In order to get you started, this document will guide you through the basic features of GeneralSync. It is divided into the following feature-specific sections:

  1. First-run configuration: starting GeneralSync for the first time
  2. Sync dashboard: managing devices and content to sync
  3. Pairing: establishing connections to other devices
  4. Sync relations: exchanging content with other devices
  5. Accessing GeneralSync from other apps
  6. How to migrate to GeneralSync

Note that this document is intended as reference providing some background information; it is not required to read through this document in order to use GeneralSync.

First-run configuration

When starting GeneralSync for the first time, the first-run setup is shown:

Screenshot: firstrun setup

Choose a device name and touch I agree, start GeneralSync! in order to complete the process (if you do not enter a license key afterwards, you thereby agree to the default license agreement for Android). The device name you enter will identify your device in the user interface. It will, for example, be shown on any device you sync content with. Especially if you intend to sync content with other people, it is thus a good idea to include your name there.

Note that, in contrast to the first-run procedure on PC, you do not need to enter a license key right away: GeneralSync for Android can be used for noncommercial, private purposes without entering a license key. For commercial use, a license key can be entered in the configuration accessible through the dashboard.

Note that the first start may take a while, depending on the speed of your device. On old devices an initial startup time of multiple minutes is to be expected.

Sync dashboard

GeneralSync is usually running in the background, performing all tasks automatically. When selecting GeneralSync from the launcher, the sync dashboard is shown, which permits you to manage content and sync relations and provides access to GeneralSync's configuration.

Managing content

The dashboard consists of two tabs, one for syncable content and one for paired devices. You can switch between tabs by touching a different tab's header, or by dragging the tab's content to the side. The first tab of the dashboard provides a list of all content stored on this device:

Screenshot: dashboard, content tab

The action bar provides a button to create new content (plus-icon), as well as navigation options towards the configuration and the list of conflicts. The former will be explained later in this section, while the latter is covered in the section about using GeneralSync from other apps.

To view and edit sync relations or metadata of a content, touch its row. The content detail view will be shown:

Screenshot: content details

At the top of the detail view you can see restrictions placed on your usage of the content, for example as in the screenshot above the content being available only for reading. For content available through other apps, a row opening the default app for the corresponding data type will also be shown, for example to open the default calendar app if the content is a calendar.

In the central segment of the view (Preferences) you can edit metadata such as the content's display name. This data is used for local display purposes only, and not synced to other devices. Finally, the bottom part of the view features a list of all paired devices and the sync status of the content towards each device.

A button on the action bar permits to delete the content from this device (trashcan-icon). Furthermore, the action bar may provide features depending on the type of the content, for example to import existing data. More information on importing can be found in the chapter about syncing existing data.

To create or accept a sync relation for the content, touch a device that is not yet receiving or sending it. The other way works similar: by touching a device for which a sync relation has been created before, you can revoke said sync relation. For more information on sync relations, refer to the sync relation section of this guide.

Managing devices

The second tab of the dashboard provides a list of all paired devices:

Screenshot: dashboard, devices tab

The action bar provides a button to pair with additional devices (plus-icon) and the same navigation options as the content tab. To view and edit device metadata or the sync relations a device is participating in, touch its row. The device detail view will be shown:

Screenshot: device details

The layout is similar to the content detail view discussed above: at the top there's a row to immediately force a sync, followed by editable metadata. Below, a list content offered by the device is shown, along with the current status of the sync relation. A button on the action bar permits to unpair the device (trashcan-icon).

To accept an offered sync relation (and create a local copy of the content, if it does not yet exist), touch the row of the available content. Active sync relations can be cancelled in the same way: just touch the content marked as active. For more information on sync relations, refer to the sync relation section of this guide.

Configuration

From any dashboard tab you can access the global configuration: touch the three dots on the action bar, then select Configuration. A list of settings will appear:

Screenshot: configuration

Each setting consists of a title row describing the setting, and the current value for the setting below. To change a setting, touch it. Depending on the setting a dialog or full-screen activity will open, permitting you to select a new value.

By using the action bar, you can show additional settings that should not be altered by most users (similar features are available in other places, for example the device details view). Wrong values for these settings may prevent GeneralSync to operate correctly, thus it is recommended to only alter settings hidden by default if you know what you're doing.

Pairing

In order to exchange data with another device, said device must be paired. For technical reasons, pairing requires a short alphanumeric code to be generated on one of the devices and entered on the other device. Pair codes are case-sensitive.

On Android, the pairing process can be started in multiple ways. The easiest option is touching the plus button on the action bar of the dashboard's devices tab.

Generating a pair code for another device

When starting the pair process, it displays a pair code to enter on the other device:

Screenshot: pair dialog, code generation

Simply enter the code displayed on the other device within the 10 minute limit displayed at the bottom of the dialog; the dialog will be closed automatically once the pairing has been completed.

Entering another device's pair code

To enter the pair code of another device, select Enter other device's code:

Screenshot: pair dialog, code entering

If the other device is connected to the same network, it is sufficient to enter the code generated by the other device and hit ok. Note that pair codes can only be used once and are valid for limited time only, thus you need to generate a new pair key for every two devices you wish to pair.

Expert users can also initiate a pairing with devices not connected to the same network, but the configuration required to do so securely is way beyond the scope of this guide. The configuration options required for that can be found within the advanced option sections of both the pair dialog and the configuration dialog.

Sync relations

Once a device is paired, you can use the sync dashboard to view and edit sync relations towards that device. In this chapter various types of sync relations are described, as well as your options when manipulating them.

States of a sync relation

To protect your data, GeneralSync will not send or receive any data without explicit user approval. In order to establish a sync relation, it is thus required to approve the sync relation on both devices (as the devices may have different users).

A sync relation thus goes through various phases. Relative to one device, a sync relation can be in the following states:

To change the state of a sync relation, touch its row in the content or device details view. A confirmation dialog will describe the change you are about to perform: for available relations, touching will confirm the relation, while for other states the existing relation is removed or disabled. If no relation is currently present, you can create a new sync relation through the process covered below.

If new relations become available, you will also be notified with a notification, touch the notification to directly switch to the device details view of the affected device.

Note that sync relation offers for content currently not present on your device are only visible in the device details view (as the content does not yet exist), while pending sync relations are only visible in the content details view (as the device details display only relations offered by the selected device).

Types of data exchange

While synchronization is a suitable term for any data exchange performed by GeneralSync, it is too broad when discussing sync relations in detail. In fact, there are two major types of data exchange supported by GeneralSync:

The details view accessible through the dashboard display icons in front of the state of each sync relation: two arrows for bidirectional synchronization, one arrow for unidirectional sending / receiving. The direction of the arrow permits to differentiate between sending (to the right) and receiving (to the left).

Establishing new sync relations

To initiate a new sync relation in GeneralSync for Android, make sure the target device is paired and switch to the content detail view of the content to sync (accessible through the dashboard's content tab). Then, touch the row of the target device.

For content you do not have unrestricted access to, any sync relation created by you is automatically bidirectional. In that case, you will be asked to confirm the new sync relation. In other cases, you will be asked to determine the type of the new sync relations:

Screenshot: new relation dialog, type selection

As discussed before, you have the option to either bidirectionally sync data, or to send it without receiving changes from the target device. In the latter case, it may be possible to restrict the content you're sending according to predefined filter rules by selecting the corresponding option from the Restrict to field.

After confirming the sync relation's creation, the target device will usually signal its user that a new sync relation became available. As soon as the relation is confirmed on the target device, the sync relation will automatically operate in the background.

Accessing GeneralSync from other apps

GeneralSync exposes supported data types to Android, which enables you to use them with any app. You can use any app compatible with the standard Android interfaces, refer to the app's documentation for details on its usage.

Conflicts

When multiple devices change the same data, conflicts may occur. Conflicting data will no longer be available to third-party apps, until the conflict is resolved. Once a conflict occurs, a notification is shown:

Screenshot: conflict notification

You can resolve the conflict on any device, and the conflict's resolution will be distributed automatically. If you wish to resolve the conflict on Android, open the dashboard, touch the three dots in the action bar and select Conflicts. Alternatively, you can touch the conflict notification. A list of conflicts will be shown:

Screenshot: list of conflicts

Touch the conflict you wish to resolve, and you can select a version to persist:

Screenshot: conflict resolution dialog

The conflict resolution dialog displays a short summary of each version (in this case, the title and time of an event), as well as the name of the device authoring the change and the date and time the change was committed. If the device issuing the change is not paired, a technical identifier is shown instead.

Select the version you wish to keep, and touch Resolve Conflict. Your resolution will then be distributed to other devices and the selected version will become available to all apps on your device.

How to migrate to GeneralSync

In order to sync existing data with GeneralSync, said data must be imported first. As GeneralSync operates decentrally, you may perform the import on any device.

For a successful import it is crucial that you have access to a complete copy of the data to import: some sync tools operating in the cloud only store parts of the data on mobile devices. Thus, we recommend that you use the export feature of the service or application you were using before. You can then, for example, import the exported data through a compatible PC application. Refer to the documentation of your PC application and previously used tools for details on how to export and import data.

Alternatively, you can import data directly from Android: create a new content in GeneralSync (for example, a calendar) and open its detail view from the dashboard. Through the action bar's menu (three dots) you can then access the Import... feature. A dialog will open, permitting you to select the content to import.

Note that importing will usually only import data supported by the platform you're performing the import on: for example, a calendar imported through Android will never contain reminders scheduled after an event's start time. As mentioned before, some cloud services may only make a part of the data available to Android. For that reason, it is preferable to import calendars on PC through Mozilla Thunderbird.

Thank you for using GeneralSync!

Feel free to contact us directly or through the forums if you have further questions or suggestions regarding this guide or GeneralSync itself.