Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.44 KB | None | 0 0
  1. package com.hatn.learnarduino;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.net.ConnectivityManager;
  7. import android.net.NetworkInfo;
  8. import android.net.Uri;
  9. import android.support.annotation.NonNull;
  10. import android.support.design.widget.NavigationView;
  11. import android.support.design.widget.Snackbar;
  12. import android.support.v4.view.GravityCompat;
  13. import android.support.v4.widget.DrawerLayout;
  14. import android.support.v7.app.ActionBarDrawerToggle;
  15. import android.support.v7.app.AppCompatActivity;
  16. import android.os.Bundle;
  17. import android.support.v7.widget.Toolbar;
  18. import android.text.TextUtils;
  19. import android.util.Log;
  20. import android.view.Menu;
  21. import android.view.MenuItem;
  22. import android.view.View;
  23. import android.view.ViewGroup;
  24. import android.widget.ImageButton;
  25. import android.widget.ImageView;
  26. import android.widget.LinearLayout;
  27. import android.widget.ProgressBar;
  28. import android.widget.TextView;
  29. import android.widget.Toast;
  30.  
  31. import com.firebase.ui.auth.AuthUI;
  32. import com.firebase.ui.auth.ErrorCodes;
  33. import com.firebase.ui.auth.IdpResponse;
  34. import com.google.android.gms.ads.AdRequest;
  35. import com.google.android.gms.ads.AdView;
  36. import com.google.android.gms.ads.MobileAds;
  37. import com.google.android.gms.ads.reward.RewardItem;
  38. import com.google.android.gms.ads.reward.RewardedVideoAd;
  39. import com.google.android.gms.ads.reward.RewardedVideoAdListener;
  40. import com.google.android.gms.tasks.OnCompleteListener;
  41. import com.google.android.gms.tasks.Task;
  42. import com.google.firebase.auth.FirebaseAuth;
  43. import com.google.firebase.database.DataSnapshot;
  44. import com.google.firebase.database.DatabaseError;
  45. import com.google.firebase.database.DatabaseReference;
  46. import com.google.firebase.database.FirebaseDatabase;
  47. import com.google.firebase.database.ValueEventListener;
  48. import com.squareup.picasso.Picasso;
  49. import com.tapadoo.alerter.Alerter;
  50.  
  51. import java.util.Arrays;
  52. import java.util.List;
  53.  
  54. import jp.wasabeef.picasso.transformations.CropCircleTransformation;
  55.  
  56. public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, RewardedVideoAdListener {
  57.  
  58. private RewardedVideoAd mRewardedVideoAd;
  59. private static final int RC_SIGN_IN = 123;
  60. public FirebaseAuth mAuth;
  61. int Token = 0;
  62. int numberTotalContent = 6;
  63. public int experience;
  64. private DrawerLayout drawerLayout;
  65. ImageButton buttonBasic, buttonSensors, buttonLED, buttonMovement, buttonTol5, buttonTol6;
  66. ProgressDialog progressDialog;
  67. private String email;
  68. ProgressBar progressBarSensor, progressBarLed, progressBarBasic, progressBarMovement;
  69. MenuItem nav_item1, nav_item2, nav_item3, nav_item4;
  70. TextView tvCheckWelcome;
  71.  
  72. @Override
  73. protected void onCreate(Bundle savedInstanceState) {
  74. super.onCreate(savedInstanceState);
  75. setContentView(R.layout.activity_main);
  76.  
  77. drawerLayout=findViewById(R.id.drawer_layout);
  78. progressBarSensor = (ProgressBar) findViewById(R.id.progressBarSensors);
  79. progressBarBasic = (ProgressBar) findViewById(R.id.progressBarBasic);
  80. progressBarLed = (ProgressBar) findViewById(R.id.progressBarLED);
  81. progressBarMovement = (ProgressBar) findViewById(R.id.progressBarMovement);
  82. tvCheckWelcome = (TextView) findViewById(R.id.tv_temp_check_welcome);
  83.  
  84.  
  85. MobileAds.initialize(this, "ca-app-pub-1398912587505329~4968336940");
  86.  
  87. AdView mAdView = findViewById(R.id.adView);
  88. AdRequest adRequest = new AdRequest.Builder().build();
  89. mAdView.loadAd(adRequest);
  90.  
  91.  
  92. mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(MainActivity.this);
  93. mRewardedVideoAd.setRewardedVideoAdListener(this);
  94.  
  95. loadRewardedVideoAd();
  96.  
  97. //navigation drawer bar
  98. Toolbar toolbar = findViewById(R.id.toolbar);
  99. //progessOverlay.setVisibility(View.VISIBLE);
  100. setSupportActionBar(toolbar);
  101.  
  102. DrawerLayout drawer = findViewById(R.id.drawer_layout);
  103. ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
  104. this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  105. drawer.addDrawerListener(toggle);
  106. toggle.syncState();
  107.  
  108. NavigationView navigationView = findViewById(R.id.nav_view);
  109. navigationView.setNavigationItemSelectedListener(this);
  110.  
  111.  
  112.  
  113.  
  114.  
  115. // Create layout with number of type of lesson
  116. DatabaseReference number1 = FirebaseDatabase.getInstance().getReference().child("Type_of_lesson").child("Number_Of_Type_Of_Lesson");
  117. number1.addListenerForSingleValueEvent(new ValueEventListener() {
  118. @Override
  119. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  120. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  121.  
  122. int[] Layout_hint = {
  123. R.id.linear_btn1,
  124. R.id.linear_btn2,
  125. R.id.linear_btn3,
  126. R.id.linear_btn4,
  127. R.id.linear_btn5,
  128. R.id.linear_btn6,
  129. };
  130.  
  131. for(int i = value; i < numberTotalContent; i++){
  132. LinearLayout temp = findViewById(Layout_hint[i]);
  133. temp.setVisibility(View.GONE);
  134. }
  135. }
  136. @Override
  137. public void onCancelled(@NonNull DatabaseError databaseError) {
  138. }
  139. });
  140.  
  141.  
  142. mAuth = FirebaseAuth.getInstance();
  143. // login firebaseUI
  144. if(mAuth.getCurrentUser() != null){
  145. setProfile();
  146.  
  147. loadingProgressBarTotal();
  148. //load screen welcome
  149. // Intent intent = new Intent(MainActivity.this, Welcome.class);
  150. // intent.putExtra("TypeofSlider", 2);
  151. // startActivity(intent);
  152.  
  153. }else {
  154. functionLogin();
  155. }
  156.  
  157.  
  158.  
  159. // loadingProgressBarTotal();
  160.  
  161. //Merge content
  162. buttonBasic = findViewById(R.id.btn_basic);
  163. buttonSensors=findViewById(R.id.btn_sensors);
  164. buttonLED=findViewById(R.id.btn_LED);
  165. buttonMovement=findViewById(R.id.btn_movement);
  166. buttonTol5 = findViewById(R.id.btn_tol5);
  167. buttonTol6 = findViewById(R.id.btn_tol6);
  168.  
  169.  
  170.  
  171. buttonBasic.setOnClickListener(new View.OnClickListener() {
  172. @Override
  173. public void onClick(View v) {
  174. Intent i = new Intent(MainActivity.this,Basic.class);
  175. startActivity(i);
  176. }
  177. });
  178.  
  179. // buttonSensors.setOnClickListener(new View.OnClickListener() {
  180. // @Override
  181. // public void onClick(View v) {
  182. // Intent i = new Intent(MainActivity.this,Sensors.class);
  183. // i.putExtra("MAXBASIC2", progressBarBasic.getMax());
  184. // startActivity(i);
  185. // }
  186. // });
  187.  
  188. // buttonLED.setOnClickListener(new View.OnClickListener() {
  189. // @Override
  190. // public void onClick(View v) {
  191. // Intent i = new Intent(MainActivity.this,LED.class);
  192. // i.putExtra("MAXSENSOR2", (progressBarBasic.getMax()+progressBarSensor.getMax()));
  193. // startActivity(i);
  194. // }
  195. // });
  196.  
  197. // buttonMovement.setOnClickListener(new View.OnClickListener() {
  198. // @Override
  199. // public void onClick(View v) {
  200. // Intent i = new Intent(MainActivity.this,Movement.class);
  201. // i.putExtra("MAXLED2", (progressBarLed.getMax()+progressBarBasic.getMax()+progressBarSensor.getMax()));
  202. // startActivity(i);
  203. // }
  204. // });
  205. buttonTol5.setOnClickListener(new View.OnClickListener() {
  206. @Override
  207. public void onClick(View v) {
  208. Intent i = new Intent(MainActivity.this,Tol5.class);
  209. startActivity(i);
  210. }
  211. });
  212.  
  213. buttonTol6.setOnClickListener(new View.OnClickListener() {
  214. @Override
  215. public void onClick(View v) {
  216. Intent i = new Intent(MainActivity.this,Tol6.class);
  217. startActivity(i);
  218. }
  219. });
  220.  
  221.  
  222. }
  223.  
  224. @Override
  225. public void onRewarded(RewardItem reward) {
  226. Toast.makeText(this, "onRewarded! exp: " + reward.getType() + " amount: " +
  227. reward.getAmount(), Toast.LENGTH_SHORT).show();
  228. // Reward the user.
  229. }
  230.  
  231. @Override
  232. public void onRewardedVideoAdLeftApplication() {
  233. Toast.makeText(this, "onRewardedVideoAdLeftApplication",
  234. Toast.LENGTH_SHORT).show();
  235. }
  236.  
  237. @Override
  238. public void onRewardedVideoAdClosed() {
  239. Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
  240. loadRewardedVideoAd();
  241. }
  242.  
  243. @Override
  244. public void onRewardedVideoAdFailedToLoad(int errorCode) {
  245. Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
  246. }
  247.  
  248. @Override
  249. public void onRewardedVideoAdLoaded() {
  250. Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
  251. }
  252.  
  253. @Override
  254. public void onRewardedVideoAdOpened() {
  255. Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
  256. }
  257.  
  258. @Override
  259. public void onRewardedVideoStarted() {
  260. Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
  261. }
  262.  
  263. @Override
  264. public void onRewardedVideoCompleted() {
  265. Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show();
  266. }
  267.  
  268. //Merge content
  269. @Override
  270. public void onBackPressed() {
  271. DrawerLayout drawer = findViewById(R.id.drawer_layout);
  272. if (drawer.isDrawerOpen(GravityCompat.START)) {
  273. drawer.closeDrawer(GravityCompat.START);
  274. } else {
  275. super.onBackPressed();
  276. }
  277. }
  278.  
  279. @Override
  280. public boolean onCreateOptionsMenu(Menu menu) {
  281. // Inflate the menu; this adds items to the action bar if it is present.
  282. getMenuInflater().inflate(R.menu.main, menu);
  283. return true;
  284. }
  285.  
  286. @SuppressWarnings("StatementWithEmptyBody")
  287. @Override
  288. public boolean onNavigationItemSelected(MenuItem item) {
  289. // Handle navigation view item clicks here.
  290. int id = item.getItemId();
  291. if (id == R.id.nav_Basic){
  292. Intent i = new Intent(this, Basic.class);
  293. startActivity(i);
  294. }
  295. else if (id == R.id.nav_aboutus) {
  296. Intent i = new Intent(this, Aboutus.class);
  297. startActivity(i);
  298. } else if (id == R.id.nav_achievements){
  299. Intent i = new Intent(this, Achievements.class);
  300. startActivity(i);
  301. }
  302. else if (id == R.id.nav_moreapps) {
  303. Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/developer?id=Cherala+Apps"));
  304. startActivity(i);
  305. } else if (id == R.id.nav_logout) {
  306. logOut();
  307. } else if (id == R.id.nav_feedback) {
  308. Intent i = new Intent(this, Feedback.class);
  309. i.putExtra("Name", mAuth.getCurrentUser().getDisplayName());
  310. startActivity(i);
  311. } else if (id == R.id.nav_remove_ads) {
  312. Intent i = new Intent(this, Gettoken.class);
  313. startActivity(i);
  314. }
  315.  
  316. DrawerLayout drawer = findViewById(R.id.drawer_layout);
  317. drawer.closeDrawer(GravityCompat.START);
  318. return true;
  319. }
  320.  
  321. private void loadRewardedVideoAd() {
  322. mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
  323. new AdRequest.Builder().build());
  324. }
  325.  
  326. // set avatar and information user
  327. public void setProfile(){
  328.  
  329. String name = "unidentified";
  330. email = "";
  331. Uri uriImage;
  332. String image = "";
  333. try {
  334. name = mAuth.getCurrentUser().getDisplayName();
  335. email = mAuth.getCurrentUser().getEmail();
  336. uriImage = mAuth.getCurrentUser().getPhotoUrl();
  337.  
  338. if(uriImage != null){
  339. image = mAuth.getCurrentUser().getPhotoUrl().toString();
  340. }
  341. }catch (Exception ex){
  342. Toast.makeText(this, ex.toString(), Toast.LENGTH_SHORT).show();
  343. }
  344.  
  345. NavigationView navigationView = findViewById(R.id.nav_view);
  346. Menu menuNav = navigationView.getMenu();
  347. nav_item1 = menuNav.findItem(R.id.nav_Basic);
  348. nav_item2 = menuNav.findItem(R.id.nav_Sensors);
  349. nav_item3 = menuNav.findItem(R.id.nav_LED);
  350. nav_item4 = menuNav.findItem(R.id.nav_Movement);
  351.  
  352. View headerView = navigationView.getHeaderView(0);
  353. TextView navUsername = headerView.findViewById(R.id.tv_header_name);
  354. navUsername.setText(name);
  355. TextView navEmail = headerView.findViewById(R.id.tv_header_email);
  356. navEmail.setText(email);
  357. final ImageView navImage = headerView.findViewById(R.id.img_header);
  358. if(!TextUtils.isEmpty(image)){
  359. Picasso.get().load(image).resize(75, 75).centerCrop().transform(new CropCircleTransformation()).into(navImage);
  360. }
  361. else {
  362. navImage.setImageResource(R.drawable.user_logo);
  363. }
  364.  
  365.  
  366. if (isOnline()) {
  367. Alerter.create(MainActivity.this)
  368. .setTitle("Loading...")
  369. .setText("Updating content and lesson")
  370. .setIcon(R.drawable.ic_loading)
  371. .enableProgress(true)
  372. .setProgressColorRes(R.color.lime)
  373. .setDuration(1000)
  374. .setBackgroundColorRes(R.color.alert_background) // or setBackgroundColorInt(Color.CYAN)
  375. .show();
  376. //loadingProgressBarTotal();
  377. Snackbar snackbarz = Snackbar
  378. .make(drawerLayout, "Signed in as " + email, 1200)
  379. .setAction("LOG OUT", new View.OnClickListener() {
  380. @Override
  381. public void onClick(View view) {
  382. logOut();
  383. }
  384. });
  385. enableViews(drawerLayout, true);
  386. snackbarz.show();
  387. // enableViews(drawerLayout, false);
  388.  
  389.  
  390. // Snackbar snackbar = Snackbar
  391. // .make(drawerLayout, "Signed in as " + email, 1200)
  392. // .setAction("LOG OUT", new View.OnClickListener() {
  393. // @Override
  394. // public void onClick(View view) {
  395. // logOut();
  396. // }
  397. // });
  398. // enableViews(drawerLayout, true);
  399. // snackbar.show();
  400. }
  401. // } else {
  402. //
  403. // enableViews(drawerLayout, false);
  404. //
  405. // Snackbar snackbar = Snackbar
  406. // .make(drawerLayout, "You appeared to be offline, please be online so this app can function normally ", 100000);
  407. //
  408. // View snackbarView = snackbar.getView();
  409. // TextView textView = snackbarView.findViewById(android.support.design.R.id.snackbar_text);
  410. // textView.setTextColor(Color.RED);
  411. // snackbar.setAction("Try again", new View.OnClickListener() {
  412. // @Override
  413. // public void onClick(View v) {
  414. // if (isOnline())
  415. // {
  416. // enableViews(drawerLayout,true);
  417. // }
  418. // else {
  419. // Snackbar snackbar = Snackbar
  420. // .make(drawerLayout, "You appeared to be offline, please be online so this app can function normally ", 8000);
  421. //
  422. // View snackbarView = snackbar.getView();
  423. // TextView textView = snackbarView.findViewById(android.support.design.R.id.snackbar_text);
  424. // textView.setTextColor(Color.RED);
  425. // snackbar.show();
  426. // }
  427. // }
  428. // });
  429. // snackbar.show();
  430. }
  431.  
  432. // login with firebaseUI
  433. public void functionLogin(){
  434. // Choose authentication providers
  435. List<AuthUI.IdpConfig> providers = Arrays.asList(
  436. new AuthUI.IdpConfig.EmailBuilder().build(),
  437. new AuthUI.IdpConfig.FacebookBuilder().build(),
  438. new AuthUI.IdpConfig.GoogleBuilder().build(),
  439. new AuthUI.IdpConfig.TwitterBuilder().build());
  440. // Create and launch sign-in intent
  441. startActivityForResult(
  442. AuthUI.getInstance()
  443. .createSignInIntentBuilder()
  444. .setAvailableProviders(providers)
  445. .setLogo(R.drawable.cir_logo) // Set logo drawable
  446. .setTheme(R.style.AppTheme) // Set theme
  447. .build(),
  448. RC_SIGN_IN);
  449. }
  450.  
  451.  
  452. @Override
  453. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  454. super.onActivityResult(requestCode, resultCode, data);
  455.  
  456. if (requestCode == RC_SIGN_IN) {
  457. IdpResponse response = IdpResponse.fromResultIntent(data);
  458.  
  459. if (resultCode == RESULT_OK) {
  460. // Successfully signed in
  461. Log.d("xxxx", "onResult");
  462. setProfile();
  463. readData();
  464. //readToken();
  465. //load screen welcome
  466. // Intent intent = new Intent(MainActivity.this, Welcome.class);
  467. // intent.putExtra("TypeofSlider", 1);
  468. // startActivity(intent);
  469.  
  470. } else {
  471. //Toast.makeText(this, "Login Fail", Toast.LENGTH_SHORT).show();
  472. if (response == null) {
  473. Snackbar snackbar = Snackbar
  474. .make(drawerLayout, "Sign in cancelled ", Snackbar.LENGTH_LONG);
  475. snackbar.show();
  476. }
  477. if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
  478. Snackbar snackbar = Snackbar
  479. .make(drawerLayout, "You appeared to be offline, please be online so this app can function normally ", Snackbar.LENGTH_INDEFINITE);
  480. snackbar.setAction("Exit", new View.OnClickListener() {
  481. @Override
  482. public void onClick(View v) {
  483. finish();
  484. }
  485. });
  486. snackbar.show();
  487. enableViews(drawerLayout,false);
  488. return;
  489. }
  490. Snackbar snackbar = Snackbar
  491. .make(drawerLayout, "Unknown error occurred, please contact support in the about us page if this problem persists ", Snackbar.LENGTH_LONG);
  492. snackbar.show();
  493.  
  494.  
  495. }
  496. }
  497. }
  498.  
  499. private void logOut(){
  500.  
  501. if (isOnline()) {
  502. AuthUI.getInstance()
  503. .signOut(this)
  504. .addOnCompleteListener(new OnCompleteListener<Void>() {
  505. public void onComplete(@NonNull Task<Void> task) {
  506. // ...
  507. if(mAuth.getCurrentUser() != null)
  508. Toast.makeText(MainActivity.this, "Fail", Toast.LENGTH_SHORT).show();
  509. else{
  510. Snackbar snackbar = Snackbar
  511. .make(drawerLayout, "Signed out " + email, Snackbar.LENGTH_LONG);
  512. snackbar.show();
  513. functionLogin();
  514. }
  515.  
  516. }
  517. });
  518. }
  519. else if (!isOnline()) {
  520. Snackbar snackbar = Snackbar
  521. .make(drawerLayout, "Can't sign out because you don't have internet connection", Snackbar.LENGTH_LONG);
  522. snackbar.show();
  523. }
  524. else {
  525. Snackbar snackbar = Snackbar
  526. .make(drawerLayout, "Unknown occurred, please contact support in the about us page if this problem persists ", Snackbar.LENGTH_LONG);
  527. snackbar.show();
  528. }
  529.  
  530. tvCheckWelcome.setText("1");
  531.  
  532. }
  533.  
  534. private void enableViews(View v, boolean enabled) {
  535. if (v instanceof ViewGroup) {
  536. ViewGroup vg = (ViewGroup) v;
  537. for (int i = 0;i<vg.getChildCount();i++) {
  538. enableViews(vg.getChildAt(i), enabled);
  539. }
  540. }
  541. v.setEnabled(enabled);
  542. }
  543.  
  544. public boolean isOnline() {
  545. ConnectivityManager cm =
  546. (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  547. NetworkInfo netInfo = cm.getActiveNetworkInfo();
  548. return netInfo != null && netInfo.isConnected();
  549. }
  550.  
  551. // experience and token user
  552. public void setValueExperience(){
  553.  
  554. tvCheckWelcome.setText("0");
  555.  
  556. String user_id1 = mAuth.getCurrentUser().getUid();
  557.  
  558. DatabaseReference current_user_id1 = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id1).child("Exp");
  559. current_user_id1.setValue(0);
  560. DatabaseReference token_user = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id1).child("Token");
  561. token_user.setValue(0);
  562.  
  563. try {
  564. Thread.sleep(500);
  565. } catch (InterruptedException e) {
  566. e.printStackTrace();
  567. }
  568. loadingProgressBarTotal();
  569. Intent intent = new Intent(MainActivity.this, Welcome.class);
  570. intent.putExtra("TypeofSlider", 1);
  571. startActivity(intent);
  572.  
  573.  
  574. }
  575.  
  576.  
  577.  
  578. // read data user
  579. public void readData(){
  580. String user_id2 = mAuth.getCurrentUser().getUid();
  581. DatabaseReference current_user_id2 = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id2).child("Exp");
  582. current_user_id2.addValueEventListener(new ValueEventListener() {
  583. @Override
  584. public void onDataChange(DataSnapshot dataSnapshot) {
  585. // This method is called once with the initial value and again
  586. // whenever data at this location is updated.
  587. Long value1 = dataSnapshot.getValue(Long.class);
  588. if(value1 == null) {
  589. setValueExperience();
  590. }
  591.  
  592. int checkWelcome = Integer.parseInt(tvCheckWelcome.getText().toString());
  593.  
  594. if(checkWelcome == 1){
  595.  
  596. tvCheckWelcome.setText(value1.toString());
  597. Intent intent = new Intent(MainActivity.this, Welcome.class);
  598. intent.putExtra("TypeofSlider", 2);
  599. startActivity(intent);
  600.  
  601. loadingProgressBarTotal();
  602. }
  603. }
  604.  
  605. @Override
  606. public void onCancelled(DatabaseError error) {
  607. // Failed to read value
  608. Toast.makeText(MainActivity.this, "Get user data failed", Toast.LENGTH_SHORT).show();
  609. }
  610. });
  611. }
  612.  
  613. public void setProgressBarMain(){
  614. //set progress progressbar
  615. String progressbar_user_id = mAuth.getCurrentUser().getUid();
  616. Log.d("tag","checkprogressbar: uid " + progressbar_user_id);
  617. DatabaseReference progressbar_user = FirebaseDatabase.getInstance().getReference().child("Users").child(progressbar_user_id).child("Exp");
  618. progressbar_user.addValueEventListener(new ValueEventListener() {
  619. @Override
  620. public void onDataChange(DataSnapshot dataSnapshot) {
  621. // This method is called once with the initial value and again
  622. // whenever data at this location is updated.
  623. Log.d("tag","checkprogressbar: get value");
  624. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  625.  
  626. int maxBasic = progressBarBasic.getMax();
  627. int maxSensor = progressBarSensor.getMax();
  628. int maxLed = progressBarLed.getMax();
  629. int maxMovement = progressBarMovement.getMax();
  630.  
  631. progressBarBasic.setProgress(0);
  632. progressBarSensor.setProgress(0);
  633. progressBarLed.setProgress(0);
  634. progressBarMovement.setProgress(0);
  635.  
  636. buttonBasic.setBackgroundResource(R.drawable.rounded_button);
  637. buttonSensors.setBackgroundResource(R.drawable.rounded_button);
  638. buttonLED.setBackgroundResource(R.drawable.rounded_button);
  639. buttonMovement.setBackgroundResource(R.drawable.rounded_button);
  640.  
  641. // progressBarBasic.setVisibility(View.VISIBLE);
  642. // progressBarSensor.setVisibility(View.VISIBLE);
  643. // progressBarLed.setVisibility(View.VISIBLE);
  644. // progressBarMovement.setVisibility(View.VISIBLE);
  645.  
  646.  
  647.  
  648. if(value >= maxBasic){
  649. // set click button sensor when exp reasonable
  650. buttonSensors.setOnClickListener(new View.OnClickListener() {
  651. @Override
  652. public void onClick(View v) {
  653. Intent i = new Intent(MainActivity.this,Sensors.class);
  654. i.putExtra("MAXBASIC2", progressBarBasic.getMax());
  655. startActivity(i);
  656. }
  657. });
  658. nav_item2.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  659. @Override
  660. public boolean onMenuItemClick(MenuItem item) {
  661. Intent i = new Intent(MainActivity.this,Sensors.class);
  662. i.putExtra("MAXBASIC2", progressBarBasic.getMax());
  663. startActivity(i);
  664. return false;
  665. }
  666. });
  667.  
  668. //enable and disable nav item
  669. progressBarBasic.setProgress(maxBasic);
  670. buttonSensors.setEnabled(true);
  671. buttonBasic.setBackgroundResource(R.drawable.rounded_button_green);
  672.  
  673. if(value >= (maxBasic+maxSensor)){
  674. // set click button led when exp reasonable
  675. buttonLED.setOnClickListener(new View.OnClickListener() {
  676. @Override
  677. public void onClick(View v) {
  678. Intent i = new Intent(MainActivity.this,LED.class);
  679. i.putExtra("MAXSENSOR2", (progressBarBasic.getMax()+progressBarSensor.getMax()));
  680. startActivity(i);
  681. }
  682. });
  683. nav_item3.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  684. @Override
  685. public boolean onMenuItemClick(MenuItem item) {
  686. Intent i = new Intent(MainActivity.this,LED.class);
  687. i.putExtra("MAXSENSOR2", (progressBarBasic.getMax()+progressBarSensor.getMax()));
  688. startActivity(i);
  689. return false;
  690. }
  691. });
  692.  
  693. progressBarSensor.setProgress(maxSensor);
  694. buttonLED.setEnabled(true);
  695. buttonBasic.setBackgroundResource(R.drawable.rounded_button_green);
  696. buttonSensors.setBackgroundResource(R.drawable.rounded_button_green);
  697.  
  698. if(value >= (maxBasic+maxSensor+maxLed)){
  699. // set click button movement when exp reasonable
  700. buttonMovement.setOnClickListener(new View.OnClickListener() {
  701. @Override
  702. public void onClick(View v) {
  703. Intent i = new Intent(MainActivity.this,Movement.class);
  704. i.putExtra("MAXLED2", (progressBarLed.getMax()+progressBarBasic.getMax()+progressBarSensor.getMax()));
  705. startActivity(i);
  706. }
  707. });
  708. nav_item4.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  709. @Override
  710. public boolean onMenuItemClick(MenuItem item) {
  711. Intent i = new Intent(MainActivity.this,Movement.class);
  712. i.putExtra("MAXLED2", (progressBarLed.getMax()+progressBarBasic.getMax()+progressBarSensor.getMax()));
  713. startActivity(i);
  714. return false;
  715. }
  716. });
  717.  
  718. progressBarLed.setProgress(maxLed);
  719. buttonMovement.setEnabled(true);
  720. buttonBasic.setBackgroundResource(R.drawable.rounded_button_green);
  721. buttonSensors.setBackgroundResource(R.drawable.rounded_button_green);
  722. buttonLED.setBackgroundResource(R.drawable.rounded_button_green);
  723.  
  724. if(value >= (maxBasic+maxSensor+maxLed+maxMovement)){
  725. progressBarMovement.setProgress(maxMovement);
  726. buttonMovement.setBackgroundResource(R.drawable.rounded_button_green);
  727. }
  728. else
  729. progressBarMovement.setProgress(value - maxBasic - maxSensor - maxLed);
  730. }
  731. else{
  732. progressBarLed.setProgress(value - maxBasic - maxSensor);
  733. buttonMovement.setOnClickListener(new View.OnClickListener() {
  734. @Override
  735. public void onClick(View v) {
  736. ExpShow();
  737. }
  738. });
  739. nav_item4.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  740. @Override
  741. public boolean onMenuItemClick(MenuItem item) {
  742. ExpShow();
  743. return false;
  744. }
  745. });
  746. }
  747.  
  748. }
  749. else{
  750. progressBarSensor.setProgress(value - maxBasic);
  751. buttonLED.setOnClickListener(new View.OnClickListener() {
  752. @Override
  753. public void onClick(View v) {
  754. ExpShow();
  755. }
  756. });
  757. buttonMovement.setOnClickListener(new View.OnClickListener() {
  758. @Override
  759. public void onClick(View v) {
  760. ExpShow();
  761. }
  762. });
  763. nav_item3.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  764. @Override
  765. public boolean onMenuItemClick(MenuItem item) {
  766. ExpShow();
  767. return false;
  768. }
  769. });
  770. nav_item4.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  771. @Override
  772. public boolean onMenuItemClick(MenuItem item) {
  773. ExpShow();
  774. return false;
  775. }
  776. });
  777. }
  778.  
  779. }
  780. else{
  781. progressBarBasic.setProgress(value);
  782. buttonSensors.setOnClickListener(new View.OnClickListener() {
  783. @Override
  784. public void onClick(View v) {
  785. ExpShow();
  786. }
  787. });
  788. buttonLED.setOnClickListener(new View.OnClickListener() {
  789. @Override
  790. public void onClick(View v) {
  791. ExpShow();
  792. }
  793. });
  794. buttonMovement.setOnClickListener(new View.OnClickListener() {
  795. @Override
  796. public void onClick(View v) {
  797. ExpShow();
  798. }
  799. });
  800. nav_item2.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  801. @Override
  802. public boolean onMenuItemClick(MenuItem item) {
  803. ExpShow();
  804. return false;
  805. }
  806. });
  807. nav_item3.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  808. @Override
  809. public boolean onMenuItemClick(MenuItem item) {
  810. ExpShow();
  811. return false;
  812. }
  813. });
  814. nav_item4.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
  815. @Override
  816. public boolean onMenuItemClick(MenuItem item) {
  817. ExpShow();
  818. return false;
  819. }
  820. });
  821. }
  822.  
  823. }
  824.  
  825. @Override
  826. public void onCancelled(DatabaseError error) {
  827. }
  828. });
  829. }
  830.  
  831. public void setMaxProgressbar(){
  832. //set max progressBar
  833. DatabaseReference progBarBasic = FirebaseDatabase.getInstance().getReference().child("Type_of_lesson").child("Tol1").child("Number_of_lesson");
  834. progBarBasic.addValueEventListener(new ValueEventListener() {
  835. @Override
  836. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  837. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  838. int max = value*5;
  839. progressBarBasic.setMax(max);
  840. Log.d("tag", "onDataChange: thuyngocha basic"+ progressBarBasic.getMax());
  841. }
  842. @Override
  843. public void onCancelled(@NonNull DatabaseError databaseError) {
  844. }
  845. });
  846. //set max progressBar Sensor
  847. DatabaseReference progBarSensor = FirebaseDatabase.getInstance().getReference().child("Type_of_lesson").child("Tol2").child("Number_of_lesson");
  848. progBarSensor.addValueEventListener(new ValueEventListener() {
  849. @Override
  850. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  851. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  852. int max = value*5;
  853. progressBarSensor.setMax(max);
  854. Log.d("tag", "onDataChange: thuyngocha sensor"+ progressBarSensor.getMax());
  855. }
  856. @Override
  857. public void onCancelled(@NonNull DatabaseError databaseError) {
  858. }
  859. });
  860. //set max progressBar Led
  861. DatabaseReference progBarLed = FirebaseDatabase.getInstance().getReference().child("Type_of_lesson").child("Tol3").child("Number_of_lesson");
  862. progBarLed.addValueEventListener(new ValueEventListener() {
  863. @Override
  864. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  865. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  866. int max = value*5;
  867. progressBarLed.setMax(max);
  868. Log.d("tag", "onDataChange: thuyngocha led"+ progressBarLed.getMax());
  869. }
  870. @Override
  871. public void onCancelled(@NonNull DatabaseError databaseError) {
  872. }
  873. });
  874. //set max progressBar movement
  875. DatabaseReference progBarMovement = FirebaseDatabase.getInstance().getReference().child("Type_of_lesson").child("Tol4").child("Number_of_lesson");
  876. progBarMovement.addValueEventListener(new ValueEventListener() {
  877. @Override
  878. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  879. int value = Integer.parseInt(dataSnapshot.getValue().toString());
  880. int max = value*5;
  881. progressBarMovement.setMax(max);
  882. Log.d("tag", "onDataChange: thuyngocha Movement"+ progressBarMovement.getMax());
  883. }
  884. @Override
  885. public void onCancelled(@NonNull DatabaseError databaseError) {
  886. }
  887. });
  888. }
  889.  
  890.  
  891.  
  892. public void loadingProgressBarTotal(){
  893. Log.d("tag","checkprogressbar: in loanding");
  894. int t = 0;
  895. if(mAuth.getCurrentUser() != null) {
  896. if (t == 0) {
  897. setMaxProgressbar();
  898. try {
  899. Thread.sleep(1500);
  900. } catch (InterruptedException e) {
  901. e.printStackTrace();
  902. }
  903. t++;
  904. }
  905. if (t == 1)
  906. setProgressBarMain();
  907. }
  908. }
  909. private void ExpShow()
  910. {
  911. Snackbar snackbar = Snackbar
  912. .make(drawerLayout, "You don't have enough exp to view this lesson ", Snackbar.LENGTH_LONG);
  913. snackbar.setAction("Get more", new View.OnClickListener() {
  914. @Override
  915. public void onClick(View v) {
  916. if (mRewardedVideoAd.isLoaded()) {
  917. mRewardedVideoAd.show();
  918. }
  919. }
  920. });
  921. snackbar.show();
  922.  
  923. }
  924.  
  925. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement