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

Commit 8430edd7 authored by Shawn Lin's avatar Shawn Lin Committed by Android (Google) Code Review
Browse files

Merge "Migration to Westworld (2/2)"

parents f45ac75c e0ba46db
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -139,6 +139,11 @@
            android:authorities="com.android.documentsui.lastAccessed"
            android:exported="false"/>

        <provider
            android:name=".picker.PickCountRecordProvider"
            android:authorities="com.android.documentsui.pickCountRecord"
            android:exported="false"/>

        <provider
            android:name=".archives.ArchivesProvider"
            android:authorities="com.android.documentsui.archives"
+21 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Checkable;
import android.widget.TextView;

import androidx.annotation.CallSuper;
@@ -63,6 +64,7 @@ import com.android.documentsui.prefs.Preferences;
import com.android.documentsui.prefs.PreferencesMonitor;
import com.android.documentsui.prefs.ScopedPreferences;
import com.android.documentsui.queries.CommandInterceptor;
import com.android.documentsui.queries.SearchChipData;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.queries.SearchViewManager.SearchManagerListener;
import com.android.documentsui.roots.ProvidersCache;
@@ -73,6 +75,7 @@ import com.android.documentsui.sorting.SortController;
import com.android.documentsui.sorting.SortModel;

import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.chip.Chip;

import java.util.ArrayList;
import java.util.Date;
@@ -166,6 +169,14 @@ public abstract class BaseActivity
                    Metrics.logUserAction(MetricConsts.USER_ACTION_SEARCH);
                }


                if (mSearchManager.isSearching()) {
                    Metrics.logSearchMode(query != null, mSearchManager.hasCheckedChip());
                    if (mInjector.pickResult != null) {
                        mInjector.pickResult.increaseActionCount();
                    }
                }

                mInjector.actions.loadDocumentsForCurrentStack();
            }

@@ -179,6 +190,16 @@ public abstract class BaseActivity
            public void onSearchViewChanged(boolean opened) {
                mNavigator.update();
            }

            @Override
            public void onSearchChipStateChanged(View v) {
                final Checkable chip = (Checkable) v;
                if (chip.isChecked()) {
                    final SearchChipData item = (SearchChipData) v.getTag();
                    Metrics.logUserAction(MetricConsts.USER_ACTION_SEARCH_CHIP);
                    Metrics.logSearchType(item.getChipType());
                }
            }
        };

        // "Commands" are meta input for controlling system behavior.
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.documentsui.base.Features;
import com.android.documentsui.base.Lookup;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.dirlist.AppsRowManager;
import com.android.documentsui.picker.PickResult;
import com.android.documentsui.prefs.ScopedPreferences;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.ui.DialogController;
@@ -59,6 +60,8 @@ public class Injector<T extends ActionHandler> {
    public SearchViewManager searchManager;
    public AppsRowManager appsRowManager;

    public PickResult pickResult;

    public final DebugHelper debugHelper;

    @ContentScoped
+36 −0
Original line number Diff line number Diff line
@@ -354,4 +354,40 @@ public class MetricConsts {
    @Retention(RetentionPolicy.SOURCE)
    public @interface InvalidScopedAccess {
    }

    // Codes representing different search types
    public static final int TYPE_UNKNOWN = 0;
    public static final int TYPE_CHIP_IMAGES = 1;
    public static final int TYPE_CHIP_AUDIOS = 2;
    public static final int TYPE_CHIP_VIDEOS = 3;
    public static final int TYPE_CHIP_DOCS = 4;
    public static final int TYPE_SEARCH_HISTORY = 5;
    public static final int TYPE_SEARCH_STRING = 6;

    @IntDef(flag = true, value = {
            TYPE_UNKNOWN,
            TYPE_CHIP_IMAGES,
            TYPE_CHIP_AUDIOS,
            TYPE_CHIP_VIDEOS,
            TYPE_CHIP_DOCS,
            TYPE_SEARCH_HISTORY,
            TYPE_SEARCH_STRING
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface SearchType {}

    // Codes representing different search types
    public static final int SEARCH_UNKNOWN = 0;
    public static final int SEARCH_KEYWORD = 1;
    public static final int SEARCH_CHIPS = 2;
    public static final int SEARCH_KEYWORD_N_CHIPS = 3;

    @IntDef(flag = true, value = {
            SEARCH_UNKNOWN,
            SEARCH_KEYWORD,
            SEARCH_CHIPS,
            SEARCH_KEYWORD_N_CHIPS
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface SearchMode {}
}
 No newline at end of file
+37 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.documentsui.base.Providers;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.files.LauncherActivity;
import com.android.documentsui.picker.PickResult;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.services.FileOperationService;
import com.android.documentsui.services.FileOperationService.OpType;
@@ -287,6 +288,30 @@ public final class Metrics {
        DocumentsStatsLog.logUserAction(userAction);
    }

    public static void logPickerLaunchedFrom(String packgeName) {
        DocumentsStatsLog.logPickerLaunchedFrom(packgeName);
    }

    public static void logSearchType(int searchType) {
        // TODO:waiting for search history implementation, it's one of the search types.
        DocumentsStatsLog.logSearchType(searchType);
    }

    public static void logSearchMode(boolean isKeywordSearch, boolean isChipsSearch) {
        DocumentsStatsLog.logSearchMode(getSearchMode(isKeywordSearch, isChipsSearch));
    }

    public static void logPickResult(PickResult result) {
        DocumentsStatsLog.logFilePick(
                result.getActionCount(),
                result.getDuration(),
                result.getFileCount(),
                result.isSearching(),
                result.getRoot(),
                result.getMimeType(),
                result.getRepeatedPickTimes());
    }

    private static void logStorageFileOperationFailure(
            Context context, @MetricConsts.SubFileOp int subFileOp, Uri docUri) {
        assert(Providers.AUTHORITY_STORAGE.equals(docUri.getAuthority()));
@@ -504,6 +529,18 @@ public final class Metrics {
        }
    }

    private static int getSearchMode(boolean isKeyword, boolean isChip) {
        if (isKeyword && isChip) {
            return MetricConsts.SEARCH_KEYWORD_N_CHIPS;
        } else if (isKeyword) {
            return MetricConsts.SEARCH_KEYWORD;
        } else if (isChip) {
            return MetricConsts.SEARCH_CHIPS;
        } else {
            return MetricConsts.SEARCH_UNKNOWN;
        }
    }

    /**
     * Count the given src documents and provide a tally of how many come from the same provider as
     * the dst document (if a dst is provided), how many come from system providers, and how many
Loading