Commit 91588a9c authored by Natalie Chouinard's avatar Natalie Chouinard Committed by Commit Bot

Migrate Update Menu preferences to prefs.h

Migrate Update Menu Item preferences to use PrefServiceBridge generic
methods, making use of the prefs.h enums.

Bug: 1016957
Change-Id: I3b37e1251e5c51d0bc08e4cfd0ae05245c2d052f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1885103
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Reviewed-by: default avatarJoshua Pawlicki <waffles@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711036}
parent f1ba9cd4
......@@ -28,6 +28,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateInteractionSource;
import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState;
import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateStatus;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.content_public.browser.UiThreadTaskTraits;
......@@ -212,7 +213,7 @@ public class UpdateMenuItemHelper {
UpdateStatusProvider.getInstance().startIntentUpdate(
activity, UpdateInteractionSource.FROM_MENU, false /* newTask */);
recordItemClickedHistogram(ITEM_CLICKED_INTENT_LAUNCHED);
PrefServiceBridge.getInstance().setClickedUpdateMenuItem(true);
PrefServiceBridge.getInstance().setBoolean(Pref.CLICKED_UPDATE_MENU_ITEM, true);
} catch (ActivityNotFoundException e) {
Log.e(TAG, "Failed to launch Activity for: %s", mStatus.updateUrl);
recordItemClickedHistogram(ITEM_CLICKED_INTENT_FAILED);
......@@ -241,8 +242,8 @@ public class UpdateMenuItemHelper {
// If the update menu item is showing because it was forced on through about://flags
// then mLatestVersion may be null.
if (mStatus.latestVersion != null) {
PrefServiceBridge.getInstance().setLatestVersionWhenClickedUpdateMenuItem(
mStatus.latestVersion);
PrefServiceBridge.getInstance().setString(
Pref.LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM, mStatus.latestVersion);
}
handleStateChanged();
......@@ -286,7 +287,8 @@ public class UpdateMenuItemHelper {
// The badge is hidden if the update menu item has been clicked until there is an
// even newer version of Chrome available.
showBadge |= !TextUtils.equals(
PrefServiceBridge.getInstance().getLatestVersionWhenClickedUpdateMenuItem(),
PrefServiceBridge.getInstance().getString(
Pref.LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM),
mStatus.latestUnsupportedVersion);
if (showBadge) {
......@@ -338,7 +340,8 @@ public class UpdateMenuItemHelper {
// The badge is hidden if the update menu item has been clicked until there is an
// even newer version of Chrome available.
showBadge |= !TextUtils.equals(
PrefServiceBridge.getInstance().getLatestVersionWhenClickedUpdateMenuItem(),
PrefServiceBridge.getInstance().getString(
Pref.LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM),
mStatus.latestUnsupportedVersion);
if (showBadge) {
......@@ -404,12 +407,12 @@ public class UpdateMenuItemHelper {
private void recordUpdateHistogram() {
assert mStatus != null;
if (PrefServiceBridge.getInstance().getClickedUpdateMenuItem()) {
if (PrefServiceBridge.getInstance().getBoolean(Pref.CLICKED_UPDATE_MENU_ITEM)) {
RecordHistogram.recordEnumeratedHistogram(
"GoogleUpdate.MenuItem.ActionTakenAfterItemClicked",
mStatus.updateState == UpdateState.UPDATE_AVAILABLE ? NOT_UPDATED : UPDATED,
UPDATED_BOUNDARY);
PrefServiceBridge.getInstance().setClickedUpdateMenuItem(false);
PrefServiceBridge.getInstance().setBoolean(Pref.CLICKED_UPDATE_MENU_ITEM, false);
}
}
......
......@@ -878,38 +878,6 @@ public class PrefServiceBridge {
return PrefServiceBridgeJni.get().isMetricsReportingManaged(PrefServiceBridge.this);
}
/**
* @param clicked Whether the update menu item was clicked. The preference is stored to
* facilitate logging whether Chrome was updated after a click on the menu item.
*/
public void setClickedUpdateMenuItem(boolean clicked) {
PrefServiceBridgeJni.get().setClickedUpdateMenuItem(PrefServiceBridge.this, clicked);
}
/**
* @return Whether the update menu item was clicked.
*/
public boolean getClickedUpdateMenuItem() {
return PrefServiceBridgeJni.get().getClickedUpdateMenuItem(PrefServiceBridge.this);
}
/**
* @param version The latest version of Chrome available when the update menu item
* was clicked.
*/
public void setLatestVersionWhenClickedUpdateMenuItem(String version) {
PrefServiceBridgeJni.get().setLatestVersionWhenClickedUpdateMenuItem(
PrefServiceBridge.this, version);
}
/**
* @return The latest version of Chrome available when the update menu item was clicked.
*/
public String getLatestVersionWhenClickedUpdateMenuItem() {
return PrefServiceBridgeJni.get().getLatestVersionWhenClickedUpdateMenuItem(
PrefServiceBridge.this);
}
/**
* @return The stored download default directory.
*/
......@@ -1049,10 +1017,6 @@ public class PrefServiceBridge {
boolean isMetricsReportingEnabled(PrefServiceBridge caller);
void setMetricsReportingEnabled(PrefServiceBridge caller, boolean enabled);
boolean isMetricsReportingManaged(PrefServiceBridge caller);
void setClickedUpdateMenuItem(PrefServiceBridge caller, boolean clicked);
boolean getClickedUpdateMenuItem(PrefServiceBridge caller);
void setLatestVersionWhenClickedUpdateMenuItem(PrefServiceBridge caller, String version);
String getLatestVersionWhenClickedUpdateMenuItem(PrefServiceBridge caller);
void getChromeAcceptLanguages(PrefServiceBridge caller, List<LanguageItem> list);
void getUserAcceptLanguages(PrefServiceBridge caller, List<String> list);
void updateUserAcceptLanguages(PrefServiceBridge caller, String language, boolean add);
......
......@@ -545,37 +545,6 @@ static jboolean JNI_PrefServiceBridge_IsMetricsReportingManaged(
metrics::prefs::kMetricsReportingEnabled);
}
static void JNI_PrefServiceBridge_SetClickedUpdateMenuItem(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
jboolean clicked) {
GetPrefService()->SetBoolean(prefs::kClickedUpdateMenuItem, clicked);
}
static jboolean JNI_PrefServiceBridge_GetClickedUpdateMenuItem(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
return GetPrefService()->GetBoolean(prefs::kClickedUpdateMenuItem);
}
static void JNI_PrefServiceBridge_SetLatestVersionWhenClickedUpdateMenuItem(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
const JavaParamRef<jstring>& version) {
GetPrefService()->SetString(
prefs::kLatestVersionWhenClickedUpdateMenuItem,
ConvertJavaStringToUTF8(env, version));
}
static ScopedJavaLocalRef<jstring>
JNI_PrefServiceBridge_GetLatestVersionWhenClickedUpdateMenuItem(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
return ConvertUTF8ToJavaString(
env, GetPrefService()->GetString(
prefs::kLatestVersionWhenClickedUpdateMenuItem));
}
static jboolean JNI_PrefServiceBridge_GetBrowsingDataDeletionPreference(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
......
......@@ -50,6 +50,8 @@ enum Pref {
SUPERVISED_USER_CUSTODIAN_EMAIL,
SUPERVISED_USER_SECOND_CUSTODIAN_NAME,
SUPERVISED_USER_SECOND_CUSTODIAN_EMAIL,
CLICKED_UPDATE_MENU_ITEM,
LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM,
// PREF_NUM_PREFS must be the last entry.
PREF_NUM_PREFS
};
......@@ -89,6 +91,8 @@ const char* const kPrefsExposedToJava[] = {
prefs::kSupervisedUserCustodianEmail,
prefs::kSupervisedUserSecondCustodianName,
prefs::kSupervisedUserSecondCustodianEmail,
prefs::kClickedUpdateMenuItem,
prefs::kLatestVersionWhenClickedUpdateMenuItem,
};
#endif // CHROME_BROWSER_ANDROID_PREFERENCES_PREFS_H_
......@@ -84,6 +84,10 @@ TEST_F(PrefsTest, TestIndex) {
GetPrefName(SUPERVISED_USER_SECOND_CUSTODIAN_NAME));
EXPECT_EQ(prefs::kSupervisedUserSecondCustodianEmail,
GetPrefName(SUPERVISED_USER_SECOND_CUSTODIAN_EMAIL));
EXPECT_EQ(prefs::kClickedUpdateMenuItem,
GetPrefName(CLICKED_UPDATE_MENU_ITEM));
EXPECT_EQ(prefs::kLatestVersionWhenClickedUpdateMenuItem,
GetPrefName(LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM));
// If this check fails, a pref is missing a test case above.
EXPECT_EQ(Pref::PREF_NUM_PREFS, pref_count_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment