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

Commit 9b5cd25a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add logging to search fragment."

parents 489cbb2a 39f4f6ee
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -17,14 +17,11 @@

package com.android.settings.search2;

import android.app.Fragment;
import android.util.Log;
import android.content.Context;
import android.view.View;
import android.view.ViewParent;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import android.content.Context;

import com.android.internal.widget.PreferenceImageView;
import com.android.settings.R;
@@ -52,7 +49,7 @@ public class InlineSwitchViewHolder extends SearchViewHolder {
    }

    @Override
    public void onBind(Fragment fragment, SearchResult result) {
    public void onBind(SearchFragment fragment, SearchResult result) {
        if (mContext == null) {
            return;
        }
@@ -62,6 +59,7 @@ public class InlineSwitchViewHolder extends SearchViewHolder {
        switchView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                fragment.onSearchResultClicked();
                payload.setSwitchValue(mContext, isChecked);
            }
        });
+2 −2
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package com.android.settings.search2;

import android.app.Fragment;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -40,7 +39,7 @@ public class IntentSearchViewHolder extends SearchViewHolder {
    }

    @Override
    public void onBind(final Fragment fragment, final SearchResult result) {
    public void onBind(final SearchFragment fragment, final SearchResult result) {
        titleView.setText(result.title);
        summaryView.setText(result.summary);
        iconView.setImageDrawable(result.icon);
@@ -50,6 +49,7 @@ public class IntentSearchViewHolder extends SearchViewHolder {
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fragment.onSearchResultClicked();
                fragment.startActivity(((IntentPayload) result.payload).intent);
            }
        });
+38 −5
Original line number Diff line number Diff line
@@ -35,23 +35,33 @@ import android.widget.SearchView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;

import java.util.List;

public class SearchFragment extends InstrumentedFragment implements
        SearchView.OnQueryTextListener, LoaderManager.LoaderCallbacks<List<SearchResult>> {
    private static final String TAG = "SearchFragment";

    // State values
    static final String STATE_QUERY = "query";
    private static final String STATE_QUERY = "state_query";
    private static final String STATE_NEVER_ENTERED_QUERY = "state_never_entered_query";
    private static final String STATE_RESULT_CLICK_COUNT = "state_result_click_count";

    // Loader IDs
    private static final int LOADER_ID_DATABASE = 0;
    private static final int LOADER_ID_INSTALLED_APPS = 1;

    @VisibleForTesting
    String mQuery;
    // Logging
    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
    static final String RESULT_CLICK_COUNT = "settings_search_result_click_count";

    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
    String mQuery;
    private boolean mNeverEnteredQuery = true;
    private int mResultClickCount;
    private MetricsFeatureProvider mMetricsFeatureProvider;
    private SearchFeatureProvider mSearchFeatureProvider;

    private SearchResultsAdapter mSearchAdapter;
@@ -65,8 +75,8 @@ public class SearchFragment extends InstrumentedFragment implements
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mSearchFeatureProvider = FeatureFactory.getFactory(context)
                .getSearchFeatureProvider();
        mSearchFeatureProvider = FeatureFactory.getFactory(context).getSearchFeatureProvider();
        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
    }

    @Override
@@ -76,6 +86,8 @@ public class SearchFragment extends InstrumentedFragment implements
        mSearchAdapter = new SearchResultsAdapter(this);
        if (savedInstanceState != null) {
            mQuery = savedInstanceState.getString(STATE_QUERY);
            mNeverEnteredQuery = savedInstanceState.getBoolean(STATE_NEVER_ENTERED_QUERY);
            mResultClickCount = savedInstanceState.getInt(STATE_RESULT_CLICK_COUNT);
            final LoaderManager loaderManager = getLoaderManager();
            loaderManager.initLoader(LOADER_ID_DATABASE, null, this);
            loaderManager.initLoader(LOADER_ID_INSTALLED_APPS, null, this);
@@ -96,10 +108,25 @@ public class SearchFragment extends InstrumentedFragment implements
        return view;
    }

    @Override
    public void onStop() {
        super.onStop();
        final Activity activity = getActivity();
        if (activity != null && activity.isFinishing()) {
            mMetricsFeatureProvider.histogram(activity, RESULT_CLICK_COUNT, mResultClickCount);
            if (mNeverEnteredQuery) {
                mMetricsFeatureProvider.action(activity,
                        MetricsProto.MetricsEvent.ACTION_LEAVE_SEARCH_RESULT_WITHOUT_QUERY);
            }
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(STATE_QUERY, mQuery);
        outState.putBoolean(STATE_NEVER_ENTERED_QUERY, mNeverEnteredQuery);
        outState.putInt(STATE_RESULT_CLICK_COUNT, mResultClickCount);
    }

    @Override
@@ -107,6 +134,8 @@ public class SearchFragment extends InstrumentedFragment implements
        if (TextUtils.equals(query, mQuery)) {
            return true;
        }
        mResultClickCount = 0;
        mNeverEnteredQuery = false;
        mQuery = query;
        mSearchAdapter.clearResults();

@@ -147,6 +176,10 @@ public class SearchFragment extends InstrumentedFragment implements
    public void onLoaderReset(Loader<List<SearchResult>> loader) {
    }

    public void onSearchResultClicked() {
        mResultClickCount++;
    }

    private void restartLoaders() {
        final LoaderManager loaderManager = getLoaderManager();
        loaderManager.restartLoader(LOADER_ID_DATABASE, null /* args */, this /* callback */);
+1 −2
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package com.android.settings.search2;

import android.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.view.View;

@@ -30,5 +29,5 @@ public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
        super(view);
    }

    public abstract void onBind(Fragment fragment, SearchResult result);
    public abstract void onBind(SearchFragment fragment, SearchResult result);
}
 No newline at end of file
+3 −4
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@

package com.android.settings.search;

import android.app.Fragment;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
@@ -28,7 +27,7 @@ import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search2.InlineSwitchPayload;
import com.android.settings.search2.InlineSwitchViewHolder;
import com.android.settings.search2.IntentPayload;
import com.android.settings.search2.SearchFragment;
import com.android.settings.search2.SearchResult;

import org.junit.Before;
@@ -53,7 +52,7 @@ public class InlineSwitchViewHolderTest {
    private static final String SUMMARY = "summary";

    @Mock
    private Fragment mFragment;
    private SearchFragment mFragment;

    @Mock
    private InlineSwitchPayload mPayload;
@@ -97,7 +96,7 @@ public class InlineSwitchViewHolderTest {
                .addSummary(SUMMARY)
                .addRank(1)
                .addPayload(new InlineSwitchPayload("", 0, null))
                .addBreadcrumbs(new ArrayList<String>())
                .addBreadcrumbs(new ArrayList<>())
                .addIcon(mIcon)
                .addPayload(mPayload);

Loading