Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Userlytics feedback android #7513

Merged
merged 5 commits into from
Jan 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions android/brave_java_resources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,7 @@ brave_java_resources = [
"java/res/drawable/enable_rewards_button.xml",
"java/res/drawable/ic_add.xml",
"java/res/drawable/ic_arrow_drop_down_white.xml",
"java/res/drawable/ic_arrow_forward.xml",
"java/res/drawable/ic_back.xml",
"java/res/drawable/ic_bat.xml",
"java/res/drawable/ic_binance.xml",
Expand Down Expand Up @@ -685,6 +686,7 @@ brave_java_resources = [
"java/res/drawable/progress_indeterminate.xml",
"java/res/drawable/progress_indeterminate_orange.xml",
"java/res/drawable/publisher_favicon_background.xml",
"java/res/drawable/radio_button_holo_bg.xml",
"java/res/drawable/radio_button_selected_bg.xml",
"java/res/drawable/radiobutton_background.xml",
"java/res/drawable/rate_feedback_background.xml",
Expand Down
7 changes: 4 additions & 3 deletions android/brave_java_sources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/QRCodeShareDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/app/BraveActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java",
"../../brave/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java",
"../../brave/android/java/org/chromium/chrome/browser/custom_layout/HeightWrappingViewPager.java",
Expand Down Expand Up @@ -232,6 +233,6 @@ brave_components_browser_ui_site_settings_android_java = [ "//brave/components/b
brave_browser_ui_android_appmenu_internal_sources = [ "//brave/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java" ]

brave_java_base_sources = [
"//brave/android/java/org/chromium/base/BraveCommandLineInitUtil.java",
"//brave/android/java/org/chromium/base/BraveReflectionUtil.java",
]
"//brave/android/java/org/chromium/base/BraveCommandLineInitUtil.java",
"//brave/android/java/org/chromium/base/BraveReflectionUtil.java",
]
9 changes: 9 additions & 0 deletions android/java/apk_for_test.flags
Original file line number Diff line number Diff line change
Expand Up @@ -163,3 +163,12 @@
-keep class org.chromium.chrome.browser.tabmodel.BraveTabCreator {
public <init>(...);
}

-keep class org.chromium.chrome.browser.bookmarks.BraveBookmarkUtils {
*** addOrEditBookmark(...);
}

-keep class org.chromium.chrome.browser.bookmarks.BookmarkUtils {
*** addBookmarkInternal(...);
*** createSnackbarControllerForEditButton(...);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.chromium.chrome.browser.bookmarks;

import android.app.Activity;
import android.content.Context;

import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;

/**
* A class holding static util functions for bookmark.
*/
public class BraveBookmarkUtils extends BookmarkUtils {
private static final String TAG = "BraveBookmarkUtils";
/**
* If the tab has already been bookmarked, start {@link BookmarkEditActivity} for the
* bookmark. If not, add the bookmark to bookmarkmodel, and show a snackbar notifying the user.
*
* Note: Takes ownership of bookmarkModel, and will call |destroy| on it when finished.
*
* @param existingBookmarkId The bookmark ID if the tab has already been bookmarked.
* @param bookmarkModel The bookmark model.
* @param tab The tab to add or edit a bookmark.
* @param snackbarManager The SnackbarManager used to show the snackbar.
* @param activity Current activity.
* @param fromCustomTab boolean indicates whether it is called by Custom Tab.
* @return Bookmark ID of the bookmark. Could be <code>null</code> if bookmark didn't exist
* and bookmark model failed to create it.
*/
public static BookmarkId addOrEditBookmark(long existingBookmarkId, BookmarkModel bookmarkModel,
Tab tab, SnackbarManager snackbarManager, Activity activity, boolean fromCustomTab) {
if (existingBookmarkId != BookmarkId.INVALID_ID) {
BookmarkId bookmarkId = new BookmarkId(existingBookmarkId, BookmarkType.NORMAL);
if (snackbarManager.isShowing()) {
snackbarManager.dismissAllSnackbars();
}
bookmarkModel.deleteBookmark(bookmarkId);
bookmarkModel.destroy();
return bookmarkId;
}

BookmarkId bookmarkId =
addBookmarkInternal(activity, bookmarkModel, tab.getTitle(), tab.getOriginalUrl());

Snackbar snackbar = null;
if (bookmarkId == null) {
snackbar = Snackbar.make(activity.getString(R.string.bookmark_page_failed),
new SnackbarController() {
@Override
public void onDismissNoAction(Object actionData) {}

@Override
public void onAction(Object actionData) {}
},
Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_BOOKMARK_ADDED)
.setSingleLine(false);
} else {
String folderName = bookmarkModel.getBookmarkTitle(
bookmarkModel.getBookmarkById(bookmarkId).getParentId());
SnackbarController snackbarController =
createSnackbarControllerForEditButton(activity, bookmarkId);
if (getLastUsedParent(activity) == null) {
if (fromCustomTab) {
String packageLabel = BuildInfo.getInstance().hostPackageLabel;
snackbar = Snackbar.make(
activity.getString(R.string.bookmark_page_saved, packageLabel),
snackbarController, Snackbar.TYPE_ACTION, Snackbar.UMA_BOOKMARK_ADDED);
} else {
snackbar = Snackbar.make(
activity.getString(R.string.bookmark_page_saved_default),
snackbarController, Snackbar.TYPE_ACTION, Snackbar.UMA_BOOKMARK_ADDED);
}
} else {
snackbar = Snackbar.make(folderName, snackbarController, Snackbar.TYPE_ACTION,
Snackbar.UMA_BOOKMARK_ADDED)
.setTemplateText(
activity.getString(R.string.bookmark_page_saved_folder));
}
snackbar.setSingleLine(false).setAction(
activity.getString(R.string.bookmark_item_edit), null);
}
snackbarManager.showSnackbar(snackbar);

bookmarkModel.destroy();
return bookmarkId;
}

/**
* An internal version of {@link #addBookmarkSilently(Context, BookmarkModel, String, String)}.
* Will reset last used parent if it fails to add a bookmark
*/
protected static BookmarkId addBookmarkInternal(
Context context, BookmarkModel bookmarkModel, String title, String url) {
assert (false);
return null;
}

/**
* Creates a snackbar controller for a case where "Edit" button is shown to edit the newly
* created bookmark.
*/
protected static SnackbarController createSnackbarControllerForEditButton(
final Activity activity, final BookmarkId bookmarkId) {
assert (false);
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ public class OnboardingPrefManager {

private static final String GOOGLE = "Google";
public static final String DUCKDUCKGO = "DuckDuckGo";
private static final String DUCKDUCKGOLITE = "DuckDuckGo Lite";
private static final String QWANT = "Qwant";
private static final String BING = "Bing";
private static final String STARTPAGE = "Startpage";
Expand Down Expand Up @@ -249,7 +248,6 @@ public boolean showCrossPromoModal() {
put(GOOGLE, SearchEngineEnum.GOOGLE);
put(YAHOO, SearchEngineEnum.YAHOO);
put(DUCKDUCKGO, SearchEngineEnum.DUCKDUCKGO);
put(DUCKDUCKGOLITE, SearchEngineEnum.DUCKDUCKGOLITE);
put(QWANT, SearchEngineEnum.QWANT);
put(BING, SearchEngineEnum.BING);
put(STARTPAGE, SearchEngineEnum.STARTPAGE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,28 @@
import org.chromium.chrome.R;

public enum SearchEngineEnum {
GOOGLE(R.drawable.search_engine_google, SearchEngineEnumConstants.SEARCH_GOOGLE_ID),
YAHOO(R.drawable.search_engine_yahoo, SearchEngineEnumConstants.SEARCH_YAHOO_ID),
DUCKDUCKGO(R.drawable.search_engine_duckduckgo, SearchEngineEnumConstants.SEARCH_DUCKDUCKGO_ID),
DUCKDUCKGOLITE(R.drawable.search_engine_duckduckgo_lite,
SearchEngineEnumConstants.SEARCH_DUCKDUCKGO_LITE_ID),
QWANT(R.drawable.search_engine_qwant, SearchEngineEnumConstants.SEARCH_QWANT_ID),
BING(R.drawable.search_engine_bing, SearchEngineEnumConstants.SEARCH_BING_ID),
YANDEX(R.drawable.yandex, SearchEngineEnumConstants.SEARCH_YANDEX_ID),
STARTPAGE(R.drawable.search_engine_startpage, SearchEngineEnumConstants.SEARCH_STARTPAGE_ID);
GOOGLE(R.drawable.search_engine_google, SearchEngineEnumConstants.SEARCH_GOOGLE_ID,
R.string.google_desc),
YAHOO(R.drawable.search_engine_yahoo, SearchEngineEnumConstants.SEARCH_YAHOO_ID,
R.string.yahoo_desc),
DUCKDUCKGO(R.drawable.search_engine_duckduckgo, SearchEngineEnumConstants.SEARCH_DUCKDUCKGO_ID,
R.string.ddg_desc),
QWANT(R.drawable.search_engine_qwant, SearchEngineEnumConstants.SEARCH_QWANT_ID,
R.string.qwant_desc),
BING(R.drawable.search_engine_bing, SearchEngineEnumConstants.SEARCH_BING_ID,
R.string.bing_desc),
YANDEX(R.drawable.yandex, SearchEngineEnumConstants.SEARCH_YANDEX_ID, R.string.yandex_desc),
STARTPAGE(R.drawable.search_engine_startpage, SearchEngineEnumConstants.SEARCH_STARTPAGE_ID,
R.string.startpage_desc);

private int icon;
private int id;
private int desc;

SearchEngineEnum(int icon, int id) {
SearchEngineEnum(int icon, int id, int desc) {
this.icon = icon;
this.id = id;
this.desc = desc;
}

public int getIcon() {
Expand All @@ -36,14 +42,17 @@ public int getId() {
return id;
}

public int getDesc() {
return desc;
}

interface SearchEngineEnumConstants {
static final int SEARCH_GOOGLE_ID = 0;
static final int SEARCH_DUCKDUCKGO_ID = 1;
static final int SEARCH_DUCKDUCKGO_LITE_ID = 2;
static final int SEARCH_QWANT_ID = 3;
static final int SEARCH_BING_ID = 4;
static final int SEARCH_STARTPAGE_ID = 5;
static final int SEARCH_YAHOO_ID = 6;
static final int SEARCH_YANDEX_ID = 7;
static final int SEARCH_QWANT_ID = 2;
static final int SEARCH_BING_ID = 3;
static final int SEARCH_STARTPAGE_ID = 4;
static final int SEARCH_YAHOO_ID = 5;
static final int SEARCH_YANDEX_ID = 6;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,36 @@

package org.chromium.chrome.browser.onboarding;

import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;

import static org.chromium.ui.base.ViewUtils.dpToPx;

import androidx.fragment.app.Fragment;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import androidx.fragment.app.Fragment;

import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
import org.chromium.chrome.browser.onboarding.SearchEngineEnum;
import org.chromium.chrome.browser.settings.BraveSearchEngineUtils;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.settings.BraveSearchEngineUtils;
import org.chromium.components.search_engines.TemplateUrl;
import org.chromium.components.search_engines.TemplateUrlService;

import java.util.List;

public class SearchEngineOnboardingFragment extends Fragment {
private String searchSpanText = "%s\n%s";
private RadioGroup radioGroup;

private Button btnSave;
Expand Down Expand Up @@ -67,20 +75,35 @@ private void refreshData() {
SearchEngineEnum searchEngineEnum =
OnboardingPrefManager.searchEngineMap.get(templateUrl.getShortName());

String title = templateUrl.getShortName();
String desc = getActivity().getResources().getString(searchEngineEnum.getDesc());

SpannableString searchTextSpan =
new SpannableString(String.format(searchSpanText, title, desc));
searchTextSpan.setSpan(new AbsoluteSizeSpan(16, true), 0, title.length(),
SPAN_EXCLUSIVE_EXCLUSIVE);
searchTextSpan.setSpan(
new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 0,
title.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
searchTextSpan.setSpan(new AbsoluteSizeSpan(12, true), title.length() + 1,
searchTextSpan.length(), SPAN_EXCLUSIVE_EXCLUSIVE);

RadioButton rdBtn = new RadioButton(getActivity());
rdBtn.setId(searchEngineEnum.getId());
RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(
RadioGroup.LayoutParams.MATCH_PARENT, dpToPx(getActivity(), 56));
RadioGroup.LayoutParams.MATCH_PARENT, dpToPx(getActivity(), 64));
params.setMargins(0, dpToPx(getActivity(), 6), 0, 0);
rdBtn.setLayoutParams(params);
rdBtn.setTextSize(18);
rdBtn.setButtonDrawable(null);
rdBtn.setPadding(dpToPx(getActivity(), 30), 0, 0, 0);
rdBtn.setTextColor(getResources().getColor(R.color.onboarding_text_color));
rdBtn.setBackgroundDrawable(
getResources().getDrawable(R.drawable.radiobutton_background));
rdBtn.setText(templateUrl.getShortName());
rdBtn.setTextColor(
getActivity().getResources().getColor(R.color.onboarding_text_color));
rdBtn.setBackgroundDrawable(getActivity().getResources().getDrawable(
R.drawable.radiobutton_background));
rdBtn.setText(searchTextSpan);
rdBtn.setCompoundDrawablesWithIntrinsicBounds(
getResources().getDrawable(searchEngineEnum.getIcon()), null, null, null);
getActivity().getResources().getDrawable(searchEngineEnum.getIcon()), null,
null, null);
rdBtn.setCompoundDrawablePadding(dpToPx(getActivity(), 16));
radioGroup.addView(rdBtn);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,8 @@ public interface HighlightDialogListener {
void onLearnMore();
}

private static final List<Integer> highlightViews = Arrays.asList(
R.id.brave_stats_ads,
R.id.brave_stats_data_saved,
R.id.brave_stats_time,
R.id.brave_stats_time
);
private static final List<Integer> highlightViews = Arrays.asList(R.id.brave_stats_ads,
R.id.brave_stats_data_saved, R.id.brave_stats_time, R.id.widget_cardview);

private HighlightItem item;
private HighlightView highlightView;
Expand Down
Loading