daily pastebin goal
10%
SHARE
TWEET

Untitled

a guest Mar 16th, 2018 37 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.app.apkbackup;
  2.  
  3. import android.content.ActivityNotFoundException;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.support.design.widget.FloatingActionButton;
  9. import android.support.design.widget.TabLayout;
  10. import android.support.v4.view.ViewPager;
  11. import android.support.v7.app.ActionBar;
  12. import android.support.v7.app.AlertDialog;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.support.v7.widget.SearchView;
  15. import android.support.v7.widget.Toolbar;
  16. import android.view.Menu;
  17. import android.view.MenuInflater;
  18. import android.view.MenuItem;
  19. import android.view.View;
  20. import android.view.Window;
  21. import android.view.WindowManager;
  22.  
  23. import com.app.apkbackup.adapter.FragmentAdapter;
  24. import com.app.apkbackup.data.AppConfig;
  25. import com.app.apkbackup.data.PermissionUtil;
  26. import com.app.apkbackup.fragment.BackupFragment;
  27. import com.app.apkbackup.fragment.RestoreFragment;
  28. import com.google.android.gms.ads.AdListener;
  29. import com.google.android.gms.ads.AdRequest;
  30. import com.google.android.gms.ads.AdView;
  31. import com.google.android.gms.ads.InterstitialAd;
  32.  
  33. public class MainActivity extends AppCompatActivity {
  34.     //ads
  35.     private AdView mAdView;
  36.     //for ads
  37.     private InterstitialAd mInterstitialAd;
  38.     //public static Toolbar toolbar;
  39.     public static BackupFragment frag_backup;
  40.     private RestoreFragment frag_restore;
  41.  
  42.     private ViewPager viewPager;
  43.     private ActionBar actionBar;
  44.     private Toolbar toolbar;
  45.  
  46.     private SearchView search;
  47.     private FloatingActionButton fab;
  48.     private TabLayout tabLayout;
  49.  
  50.     @Override
  51.     protected void onCreate(Bundle savedInstanceState) {
  52.         super.onCreate(savedInstanceState);
  53.         setContentView(R.layout.activity_main);
  54.  
  55.         actionBar = getSupportActionBar();
  56.         viewPager = (ViewPager) findViewById(R.id.viewpager);
  57.         fab = (FloatingActionButton) findViewById(R.id.fab);
  58.         tabLayout = (TabLayout) findViewById(R.id.tabs);
  59.  
  60.         Window window = this.getWindow();
  61.         if (getAPIVerison() >= 5.0) {
  62.             window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  63.             window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  64.             window.setStatusBarColor(this.getResources().getColor(R.color.colorPrimaryDark));
  65.         }
  66.  
  67.         if (PermissionUtil.isAllPermissionGranted(this)) {
  68.             onCreateProcess();
  69.         }
  70.     }
  71.  
  72.     private void onCreateProcess() {
  73.         if (viewPager != null) {
  74.             setupViewPager(viewPager);
  75.         }
  76.  
  77.         initToolbar();
  78.         prepareAds();
  79.  
  80.         fab.setOnClickListener(new View.OnClickListener() {
  81.             @Override
  82.             public void onClick(View view) {
  83.                 frag_backup.refresh(true);
  84.             }
  85.         });
  86.  
  87.         tabLayout.setupWithViewPager(viewPager);
  88.         tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
  89.             @Override
  90.             public void onTabSelected(TabLayout.Tab tab) {
  91.                 showInterstitial();
  92.                 viewPager.setCurrentItem(tab.getPosition());
  93.                 // close contextual action mode
  94.                 if (frag_backup.getActionMode() != null) {
  95.                     frag_backup.getActionMode().finish();
  96.                 }
  97.                 if (frag_restore.getActionMode() != null) {
  98.                     frag_restore.getActionMode().finish();
  99.                 }
  100.  
  101.                 if (tab.getPosition() == 0) {
  102.                     fab.show();
  103.                 } else {
  104.                     frag_restore.refreshList();
  105.                     fab.hide();
  106.                 }
  107.                 search.onActionViewCollapsed();
  108.                 supportInvalidateOptionsMenu();
  109.             }
  110.  
  111.             @Override
  112.             public void onTabUnselected(TabLayout.Tab tab) {
  113.             }
  114.  
  115.             @Override
  116.             public void onTabReselected(TabLayout.Tab tab) {
  117.             }
  118.  
  119.         });
  120.  
  121.     }
  122.  
  123.     private void initToolbar() {
  124.         toolbar = (Toolbar) findViewById(R.id.toolbar);
  125.         setSupportActionBar(toolbar);
  126.         actionBar = getSupportActionBar();
  127.         actionBar.setDisplayHomeAsUpEnabled(false);
  128.         actionBar.setHomeButtonEnabled(false);
  129.     }
  130.  
  131.     private void setupViewPager(ViewPager viewPager) {
  132.         FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager());
  133.  
  134.         if (frag_backup == null) {
  135.             frag_backup = new BackupFragment();
  136.         }
  137.         if (frag_restore == null) {
  138.             frag_restore = new RestoreFragment();
  139.         }
  140.         adapter.addFragment(frag_backup, getString(R.string.tab_title_backup));
  141.         adapter.addFragment(frag_restore, getString(R.string.tab_title_restore));
  142.         viewPager.setAdapter(adapter);
  143.     }
  144.  
  145.  
  146.     @Override
  147.     public boolean onCreateOptionsMenu(Menu menu) {
  148.         MenuInflater inflater = getMenuInflater();
  149.         inflater.inflate(R.menu.menu_main, menu);
  150.         search = (SearchView) menu.findItem(R.id.action_search).getActionView();
  151.         search.setIconified(false);
  152.         if (viewPager.getCurrentItem() == 0) {
  153.             search.setQueryHint(getString(R.string.hint_backup_search));
  154.         } else {
  155.             search.setQueryHint(getString(R.string.hint_restore_search));
  156.         }
  157.         search.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
  158.             @Override
  159.             public boolean onQueryTextSubmit(String s) {
  160.                 return false;
  161.             }
  162.  
  163.             @Override
  164.             public boolean onQueryTextChange(String s) {
  165.                 try {
  166.                     if (viewPager.getCurrentItem() == 0) {
  167.                         frag_backup.bAdapter.getFilter().filter(s);
  168.                     } else {
  169.                         frag_restore.rAdapter.getFilter().filter(s);
  170.                     }
  171.                 } catch (Exception e) {
  172.  
  173.                 }
  174.                 return true;
  175.             }
  176.         });
  177.         search.onActionViewCollapsed();
  178.         return super.onCreateOptionsMenu(menu);
  179.     }
  180.  
  181.  
  182.     @Override
  183.     public boolean onOptionsItemSelected(MenuItem item) {
  184.         int id = item.getItemId();
  185.         switch (id) {
  186.             case R.id.action_search: {
  187.                 // this do magic
  188.                 supportInvalidateOptionsMenu();
  189.                 return true;
  190.             }
  191.             case R.id.action_rate: {
  192.                 Uri uri = Uri.parse("market://details?id=" + getPackageName());
  193.                 Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
  194.                 try {
  195.                     startActivity(goToMarket);
  196.                 } catch (ActivityNotFoundException e) {
  197.                     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + getPackageName())));
  198.                 }
  199.                 return true;
  200.             }
  201.             case R.id.action_about: {
  202.                 AlertDialog.Builder builder = new AlertDialog.Builder(this);
  203.                 builder.setTitle("About");
  204.                 builder.setMessage(getString(R.string.about_text));
  205.                 builder.setNeutralButton("OK", null);
  206.                 builder.show();
  207.                 return true;
  208.             }
  209.             default:
  210.                 return super.onOptionsItemSelected(item);
  211.         }
  212.     }
  213.  
  214.     public static float getAPIVerison() {
  215.         Float f = null;
  216.         try {
  217.             StringBuilder strBuild = new StringBuilder();
  218.             strBuild.append(android.os.Build.VERSION.RELEASE.substring(0, 2));
  219.             f = new Float(strBuild.toString());
  220.         } catch (NumberFormatException e) {
  221.  
  222.         }
  223.         return f.floatValue();
  224.     }
  225.  
  226.     private void prepareAds() {
  227.         mAdView = (AdView) findViewById(R.id.ad_view);
  228.         AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
  229.         // Start loading the ad in the background.
  230.         mAdView.loadAd(adRequest);
  231.  
  232.         // Create the InterstitialAd and set the adUnitId.
  233.         mInterstitialAd = new InterstitialAd(this);
  234.         mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
  235.         AdRequest adRequest2 = new AdRequest.Builder().build();
  236.         mInterstitialAd.loadAd(adRequest2);
  237.         mInterstitialAd.setAdListener(new AdListener() {
  238.             @Override
  239.             public void onAdOpened() {
  240.                 fromPermission = false;
  241.                 super.onAdOpened();
  242.             }
  243.         });
  244.     }
  245.  
  246.     /**
  247.      * show ads
  248.      */
  249.     public void showInterstitial() {
  250.         // Show the ad if it's ready
  251.         if (AppConfig.ENABLE_ADSENSE && mInterstitialAd != null && mInterstitialAd.isLoaded()) {
  252.             mInterstitialAd.show();
  253.         }
  254.     }
  255.  
  256.     private boolean fromPermission = false;
  257.  
  258.     @Override
  259.     protected void onResume() {
  260.         if (!PermissionUtil.isAllPermissionGranted(this)) {
  261.             showDialogPermission();
  262.         } else if (fromPermission) {
  263.             onCreateProcess();
  264.         }
  265.         super.onResume();
  266.     }
  267.  
  268.     private void showDialogPermission() {
  269.         AlertDialog.Builder builder = new AlertDialog.Builder(this);
  270.         builder.setTitle(getString(R.string.dialog_title_permission));
  271.         builder.setMessage(getString(R.string.dialog_content_permission));
  272.         builder.setCancelable(false);
  273.         builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
  274.             @Override
  275.             public void onClick(DialogInterface dialogInterface, int i) {
  276.                 fromPermission = true;
  277.                 dialogInterface.dismiss();
  278.                 PermissionUtil.goToPermissionSettingScreen(MainActivity.this);
  279.             }
  280.         });
  281.         builder.setNegativeButton("EXIT", new DialogInterface.OnClickListener() {
  282.             @Override
  283.             public void onClick(DialogInterface dialogInterface, int i) {
  284.                 finish();
  285.             }
  286.         });
  287.         builder.show();
  288.     }
  289.  
  290. }
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