Removing unnecessary abstraction of AdapterProvider

Bug: 266605714
Test: Presubmit
Change-Id: Ib5ccecc33e66e61cb27d083591c8fb7c13a96698
This commit is contained in:
Sunny Goyal
2023-01-25 10:24:18 -08:00
parent 1342862d07
commit 24db190a13
6 changed files with 64 additions and 121 deletions

View File

@@ -27,18 +27,16 @@ import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.R;
import com.android.launcher3.allapps.search.SearchAdapterProvider;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.views.ActivityContext;
import java.util.Arrays;
/**
* Adapter for all the apps.
*
@@ -65,8 +63,7 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER;
public static final int VIEW_TYPE_MASK_ICON = VIEW_TYPE_ICON;
protected final BaseAdapterProvider[] mAdapterProviders;
protected final SearchAdapterProvider<?> mAdapterProvider;
/**
* ViewHolder for each icon.
@@ -146,7 +143,7 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
private final int mExtraHeight;
public BaseAllAppsAdapter(T activityContext, LayoutInflater inflater,
AlphabeticalAppsList<T> apps, BaseAdapterProvider[] adapterProviders) {
AlphabeticalAppsList<T> apps, SearchAdapterProvider<?> adapterProvider) {
Resources res = activityContext.getResources();
mActivityContext = activityContext;
mApps = apps;
@@ -154,7 +151,7 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
mOnIconClickListener = mActivityContext.getItemOnClickListener();
mAdapterProviders = adapterProviders;
mAdapterProvider = adapterProvider;
mExtraHeight = res.getDimensionPixelSize(R.dimen.all_apps_height_extra);
}
@@ -216,9 +213,8 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
return new ViewHolder(mLayoutInflater.inflate(
R.layout.work_apps_paused, parent, false));
default:
BaseAdapterProvider adapterProvider = getAdapterProvider(viewType);
if (adapterProvider != null) {
return adapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType);
if (mAdapterProvider.isViewSupported(viewType)) {
return mAdapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType);
}
throw new RuntimeException("Unexpected view type" + viewType);
}
@@ -250,18 +246,12 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
((WorkEduCard) holder.itemView).setPosition(position);
break;
default:
BaseAdapterProvider adapterProvider = getAdapterProvider(holder.getItemViewType());
if (adapterProvider != null) {
adapterProvider.onBindView(holder, position);
if (mAdapterProvider.isViewSupported(holder.getItemViewType())) {
mAdapterProvider.onBindView(holder, position);
}
}
}
@Override
public void onViewRecycled(@NonNull ViewHolder holder) {
super.onViewRecycled(holder);
}
@Override
public boolean onFailedToRecycleView(ViewHolder holder) {
// Always recycle and we will reset the view when it is bound
@@ -283,10 +273,4 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
return (viewType & viewTypeMask) != 0;
}
@Nullable
protected BaseAdapterProvider getAdapterProvider(int viewType) {
return Arrays.stream(mAdapterProviders).filter(
adapterProvider -> adapterProvider.isViewSupported(viewType)).findFirst().orElse(
null);
}
}