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

Commit d4b76778 authored by Soroosh Mariooryad's avatar Soroosh Mariooryad Committed by android-build-merger
Browse files

Merge "Log smart settings suggestion enabled/disabled state for A/B experiments" into oc-mr1-dev

am: 339fd952

Change-Id: I641e80fa3678d5b3dd1dec07a908a9561c4460b9
parents 08fe2507 339fd952
Loading
Loading
Loading
Loading
+35 −26
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -47,6 +48,7 @@ import com.android.settings.dashboard.conditional.ConditionAdapter;
import com.android.settings.dashboard.suggestions.SuggestionAdapter;
import com.android.settings.dashboard.suggestions.SuggestionDismissController;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
import com.android.settings.dashboard.suggestions.SuggestionLogHelper;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.Utils;
import com.android.settingslib.drawer.DashboardCategory;
@@ -172,7 +174,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
                final String identifier = mSuggestionFeatureProvider.getSuggestionIdentifier(
                        mContext, suggestion);
                mMetricsFeatureProvider.action(
                        mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, identifier);
                        mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, identifier,
                        getSuggestionTaggedData());
                mSuggestionsShownLogged.add(identifier);
            }
        }
@@ -302,7 +305,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
                    mContext, suggestion);
            if (mSuggestionsShownLogged.contains(suggestionId)) {
                mMetricsFeatureProvider.action(
                        mContext, MetricsEvent.ACTION_HIDE_SETTINGS_SUGGESTION, suggestionId);
                        mContext, MetricsEvent.ACTION_HIDE_SETTINGS_SUGGESTION, suggestionId,
                        getSuggestionTaggedData());
            }
        }
        mSuggestionsShownLogged.clear();
@@ -338,8 +342,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
                    mContext, suggestion);
            if (!mSuggestionsShownLogged.contains(suggestionId)) {
                mMetricsFeatureProvider.action(
                    mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
                    suggestionId);
                        mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, suggestionId,
                        getSuggestionTaggedData());
                mSuggestionsShownLogged.add(suggestionId);
            }
        }
@@ -526,6 +530,11 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
        parent.setVisibility(View.VISIBLE);
    }

    private Pair<Integer, Object>[] getSuggestionTaggedData() {
        return SuggestionLogHelper.getSuggestionTaggedData(
                mSuggestionFeatureProvider.isSmartSuggestionEnabled(mContext));
    }

    public static class IconCache {
        private final Context mContext;
        private final ArrayMap<Icon, Drawable> mMap = new ArrayMap<>();
+14 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.dashboard.suggestions;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -71,7 +72,8 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
        // This is for cases when a suggestion is dismissed and the next one comes to view
        if (!mSuggestionsShownLogged.contains(suggestionId)) {
            mMetricsFeatureProvider.action(
                mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, suggestionId);
                    mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, suggestionId,
                    getSuggestionTaggedData());
            mSuggestionsShownLogged.add(suggestionId);
        }
        if (suggestion.remoteViews != null) {
@@ -102,9 +104,11 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
            // set the item view to disabled to remove any touch effects
            holder.itemView.setEnabled(false);
        }

        clickHandler.setOnClickListener(v -> {
            mMetricsFeatureProvider.action(mContext,
                MetricsEvent.ACTION_SETTINGS_SUGGESTION, suggestionId);
                    MetricsEvent.ACTION_SETTINGS_SUGGESTION, suggestionId,
                    getSuggestionTaggedData());
            ((SettingsActivity) mContext).startSuggestion(suggestion.intent);
        });
    }
@@ -141,4 +145,10 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
        mSuggestions.remove(suggestion);
        notifyDataSetChanged();
    }

    private Pair<Integer, Object>[] getSuggestionTaggedData() {
        return SuggestionLogHelper.getSuggestionTaggedData(
                mSuggestionFeatureProvider.isSmartSuggestionEnabled(mContext));
    }

}
+9 −4
Original line number Diff line number Diff line
@@ -26,8 +26,9 @@ import android.provider.Settings.Secure;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import android.util.Log;
import android.util.Pair;

import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.Settings.AmbientDisplayPickupSuggestionActivity;
import com.android.settings.Settings.AmbientDisplaySuggestionActivity;
import com.android.settings.Settings.DoubleTapPowerSuggestionActivity;
@@ -45,6 +46,7 @@ import com.android.settings.support.NewDeviceIntroSuggestionActivity;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser;

import java.util.ArrayList;
import java.util.List;

public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider {
@@ -130,10 +132,13 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
        if (parser == null || suggestion == null || context == null) {
            return;
        }
        mMetricsFeatureProvider.action(
                context, MetricsProto.MetricsEvent.ACTION_SETTINGS_DISMISS_SUGGESTION,
                getSuggestionIdentifier(context, suggestion));
        final Pair<Integer, Object>[] taggedData =
                SuggestionLogHelper.getSuggestionTaggedData(isSmartSuggestionEnabled(context));

        mMetricsFeatureProvider.action(
                context, MetricsEvent.ACTION_SETTINGS_DISMISS_SUGGESTION,
                getSuggestionIdentifier(context, suggestion),
                taggedData);
        if (!parser.dismissSuggestion(suggestion)) {
            return;
        }
+29 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.settings.dashboard.suggestions;

import android.util.Pair;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;

public class SuggestionLogHelper {

    public static Pair<Integer, Object>[] getSuggestionTaggedData(boolean enabled) {
        return new Pair[]{
                Pair.create(
                        MetricsEvent.FIELD_SETTINGS_SMART_SUGGESTIONS_ENABLED, enabled ? 1 : 0)};
    }
}
Loading