Advertisement
dexs

HomeFragment

Nov 16th, 2019
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.16 KB | None | 0 0
  1.  
  2. public class HomeFragment extends Fragment {
  3.  
  4.     public ArrayList<Banner> banners = new ArrayList<>();
  5.  
  6.      @BindView(R.id.home_topUpButton)
  7.     Button addWallet;
  8.     @BindView(R.id.home_mPayBalance)
  9.     TextView mPayBalance;
  10.     @BindView(R.id.loading)
  11.     ProgressBar loading_pay;
  12.  
  13.    // @BindView(R.id.promo_taxi)
  14.     //LinearLayout Promo_Taxi;
  15.     //@BindView(R.id.promo_gofood)
  16.     //LinearLayout Promo_Food;
  17.     @BindView(R.id.text_nearme)
  18.     TextView text_nearme;
  19.  
  20.     @BindView(R.id.slide_viewPager)
  21.     AutoScrollViewPager slideViewPager;
  22.     @BindView(R.id.slide_viewPager_indicator)
  23.     CircleIndicator slideIndicator;
  24.     @BindView(R.id.adView)
  25.     PublisherAdView mPublisherAdView;
  26.  
  27.     private SnackbarController snackbarController;
  28.     private boolean connectionAvailable;
  29.     private boolean isDataLoaded = false;
  30.     public Realm realm;
  31.     private int successfulCall;
  32.     boolean doubleBackToExitPressedOnce = false;
  33.     @BindView(R.id.recyclerView_main_home)
  34.     RecyclerView recyclerView_explore;
  35.     private static final int REQUEST_PERMISSION_LOCATION = 1;
  36.  
  37.     @BindView(R.id.nearme_recycler)
  38.     RecyclerView nearmeRecycler;
  39.     private RealmResults<Restoran> restoranRealmResults;
  40.     private FastItemAdapter<FoodItemHome> restoranAdapter;
  41.  
  42.     private InterstitialAd interstitialAd;
  43.     int counter = 1;
  44.  
  45.     private String[] name = {
  46.  
  47.             General.Name_GOCAB,  //    A
  48.             General.Name_GObike, //    B
  49.             General.Name_GOSEND, //    C
  50.             General.Name_GOFOOD,  //   D
  51.             General.Name_GOMART,  //   E
  52.             General.Name_GOMASSAGE, // F
  53.             General.Name_GOBOX,  //    G
  54.             General.Name_GOSERVICE,//  H
  55.     };
  56.  
  57.     private Integer[] image = {
  58.             R.drawable.car,  //    A
  59.             R.drawable.ride,  //   B
  60.             R.drawable.send,  //   C
  61.             R.drawable.food,  //   D
  62.             R.drawable.mart,  //   E
  63.             R.drawable.massage, // F
  64.             R.drawable.box,  //    G
  65.             R.drawable.auto,  //   H
  66.  
  67.     };
  68.  
  69.     public MainAdapterHome mainAdapterHome;
  70.  
  71.     @Override
  72.     public void onAttach(Context context) {
  73.         super.onAttach(context);
  74.         if (context instanceof SnackbarController) {
  75.             snackbarController = (SnackbarController) context;
  76.         }
  77.     }
  78.  
  79.     @Nullable
  80.     @Override
  81.     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  82.         return inflater.inflate(R.layout.fragment_home, container, false);
  83.     }
  84.  
  85.     @Override
  86.     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  87.         super.onViewCreated(view, savedInstanceState);
  88.         ButterKnife.bind(this, view);
  89.  
  90.         connectionAvailable = false;
  91.         loadBannerAd();
  92.         addWallet.setOnClickListener(new View.OnClickListener() {
  93.             @Override
  94.             public void onClick(View view) {
  95.                 onTopUpClick();
  96.             }
  97.         });
  98. /*
  99.         Promo_Taxi.setOnClickListener(new View.OnClickListener() {
  100.             @Override
  101.             public void onClick(View view) {
  102.                 onGoCabClick();
  103.                 showInterstitialAd();
  104.             }
  105.         });
  106.         Promo_Food.setOnClickListener(new View.OnClickListener() {
  107.             @Override
  108.             public void onClick(View view) {
  109.                 onGoFoodClick();
  110.                 showInterstitialAd();
  111.             }
  112.         });
  113. */
  114.         realm = JuangApplication.getInstance(getActivity()).getRealmInstance();
  115.         getImageBanner();
  116.         loadInterstitialAd();
  117.  
  118.         recyclerView_explore.setHasFixedSize(true);
  119.         LinearLayoutManager layoutManager = new GridLayoutManager(getActivity(), 2);
  120.         recyclerView_explore.setLayoutManager(layoutManager);
  121.         recyclerView_explore.setNestedScrollingEnabled(false);
  122.         recyclerView_explore.setFocusable(false);
  123.         mainAdapterHome = new MainAdapterHome(getActivity(), name, image);
  124.         recyclerView_explore.setAdapter(mainAdapterHome);
  125.         recyclerView_explore.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView_explore, new MainAdapterHome.ClickListener() {
  126.             @Override
  127.             public void onClick(View view, int position) {
  128.                 navigation(position);
  129.             }
  130.  
  131.             @Override
  132.             public void onLongClick(View view, int position) {
  133.  
  134.             }
  135.         }));
  136.  
  137.  
  138.         restoranAdapter = new FastItemAdapter<>();
  139.         nearmeRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
  140.         nearmeRecycler.setNestedScrollingEnabled(true);
  141.         nearmeRecycler.setAdapter(restoranAdapter);
  142.         restoranAdapter.withOnClickListener(new FastAdapter.OnClickListener<FoodItemHome>() {
  143.             @Override
  144.             public boolean onClick(View v, IAdapter<FoodItemHome> adapter, FoodItemHome item, int position) {
  145.                 Log.e("BUTTON", "CLICKED");
  146.                 Restoran selectedResto = realm.where(Restoran.class).
  147.                         equalTo("id", restoranAdapter.getAdapterItem(position).id).findFirst();
  148.                 Intent intent = new Intent(getActivity(), FoodMenuActivity.class);
  149.                 intent.putExtra(FoodMenuActivity.ID_RESTO, selectedResto.getId());
  150.                 intent.putExtra(FoodMenuActivity.NAMA_RESTO, selectedResto.getNamaResto());
  151.                 intent.putExtra(FoodMenuActivity.ALAMAT_RESTO, selectedResto.getAlamat());
  152.                 intent.putExtra(FoodMenuActivity.DISTANCE_RESTO, selectedResto.getDistance());
  153.                 intent.putExtra(FoodMenuActivity.JAM_BUKA, selectedResto.getJamBuka());
  154.                 intent.putExtra(FoodMenuActivity.JAM_TUTUP, selectedResto.getJamTutup());
  155.                 intent.putExtra(FoodMenuActivity.IS_OPEN, selectedResto.isOpen());
  156.                 intent.putExtra(FoodMenuActivity.PICTURE_URL, selectedResto.getFotoResto());
  157.                 intent.putExtra(FoodMenuActivity.IS_MITRA, selectedResto.isPartner());
  158.                 startActivity(intent);
  159.                 return true;
  160.             }
  161.         });
  162.  
  163.         restoranRealmResults = realm.where(Restoran.class).findAll();
  164.         FoodItemHome restoranItem;
  165.         for (int i = 0; i < restoranRealmResults.size(); i++) {
  166.             restoranItem = new FoodItemHome(getActivity());
  167.             restoranItem.id = restoranRealmResults.get(i).getId();
  168.             restoranItem.namaResto = restoranRealmResults.get(i).getNamaResto();
  169.             restoranItem.alamat = restoranRealmResults.get(i).getAlamat();
  170.             restoranItem.distance = restoranRealmResults.get(i).getDistance();
  171.             restoranItem.jamBuka = restoranRealmResults.get(i).getJamBuka();
  172.             restoranItem.jamTutup = restoranRealmResults.get(i).getJamTutup();
  173.             restoranItem.fotoResto = restoranRealmResults.get(i).getFotoResto();
  174.             restoranItem.isOpen = restoranRealmResults.get(i).isOpen();
  175.             restoranItem.pictureUrl = restoranRealmResults.get(i).getFotoResto();
  176.             restoranItem.isMitra = restoranRealmResults.get(i).isPartner();
  177.             restoranAdapter.add(restoranItem);
  178.             Log.e("RESTO", restoranItem.namaResto + "");
  179.             Log.e("RESTO", restoranItem.alamat + "");
  180.             Log.e("RESTO", restoranItem.jamBuka + "");
  181.             Log.e("RESTO", restoranItem.jamTutup + "");
  182.             Log.e("RESTO", restoranItem.fotoResto + "");
  183.         }
  184.     }
  185.  
  186.     private void getImageBanner() {
  187.         User loginUser = new User();
  188.         if (JuangApplication.getInstance(getActivity()).getLoginUser() != null) {
  189.             loginUser = JuangApplication.getInstance(getActivity()).getLoginUser();
  190.         } else {
  191.             startActivity(new Intent(getActivity(), SplashActivity.class));
  192.             getActivity().finish();
  193.         }
  194.  
  195.         UserService userService = ServiceGenerator.createService(UserService.class,
  196.                 loginUser.getEmail(), loginUser.getPassword());
  197.         userService.getBanner().enqueue(new Callback<GetBannerResponseJson>() {
  198.             @Override
  199.             public void onResponse(Call<GetBannerResponseJson> call, Response<GetBannerResponseJson> response) {
  200.                 if (response.isSuccessful()) {
  201.                     banners = response.body().data;
  202.                     Log.e("Image", response.body().data.get(0).foto);
  203.                     MyPagerAdapter pagerAdapter = new MyPagerAdapter(getChildFragmentManager(), banners);
  204.                     slideViewPager.setAdapter(pagerAdapter);
  205.                     slideIndicator.setViewPager(slideViewPager);
  206.                     slideViewPager.setInterval(General.TIMER_SLIDE);
  207.                     slideViewPager.startAutoScroll(General.TIMER_SLIDE);
  208.                 }
  209.             }
  210.  
  211.             @Override
  212.             public void onFailure(Call<GetBannerResponseJson> call, Throwable t) {
  213.  
  214.             }
  215.         });
  216.     }
  217.  
  218.     private void navigation(int position) {
  219.         switch (position) {
  220.             case 0:
  221.                 onGoCabClick(); // Cab
  222.                 showInterstitialAd();
  223.                 break;
  224.             case 1:
  225.                onGobikeClick(); // bike
  226.                 showInterstitialAd();
  227.                 break;
  228.  
  229.             case 2:
  230.                 onGoSendClick();
  231.                 showInterstitialAd();
  232.                 break;
  233.  
  234.             case 3:
  235.                 onGoFoodClick();
  236.                 showInterstitialAd();
  237.                 break;
  238.  
  239.             case 4:
  240.                onGoMartClick();
  241.                 showInterstitialAd();
  242.  
  243.                 break;
  244.  
  245.             case 5:
  246.                onGoMassageClick();
  247.                 showInterstitialAd();
  248.                 break;
  249.  
  250.             case 6:
  251.                 onGoBoxClick();
  252.                 showInterstitialAd();
  253.                 break;
  254.  
  255.             case 7:
  256.                onGoServiceClick();
  257.                 showInterstitialAd();
  258.                 break;
  259.  
  260.             case 8:
  261.                 featurePro();
  262.                 showInterstitialAd();
  263.                 break;
  264.         }
  265.     }
  266.  
  267.  
  268.     @Override
  269.     public void onResume() {
  270.         super.onResume();
  271.         Realm realm = Realm.getDefaultInstance();
  272.         realm.beginTransaction();
  273.         realm.delete(PesananFood.class);
  274.         realm.commitTransaction();
  275.         successfulCall = 0;
  276.         connectionAvailable = ConnectivityUtils.isConnected(getActivity());
  277.         if (!connectionAvailable) {
  278.             if (snackbarController != null) snackbarController.showSnackbar(
  279.                     R.string.text_noInternet, Snackbar.LENGTH_INDEFINITE, R.string.text_close,
  280.                     new View.OnClickListener() {
  281.                         @Override
  282.                         public void onClick(View view) {
  283.                             return;
  284.                         }
  285.                     });
  286.         } else {
  287.             updateMPayBalance();
  288.             loading_pay.setVisibility(View.VISIBLE);
  289.             mPayBalance.setVisibility(View.GONE);
  290.         }
  291.     }
  292.  
  293.     private void onTopUpClick() {
  294.         Intent intent = new Intent(getActivity(), TopUpActivity.class);
  295.         startActivity(intent);
  296.         showInterstitialAd();
  297.     }
  298.  
  299.     private void onGobikeClick() {
  300.         Fitur selectedFitur = realm.where(Fitur.class).equalTo("idFitur", 1).findFirst();
  301.         Intent intent = new Intent(getActivity(), GoCabActivity.class);
  302.         intent.putExtra(GoCabActivity.FITUR_KEY, selectedFitur.getIdFitur());
  303.         startActivity(intent);
  304.     }
  305.  
  306.     private void onGoCabClick() {
  307.         Fitur selectedFitur = realm.where(Fitur.class).equalTo("idFitur", 2).findFirst();
  308.         Intent intent = new Intent(getActivity(), GoCabActivity.class);
  309.         intent.putExtra(GoCabActivity.FITUR_KEY, selectedFitur.getIdFitur());
  310.         startActivity(intent);
  311.     }
  312.  
  313.     private void onGoFoodClick() {
  314.         Fitur selectedFitur = realm.where(Fitur.class).equalTo("idFitur", 3).findFirst();
  315.         Intent intent = new Intent(getActivity(), FoodActivity.class);
  316.         intent.putExtra(FoodActivity.FITUR_KEY, selectedFitur.getIdFitur());
  317.         startActivity(intent);
  318.     }
  319.  
  320.     private void onGoServiceClick() {
  321.         new SweetAlertDialog(getActivity(), SweetAlertDialog.SUCCESS_TYPE)
  322.                 .setTitleText("Coming Soon!")
  323.                 .setContentText("Fitur ini belum tersedia!")
  324.                 .show();
  325.     }
  326.  
  327.     private void onGoMartClick() {
  328.         Fitur selectedFitur = realm.where(Fitur.class).equalTo("idFitur", 4).findFirst();
  329.         Intent intent = new Intent(getActivity(), MartActivity.class);
  330.         intent.putExtra(MartActivity.FITUR_KEY, selectedFitur.getIdFitur());
  331.         startActivity(intent);
  332.     }
  333.  
  334.     private void onGoSendClick() {
  335.         Fitur selectedFitur = realm.where(Fitur.class).equalTo("idFitur", 5).findFirst();
  336.         Intent intent = new Intent(getActivity(), SendActivity.class);
  337.         intent.putExtra(SendActivity.FITUR_KEY, selectedFitur.getIdFitur());
  338.         startActivity(intent);
  339.     }
  340.  
  341.     private void onGoMassageClick() {
  342.         new SweetAlertDialog(getActivity(), SweetAlertDialog.SUCCESS_TYPE)
  343.                 .setTitleText("Coming Soon!")
  344.                 .setContentText("Fitur ini belum tersedia!")
  345.                 .show();
  346.     }
  347.  
  348.     private void onGoBoxClick() {
  349.         new SweetAlertDialog(getActivity(), SweetAlertDialog.SUCCESS_TYPE)
  350.                 .setTitleText("Coming Soon!")
  351.                 .setContentText("Fitur ini belum tersedia!")
  352.                 .show();
  353.     }
  354.  
  355.  
  356.     private void updateMPayBalance() {
  357.         User loginUser = JuangApplication.getInstance(getActivity()).getLoginUser();
  358.         UserService userService = ServiceGenerator.createService(
  359.                 UserService.class, loginUser.getEmail(), loginUser.getPassword());
  360.  
  361.         GetSaldoRequestJson param = new GetSaldoRequestJson();
  362.         param.setId(loginUser.getId());
  363.         userService.getSaldo(param).enqueue(new Callback<GetSaldoResponseJson>() {
  364.             @Override
  365.             public void onResponse(Call<GetSaldoResponseJson> call, Response<GetSaldoResponseJson> response) {
  366.                 if (response.isSuccessful()) {
  367.                     String formattedText = String.format(Locale.US, General.MONEY +" %s.00",
  368.                             NumberFormat.getNumberInstance(Locale.US).format(response.body().getData()));
  369.                     mPayBalance.setText(formattedText);
  370.                     mPayBalance.setVisibility(View.VISIBLE);
  371.                     loading_pay.setVisibility(View.GONE);
  372.                     successfulCall++;
  373.  
  374.                     if (HomeFragment.this.getActivity() != null) {
  375.                         Realm realm = JuangApplication.getInstance(HomeFragment.this.getActivity()).getRealmInstance();
  376.                         User loginUser = JuangApplication.getInstance(HomeFragment.this.getActivity()).getLoginUser();
  377.                         realm.beginTransaction();
  378.                         loginUser.setmPaySaldo(response.body().getData());
  379.                         realm.commitTransaction();
  380.                     }
  381.                 }
  382.             }
  383.  
  384.             @Override
  385.             public void onFailure(Call<GetSaldoResponseJson> call, Throwable t) {
  386.  
  387.             }
  388.  
  389.         });
  390.     }
  391.  
  392.     public static class MyPagerAdapter extends FragmentPagerAdapter {
  393.         private static int NUM_ITEMS = 5;
  394.         public ArrayList<Banner> banners = new ArrayList<>();
  395.  
  396.         public MyPagerAdapter(FragmentManager fragmentManager, ArrayList<Banner> banners) {
  397.             super(fragmentManager);
  398.             this.banners = banners;
  399.         }
  400.  
  401.         @Override
  402.         public int getCount() {
  403.             return banners.size();
  404.         }
  405.  
  406.         @Override
  407.         public Fragment getItem(int position) {
  408.             return SlideFragment.newInstance(banners.get(position).id, banners.get(position).foto);
  409.         }
  410.  
  411.         @Override
  412.         public CharSequence getPageTitle(int position) {
  413.             return "Page " + position;
  414.         }
  415.  
  416.  
  417.     }
  418.  
  419.  
  420.  
  421.     private  void featurePro(){
  422.               String appPackageName = "com.juangjek.customer";
  423.               startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
  424.         }
  425.  
  426.  
  427.  
  428.     private void loadInterstitialAd() {
  429.         if (General.ENABLE_ADMOB_INTERSTITIAL_ADS) {
  430.             interstitialAd = new InterstitialAd(getActivity());
  431.             interstitialAd.setAdUnitId(getResources().getString(R.string.admob_interstitial_unit_id));
  432.             AdRequest adRequest = new AdRequest.Builder().build();
  433.             interstitialAd.loadAd(adRequest);
  434.  
  435.             interstitialAd.setAdListener(new AdListener() {
  436.                 @Override
  437.                 public void onAdClosed() {
  438.                     interstitialAd.loadAd(new AdRequest.Builder().build());
  439.                 }
  440.             });
  441.         }
  442.     }
  443.     private void showInterstitialAd() {
  444.         if (General.ENABLE_ADMOB_INTERSTITIAL_ADS) {
  445.             if (interstitialAd != null && interstitialAd.isLoaded()) {
  446.                 if (counter == General.ADMOB_INTERSTITIAL_ADS_INTERVAL) {
  447.                     interstitialAd.show();
  448.                     counter = 1;
  449.                 } else {
  450.                     counter++;
  451.                 }
  452.             }
  453.         }
  454.     }
  455.  
  456.     public void loadBannerAd() {
  457.         if (General.ENABLE_ADMOB_BANNER_ADS) {
  458.  
  459.             PublisherAdRequest adRequest = new PublisherAdRequest.Builder().build();
  460.             mPublisherAdView.loadAd(adRequest);
  461.             mPublisherAdView.setAdListener(new AdListener() {
  462.  
  463.                 @Override
  464.                 public void onAdClosed() {
  465.                 }
  466.  
  467.                 @Override
  468.                 public void onAdFailedToLoad(int error) {
  469.                     mPublisherAdView.setVisibility(View.GONE);
  470.                 }
  471.  
  472.                 @Override
  473.                 public void onAdLeftApplication() {
  474.                 }
  475.  
  476.                 @Override
  477.                 public void onAdOpened() {
  478.                 }
  479.  
  480.                 @Override
  481.                 public void onAdLoaded() {
  482.                     mPublisherAdView.setVisibility(View.VISIBLE);
  483.                 }
  484.             });
  485.         }
  486.     }
  487.  
  488. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement