Advertisement
Guest User

Untitled

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