package com.mobapphome.mahads; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import android.support.v7.widget.PopupMenu; import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.view.animation.RotateAnimation; import android.widget.BaseAdapter; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.mobapphome.mahads.tools.Constants; import com.mobapphome.mahads.tools.Utils; import com.mobapphome.mahads.mahfragments.TextViewFontSetter; import com.mobapphome.mahads.types.Program; import java.util.List; class ProgramItmAdptPrograms extends BaseAdapter implements View.OnClickListener { private final String TAG = ProgramItmAdptPrograms.class.getName(); private List<Object> items; private static LayoutInflater inflater = null; String urlRootOnServer; String fontName; public ProgramItmAdptPrograms(Context context, List<Object> items, String urlRootOnServer, String fontName) { inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.items = items; this.urlRootOnServer = urlRootOnServer; this.fontName = fontName; } public int getCount() { return items.size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } @Override public void onClick(View arg0) { } public View getView(int position, View convertView, ViewGroup parent) { Object obj = items.get(position); if (obj instanceof Program) { final Program currProgram = (Program) obj; final String pckgName = currProgram.getUri().trim(); // For hole view for click---------------------------------- final View vi = inflater.inflate(R.layout.program_item_programs, null); vi.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { if (Utils.checkPackageIfExists(vi.getContext(), pckgName)) { PackageManager pack = vi.getContext().getPackageManager(); Intent app = pack.getLaunchIntentForPackage(pckgName); app.putExtra(Constants.MAH_ADS_INTERNAL_CALLED, true); vi.getContext().startActivity(app); } else { if (!pckgName.isEmpty()) { Utils.showMarket(inflater.getContext(), pckgName); } } } }); final TextView tvProgramNewText = ((TextView)vi.findViewById(R.id.tvNewText)); tvProgramNewText.setVisibility(View.GONE); String freshnestStr = currProgram.getFreshnestStr(inflater.getContext()); if (freshnestStr != null) { tvProgramNewText.setTextSize(TypedValue.COMPLEX_UNIT_SP, currProgram.getFreshnestStrTextSizeInSP(inflater.getContext())); tvProgramNewText.setText(freshnestStr); RotateAnimation animRotate = (RotateAnimation) AnimationUtils.loadAnimation(inflater.getContext(), R.anim.tv_rotate); animRotate.setFillAfter(true); //For the textview to remain at the same place after the rotation tvProgramNewText.startAnimation(animRotate); tvProgramNewText.setVisibility(View.VISIBLE); } else { tvProgramNewText.setVisibility(View.GONE); } TextView nameTV = (TextView) vi.findViewById(R.id.tvProgramNameMAHAds); TextView descTV = (TextView) vi.findViewById(R.id.tvProgramDescMAHAds); ImageView ivImg = (ImageView) vi.findViewById(R.id.ivProgramImgMAHAds); TextView tvOpenGooglePLay = (TextView) vi.findViewById(R.id.tvOpenInstallMAHAds); if (Utils.checkPackageIfExists(vi.getContext(), pckgName)) { tvOpenGooglePLay.setText(vi.getContext().getResources().getString(R.string.cmnd_verb_mah_ads_open_program)); } else { tvOpenGooglePLay.setText(vi.getContext().getResources().getString(R.string.cmnd_verb_mah_ads_install_program)); } // Setting all values in listview nameTV.setText(currProgram.getName()); descTV.setText(currProgram.getDesc()); Log.i(Constants.LOG_TAG_MAH_ADS, Utils.getUrlOfImage(urlRootOnServer, currProgram.getImg())); Drawable imgNotFoundDrawable = ContextCompat.getDrawable(inflater.getContext(), R.drawable.img_not_found); imgNotFoundDrawable.setColorFilter(ContextCompat.getColor(inflater.getContext(), R.color.mah_ads_no_image_color), PorterDuff.Mode.SRC_IN); Glide.with(vi.getContext()) .load(Utils.getUrlOfImage(urlRootOnServer, currProgram.getImg())) //.diskCacheStrategy(DiskCacheStrategy.ALL) .centerCrop() .placeholder(R.drawable.img_place_holder_normal) .crossFade() .error(imgNotFoundDrawable) .into(ivImg); ImageView ivMore = (ImageButton) vi.findViewById(R.id.btnOverflowMAHAds); ivMore.setColorFilter(ContextCompat.getColor(inflater.getContext(), R.color.mah_ads_all_and_btn_text_color)); ivMore.setImageResource(R.drawable.ic_more_vert_grey600_24dp); ivMore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu popup = new PopupMenu(vi.getContext(), v); // Inflating the Popup using xml file popup.getMenuInflater().inflate(R.menu.program_popup_menu, popup.getMenu()); // registering popup with OnMenuItemClickListener popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.popupMenuOpenOnGoogleP) { if (!pckgName.isEmpty()) { Utils.showMarket(inflater.getContext(), pckgName); } } return true; } }); popup.show();// showing popup menu } }); TextViewFontSetter.setFontTextView((TextView) vi.findViewById(R.id.tvNewText), fontName); TextViewFontSetter.setFontTextView(nameTV, fontName); TextViewFontSetter.setFontTextView(descTV, fontName); TextViewFontSetter.setFontTextView(tvOpenGooglePLay, fontName); return vi; } else { return null; } } }