package openfoodfacts.github.scrachx.openfood.views.holders; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import openfoodfacts.github.scrachx.openfood.R; import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient; public class HistoryScanHolder extends RecyclerView.ViewHolder { public CardView cv; public TextView txtTitle; public TextView txtBarcode; public TextView txtBrands; public ImageView imgProduct; public ImageButton imgShare; public Activity mActivity; public HistoryScanHolder(final View itemView, final String productUrl, Activity activity) { super(itemView); cv = (CardView) itemView.findViewById(R.id.cardViewHistory); txtTitle = (TextView) itemView.findViewById(R.id.titleHistory); txtBarcode = (TextView) itemView.findViewById(R.id.barcodeHistory); txtBrands = (TextView) itemView.findViewById(R.id.brandsHistory); imgProduct = (ImageView) itemView.findViewById(R.id.imgHistoryProduct); imgShare = (ImageButton) itemView.findViewById(R.id.iconShareHistory); mActivity = activity; imgShare.setOnClickListener(view -> { String url = " " + productUrl + txtBarcode.getText(); Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType("text/plain"); String shareBody = itemView.getResources().getString(R.string.msg_share) + url; String shareSub = "\n\n"; sharingIntent.putExtra(Intent.EXTRA_SUBJECT, shareSub); sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody); itemView.getContext().startActivity(Intent.createChooser(sharingIntent, "Share using")); }); itemView.setOnClickListener(v -> { ConnectivityManager cm = (ConnectivityManager) v.getContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); if(isConnected) { OpenFoodAPIClient api = new OpenFoodAPIClient(mActivity); api.getProduct(txtBarcode.getText().toString(), (Activity) v.getContext()); } }); } }