daily pastebin goal
1%
SHARE
TWEET

Untitled

a guest Mar 23rd, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.app.walper;
  2.  
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.support.annotation.DrawableRes;
  6. import android.support.annotation.NonNull;
  7. import android.support.design.widget.BottomSheetBehavior;
  8. import android.support.design.widget.FloatingActionButton;
  9. import android.support.v4.view.MenuItemCompat;
  10. import android.support.v4.view.ViewPager;
  11. import android.support.v4.widget.NestedScrollView;
  12. import android.support.v4.widget.SwipeRefreshLayout;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.support.v7.view.ContextThemeWrapper;
  15. import android.support.v7.widget.LinearLayoutManager;
  16. import android.support.v7.widget.RecyclerView;
  17. import android.support.v7.widget.Toolbar;
  18. import android.util.Log;
  19. import android.view.Menu;
  20. import android.view.MenuItem;
  21. import android.view.View;
  22. import android.widget.Button;
  23. import android.widget.ImageView;
  24. import android.widget.LinearLayout;
  25. import android.widget.TextView;
  26. import android.widget.Toast;
  27.  
  28. import com.app.walper.adapter.AdapterFeaturedCategory;
  29. import com.app.walper.adapter.AdapterFeaturedWallpaper;
  30. import com.app.walper.connection.API;
  31. import com.app.walper.connection.RestAdapter;
  32. import com.app.walper.connection.response.ResponseHome;
  33. import com.app.walper.data.AppConfig;
  34. import com.app.walper.data.Constant;
  35. import com.app.walper.data.GDPR;
  36. import com.app.walper.data.SharedPref;
  37. import com.app.walper.data.ThisApplication;
  38. import com.app.walper.model.Category;
  39. import com.app.walper.model.SearchFilter;
  40. import com.app.walper.model.Tag;
  41. import com.app.walper.model.Type;
  42. import com.app.walper.model.Wallpaper;
  43. import com.app.walper.room.AppDatabase;
  44. import com.app.walper.room.DAO;
  45. import com.app.walper.utils.NetworkCheck;
  46. import com.app.walper.utils.Tools;
  47. import com.facebook.shimmer.ShimmerFrameLayout;
  48. import com.google.ads.mediation.admob.AdMobAdapter;
  49. import com.google.android.flexbox.FlexboxLayout;
  50. import com.google.android.gms.ads.AdListener;
  51. import com.google.android.gms.ads.AdRequest;
  52. import com.google.android.gms.ads.AdSize;
  53. import com.google.android.gms.ads.AdView;
  54. import com.google.android.gms.ads.InterstitialAd;
  55.  
  56. import java.util.Arrays;
  57. import java.util.HashSet;
  58.  
  59. import retrofit2.Call;
  60. import retrofit2.Callback;
  61. import retrofit2.Response;
  62.  
  63. public class ActivityMain extends AppCompatActivity {
  64.  
  65.     private Call<ResponseHome> callbackCall = null;
  66.  
  67.     private View parent_view, lyt_main_content;
  68.     private SwipeRefreshLayout swipe_refresh;
  69.     private FlexboxLayout tags_flex_box;
  70.     private ShimmerFrameLayout shimmer_layout;
  71.     private AdapterFeaturedCategory adapterCategory;
  72.     private AdapterFeaturedWallpaper adapterFeatured, adapterPopular, adapterRated;
  73.     private AdapterFeaturedWallpaper adapterRecent, adapterShuffle;
  74.     private ViewPager view_pager_featured, view_pager_popular, view_pager_rated;
  75.     private ViewPager view_pager_recent, view_pager_shuffle;
  76.     private FloatingActionButton fab;
  77.     private boolean is_menu_show = false;
  78.  
  79.     private BottomSheetBehavior btmSheetBehavior;
  80.     private DAO dao;
  81.     private InterstitialAd mInterstitialAd;
  82.     private AdView mAdView;
  83.     private SharedPref sharedPref;
  84.  
  85.     private View notif_badge;
  86.     private int notification_count = -1;
  87.  
  88.     @Override
  89.     protected void onCreate(Bundle savedInstanceState) {
  90.         super.onCreate(savedInstanceState);
  91.         setContentView(R.layout.activity_main);
  92.         dao = AppDatabase.getDb(this).getDAO();
  93.         sharedPref = new SharedPref(this);
  94.  
  95.         initToolbar();
  96.         initComponent();
  97.         requestAction();
  98.         prepareAds();
  99.  
  100.         Tools.RTLMode(getWindow());
  101.         ThisApplication.getInstance().saveCustomLogEvent("OPEN_MAIN");
  102.     }
  103.  
  104.     private void initToolbar() {
  105.         Toolbar toolbar = findViewById(R.id.toolbar);
  106.         setSupportActionBar(toolbar);
  107.         getSupportActionBar().setTitle(null);
  108.         Tools.setSystemBarColor(this);
  109.     }
  110.  
  111.     private void initComponent() {
  112.         fab = findViewById(R.id.fab);
  113.         parent_view = findViewById(R.id.lyt_parent);
  114.         swipe_refresh = findViewById(R.id.swipe_refresh);
  115.         shimmer_layout = findViewById(R.id.shimmer_home);
  116.         lyt_main_content = findViewById(R.id.lyt_home_content);
  117.         tags_flex_box = findViewById(R.id.tags_flex_box);
  118.  
  119.         NestedScrollView nested_content = (NestedScrollView) findViewById(R.id.nested_scrollview);
  120.         nested_content.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
  121.             @Override
  122.             public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
  123.                 if (scrollY < oldScrollY) { // up
  124.                     animateFab(false);
  125.                 }
  126.                 if (scrollY > oldScrollY) { // down
  127.                     animateFab(true);
  128.                 }
  129.             }
  130.         });
  131.  
  132.         // on swipe
  133.         swipe_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  134.             @Override
  135.             public void onRefresh() {
  136.                 requestAction();
  137.             }
  138.         });
  139.  
  140.         final int padding = Tools.getPaddingCard(getResources().getDimensionPixelOffset(R.dimen.item_width_featured));
  141.         final int padding_small = Tools.getPaddingCard(getResources().getDimensionPixelOffset(R.dimen.item_width_small));
  142.         view_pager_featured = findViewById(R.id.view_pager_featured);
  143.         adapterFeatured = new AdapterFeaturedWallpaper(this, false);
  144.         view_pager_featured.setAdapter(adapterFeatured);
  145.         view_pager_featured.setOffscreenPageLimit(4);
  146.         view_pager_featured.setPadding(padding, 0, padding, 0);
  147.         view_pager_featured.setPageTransformer(false, new ViewPager.PageTransformer() {
  148.             @Override
  149.             public void transformPage(View page, float position) {
  150.                 page.setTranslationX(-(padding - Tools.dpToPx(getApplicationContext(), 12)));
  151.             }
  152.         });
  153.         adapterFeatured.setOnItemClickListener(new AdapterFeaturedWallpaper.OnItemClickListener() {
  154.             @Override
  155.             public void onItemClick(View view, Wallpaper obj) {
  156.                 ActivityWallpaperDetails.navigate(ActivityMain.this, obj.id, false);
  157.             }
  158.         });
  159.  
  160.         adapterCategory = new AdapterFeaturedCategory(this);
  161.         RecyclerView recycler_category = findViewById(R.id.recycler_category);
  162.         recycler_category.setLayoutManager(new LinearLayoutManager(this));
  163.         recycler_category.setHasFixedSize(true);
  164.         recycler_category.setNestedScrollingEnabled(false);
  165.         recycler_category.setAdapter(adapterCategory);
  166.         adapterCategory.setOnItemClickListener(new AdapterFeaturedCategory.OnItemClickListener() {
  167.             @Override
  168.             public void onItemClick(View view, Category obj, int position) {
  169.                 SearchFilter sf = new SearchFilter(obj);
  170.                 ActivitySearch.navigate(ActivityMain.this, sf, getString(R.string.hint_category) + obj.name);
  171.             }
  172.         });
  173.  
  174.         view_pager_popular = findViewById(R.id.view_pager_popular);
  175.         adapterPopular = new AdapterFeaturedWallpaper(this, true);
  176.         view_pager_popular.setAdapter(adapterPopular);
  177.         view_pager_popular.setOffscreenPageLimit(4);
  178.         view_pager_popular.setPadding(padding_small, 0, padding_small, 0);
  179.         view_pager_popular.setPageTransformer(false, new ViewPager.PageTransformer() {
  180.             @Override
  181.             public void transformPage(View page, float position) {
  182.                 page.setTranslationX(-(padding_small - Tools.dpToPx(getApplicationContext(), 12)));
  183.             }
  184.         });
  185.         adapterPopular.setOnItemClickListener(new AdapterFeaturedWallpaper.OnItemClickListener() {
  186.             @Override
  187.             public void onItemClick(View view, Wallpaper obj) {
  188.                 ActivityWallpaperDetails.navigate(ActivityMain.this, obj.id, false);
  189.             }
  190.         });
  191.  
  192.         view_pager_rated = findViewById(R.id.view_pager_rated);
  193.         adapterRated = new AdapterFeaturedWallpaper(this, false);
  194.         view_pager_rated.setAdapter(adapterRated);
  195.         view_pager_rated.setOffscreenPageLimit(4);
  196.         view_pager_rated.setPadding(padding_small, 0, padding_small, 0);
  197.         view_pager_rated.setPageTransformer(false, new ViewPager.PageTransformer() {
  198.             @Override
  199.             public void transformPage(View page, float position) {
  200.                 page.setTranslationX(-(padding_small - Tools.dpToPx(getApplicationContext(), 12)));
  201.             }
  202.         });
  203.         adapterRated.setOnItemClickListener(new AdapterFeaturedWallpaper.OnItemClickListener() {
  204.             @Override
  205.             public void onItemClick(View view, Wallpaper obj) {
  206.                 ActivityWallpaperDetails.navigate(ActivityMain.this, obj.id, false);
  207.             }
  208.         });
  209.  
  210.         view_pager_recent = findViewById(R.id.view_pager_recent);
  211.         adapterRecent = new AdapterFeaturedWallpaper(this, false);
  212.         view_pager_recent.setAdapter(adapterRecent);
  213.         view_pager_recent.setOffscreenPageLimit(4);
  214.         view_pager_recent.setPadding(padding_small, 0, padding_small, 0);
  215.         view_pager_recent.setPageTransformer(false, new ViewPager.PageTransformer() {
  216.             @Override
  217.             public void transformPage(View page, float position) {
  218.                 page.setTranslationX(-(padding_small - Tools.dpToPx(getApplicationContext(), 12)));
  219.             }
  220.         });
  221.         adapterRecent.setOnItemClickListener(new AdapterFeaturedWallpaper.OnItemClickListener() {
  222.             @Override
  223.             public void onItemClick(View view, Wallpaper obj) {
  224.                 ActivityWallpaperDetails.navigate(ActivityMain.this, obj.id, false);
  225.             }
  226.         });
  227.  
  228.         view_pager_shuffle = findViewById(R.id.view_pager_shuffle);
  229.         adapterShuffle = new AdapterFeaturedWallpaper(this, false);
  230.         view_pager_shuffle.setAdapter(adapterShuffle);
  231.         view_pager_shuffle.setOffscreenPageLimit(4);
  232.         view_pager_shuffle.setPadding(padding_small, 0, padding_small, 0);
  233.         view_pager_shuffle.setPageTransformer(false, new ViewPager.PageTransformer() {
  234.             @Override
  235.             public void transformPage(View page, float position) {
  236.                 page.setTranslationX(-(padding_small - Tools.dpToPx(getApplicationContext(), 12)));
  237.             }
  238.         });
  239.         adapterShuffle.setOnItemClickListener(new AdapterFeaturedWallpaper.OnItemClickListener() {
  240.             @Override
  241.             public void onItemClick(View view, Wallpaper obj) {
  242.                 ActivityWallpaperDetails.navigate(ActivityMain.this, obj.id, false);
  243.             }
  244.         });
  245.  
  246.         fab.setOnClickListener(new View.OnClickListener() {
  247.             @Override
  248.             public void onClick(View v) {
  249.                 int state = BottomSheetBehavior.STATE_EXPANDED;
  250.                 if (is_menu_show) {
  251.                     state = BottomSheetBehavior.STATE_COLLAPSED;
  252.                 }
  253.                 btmSheetBehavior.setState(state);
  254.                 showInterstitial();
  255.             }
  256.         });
  257.  
  258.         LinearLayout llBottomSheet = (LinearLayout) findViewById(R.id.bottom_sheet);
  259.         btmSheetBehavior = BottomSheetBehavior.from(llBottomSheet);
  260.         btmSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
  261.         btmSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
  262.             @Override
  263.             public void onStateChanged(@NonNull View bottomSheet, int newState) {
  264.                 is_menu_show = newState == BottomSheetBehavior.STATE_EXPANDED;
  265.                 fab.setImageResource(is_menu_show ? R.drawable.ic_close : R.drawable.ic_menu);
  266.             }
  267.  
  268.             @Override
  269.             public void onSlide(@NonNull View bottomSheet, float slideOffset) {
  270.  
  271.             }
  272.         });
  273.     }
  274.  
  275.     public void onShortcutClick(View view) {
  276.         int id = view.getId();
  277.         switch (id) {
  278.             case R.id.shortcut_featured:
  279.                 ActivityTab.navigate(this, Type.FEATURED);
  280.                 break;
  281.             case R.id.shortcut_popular:
  282.                 ActivityTab.navigate(this, Type.POPULAR);
  283.                 break;
  284.             case R.id.shortcut_rated:
  285.                 ActivityTab.navigate(this, Type.RATED);
  286.                 break;
  287.             case R.id.shortcut_recent:
  288.                 ActivityTab.navigate(this, Type.RECENT);
  289.                 break;
  290.             case R.id.shortcut_shuffle:
  291.                 ActivityTab.navigate(this, Type.SHUFFLE);
  292.                 break;
  293.         }
  294.         showInterstitial();
  295.     }
  296.  
  297.     public void onMoreClick(View view) {
  298.         int id = view.getId();
  299.         switch (id) {
  300.             case R.id.btn_more_featured:
  301.                 ActivityTab.navigate(this, Type.FEATURED);
  302.                 break;
  303.             case R.id.btn_more_popular:
  304.                 ActivityTab.navigate(this, Type.POPULAR);
  305.                 break;
  306.             case R.id.btn_more_rated:
  307.                 ActivityTab.navigate(this, Type.RATED);
  308.                 break;
  309.             case R.id.btn_more_recent:
  310.                 ActivityTab.navigate(this, Type.RECENT);
  311.                 break;
  312.             case R.id.btn_more_shuffle:
  313.                 ActivityTab.navigate(this, Type.SHUFFLE);
  314.                 break;
  315.             case R.id.btn_more_category:
  316.                 ActivityCategory.navigate(this);
  317.                 break;
  318.             case R.id.btn_more_tags:
  319.                 ActivityTags.navigate(this);
  320.                 break;
  321.         }
  322.     }
  323.  
  324.     private void displayHomeData(ResponseHome resp) {
  325.         lyt_main_content.setVisibility(View.VISIBLE);
  326.         adapterFeatured.setItems(resp.featured);
  327.         adapterCategory.setItems(resp.category);
  328.         adapterPopular.setItems(resp.popular);
  329.         adapterRated.setItems(resp.rated);
  330.         adapterRecent.setItems(resp.recent);
  331.         adapterShuffle.setItems(resp.shuffle);
  332.  
  333.         view_pager_featured.setAdapter(adapterFeatured);
  334.         view_pager_popular.setAdapter(adapterPopular);
  335.         view_pager_rated.setAdapter(adapterRated);
  336.         view_pager_recent.setAdapter(adapterRecent);
  337.         view_pager_shuffle.setAdapter(adapterShuffle);
  338.  
  339.         tags_flex_box.removeAllViews();
  340.         for (final Tag t : resp.tag) {
  341.             int buttonStyle = R.style.Widget_AppCompat_Button_Borderless;
  342.             Button btn = new Button(new ContextThemeWrapper(this, buttonStyle), null, buttonStyle);
  343.             Tools.stylingTagButton(this, btn, t);
  344.             btn.setOnClickListener(new View.OnClickListener() {
  345.                 @Override
  346.                 public void onClick(View v) {
  347.                     Tag obj = (Tag) v.getTag();
  348.                     SearchFilter sf = new SearchFilter(new HashSet<>(Arrays.asList(obj)));
  349.                     ActivitySearch.navigate(ActivityMain.this, sf, getString(R.string.hint_tag) + obj.name);
  350.                 }
  351.             });
  352.             tags_flex_box.addView(btn);
  353.         }
  354.  
  355.         // save featured category to application class
  356.         ThisApplication.getInstance().setFeaturedCategory(resp.category);
  357.  
  358.         // save featured tag to application class
  359.         ThisApplication.getInstance().setFeaturedTags(resp.tag);
  360.     }
  361.  
  362.     private void requestAction() {
  363.         showFailedView(false, "", R.drawable.img_failed);
  364.         swipeProgress(true);
  365.         new Handler().postDelayed(new Runnable() {
  366.             @Override
  367.             public void run() {
  368.                 requestHomeAPI();
  369.             }
  370.         }, 1000);
  371.     }
  372.  
  373.     private void requestHomeAPI() {
  374.         API api = RestAdapter.createAPI();
  375.         callbackCall = api.getHome();
  376.         callbackCall.enqueue(new Callback<ResponseHome>() {
  377.             @Override
  378.             public void onResponse(Call<ResponseHome> call, Response<ResponseHome> response) {
  379.                 ResponseHome resp = response.body();
  380.                 if (resp != null && resp.status.equals("success")) {
  381.                     displayHomeData(resp);
  382.                     swipeProgress(false);
  383.                 } else {
  384.                     onFailRequest();
  385.                 }
  386.             }
  387.  
  388.             @Override
  389.             public void onFailure(Call<ResponseHome> call, Throwable t) {
  390.                 Log.e("onFailure", t.getMessage());
  391.                 if (!call.isCanceled()) onFailRequest();
  392.             }
  393.         });
  394.     }
  395.  
  396.     private void onFailRequest() {
  397.         swipeProgress(false);
  398.         if (NetworkCheck.isConnect(this)) {
  399.             showFailedView(true, getString(R.string.failed_text), R.drawable.img_failed);
  400.         } else {
  401.             showFailedView(true, getString(R.string.no_internet_text), R.drawable.img_no_internet);
  402.         }
  403.     }
  404.  
  405.     private void showFailedView(boolean show, String message, @DrawableRes int icon) {
  406.         View lyt_failed = findViewById(R.id.lyt_failed);
  407.         ((ImageView) findViewById(R.id.failed_icon)).setImageResource(icon);
  408.         ((TextView) findViewById(R.id.failed_message)).setText(message);
  409.         if (show) {
  410.             lyt_failed.setVisibility(View.VISIBLE);
  411.             hideSheetMenu();
  412.         } else {
  413.             lyt_failed.setVisibility(View.GONE);
  414.         }
  415.         (findViewById(R.id.failed_retry)).setOnClickListener(new View.OnClickListener() {
  416.             @Override
  417.             public void onClick(View view) {
  418.                 requestAction();
  419.             }
  420.         });
  421.     }
  422.  
  423.     private void hideSheetMenu() {
  424.         if (is_menu_show) btmSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
  425.     }
  426.  
  427.     private void swipeProgress(final boolean show) {
  428.         if (!show) {
  429.             swipe_refresh.setRefreshing(show);
  430.             shimmer_layout.setVisibility(View.GONE);
  431.             shimmer_layout.stopShimmer();
  432.             return;
  433.         }
  434.         hideSheetMenu();
  435.         shimmer_layout.setVisibility(View.VISIBLE);
  436.         shimmer_layout.startShimmer();
  437.         lyt_main_content.setVisibility(View.INVISIBLE);
  438.         swipe_refresh.post(new Runnable() {
  439.             @Override
  440.             public void run() {
  441.                 swipe_refresh.setRefreshing(show);
  442.             }
  443.         });
  444.     }
  445.  
  446.     boolean isFabHide = false;
  447.  
  448.     private void animateFab(final boolean hide) {
  449.         if (isFabHide && hide || !isFabHide && !hide) return;
  450.         isFabHide = hide;
  451.         if (isFabHide) hideSheetMenu();
  452.         int moveY = hide ? (2 * fab.getHeight()) : 0;
  453.         fab.animate().translationY(moveY).setStartDelay(100).setDuration(300).start();
  454.     }
  455.  
  456.     public void homeMenuClick(View view) {
  457.         int id = view.getId();
  458.         switch (id) {
  459.             case R.id.lyt_search:
  460.                 ActivitySearch.navigate(this, null, null);
  461.                 break;
  462.             case R.id.lyt_notification:
  463.                 ActivityNotification.navigate(ActivityMain.this);
  464.                 break;
  465.             case R.id.lyt_download:
  466.                 ActivityDownload.navigate(this);
  467.                 break;
  468.             case R.id.lyt_favorite:
  469.                 ActivityFavorite.navigate(this);
  470.                 break;
  471.             case R.id.lyt_tags:
  472.                 ActivityTags.navigate(this);
  473.                 break;
  474.             case R.id.lyt_category:
  475.                 ActivityCategory.navigate(this);
  476.                 break;
  477.             case R.id.lyt_setting:
  478.                 ActivitySettings.navigate(this);
  479.                 break;
  480.             case R.id.lyt_more_app:
  481.                 Tools.openInAppBrowser(this, Constant.MORE_APP_URL, false);
  482.                 break;
  483.             case R.id.lyt_about:
  484.                 Tools.showDialogAbout(this);
  485.                 break;
  486.         }
  487.         showInterstitial();
  488.     }
  489.  
  490.     @Override
  491.     public boolean onCreateOptionsMenu(Menu menu) {
  492.         getMenuInflater().inflate(R.menu.menu_activity_main, menu);
  493.         Tools.changeMenuIconColor(menu, getResources().getColor(R.color.colorAccent));
  494.  
  495.         final MenuItem menuItem = menu.findItem(R.id.action_notification);
  496.         View actionView = MenuItemCompat.getActionView(menuItem);
  497.         notif_badge = actionView.findViewById(R.id.notif_badge);
  498.         setupBadge();
  499.         actionView.setOnClickListener(new View.OnClickListener() {
  500.             @Override
  501.             public void onClick(View v) {
  502.                 onOptionsItemSelected(menuItem);
  503.             }
  504.         });
  505.  
  506.         return true;
  507.     }
  508.  
  509.     private void setupBadge() {
  510.         if (notif_badge == null) return;
  511.         if (notification_count == 0) {
  512.             notif_badge.setVisibility(View.GONE);
  513.         } else {
  514.             notif_badge.setVisibility(View.VISIBLE);
  515.         }
  516.  
  517.     }
  518.  
  519.     @Override
  520.     public boolean onOptionsItemSelected(MenuItem item) {
  521.         int item_id = item.getItemId();
  522.         if (item_id == R.id.action_search) {
  523.             ActivitySearch.navigate(ActivityMain.this, null, null);
  524.         } else if (item_id == R.id.action_notification) {
  525.             ActivityNotification.navigate(ActivityMain.this);
  526.         }
  527.         return super.onOptionsItemSelected(item);
  528.     }
  529.  
  530.     static boolean active = false;
  531.  
  532.     @Override
  533.     protected void onResume() {
  534.         super.onResume();
  535.         int new_notif_count = dao.getNotificationUnreadCount();
  536.         if (new_notif_count != notification_count) {
  537.             notification_count = new_notif_count;
  538.             invalidateOptionsMenu();
  539.         }
  540.     }
  541.  
  542.     private void prepareAds() {
  543.         // init GDPR
  544.         if (AppConfig.ENABLE_GDPR) GDPR.updateConsentStatus(this);
  545.         if (!AppConfig.ADS_MAIN_PAGE || !NetworkCheck.isConnect(getApplicationContext())) return;
  546.  
  547.         // banner
  548.         LinearLayout ad_container = findViewById(R.id.ad_container);
  549.         mAdView = new AdView(this);
  550.         mAdView.setAdSize(AdSize.BANNER);
  551.         mAdView.setAdUnitId(sharedPref.getBannerUnitId());
  552.         ad_container.addView(mAdView);
  553.         AdRequest adRequest = new AdRequest.Builder()
  554.                 .addNetworkExtrasBundle(AdMobAdapter.class, GDPR.getBundleAd(this)).build();
  555.         mAdView.loadAd(adRequest);
  556.  
  557.         // interstitial
  558.         mInterstitialAd = new InterstitialAd(getApplicationContext());
  559.         mInterstitialAd.setAdUnitId(sharedPref.getInterstitialUnitId());
  560.         mInterstitialAd.loadAd(new AdRequest.Builder()
  561.                 .addNetworkExtrasBundle(AdMobAdapter.class, GDPR.getBundleAd(this)).build());
  562.         mInterstitialAd.setAdListener(new AdListener() {
  563.             @Override
  564.             public void onAdClosed() {
  565.                 // delay for next ads
  566.                 new Handler().postDelayed(new Runnable() {
  567.                     @Override
  568.                     public void run() {
  569.                         prepareAds();
  570.                     }
  571.                 }, 1000 * AppConfig.ADS_INTER_MAIN_INTERVAL);
  572.                 super.onAdClosed();
  573.             }
  574.         });
  575.     }
  576.  
  577.     /* show ads */
  578.     public void showInterstitial() {
  579.         // Show the ad if it's ready
  580.         if (AppConfig.ADS_MAIN_PAGE && mInterstitialAd != null && mInterstitialAd.isLoaded()) {
  581.             mInterstitialAd.show();
  582.         }
  583.     }
  584.  
  585.     @Override
  586.     public void onPause() {
  587.         super.onPause();
  588.     }
  589.  
  590.     @Override
  591.     public void onStart() {
  592.         super.onStart();
  593.         active = true;
  594.     }
  595.  
  596.     @Override
  597.     protected void onDestroy() {
  598.         super.onDestroy();
  599.         active = false;
  600.     }
  601.  
  602.     private long exitTime = 0;
  603.  
  604.     public void doExitApp() {
  605.         if ((System.currentTimeMillis() - exitTime) > 2000) {
  606.             Toast.makeText(this, R.string.press_again_exit_app, Toast.LENGTH_SHORT).show();
  607.             exitTime = System.currentTimeMillis();
  608.         } else {
  609.             finish();
  610.         }
  611.     }
  612.  
  613.     @Override
  614.     public void onBackPressed() {
  615.         doExitApp();
  616.     }
  617. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top