Tuesday, 15 June 2021

Backup of Home Fragment Java Code after lottie file and smart buy xml change

Backup of Home Fragment Java Code after lottie file and smart buy xml change


 package Fragment;



import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Rect;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
import android.telephony.PhoneNumberUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;

import com.android.volley.NoConnectionError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;
import com.cooltechworks.views.shimmer.ShimmerRecyclerView;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.google.android.gms.common.api.ResolvableApiException;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationCallback;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationResult;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.LocationSettingsResponse;
import com.google.android.gms.location.SettingsClient;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;

import Adapter.Deal_OfDay_Adapter;
import Adapter.Home_Icon_Adapter;
import Adapter.Home_adapter;
import Adapter.Top_Selling_Adapter;
import Config.BaseURL;
import Model.Category_model;
import Model.Deal_Of_Day_model;
import Model.Home_Icon_model;
import Model.Top_Selling_model;
import gogroccer.tcc.AppController;
import gogroccer.tcc.CustomSlider;
import gogroccer.tcc.MainActivity;
import gogroccer.tcc.ProductActivity;
import gogroccer.tcc.R;
import gogroccer.tcc.SearchActivity;
import spencerstudios.com.fab_toast.FabToast;
import util.ConnectivityReceiver;
import util.CustomVolleyJsonRequest;
import util.RecyclerTouchListener;

import static android.content.Context.LOCATION_SERVICE;


public class Home_fragment extends Fragment implements OnMapReadyCallback {
private static final String TAG = Home_fragment.class.getSimpleName();
private SliderLayout imgSlider, banner_slider, featuredslider;
private RecyclerView rv_items2, rv_top_selling, rv_deal_of_day, rv_headre_icons;
private List<Category_model> category_modelList = new ArrayList<>();
private Home_adapter adapter;
private boolean isSubcat = false;
LinearLayout Search_layout, Top_selling_layout2;
String getid;
String getcat_title;
NestedScrollView scrollView;
SharedPreferences sharedpreferences;
private Dialog loadingDialog;
private ShimmerRecyclerView rv_items;
private List<String> cat_menu_id = new ArrayList<>();
private List<String> sub_cteg_title = new ArrayList<>();

//Home Icons
private Home_Icon_Adapter menu_adapter;
private List<Home_Icon_model> menu_models = new ArrayList<>();
private Dialog dialog;

//Deal Of Day
private Deal_OfDay_Adapter deal_ofDay_adapter;
private List<Deal_Of_Day_model> deal_of_day_models = new ArrayList<>();
LinearLayout Deal_Linear_layout, Deal_Frame_layout1;
FrameLayout Deal_Frame_layout;

//

//Top Selling Products
private Top_Selling_Adapter top_selling_adapter;
private List<Top_Selling_model> top_selling_models = new ArrayList<>();
private ImageView iv_Call, iv_Whatspp, iv_reviews, iv_share_via;
private TextView timer;
Button View_all_deals, View_all_TopSell;
private ImageView Top_Selling_Poster, Deal_Of_Day_poster;
View view;

// for location
FusedLocationProviderClient fusedLocationProviderClient;
private boolean isGPSEnabled = false;
private LocationManager locationManager;
Location currentLocation;
private static final int REQUEST_CODE = 44;

public TextView tvCurrent, tv_langitude, tv_latitude, tv_fulladdress;
public static double latitude = 0.00, longitude = 0.00;
public static Address address1;
public static SupportMapFragment mapFragment;
public static OnMapReadyCallback mapReadyCallback;

public Home_fragment() {
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_home, container, false);
setHasOptionsMenu(true);
((MainActivity) requireActivity()).setTitle(getResources().getString(R.string.app_name));
// getActivity().setTitle(getResources().getString(R.string.app_name));

Objects.requireNonNull(((MainActivity) requireActivity()).getSupportActionBar()).setIcon(R.drawable.app_bar_icon);
((MainActivity) requireActivity()).updateHeader();
showloadingDialog(getActivity());
// ((MainActivity) getActivity()).setTitle("");
view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
// ((MainActivity) getActivity()).finish();
exit_app_dailog();
return true;
}
return false;
}
});
//Check Internet Connection
if (ConnectivityReceiver.isConnected()) {
makeGetSliderRequest();
makeGetBannerSliderRequest();
makeGetCategoryRequest();
makeGetFeaturedSlider();


// make_menu_items();
// make_deal_of_the_day();
make_top_selling();
} else {
showInternetErrorDialog(getActivity(), "run all");
}

//for location
tv_langitude = view.findViewById(R.id.langitude_tv);
tv_latitude = view.findViewById(R.id.latitude_tv);
tv_fulladdress = view.findViewById(R.id.full_address_tv);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(requireActivity());
// getLocation();
// displayLocationSettingsRequest(getActivity());

/* testing expandable list view */
LinearLayout gotocartegorypage = view.findViewById(R.id.shop_by_Category_title);
gotocartegorypage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fragment fm = new ExpandListviewFragment();
FragmentManager fragmentManager = requireActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
.replace(R.id.contentPanel, fm)
.addToBackStack(null).commit();
}
});

// todo: expandable listview code end here....

// IntentFilter intentFilter = new IntentFilter(ConnectivityReceiver.NETWORK_AVAILABLE_ACTION);
// LocalBroadcastManager.getInstance(getActivity()).registerReceiver(new BroadcastReceiver() {
// @Override
// public void onReceive(Context context, Intent intent) {
// boolean isNetworkAvailable = intent.getBooleanExtra(IS_NETWORK_AVAILABLE, false);
// String networkStatus = isNetworkAvailable ? "connected" : "disconnected";
//
// Snackbar.make(getActivity().findViewById(android.R.id.content), "Network Status: " + networkStatus, Snackbar.LENGTH_LONG).show();
// }
// }, intentFilter);

// send_email();
View_all_deals = view.findViewById(R.id.view_all_deals);
View_all_TopSell = view.findViewById(R.id.view_all_topselling);
// deal product seting off
Deal_Frame_layout = view.findViewById(R.id.deal_frame_layout);
Deal_Frame_layout1 = view.findViewById(R.id.deal_frame_layout1);
//

//Top Selling Poster
Top_Selling_Poster = view.findViewById(R.id.top_selling_imageview);

//Deal Of Day Poster
Deal_Of_Day_poster = view.findViewById(R.id.deal_of_day_imageview);

//Scroll View
scrollView = view.findViewById(R.id.scroll_view);
scrollView.setSmoothScrollingEnabled(true);

/* /Search bar */
Search_layout = view.findViewById(R.id.search_layout);
Search_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Fragment fm = new Search_fragment();
// FragmentManager fragmentManager = getSupportFragmentManager()();
// fragmentManager.beginTransaction()
// .replace(R.id.contentPanel, fm)
// // .setCustomAnimations(R.animator.slide_from_right,R.anim.slide_out_from_left)
// .addToBackStack(null).commit();
Intent intent = new Intent(getActivity(), SearchActivity.class);
startActivity(intent);
}
});
/* code end here */


//Slider
imgSlider = view.findViewById(R.id.home_img_slider);
banner_slider = view.findViewById(R.id.relative_banner);
featuredslider = view.findViewById(R.id.featured_img_slider);

//Catogary Icons
rv_items = view.findViewById(R.id.rv_home); //todo:change 5june
rv_items.showShimmerAdapter();
// rv_items2=view.findViewById(R.id.rv_home);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 3);
rv_items.setLayoutManager(gridLayoutManager);
gridLayoutManager.isAutoMeasureEnabled();
rv_items.setItemAnimator(new DefaultItemAnimator());
rv_items.setNestedScrollingEnabled(false);

//DealOf the Day
rv_deal_of_day = view.findViewById(R.id.rv_deal);
// GridLayoutManager gridLayoutManager1 = new GridLayoutManager(getActivity(), 2);
LinearLayoutManager deallinearLayoutManager = new LinearLayoutManager(getActivity()) {
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller smoothScroller = new LinearSmoothScroller(requireActivity()) {
private static final float SPEED = 2000f;// Change this value (default=25f)

@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return SPEED / displayMetrics.densityDpi;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
};
deallinearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
rv_deal_of_day.setLayoutManager(deallinearLayoutManager);
rv_deal_of_day.setItemAnimator(new DefaultItemAnimator());
rv_deal_of_day.setNestedScrollingEnabled(true);
// rv_deal_of_day.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(1), true));
//

//Top Selling Products todo:diabale by napcafe for new top selling view
rv_top_selling = view.findViewById(R.id.top_selling_recycler);
// GridLayoutManager gridLayoutManager2 = new GridLayoutManager(getActivity(), 2);
LinearLayoutManager gridLayoutManager2 = new LinearLayoutManager(getActivity()) {
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller smoothScroller = new LinearSmoothScroller(requireActivity()) {
private static final float SPEED = 2000f;// Change this value (default=25f)

@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return SPEED / displayMetrics.densityDpi;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
}; // for horizontal scrolling
gridLayoutManager2.setOrientation(LinearLayoutManager.HORIZONTAL); // for horizontal scrolling
rv_top_selling.setLayoutManager(gridLayoutManager2);
rv_top_selling.setItemAnimator(new DefaultItemAnimator());
rv_top_selling.setNestedScrollingEnabled(false);
rv_top_selling.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(), true));

// Top_selling_layout = view.findViewById(R.id.top_selling_layoutView); // todo:disable for unworked after viewpager

//make_menu_items Icons
rv_headre_icons = view.findViewById(R.id.collapsing_recycler);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()) {

@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller smoothScroller = new LinearSmoothScroller(requireActivity()) {
private static final float SPEED = 2000f;// Change this value (default=25f)

@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return SPEED / displayMetrics.densityDpi;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
};
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
rv_headre_icons.setLayoutManager(layoutManager);
rv_headre_icons.setHasFixedSize(true);
rv_headre_icons.setItemViewCacheSize(10);
rv_headre_icons.setDrawingCacheEnabled(true);
rv_headre_icons.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);

//Call And Whatsapp
iv_Call = view.findViewById(R.id.iv_call);
iv_Whatspp = view.findViewById(R.id.iv_whatsapp);
iv_reviews = view.findViewById(R.id.reviews);
iv_share_via = view.findViewById(R.id.share_via);

iv_Call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isPermissionGranted()) {
call_action();
}
}
});
iv_Whatspp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chat_action();
}
});
iv_reviews.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
reviewOnApp();
}
});
iv_share_via.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shareApp();

}
});


//* Recycler View Shop By Catogary
rv_items.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), rv_items, new RecyclerTouchListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
getid = category_modelList.get(position).getId();
getcat_title = category_modelList.get(position).getTitle();

Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("cat_id", getid);
i.putExtra("cat_title", getcat_title);
startActivity(i);
}

@Override
public void onLongItemClick(View view, int position) {

}
}));

// /*/Recycler View Menu Products
// rv_headre_icons.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), rv_headre_icons, new RecyclerTouchListener.OnItemClickListener() {
// @Override
// public void onItemClick(View view, int position) {
// getid = menu_models.get(position).getId();
// Bundle args = new Bundle();
// Fragment fm = new Product_fragment();
// args.putString("cat_id", getid);
// fm.setArguments(args);
// FragmentManager fragmentManager = getSupportFragmentManager()();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm)
// .addToBackStack(null).commit();
// }
//
// @Override
// public void onLongItemClick(View view, int position) {
// }
// }));
// */
//
//
//Recycler View Deal Of Day //**
rv_deal_of_day.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), rv_deal_of_day, new RecyclerTouchListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
getid = deal_of_day_models.get(position).getId();
// Bundle args = new Bundle();
Fragment fm = new ProductRecyclerFragment();
// args.putString("cat_deal", "2");
// fm.setArguments(args);
// FragmentManager fragmentManager = getFragmentManager();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm)
// .addToBackStack(null).commit();

Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("cat_deal", "2");
startActivity(i);

}

@Override
public void onLongItemClick(View view, int position) {

}
}));
View_all_deals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Bundle args = new Bundle();
// Fragment fm = new ProductRecyclerFragment();
// args.putString("cat_deal", "2");
// fm.setArguments(args);
// FragmentManager fragmentManager = getFragmentManager();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm)
// .addToBackStack(null).commit();
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("cat_deal", "2");
startActivity(i);

}
});
///
//
// //REcyclerview Top Selling
rv_top_selling.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), rv_top_selling, new RecyclerTouchListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
getid = top_selling_models.get(position).getProduct_id();
// Bundle args = new Bundle();
// Fragment fm = new Product_fragment();
// args.putString("cat_top_selling", "");
// fm.setArguments(args);
// FragmentManager fragmentManager = getSupportFragmentManager()();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm)
// .addToBackStack(null).commit();
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("top_deal", "2");
startActivity(i);

}

@Override
public void onLongItemClick(View view, int position) {

}
}));
View_all_TopSell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Bundle args = new Bundle();
// Fragment fm = new Product_fragment();
// args.putString("cat_top_selling", "2");
// fm.setArguments(args);
// FragmentManager fragmentManager = getSupportFragmentManager()();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm)
// .addToBackStack(null).commit();
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("top_deal", "2");
startActivity(i);
}
});
// */

/* todo: diable for unworked after viewpager
Top_selling_layout.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// Bundle args = new Bundle();
// Fragment fm = new Product_fragment();
// args.putString("cat_top_selling", "Top Selling Product");
// fm.setArguments(args);
// FragmentManager fragmentManager = getSupportFragmentManager()();
// fragmentManager.beginTransaction()
// .setCustomAnimations(R.animator.slide_from_right, R.animator.slide_out_from_left, R.animator.slide_from_right, R.animator.slide_out_from_left)
//// .setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
// .replace(R.id.contentPanel, fm) //todo: change if want to use prodcut activity working
// .addToBackStack(null).commit();

Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("cat_top_selling","Top Selling Product");
startActivity(i);
}
});

*/

return view;
// on-create method over here
}


private void getLocation() {
//check permission
if (Build.VERSION.SDK_INT >= 23) {
if (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
//when permission granted check for gps is enabled
LocationManager locationManager = (LocationManager) requireActivity().getSystemService(LOCATION_SERVICE);
locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);// Toast.makeText(getActivity(), "GPS is Enabled in your devide", Toast.LENGTH_SHORT).show();
/*
new AlertDialog.Builder(getActivity())
.setTitle(getActivity().getResources().getString(R.string.location_permission))
.setMessage(getActivity().getResources().getString(R.string.location_permission_message))
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialogInterface, int i) {
//Prompt the user once explanation has been shown
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 0);
Intent callGPSSettingIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(callGPSSettingIntent);
}
})
.create().show();
*/
//

fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
final Location location = task.getResult();

if (location != null) {
try {
if (Geocoder.isPresent()) {
Geocoder geocoder = new Geocoder(getActivity(), Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
// tv_latitude.setText(Html.fromHtml("<font color='#6200ee'> <b>Latitude : </b><br></font>"
// + addresses.get(0).getLatitude()));
// tv_langitude.setText(Html.fromHtml("<font color='#6200ee'> <b>Longitude : </b><br></font>"
// + addresses.get(0).getLongitude()));
// tv_fulladdress.setText(Html.fromHtml("<font color='#6200ee'> <b>Address : </b><br></font>"
// + addresses.get(0).getAddressLine(0)));
latitude = location.getLatitude();
longitude = location.getLongitude();
Log.d("lati", "lat : " + addresses.get(0).getLatitude() + " " + "lan: " + addresses.get(0).getLongitude());
Log.d("free", "cart :" + addresses.get(0).getLatitude());
} else {
tv_fulladdress.setText(R.string.adnf);
}
} catch (IOException e) {
e.printStackTrace();
}

} else {
LocationRequest locationRequest = new LocationRequest()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(4000)
.setFastestInterval(2000)
.setNumUpdates(2);
LocationCallback locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
// super.onLocationResult(locationResult);
Location location1 = locationResult.getLastLocation();
tv_latitude.setText(String.valueOf(location1.getLatitude()));
tv_langitude.setText(String.valueOf(location1.getLongitude()));
if (Geocoder.isPresent()) {
Geocoder geocoder = new Geocoder(requireActivity(), Locale.getDefault());
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(location1.getLatitude(), location1.getLongitude(), 1);
} catch (IOException e) {
e.printStackTrace();
}

// tv_fulladdress.setText(Html.fromHtml("<font color='#6200ee'> <b>Address : </b><br></font>"
// + addresses.get(0).getAddressLine(0)));
assert addresses != null;
Log.d("lati", "lat : " + addresses.get(0).getLatitude() + " " + "lan: " + addresses.get(0).getLongitude());
Log.d("free", "cart :" + addresses.get(0).getLatitude());
} else {
tv_fulladdress.setText(R.string.adnf);
}
}
};
if (ActivityCompat.checkSelfPermission(requireActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(requireActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

return;
}
fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());
// Toast.makeText(getActivity(), "Address not found", Toast.LENGTH_SHORT).show();

}
}
});
} else {
//when persmission denied
ActivityCompat.requestPermissions(requireActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);

}
} else {
fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
Location location = task.getResult();
if (location != null) {
try {
Geocoder geocoder = new Geocoder(getActivity(), Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
}

}


private void makeGetSliderRequest() {
JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_SLIDER_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
try {
ArrayList<HashMap<String, String>> listarray = new ArrayList<>();
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = (JSONObject) response.get(i);
HashMap<String, String> url_maps = new HashMap<>();
url_maps.put("slider_title", jsonObject.getString("slider_title"));
url_maps.put("sub_cat", jsonObject.getString("sub_cat"));
url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image"));
listarray.add(url_maps);
}
for (HashMap<String, String> name : listarray) {
CustomSlider textSliderView = new CustomSlider(getActivity());
textSliderView.description(name.get("")).image(name.get("slider_image")).setScaleType(BaseSliderView.ScaleType.Fit);
textSliderView.bundle(new Bundle());
textSliderView.getBundle().putString("extra", name.get("slider_title"));
textSliderView.getBundle().putString("extra", name.get("sub_cat"));
imgSlider.addSlider(textSliderView);
final String sub_cat = (String) textSliderView.getBundle().get("extra");

if (!sub_cat.contentEquals("0")) {
textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView slider) {
// Toast.makeText(getActivity(), "" + sub_cat, Toast.LENGTH_SHORT).show();
/* todo: change if product activity not working *
Bundle args = new Bundle();
Fragment fm = new Product_fragment();
args.putString("id", sub_cat);
fm.setArguments(args);
FragmentManager fragmentManager = getSupportFragmentManager()();
fragmentManager.beginTransaction()
.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_out_from_left, R.animator.slide_from_right, R.animator.slide_out_from_left)
.replace(R.id.contentPanel, fm)
.addToBackStack(null).commit();
*/

/* todo: change if want product activity working */
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("id", sub_cat);
startActivity(i);

}
});
}

}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
// Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
showInternetErrorDialog(getActivity(), "run slider"); //created for retry on net connection -by napcafe
}
}
});
AppController.getInstance().addToRequestQueue(req);
}

private void makeGetBannerSliderRequest() {
JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_BANNER_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
try {
ArrayList<HashMap<String, String>> listarray = new ArrayList<>();
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = (JSONObject) response.get(i);
HashMap<String, String> url_maps = new HashMap<>();
url_maps.put("slider_title", jsonObject.getString("slider_title"));
url_maps.put("sub_cat", jsonObject.getString("sub_cat"));
url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image"));
listarray.add(url_maps);
}
for (HashMap<String, String> name : listarray) {
CustomSlider textSliderView = new CustomSlider(getActivity());
textSliderView.description(name.get("")).image(name.get("slider_image")).setScaleType(BaseSliderView.ScaleType.Fit);
textSliderView.bundle(new Bundle());
textSliderView.getBundle().putString("extra", name.get("slider_title"));
textSliderView.getBundle().putString("extra", name.get("sub_cat"));
banner_slider.addSlider(textSliderView);
final String sub_cat = (String) textSliderView.getBundle().get("extra");
if (!sub_cat.contentEquals("0")) {


textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView slider) {
// Toast.makeText(getActivity(), "" + sub_cat, Toast.LENGTH_SHORT).show();
/* todo: change if product activity not working *
Bundle args = new Bundle();
Fragment fm = new Product_fragment();
args.putString("id", sub_cat);
fm.setArguments(args);
FragmentManager fragmentManager = getSupportFragmentManager()();
fragmentManager.beginTransaction()
.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_out_from_left, R.animator.slide_from_right, R.animator.slide_out_from_left)
.replace(R.id.contentPanel, fm)
.addToBackStack(null).commit();
*/

/* todo: change if want product activity working */
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("id", sub_cat);
startActivity(i);

}
});
}
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
// Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
showInternetErrorDialog(getActivity(), "run bannerSlider"); //created for retry on net connection -by napcafe

}
}
});
AppController.getInstance().addToRequestQueue(req);

}


private void makeGetFeaturedSlider() {
JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_FEAATURED_SLIDER_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
try {
ArrayList<HashMap<String, String>> listarray = new ArrayList<>();
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = (JSONObject) response.get(i);
HashMap<String, String> url_maps = new HashMap<>();
url_maps.put("slider_title", jsonObject.getString("slider_title"));
url_maps.put("sub_cat", jsonObject.getString("sub_cat"));
url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image"));
listarray.add(url_maps);
}
for (HashMap<String, String> name : listarray) {
CustomSlider textSliderView = new CustomSlider(getActivity());
textSliderView.description(name.get("")).image(name.get("slider_image")).setScaleType(BaseSliderView.ScaleType.Fit);
textSliderView.bundle(new Bundle());
// textSliderView.getBundle().putString("extra", name.get("slider_title"));
textSliderView.getBundle().putString("extra", name.get("sub_cat"));
featuredslider.addSlider(textSliderView);
final String sub_cat = (String) textSliderView.getBundle().get("extra");
if (!sub_cat.contentEquals("0")) {
textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView slider) {
// Toast.makeText(getActivity(), "" + sub_cat, Toast.LENGTH_SHORT).show();

/* todo: change if want product activity working */
Intent i = new Intent(getActivity(), ProductActivity.class);
i.putExtra("id", sub_cat);
startActivity(i);

}
});
}

}

} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
// Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
showInternetErrorDialog(getActivity(), "run featuredSlider"); //created for retry on net connection -by napcafe
}
}
});
AppController.getInstance().addToRequestQueue(req);

}


private void makeGetCategoryRequest() {
loadingDialog.show();
String tag_json_obj = "json_category_req";
isSubcat = false;
Map<String, String> params = new HashMap<>();
params.put("parent", "");
isSubcat = true;
/* if (parent_id != null && parent_id != "") {
}*/

CustomVolleyJsonRequest jsonObjReq = new CustomVolleyJsonRequest(Request.Method.POST,
BaseURL.GET_CATEGORY_URL, params, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
try {
if (response != null && response.length() > 0) {
Boolean status = response.getBoolean("responce");
if (status) {
Gson gson = new Gson();
Type listType = new TypeToken<List<Category_model>>() {
}.getType();
category_modelList = gson.fromJson(response.getString("data"), listType);
adapter = new Home_adapter(category_modelList);
loadingDialog.dismiss();
rv_items.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}

} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
// Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
loadingDialog.dismiss();
showInternetErrorDialog(getActivity(), "run category");
}
}
});

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

}


// deaal code trying
private void make_deal_of_the_day() {
String tag_json_obj = "json_category_req";
isSubcat = false;
Map<String, String> params = new HashMap<>();
params.put("parent", "");
isSubcat = true;
// if (parent_id != null && parent_id != "") { }
CustomVolleyJsonRequest jsonObjReq = new CustomVolleyJsonRequest(Request.Method.GET,
BaseURL.GET_DEAL_OF_DAY_PRODUCTS, params, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
try {
if (response != null && response.length() > 0) {
Boolean status = response.getBoolean("responce");
Gson gson = new Gson();
if (status) {
Type listType = new TypeToken<List<Deal_Of_Day_model>>() {
}.getType();
deal_of_day_models = gson.fromJson(response.getString("Deal_of_the_day"), listType);
deal_ofDay_adapter = new Deal_OfDay_Adapter(deal_of_day_models, getActivity());
rv_deal_of_day.setAdapter(deal_ofDay_adapter);
deal_ofDay_adapter.notifyDataSetChanged();
if (getActivity() != null) {
if (deal_of_day_models.isEmpty()) {
// Toast.makeText(getActivity(), "No Deal For Day", Toast.LENGTH_SHORT).show();
rv_deal_of_day.setVisibility(View.GONE);
Deal_Frame_layout.setVisibility(View.GONE);
Deal_Frame_layout1.setVisibility(View.GONE);
}
}
} else {
Toast.makeText(getActivity(), "No Response", Toast.LENGTH_SHORT).show();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
}
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}

//deal code end here

private void make_top_selling() {
String tag_json_obj = "json_category_req";
isSubcat = false;
Map<String, String> params = new HashMap<>();
params.put("parent", "");
isSubcat = true;
/* if (parent_id != null && parent_id != "") {
}*/

CustomVolleyJsonRequest jsonObjReq = new CustomVolleyJsonRequest(Request.Method.POST,
BaseURL.GET_TOP_SELLING_PRODUCTS, params, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());

try {
if (response != null && response.length() > 0) {
boolean status = response.getBoolean("responce");
if (status) {
Gson gson = new Gson();
Type listType = new TypeToken<List<Top_Selling_model>>() {
}.getType();
top_selling_models = gson.fromJson(response.getString("top_selling_product"), listType);
top_selling_adapter = new Top_Selling_Adapter(top_selling_models);
rv_top_selling.setAdapter(top_selling_adapter);
top_selling_adapter.notifyDataSetChanged();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
}
}
});

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

}


private void make_menu_items() {
String tag_json_obj = "json_category_req";
isSubcat = false;
Map<String, String> params = new HashMap<>();
params.put("parent", "");
isSubcat = true;
/* if (parent_id != null && parent_id != "") {
}*/

CustomVolleyJsonRequest jsonObjReq = new CustomVolleyJsonRequest(Request.Method.POST,
BaseURL.GET_CATEGORY_URL, params, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());

try {
if (response != null && response.length() > 0) {
boolean status = response.getBoolean("responce");
if (status) {
Gson gson = new Gson();
Type listType = new TypeToken<List<Home_Icon_model>>() {
}.getType();
menu_models = gson.fromJson(response.getString("data"), listType);
menu_adapter = new Home_Icon_Adapter(menu_models);
rv_headre_icons.setAdapter(menu_adapter);
menu_adapter.notifyDataSetChanged();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(getActivity(), getResources().getString(R.string.connection_time_out), Toast.LENGTH_SHORT).show();
}
}
});

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

}

// private void fetchLocation() {
// if (ActivityCompat.checkSelfPermission(
// getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
// getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
// return;
// }
// Task<Location> task = fusedLocationProviderClient.getLastLocation();
// task.addOnSuccessListener(new OnSuccessListener<Location>() {
// @Override
// public void onSuccess(Location location) {
// if (location != null) {
// try {
// Geocoder geocoder = new Geocoder(getActivity(), Locale.getDefault());
// List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
// tv_latitude.setText(Html.fromHtml("<font color='#6200ee'> <b>Latitude : </b><br></font>"
// + addresses.get(0).getLatitude()));
// tv_langitude.setText(Html.fromHtml("<font color='#6200ee'> <b>Longitude : </b><br></font>"
// + addresses.get(0).getLongitude()));
// tv_fulladdress.setText(Html.fromHtml("<font color='#6200ee'> <b>Address : </b><br></font>"
// + addresses.get(0).getAddressLine(0)));
// Log.d("lati","lat : "+addresses.get(0).getLatitude()+" " +"lan: " +addresses.get(0).getLongitude());
//
// } catch (IOException e) {
// e.printStackTrace();
// }
// currentLocation = location;
// Toast.makeText(getActivity(), currentLocation.getLatitude() + "" + currentLocation.getLongitude(), Toast.LENGTH_SHORT).show();
// SupportMapFragment supportMapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
//// SupportMapFragment supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
//
// assert supportMapFragment != null;
//// supportMapFragment.getMapAsync(this);
// }
// }
// });
// }


@Override
public void onMapReady(GoogleMap googleMap) {
LatLng latLng = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude());
MarkerOptions markerOptions = new MarkerOptions().position(latLng).title("I am here!");
googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 5));
googleMap.addMarker(markerOptions);
}


public static class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
private final int spanCount;
private final int spacing;
private final boolean includeEdge;

public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {
this.spanCount = spanCount;
this.spacing = spacing;
this.includeEdge = includeEdge;
}

//Defining retrofit api service

@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, RecyclerView parent, @NonNull RecyclerView.State state) {
int position = parent.getChildAdapterPosition(view); // item position
int column = position % spanCount; // item column

if (includeEdge) {
outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)
outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)

if (position < spanCount) { // top edge
outRect.top = spacing;
}
outRect.bottom = spacing; // item bottom
} else {
outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)
outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f / spanCount) * spacing)
if (position >= spanCount) {
outRect.top = spacing; // item top
}
}
}
}

private int dpToPx() {
Resources r = getResources();
return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, r.getDisplayMetrics()));
}

public void reviewOnApp() {
Uri uri = Uri.parse("market://details?id=" + requireActivity().getPackageName());
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://play.google.com/store/apps/details?id=" + requireActivity().getPackageName())));
}
}

public void shareApp() {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, String.format("I found best Grocery app , Check it out . http://play.google.com/store/apps/details?id=%s APP", requireActivity().getPackageName()));
sendIntent.setType("text/plain");
startActivity(sendIntent);
}

public boolean isPermissionGranted() {
if (Build.VERSION.SDK_INT >= 23) {
if (requireContext().checkSelfPermission(android.Manifest.permission.CALL_PHONE)
== PackageManager.PERMISSION_GRANTED) {
Log.v("TAG", "Permission is granted");
return true;
} else {

Log.v("TAG", "Permission is revoked");
ActivityCompat.requestPermissions(requireActivity(), new String[]{Manifest.permission.CALL_PHONE}, 1);
return false;
}
} else { //permission is automatically granted on sdk<23 upon installation
Log.v("TAG", "Permission is granted");
return true;
}
}


public void call_action() {
//created -by napcafe
// dialog before call -napcafe
AlertDialog.Builder alertDialog = new AlertDialog.Builder(requireActivity());
alertDialog.setMessage(getResources().getString(R.string.call_msg));
alertDialog.setTitle("Customer Care");
alertDialog.setIcon(R.drawable.call_answer);
alertDialog.setNegativeButton(getResources().getString(R.string.cancle), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
alertDialog.setPositiveButton(getResources().getString(R.string.call), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// on ok call
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + getResources().getString(R.string.helpline_no)));
startActivity(callIntent);
dialogInterface.dismiss();
}
});
alertDialog.show();
}

public void chat_action() {
// dialog before call -napcafe
AlertDialog.Builder alertDialog = new AlertDialog.Builder(requireActivity());
alertDialog.setMessage(getResources().getString(R.string.call_msg));
alertDialog.setTitle("Chat With Us");
alertDialog.setIcon(R.drawable.mywhatsapp);
alertDialog.setNegativeButton(getResources().getString(R.string.cancle), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
alertDialog.setPositiveButton(getResources().getString(R.string.start_chat), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// on ok whatsUp chat
String smsNumber = getResources().getString(R.string.whats_up_no);
Intent sendIntent = new Intent("android.intent.action.MAIN");
sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(smsNumber) + "@s.whatsapp.net");//phone number without "+" prefix
if (appInstalledOrNot(requireActivity())) {
startActivity(sendIntent);
dialogInterface.dismiss();
} else {
FabToast.makeText(getActivity(), "What'sApp not Installed", FabToast.LENGTH_LONG, FabToast.WARNING, FabToast.POSITION_CENTER).show();
}
}
});
alertDialog.show();
}

private boolean appInstalledOrNot(Context context) {
PackageManager pm = context.getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}

private void showInternetErrorDialog(Context context, final String method) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setMessage("Your Internet is very slow or not connected. Check your Internet Connection and try again.");
alertDialog.setTitle("No Internet");
alertDialog.setCancelable(false);
alertDialog.setIcon(R.drawable.no_internet);
alertDialog.setPositiveButton(getResources().getString(R.string.retry_net), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// on ok call
// if (NetworkConnection.connectionChecking(getApplicationContext())) {
// if (isInternetAvailable(getApplicationContext())){
if (method.contentEquals("run slider")) {
makeGetSliderRequest();
} else if (method.contentEquals("run category")) {
makeGetCategoryRequest();
} else if (method.contentEquals("run featuredSlider")) {
makeGetFeaturedSlider();
} else if (method.contentEquals("run bannerSlider")) {
makeGetBannerSliderRequest();
} else if (method.contentEquals("run all")) {
makeGetSliderRequest();
makeGetCategoryRequest();
makeGetFeaturedSlider();
makeGetBannerSliderRequest();
}
dialogInterface.dismiss();
// }else {
// Toast.makeText(getApplicationContext(),"Retry",Toast.LENGTH_LONG).show();
// }
}
});
alertDialog.show();
}

///check for app installed or no -by napcafe


@SuppressLint("UseCompatLoadingForDrawables")
public void exit_app_dailog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(requireActivity());
alertDialog.setMessage("Are you sure want to exit ?");
alertDialog.setTitle("Exit");
alertDialog.setIcon(getResources().getDrawable(R.drawable.exit));

alertDialog.setNegativeButton(getResources().getString(R.string.cancle), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
alertDialog.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// on ok call
// getActivity().finish();
requireActivity().finishAffinity();
dialogInterface.dismiss();
}
});
alertDialog.show();
}


@Override
public void onDestroy() {
super.onDestroy();
// internetStateChecker.stop();
}

@Override
public void onResume() {
super.onResume();
createLocationRequest();
// if (ConnectivityReceiver.isConnected()) {
//
// make_deal_of_the_day();
// make_top_selling();
//
//// displayLocationSettingsRequest(getActivity());
// createLocationRequest();
//
// } else {
// showInternetErrorDialog(getActivity(), "run all");
// }


}

private void showloadingDialog(Context context) {
//////////// loading dialog
loadingDialog = new Dialog(context);
loadingDialog.setContentView(R.layout.loading_progress_dialog);
loadingDialog.setCancelable(false);
loadingDialog.getWindow().setBackgroundDrawableResource(R.drawable.back_border);
loadingDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
// loadingDialog.show();
// Handler handler = new Handler();
// handler.postDelayed(new Runnable() {
// @Override
// public void run() {
// loadingDialog.dismiss();
// }
// },time);
//////////// loading dialog
}


// private void fetchLocation() {
// if (ActivityCompat.checkSelfPermission(
// getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
// getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
// return;
// }
// Task<Location> task = fusedLocationProviderClient.getLastLocation();
// task.addOnSuccessListener(new OnSuccessListener<Location>() {
// @Override
// public void onSuccess(Location location) {
// if (location != null) {
// currentLocation = location;
// Toast.makeText(getActivity(), currentLocation.getLatitude() + "" + currentLocation.getLongitude(), Toast.LENGTH_SHORT).show();
//// SupportMapFragment supportMapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.myMap);
// SupportMapFragment supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
// assert supportMapFragment != null;
// supportMapFragment.getMapAsync(this);
// }
// }
// });
// }


@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// displayLocationSettingsRequest(getActivity());
createLocationRequest();
}
} else {
requireActivity().finish();

}
}


// private void displayLocationSettingsRequest(Context context) {
// GoogleApiClient googleApiClient = new GoogleApiClient.Builder(context)
// .addApi(LocationServices.API).build();
// googleApiClient.connect();
//
// LocationRequest locationRequest = LocationRequest.create();
// locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// locationRequest.setInterval(10000);
// locationRequest.setFastestInterval(10000 / 2);
//
// LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest);
// builder.setAlwaysShow(true);
//
// PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build());
// result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
// @Override
// public void onResult(@NonNull LocationSettingsResult result) {
// final Status status = result.getStatus();
// switch (status.getStatusCode()) {
// case LocationSettingsStatusCodes.SUCCESS:
// Log.i(TAG, "All location settings are satisfied.");
// getLocation();
// break;
//
// case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
// Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to upgrade location settings ");
//
// try {
// // Show the dialog by calling startResolutionForResult(), and check the result
// // in onActivityResult().
// status.startResolutionForResult(getActivity(), 16);
// } catch (IntentSender.SendIntentException e) {
// Log.i(TAG, "PendingIntent unable to execute request.");
// }
// break;
// case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
// Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog not created.");
// break;
// }
// }
// });
// }

protected void createLocationRequest() {
LocationRequest mLocationRequest = LocationRequest.create();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);

SettingsClient client = LocationServices.getSettingsClient(requireActivity());
Task<LocationSettingsResponse> task = client.checkLocationSettings(builder.build());

task.addOnSuccessListener(requireActivity(), new OnSuccessListener<LocationSettingsResponse>() {
@Override
public void onSuccess(LocationSettingsResponse locationSettingsResponse) {
getLocation();
// All location settings are satisfied. The client can initialize
// location requests here.
// Toast.makeText(requireActivity(), "Permission Granted for Location", Toast.LENGTH_SHORT).show();

// ...
}
});

task.addOnFailureListener(requireActivity(), new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Toast.makeText(requireActivity(), "No Permission for Location", Toast.LENGTH_SHORT).show();
if (e instanceof ResolvableApiException) {
// Location settings are not satisfied, but this can be fixed
// by showing the user a dialog.
try {
// Show the dialog by calling startResolutionForResult(),
// and check the result in onActivityResult().
ResolvableApiException resolvable = (ResolvableApiException) e;
resolvable.startResolutionForResult(requireActivity(),
111);
} catch (IntentSender.SendIntentException sendEx) {
// Ignore the error.
}
}
}
});
}


}

No comments:

Post a Comment