Search in sources :

Example 1 with FolderStatus

use of com.nutomic.syncthingandroid.model.FolderStatus in project syncthing-android by syncthing.

the class RestApi method getFolderStatus.

/**
 * Returns status information about the folder with the given id.
 */
public void getFolderStatus(final String folderId, final OnResultListener2<String, FolderStatus> listener) {
    new GetRequest(mContext, mUrl, GetRequest.URI_STATUS, mApiKey, ImmutableMap.of("folder", folderId), result -> {
        FolderStatus m = new Gson().fromJson(result, FolderStatus.class);
        mCachedFolderStatuses.put(folderId, m);
        listener.onResult(folderId, m);
    });
}
Also used : FolderStatus(com.nutomic.syncthingandroid.model.FolderStatus) GetRequest(com.nutomic.syncthingandroid.http.GetRequest) Gson(com.google.gson.Gson)

Example 2 with FolderStatus

use of com.nutomic.syncthingandroid.model.FolderStatus in project syncthing-android by syncthing.

the class FoldersAdapter method updateFolderStatusView.

private void updateFolderStatusView(ItemFolderListBinding binding, Folder folder) {
    FolderStatus folderStatus = mLocalFolderStatuses.get(folder.id);
    if (folderStatus == null) {
        binding.items.setVisibility(GONE);
        binding.override.setVisibility(GONE);
        binding.size.setVisibility(GONE);
        setTextOrHide(binding.invalid, folder.invalid);
        return;
    }
    long neededItems = folderStatus.needFiles + folderStatus.needDirectories + folderStatus.needSymlinks + folderStatus.needDeletes;
    boolean outOfSync = folderStatus.state.equals("idle") && neededItems > 0;
    boolean overrideButtonVisible = folder.type.equals(Constants.FOLDER_TYPE_SEND_ONLY) && outOfSync;
    binding.override.setVisibility(overrideButtonVisible ? VISIBLE : GONE);
    if (outOfSync) {
        binding.state.setText(mContext.getString(R.string.status_outofsync));
        binding.state.setTextColor(ContextCompat.getColor(mContext, R.color.text_red));
    } else {
        if (folder.paused) {
            binding.state.setText(mContext.getString(R.string.state_paused));
            binding.state.setTextColor(ContextCompat.getColor(mContext, R.color.text_black));
        } else {
            binding.state.setText(getLocalizedState(mContext, folderStatus));
            switch(folderStatus.state) {
                case "idle":
                    binding.state.setTextColor(ContextCompat.getColor(mContext, R.color.text_green));
                    break;
                case "scanning":
                case "syncing":
                    binding.state.setTextColor(ContextCompat.getColor(mContext, R.color.text_blue));
                    break;
                case "error":
                default:
                    binding.state.setTextColor(ContextCompat.getColor(mContext, R.color.text_red));
            }
        }
    }
    binding.items.setVisibility(VISIBLE);
    binding.items.setText(mContext.getResources().getQuantityString(R.plurals.files, (int) folderStatus.inSyncFiles, folderStatus.inSyncFiles, folderStatus.globalFiles));
    binding.size.setVisibility(VISIBLE);
    binding.size.setText(mContext.getString(R.string.folder_size_format, Util.readableFileSize(mContext, folderStatus.inSyncBytes), Util.readableFileSize(mContext, folderStatus.globalBytes)));
    setTextOrHide(binding.invalid, folderStatus.invalid);
}
Also used : FolderStatus(com.nutomic.syncthingandroid.model.FolderStatus)

Aggregations

FolderStatus (com.nutomic.syncthingandroid.model.FolderStatus)2 Gson (com.google.gson.Gson)1 GetRequest (com.nutomic.syncthingandroid.http.GetRequest)1