PermissionActivity.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package app.mar.activities;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.content.DialogInterface;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.support.v4.app.ActivityCompat;
  9. import android.support.v4.content.ContextCompat;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.os.Bundle;
  12. import android.text.Html;
  13. import android.view.View;
  14. import android.widget.TextView;
  15. import java.util.ArrayList;
  16. import app.mar.game.Game;
  17. import app.mar.game.Resource;
  18. import app.mar.utils.files.FileManager;
  19. public class PermissionActivity extends AppCompatActivity {
  20. private int m_nPerm=3;
  21. static final int PERM_FINE_LOCATION=1337;
  22. static final int ALL_PERMISSIONS=1337;
  23. static final int PERM_CAMERA=1338;
  24. static final int PERM_COARSE_LOCATION=1339;
  25. protected TextView mText;
  26. private static final String DISCLAMER="<h1>Attention :</h1> \n" +
  27. "<h2>Ce jeu nécessite des déplacement en ville.</h2>\n" +
  28. "Veillez à respecter les règles suivantes : <br>\n" +
  29. "Les enfants doivent être accompagnés d’un adulte. <br>\n" +
  30. "Faites attention à la circulation. <br>\n" +
  31. "Soyez vigilant sur l’environnement (altitude, marches, etc). <br>\n" +
  32. "Ne jouer pas en conduisant. <br>\n" +
  33. "\n" +
  34. "<h3>Restez toujours conscient de votre environnement.</h3>\n" +
  35. "<h3>En continuant, vous convenez que l’utilisation du jeu est à vos propres risques et responsabilités.</h3>";
  36. @Override
  37. protected void onCreate(Bundle savedInstanceState) {
  38. super.onCreate(savedInstanceState);
  39. setContentView(R.layout.activity_permission);
  40. ArrayList<String> al = new ArrayList<String>();
  41. FileManager.init(this);
  42. mText = (TextView) findViewById(R.id.disclamer);
  43. if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N) {
  44. mText.setText(Html.fromHtml(DISCLAMER));
  45. }else
  46. {
  47. mText.setText(Html.fromHtml(DISCLAMER, Html.FROM_HTML_MODE_COMPACT));
  48. }
  49. if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
  50. != PackageManager.PERMISSION_GRANTED) {
  51. al.add(Manifest.permission.ACCESS_FINE_LOCATION);
  52. } else m_nPerm--;
  53. if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
  54. != PackageManager.PERMISSION_GRANTED) {
  55. al.add(Manifest.permission.CAMERA);
  56. } else m_nPerm--;
  57. if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
  58. != PackageManager.PERMISSION_GRANTED) {
  59. al.add(Manifest.permission.ACCESS_COARSE_LOCATION);
  60. } else m_nPerm--;
  61. try {
  62. if (al.size() > 0)
  63. ActivityCompat.requestPermissions(this, al.toArray(new String[m_nPerm]), ALL_PERMISSIONS);
  64. }catch(Exception e) {
  65. e.printStackTrace();
  66. }
  67. }
  68. public void askForReset()
  69. {
  70. final Activity t = this;
  71. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  72. // Add the buttons
  73. builder.setPositiveButton("Oui", new DialogInterface.OnClickListener() {
  74. public void onClick(DialogInterface dialog, int id) {
  75. startGame();
  76. Resource.logNotFound();
  77. }
  78. });
  79. builder.setNegativeButton("Non", new DialogInterface.OnClickListener() {
  80. public void onClick(DialogInterface dialog, int id) {
  81. Game.erase(t);
  82. Game.setGame(null);
  83. startGame();
  84. Resource.logNotFound();
  85. }
  86. });
  87. // Set other dialog properties
  88. builder.setMessage("Voulez vous continuer la partie ?");
  89. // Create the AlertDialog
  90. AlertDialog dialog = builder.create();
  91. dialog.show();
  92. }
  93. public void onRequestPermissionsResult(int requestCode,
  94. String permissions[], int[] grantResults) {
  95. for(int i=0; i<permissions.length; i++) {
  96. switch (requestCode) {
  97. case ALL_PERMISSIONS:
  98. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
  99. m_nPerm--;
  100. else
  101. {
  102. finish();
  103. System.exit(0);
  104. }
  105. break;
  106. }
  107. }
  108. }
  109. public void startGame()
  110. {
  111. Intent intent = new Intent(this, LoadingActivity.class);
  112. startActivity(intent);
  113. finish();
  114. }
  115. public void onUnderstood(View v)
  116. {
  117. if(m_nPerm==0)
  118. {
  119. askForReset();
  120. }
  121. }
  122. }