Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b80b10b authored by Austin Tankiang's avatar Austin Tankiang Committed by Android (Google) Code Review
Browse files

Revert "Handle queued state for progress messages"

This reverts commit d50f4ea1.

Reason for revert: com.android.documentsui.services.DeleteJobTest#testDeleteSingleFile_ProgressMessage is failing, see b/414740156

Bug: 407674989
Bug: 414740156
Change-Id: I6b956774d002c99c867c13ec1dd4c278a80c1d1c
parent d50f4ea1
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -25,11 +25,13 @@ import android.app.Notification;
import android.app.Notification.Builder;
import android.content.ContentResolver;
import android.content.Context;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.Messenger;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.provider.DocumentsContract;
import android.text.BidiFormatter;
import android.util.Log;

import com.android.documentsui.R;
@@ -41,6 +43,9 @@ import com.android.documentsui.base.UserId;
import com.android.documentsui.clipping.UrisSupplier;

import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

// TODO: Stop extending CopyJob.
final class CompressJob extends CopyJob {
@@ -90,7 +95,23 @@ final class CompressJob extends CopyJob {

    @Override
    protected String getProgressMessage() {
        return getProgressMessage(R.string.compress_in_progress);
        switch (getState()) {
            case Job.STATE_SET_UP:
            case Job.STATE_COMPLETED:
            case Job.STATE_CANCELED:
                Map<String, Object> formatArgs = new HashMap<>();
                formatArgs.put("count", mResolvedDocs.size());
                if (mResolvedDocs.size() == 1) {
                    formatArgs.put("filename", BidiFormatter.getInstance().unicodeWrap(
                            mResolvedDocs.get(0).displayName));
                }
                return (new MessageFormat(
                                service.getString(getRes(R.string.compress_in_progress)),
                                Locale.getDefault()))
                        .format(formatArgs);
            default:
                return "";
        }
    }

    @Override
+23 −3
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import android.content.res.AssetFileDescriptor;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.database.Cursor;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.DeadObjectException;
import android.os.FileUtils;
@@ -98,6 +99,7 @@ import java.io.SyncFailedException;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
@@ -208,9 +210,27 @@ class CopyJob extends ResolvedResourcesJob {
    }

    protected String getProgressMessage() {
        switch (getState()) {
            case Job.STATE_SET_UP:
            case Job.STATE_COMPLETED:
            case Job.STATE_CANCELED:
                Map<String, Object> formatArgs = new HashMap<>();
        formatArgs.put("directory", BidiFormatter.getInstance().unicodeWrap(mDstInfo.displayName));
        return getProgressMessage(R.string.copy_in_progress, formatArgs);
                formatArgs.put("count", mResolvedDocs.size());
                formatArgs.put("directory",
                        BidiFormatter.getInstance().unicodeWrap(mDstInfo.displayName));
                if (mResolvedDocs.size() == 1) {
                    formatArgs.put("filename",
                            BidiFormatter.getInstance().unicodeWrap(
                                    mResolvedDocs.get(0).displayName));
                }
                return (new MessageFormat(
                                service.getString(getRes(R.string.copy_in_progress)),
                                Locale.getDefault()))
                        .format(formatArgs);

            default:
                return "";
        }
    }

    @Override
+22 −1
Original line number Diff line number Diff line
@@ -24,7 +24,9 @@ import android.app.Notification;
import android.app.Notification.Builder;
import android.content.ContentResolver;
import android.content.Context;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.text.BidiFormatter;
import android.util.Log;

import com.android.documentsui.MetricConsts;
@@ -37,6 +39,9 @@ import com.android.documentsui.base.UserId;
import com.android.documentsui.clipping.UrisSupplier;

import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import javax.annotation.Nullable;

@@ -95,7 +100,23 @@ final class DeleteJob extends ResolvedResourcesJob {
    }

    private String getProgressMessage() {
        return getProgressMessage(R.string.delete_in_progress);
        switch (getState()) {
            case Job.STATE_SET_UP:
            case Job.STATE_COMPLETED:
            case Job.STATE_CANCELED:
                Map<String, Object> formatArgs = new HashMap<>();
                formatArgs.put("count", mResolvedDocs.size());
                if (mResolvedDocs.size() == 1) {
                    formatArgs.put("filename", BidiFormatter.getInstance().unicodeWrap(
                            mResolvedDocs.get(0).displayName));
                }
                return (new MessageFormat(
                                service.getString(getRes(R.string.delete_in_progress)),
                                Locale.getDefault()))
                        .format(formatArgs);
            default:
                return "";
        }
    }

    @Override
+21 −3
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static com.android.documentsui.util.Material3Config.getRes;
import android.app.Notification;
import android.app.Notification.Builder;
import android.content.Context;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.DeadObjectException;
import android.os.Messenger;
@@ -45,6 +46,7 @@ import com.android.documentsui.clipping.UrisSupplier;

import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import javax.annotation.Nullable;
@@ -99,9 +101,25 @@ final class MoveJob extends CopyJob {

    @Override
    protected String getProgressMessage() {
        switch (getState()) {
            case Job.STATE_SET_UP:
            case Job.STATE_COMPLETED:
            case Job.STATE_CANCELED:
                Map<String, Object> formatArgs = new HashMap<>();
        formatArgs.put("directory", BidiFormatter.getInstance().unicodeWrap(mDstInfo.displayName));
        return getProgressMessage(R.string.move_in_progress, formatArgs);
                formatArgs.put("count", mResolvedDocs.size());
                formatArgs.put("directory",
                        BidiFormatter.getInstance().unicodeWrap(mDstInfo.displayName));
                if (mResolvedDocs.size() == 1) {
                    formatArgs.put("filename", BidiFormatter.getInstance().unicodeWrap(
                            mResolvedDocs.get(0).displayName));
                }
                return (new MessageFormat(
                                service.getString(getRes(R.string.move_in_progress)),
                                Locale.getDefault()))
                        .format(formatArgs);
            default:
                return "";
        }
    }

    @Override
+1 −47
Original line number Diff line number Diff line
@@ -19,15 +19,11 @@ package com.android.documentsui.services;
import static android.os.SystemClock.uptimeMillis;

import static com.android.documentsui.base.SharedMinimal.DEBUG;
import static com.android.documentsui.util.FlagUtils.isVisualSignalsFlagEnabled;
import static com.android.documentsui.util.Material3Config.getRes;

import android.content.ContentResolver;
import android.content.Context;
import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.RemoteException;
import android.text.BidiFormatter;
import android.util.Log;

import com.android.documentsui.archives.ArchivesProvider;
@@ -42,10 +38,7 @@ import com.android.documentsui.services.FileOperationService.OpType;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

/**
 * Abstract job that resolves all resource URIs into mResolvedDocs. This provides
@@ -69,12 +62,6 @@ public abstract class ResolvedResourcesJob extends Job {

        // Delay the initialization of it to setUp() because it may be IO extensive.
        mResolvedDocs = new ArrayList<>(srcs.getItemCount());

        if (isVisualSignalsFlagEnabled() && srcs.getItemCount() == 1) {
            // Prebuild the document list so we can get the filename for a single file progress
            // message. With a single file only, this should not be IO intensive.
            buildDocumentList();
        }
    }

    boolean setUp() {
@@ -101,7 +88,7 @@ public abstract class ResolvedResourcesJob extends Job {
            return false;
        }

        int docsResolved = refreshDocumentList();
        int docsResolved = buildDocumentList();
        if (!isCanceled() && docsResolved < mResourceUris.getItemCount()) {
            if (docsResolved == 0) {
                Log.e(TAG, "Cannot load any documents. Aborting.");
@@ -179,37 +166,4 @@ public abstract class ResolvedResourcesJob extends Job {

        return docsLoaded;
    }

    private int refreshDocumentList() {
        // We've never built the list in the first place.
        if (mResolvedDocs.isEmpty() && failureCount == 0) {
            return buildDocumentList();
        }

        final ContentResolver resolver = appContext.getContentResolver();
        mResolvedDocs.removeIf(doc -> {
            try {
                doc.updateSelf(resolver, UserId.DEFAULT_USER);
            } catch (FileNotFoundException e) {
                onFileFailed(doc);
                return true;
            }
            return false;
        });
        return mResolvedDocs.size();
    }

    protected String getProgressMessage(int stringId, Map<String, Object> formatArgs) {
        formatArgs.put("count", mResourceUris.getItemCount());
        if (mResourceUris.getItemCount() == 1 && mResolvedDocs.size() == 1) {
            formatArgs.put("filename",
                    BidiFormatter.getInstance().unicodeWrap(mResolvedDocs.get(0).displayName));
        }
        return (new MessageFormat(service.getString(getRes(stringId)), Locale.getDefault()))
                .format(formatArgs);
    }

    protected String getProgressMessage(int stringId) {
        return getProgressMessage(stringId, new HashMap<>());
    }
}
Loading