浏览代码

Internationalisation

gautrais 7 年之前
父节点
当前提交
2410e83a23

+ 1 - 0
app/app.iml

@@ -96,6 +96,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-apk" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-main-apk-res" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />

+ 4 - 1
app/src/main/AndroidManifest.xml

@@ -55,7 +55,10 @@
         <activity
             android:name=".TutoActivity"
             android:theme="@style/AppTheme.NoActionBar.Fullscreen" />
-        <activity android:name=".EndActivity"
+        <activity
+            android:name=".EndActivity"
+            android:theme="@style/AppTheme.NoActionBar.Fullscreen" />
+        <activity android:name=".CrashActivity"
             android:theme="@style/AppTheme.NoActionBar.Fullscreen" />
     </application>
 

+ 46 - 1
app/src/main/java/macampcorp/macamp/activities/BombActivity.java

@@ -1,13 +1,16 @@
 package macampcorp.macamp.activities;
 
 import android.content.Intent;
+import android.graphics.Point;
 import android.graphics.Typeface;
 import android.os.Bundle;
 import android.support.design.widget.FloatingActionButton;
 import android.support.design.widget.Snackbar;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
+import android.view.Display;
 import android.view.View;
+import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -29,7 +32,7 @@ public class BombActivity extends AppCompatActivity {
     protected TextView mTvPassword;
     protected TextView mTvCar;
     protected TextView mTvBomb;
-
+    protected Button mButtons[] = new Button[12];
 
     /**
      * Si vrai, c'est que c'est la fin du jeu
@@ -90,6 +93,40 @@ public class BombActivity extends AppCompatActivity {
             }
 
         }, 0, 1000);
+
+        mButtons[0] = findViewById(R.id.button7);
+        mButtons[1] = findViewById(R.id.button8);
+        mButtons[2] = findViewById(R.id.button9);
+
+        mButtons[3] = findViewById(R.id.button4);
+        mButtons[4] = findViewById(R.id.button5);
+        mButtons[5] = findViewById(R.id.button6);
+
+
+        mButtons[6] = findViewById(R.id.button1);
+        mButtons[7] = findViewById(R.id.button2);
+        mButtons[8] = findViewById(R.id.button3);
+
+        mButtons[9] = findViewById(R.id.b_erase);
+        mButtons[10] = findViewById(R.id.button0);
+        mButtons[11] = findViewById(R.id.buttonOk);
+
+        Display display = getWindowManager().getDefaultDisplay();
+        Point size = new Point();
+        display.getSize(size);
+        int c = 70;
+        int width = size.x;
+        int height = size.y;
+
+        if(height<600) c=10;
+        else if(height>=600 && height<800) c=10;
+        else c=10;
+
+        for(int i=0; i<mButtons.length; i++)
+        {
+            mButtons[i].setHeight(c);
+            mButtons[i].setWidth(c);
+        }
     }
 
     protected String completeTypedString()
@@ -129,10 +166,12 @@ public class BombActivity extends AppCompatActivity {
                 setResult(0);
                 finish();
                 Toast.makeText(this, R.string.toast_ok, Toast.LENGTH_LONG).show();
+                clear();
             }else
             { //code mauvais
                 Toast.makeText(this,  R.string.toast_fail, Toast.LENGTH_LONG).show();
                 mGame.getBomb().addTime(-100);
+                clear();
             }
         }else
         Toast.makeText(this, R.string.toast_length, Toast.LENGTH_SHORT).show();
@@ -153,6 +192,12 @@ public class BombActivity extends AppCompatActivity {
     }
 
 
+    protected void clear()
+    {
+        mTyped="";
+        updatePassword();
+    }
+
     private void onButton(int k)
     {
         String cc ="0123456789";

+ 84 - 0
app/src/main/java/macampcorp/macamp/activities/CrashActivity.java

@@ -0,0 +1,84 @@
+package macampcorp.macamp.activities;
+
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.app.ActionBar;
+import android.app.Activity;
+import android.content.Intent;
+import android.media.MediaPlayer;
+import android.os.Handler;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+
+public class CrashActivity extends AppCompatActivity {
+    protected ImageView mImage;
+    protected ImageView mBsod;
+    protected View      mRoot;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_crash);
+        mImage=findViewById(R.id.im_anim);
+        mBsod=findViewById(R.id.im_bsod);
+        mRoot=findViewById(R.id.ll_root);
+
+        ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(mImage, "scaleX", 0);
+        ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(mImage, "scaleY", 0);
+        scaleDownX.setDuration(300);
+        scaleDownY.setDuration(300);
+
+        AnimatorSet scaleDown = new AnimatorSet();
+        scaleDown.play(scaleDownX).with(scaleDownY);
+        final MediaPlayer mp = MediaPlayer.create(this, R.raw.boom);
+        mp.start();
+        scaleDown.start();
+
+        final Activity t = this;
+        final Handler handler = new Handler();
+        final Runnable r = new Runnable()
+        {
+            public void run()
+            {
+                mRoot.setBackgroundColor(0xff0000fe);
+                mBsod.setVisibility(View.VISIBLE);
+                closeAfter(6000);
+            }
+        };
+        handler.postDelayed(r, 5000);
+    }
+
+    public void closeAfter(int x)
+    {
+        final Activity t = this;
+        final Handler handler = new Handler();
+        final Runnable r = new Runnable()
+        {
+            public void run()
+            {
+                finish();
+            }
+        };
+        handler.postDelayed(r, x);
+    }
+
+    public static void start(Activity a)
+    {
+        Intent it = new Intent(a, CrashActivity.class);
+        a.startActivity(it);
+    }
+
+    protected void hideActionBar()
+    {
+        View decorView = getWindow().getDecorView();
+// Hide the status bar.
+        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
+        decorView.setSystemUiVisibility(uiOptions);
+// Remember that you should never show the action bar if the
+// status bar is hidden, so hide that too if necessary.
+        ActionBar actionBar = getActionBar();
+        actionBar.hide();
+    }
+}

+ 2 - 0
app/src/main/java/macampcorp/macamp/activities/EndActivity.java

@@ -44,6 +44,7 @@ public class EndActivity extends AppCompatActivity {
         {
             mText.setText(Html.fromHtml(mTextLoose));
             mRetry.setVisibility(View.VISIBLE);
+            CrashActivity.start(this);
         }
     }
 
@@ -62,6 +63,7 @@ public class EndActivity extends AppCompatActivity {
     public void onRetry(View v)
     {
         HostActivity.startGame(this, true);
+        finish();
     }
 
     public static void start(Activity a, boolean win)

+ 23 - 12
app/src/main/java/macampcorp/macamp/activities/PermissionActivity.java

@@ -4,19 +4,25 @@ import android.Manifest;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.KeyguardManager;
+import android.app.admin.DevicePolicyManager;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.os.PowerManager;
+import android.os.SystemClock;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.text.Html;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.TextView;
 
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 
 import macampcorp.macamp.game.Game;
@@ -24,14 +30,20 @@ import macampcorp.macamp.game.Resource;
 import macampcorp.macamp.lang.Locale;
 import macampcorp.macamp.utils.files.FileManager;
 
+
+
 public class PermissionActivity extends AppCompatActivity {
-    private int m_nPerm=1;
+    private int m_nPerm;
     static final int PERM_FINE_LOCATION=1337;
     static final int ALL_PERMISSIONS=1337;
     static final int PERM_CAMERA=1338;
     static final int PERM_COARSE_LOCATION=1339;
     protected TextView mText;
 
+    protected static final String PERMISSIONS[] = {
+            Manifest.permission.CAMERA
+    };
+
     private static final String DISCLAMER="<h1>Attention :</h1> \n" +
             "<h2>Ce jeu nécessite des déplacement en ville.</h2>\n" +
             "Veillez à respecter les règles suivantes : <br>\n" +
@@ -46,6 +58,8 @@ public class PermissionActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_permission);
+
+        m_nPerm=PERMISSIONS.length;
         ArrayList<String> al = new ArrayList<String>();
 
         
@@ -59,11 +73,12 @@ public class PermissionActivity extends AppCompatActivity {
             mText.setText(Html.fromHtml(DISCLAMER, Html.FROM_HTML_MODE_COMPACT));
         }
 
-
-        if (ContextCompat.checkSelfPermission(this,   Manifest.permission.CAMERA)
-                != PackageManager.PERMISSION_GRANTED) {
-            al.add(Manifest.permission.CAMERA);
-        } else m_nPerm--;
+        for(int i=0; i<PERMISSIONS.length; i++) {
+            if (ContextCompat.checkSelfPermission(this, PERMISSIONS[i])
+                    != PackageManager.PERMISSION_GRANTED) {
+                al.add(PERMISSIONS[i]);
+            } else m_nPerm--;
+        }
 
 
         try {
@@ -72,11 +87,6 @@ public class PermissionActivity extends AppCompatActivity {
         }catch(Exception e) {
             e.printStackTrace();
         }
-
-
-
-
-
     }
 
 
@@ -131,7 +141,7 @@ public class PermissionActivity extends AppCompatActivity {
 
     public void onUnderstood(View v)
     {
-
+        //CrashActivity.start(this);
 
         if(m_nPerm==0)
         {
@@ -139,4 +149,5 @@ public class PermissionActivity extends AppCompatActivity {
         }
     }
 
+
 }

+ 6 - 6
app/src/main/res/layout/activity_bomb.xml

@@ -42,12 +42,6 @@
         app:layout_constraintStart_toEndOf="@+id/divider4"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <View
-        android:id="@+id/divider"
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="?android:attr/listDivider" />
-
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -56,6 +50,12 @@
         android:gravity="center_vertical|center_horizontal"
         android:orientation="vertical">
 
+        <View
+            android:id="@+id/divider"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/padding_afficheur"
+            android:background="?android:attr/listDivider" />
+
         <TextView
             android:id="@+id/tv_car"
             android:layout_width="183dp"

+ 31 - 0
app/src/main/res/layout/activity_crash.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/ll_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000000"
+    tools:context="macampcorp.macamp.activities.CrashActivity">
+
+    <ImageView
+        android:id="@+id/im_anim"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:srcCompat="@drawable/explosion" />
+
+    <ImageView
+        android:id="@+id/im_bsod"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:srcCompat="@drawable/bsod" />
+</android.support.constraint.ConstraintLayout>

二进制
app/src/main/res/raw/boom.wav


+ 5 - 0
app/src/main/res/values-large/dimens.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="bomb_key_size">80dp</dimen>
+    <dimen name="padding_afficheur" > 50dp</dimen>
+</resources>

+ 5 - 0
app/src/main/res/values-normal/dimens.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="bomb_key_size">60dp</dimen>
+    <dimen name="padding_afficheur" > 10dp</dimen>
+</resources>

+ 6 - 0
app/src/main/res/values-small/dimens.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <dimen name="bomb_key_size">40dp</dimen>
+    <dimen name="padding_afficheur" > 0dp</dimen>
+</resources>

+ 5 - 0
app/src/main/res/values-xlarge/dimens.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="bomb_key_size">120dp</dimen>
+    <dimen name="padding_afficheur" > 250dp</dimen>
+</resources>

+ 2 - 1
app/src/main/res/values/dimens.xml

@@ -5,5 +5,6 @@
     <dimen name="fab_margin">16dp</dimen>
     <dimen name="title_height">70dp</dimen>
     <dimen name="title_text_size">30dp</dimen>
-    <dimen name="bomb_key_size">70dp</dimen>
+    <dimen name="bomb_key_size">60dp</dimen>
+    <dimen name="padding_afficheur" />
 </resources>

+ 2 - 5
app/src/main/res/values/styles.xml

@@ -9,16 +9,13 @@
     </style>
 
     <style name="FullscreenTheme" parent="AppTheme">
-        <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
         <item name="android:windowActionBarOverlay">true</item>
         <item name="android:windowBackground">@null</item>
         <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
         <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
     </style>
 
-    <style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
-        <item name="android:background">@color/black_overlay</item>
-    </style>
+
 
     <style name="AppTheme.NoActionBar">
         <item name="windowActionBar">false</item>
@@ -26,7 +23,7 @@
     </style>
 
     <style name="AppTheme.NoActionBar.Fullscreen">
-        <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
+        <item name="windowActionBar">false</item>
         <item name="windowNoTitle">true</item>
     </style>