diff options
-rw-r--r-- | res/layout/all_apps.xml | 6 | ||||
-rw-r--r-- | res/layout/all_apps_search_container.xml | 6 | ||||
-rw-r--r-- | res/values-sw720dp/styles.xml | 1 | ||||
-rw-r--r-- | res/values/styles.xml | 1 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherCallbacks.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/allapps/AllAppsTransitionController.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/allapps/AlphabeticalAppsList.java | 12 | ||||
-rw-r--r-- | src/com/android/launcher3/dynamicui/ExtractedColors.java | 20 | ||||
-rw-r--r-- | src/com/android/launcher3/testing/LauncherExtension.java | 3 |
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() { } } } |