diff --git a/res/drawable/ic_star_rating.xml b/res/drawable/ic_star_rating.xml
deleted file mode 100644
index 4e34fa33e8..0000000000
--- a/res/drawable/ic_star_rating.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout/all_apps_discovery_item.xml b/res/layout/all_apps_discovery_item.xml
deleted file mode 100644
index 728283fc11..0000000000
--- a/res/layout/all_apps_discovery_item.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout/all_apps_discovery_loading_divider.xml b/res/layout/all_apps_discovery_loading_divider.xml
deleted file mode 100644
index 005847c541..0000000000
--- a/res/layout/all_apps_discovery_loading_divider.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
index 769f9ba084..2103106f2b 100644
--- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
+++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
@@ -43,8 +43,6 @@ import com.android.launcher3.allapps.AlphabeticalAppsList.AdapterItem;
import com.android.launcher3.anim.SpringAnimationHandler;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.discovery.AppDiscoveryAppInfo;
-import com.android.launcher3.discovery.AppDiscoveryItemView;
import com.android.launcher3.util.PackageManagerHelper;
import java.util.List;
@@ -72,17 +70,13 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter> mPredictedAppComponents = new ArrayList<>();
// The set of predicted apps resolved from the component names and the current set of apps
private final List mPredictedApps = new ArrayList<>();
- private final List mDiscoveredApps = new ArrayList<>();
// Is it the work profile app list.
private final boolean mIsWork;
@@ -293,10 +269,6 @@ public class AlphabeticalAppsList {
return (mSearchResults != null) && mFilteredApps.isEmpty();
}
- boolean shouldShowEmptySearch() {
- return hasNoFilteredResults() && !isAppDiscoveryRunning() && mDiscoveredApps.isEmpty();
- }
-
/**
* Sets the sorted list of filtered components.
*/
@@ -310,20 +282,6 @@ public class AlphabeticalAppsList {
return false;
}
- public void onAppDiscoverySearchUpdate(@Nullable AppDiscoveryItem app,
- @NonNull AppDiscoveryUpdateState state) {
- mAppDiscoveryUpdateState = state;
- switch (state) {
- case START:
- mDiscoveredApps.clear();
- break;
- case UPDATE:
- mDiscoveredApps.add(new AppDiscoveryAppInfo(app));
- break;
- }
- updateAdapterItems();
- }
-
private List processPredictedAppComponents(List> components) {
if (mComponentToAppMap.isEmpty()) {
// Apps have not been bound yet.
@@ -540,32 +498,13 @@ public class AlphabeticalAppsList {
}
if (hasFilter()) {
- if (isAppDiscoveryRunning() || mDiscoveredApps.size() > 0) {
- mAdapterItems.add(AdapterItem.asLoadingDivider(position++));
- // Append all app discovery results
- for (int i = 0; i < mDiscoveredApps.size(); i++) {
- AppDiscoveryAppInfo appDiscoveryAppInfo = mDiscoveredApps.get(i);
- if (appDiscoveryAppInfo.isRecent) {
- // already handled in getFilteredAppInfos()
- continue;
- }
- AdapterItem item = AdapterItem.asDiscoveryItem(position++,
- "", appDiscoveryAppInfo, appIndex++);
- mAdapterItems.add(item);
- }
-
- if (!isAppDiscoveryRunning()) {
- mAdapterItems.add(AdapterItem.asMarketSearch(position++));
- }
+ // Append the search market item
+ if (hasNoFilteredResults()) {
+ mAdapterItems.add(AdapterItem.asEmptySearch(position++));
} else {
- // Append the search market item
- if (hasNoFilteredResults()) {
- mAdapterItems.add(AdapterItem.asEmptySearch(position++));
- } else {
- mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
- }
- mAdapterItems.add(AdapterItem.asMarketSearch(position++));
+ mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
}
+ mAdapterItems.add(AdapterItem.asMarketSearch(position++));
}
if (mNumAppsPerRow != 0) {
@@ -635,11 +574,6 @@ public class AlphabeticalAppsList {
== PackageManager.PERMISSION_GRANTED);
}
- public boolean isAppDiscoveryRunning() {
- return mAppDiscoveryUpdateState == AppDiscoveryUpdateState.START
- || mAppDiscoveryUpdateState == AppDiscoveryUpdateState.UPDATE;
- }
-
private List getFiltersAppInfos() {
if (mSearchResults == null) {
return mApps;
@@ -651,17 +585,6 @@ public class AlphabeticalAppsList {
result.add(match);
}
}
-
- // adding recently used instant apps
- if (mDiscoveredApps.size() > 0) {
- for (int i = 0; i < mDiscoveredApps.size(); i++) {
- AppDiscoveryAppInfo discoveryAppInfo = mDiscoveredApps.get(i);
- if (discoveryAppInfo.isRecent) {
- result.add(discoveryAppInfo);
- }
- }
- Collections.sort(result, mAppNameComparator);
- }
return result;
}
diff --git a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java
index bf03a0ee1a..e83904fe86 100644
--- a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java
+++ b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java
@@ -28,8 +28,6 @@ import android.widget.TextView.OnEditorActionListener;
import com.android.launcher3.ExtendedEditText;
import com.android.launcher3.Launcher;
import com.android.launcher3.Utilities;
-import com.android.launcher3.discovery.AppDiscoveryItem;
-import com.android.launcher3.discovery.AppDiscoveryUpdateState;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.PackageManagerHelper;
@@ -164,18 +162,6 @@ public class AllAppsSearchBarController
* Called when the search results should be cleared.
*/
void clearSearchResult();
-
- /**
- * Called when the app discovery is providing an update of search, which can either be
- * START for starting a new discovery,
- * UPDATE for providing a new search result, can be called multiple times,
- * END for indicating the end of results.
- *
- * @param app result item if UPDATE, else null
- * @param app the update state, START, UPDATE or END
- */
- void onAppDiscoverySearchUpdate(@Nullable AppDiscoveryItem app,
- @NonNull AppDiscoveryUpdateState state);
}
}
\ No newline at end of file
diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
index ed41f133a2..6f07eebc6c 100644
--- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
+++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
@@ -39,8 +39,6 @@ import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsContainerView;
import com.android.launcher3.allapps.AlphabeticalAppsList;
import com.android.launcher3.allapps.SearchUiManager;
-import com.android.launcher3.discovery.AppDiscoveryItem;
-import com.android.launcher3.discovery.AppDiscoveryUpdateState;
import com.android.launcher3.graphics.TintedDrawableSpan;
import com.android.launcher3.util.ComponentKey;
@@ -187,15 +185,6 @@ public class AppsSearchContainerLayout extends FrameLayout
mAppsView.onClearSearchResult();
}
- @Override
- public void onAppDiscoverySearchUpdate(
- @Nullable AppDiscoveryItem app, @NonNull AppDiscoveryUpdateState state) {
- if (!mLauncher.isDestroyed()) {
- mApps.onAppDiscoverySearchUpdate(app, state);
- notifyResultChanged();
- }
- }
-
private void notifyResultChanged() {
mElevationController.reset();
mAppsView.onSearchResultsChanged();
diff --git a/src/com/android/launcher3/config/BaseFlags.java b/src/com/android/launcher3/config/BaseFlags.java
index 2d0e6303b1..059b04e27a 100644
--- a/src/com/android/launcher3/config/BaseFlags.java
+++ b/src/com/android/launcher3/config/BaseFlags.java
@@ -44,8 +44,6 @@ abstract class BaseFlags {
public static final boolean QSB_ON_FIRST_SCREEN = true;
// When enabled the all-apps icon is not added to the hotseat.
public static final boolean NO_ALL_APPS_ICON = true;
- // When enabled, app discovery will be enabled if service is implemented
- public static final boolean DISCOVERY_ENABLED = false;
// When true, custom widgets are loaded using CustomWidgetParser.
public static final boolean ENABLE_CUSTOM_WIDGETS = false;
diff --git a/src/com/android/launcher3/discovery/AppDiscoveryAppInfo.java b/src/com/android/launcher3/discovery/AppDiscoveryAppInfo.java
deleted file mode 100644
index 26e5066bda..0000000000
--- a/src/com/android/launcher3/discovery/AppDiscoveryAppInfo.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.launcher3.discovery;
-
-import android.content.ComponentName;
-import android.content.Intent;
-import android.graphics.Color;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
-import com.android.launcher3.AppInfo;
-import com.android.launcher3.LauncherSettings;
-import com.android.launcher3.ShortcutInfo;
-import com.android.launcher3.graphics.ColorExtractor;
-
-public class AppDiscoveryAppInfo extends AppInfo {
-
- public final boolean showAsDiscoveryItem;
- public final boolean isInstantApp;
- public final boolean isRecent;
- public final float rating;
- public final long reviewCount;
- public final @NonNull String publisher;
- public final @NonNull Intent installIntent;
- public final @NonNull Intent launchIntent;
- public final @Nullable String priceFormatted;
-
- public AppDiscoveryAppInfo(AppDiscoveryItem item) {
- this.intent = item.isInstantApp ? item.launchIntent : item.installIntent;
- this.title = item.title;
- this.iconBitmap = item.bitmap;
- this.iconColor = iconBitmap == null ? Color.TRANSPARENT :
- ColorExtractor.findDominantColorByHue(item.bitmap);
- this.usingLowResIcon = false;
- this.isInstantApp = item.isInstantApp;
- this.isRecent = item.isRecent;
- this.rating = item.starRating;
- this.showAsDiscoveryItem = true;
- this.publisher = item.publisher != null ? item.publisher : "";
- this.priceFormatted = item.price;
- this.componentName = new ComponentName(item.packageName, "");
- this.installIntent = item.installIntent;
- this.launchIntent = item.launchIntent;
- this.reviewCount = item.reviewCount;
- this.itemType = LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT;
- }
-
- @Override
- public ShortcutInfo makeShortcut() {
- if (!isDragAndDropSupported()) {
- throw new RuntimeException("DnD is currently not supported for discovered store apps");
- }
- return super.makeShortcut();
- }
-
- public boolean isDragAndDropSupported() {
- return isInstantApp;
- }
-
-}
diff --git a/src/com/android/launcher3/discovery/AppDiscoveryItem.java b/src/com/android/launcher3/discovery/AppDiscoveryItem.java
deleted file mode 100644
index 2e48b25e06..0000000000
--- a/src/com/android/launcher3/discovery/AppDiscoveryItem.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.launcher3.discovery;
-
-import android.content.Intent;
-import android.graphics.Bitmap;
-
-/**
- * This class represents the model for a discovered app via app discovery.
- * It holds all information for one result retrieved from an app discovery service.
- */
-public class AppDiscoveryItem {
-
- public final String packageName;
- public final boolean isInstantApp;
- public final boolean isRecent;
- public final float starRating;
- public final long reviewCount;
- public final Intent launchIntent;
- public final Intent installIntent;
- public final CharSequence title;
- public final String publisher;
- public final String price;
- public final Bitmap bitmap;
-
- public AppDiscoveryItem(String packageName,
- boolean isInstantApp,
- boolean isRecent,
- float starRating,
- long reviewCount,
- CharSequence title,
- String publisher,
- Bitmap bitmap,
- String price,
- Intent launchIntent,
- Intent installIntent) {
- this.packageName = packageName;
- this.isInstantApp = isInstantApp;
- this.isRecent = isRecent;
- this.starRating = starRating;
- this.reviewCount = reviewCount;
- this.launchIntent = launchIntent;
- this.installIntent = installIntent;
- this.title = title;
- this.publisher = publisher;
- this.price = price;
- this.bitmap = bitmap;
- }
-
-}
diff --git a/src/com/android/launcher3/discovery/AppDiscoveryItemView.java b/src/com/android/launcher3/discovery/AppDiscoveryItemView.java
deleted file mode 100644
index 809d7249db..0000000000
--- a/src/com/android/launcher3/discovery/AppDiscoveryItemView.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.launcher3.discovery;
-
-import android.content.Context;
-import android.support.annotation.NonNull;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import com.android.launcher3.R;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-public class AppDiscoveryItemView extends RelativeLayout {
-
- private static boolean SHOW_REVIEW_COUNT = false;
-
- private ImageView mImage;
- private TextView mTitle;
- private TextView mRatingText;
- private RatingView mRatingView;
- private TextView mReviewCount;
- private TextView mPrice;
- private OnLongClickListener mOnLongClickListener;
-
- public AppDiscoveryItemView(Context context) {
- this(context, null);
- }
-
- public AppDiscoveryItemView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public AppDiscoveryItemView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
- this.mImage = (ImageView) findViewById(R.id.image);
- this.mTitle = (TextView) findViewById(R.id.title);
- this.mRatingText = (TextView) findViewById(R.id.rating);
- this.mRatingView = (RatingView) findViewById(R.id.rating_view);
- this.mPrice = (TextView) findViewById(R.id.price);
- this.mReviewCount = (TextView) findViewById(R.id.review_count);
- }
-
- public void init(OnClickListener clickListener,
- AccessibilityDelegate accessibilityDelegate,
- OnLongClickListener onLongClickListener) {
- setOnClickListener(clickListener);
- mImage.setOnClickListener(clickListener);
- setAccessibilityDelegate(accessibilityDelegate);
- mOnLongClickListener = onLongClickListener;
- }
-
- public void apply(@NonNull AppDiscoveryAppInfo info) {
- setTag(info);
- mImage.setTag(info);
- mImage.setImageBitmap(info.iconBitmap);
- mImage.setOnLongClickListener(info.isDragAndDropSupported() ? mOnLongClickListener : null);
- mTitle.setText(info.title);
- mPrice.setText(info.priceFormatted != null ? info.priceFormatted : "");
- mReviewCount.setVisibility(SHOW_REVIEW_COUNT ? View.VISIBLE : View.GONE);
- if (info.rating >= 0) {
- mRatingText.setText(new DecimalFormat("#.0").format(info.rating));
- mRatingView.setRating(info.rating);
- mRatingView.setVisibility(View.VISIBLE);
- String reviewCountFormatted = NumberFormat.getInstance().format(info.reviewCount);
- mReviewCount.setText("(" + reviewCountFormatted + ")");
- } else {
- // if we don't have a rating
- mRatingView.setVisibility(View.GONE);
- mRatingText.setText("");
- mReviewCount.setText("");
- }
- }
-}
diff --git a/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java b/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java
deleted file mode 100644
index 0700a1023f..0000000000
--- a/src/com/android/launcher3/discovery/AppDiscoveryUpdateState.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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.launcher3.discovery;
-
-public enum AppDiscoveryUpdateState {
- START, UPDATE, END
-}
diff --git a/src/com/android/launcher3/discovery/RatingView.java b/src/com/android/launcher3/discovery/RatingView.java
deleted file mode 100644
index 8fe63d6ba3..0000000000
--- a/src/com/android/launcher3/discovery/RatingView.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.launcher3.discovery;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.drawable.ClipDrawable;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.view.Gravity;
-import android.view.View;
-
-import com.android.launcher3.R;
-
-/**
- * A simple rating view that shows stars with a rating from 0-5.
- */
-public class RatingView extends View {
-
- private static final float WIDTH_FACTOR = 0.9f;
- private static final int MAX_LEVEL = 10000;
- private static final int MAX_STARS = 5;
-
- private final Drawable mStarDrawable;
- private final int mColorGray;
- private final int mColorHighlight;
-
- private float rating;
-
- public RatingView(Context context) {
- this(context, null);
- }
-
- public RatingView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public RatingView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- mStarDrawable = getResources().getDrawable(R.drawable.ic_star_rating, null);
- mColorGray = 0x1E000000;
- mColorHighlight = 0x8A000000;
- }
-
- public void setRating(float rating) {
- this.rating = Math.min(Math.max(rating, 0), MAX_STARS);
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- drawStars(canvas, MAX_STARS, mColorGray);
- drawStars(canvas, rating, mColorHighlight);
- }
-
- private void drawStars(Canvas canvas, float stars, int color) {
- int fullWidth = getLayoutParams().width;
- int cellWidth = fullWidth / MAX_STARS;
- int starWidth = (int) (cellWidth * WIDTH_FACTOR);
- int padding = cellWidth - starWidth;
- int fullStars = (int) stars;
- float partialStarFactor = stars - fullStars;
-
- for (int i = 0; i < fullStars; i++) {
- int x = i * cellWidth + padding;
- Drawable star = mStarDrawable.getConstantState().newDrawable().mutate();
- star.setTint(color);
- star.setBounds(x, padding, x + starWidth, padding + starWidth);
- star.draw(canvas);
- }
- if (partialStarFactor > 0f) {
- int x = fullStars * cellWidth + padding;
- ClipDrawable star = new ClipDrawable(mStarDrawable,
- Gravity.LEFT, ClipDrawable.HORIZONTAL);
- star.setTint(color);
- star.setLevel((int) (MAX_LEVEL * partialStarFactor));
- star.setBounds(x, padding, x + starWidth, padding + starWidth);
- star.draw(canvas);
- }
- }
-}