Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ova.studio.anime.wallpaper.adapter;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Color;
- import android.os.Build;
- import android.os.Handler;
- import android.support.v4.app.FragmentActivity;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.facebook.ads.Ad;
- import com.facebook.ads.AdChoicesView;
- import com.facebook.ads.AdError;
- import com.facebook.ads.AdIconView;
- import com.facebook.ads.AdSettings;
- import com.facebook.ads.AudienceNetworkAds;
- import com.facebook.ads.MediaView;
- import com.facebook.ads.NativeAd;
- import com.facebook.ads.NativeAdListener;
- import com.github.vivchar.viewpagerindicator.ViewPagerIndicator;
- import com.ova.studio.anime.wallpaper.R;
- import com.ova.studio.anime.wallpaper.config.AdConfig;
- import com.ova.studio.anime.wallpaper.config.Config;
- import com.ova.studio.anime.wallpaper.entity.Category;
- import com.ova.studio.anime.wallpaper.entity.Slide;
- import com.ova.studio.anime.wallpaper.entity.User;
- import com.ova.studio.anime.wallpaper.entity.Wallpaper;
- import com.ova.studio.anime.wallpaper.manager.FavoritesStorage;
- import com.ova.studio.anime.wallpaper.manager.PrefManager;
- import com.ova.studio.anime.wallpaper.ui.WallpaperActivity;
- import com.ova.studio.anime.wallpaper.ui.view.ClickableViewPager;
- import com.squareup.picasso.Picasso;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- import java.util.Random;
- import com.google.android.gms.ads.InterstitialAd;
- import static com.facebook.FacebookSdk.getApplicationContext;
- /**
- * Created by hsn on 27/11/2017.
- */
- public class WallpaperAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
- private boolean favorites = false;
- private List<Wallpaper> wallpaperList = new ArrayList<>();
- private List<Category> categoryList = new ArrayList<>();
- private List<User> userList;
- public Activity activity;
- private List<Slide> slideList = new ArrayList<>();
- private SlideAdapter slide_adapter;
- private LinearLayoutManager linearLayoutManager;
- private FollowAdapter followAdapter;
- private LinearLayoutManager linearLayoutManagerCategories;
- private CategoryAdapter categoryAdapter;
- private InterstitialAd mInterstitialAdDownload;
- private boolean premium;
- int random;
- public WallpaperAdapter(List<Wallpaper> wallpaperList, List<Slide> slideList, Activity activity) {
- this.wallpaperList = wallpaperList;
- this.slideList = slideList;
- this.activity = activity;
- }
- public WallpaperAdapter(List<Wallpaper> wallpaperList, List<Slide> slideList, FragmentActivity activity, boolean favorites) {
- this(wallpaperList, slideList, activity);
- this.favorites = favorites;
- }
- public WallpaperAdapter(List<Wallpaper> wallpaperList, List<Slide> slideList, FragmentActivity activity, List<User> userList) {
- this(wallpaperList, slideList, activity);
- this.userList = userList;
- this.categoryList = categoryList;
- }
- public WallpaperAdapter(List<Wallpaper> wallpaperList, List<Slide> slideList, FragmentActivity activity, List<User> userList, List<Category> categoryList) {
- this(wallpaperList, slideList, activity);
- this.userList = userList;
- this.categoryList = categoryList;
- }
- @Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- RecyclerView.ViewHolder viewHolder = null;
- LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- switch (viewType) {
- case 1: {
- View v1 = inflater.inflate(R.layout.item_wallpaper, parent, false);
- viewHolder = new WallpaperHolder(v1);
- break;
- }
- case 2: {
- View v2 = inflater.inflate(R.layout.item_slide, parent, false);
- viewHolder = new SlideHolder(v2);
- break;
- }
- case 3: {
- View v3 = inflater.inflate(R.layout.item_followings, parent, false);
- viewHolder = new FollowHolder(v3);
- break;
- }
- case 4: {
- View v4 = inflater.inflate(R.layout.item_categories, parent, false);
- viewHolder = new CategoriesHolder(v4);
- break;
- }
- case 5: {
- View v5 = inflater.inflate(R.layout.item_facebook_ads, parent, false);
- viewHolder = new FacebookNativeHolder(v5);
- break;
- }
- }
- return viewHolder;
- }
- @Override
- public int getItemViewType(int position) {
- if (wallpaperList.get(position) == null) {
- return 1;
- } else {
- return wallpaperList.get(position).getViewType();
- }
- }
- @Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder_parent, final int position) {
- switch (getItemViewType(position)) {
- case 1: {
- final WallpaperHolder holder = (WallpaperHolder) holder_parent;
- holder.relative_layout_wallpaper_item.setBackgroundColor(Color.parseColor(wallpaperList.get(position).getColor()));
- holder.linear_layout_wallpaper_item.setBackgroundColor(Color.parseColor(wallpaperList.get(position).getColor()));
- holder.text_view_wallpaper_item_title.setText(wallpaperList.get(position).getTitle());
- holder.text_view_wallpaper_item_user.setText(wallpaperList.get(position).getUser());
- Picasso.with(activity.getApplicationContext()).load(wallpaperList.get(position).getThumbnail()).placeholder(R.drawable.placeholder).into(holder.image_view_wallpaper_item);
- if (wallpaperList.get(position).getReview() != null) {
- if (wallpaperList.get(position).getReview()) {
- holder.text_view_review_wallpaper_item.setVisibility(View.VISIBLE);
- } else {
- holder.text_view_review_wallpaper_item.setVisibility(View.GONE);
- }
- }
- if (wallpaperList.get(position).getPremium() != null) {
- if (wallpaperList.get(position).getPremium()) {
- holder.image_view_item_wallpaper_premium.setVisibility(View.VISIBLE);
- } else {
- holder.image_view_item_wallpaper_premium.setVisibility(View.GONE);
- }
- }
- holder.linear_layout_wallpaper_item_global.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (!premium) {
- if (Config.Counter == 1){
- Config.Counter = 0;
- new AdConfig(activity);
- }
- else{
- Config.Counter ++;
- }
- }
- Intent intent = new Intent(activity, WallpaperActivity.class);
- intent.putExtra("id", wallpaperList.get(position).getId());
- intent.putExtra("title", wallpaperList.get(position).getTitle());
- intent.putExtra("comment", wallpaperList.get(position).getComment());
- intent.putExtra("thumbnail", wallpaperList.get(position).getThumbnail());
- intent.putExtra("image", wallpaperList.get(position).getImage());
- intent.putExtra("userid", wallpaperList.get(position).getUserid());
- intent.putExtra("wallpaper", wallpaperList.get(position).getWallpaper());
- intent.putExtra("color", wallpaperList.get(position).getColor());
- intent.putExtra("resolution", wallpaperList.get(position).getResolution());
- intent.putExtra("size", wallpaperList.get(position).getSize());
- intent.putExtra("user", wallpaperList.get(position).getUser());
- intent.putExtra("userimage", wallpaperList.get(position).getUserimage());
- intent.putExtra("comments", wallpaperList.get(position).getComments());
- intent.putExtra("type", wallpaperList.get(position).getType());
- intent.putExtra("extension", wallpaperList.get(position).getExtension());
- intent.putExtra("downloads", wallpaperList.get(position).getDownloads());
- intent.putExtra("premium", wallpaperList.get(position).getPremium());
- intent.putExtra("trusted", wallpaperList.get(position).getTrusted());
- activity.startActivity(intent);
- activity.overridePendingTransition(R.anim.enter, R.anim.exit);
- }
- });
- final FavoritesStorage storageFavorites = new FavoritesStorage(activity.getApplicationContext());
- List<Wallpaper> wallpapers = storageFavorites.loadFavorites();
- Boolean exist = false;
- if (wallpapers == null) {
- wallpapers = new ArrayList<>();
- }
- for (int i = 0; i < wallpapers.size(); i++) {
- if (wallpapers.get(i).getId().equals(wallpaperList.get(position).getId())) {
- exist = true;
- }
- }
- if (exist == false) {
- holder.image_view_fav_wallpaper_item.setImageResource(R.drawable.ic_fav);
- } else {
- holder.image_view_fav_wallpaper_item.setImageResource(R.drawable.ic_fav_done);
- }
- holder.image_view_fav_wallpaper_item.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List<Wallpaper> favorites_list = storageFavorites.loadFavorites();
- Boolean exist = false;
- if (favorites_list == null) {
- favorites_list = new ArrayList<>();
- }
- for (int i = 0; i < favorites_list.size(); i++) {
- if (favorites_list.get(i).getId().equals(wallpaperList.get(position).getId())) {
- exist = true;
- }
- }
- if (exist == false) {
- ArrayList<Wallpaper> audios = new ArrayList<Wallpaper>();
- for (int i = 0; i < favorites_list.size(); i++) {
- audios.add(favorites_list.get(i));
- }
- audios.add(wallpaperList.get(position));
- storageFavorites.storeAudio(audios);
- holder.image_view_fav_wallpaper_item.setImageResource(R.drawable.ic_fav_done);
- } else {
- ArrayList<Wallpaper> new_favorites = new ArrayList<Wallpaper>();
- for (int i = 0; i < favorites_list.size(); i++) {
- if (!favorites_list.get(i).getId().equals(wallpaperList.get(position).getId())) {
- new_favorites.add(favorites_list.get(i));
- }
- }
- if (favorites) {
- wallpaperList.remove(position);
- notifyDataSetChanged();
- }
- storageFavorites.storeAudio(new_favorites);
- holder.image_view_fav_wallpaper_item.setImageResource(R.drawable.ic_fav);
- }
- }
- });
- break;
- }
- case 2: {
- final SlideHolder holder = (SlideHolder) holder_parent;
- slide_adapter = new SlideAdapter(activity, slideList);
- holder.view_pager_slide.setAdapter(this.slide_adapter);
- holder.view_pager_slide.setOffscreenPageLimit(1);
- holder.view_pager_slide.setClipToPadding(false);
- holder.view_pager_slide.setPageMargin(0);
- holder.view_pager_indicator.setupWithViewPager(holder.view_pager_slide);
- holder.view_pager_slide.setCurrentItem(slideList.size() / 2);
- break;
- }
- case 3: {
- final WallpaperAdapter.FollowHolder holder = (WallpaperAdapter.FollowHolder) holder_parent;
- this.linearLayoutManager = new LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false);
- this.followAdapter = new FollowAdapter(userList, activity);
- holder.recycle_view_follow_items.setHasFixedSize(true);
- holder.recycle_view_follow_items.setAdapter(followAdapter);
- holder.recycle_view_follow_items.setLayoutManager(linearLayoutManager);
- followAdapter.notifyDataSetChanged();
- break;
- }
- case 4: {
- final WallpaperAdapter.CategoriesHolder holder = (WallpaperAdapter.CategoriesHolder) holder_parent;
- this.linearLayoutManagerCategories = new LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false);
- this.categoryAdapter = new CategoryAdapter(categoryList, activity);
- holder.recycle_view_categories_items.setHasFixedSize(true);
- holder.recycle_view_categories_items.setAdapter(categoryAdapter);
- holder.recycle_view_categories_items.setLayoutManager(linearLayoutManagerCategories);
- categoryAdapter.notifyDataSetChanged();
- break;
- }
- case 5: {
- break;
- }
- }
- }
- private class SlideHolder extends RecyclerView.ViewHolder {
- private final ViewPagerIndicator view_pager_indicator;
- private final ClickableViewPager view_pager_slide;
- public SlideHolder(View itemView) {
- super(itemView);
- this.view_pager_indicator = (ViewPagerIndicator) itemView.findViewById(R.id.view_pager_indicator);
- this.view_pager_slide = (ClickableViewPager) itemView.findViewById(R.id.view_pager_slide);
- }
- }
- public static class FollowHolder extends RecyclerView.ViewHolder {
- private final RecyclerView recycle_view_follow_items;
- public FollowHolder(View view) {
- super(view);
- recycle_view_follow_items = (RecyclerView) itemView.findViewById(R.id.recycle_view_follow_items);
- }
- }
- public static class CategoriesHolder extends RecyclerView.ViewHolder {
- private final RecyclerView recycle_view_categories_items;
- public CategoriesHolder(View view) {
- super(view);
- recycle_view_categories_items = (RecyclerView) itemView.findViewById(R.id.recycle_view_categories_items);
- }
- }
- public class FacebookNativeHolder extends RecyclerView.ViewHolder {
- private final String TAG = "WALLPAPERADAPTER";
- private LinearLayout nativeAdContainer;
- private LinearLayout adView;
- private NativeAd nativeAd;
- public FacebookNativeHolder(View view) {
- super(view);
- loadNativeAd(view);
- }
- private void loadNativeAd(final View view) {
- AudienceNetworkAds.initialize(activity);
- AudienceNetworkAds.isInAdsProcess(activity);
- // Instantiate a NativeAd object.
- // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
- // now, while you are testing and replace it later when you have signed up.
- // While you are using this temporary code you will only get test ads and if you release
- // your code like this to the Google Play your users will not receive ads (you will get a no fill error).
- nativeAd = new NativeAd(activity, activity.getString(R.string.FACEBOOK_ADS_NATIVE_PLACEMENT_ID));
- /*AdSettings.addTestDevice("a7c48fb1-dc6f-4f33-90e5-652ca11e1dbe");
- AdSettings.addTestDevice("f8a80ada-1d17-4071-a74c-d1418e055ba9");
- AdSettings.addTestDevice("a6cea904-fae8-4158-816c-4feafc6ed410");*/
- nativeAd.setAdListener(new NativeAdListener() {
- @Override
- public void onMediaDownloaded(Ad ad) {
- // Native ad finished downloading all assets
- Log.e(TAG, "Native ad finished downloading all assets.");
- }
- @Override
- public void onError(Ad ad, AdError adError) {
- // Native ad failed to load
- Log.e(TAG, "Native ad failed to load: " + adError.getErrorMessage());
- Toast.makeText(getApplicationContext(), "Native ad failed to load: " + adError.getErrorMessage(),Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onAdLoaded(Ad ad) {
- // Native ad is loaded and ready to be displayed
- Log.d(TAG, "Native ad is loaded and ready to be displayed!");
- //Toast.makeText(getApplicationContext(), "Native ad is loaded and ready to be displayed!", Toast.LENGTH_SHORT).show();
- // Race condition, load() called again before last ad was displayed
- if (nativeAd == null || nativeAd != ad) {
- return;
- }
- /* NativeAdViewAttributes viewAttributes = new NativeAdViewAttributes()
- .setBackgroundColor(activity.getResources().getColor(R.color.colorPrimaryDark))
- .setTitleTextColor(Color.WHITE)
- .setDescriptionTextColor(Color.WHITE)
- .setButtonColor(Color.WHITE);
- View adView = NativeAdView.render(activity, nativeAd, NativeAdView.Type.HEIGHT_300, viewAttributes);
- LinearLayout nativeAdContainer = (LinearLayout) view.findViewById(R.id.native_ad_container);
- nativeAdContainer.addView(adView);*/
- // Inflate Native Ad into Container
- inflateAd(nativeAd, view);
- }
- @Override
- public void onAdClicked(Ad ad) {
- // Native ad clicked
- Log.d(TAG, "Native ad clicked!");
- }
- @Override
- public void onLoggingImpression(Ad ad) {
- // Native ad impression
- Log.d(TAG, "Native ad impression logged!");
- }
- });
- // Request an ad
- nativeAd.loadAd();
- }
- private void inflateAd(NativeAd nativeAd, View view) {
- nativeAd.unregisterView();
- // Add the Ad view into the ad container.
- nativeAdContainer = view.findViewById(R.id.native_ad_container);
- LayoutInflater inflater = LayoutInflater.from(activity);
- // Inflate the Ad view. The layout referenced should be the one you created in the last step.
- adView = (LinearLayout) inflater.inflate(R.layout.native_ad_layout_1, nativeAdContainer, false);
- nativeAdContainer.addView(adView);
- // Add the AdChoices icon
- LinearLayout adChoicesContainer = view.findViewById(R.id.ad_choices_container);
- AdChoicesView adChoicesView = new AdChoicesView(activity, nativeAd, true);
- adChoicesContainer.addView(adChoicesView, 0);
- // Create native UI using the ad metadata.
- AdIconView nativeAdIcon = adView.findViewById(R.id.native_ad_icon);
- TextView nativeAdTitle = adView.findViewById(R.id.native_ad_title);
- MediaView nativeAdMedia = adView.findViewById(R.id.native_ad_media);
- TextView nativeAdSocialContext = adView.findViewById(R.id.native_ad_social_context);
- TextView nativeAdBody = adView.findViewById(R.id.native_ad_body);
- TextView sponsoredLabel = adView.findViewById(R.id.native_ad_sponsored_label);
- Button nativeAdCallToAction = adView.findViewById(R.id.native_ad_call_to_action);
- // Set the Text.
- nativeAdTitle.setText(nativeAd.getAdvertiserName());
- nativeAdBody.setText(nativeAd.getAdBodyText());
- nativeAdSocialContext.setText(nativeAd.getAdSocialContext());
- nativeAdCallToAction.setVisibility(nativeAd.hasCallToAction() ? View.VISIBLE : View.INVISIBLE);
- nativeAdCallToAction.setText(nativeAd.getAdCallToAction());
- sponsoredLabel.setText(nativeAd.getSponsoredTranslation());
- // Create a list of clickable views
- List<View> clickableViews = new ArrayList<>();
- clickableViews.add(nativeAdTitle);
- clickableViews.add(nativeAdCallToAction);
- // Register the Title and CTA button to listen for clicks.
- nativeAd.registerViewForInteraction(
- adView,
- nativeAdMedia,
- nativeAdIcon,
- clickableViews);
- }
- }
- public static class WallpaperHolder extends RecyclerView.ViewHolder {
- private LinearLayout linear_layout_wallpaper_item_global;
- private ImageView image_view_wallpaper_item;
- private RelativeLayout relative_layout_wallpaper_item;
- private TextView text_view_wallpaper_item_title;
- private TextView text_view_wallpaper_item_user;
- private LinearLayout linear_layout_wallpaper_item;
- private TextView text_view_review_wallpaper_item;
- // private LikeButton like_button_fav_video_item;
- private ImageView image_view_fav_wallpaper_item;
- private ImageView image_view_item_wallpaper_premium;
- public WallpaperHolder(View itemView) {
- super(itemView);
- // this.like_button_fav_video_item=(LikeButton) itemView.findViewById(R.id.like_button_fav_video_item);
- this.image_view_fav_wallpaper_item = (ImageView) itemView.findViewById(R.id.image_view_fav_wallpaper_item);
- this.image_view_item_wallpaper_premium = (ImageView) itemView.findViewById(R.id.image_view_item_wallpaper_premium);
- this.text_view_review_wallpaper_item = (TextView) itemView.findViewById(R.id.text_view_review_wallpaper_item);
- this.linear_layout_wallpaper_item_global = (LinearLayout) itemView.findViewById(R.id.linear_layout_wallpaper_item_global);
- this.linear_layout_wallpaper_item = (LinearLayout) itemView.findViewById(R.id.linear_layout_wallpaper_item);
- this.text_view_wallpaper_item_user = (TextView) itemView.findViewById(R.id.text_view_wallpaper_item_user);
- this.text_view_wallpaper_item_title = (TextView) itemView.findViewById(R.id.text_view_wallpaper_item_title);
- this.image_view_wallpaper_item = (ImageView) itemView.findViewById(R.id.image_view_wallpaper_item);
- this.relative_layout_wallpaper_item = (RelativeLayout) itemView.findViewById(R.id.relative_layout_wallpaper_item);
- }
- }
- @Override
- public int getItemCount() {
- return wallpaperList.size();
- }
- public boolean checkSUBSCRIBED() {
- PrefManager prefManager = new PrefManager(getApplicationContext());
- if (prefManager.getString("SUBSCRIBED").equals("FALSE")) {
- return false;
- }
- return true;
- }
- public boolean check() {
- PrefManager prf = new PrefManager(getApplicationContext());
- if (getApplicationContext().getString(R.string.AD_MOB_ENABLED_INTERSTITAL).equals("false")) {
- return false;
- }
- if (!prf.getString("SUBSCRIBED").equals("FALSE")) {
- return false;
- }
- Calendar c = Calendar.getInstance();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String strDate = sdf.format(c.getTime());
- if (prf.getString("LAST_DATE_ADS").equals("")) {
- prf.setString("LAST_DATE_ADS", strDate);
- } else {
- String toyBornTime = prf.getString("LAST_DATE_ADS");
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- Date oldDate = dateFormat.parse(toyBornTime);
- System.out.println(oldDate);
- Date currentDate = new Date();
- long diff = currentDate.getTime() - oldDate.getTime();
- long seconds = diff / 1000;
- if (seconds > Integer.parseInt(activity.getResources().getString(R.string.AD_MOB_TIME))) {
- prf.setString("LAST_DATE_ADS", strDate);
- return true;
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement