diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-04 00:41:00 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-04 00:41:00 +0000 |
commit | 725bf3e2372b8ab29e521e864d28770fdf2c0443 (patch) | |
tree | d094f43841ac9dc9c54fd96ffd940b6f71f8ba39 /adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java | |
parent | 190c25efdbd5a5bdbb41a2818cf39a05d0ea9be0 (diff) | |
parent | 7b99dc653ed133fef81d0423fee87d45299097e2 (diff) | |
download | AdServices-android13-mainline-ipsec-release.tar.gz |
Snap for 9254005 from 7b99dc653ed133fef81d0423fee87d45299097e2 to mainline-ipsec-releaseaml_ips_331910010aml_ips_331312000aml_ips_331310000android13-mainline-ipsec-release
Change-Id: Id77860bb313cd5104abdea4a778d197a1db28861
Diffstat (limited to 'adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java')
-rw-r--r-- | adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java b/adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java index 652ff5c4e9..7b86933e23 100644 --- a/adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java +++ b/adservices/apk/java/com/android/adservices/ui/settings/viewadatpors/AppsListViewAdapter.java @@ -15,6 +15,7 @@ */ package com.android.adservices.ui.settings.viewadatpors; +import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; @@ -31,11 +32,11 @@ import com.android.adservices.api.R; import com.android.adservices.service.consent.App; import com.android.adservices.ui.settings.fragments.AdServicesSettingsAppsFragment; import com.android.adservices.ui.settings.fragments.AdServicesSettingsBlockedAppsFragment; -import com.android.adservices.ui.settings.viewmodels.AppsViewModel; import com.google.common.collect.ImmutableList; import java.util.Objects; +import java.util.function.Function; /** * ViewAdapter to handle data binding for the list of {@link App}s on {@link @@ -43,14 +44,19 @@ import java.util.Objects; * AdServicesSettingsBlockedAppsFragment}. */ public class AppsListViewAdapter extends RecyclerView.Adapter { - - private final AppsViewModel mViewModel; + private final Context mContext; + private final Function<App, View.OnClickListener> mGetOnclickListener; private final LiveData<ImmutableList<App>> mAppsList; private final boolean mIsBlockedAppsList; - public AppsListViewAdapter(AppsViewModel viewModel, boolean isBlockedAppsList) { - mViewModel = viewModel; - mAppsList = isBlockedAppsList ? viewModel.getBlockedApps() : viewModel.getApps(); + public AppsListViewAdapter( + Context context, + LiveData<ImmutableList<App>> appsList, + Function<App, View.OnClickListener> getOnclickListener, + boolean isBlockedAppsList) { + mContext = context; + mAppsList = appsList; + mGetOnclickListener = getOnclickListener; mIsBlockedAppsList = isBlockedAppsList; } @@ -58,15 +64,18 @@ public class AppsListViewAdapter extends RecyclerView.Adapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false); - return new AppsViewHolder(view); + return new com.android.adservices.ui.settings.viewadatpors.AppsListViewAdapter + .AppsViewHolder(view); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - ((AppsViewHolder) holder) + ((com.android.adservices.ui.settings.viewadatpors.AppsListViewAdapter.AppsViewHolder) + holder) .initAppItem( + mContext, + mGetOnclickListener, Objects.requireNonNull(mAppsList.getValue()).get(position), - mViewModel, mIsBlockedAppsList); } @@ -82,7 +91,6 @@ public class AppsListViewAdapter extends RecyclerView.Adapter { /** ViewHolder to display the text for an app item */ public static class AppsViewHolder extends RecyclerView.ViewHolder { - private final TextView mAppTextView; private final Button mOptionButtonView; private final ImageView mImageView; @@ -94,32 +102,28 @@ public class AppsListViewAdapter extends RecyclerView.Adapter { mImageView = itemView.findViewById(R.id.app_icon); } - /** Set the human readable string for the app and listener for block app logic. */ - public void initAppItem(App app, AppsViewModel viewModel, boolean mIsBlockedAppsListItem) { - prepareAppName(app, viewModel); - prepareAppImageView(app, viewModel); + /** Set the human readable string for the app and listener for block/unblock app logic. */ + public void initAppItem( + Context context, + Function<App, View.OnClickListener> getOnclickListener, + App app, + boolean mIsBlockedAppsListItem) { + prepareAppName(app, context); + prepareAppImageView(app, context); if (mIsBlockedAppsListItem) { mOptionButtonView.setText(R.string.settingsUI_unblock_app_title); - mOptionButtonView.setOnClickListener( - view -> { - viewModel.restoreAppConsentButtonClickHandler(app); - }); } else { mOptionButtonView.setText(R.string.settingsUI_block_app_title); - mOptionButtonView.setOnClickListener( - view -> { - viewModel.revokeAppConsentButtonClickHandler(app); - }); } + mOptionButtonView.setOnClickListener(getOnclickListener.apply(app)); } - private void prepareAppName(App app, AppsViewModel viewModel) { - mAppTextView.setText( - app.getAppDisplayName(viewModel.getApplication().getPackageManager())); + private void prepareAppName(App app, Context context) { + mAppTextView.setText(app.getAppDisplayName(context.getPackageManager())); } - private void prepareAppImageView(App app, AppsViewModel viewModel) { - Drawable appIcon = app.getAppIcon(viewModel.getApplication().getApplicationContext()); + private void prepareAppImageView(App app, Context context) { + Drawable appIcon = app.getAppIcon(context); if (appIcon != null) { mImageView.setImageDrawable(appIcon); } |