Index: chrome/android/java_staging/src/org/chromium/chrome/browser/gsa/GSAState.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/gsa/GSAState.java |
deleted file mode 100644 |
index e7b483e93bde906961d856d4e4d3dfdd27d21f3c..0000000000000000000000000000000000000000 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/gsa/GSAState.java |
+++ /dev/null |
@@ -1,126 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.gsa; |
- |
-import android.accounts.Account; |
-import android.content.Context; |
-import android.content.Intent; |
-import android.content.pm.PackageManager; |
-import android.content.pm.ResolveInfo; |
-import android.text.TextUtils; |
- |
-import org.chromium.base.PackageUtils; |
-import org.chromium.sync.signin.ChromeSigninController; |
- |
-/** |
- * A class responsible fore representing the current state of Chrome's integration with GSA. |
- */ |
-public class GSAState { |
- private static final int GSA_VERSION_FOR_DOCUMENT = 300401021; |
- private static final int GMS_CORE_VERSION = 6577010; |
- |
- static final String SEARCH_INTENT_PACKAGE = "com.google.android.googlequicksearchbox"; |
- private static final String GMS_CORE_PACKAGE = "com.google.android.gms"; |
- |
- static final String SEARCH_INTENT_ACTION = |
- "com.google.android.googlequicksearchbox.TEXT_ASSIST"; |
- |
- /** |
- * An instance of GSAState class encapsulating knowledge about the current status. |
- */ |
- private static GSAState sGSAState; |
- |
- /** |
- * The application context to use. |
- */ |
- private final Context mContext; |
- |
- /** |
- * Caches the result of a computation on whether GSA is available. |
- */ |
- private Boolean mGsaAvailable; |
- |
- /** |
- * The Google account being used by GSA according to the latest update we have received. |
- * This may be null. |
- */ |
- private String mGsaAccount; |
- |
- /** |
- * Returns the singleton instance of GSAState and creates one if necessary. |
- * @param context The context to use. |
- * @return The state object. |
- */ |
- public static GSAState getInstance(Context context) { |
- if (sGSAState == null) { |
- sGSAState = new GSAState(context); |
- } |
- return sGSAState; |
- } |
- |
- /* Private constructor, since this is a singleton */ |
- private GSAState(Context context) { |
- mContext = context.getApplicationContext(); |
- } |
- |
- /** |
- * Update the GSA logged in account name and whether we are in GSA holdback. |
- * @param gsaAccount The email address of the logged in account. |
- */ |
- public void setGsaAccount(String gsaAccount) { |
- mGsaAccount = gsaAccount; |
- } |
- |
- /** |
- * @return Whether GSA and Chrome are logged in with the same account. The situation where |
- * both are logged out is not considered a match. |
- */ |
- public boolean doesGsaAccountMatchChrome() { |
- Account chromeUser = ChromeSigninController.get(mContext).getSignedInUser(); |
- return chromeUser != null && !TextUtils.isEmpty(mGsaAccount) && TextUtils.equals( |
- chromeUser.name, mGsaAccount); |
- } |
- |
- /** |
- * @return The current GSA account. May return null if GSA hasn't replied yet. |
- */ |
- public String getGsaAccount() { |
- return mGsaAccount; |
- } |
- |
- /** |
- * This is used to check whether GSA package is available to handle search requests and if |
- * the Chrome experiment to do so is enabled. |
- * @return Whether the search intent this class creates will resolve to an activity. |
- */ |
- public boolean isGsaAvailable() { |
- if (mGsaAvailable != null) return mGsaAvailable; |
- mGsaAvailable = false; |
- PackageManager pm = mContext.getPackageManager(); |
- Intent searchIntent = new Intent(SEARCH_INTENT_ACTION); |
- searchIntent.setPackage(GSAState.SEARCH_INTENT_PACKAGE); |
- ResolveInfo resolveInfo = pm.resolveActivity(searchIntent, 0); |
- if (resolveInfo == null || resolveInfo.activityInfo == null) { |
- mGsaAvailable = false; |
- } else if (!isPackageAboveVersion(SEARCH_INTENT_PACKAGE, GSA_VERSION_FOR_DOCUMENT) |
- || !isPackageAboveVersion(GMS_CORE_PACKAGE, GMS_CORE_VERSION)) { |
- mGsaAvailable = false; |
- } else { |
- mGsaAvailable = true; |
- } |
- return mGsaAvailable; |
- } |
- |
- /** |
- * Check whether the given package meets min requirements for using full document mode. |
- * @param packageName The package name we are inquiring about. |
- * @param minVersion The minimum version for the package to be. |
- * @return Whether the package exists on the device and its version is higher than the minimum |
- * required version. |
- */ |
- private boolean isPackageAboveVersion(String packageName, int minVersion) { |
- return PackageUtils.getPackageVersion(mContext, packageName) >= minVersion; |
- } |
-} |