Advertisement
Guest User

Aiman

a guest
Oct 15th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.75 KB | None | 0 0
  1. import android.Manifest;
  2. import android.app.AlertDialog;
  3. import android.content.DialogInterface;
  4. import android.os.Bundle;
  5. import android.support.annotation.NonNull;
  6. import android.support.annotation.Nullable;
  7. import android.support.v4.app.Fragment;
  8. import android.view.KeyEvent;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.Button;
  13.  
  14. import com.google.android.gms.auth.api.Auth;
  15. import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
  16. import com.google.android.gms.common.api.GoogleApiClient;
  17. import com.google.android.gms.common.api.ResultCallback;
  18. import com.google.android.gms.common.api.Status;
  19. import com.google.firebase.database.core.Context;
  20. import com.vego.vego.R;
  21.  
  22. import java.util.Objects;
  23.  
  24. //
  25. // Main_Fragment.java
  26. // Stackoverflow
  27. //
  28. // Created by Aiman Qaid on 16/10/2019.
  29. // Copyright All rights reserved.
  30. //
  31. public class Main_Fragment extends Fragment {
  32.  
  33.  
  34.  
  35. private static Button btn_parques, btn_postos, btn_dados, btn_mapa, btn_noticias, btn_meteor, btn_sug;
  36. // private FusedLocationProviderClient fusedLocationClient;
  37. private Boolean mLocationPermissionGranted = false;
  38. private static final String FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
  39. private static final String COURSE_LOCATION = Manifest.permission.ACCESS_COARSE_LOCATION;
  40. private static final int LOCATION_PERMISSION_REQUEST_CODE = 1234;
  41. //private GoogleSignInClient mGoogleSignInClient;
  42. private Context mContext;
  43. private GoogleApiClient mGoogleApiClient;
  44. // private GoogleApiClient mGoogleApiClient;
  45.  
  46. @Override
  47. public void onCreate(Bundle savedInstanceState) {
  48. super.onCreate(savedInstanceState);
  49. /* setContentView(R.layout.main);
  50.  
  51. if (savedInstanceState == null) {
  52. Fragment fg = new Right();
  53. getFragmentManager().beginTransaction().add(R.id.right_frag, fg)
  54. .commit();
  55. }*/
  56. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
  57. .requestEmail()
  58. .build();
  59. mGoogleApiClient = new GoogleApiClient.Builder(Objects.requireNonNull(getContext()))
  60. .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  61. .build();
  62. mGoogleApiClient.connect();
  63.  
  64. }
  65.  
  66. @Override
  67. public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  68. View view = inflater.inflate(R.layout.fragment_main_, container, false);
  69.  
  70. // btn_parques = (Button) view.findViewById(R.id.btn_parques);
  71. // btn_postos = (Button) view.findViewById(R.id.btn_postos);
  72. // btn_dados = (Button) view.findViewById(R.id.btn_dados);
  73. // btn_mapa = (Button) view.findViewById(R.id.btn_mapa);
  74. // btn_noticias = (Button) view.findViewById(R.id.btn_noticias);
  75. // btn_meteor = (Button) view.findViewById(R.id.btn_meteor);
  76. // btn_sug = (Button) view.findViewById(R.id.btn_sug);
  77.  
  78. // mContext = getActivity();
  79.  
  80. // getLocationPermission();
  81.  
  82. enableMyLocation();
  83.  
  84.  
  85.  
  86. /**
  87. * Ao carregar no botão dos Parques, faz a transição para o Parque_fragment
  88. */
  89. btn_parques.setOnClickListener(new View.OnClickListener() {
  90. public void onClick(View v) {
  91. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  92. // tt.replace(R.id.fragment_container, new Parque_Fragment());
  93. // tt.commit();
  94. // tt.addToBackStack(null);
  95. }
  96. });
  97. /**
  98. * Ao carregar no botão dos Postos, faz a transição para o PostosEletricos_fragment
  99. */
  100. btn_postos.setOnClickListener(new View.OnClickListener() {
  101. public void onClick(View v) {
  102. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  103. // tt.replace(R.id.fragment_container, new PostosEletricos_Fragment());
  104. // tt.commit();
  105. // tt.addToBackStack(null);
  106. }
  107. });
  108. /**
  109. * Ao carregar no botão do Conjunto de Dados, faz a transição para os Dados_Fragment
  110. */
  111. btn_dados.setOnClickListener(new View.OnClickListener() {
  112. public void onClick(View v) {
  113. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  114. // tt.replace(R.id.fragment_container, new Dados_Fragment());
  115. // tt.commit();
  116. // tt.addToBackStack(null);
  117. }
  118. });
  119. /**
  120. * Ao carregar no botão do Mapa, faz a transição para o Map_fragment
  121. */
  122. btn_mapa.setOnClickListener(new View.OnClickListener() {
  123. public void onClick(View v) {
  124. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  125. // tt.replace(R.id.fragment_container, new Map_Fragment());
  126. // tt.commit();
  127. // tt.addToBackStack(null);
  128. }
  129. });
  130. /**
  131. * Ao carregar no botão das noticias, faz a transição para o News_fragment
  132. */
  133. btn_noticias.setOnClickListener(new View.OnClickListener() {
  134. public void onClick(View v) {
  135. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  136. // tt.replace(R.id.fragment_container, new News_Fragment());
  137. // tt.commit();
  138. // tt.addToBackStack(null);
  139. }
  140. });
  141. /**
  142. * Ao carregar no botão da Meteorologia, faz a transição para Weather_fragment
  143. */
  144. btn_meteor.setOnClickListener(new View.OnClickListener() {
  145. public void onClick(View v) {
  146. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  147. // tt.replace(R.id.fragment_container, new Weather_Fragment());
  148. // tt.commit();
  149. // tt.addToBackStack(null);
  150. }
  151. });
  152. /**
  153. * Ao carregar no botão da Sugestão, faz a transição para Sugestoes_Fragment
  154. */
  155. btn_sug.setOnClickListener(new View.OnClickListener() {
  156. public void onClick(View v) {
  157. // FragmentTransaction tt = getFragmentManager().beginTransaction();
  158. // tt.replace(R.id.fragment_container, new Sugestoes_Fragment());
  159. // tt.commit();
  160. // tt.addToBackStack(null); //volta para a "pagina anterior" do fragmento
  161. }
  162. });
  163.  
  164.  
  165. return view;
  166. }
  167. /**
  168. * Método que calcula a distancia entre a localizacao atual do utilizador
  169. * e a localizacao de cada parque
  170. * Ordena os parques de estacionamento ascendentemente por parque mais proximo
  171. */
  172. private void enableMyLocation(){
  173.  
  174. // fusedLocationClient = LocationServices.getFusedLocationProviderClient(mContext);
  175. //
  176. // try{
  177. // if(mLocationPermissionGranted) {
  178. //
  179. // Task location = fusedLocationClient.getLastLocation();
  180. // location.addOnCompleteListener(new OnCompleteListener() {
  181. // @Override
  182. // public void onComplete(@NonNull Task task) {
  183. // if (task.isSuccessful()) {
  184. // Location currentLocation = (Location) task.getResult();
  185. // }
  186. // }
  187. // });
  188. // }
  189. // } catch (Exception e) {
  190. // e.printStackTrace();
  191. // }
  192. // }
  193. //
  194. // /**
  195. // * Método que verifica as permissoes necessarias para aceder à localizacao atual
  196. // */
  197. // private void getLocationPermission(){
  198. // String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};
  199. //
  200. // if(ContextCompat.checkSelfPermission(mContext.getApplicationContext(), FINE_LOCATION) == PackageManager.PERMISSION_GRANTED){
  201. // if(ContextCompat.checkSelfPermission(mContext.getApplicationContext(), COURSE_LOCATION) == PackageManager.PERMISSION_GRANTED){
  202. // mLocationPermissionGranted = true;
  203. // } else {
  204. // ActivityCompat.requestPermissions((Activity) getActivity(), permissions, LOCATION_PERMISSION_REQUEST_CODE);
  205. // }
  206. // } else {
  207. // ActivityCompat.requestPermissions((Activity) getActivity(), permissions, LOCATION_PERMISSION_REQUEST_CODE);
  208. // }
  209. }
  210.  
  211.  
  212. @Override
  213. public void onResume() {
  214. super.onResume();
  215.  
  216. getView().setFocusableInTouchMode(true);
  217. getView().requestFocus();
  218. getView().setOnKeyListener(new View.OnKeyListener() {
  219. @Override
  220. public boolean onKey(View v, int keyCode, KeyEvent event) {
  221. if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
  222. final AlertDialog.Builder builder = new AlertDialog.Builder(getContext())//.this
  223. .setMessage("Tem a certeza que pretende sair?")
  224. .setCancelable(true)
  225. .setNegativeButton("Não", new DialogInterface.OnClickListener() {
  226. @Override
  227. public void onClick(DialogInterface dialog, int which) {
  228. dialog.cancel();
  229. }
  230. });
  231. builder.setPositiveButton("Sair", new DialogInterface.OnClickListener() {
  232. @Override
  233. public void onClick(DialogInterface dialog, int which) {
  234.  
  235. Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
  236. new ResultCallback<Status>() {
  237. @Override
  238. public void onResult(Status status) {
  239. // ... your code goes here
  240.  
  241.  
  242. }
  243. });
  244. /* Intent intent=new Intent(getContext(), Login.class); //ProfileActivity.this
  245. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  246. startActivity(intent);
  247. getActivity().finish();*/
  248.  
  249. }
  250. });
  251.  
  252. AlertDialog alertDialog = builder.create();
  253. alertDialog.show();
  254.  
  255. return true;
  256. }
  257.  
  258. return false;
  259. }
  260. });
  261. }
  262.  
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement