Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.92 KB | None | 0 0
  1. package com.app.koran;
  2.  
  3. import android.animation.Animator;
  4. import android.animation.AnimatorListenerAdapter;
  5. import android.content.Intent;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.support.design.widget.FloatingActionButton;
  10. import android.support.design.widget.NavigationView;
  11. import android.support.v4.app.Fragment;
  12. import android.support.v4.app.FragmentManager;
  13. import android.support.v4.app.FragmentTransaction;
  14. import android.support.v4.view.GravityCompat;
  15. import android.support.v4.widget.DrawerLayout;
  16. import android.support.v7.app.ActionBar;
  17. import android.support.v7.app.ActionBarDrawerToggle;
  18. import android.support.v7.app.AppCompatActivity;
  19. import android.support.v7.widget.Toolbar;
  20. import android.view.Menu;
  21. import android.view.MenuItem;
  22. import android.view.View;
  23. import android.view.animation.OvershootInterpolator;
  24. import android.widget.TextView;
  25. import android.widget.Toast;
  26.  
  27. import com.app.koran.data.AppConfig;
  28. import com.app.koran.data.Constant;
  29. import com.app.koran.data.GDPR;
  30. import com.app.koran.data.SharedPref;
  31. import com.app.koran.fragment.FragmentCategory;
  32. import com.app.koran.fragment.FragmentHome;
  33. import com.app.koran.fragment.FragmentLater;
  34. import com.app.koran.fragment.FragmentPage;
  35. import com.app.koran.utils.Tools;
  36. import com.google.ads.mediation.admob.AdMobAdapter;
  37. import com.google.android.gms.ads.AdListener;
  38. import com.google.android.gms.ads.AdRequest;
  39. import com.google.android.gms.ads.AdView;
  40. import com.google.android.gms.ads.InterstitialAd;
  41.  
  42. public class ActivityMain extends AppCompatActivity {
  43.  
  44. //for ads
  45. private InterstitialAd mInterstitialAd;
  46.  
  47. private Toolbar toolbar;
  48. private ActionBar actionBar;
  49. private NavigationView navigationView;
  50. private FloatingActionButton fab;
  51. private Fragment fragment = null;
  52. private TextView user_name, user_email;
  53. private SharedPref sharedPref;
  54. private boolean pendingIntroAnimation;
  55.  
  56. @Override
  57. protected void onCreate(Bundle savedInstanceState) {
  58. super.onCreate(savedInstanceState);
  59. setContentView(R.layout.activity_main);
  60.  
  61. sharedPref = new SharedPref(this);
  62. fab = (FloatingActionButton) findViewById(R.id.fab);
  63.  
  64. initBannerAds();
  65. initInterstitialAds();
  66.  
  67. initToolbar();
  68. initDrawerMenu();
  69.  
  70. fab.setOnClickListener(new View.OnClickListener() {
  71. @Override
  72. public void onClick(View view) {
  73. Intent i = new Intent(getApplicationContext(), ActivitySearch.class);
  74. startActivity(i);
  75. }
  76. });
  77. if (savedInstanceState == null) {
  78. pendingIntroAnimation = true;
  79. }
  80. }
  81.  
  82. private void initToolbar() {
  83. toolbar = (Toolbar) findViewById(R.id.toolbar);
  84. setSupportActionBar(toolbar);
  85. actionBar = getSupportActionBar();
  86. actionBar.setDisplayHomeAsUpEnabled(true);
  87. actionBar.setHomeButtonEnabled(true);
  88. }
  89.  
  90. private void initDrawerMenu() {
  91. final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  92. ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
  93. public void onDrawerOpened(View drawerView) {
  94. showInterstitial();
  95. super.onDrawerOpened(drawerView);
  96. }
  97. };
  98. drawer.setDrawerListener(toggle);
  99. toggle.syncState();
  100.  
  101. navigationView = (NavigationView) findViewById(R.id.nav_view);
  102. navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
  103. @Override
  104. public boolean onNavigationItemSelected(MenuItem item) {
  105. item.setChecked(true);
  106. displayFragment(item.getItemId(), item.getTitle().toString());
  107. drawer.closeDrawers();
  108. return true;
  109. }
  110. });
  111.  
  112. user_name = (TextView) navigationView.getHeaderView(0).findViewById(R.id.user_name);
  113. user_email = (TextView) navigationView.getHeaderView(0).findViewById(R.id.user_email);
  114. if (AppConfig.HIDE_PROFILE_VIEW) {
  115. ((View) navigationView.getHeaderView(0).findViewById(R.id.lyt_profile)).setVisibility(View.GONE);
  116. }
  117. }
  118.  
  119. @Override
  120. public void onBackPressed() {
  121. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  122. if (!drawer.isDrawerOpen(GravityCompat.START)) {
  123. drawer.openDrawer(GravityCompat.START);
  124. } else {
  125. doExitApp();
  126. }
  127. }
  128.  
  129. @Override
  130. protected void onResume() {
  131. user_name.setText(sharedPref.getYourName());
  132. user_email.setText(sharedPref.getYourEmail());
  133. super.onResume();
  134. }
  135.  
  136. @Override
  137. public boolean onCreateOptionsMenu(Menu menu) {
  138. // Inflate the menu; this adds items to the action bar if it is present.
  139. getMenuInflater().inflate(R.menu.menu_activity_main, menu);
  140. if (pendingIntroAnimation) {
  141. pendingIntroAnimation = false;
  142. startIntroAnimation();
  143. }
  144. return true;
  145. }
  146.  
  147. @Override
  148. public boolean onOptionsItemSelected(MenuItem item) {
  149. int id = item.getItemId();
  150.  
  151. if (id == R.id.action_settings) {
  152. Intent i = new Intent(getApplicationContext(), ActivitySettings.class);
  153. startActivity(i);
  154. } else if (id == R.id.action_more) {
  155. Tools.directLinkToBrowserWithTime(this, getString(R.string.more_app_url));
  156. } else if (id == R.id.action_rate) {
  157. Tools.rateAction(ActivityMain.this);
  158. } else if (id == R.id.action_about) {
  159. Tools.aboutAction(ActivityMain.this);
  160. }
  161.  
  162. return super.onOptionsItemSelected(item);
  163. }
  164.  
  165. public void displayFragment(int id, String title) {
  166.  
  167. switch (id) {
  168. case R.id.nav_home:
  169. if (!actionBar.getTitle().toString().equals(title)) {
  170. actionBar.setTitle(title);
  171. fragment = new FragmentHome();
  172. }
  173. break;
  174.  
  175. case R.id.nav_category:
  176. if (!actionBar.getTitle().toString().equals(title)) {
  177. actionBar.setTitle(title);
  178. fragment = new FragmentCategory();
  179. }
  180. break;
  181.  
  182. case R.id.nav_page:
  183. if (!actionBar.getTitle().toString().equals(title)) {
  184. actionBar.setTitle(title);
  185. fragment = new FragmentPage();
  186. }
  187. break;
  188.  
  189. case R.id.nav_later:
  190. if (!actionBar.getTitle().toString().equals(title)) {
  191. actionBar.setTitle(title);
  192. fragment = new FragmentLater();
  193. }
  194. break;
  195.  
  196. case R.id.nav_setting:
  197. Intent i = new Intent(getApplicationContext(), ActivitySettings.class);
  198. startActivity(i);
  199. break;
  200.  
  201. case R.id.nav_rate:
  202. Tools.rateAction(ActivityMain.this);
  203. break;
  204.  
  205. case R.id.nav_more:
  206. startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.more_app_url))));
  207. break;
  208.  
  209. case R.id.nav_about:
  210. Tools.aboutAction(ActivityMain.this);
  211. break;
  212. }
  213.  
  214. if (fragment != null) {
  215. FragmentManager fragmentManager = getSupportFragmentManager();
  216. FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  217. fragmentTransaction.replace(R.id.frame_content, fragment);
  218. fragmentTransaction.commitAllowingStateLoss();
  219. }
  220. }
  221.  
  222. private long exitTime = 0;
  223.  
  224. public void doExitApp() {
  225. if ((System.currentTimeMillis() - exitTime) > 2000) {
  226. Toast.makeText(this, R.string.press_again_exit_app, Toast.LENGTH_SHORT).show();
  227. exitTime = System.currentTimeMillis();
  228. } else {
  229. finish();
  230. }
  231. }
  232.  
  233. private void initBannerAds() {
  234. if (!AppConfig.ENABLE_ADSENSE) return;
  235. if (AppConfig.ENABLE_GDPR) GDPR.updateConsentStatus(this); // init GDPR
  236. final AdView mAdView = findViewById(R.id.ad_view);
  237. mAdView.setVisibility(View.GONE);
  238. AdRequest adRequest = new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, GDPR.getBundleAd(this)).build();
  239. mAdView.loadAd(adRequest);
  240. mAdView.setAdListener(new AdListener() {
  241. @Override
  242. public void onAdLoaded() {
  243. mAdView.setVisibility(View.VISIBLE);
  244. super.onAdLoaded();
  245. }
  246. });
  247. }
  248.  
  249. private void initInterstitialAds() {
  250. if (!AppConfig.ENABLE_ADSENSE) return;
  251. mInterstitialAd = new InterstitialAd(this);
  252. mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
  253. AdRequest adRequest2 = new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, GDPR.getBundleAd(this)).build();
  254. mInterstitialAd.loadAd(adRequest2);
  255. mInterstitialAd.setAdListener(new AdListener() {
  256. @Override
  257. public void onAdClosed() {
  258. super.onAdClosed();
  259. new Handler().postDelayed(new Runnable() {
  260. @Override
  261. public void run() {
  262. mInterstitialAd = null;
  263. initInterstitialAds();
  264. }
  265. }, 1000 * AppConfig.DELAY_NEXT_INTERSTITIAL);
  266. }
  267. });
  268. }
  269.  
  270. /**
  271. * show ads
  272. */
  273. public void showInterstitial() {
  274. // Show the ad if it's ready
  275. if (AppConfig.ENABLE_ADSENSE && mInterstitialAd != null && mInterstitialAd.isLoaded() && ActivityMain.active) {
  276. mInterstitialAd.show();
  277. }
  278. }
  279.  
  280. private void startIntroAnimation() {
  281. fab.setTranslationY(2 * getResources().getDimensionPixelOffset(R.dimen.btn_fab_size));
  282.  
  283. int actionbarSize = Tools.dip2px(this, 56);
  284. toolbar.setTranslationY(-actionbarSize);
  285. toolbar.animate().translationY(0).setDuration(Constant.ANIM_DURATION_TOOLBAR)
  286. .setStartDelay(300)
  287. .setListener(new AnimatorListenerAdapter() {
  288. @Override
  289. public void onAnimationEnd(Animator animation) {
  290. startContentAnimation();
  291. }
  292.  
  293. @Override
  294. public void onAnimationCancel(Animator animation) {
  295. startContentAnimation();
  296. }
  297. });
  298. }
  299.  
  300. private void startContentAnimation() {
  301. try {
  302. fab.animate().translationY(0).setInterpolator(new OvershootInterpolator(1.f))
  303. .setStartDelay(300)
  304. .setDuration(Constant.ANIM_DURATION_FAB).setListener(new AnimatorListenerAdapter() {
  305. @Override
  306. public void onAnimationEnd(Animator animation) {
  307. // first fragment to display
  308. displayFragment(R.id.nav_home, getString(R.string.title_nav_home));
  309. }
  310.  
  311. @Override
  312. public void onAnimationCancel(Animator animation) {
  313. // first fragment to display
  314. displayFragment(R.id.nav_home, getString(R.string.title_nav_home));
  315. }
  316. }).start();
  317. } catch (Exception e) {
  318.  
  319. }
  320. }
  321.  
  322. public static boolean active = false;
  323.  
  324. @Override
  325. public void onStart() {
  326. super.onStart();
  327. active = true;
  328. }
  329.  
  330. @Override
  331. public void onStop() {
  332. super.onStop();
  333. active = false;
  334. }
  335.  
  336. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement