package com.yunbao.share.adapters; import android.content.Context; import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.recyclerview.widget.RecyclerView; import com.pdlive.shayu.R; import com.yunbao.share.ICallback; import com.yunbao.share.bean.ShareBuilder; import com.yunbao.share.platform.FacebookShare; import com.yunbao.share.platform.Instagram; import com.yunbao.share.platform.Line; import com.yunbao.share.platform.MessengerShare; import com.yunbao.share.platform.TwitterShare; import com.yunbao.share.platform.WhatsApp; import java.io.File; import java.util.ArrayList; import java.util.List; public class ShareAppAdapter extends RecyclerView.Adapter { private Context mContext; private List list; public ShareAppAdapter(Context mContext) { list = new ArrayList<>(); this.mContext = mContext; } public void setList(List list) { this.list = list; notifyDataSetChanged(); } @NonNull @Override public AppViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new AppViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_share_app, parent, false)); } @Override public void onBindViewHolder(@NonNull AppViewHolder holder, int position) { ShareBuilder builder = list.get(position); switch (builder.getType()) { case ShareBuilder.APP_FACEBOOK: holder.setData(builder, R.mipmap.icon_share_facebook, R.string.dialog_share_app_facebook); break; case ShareBuilder.APP_LINE: holder.setData(builder, R.mipmap.icon_share_line, R.string.dialog_share_app_line); break; case ShareBuilder.APP_TWITTER: holder.setData(builder, R.mipmap.icon_share_twitter, R.string.dialog_share_app_twitter); break; case ShareBuilder.APP_WHATSAPP: holder.setData(builder, R.mipmap.icon_share_whatsapp, R.string.dialog_share_app_whatsapp); break; case ShareBuilder.APP_MESSENGER: holder.setData(builder, R.mipmap.icon_share_messenger, R.string.dialog_share_app_messenger); break; case ShareBuilder.APP_INSTAGRAM: holder.setData(builder, R.mipmap.icon_share_instagram, R.string.dialog_share_app_instagram); break; } } @Override public int getItemCount() { return list.size(); } public static class AppViewHolder extends RecyclerView.ViewHolder { ImageView icon; TextView title; public AppViewHolder(@NonNull View itemView) { super(itemView); icon = itemView.findViewById(R.id.share_app_icon); title = itemView.findViewById(R.id.share_app_name); } public void setData(ShareBuilder bean, @DrawableRes int iconId, @StringRes int appName) { icon.setImageResource(iconId); title.setText(appName); itemView.setOnClickListener(v -> { switch (bean.getType()) { case ShareBuilder.APP_FACEBOOK: new FacebookShare(itemView.getContext()).share(bean, new ShareCallback()); break; case ShareBuilder.APP_LINE: new Line(itemView.getContext()).share(bean, new ShareCallback()); break; case ShareBuilder.APP_TWITTER: new TwitterShare(itemView.getContext()).share(bean, new ShareCallback()); break; case ShareBuilder.APP_WHATSAPP: new WhatsApp(itemView.getContext()).share(bean, new ShareCallback()); break; case ShareBuilder.APP_MESSENGER: new MessengerShare(itemView.getContext()).share(bean, new ShareCallback()); break; case ShareBuilder.APP_INSTAGRAM: new Instagram(itemView.getContext()).share(bean, new ShareCallback()); break; } }); } private static class ShareCallback implements ICallback { @Override public void onSuccess() { } @Override public void onFailure() { } } } }