summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout/all_apps.xml6
-rw-r--r--res/layout/all_apps_search_container.xml6
-rw-r--r--res/values-sw720dp/styles.xml1
-rw-r--r--res/values/styles.xml1
-rw-r--r--src/com/android/launcher3/Launcher.java13
-rw-r--r--src/com/android/launcher3/LauncherCallbacks.java2
-rw-r--r--src/com/android/launcher3/allapps/AllAppsTransitionController.java4
-rw-r--r--src/com/android/launcher3/allapps/AlphabeticalAppsList.java12
-rw-r--r--src/com/android/launcher3/dynamicui/ExtractedColors.java20
-rw-r--r--src/com/android/launcher3/testing/LauncherExtension.java3
10 files changed, 46 insertions, 22 deletions
diff --git a/res/layout/all_apps.xml b/res/layout/all_apps.xml
index 7d97f2564..f3539dcfa 100644
--- a/res/layout/all_apps.xml
+++ b/res/layout/all_apps.xml
@@ -59,13 +59,15 @@
<!-- Fast scroller popup -->
<TextView
style="@style/FastScrollerPopup"
- android:layout_below="@+id/search_container"
+ android:layout_alignTop="@+id/apps_list_view"
android:id="@+id/fast_scroller_popup"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/container_fastscroll_popup_margin" />
+ <!-- Note: we are reusing/repurposing a system attribute for search layout, because of a
+ platform bug, which prevents using custom attributes in <include> tag -->
<include
- layout="@layout/all_apps_search_container"
+ layout="?android:attr/keyboardLayout"
android:id="@+id/search_container" />
</com.android.launcher3.allapps.AllAppsRecyclerViewContainerView>
diff --git a/res/layout/all_apps_search_container.xml b/res/layout/all_apps_search_container.xml
index 6addee1e2..c79360f66 100644
--- a/res/layout/all_apps_search_container.xml
+++ b/res/layout/all_apps_search_container.xml
@@ -15,28 +15,28 @@
-->
<com.android.launcher3.allapps.search.AppsSearchContainerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/search_container"
android:layout_width="match_parent"
android:layout_height="@dimen/all_apps_search_bar_height"
android:layout_gravity="center|top"
android:gravity="center|bottom"
- android:id="@+id/search_container"
android:saveEnabled="false">
<com.android.launcher3.ExtendedEditText
android:id="@+id/search_box_input"
android:layout_width="match_parent"
android:layout_height="@dimen/all_apps_search_bar_field_height"
- android:background="@android:color/transparent"
android:layout_gravity="bottom"
+ android:background="@android:color/transparent"
android:focusableInTouchMode="true"
android:gravity="center"
+ android:hint="@string/all_apps_search_bar_hint"
android:imeOptions="actionSearch|flagNoExtractUi"
android:inputType="text|textNoSuggestions|textCapWords"
android:maxLines="1"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
- android:hint="@string/all_apps_search_bar_hint"
android:textColorHint="@drawable/all_apps_search_hint"
android:textSize="16sp" />
</com.android.launcher3.allapps.search.AppsSearchContainerLayout> \ No newline at end of file
diff --git a/res/values-sw720dp/styles.xml b/res/values-sw720dp/styles.xml
index de809b105..bc65a0e9a 100644
--- a/res/values-sw720dp/styles.xml
+++ b/res/values-sw720dp/styles.xml
@@ -26,6 +26,7 @@
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:colorEdgeEffect">?android:attr/textColorSecondary</item>
+ <item name="android:keyboardLayout">@layout/all_apps_search_container</item>
</style>
<!-- Workspace -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c3d11e446..e2d9ff486 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -25,6 +25,7 @@
<item name="android:windowShowWallpaper">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:colorEdgeEffect">#FF757575</item>
+ <item name="android:keyboardLayout">@layout/all_apps_search_container</item>
</style>
<style name="LauncherTheme" parent="@style/BaseLauncherTheme"></style>
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index c96c2a7b9..25995dd1a 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -212,6 +212,8 @@ public class Launcher extends BaseActivity
private static int NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS = 5;
@Thunk static int NEW_APPS_ANIMATION_DELAY = 500;
+ private final ExtractedColors mExtractedColors = new ExtractedColors();
+
@Thunk Workspace mWorkspace;
private View mLauncherView;
@Thunk DragLayer mDragLayer;
@@ -260,7 +262,6 @@ public class Launcher extends BaseActivity
private LauncherModel mModel;
private ModelWriter mModelWriter;
private IconCache mIconCache;
- private ExtractedColors mExtractedColors;
private LauncherAccessibilityDelegate mAccessibilityDelegate;
private Handler mHandler = new Handler();
private boolean mIsResumeFromActionScreenOff;
@@ -392,11 +393,10 @@ public class Launcher extends BaseActivity
// LauncherModel load.
mPaused = false;
- mLauncherView = getLayoutInflater().inflate(R.layout.launcher, null);
+ mLauncherView = LayoutInflater.from(this).inflate(R.layout.launcher, null);
setupViews();
mDeviceProfile.layout(this, false /* notifyListeners */);
- mExtractedColors = new ExtractedColors();
loadExtractedColorsAndColorItems();
mPopupDataProvider = new PopupDataProvider(this);
@@ -465,12 +465,7 @@ public class Launcher extends BaseActivity
@Override
public void onExtractedColorsChanged() {
loadExtractedColorsAndColorItems();
- if (mAllAppsController != null) {
- mAllAppsController.onExtractedColorsChanged();
- }
- if (mLauncherCallbacks != null) {
- mLauncherCallbacks.onExtractedColorsChanged();
- }
+ mExtractedColors.notifyChange();
}
public ExtractedColors getExtractedColors() {
diff --git a/src/com/android/launcher3/LauncherCallbacks.java b/src/com/android/launcher3/LauncherCallbacks.java
index ea4aeb929..d66b14c7d 100644
--- a/src/com/android/launcher3/LauncherCallbacks.java
+++ b/src/com/android/launcher3/LauncherCallbacks.java
@@ -97,6 +97,4 @@ public interface LauncherCallbacks {
int getSearchBarHeight();
boolean shouldShowDiscoveryBounce();
-
- void onExtractedColorsChanged();
}
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index 121ce4ce1..9c1854a36 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -42,7 +42,7 @@ import com.android.launcher3.util.TouchController;
* closer to top or closer to the page indicator.
*/
public class AllAppsTransitionController implements TouchController, VerticalPullDetector.Listener,
- View.OnLayoutChangeListener {
+ View.OnLayoutChangeListener, ExtractedColors.OnChangeListener {
private static final String TAG = "AllAppsTrans";
private static final boolean DBG = false;
@@ -107,6 +107,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
mEvaluator = new ArgbEvaluator();
mAllAppsBackgroundColor = Themes.getAttrColor(l, android.R.attr.colorPrimary);
+ mLauncher.getExtractedColors().addOnChangeListener(this);
}
@Override
@@ -288,6 +289,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
mScrimView.setProgress(progress);
}
+ @Override
public void onExtractedColorsChanged() {
if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
if (mGradientView != null) {
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index f291a80ee..047441985 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -195,6 +195,8 @@ public class AlphabeticalAppsList {
private int mNumPredictedAppsPerRow;
private int mNumAppRowsInAdapter;
+ private boolean mHasSearchDivider = true;
+
public AlphabeticalAppsList(Context context) {
mLauncher = Launcher.getLauncher(context);
mIndexer = new AlphabeticIndexCompat(context);
@@ -343,6 +345,10 @@ public class AlphabeticalAppsList {
onAppsUpdated();
}
+ public void disableSearchDivider() {
+ mHasSearchDivider = false;
+ }
+
/**
* Updates internals when the set of apps are updated.
*/
@@ -429,8 +435,10 @@ public class AlphabeticalAppsList {
}
}
- // Add the search divider
- mAdapterItems.add(AdapterItem.asSearchDivider(position++));
+ if (mHasSearchDivider) {
+ // Add the search divider
+ mAdapterItems.add(AdapterItem.asSearchDivider(position++));
+ }
// Process the predicted app components
mPredictedApps.clear();
diff --git a/src/com/android/launcher3/dynamicui/ExtractedColors.java b/src/com/android/launcher3/dynamicui/ExtractedColors.java
index 3c4aba130..108a21f40 100644
--- a/src/com/android/launcher3/dynamicui/ExtractedColors.java
+++ b/src/com/android/launcher3/dynamicui/ExtractedColors.java
@@ -26,6 +26,7 @@ import android.util.Log;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
+import java.util.ArrayList;
import java.util.Arrays;
/**
@@ -80,6 +81,7 @@ public class ExtractedColors {
private static final String COLOR_SEPARATOR = ",";
+ private final ArrayList<OnChangeListener> mListeners = new ArrayList<>();
private final int[] mColors;
public ExtractedColors() {
@@ -171,4 +173,22 @@ public class ExtractedColors {
setColorAtIndex(idx, wallpaperPalette == null
? DEFAULT_VALUES[idx] : wallpaperPalette.getVibrantColor(DEFAULT_VALUES[idx]));
}
+
+ public void addOnChangeListener(OnChangeListener listener) {
+ mListeners.add(listener);
+ }
+
+ public void notifyChange() {
+ for (OnChangeListener listener : mListeners) {
+ listener.onExtractedColorsChanged();
+ }
+ }
+
+ /**
+ * Interface for listening for extracted color changes
+ */
+ public interface OnChangeListener {
+
+ void onExtractedColorsChanged();
+ }
}
diff --git a/src/com/android/launcher3/testing/LauncherExtension.java b/src/com/android/launcher3/testing/LauncherExtension.java
index 36df22cd5..8d4351884 100644
--- a/src/com/android/launcher3/testing/LauncherExtension.java
+++ b/src/com/android/launcher3/testing/LauncherExtension.java
@@ -219,8 +219,5 @@ public class LauncherExtension extends Launcher {
public boolean shouldShowDiscoveryBounce() {
return false;
}
-
- @Override
- public void onExtractedColorsChanged() { }
}
}