Advertisement
Guest User

Untitled

a guest
Mar 16th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.05 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement