diff options
author | cretin45 <cretin45@gmail.com> | 2016-03-08 12:18:15 -0800 |
---|---|---|
committer | Tom Powell <zifnab@zifnab06.net> | 2017-03-26 16:18:40 -0700 |
commit | 284aaa3fc20426f204c2d570bafa1954ab33eeee (patch) | |
tree | 5db02adf6a58d8fd45953524aab4902f54fcaaad /src/com | |
parent | 73c6eb4fcf1ea4acbec7ae94670c3d0a65166ca2 (diff) | |
download | android_packages_apps_Trebuchet-284aaa3fc20426f204c2d570bafa1954ab33eeee.tar.gz android_packages_apps_Trebuchet-284aaa3fc20426f204c2d570bafa1954ab33eeee.tar.bz2 android_packages_apps_Trebuchet-284aaa3fc20426f204c2d570bafa1954ab33eeee.zip |
Trebuchet: Highlight section being touched even when not scrolling scrubber
Issue-id: CYNGNOS-1882
Change-Id: Ief8b6593528c1a04a95ffaeea44c379659427fd8
Diffstat (limited to 'src/com')
4 files changed, 68 insertions, 2 deletions
diff --git a/src/com/android/launcher3/BaseRecyclerView.java b/src/com/android/launcher3/BaseRecyclerView.java index 77925b5b3..161b74e76 100644 --- a/src/com/android/launcher3/BaseRecyclerView.java +++ b/src/com/android/launcher3/BaseRecyclerView.java @@ -313,6 +313,8 @@ public abstract class BaseRecyclerView extends RecyclerView public void setFastScrollDragging(boolean dragging) {} + public void setPreviousSectionFastScrollFocused() {} + /** * Updates the bounds for the scrollbar. * <p>Override in each subclass of this base class. diff --git a/src/com/android/launcher3/BaseRecyclerViewScrubber.java b/src/com/android/launcher3/BaseRecyclerViewScrubber.java index 4299b4457..1e36cda4f 100644 --- a/src/com/android/launcher3/BaseRecyclerViewScrubber.java +++ b/src/com/android/launcher3/BaseRecyclerViewScrubber.java @@ -338,6 +338,10 @@ public class BaseRecyclerViewScrubber extends LinearLayout { } mBaseRecyclerView.setFastScrollDragging(mTouchingTrack); + if (mTouchingTrack) { + mBaseRecyclerView.setPreviousSectionFastScrollFocused(); + } + } } diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java index a736f7770..61a89628d 100644 --- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java +++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java @@ -73,6 +73,9 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. private int mGridTheme; + + private AlphabeticalAppsList.SectionInfo mFocusedSection; + /** * ViewHolder for each icon. */ @@ -536,6 +539,8 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. boolean hideIconLabels = SettingsProvider.getBoolean(mLauncher, SettingsProvider.SETTINGS_UI_DRAWER_HIDE_ICON_LABELS, R.bool.preferences_interface_drawer_hide_icon_labels_default); + FastScrollFocusApplicator.setFastScrollDimmed(holder.mContent, false, false); + FastScrollFocusApplicator.setFastScrollFocused(holder.mContent, false, false); switch (holder.getItemViewType()) { case ICON_VIEW_TYPE: { AppInfo info = mApps.getAdapterItems().get(position).appInfo; @@ -545,7 +550,9 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. icon.setTextVisibility(!hideIconLabels); } icon.applyFromApplicationInfo(info); - icon.setFastScrollDimmed(mIconsDimmed, !mIconsDimmed); + FastScrollFocusApplicator.setFastScrollDimmed(icon, shouldDimPosition(position), + !mIconsDimmed); + FastScrollFocusApplicator.setFastScrollFocused(icon, false, !mIconsDimmed); break; } case PREDICTION_ICON_VIEW_TYPE: { @@ -556,6 +563,11 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. icon.setTextVisibility(!hideIconLabels); } icon.applyFromApplicationInfo(info); + FastScrollFocusApplicator.setFastScrollDimmed(icon, shouldDimPosition(position), + !mIconsDimmed); + FastScrollFocusApplicator.setFastScrollFocused(icon, false, !mIconsDimmed); + + mRemoteFolderManager.onBindViewHolder(holder, info); break; } case EMPTY_SEARCH_VIEW_TYPE: @@ -576,7 +588,42 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. searchView.setVisibility(View.GONE); } break; + case CUSTOM_PREDICTED_APPS_HEADER_VIEW_TYPE: { + TextView title = (TextView) holder.mContent.findViewById(R.id.title); + title.setTextColor(mAllAppsTextColor); + FastScrollFocusApplicator.setFastScrollDimmed(holder.mContent, + shouldDimPosition(position), !mIconsDimmed); + FastScrollFocusApplicator.setFastScrollFocused(holder.mContent, false, !mIconsDimmed); + + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) holder.mContent.getLayoutParams(); + mCustomPredictedAppsHeaderHeight = holder.mContent.getHeight() + + lp.topMargin + lp.bottomMargin; + break; + } + case CUSTOM_PREDICTED_APPS_FOOTER_VIEW_TYPE: + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) holder.mContent.getLayoutParams(); + mCustomPredictedAppsFooterHeight = holder.mContent.getHeight() + + lp.topMargin + lp.bottomMargin; + } + } + + private boolean shouldDimPosition(int position) { + if (mFocusedSection != null && mIconsDimmed) { + if (position >= mFocusedSection.firstAppItem.position && + position < mFocusedSection.firstAppItem.position + + mFocusedSection.numApps) { + return false; + } } + return mIconsDimmed; + } + + public int getCustomPredictedAppsOffset(int rowIndex) { + int offset = mCustomPredictedAppsHeaderHeight; + if (rowIndex > 0) offset += mCustomPredictedAppsFooterHeight; + return offset; } @Override @@ -597,6 +644,11 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter. } } + public void setFocusedSection( + AlphabeticalAppsList.SectionInfo focusedSection) { + mFocusedSection = focusedSection; + } + public void setGridTheme(int gridTheme) { mGridTheme = gridTheme; int sectionTextColorId = mGridTheme == AllAppsContainerView.GRID_THEME_DARK ? diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 6c853a037..0cb778067 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -434,7 +434,10 @@ public class AllAppsRecyclerView extends BaseRecyclerView private void setSectionFastScrollFocused(int position) { if (mPrevFastScrollFocusedSection != null) { - for (int i = 0; i < mPrevFastScrollFocusedSection.numApps; i++) { + ((AllAppsGridAdapter)getAdapter()).setFocusedSection(mPrevFastScrollFocusedSection); + int size = mPrevFastScrollFocusedSection.numApps + + mPrevFastScrollFocusedSection.numOtherViews; + for (int i = 0; i < size; i++) { int sectionPosition = position+i; final ViewHolder vh = findViewHolderForAdapterPosition(sectionPosition); if (vh != null && @@ -449,6 +452,11 @@ public class AllAppsRecyclerView extends BaseRecyclerView } } + @Override + public void setPreviousSectionFastScrollFocused() { + setSectionFastScrollFocused(mPrevFastScrollFocusedPosition); + } + private void setSectionFastScrollDimmed(int position, boolean dimmed, boolean animate) { if (mPrevFastScrollFocusedSection != null) { for (int i = 0; i < mPrevFastScrollFocusedSection.numApps; i++) { |