| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.omaha; | 5 package org.chromium.chrome.browser.omaha; |
| 6 | 6 |
| 7 import android.animation.Animator; | 7 import android.animation.Animator; |
| 8 import android.animation.AnimatorListenerAdapter; | 8 import android.animation.AnimatorListenerAdapter; |
| 9 import android.animation.AnimatorSet; | 9 import android.animation.AnimatorSet; |
| 10 import android.animation.ObjectAnimator; | 10 import android.animation.ObjectAnimator; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 /** | 38 /** |
| 39 * Contains logic for whether the update menu item should be shown, whether the
update toolbar badge | 39 * Contains logic for whether the update menu item should be shown, whether the
update toolbar badge |
| 40 * should be shown, and UMA logging for the update menu item. | 40 * should be shown, and UMA logging for the update menu item. |
| 41 */ | 41 */ |
| 42 public class UpdateMenuItemHelper { | 42 public class UpdateMenuItemHelper { |
| 43 private static final String TAG = "UpdateMenuItemHelper"; | 43 private static final String TAG = "UpdateMenuItemHelper"; |
| 44 | 44 |
| 45 // VariationsAssociatedData configs | 45 // VariationsAssociatedData configs |
| 46 private static final String FIELD_TRIAL_NAME = "UpdateMenuItem"; | 46 private static final String FIELD_TRIAL_NAME = "UpdateMenuItem"; |
| 47 private static final String ENABLED_VALUE = "true"; | 47 private static final String ENABLED_VALUE = "true"; |
| 48 private static final String ENABLE_UPDATE_MENU_ITEM = "enable_update_menu_it
em"; | |
| 49 private static final String ENABLE_UPDATE_BADGE = "enable_update_badge"; | |
| 50 private static final String SHOW_SUMMARY = "show_summary"; | |
| 51 private static final String USE_NEW_FEATURES_SUMMARY = "use_new_features_sum
mary"; | |
| 52 private static final String CUSTOM_SUMMARY = "custom_summary"; | 48 private static final String CUSTOM_SUMMARY = "custom_summary"; |
| 53 | 49 |
| 54 // UMA constants for logging whether the menu item was clicked. | 50 // UMA constants for logging whether the menu item was clicked. |
| 55 private static final int ITEM_NOT_CLICKED = 0; | 51 private static final int ITEM_NOT_CLICKED = 0; |
| 56 private static final int ITEM_CLICKED_INTENT_LAUNCHED = 1; | 52 private static final int ITEM_CLICKED_INTENT_LAUNCHED = 1; |
| 57 private static final int ITEM_CLICKED_INTENT_FAILED = 2; | 53 private static final int ITEM_CLICKED_INTENT_FAILED = 2; |
| 58 private static final int ITEM_CLICKED_BOUNDARY = 3; | 54 private static final int ITEM_CLICKED_BOUNDARY = 3; |
| 59 | 55 |
| 60 // UMA constants for logging whether Chrome was updated after the menu item
was clicked. | 56 // UMA constants for logging whether Chrome was updated after the menu item
was clicked. |
| 61 private static final int UPDATED = 0; | 57 private static final int UPDATED = 0; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 } | 90 } |
| 95 return sInstance; | 91 return sInstance; |
| 96 } | 92 } |
| 97 } | 93 } |
| 98 | 94 |
| 99 /** | 95 /** |
| 100 * Checks if the {@link OmahaClient} knows about an update. | 96 * Checks if the {@link OmahaClient} knows about an update. |
| 101 * @param activity The current {@link ChromeActivity}. | 97 * @param activity The current {@link ChromeActivity}. |
| 102 */ | 98 */ |
| 103 public void checkForUpdateOnBackgroundThread(final ChromeActivity activity)
{ | 99 public void checkForUpdateOnBackgroundThread(final ChromeActivity activity)
{ |
| 104 if (!getBooleanParam(ENABLE_UPDATE_MENU_ITEM) | |
| 105 && !getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_ITEM) | |
| 106 && !getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_BADGE)
) { | |
| 107 return; | |
| 108 } | |
| 109 | |
| 110 ThreadUtils.assertOnUiThread(); | 100 ThreadUtils.assertOnUiThread(); |
| 111 | 101 |
| 112 if (mAlreadyCheckedForUpdates) { | 102 if (mAlreadyCheckedForUpdates) { |
| 113 if (activity.isActivityDestroyed()) return; | 103 if (activity.isActivityDestroyed()) return; |
| 114 activity.onCheckForUpdate(mUpdateAvailable); | 104 activity.onCheckForUpdate(mUpdateAvailable); |
| 115 return; | 105 return; |
| 116 } | 106 } |
| 117 | 107 |
| 118 mAlreadyCheckedForUpdates = true; | 108 mAlreadyCheckedForUpdates = true; |
| 119 | 109 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 | 143 |
| 154 /** | 144 /** |
| 155 * @param activity The current {@link ChromeActivity}. | 145 * @param activity The current {@link ChromeActivity}. |
| 156 * @return Whether the update menu item should be shown. | 146 * @return Whether the update menu item should be shown. |
| 157 */ | 147 */ |
| 158 public boolean shouldShowMenuItem(ChromeActivity activity) { | 148 public boolean shouldShowMenuItem(ChromeActivity activity) { |
| 159 if (getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_ITEM)) { | 149 if (getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_ITEM)) { |
| 160 return true; | 150 return true; |
| 161 } | 151 } |
| 162 | 152 |
| 163 if (!getBooleanParam(ENABLE_UPDATE_MENU_ITEM)) { | |
| 164 return false; | |
| 165 } | |
| 166 | |
| 167 return updateAvailable(activity); | 153 return updateAvailable(activity); |
| 168 } | 154 } |
| 169 | 155 |
| 170 /** | 156 /** |
| 171 * @param context The current {@link Context}. | 157 * @param context The current {@link Context}. |
| 172 * @return The string to use for summary text or the empty string if no summ
ary should be shown. | 158 * @return The string to use for summary text or the empty string if no summ
ary should be shown. |
| 173 */ | 159 */ |
| 174 public String getMenuItemSummaryText(Context context) { | 160 public String getMenuItemSummaryText(Context context) { |
| 175 if (!getBooleanParam(SHOW_SUMMARY) && !getBooleanParam(USE_NEW_FEATURES_
SUMMARY) | |
| 176 && !getBooleanParam(CUSTOM_SUMMARY)) { | |
| 177 return ""; | |
| 178 } | |
| 179 | |
| 180 String customSummary = getStringParamValue(CUSTOM_SUMMARY); | 161 String customSummary = getStringParamValue(CUSTOM_SUMMARY); |
| 181 if (!TextUtils.isEmpty(customSummary)) { | 162 if (!TextUtils.isEmpty(customSummary)) { |
| 182 return customSummary; | 163 return customSummary; |
| 183 } | 164 } |
| 184 | 165 |
| 185 if (getBooleanParam(USE_NEW_FEATURES_SUMMARY)) { | |
| 186 return context.getResources().getString(R.string.menu_update_summary
_new_features); | |
| 187 } | |
| 188 | |
| 189 return context.getResources().getString(R.string.menu_update_summary_def
ault); | 166 return context.getResources().getString(R.string.menu_update_summary_def
ault); |
| 190 } | 167 } |
| 191 | 168 |
| 192 /** | 169 /** |
| 193 * @param activity The current {@link ChromeActivity}. | 170 * @param activity The current {@link ChromeActivity}. |
| 194 * @return Whether the update badge should be shown in the toolbar. | 171 * @return Whether the update badge should be shown in the toolbar. |
| 195 */ | 172 */ |
| 196 public boolean shouldShowToolbarBadge(ChromeActivity activity) { | 173 public boolean shouldShowToolbarBadge(ChromeActivity activity) { |
| 197 if (getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_BADGE)) { | 174 if (getBooleanParam(ChromeSwitches.FORCE_SHOW_UPDATE_MENU_BADGE)) { |
| 198 return true; | 175 return true; |
| 199 } | 176 } |
| 200 | 177 |
| 201 // The badge is hidden if the update menu item has been clicked until th
ere is an | 178 // The badge is hidden if the update menu item has been clicked until th
ere is an |
| 202 // even newer version of Chrome available. | 179 // even newer version of Chrome available. |
| 203 String latestVersionWhenClicked = | 180 String latestVersionWhenClicked = |
| 204 PrefServiceBridge.getInstance().getLatestVersionWhenClickedUpdat
eMenuItem(); | 181 PrefServiceBridge.getInstance().getLatestVersionWhenClickedUpdat
eMenuItem(); |
| 205 if (!getBooleanParam(ENABLE_UPDATE_BADGE) | 182 if (TextUtils.equals(latestVersionWhenClicked, mLatestVersion)) { |
| 206 || TextUtils.equals(latestVersionWhenClicked, mLatestVersion)) { | |
| 207 return false; | 183 return false; |
| 208 } | 184 } |
| 209 | 185 |
| 210 return updateAvailable(activity); | 186 return updateAvailable(activity); |
| 211 } | 187 } |
| 212 | 188 |
| 213 /** | 189 /** |
| 214 * Handles a click on the update menu item. | 190 * Handles a click on the update menu item. |
| 215 * @param activity The current {@link ChromeActivity}. | 191 * @param activity The current {@link ChromeActivity}. |
| 216 */ | 192 */ |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 return statFs.getAvailableBytes() / (1024 * 1024); | 388 return statFs.getAvailableBytes() / (1024 * 1024); |
| 413 } | 389 } |
| 414 | 390 |
| 415 @SuppressWarnings("deprecation") | 391 @SuppressWarnings("deprecation") |
| 416 private static long getSize(StatFs statFs) { | 392 private static long getSize(StatFs statFs) { |
| 417 int blockSize = statFs.getBlockSize(); | 393 int blockSize = statFs.getBlockSize(); |
| 418 int availableBlocks = statFs.getAvailableBlocks(); | 394 int availableBlocks = statFs.getAvailableBlocks(); |
| 419 return (blockSize * availableBlocks) / (1024 * 1024); | 395 return (blockSize * availableBlocks) / (1024 * 1024); |
| 420 } | 396 } |
| 421 } | 397 } |
| OLD | NEW |