diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/markdown-navigator/profiles_settings.xml b/.idea/markdown-navigator/profiles_settings.xml new file mode 100644 index 0000000..57927c5 --- /dev/null +++ b/.idea/markdown-navigator/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b0a270f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..92fb2f5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/acrylic/.gitignore b/acrylic/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/acrylic/.gitignore @@ -0,0 +1 @@ +/build diff --git a/acrylic/build.gradle b/acrylic/build.gradle new file mode 100644 index 0000000..8aad7e4 --- /dev/null +++ b/acrylic/build.gradle @@ -0,0 +1,32 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.2" + + defaultConfig { + applicationId "anupam.acrylic" + minSdkVersion 15 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:25.1.1' + testCompile 'junit:junit:4.12' +} diff --git a/acrylic/proguard-rules.pro b/acrylic/proguard-rules.pro new file mode 100644 index 0000000..82c750e --- /dev/null +++ b/acrylic/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Edmur\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/acrylic/src/androidTest/java/anupam/acrylic/ExampleInstrumentedTest.java b/acrylic/src/androidTest/java/anupam/acrylic/ExampleInstrumentedTest.java new file mode 100644 index 0000000..06cd55b --- /dev/null +++ b/acrylic/src/androidTest/java/anupam/acrylic/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package anupam.acrylic; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("anupam.acrylic", appContext.getPackageName()); + } +} diff --git a/acrylic/src/main/AndroidManifest.xml b/acrylic/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e244c56 --- /dev/null +++ b/acrylic/src/main/AndroidManifest.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/acrylic/src/main/java/anupam/acrylic/AboutActivity.java b/acrylic/src/main/java/anupam/acrylic/AboutActivity.java new file mode 100644 index 0000000..26d3bb9 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/AboutActivity.java @@ -0,0 +1,21 @@ +package anupam.acrylic; + +import android.app.Activity; +import android.os.Bundle; +import android.text.Html; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.widget.TextView; + +public class AboutActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + Spanned htmlText = Html.fromHtml(getResources().getString(R.string.about_description)); + TextView aboutTextView = (TextView) findViewById(R.id.aboutTextView); + aboutTextView.setText(htmlText); + aboutTextView.setMovementMethod(LinkMovementMethod.getInstance()); + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/ColorPickerDialog.java b/acrylic/src/main/java/anupam/acrylic/ColorPickerDialog.java new file mode 100644 index 0000000..947b52f --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/ColorPickerDialog.java @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2014 Valerio Bozzolan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package anupam.acrylic; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorMatrix; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.SweepGradient; +import android.os.Bundle; +import android.view.MotionEvent; +import android.view.View; + +@SuppressLint("ClickableViewAccessibility") +public class ColorPickerDialog extends Dialog { + + private OnColorChangedListener mListener; + private int mInitialColor; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + OnColorChangedListener l = new OnColorChangedListener() { + public void colorChanged(int color) { + mListener.colorChanged(color); + dismiss(); + } + }; + + setContentView(new ColorPickerView(getContext(), l, mInitialColor)); + setTitle(R.string.pick_color); + } + + public interface OnColorChangedListener { + void colorChanged(int color); + } + + private static class ColorPickerView extends View { + private static final int CENTER_X = 230; + private static final int CENTER_Y = 230; + private static final int CENTER_RADIUS = 100; + private Paint mPaint; + private Paint mCenterPaint; + private final int[] mColors; + private OnColorChangedListener mListener; + private boolean mTrackingCenter; + private boolean mHighlightCenter; + + ColorPickerView(Context c, OnColorChangedListener l, int color) { + super(c); + mListener = l; + mColors = new int[] { + 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, + 0xFFFFFF00, 0xFFFF0000 + }; + Shader s = new SweepGradient(0, 0, mColors, null); + + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mPaint.setShader(s); + mPaint.setStyle(Paint.Style.STROKE); + mPaint.setStrokeWidth(32); + + mCenterPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mCenterPaint.setColor(color); + mCenterPaint.setStrokeWidth(EasyPaint.DEFAULT_BRUSH_SIZE); + } + + @Override + protected void onDraw(Canvas canvas) { + + float r = CENTER_X - mPaint.getStrokeWidth()*0.5f - 30; + + canvas.translate(CENTER_X, CENTER_X); + + canvas.drawOval(new RectF(-r, -r, r, r), mPaint); + canvas.drawCircle(0, 0, CENTER_RADIUS, mCenterPaint); + + if (mTrackingCenter) { + int c = mCenterPaint.getColor(); + mCenterPaint.setStyle(Paint.Style.STROKE); + + if (mHighlightCenter) { + mCenterPaint.setAlpha(0xFF); + } else { + mCenterPaint.setAlpha(0x80); + } + canvas.drawCircle(0, 0, + CENTER_RADIUS + mCenterPaint.getStrokeWidth(), + mCenterPaint); + + mCenterPaint.setStyle(Paint.Style.FILL); + mCenterPaint.setColor(c); + } + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + setMeasuredDimension(CENTER_X*2, CENTER_Y*2); + } + + private int floatToByte(float x) { + int n = java.lang.Math.round(x); + return n; + } + private int pinToByte(int n) { + if (n < 0) { + n = 0; + } else if (n > 255) { + n = 255; + } + return n; + } + + private int ave(int s, int d, float p) { + return s + java.lang.Math.round(p * (d - s)); + } + + private int interpColor(int colors[], float unit) { + if (unit <= 0) { + return colors[0]; + } + if (unit >= 1) { + return colors[colors.length - 1]; + } + + float p = unit * (colors.length - 1); + int i = (int)p; + p -= i; + + // now p is just the fractional part [0...1) and i is the index + int c0 = colors[i]; + int c1 = colors[i+1]; + int a = ave(Color.alpha(c0), Color.alpha(c1), p); + int r = ave(Color.red(c0), Color.red(c1), p); + int g = ave(Color.green(c0), Color.green(c1), p); + int b = ave(Color.blue(c0), Color.blue(c1), p); + + return Color.argb(a, r, g, b); + } + + @SuppressWarnings("unused") + private int rotateColor(int color, float rad) { + float deg = rad * 180 / 3.1415927f; + int r = Color.red(color); + int g = Color.green(color); + int b = Color.blue(color); + + ColorMatrix cm = new ColorMatrix(); + ColorMatrix tmp = new ColorMatrix(); + + cm.setRGB2YUV(); + tmp.setRotate(0, deg); + cm.postConcat(tmp); + tmp.setYUV2RGB(); + cm.postConcat(tmp); + + final float[] a = cm.getArray(); + + int ir = floatToByte(a[0] * r + a[1] * g + a[2] * b); + int ig = floatToByte(a[5] * r + a[6] * g + a[7] * b); + int ib = floatToByte(a[10] * r + a[11] * g + a[12] * b); + + return Color.argb(Color.alpha(color), pinToByte(ir), + pinToByte(ig), pinToByte(ib)); + } + + private static final float PI = 3.1415926f; + + @Override + public boolean onTouchEvent(MotionEvent event) { + float x = event.getX() - CENTER_X; + float y = event.getY() - CENTER_Y; + boolean inCenter = java.lang.Math.sqrt(x*x + y*y) <= CENTER_RADIUS; + + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + mTrackingCenter = inCenter; + if (inCenter) { + mHighlightCenter = true; + invalidate(); + break; + } + case MotionEvent.ACTION_MOVE: + if (mTrackingCenter) { + if (mHighlightCenter != inCenter) { + mHighlightCenter = inCenter; + invalidate(); + } + } else { + float angle = (float)java.lang.Math.atan2(y, x); + // need to turn angle [-PI ... PI] into unit [0....1] + float unit = angle/(2*PI); + if (unit < 0) { + unit += 1; + } + mCenterPaint.setColor(interpColor(mColors, unit)); + invalidate(); + } + break; + case MotionEvent.ACTION_UP: + if (mTrackingCenter) { + if (inCenter) { + mListener.colorChanged(mCenterPaint.getColor()); + } + mTrackingCenter = false; // so we draw w/o halo + invalidate(); + } + break; + } + return true; + } + } + + public ColorPickerDialog(Context context, + OnColorChangedListener listener, + int initialColor) { + super(context); + + mListener = listener; + mInitialColor = initialColor; + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/EasyPaint.java b/acrylic/src/main/java/anupam/acrylic/EasyPaint.java new file mode 100644 index 0000000..cc29d57 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/EasyPaint.java @@ -0,0 +1,593 @@ +/* + * Copyright (C) 2014, 2016 Valerio Bozzolan & James Dearing (TheOpenSourceNinja) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package anupam.acrylic; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Calendar; +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.graphics.Bitmap; +import android.graphics.Bitmap.CompressFormat; +import android.graphics.BitmapShader; +import android.graphics.BlurMaskFilter; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.EmbossMaskFilter; +import android.graphics.MaskFilter; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.Point; +import android.graphics.PorterDuff.Mode; +import android.graphics.PorterDuffXfermode; +import android.graphics.PorterDuffColorFilter; +import android.graphics.Shader; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.provider.MediaStore; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.RenderScript; +import android.renderscript.ScriptIntrinsicBlur; +import android.util.Log; +import android.view.Display; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Toast; + +@SuppressLint("ClickableViewAccessibility") +public class EasyPaint extends GraphicsActivity implements + ColorPickerDialog.OnColorChangedListener { + + public static int DEFAULT_BRUSH_SIZE = 10; + private static int MAX_POINTERS = 10; + private static final float TOUCH_TOLERANCE = 4; + + private Paint mPaint; + private MaskFilter mEmboss; + private MaskFilter mBlur; + private static final int CHOOSE_IMAGE = 0; + private MyView contentView; + + private boolean waitingForBackgroundColor = false; //If true and colorChanged() is called, fill the background, else mPaint.setColor() + private boolean extractingColor = false; //If this is true, the next touch event should extract a color rather than drawing a line. + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // it removes the title from the actionbar(more space for icons?) + this.getActionBar().setDisplayShowTitleEnabled(false); + + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + contentView = new MyView( this ); + setContentView( contentView ); + + mPaint = new Paint(); + mPaint.setAntiAlias(true); + mPaint.setDither(true); + mPaint.setColor(Color.GREEN); + mPaint.setStyle(Paint.Style.STROKE); + mPaint.setStrokeJoin(Paint.Join.ROUND); + mPaint.setStrokeCap(Paint.Cap.ROUND); + mPaint.setStrokeWidth(DEFAULT_BRUSH_SIZE); + + // Where did these magic numbers come from? What do they mean? Can I change them? ~TheOpenSourceNinja + // Absolutely random numbers in order to see the emboss. asd! ~Valerio + mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.4f, 6, 3.5f); + + mBlur = new BlurMaskFilter(5, BlurMaskFilter.Blur.NORMAL); + + if (isFirstTime()) { + AlertDialog.Builder alert = new AlertDialog.Builder(this); + + alert.setTitle(R.string.app_name); + alert.setMessage(R.string.app_description); + alert.setNegativeButton(R.string.continue_fuck, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int whichButton) { + Toast.makeText(getApplicationContext(), + R.string.here_is_your_canvas, + Toast.LENGTH_SHORT).show(); + } + }); + + alert.show(); + } else { + Toast.makeText(getApplicationContext(), + R.string.here_is_your_canvas, Toast.LENGTH_SHORT).show(); + } + + loadFromIntents(); + } + + @Override + public void onBackPressed() { + + super.onBackPressed(); + return; + } + public void colorChanged(int color) { + if( waitingForBackgroundColor ) { + waitingForBackgroundColor = false; + contentView.mBitmapBackground.eraseColor( color ); + //int[] colors = new int[ 1 ]; + //colors[ 0 ] = color; + //contentView.mBitmapBackground = Bitmap.createBitmap( colors, contentView.mBitmapBackground.getWidth(), contentView.mBitmapBackground.getHeight(), contentView.mBitmapBackground.getConfig() ); + } else { + mPaint.setColor( color ); + } + } + + public class MyView extends View { + + public Bitmap mBitmap; + private Bitmap mBitmapBackground; + private Canvas mCanvas; + private Paint mBitmapPaint; + private MultiLinePathManager multiLinePathManager; + + private class LinePath extends Path { + private Integer idPointer; + private float lastX; + private float lastY; + + LinePath() { + this.idPointer = null; + } + + public float getLastX() { + return lastX; + } + + public float getLastY() { + return lastY; + } + + public void touchStart(float x, float y) { + this.reset(); + this.moveTo(x, y); + this.lastX = x; + this.lastY = y; + } + + public void touchMove(float x, float y) { + float dx = Math.abs(x - lastX); + float dy = Math.abs(y - lastY); + if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) { + this.quadTo(lastX, lastY, (x + lastX) / 2, (y + lastY) / 2); + lastX = x; + lastY = y; + } + } + + public boolean isDisassociatedFromPointer() { + return idPointer == null; + } + + public boolean isAssociatedToPointer(int idPointer) { + return this.idPointer != null + && (int) this.idPointer == idPointer; + } + + public void disassociateFromPointer() { + idPointer = null; + } + + public void associateToPointer(int idPointer) { + this.idPointer = idPointer; + } + } + + private class MultiLinePathManager { + public LinePath[] superMultiPaths; + + MultiLinePathManager(int maxPointers) { + superMultiPaths = new LinePath[maxPointers]; + for (int i = 0; i < maxPointers; i++) { + superMultiPaths[i] = new LinePath(); + } + } + + public LinePath findLinePathFromPointer(int idPointer) { + for (LinePath superMultiPath : superMultiPaths) { + if (superMultiPath.isAssociatedToPointer(idPointer)) { + return superMultiPath; + } + } + return null; + } + + public LinePath addLinePathWithPointer(int idPointer) { + for (LinePath superMultiPath : superMultiPaths) { + if (superMultiPath.isDisassociatedFromPointer()) { + superMultiPath.associateToPointer(idPointer); + return superMultiPath; + } + } + return null; + } + } + + public MyView(Context c) { + super(c); + + setId(R.id.CanvasId); + Display display = getWindowManager().getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + mBitmapBackground = Bitmap.createBitmap(size.x, size.y, Bitmap.Config.ARGB_8888); + mBitmap = Bitmap.createBitmap(size.x, size.y, + Bitmap.Config.ARGB_8888); + mCanvas = new Canvas(mBitmap); + mBitmapPaint = new Paint(Paint.DITHER_FLAG); + multiLinePathManager = new MultiLinePathManager(MAX_POINTERS); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + } + + @Override + protected void onDraw(Canvas canvas) { + canvas.drawColor(0xFFFFFFFF); + canvas.drawBitmap( mBitmapBackground, 0, 0, new Paint() ); + canvas.drawBitmap( mBitmap, 0, 0, mBitmapPaint ); + for (int i = 0; i < multiLinePathManager.superMultiPaths.length; i++) { + canvas.drawPath(multiLinePathManager.superMultiPaths[i], mPaint); + } + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + LinePath linePath; + int index; + int id; + int eventMasked = event.getActionMasked(); + switch (eventMasked) { + case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_POINTER_DOWN: { + index = event.getActionIndex( ); + id = event.getPointerId( index ); + + if( extractingColor ) { //If the user chose the 'extract color' menu option, the touch event indicates where they want to extract the color from. + extractingColor = false; + + View v = findViewById(R.id.CanvasId); + v.setDrawingCacheEnabled(true); + Bitmap cachedBitmap = v.getDrawingCache(); + + int newColor = cachedBitmap.getPixel( Math.round( event.getX( index ) ), Math.round( event.getY( index ) ) ); + + v.destroyDrawingCache(); + colorChanged( newColor ); + + Toast.makeText(getApplicationContext(), + R.string.color_extracted, + Toast.LENGTH_SHORT).show(); + } else { + + linePath = multiLinePathManager.addLinePathWithPointer( id ); + if( linePath != null ) { + linePath.touchStart( event.getX( index ), event.getY( index ) ); + } else { + Log.e( "anupam", "Too many fingers!" ); + } + } + + break; + } + case MotionEvent.ACTION_MOVE: + for (int i = 0; i < event.getPointerCount(); i++) { + id = event.getPointerId(i); + index = event.findPointerIndex(id); + linePath = multiLinePathManager.findLinePathFromPointer(id); + if (linePath != null) { + linePath.touchMove(event.getX(index), event.getY(index)); + } + } + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_POINTER_UP: + case MotionEvent.ACTION_CANCEL: + index = event.getActionIndex(); + id = event.getPointerId(index); + linePath = multiLinePathManager.findLinePathFromPointer(id); + if (linePath != null) { + linePath.lineTo(linePath.getLastX(), linePath.getLastY()); + + // Commit the path to our offscreen + mCanvas.drawPath(linePath, mPaint); + + // Kill this so we don't double draw + linePath.reset(); + + // Allow this LinePath to be associated to another idPointer + linePath.disassociateFromPointer(); + } + break; + } + invalidate(); + return true; + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + super.onPrepareOptionsMenu(menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + mPaint.setXfermode(null); + mPaint.setAlpha(0xFF); + + switch (item.getItemId()) { + case R.id.normal_brush_menu: + mPaint.setShader( null ); + mPaint.setMaskFilter(null); + return true; + case R.id.color_menu: + new ColorPickerDialog(this, this, mPaint.getColor()).show(); + return true; + case R.id.emboss_menu: + mPaint.setShader( null ); + mPaint.setMaskFilter(mEmboss); + return true; + + case R.id.blur_menu: + mPaint.setShader( null ); + mPaint.setMaskFilter(mBlur); + return true; + case R.id.size_menu: { + LayoutInflater inflater = ( LayoutInflater ) getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + View layout = inflater.inflate( R.layout.brush, + ( ViewGroup ) findViewById( R.id.root ) ); + AlertDialog.Builder builder = new AlertDialog.Builder( this ) + .setView( layout ); + builder.setTitle( R.string.choose_width ); + final AlertDialog alertDialog = builder.create( ); + alertDialog.show( ); + SeekBar sb = ( SeekBar ) layout.findViewById( R.id.brushSizeSeekBar ); + sb.setProgress( getStrokeSize( ) ); + final TextView txt = ( TextView ) layout + .findViewById( R.id.sizeValueTextView ); + txt.setText( String.format( + getResources( ).getString( R.string.your_selected_size_is ), + getStrokeSize( ) + 1 ) ); + sb.setOnSeekBarChangeListener( new SeekBar.OnSeekBarChangeListener( ) { + public void onProgressChanged( SeekBar seekBar, + final int progress, boolean fromUser ) { + // Do something here with new value + mPaint.setStrokeWidth( progress ); + txt.setText( String.format( + getResources( ).getString( + R.string.your_selected_size_is ), progress + 1 ) ); + } + + @Override + public void onStartTrackingTouch( SeekBar seekBar ) { + // TODO Auto-generated method stub + } + + @Override + public void onStopTrackingTouch( SeekBar seekBar ) { + // TODO Auto-generated method stub + } + } ); + return true; + } + case R.id.erase_menu: { + LayoutInflater inflater_e = ( LayoutInflater ) getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + View layout_e = inflater_e.inflate( R.layout.brush, + ( ViewGroup ) findViewById( R.id.root ) ); + AlertDialog.Builder builder_e = new AlertDialog.Builder( this ) + .setView( layout_e ); + builder_e.setTitle( R.string.choose_width ); + final AlertDialog alertDialog_e = builder_e.create( ); + alertDialog_e.show( ); + SeekBar sb_e = ( SeekBar ) layout_e.findViewById( R.id.brushSizeSeekBar ); + sb_e.setProgress( getStrokeSize( ) ); + final TextView txt_e = ( TextView ) layout_e + .findViewById( R.id.sizeValueTextView ); + txt_e.setText( String.format( + getResources( ).getString( R.string.your_selected_size_is ), + getStrokeSize( ) + 1 ) ); + sb_e.setOnSeekBarChangeListener( new SeekBar.OnSeekBarChangeListener( ) { + public void onProgressChanged( SeekBar seekBar, + final int progress, boolean fromUser ) { + // Do something here with new value + mPaint.setStrokeWidth( progress ); + txt_e.setText( String.format( + getResources( ).getString( + R.string.your_selected_size_is ), progress + 1 ) ); + } + + public void onStartTrackingTouch( SeekBar seekBar ) { + // TODO Auto-generated method stub + } + + public void onStopTrackingTouch( SeekBar seekBar ) { + // TODO Auto-generated method stub + } + } ); + mPaint.setShader( null ); + mPaint.setXfermode( new PorterDuffXfermode( Mode.CLEAR ) ); + return true; + } + case R.id.clear_all_menu: { + contentView.mBitmap.eraseColor( Color.TRANSPARENT ); + return true; + } + case R.id.save_menu: + takeScreenshot(true); + break; + case R.id.fill_background_with_color: { + waitingForBackgroundColor = true; + new ColorPickerDialog( this, this, contentView.mBitmapBackground.getPixel( 0, 0 ) ).show(); + return true; + } + case R.id.about_menu: + startActivity(new Intent(this, AboutActivity.class)); + break; + } + return super.onOptionsItemSelected(item); + } + + /** + * This takes the screenshot of the whole screen. Is this a good thing? + */ + private File takeScreenshot(boolean showToast) { + View v = findViewById(R.id.CanvasId); + v.setDrawingCacheEnabled(true); + Bitmap cachedBitmap = v.getDrawingCache(); + Bitmap copyBitmap = cachedBitmap.copy(Bitmap.Config.RGB_565, true); + v.destroyDrawingCache(); + FileOutputStream output = null; + File file = null; + try { + File path = Places.getScreenshotFolder(); + Calendar cal = Calendar.getInstance(); + + file = new File(path, + + cal.get(Calendar.YEAR) + "_" + (1 + cal.get(Calendar.MONTH)) + "_" + + cal.get(Calendar.DAY_OF_MONTH) + "_" + + cal.get(Calendar.HOUR_OF_DAY) + "_" + + cal.get(Calendar.MINUTE) + "_" + cal.get(Calendar.SECOND) + + ".png"); + output = new FileOutputStream(file); + copyBitmap.compress(CompressFormat.PNG, 100, output); + } catch (FileNotFoundException e) { + file = null; + e.printStackTrace(); + } finally { + if (output != null) { + try { + output.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + + if (file != null) { + if (showToast) + Toast.makeText( + getApplicationContext(), + String.format( + getResources().getString( + R.string.saved_your_location_to), + file.getAbsolutePath()), Toast.LENGTH_LONG) + .show(); + // sending a broadcast to the media scanner so it will scan the new + // screenshot. + Intent requestScan = new Intent( + Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); + requestScan.setData(Uri.fromFile(file)); + sendBroadcast(requestScan); + + return file; + } else { + return null; + } + } + + private boolean isFirstTime() { + SharedPreferences preferences = getPreferences(MODE_PRIVATE); + boolean ranBefore = preferences.getBoolean("RanBefore", false); + if (!ranBefore) { + // first time + SharedPreferences.Editor editor = preferences.edit(); + editor.putBoolean("RanBefore", true); + editor.commit(); + } + return !ranBefore; + } + + private int getStrokeSize() { + return (int) mPaint.getStrokeWidth(); + } + + public void onActivityResult( int requestCode, int resultCode, Intent data ) { + super.onActivityResult( requestCode, resultCode, data ); + + if( resultCode != RESULT_CANCELED ) { //"The resultCode will be RESULT_CANCELED if the activity explicitly returned that, didn't return any result, or crashed during its operation." (quote from https://developer.android.com/reference/android/app/Activity.html#onActivityResult(int,%20int,%20android.content.Intent) ) + switch( requestCode ) { + case CHOOSE_IMAGE: { + setBackgroundUri( data.getData() ); + } + } + } + } + + public void setBackgroundUri(Uri uri) { + if (uri == null) { + return; + } + + try { + //I don't like loading both full-sized and reduced-size copies of the image (the larger copy can use a lot of memory), but I couldn't find any other way to do this. + Bitmap fullsize = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri); + Bitmap resized = Bitmap.createScaledBitmap(fullsize, contentView.mBitmap.getWidth(), contentView.mBitmap.getHeight(), true); + contentView.mBitmapBackground = resized; + //contentView.mCanvas = new Canvas( contentView.mBitmapBackground ); + } catch (IOException exception) { + //TODO: How should we handle this exception? + } + } + + public void loadFromIntents() { + Intent intent = getIntent(); + String action = intent.getAction(); + String type = intent.getType(); + System.out.println("Intentoso " + action + " type " + type); + if(Intent.ACTION_SEND.equals(action) && type != null) { + if( type.startsWith("image/") ) { + setBackgroundUri( (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM) ); + } + + } + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/GraphicsActivity.java b/acrylic/src/main/java/anupam/acrylic/GraphicsActivity.java new file mode 100644 index 0000000..ebd8bb9 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/GraphicsActivity.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2014 Valerio Bozzolan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package anupam.acrylic; + +import android.app.Activity; +import android.content.pm.ActivityInfo; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; + +class GraphicsActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setRequestedOrientation( + ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + + @SuppressWarnings("unused") + @Override + public void setContentView(View view) { + if (false) { // set to true to test Picture + ViewGroup vg = new PictureLayout(this); + vg.addView(view); + view = vg; + } + super.setContentView(view); + } +} + diff --git a/acrylic/src/main/java/anupam/acrylic/MainActivity.java b/acrylic/src/main/java/anupam/acrylic/MainActivity.java new file mode 100644 index 0000000..3ddbec4 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/MainActivity.java @@ -0,0 +1,13 @@ +package anupam.acrylic; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/PictureLayout.java b/acrylic/src/main/java/anupam/acrylic/PictureLayout.java new file mode 100644 index 0000000..26a0037 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/PictureLayout.java @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2014 Valerio Bozzolan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package anupam.acrylic; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Picture; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; + + +public class PictureLayout extends ViewGroup { + private static String error = "PictureLayout can host only one direct child"; + private final Picture mPicture = new Picture(); + + public PictureLayout(Context context) { + super(context); + } + + public PictureLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void addView(View child) { + if (getChildCount() > 1) { + throw new IllegalStateException(error); + } + + super.addView(child); + } + + @Override + public void addView(View child, int index) { + if (getChildCount() > 1) { + throw new IllegalStateException(error); + } + + super.addView(child, index); + } + + @Override + public void addView(View child, LayoutParams params) { + if (getChildCount() > 1) { + throw new IllegalStateException(error); + } + + super.addView(child, params); + } + + @Override + public void addView(View child, int index, LayoutParams params) { + if (getChildCount() > 1) { + throw new IllegalStateException(error); + } + + super.addView(child, index, params); + } + + @Override + protected LayoutParams generateDefaultLayoutParams() { + return new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + final int count = getChildCount(); + + int maxHeight = 0; + int maxWidth = 0; + + for (int i = 0; i < count; i++) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + measureChild(child, widthMeasureSpec, heightMeasureSpec); + } + } + + maxWidth += getPaddingLeft() + getPaddingRight(); + maxHeight += getPaddingTop() + getPaddingBottom(); + + Drawable drawable = getBackground(); + if (drawable != null) { + maxHeight = Math.max(maxHeight, drawable.getMinimumHeight()); + maxWidth = Math.max(maxWidth, drawable.getMinimumWidth()); + } + + setMeasuredDimension(resolveSize(maxWidth, widthMeasureSpec), + resolveSize(maxHeight, heightMeasureSpec)); + } + + private void drawPict(Canvas canvas, int x, int y, int w, int h, + float sx, float sy) { + canvas.save(); + canvas.translate(x, y); + canvas.clipRect(0, 0, w, h); + canvas.scale(0.5f, 0.5f); + canvas.scale(sx, sy, w, h); + canvas.drawPicture(mPicture); + canvas.restore(); + } + + @SuppressWarnings("unused") + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(mPicture.beginRecording(getWidth(), getHeight())); + mPicture.endRecording(); + + int x = getWidth()/2; + int y = getHeight()/2; + + if (false) { + canvas.drawPicture(mPicture); + } else { + drawPict(canvas, 0, 0, x, y, 1, 1); + drawPict(canvas, x, 0, x, y, -1, 1); + drawPict(canvas, 0, y, x, y, 1, -1); + drawPict(canvas, x, y, x, y, -1, -1); + } + } + + @Override + public ViewParent invalidateChildInParent(int[] location, Rect dirty) { + location[0] = getLeft(); + location[1] = getTop(); + dirty.set(0, 0, getWidth(), getHeight()); + return getParent(); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + final int count = super.getChildCount(); + + for (int i = 0; i < count; i++) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + final int childLeft = getPaddingLeft(); + final int childTop = getPaddingTop(); + child.layout(childLeft, childTop, + childLeft + child.getMeasuredWidth(), + childTop + child.getMeasuredHeight()); + + } + } + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/Places.java b/acrylic/src/main/java/anupam/acrylic/Places.java new file mode 100644 index 0000000..2a7c690 --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/Places.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2014 Valerio Bozzolan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +package anupam.acrylic; + +import java.io.File; +import java.io.IOException; + +import android.os.Environment; + +public class Places { + public static File getScreenshotFolder() { + File path = new File(Environment.getExternalStorageDirectory(), + "/Acrylic Paint/"); + path.mkdirs(); + + return path; + } + + public static File getCameraTempFolder() { + File path = new File(Environment.getExternalStorageDirectory(), + "/Acrylic Paint/Temp/"); + path.mkdirs(); + // this folder should not be scanned + File noScanning = new File(path, ".nomedia"); + if (!noScanning.exists()) + try { + noScanning.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return path; + } + + public static File getCameraTempFile() { + return new File(getCameraTempFolder(), "temp.jpg"); + } +} diff --git a/acrylic/src/main/java/anupam/acrylic/Splash.java b/acrylic/src/main/java/anupam/acrylic/Splash.java new file mode 100644 index 0000000..10605ca --- /dev/null +++ b/acrylic/src/main/java/anupam/acrylic/Splash.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2014 Valerio Bozzolan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package anupam.acrylic; + +import android.app.Activity; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.os.Bundle; +import anupam.acrylic.R; + +public class Splash extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + setContentView(R.layout.main); + + Thread t = new Thread() { + + public void run() { + try { + Thread.sleep(1000); + + startActivity(new Intent().setClassName("anupam.acrylic", + "anupam.acrylic.EasyPaint")); + finish(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + t.start(); + } +} diff --git a/acrylic/src/main/res/drawable-hdpi/about.png b/acrylic/src/main/res/drawable-hdpi/about.png new file mode 100644 index 0000000..f92af44 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/about.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/blur.png b/acrylic/src/main/res/drawable-hdpi/blur.png new file mode 100644 index 0000000..3f6ae20 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/blur.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/clear_all.png b/acrylic/src/main/res/drawable-hdpi/clear_all.png new file mode 100644 index 0000000..2b525fb Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/clear_all.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/color.png b/acrylic/src/main/res/drawable-hdpi/color.png new file mode 100644 index 0000000..0b4203d Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/color.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/emboss.png b/acrylic/src/main/res/drawable-hdpi/emboss.png new file mode 100644 index 0000000..81d3eca Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/emboss.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/erase.png b/acrylic/src/main/res/drawable-hdpi/erase.png new file mode 100644 index 0000000..277b040 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/erase.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/extract_color.png b/acrylic/src/main/res/drawable-hdpi/extract_color.png new file mode 100644 index 0000000..ab02815 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/extract_color.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/fill_background_with_color.png b/acrylic/src/main/res/drawable-hdpi/fill_background_with_color.png new file mode 100644 index 0000000..9ca70d5 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/fill_background_with_color.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/ic_launcher.png b/acrylic/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000..30a1010 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/import_image.png b/acrylic/src/main/res/drawable-hdpi/import_image.png new file mode 100644 index 0000000..14bc447 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/import_image.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/save.png b/acrylic/src/main/res/drawable-hdpi/save.png new file mode 100644 index 0000000..30d0dd2 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/save.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/share.png b/acrylic/src/main/res/drawable-hdpi/share.png new file mode 100644 index 0000000..d4782a5 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/share.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/size.png b/acrylic/src/main/res/drawable-hdpi/size.png new file mode 100644 index 0000000..ea423a1 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/size.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/smudge.png b/acrylic/src/main/res/drawable-hdpi/smudge.png new file mode 100644 index 0000000..eb88cc9 Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/smudge.png differ diff --git a/acrylic/src/main/res/drawable-hdpi/splash.png b/acrylic/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000..ec0651d Binary files /dev/null and b/acrylic/src/main/res/drawable-hdpi/splash.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/about.png b/acrylic/src/main/res/drawable-mdpi/about.png new file mode 100644 index 0000000..4174936 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/about.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/blur.png b/acrylic/src/main/res/drawable-mdpi/blur.png new file mode 100644 index 0000000..ff288ae Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/blur.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/clear_all.png b/acrylic/src/main/res/drawable-mdpi/clear_all.png new file mode 100644 index 0000000..8921447 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/clear_all.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/color.png b/acrylic/src/main/res/drawable-mdpi/color.png new file mode 100644 index 0000000..dc48dc9 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/color.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/emboss.png b/acrylic/src/main/res/drawable-mdpi/emboss.png new file mode 100644 index 0000000..641a4e5 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/emboss.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/erase.png b/acrylic/src/main/res/drawable-mdpi/erase.png new file mode 100644 index 0000000..24d221d Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/erase.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/extract_color.png b/acrylic/src/main/res/drawable-mdpi/extract_color.png new file mode 100644 index 0000000..8a7902a Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/extract_color.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/fill_background_with_color.png b/acrylic/src/main/res/drawable-mdpi/fill_background_with_color.png new file mode 100644 index 0000000..e06fae0 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/fill_background_with_color.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/ic_launcher.png b/acrylic/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000..5f69df3 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/import_image.png b/acrylic/src/main/res/drawable-mdpi/import_image.png new file mode 100644 index 0000000..c63d256 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/import_image.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/save.png b/acrylic/src/main/res/drawable-mdpi/save.png new file mode 100644 index 0000000..e4c5adc Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/save.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/share.png b/acrylic/src/main/res/drawable-mdpi/share.png new file mode 100644 index 0000000..2e98e51 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/share.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/size.png b/acrylic/src/main/res/drawable-mdpi/size.png new file mode 100644 index 0000000..d9921b9 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/size.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/smudge.png b/acrylic/src/main/res/drawable-mdpi/smudge.png new file mode 100644 index 0000000..b01393a Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/smudge.png differ diff --git a/acrylic/src/main/res/drawable-mdpi/splash.png b/acrylic/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000..37caf10 Binary files /dev/null and b/acrylic/src/main/res/drawable-mdpi/splash.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/about.png b/acrylic/src/main/res/drawable-xhdpi/about.png new file mode 100644 index 0000000..82f68cd Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/about.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/blur.png b/acrylic/src/main/res/drawable-xhdpi/blur.png new file mode 100644 index 0000000..2a84a1a Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/blur.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/clear_all.png b/acrylic/src/main/res/drawable-xhdpi/clear_all.png new file mode 100644 index 0000000..8927f9a Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/clear_all.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/color.png b/acrylic/src/main/res/drawable-xhdpi/color.png new file mode 100644 index 0000000..16f2deb Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/color.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/emboss.png b/acrylic/src/main/res/drawable-xhdpi/emboss.png new file mode 100644 index 0000000..e01c5ce Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/emboss.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/erase.png b/acrylic/src/main/res/drawable-xhdpi/erase.png new file mode 100644 index 0000000..3ae2b80 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/erase.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/extract_color.png b/acrylic/src/main/res/drawable-xhdpi/extract_color.png new file mode 100644 index 0000000..1daf16f Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/extract_color.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/fill_background_with_color.png b/acrylic/src/main/res/drawable-xhdpi/fill_background_with_color.png new file mode 100644 index 0000000..50e4a97 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/fill_background_with_color.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/ic_launcher.png b/acrylic/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000..6be33f0 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/import_image.png b/acrylic/src/main/res/drawable-xhdpi/import_image.png new file mode 100644 index 0000000..6b8a298 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/import_image.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/save.png b/acrylic/src/main/res/drawable-xhdpi/save.png new file mode 100644 index 0000000..8ed5ac9 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/save.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/share.png b/acrylic/src/main/res/drawable-xhdpi/share.png new file mode 100644 index 0000000..1b784b0 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/share.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/size.png b/acrylic/src/main/res/drawable-xhdpi/size.png new file mode 100644 index 0000000..b82770b Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/size.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/smudge.png b/acrylic/src/main/res/drawable-xhdpi/smudge.png new file mode 100644 index 0000000..8c2a2c5 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/smudge.png differ diff --git a/acrylic/src/main/res/drawable-xhdpi/splash.png b/acrylic/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000..40d13f9 Binary files /dev/null and b/acrylic/src/main/res/drawable-xhdpi/splash.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/about.png b/acrylic/src/main/res/drawable-xxhdpi/about.png new file mode 100644 index 0000000..b90961a Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/about.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/blur.png b/acrylic/src/main/res/drawable-xxhdpi/blur.png new file mode 100644 index 0000000..f9902fc Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/blur.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/clear_all.png b/acrylic/src/main/res/drawable-xxhdpi/clear_all.png new file mode 100644 index 0000000..9c056c2 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/clear_all.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/color.png b/acrylic/src/main/res/drawable-xxhdpi/color.png new file mode 100644 index 0000000..6e0fbd4 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/color.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/emboss.png b/acrylic/src/main/res/drawable-xxhdpi/emboss.png new file mode 100644 index 0000000..eca88e9 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/emboss.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/erase.png b/acrylic/src/main/res/drawable-xxhdpi/erase.png new file mode 100644 index 0000000..d3ecefd Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/erase.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/extract_color.png b/acrylic/src/main/res/drawable-xxhdpi/extract_color.png new file mode 100644 index 0000000..e57533d Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/extract_color.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/fill_background_with_color.png b/acrylic/src/main/res/drawable-xxhdpi/fill_background_with_color.png new file mode 100644 index 0000000..3b9f486 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/fill_background_with_color.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/ic_launcher.png b/acrylic/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..b0d4d3d Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/import_image.png b/acrylic/src/main/res/drawable-xxhdpi/import_image.png new file mode 100644 index 0000000..0e7a716 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/import_image.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/save.png b/acrylic/src/main/res/drawable-xxhdpi/save.png new file mode 100644 index 0000000..5ff06a3 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/save.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/share.png b/acrylic/src/main/res/drawable-xxhdpi/share.png new file mode 100644 index 0000000..395ac79 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/share.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/size.png b/acrylic/src/main/res/drawable-xxhdpi/size.png new file mode 100644 index 0000000..bd3b6eb Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/size.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/smudge.png b/acrylic/src/main/res/drawable-xxhdpi/smudge.png new file mode 100644 index 0000000..2713e6f Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/smudge.png differ diff --git a/acrylic/src/main/res/drawable-xxhdpi/splash.png b/acrylic/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000..aeeee0c Binary files /dev/null and b/acrylic/src/main/res/drawable-xxhdpi/splash.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/about.png b/acrylic/src/main/res/drawable-xxxhdpi/about.png new file mode 100644 index 0000000..e7d5690 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/about.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/actionbar_background.png b/acrylic/src/main/res/drawable-xxxhdpi/actionbar_background.png new file mode 100644 index 0000000..7de242e Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/actionbar_background.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/blur.png b/acrylic/src/main/res/drawable-xxxhdpi/blur.png new file mode 100644 index 0000000..968fb00 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/blur.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/clear_all.png b/acrylic/src/main/res/drawable-xxxhdpi/clear_all.png new file mode 100644 index 0000000..72dbd22 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/clear_all.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/color.png b/acrylic/src/main/res/drawable-xxxhdpi/color.png new file mode 100644 index 0000000..5f0728d Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/color.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/emboss.png b/acrylic/src/main/res/drawable-xxxhdpi/emboss.png new file mode 100644 index 0000000..1b6a82e Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/emboss.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/erase.png b/acrylic/src/main/res/drawable-xxxhdpi/erase.png new file mode 100644 index 0000000..878d319 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/erase.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/ic_launcher.png b/acrylic/src/main/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..a7ecb01 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/save.png b/acrylic/src/main/res/drawable-xxxhdpi/save.png new file mode 100644 index 0000000..c18fe09 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/save.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/share.png b/acrylic/src/main/res/drawable-xxxhdpi/share.png new file mode 100644 index 0000000..0f6d7f6 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/share.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/size.png b/acrylic/src/main/res/drawable-xxxhdpi/size.png new file mode 100644 index 0000000..aad755e Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/size.png differ diff --git a/acrylic/src/main/res/drawable-xxxhdpi/splash.png b/acrylic/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000..68fa533 Binary files /dev/null and b/acrylic/src/main/res/drawable-xxxhdpi/splash.png differ diff --git a/acrylic/src/main/res/layout/activity_about.xml b/acrylic/src/main/res/layout/activity_about.xml new file mode 100644 index 0000000..b16c0d7 --- /dev/null +++ b/acrylic/src/main/res/layout/activity_about.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/acrylic/src/main/res/layout/activity_main.xml b/acrylic/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..2c1cb46 --- /dev/null +++ b/acrylic/src/main/res/layout/activity_main.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/acrylic/src/main/res/layout/brush.xml b/acrylic/src/main/res/layout/brush.xml new file mode 100644 index 0000000..c8994ff --- /dev/null +++ b/acrylic/src/main/res/layout/brush.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/acrylic/src/main/res/layout/main.xml b/acrylic/src/main/res/layout/main.xml new file mode 100644 index 0000000..260750f --- /dev/null +++ b/acrylic/src/main/res/layout/main.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/acrylic/src/main/res/menu/main.xml b/acrylic/src/main/res/menu/main.xml new file mode 100644 index 0000000..31040d9 --- /dev/null +++ b/acrylic/src/main/res/menu/main.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/acrylic/src/main/res/mipmap-hdpi/ic_launcher.png b/acrylic/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..cde69bc Binary files /dev/null and b/acrylic/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/mipmap-mdpi/ic_launcher.png b/acrylic/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..c133a0c Binary files /dev/null and b/acrylic/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/mipmap-xhdpi/ic_launcher.png b/acrylic/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..bfa42f0 Binary files /dev/null and b/acrylic/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/mipmap-xxhdpi/ic_launcher.png b/acrylic/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..324e72c Binary files /dev/null and b/acrylic/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/acrylic/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..aee44e1 Binary files /dev/null and b/acrylic/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/acrylic/src/main/res/values-fr/strings.xml b/acrylic/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000..ccd1185 --- /dev/null +++ b/acrylic/src/main/res/values-fr/strings.xml @@ -0,0 +1,58 @@ + + + + Acrylic Paint + Acrylic Paint est un logiciel libre qui libère votre créativité !\n\nAppuie sur menu pour plus d\'options.\n\nMerci à Anupam Shrivastava pour l\'idée, à Valerio Bozzolan pour avoir ressuscité le projet et au physicien Marco Gagino pour le formidable soutien. Merci à tous les contributeurs !\n\nBonne peinture :) + Voici ta toile. Commence à peindre ! + Couleur + Gras + Flou + Taille de brosse + Effacer + Effacer tout + Enregistrer + Partager + À propos + Taille sélectionnée : %1$s + Taille de brosse + Peinture sauvegardée sous %1$s + Sélectionner + Continuer + OK + Choisir une couleur + Partager + Regardez ce que j\'ai peint avec Acrylic Paint! --- Acrylic Paint (peinture simple avec le doigt) - https://f-droid.org/app/anupam.acrylic + Partager comme du texte + Impossible de trouver une application pour partager… + Crayon + À propos + Appuie sur retour une nouvelle fois pour quitter !\n(en perdant tout le travail non enregistré) + +Acrylic Paint +

Merci d\'utiliser Acrylic Paint!
Un logiciel libre pour libérer votre créativité !

+ +

Crédits

+

Un grand merci à :
+Valerio Bozzolan pour le bon travail de relecture et d\'optimisation du code source. Il continue actuellement le travail pour cette version de AcrylicPaint.
+Marco Gagino for le restylage complet et sa grande participation ! +

+ +

Licences

+

Cette version de Acrylic Paint et son code source sont fournis par Valerio Bozzolan sous +les termes de la licence GNU GPLv3+. +Cette licence permet à tout monde d\'utiliser, étudier, améliorer et partager cette application par tous les moyens et pour tout usage tant que vous offrez les mêmes droits à vos utilisateurs.

+

Cette application est distribuée dans l\'espoir qu\'elle sera utile à tous, mais sans aucune garantie ; sans même la garantie implicite de +COMMERCIALISATION ou D\'ADAPTATION A UN USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails.

+ +

Note

+

Si vous rencontrez des problèmes ou avez des idées, n\'hésitez pas à utiliser le bug tracker.

+

Contribuer au code source : valerio-bozzolan/AcrylicPaint @GitHub.

+

Lisez le fichier README pour plus d\'informations.

+ +

Amusez-vous bien !

+ ]]> +
+ +
diff --git a/acrylic/src/main/res/values-it/strings.xml b/acrylic/src/main/res/values-it/strings.xml new file mode 100644 index 0000000..2be53e6 --- /dev/null +++ b/acrylic/src/main/res/values-it/strings.xml @@ -0,0 +1,57 @@ + + + + Acrylic Paint è un software libero che libera la tua creatività!\n\nPremi il tasto menù per più opzioni.\n\nUn ringraziamento all\'autore originale Anupam Shrivastava, a Valerio Bozzolan per la riesumazione del progetto ed a Marco Gagino per il sostegno spaventoso. Grazie a tutti i contributori!\n\n…Divertiti! :) + Qui c\'è la tua tela. Inizia a colorare! + Colore + Grassetto + Sfocato + Dimensione + Gomma + Pulisci tutto + Salva + Condividi + Info + Apri immagine come sfondo + Dimensione scelta: %1$s + Scegli dimensione: + La tua creazione è stata salvata in %1$s + Seleziona + Continua + + Scegli un Colore + Condividi + Guarda cosa ho dipinto con Acrylic Paint! --- Acrylic Paint (Simple finger painting) - https://f-droid.org/app/anupam.acrylic + Condividi come testo + Non risulta alcuna app con cui condividere la tua opera… + Matita + Informazioni + Premi ancora per uscire!\n(Hai salvato?) + +Acrylic Paint +

Grazie per aver scelto Acrylic Paint!
Un software libero che libera la tua creatività!

+ +

Crediti

+

Ringraziamenti speciali a:
+Valerio Bozzolan per l'intensa revisione al codice sorgente. È l'attuale manutentore di questa versione.
+Marco Gagino per il profondo restyling e grande spirito di collaborazione! +

+ +

Licenze

+

Questa versione di Acrylic Paint e il relativo codice sorgente sono distribuiti da Valerio Bozzolan sotto i +termini della licenza GNU GPLv3+. +Ciò è per permettere a chiunque di usare, studiare, migliorare e ricondividere quest\'app con qualunque mezzo e per qualsiasi scopo a patto di mantenere sempre questi diritti.

+

Quest\'applicazione è rilasciata nella speranza che sia utile a tutti, ma senza alcuna garanzia (nè garanzie di commerciabilità).

+ +

Note

+

Se ti accorgi di qualche difetto o se hai idee, usa il bug tracker.

+

Contribuisci al codice sorgente su valerio-bozzolan/AcrylicPaint @GitHub.

+

Leggi il file README per maggiori informazioni.

+ +

Divertiti!

+ ]]> +
+ Seleziona l\'immagine da aprire +
diff --git a/acrylic/src/main/res/values-ru/strings.xml b/acrylic/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000..9dcaad0 --- /dev/null +++ b/acrylic/src/main/res/values-ru/strings.xml @@ -0,0 +1,56 @@ + + + Acrylic Paint + О программе + Размытие + Размер кисти + Размер кисти + Стереть всё + Цвет + Продолжить + Жирный + Стереть + Вот ваш холст. Начните рисовать! + Не удаётся найти приложение, чтобы поделиться с… + Карандаш + Ок + Выбрать цвет + Нажмите кнопку НАЗАД снова, чтобы выйти из программы!\n(Несохранённая работа будет потеряна) + Сохранить + Ваша работа сохранена в %1$s + Выбрать + Поделиться + Поделиться в виде текста + Посмотрите на то, что я нарисовал с помощью Acrylic Paint! --- Acrylic Paint (Простое рисование пальцем) - https://f-droid.org/app/anupam.acrylic + О программе + Поделиться + Выбранный размер: %1$s + Acrylic Paint - это Свободное Программное Обеспечение, которое позволяет вам свободно творить!\n\nНажмите на меню для отображения других опций.\n\nБлагодарю Anupam Shrivastava за идею, Valerio Bozzolan за возрождение проекта и физика Marco Gagino за потрясающую поддержку. Спасибо всем участникам!\n\nСчастливого рисования :) + +Acrylic Paint +

Спасибо за использование Acrylic Paint!
Свободное Программное Обеспечение, которое позволяет вам свободно творить!

+ +

Благодарности

+

Особая благодарность:
+Valerio Bozzolan за большую работу, проделанную над исходным кодом и его оптимизацией. В настоящее время он продолжает работу над этой версией Acrylic Paint.
+Marco Gagino за тщательный редизайн и за большое участие! +

+ +

Лицензии

+

Эта версия Acrylic Paint и его исзодный код выпущен Valerio Bozzolan на условиях +лицензии GNU GPLv3+. +Дицензия даёт каждому право использовать, изучать, улучшать и делиться этим приложением любыми средствами и для любой цели до тех пор, пока предлагаете его на тех же условиях для остальных.

+

Приложение распространяется в надежде, что оно будет полезено для всех, но без каких-либо гарантий; в том числе без подразумеваемых гарантий +КОММЕРЧЕСКОЙ ВЫГОДЫ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ. Смотрите GNU General Public License для более подробной информации.

+ +

Примечание

+

Если вы заметили какие-либо проблемы или у вас есть некоторые идеи, не стесняйтесь использовать баг трекер.

+

Внести вклад в исходный код: valerio-bozzolan/AcrylicPaint @GitHub.

+

Прочтите README для получения дополнительной информации.

+ +

Удачи!

+ ]]> +
+
\ No newline at end of file diff --git a/acrylic/src/main/res/values-w820dp/dimens.xml b/acrylic/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/acrylic/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/acrylic/src/main/res/values/colors.xml b/acrylic/src/main/res/values/colors.xml new file mode 100644 index 0000000..3ab3e9c --- /dev/null +++ b/acrylic/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/acrylic/src/main/res/values/dimens.xml b/acrylic/src/main/res/values/dimens.xml new file mode 100644 index 0000000..55c1e59 --- /dev/null +++ b/acrylic/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ + + + + 16dp + 16dp + + diff --git a/acrylic/src/main/res/values/ids.xml b/acrylic/src/main/res/values/ids.xml new file mode 100644 index 0000000..1d47fc2 --- /dev/null +++ b/acrylic/src/main/res/values/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/acrylic/src/main/res/values/strings.xml b/acrylic/src/main/res/values/strings.xml new file mode 100644 index 0000000..6094c2d --- /dev/null +++ b/acrylic/src/main/res/values/strings.xml @@ -0,0 +1,63 @@ + + + + Acrylic Paint + Acrylic Paint is a Free and Open Source Software that frees your creativity!\n\nPress menu for more options.\n\nThanks to Anupam Shrivastava for the idea, to Valerio Bozzolan for reviving the project and the physicist Marco Gagino for the terrific support. Thanks to all the contributors!\n\nHappy painting :) + Here is your canvas. Start to paint! + Color + Bold + Blur + Brush size + Erase + Erase entire foreground + Save + Share + About + Changer la couleur du fond + Selected size: %1$s + Brush size + Saved your artwork to %1$s + Select + Continue + OK + Pick a Color + Share + Look at what I painted with Acrylic Paint! --- Acrylic Paint (Simple finger painting) - https://f-droid.org/app/anupam.acrylic + Can\'t locate an app to share with… + Pencil + About + +Acrylic Paint +

Thanks for using Acrylic Paint!
A Free and Open Source Software to free your creativity!

+ +

Credits

+

Special thanks to:
+Valerio Bozzolan for the great work done reviewing the source code and optimising it. He currently carries on the work for this version of AcrylicPaint.
+Marco Gagino for the thorough restyling and the great participation! +

+ +

Licenses

+

This version of Acrylic Paint and its source code are released by Valerio Bozzolan under the +terms of the GNU GPLv3+ license. +This license gives everyone the ability to use, study, better and share this app by any means and for every purpose as long as you offer these same rights to the others.

+

This app is distributed in the hope that it will be useful to everyone, but without any warranty; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

+ +

Note

+

If you notice any problem or if you have some ideas feel free to use the bug tracker.

+

Contribute to the source code: valerio-bozzolan/AcrylicPaint @GitHub.

+

Read the README file for further information.

+ +

Have fun!

+ ]]> +
+ Select image to open + Extract a color + New color extracted + Tap anywhere to extract a color + That ability is disabled because it requires a newer Android version (at least API level 17). + Smudge + +
diff --git a/acrylic/src/main/res/values/styles.xml b/acrylic/src/main/res/values/styles.xml new file mode 100644 index 0000000..5885930 --- /dev/null +++ b/acrylic/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/acrylic/src/main/res/values/theme.xml b/acrylic/src/main/res/values/theme.xml new file mode 100644 index 0000000..c579fb3 --- /dev/null +++ b/acrylic/src/main/res/values/theme.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/acrylic/src/test/java/anupam/acrylic/ExampleUnitTest.java b/acrylic/src/test/java/anupam/acrylic/ExampleUnitTest.java new file mode 100644 index 0000000..89925a5 --- /dev/null +++ b/acrylic/src/test/java/anupam/acrylic/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package anupam.acrylic; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..06fe8b6 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,33 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.2" + defaultConfig { + applicationId "ssrmarcsautelet.automation.appli.ssrmarcsautelet" + minSdkVersion 15 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:25.3.0' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'com.journeyapps:zxing-android-embedded:3.0.2@aar' + compile 'com.google.android.gms:play-services-maps:10.2.0' + compile 'com.google.zxing:core:3.2.0' + testCompile 'junit:junit:4.12' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..7b88ef5 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Edmur\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..17a66ec --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Ambulancier.jpg b/app/src/main/assets/Ambulancier.jpg new file mode 100644 index 0000000..9ddca7e Binary files /dev/null and b/app/src/main/assets/Ambulancier.jpg differ diff --git a/app/src/main/assets/Kine.jpg b/app/src/main/assets/Kine.jpg new file mode 100644 index 0000000..f70ac58 Binary files /dev/null and b/app/src/main/assets/Kine.jpg differ diff --git a/app/src/main/assets/accueil1.png b/app/src/main/assets/accueil1.png new file mode 100644 index 0000000..eb16dbf Binary files /dev/null and b/app/src/main/assets/accueil1.png differ diff --git a/app/src/main/assets/accueil2.png b/app/src/main/assets/accueil2.png new file mode 100644 index 0000000..0ddbf9c Binary files /dev/null and b/app/src/main/assets/accueil2.png differ diff --git a/app/src/main/assets/accueil3.png b/app/src/main/assets/accueil3.png new file mode 100644 index 0000000..3a7f588 Binary files /dev/null and b/app/src/main/assets/accueil3.png differ diff --git a/app/src/main/assets/accueil4.png b/app/src/main/assets/accueil4.png new file mode 100644 index 0000000..2ffbcbb Binary files /dev/null and b/app/src/main/assets/accueil4.png differ diff --git a/app/src/main/assets/ane.jpg b/app/src/main/assets/ane.jpg new file mode 100644 index 0000000..ec078d1 Binary files /dev/null and b/app/src/main/assets/ane.jpg differ diff --git a/app/src/main/assets/apa1.png b/app/src/main/assets/apa1.png new file mode 100644 index 0000000..40b28be Binary files /dev/null and b/app/src/main/assets/apa1.png differ diff --git a/app/src/main/assets/appareillage1.png b/app/src/main/assets/appareillage1.png new file mode 100644 index 0000000..206caea Binary files /dev/null and b/app/src/main/assets/appareillage1.png differ diff --git a/app/src/main/assets/assist1.png b/app/src/main/assets/assist1.png new file mode 100644 index 0000000..8565e42 Binary files /dev/null and b/app/src/main/assets/assist1.png differ diff --git a/app/src/main/assets/assistante.jpg b/app/src/main/assets/assistante.jpg new file mode 100644 index 0000000..8e55eb8 Binary files /dev/null and b/app/src/main/assets/assistante.jpg differ diff --git a/app/src/main/assets/contact_map.html b/app/src/main/assets/contact_map.html new file mode 100644 index 0000000..273671f --- /dev/null +++ b/app/src/main/assets/contact_map.html @@ -0,0 +1,15 @@ + + + + Contact + + + + +SSR Pédiatrique APF MARC SAUTELET +

10 rue du petit boulevard

+

59650 Villeneuve d’Ascq

+Téléphone +

03.28.80.07.70

+ + \ No newline at end of file diff --git a/app/src/main/assets/dame1.png b/app/src/main/assets/dame1.png new file mode 100644 index 0000000..d2349c0 Binary files /dev/null and b/app/src/main/assets/dame1.png differ diff --git a/app/src/main/assets/dame2.png b/app/src/main/assets/dame2.png new file mode 100644 index 0000000..014818d Binary files /dev/null and b/app/src/main/assets/dame2.png differ diff --git a/app/src/main/assets/doc1.png b/app/src/main/assets/doc1.png new file mode 100644 index 0000000..6962828 Binary files /dev/null and b/app/src/main/assets/doc1.png differ diff --git a/app/src/main/assets/doc2.png b/app/src/main/assets/doc2.png new file mode 100644 index 0000000..a07d1ae Binary files /dev/null and b/app/src/main/assets/doc2.png differ diff --git a/app/src/main/assets/ecole1.png b/app/src/main/assets/ecole1.png new file mode 100644 index 0000000..38a9023 Binary files /dev/null and b/app/src/main/assets/ecole1.png differ diff --git a/app/src/main/assets/ecole2.png b/app/src/main/assets/ecole2.png new file mode 100644 index 0000000..ab36209 Binary files /dev/null and b/app/src/main/assets/ecole2.png differ diff --git a/app/src/main/assets/educateur.jpg b/app/src/main/assets/educateur.jpg new file mode 100644 index 0000000..f7536fd Binary files /dev/null and b/app/src/main/assets/educateur.jpg differ diff --git a/app/src/main/assets/ergo.jpg b/app/src/main/assets/ergo.jpg new file mode 100644 index 0000000..e1ba6f8 Binary files /dev/null and b/app/src/main/assets/ergo.jpg differ diff --git a/app/src/main/assets/ergo1.png b/app/src/main/assets/ergo1.png new file mode 100644 index 0000000..77bc9c2 Binary files /dev/null and b/app/src/main/assets/ergo1.png differ diff --git a/app/src/main/assets/ergo2.png b/app/src/main/assets/ergo2.png new file mode 100644 index 0000000..90e574b Binary files /dev/null and b/app/src/main/assets/ergo2.png differ diff --git a/app/src/main/assets/ergo3.png b/app/src/main/assets/ergo3.png new file mode 100644 index 0000000..8dba3d1 Binary files /dev/null and b/app/src/main/assets/ergo3.png differ diff --git a/app/src/main/assets/ergo4.png b/app/src/main/assets/ergo4.png new file mode 100644 index 0000000..55927b3 Binary files /dev/null and b/app/src/main/assets/ergo4.png differ diff --git a/app/src/main/assets/ergo5.png b/app/src/main/assets/ergo5.png new file mode 100644 index 0000000..1c0a37c Binary files /dev/null and b/app/src/main/assets/ergo5.png differ diff --git a/app/src/main/assets/fiche_amb1.html b/app/src/main/assets/fiche_amb1.html new file mode 100644 index 0000000..948a177 --- /dev/null +++ b/app/src/main/assets/fiche_amb1.html @@ -0,0 +1,17 @@ + + + + + + +

Ambulancier

+ +
+ +

+L'ambulancier est la personne qui conduit une ambulance. +Parfois, il peut être accompagné par un infirmier ou une infirmière. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_amb2.html b/app/src/main/assets/fiche_amb2.html new file mode 100644 index 0000000..4796003 --- /dev/null +++ b/app/src/main/assets/fiche_amb2.html @@ -0,0 +1,28 @@ + + + + + +

Ambulancier

+ +
+ +

Transporter en toute sécurité

+

+L'ambulancier transporte les blessés, les malades, les personnes handicapées ou âgées vers les hôpitaux, les cliniques ou les maisons de retraite. Il doit veiller au confort du passager même s'il conduit à grande vitesse dans une situation d'urgence. +

+ +

Connaître l'état du malade

+

+Quelle que soit la structure pour laquelle il travaille (Samu, hôpital, ...), l'ambulancier s'informe des consignes auprès des médecins et des infirmières : degré d'urgence du transport à effectuer, type de blessures de la personne à prendre en charge... +

+ +

Au service du malade

+

+L'ambulancier aide le malade à monter dans l'ambulance, puis il l'installe. Durant le trajet, il veille à son confort et à son état de santé. Il peut intervenir en cas de besoin pour apporter les premiers secours (bouche-à-bouche, massage cardiaque...). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_amb3.html b/app/src/main/assets/fiche_amb3.html new file mode 100644 index 0000000..4796003 --- /dev/null +++ b/app/src/main/assets/fiche_amb3.html @@ -0,0 +1,28 @@ + + + + + +

Ambulancier

+ +
+ +

Transporter en toute sécurité

+

+L'ambulancier transporte les blessés, les malades, les personnes handicapées ou âgées vers les hôpitaux, les cliniques ou les maisons de retraite. Il doit veiller au confort du passager même s'il conduit à grande vitesse dans une situation d'urgence. +

+ +

Connaître l'état du malade

+

+Quelle que soit la structure pour laquelle il travaille (Samu, hôpital, ...), l'ambulancier s'informe des consignes auprès des médecins et des infirmières : degré d'urgence du transport à effectuer, type de blessures de la personne à prendre en charge... +

+ +

Au service du malade

+

+L'ambulancier aide le malade à monter dans l'ambulance, puis il l'installe. Durant le trajet, il veille à son confort et à son état de santé. Il peut intervenir en cas de besoin pour apporter les premiers secours (bouche-à-bouche, massage cardiaque...). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ane1.html b/app/src/main/assets/fiche_ane1.html new file mode 100644 index 0000000..670997e --- /dev/null +++ b/app/src/main/assets/fiche_ane1.html @@ -0,0 +1,20 @@ + + + + + +

Anesthésiste

+ +
+ +

+L'anesthésiste est le médecin qui t’endort +avant une opération ou un examen +et qui veille sur toi jusqu'à ton réveil. + +Il vérifie aussi que tu n’as pas mal +et soulage ta douleur si nécessaire. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ane2.html b/app/src/main/assets/fiche_ane2.html new file mode 100644 index 0000000..f80795a --- /dev/null +++ b/app/src/main/assets/fiche_ane2.html @@ -0,0 +1,28 @@ + + + + + +

Anesthésiste

+ +
+ +

Préparer l'anesthésie

+

+Première étape pour l'anesthésiste-réanimateur : la consultation préopératoire. Il questionne le patient sur ses antécédents (allergie, traitement, opérations passées...) afin d'évaluer les risques liés à l'intervention. Il explique le déroulement de l'opération, les protocoles suivis, le réveil, la prise en charge de la douleur post-opératoire et des complications éventuelles. +

+ +

Sécuriser les interventions

+

+Mais l'essentiel de l'activité de ce praticien se déroule au bloc opératoire, où il administre une anesthésie générale ou locale (permettant au patient de rester éveillé). Tout au long de l'intervention, l'anesthésiste surveille les signes vitaux (pression artérielle, fréquence cardiaque, oxygénation) et réinjecte des produits anesthésiants. Il assure ensuite le suivi du patient en salle de réveil et la prise en charge des douleurs post-opératoires. +

+ +

Réanimer

+

+Arrêt cardiaque, intoxication médicamenteuse, choc hémorragique... Le réanimateur prend en charge des patients dans un état grave, qui présentent des défaillances exigeant des soins d'urgence. Son rôle est de comprendre l'origine des problèmes et de mettre en place des techniques de réanimation (assistance respiratoire, rénale ou cardiaque...). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ane3.html b/app/src/main/assets/fiche_ane3.html new file mode 100644 index 0000000..f80795a --- /dev/null +++ b/app/src/main/assets/fiche_ane3.html @@ -0,0 +1,28 @@ + + + + + +

Anesthésiste

+ +
+ +

Préparer l'anesthésie

+

+Première étape pour l'anesthésiste-réanimateur : la consultation préopératoire. Il questionne le patient sur ses antécédents (allergie, traitement, opérations passées...) afin d'évaluer les risques liés à l'intervention. Il explique le déroulement de l'opération, les protocoles suivis, le réveil, la prise en charge de la douleur post-opératoire et des complications éventuelles. +

+ +

Sécuriser les interventions

+

+Mais l'essentiel de l'activité de ce praticien se déroule au bloc opératoire, où il administre une anesthésie générale ou locale (permettant au patient de rester éveillé). Tout au long de l'intervention, l'anesthésiste surveille les signes vitaux (pression artérielle, fréquence cardiaque, oxygénation) et réinjecte des produits anesthésiants. Il assure ensuite le suivi du patient en salle de réveil et la prise en charge des douleurs post-opératoires. +

+ +

Réanimer

+

+Arrêt cardiaque, intoxication médicamenteuse, choc hémorragique... Le réanimateur prend en charge des patients dans un état grave, qui présentent des défaillances exigeant des soins d'urgence. Son rôle est de comprendre l'origine des problèmes et de mettre en place des techniques de réanimation (assistance respiratoire, rénale ou cardiaque...). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_assist1 - Copie.html b/app/src/main/assets/fiche_assist1 - Copie.html new file mode 100644 index 0000000..0d96363 --- /dev/null +++ b/app/src/main/assets/fiche_assist1 - Copie.html @@ -0,0 +1,21 @@ + + + + + +

Psychologue

+ +
+ +

+Le psychologue est la personne +qui a choisi comme métier d'écouter, +d'essayer de comprendre et d'aider +les personnes qui ont des soucis. + +Le psychologue n'est pas un médecin, +il ne peut pas prescrire de médicaments. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_assist1.html b/app/src/main/assets/fiche_assist1.html new file mode 100644 index 0000000..df266d3 --- /dev/null +++ b/app/src/main/assets/fiche_assist1.html @@ -0,0 +1,20 @@ + + + + + +

Assistante sociale

+ +
+ +

+L'assistant ou l'assistante sociale est la personne +qui aide à trouver des solutions pratiques +lorsque l'on a des difficultés dans la vie quotidienne. + +Ces difficultés peuvent être en rapport avec la santé, +la scolarité, le travail, l'argent, le logement... +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_assist2.html b/app/src/main/assets/fiche_assist2.html new file mode 100644 index 0000000..85cc3e1 --- /dev/null +++ b/app/src/main/assets/fiche_assist2.html @@ -0,0 +1,19 @@ + + + + + +

Assistante sociale

+ +
+ +

+L'assistant ou l'assistante sociale est la personne +qui aide à trouver des solutions pratiques +lorsque l'on a des difficultés dans la vie quotidienne. + +Ces difficultés peuvent être en rapport avec la santé, +la scolarité, le travail, l'argent, le logement... +

+ + \ No newline at end of file diff --git a/app/src/main/assets/fiche_assist3.html b/app/src/main/assets/fiche_assist3.html new file mode 100644 index 0000000..85cc3e1 --- /dev/null +++ b/app/src/main/assets/fiche_assist3.html @@ -0,0 +1,19 @@ + + + + + +

Assistante sociale

+ +
+ +

+L'assistant ou l'assistante sociale est la personne +qui aide à trouver des solutions pratiques +lorsque l'on a des difficultés dans la vie quotidienne. + +Ces difficultés peuvent être en rapport avec la santé, +la scolarité, le travail, l'argent, le logement... +

+ + \ No newline at end of file diff --git a/app/src/main/assets/fiche_educ1.html b/app/src/main/assets/fiche_educ1.html new file mode 100644 index 0000000..35c7a42 --- /dev/null +++ b/app/src/main/assets/fiche_educ1.html @@ -0,0 +1,20 @@ + + + + +

Educateur spécialisé

+ +
+ +

+L'éducateur ou l'éducatrice est la personne de l’hôpital +qui te propose toutes sortes d'activités : +- dessiner ou bricoler, +- jouer à l'ordinateur ou avec des jeux de société, +- aller à la bibliothèque, +- regarder un film, +- assister à un spectacle de clowns ou de marionnettes… +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_educ2.html b/app/src/main/assets/fiche_educ2.html new file mode 100644 index 0000000..a4f0618 --- /dev/null +++ b/app/src/main/assets/fiche_educ2.html @@ -0,0 +1,30 @@ + + + + + +

Educateur spécialisé

+ +
+ +

Accompagner divers publics

+

+ Enfants ou adultes handicapés, personnes confrontées à des difficultés sociales, mineurs en danger, anciens détenus... l'éducateur spécialisé accompagne tous ces publics avec comme objectifs la responsabilisation, l'accès à l'autonomie et l'insertion sociale. Ainsi, il conseille des mères célibataires, encadre les jeunes d'un quartier, ou élabore des projets éducatifs pour les personnes déficientes intellectuelles. +

+ +

Redonner confiance

+

+ En foyer d'accueil ou en institut médico-éducatif, + l'éducateur spécialisé établit des repères dans la vie quotidienne des personnes dont il s'occupe : règles de civilité, + d'hygiène, d'alimentation... Ses outils : le théâtre, le sport, l'informatique... Il organise des sorties culturelles, des ateliers d'alphabétisation, du soutien scolaire... Il intervient auprès de divers organismes (établissements scolaires, banques, Pôle emploi, bailleurs sociaux...) pour résoudre les difficultés administratives et financières. +

+ +

Favoriser l'insertion sociale

+

+ Dans le cadre de l'AEMO (action éducative en milieu ouvert), il est mandaté par l'ASE (aide sociale à l'enfance) ou le tribunal pour travailler auprès de mineurs en danger (parents violents, risques sanitaires...). L'éducateur dit " de rue " peut aussi intervenir dans les quartiers difficiles pour prévenir la délinquance et favoriser l'insertion sociale des jeunes. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_educ3.html b/app/src/main/assets/fiche_educ3.html new file mode 100644 index 0000000..a4f0618 --- /dev/null +++ b/app/src/main/assets/fiche_educ3.html @@ -0,0 +1,30 @@ + + + + + +

Educateur spécialisé

+ +
+ +

Accompagner divers publics

+

+ Enfants ou adultes handicapés, personnes confrontées à des difficultés sociales, mineurs en danger, anciens détenus... l'éducateur spécialisé accompagne tous ces publics avec comme objectifs la responsabilisation, l'accès à l'autonomie et l'insertion sociale. Ainsi, il conseille des mères célibataires, encadre les jeunes d'un quartier, ou élabore des projets éducatifs pour les personnes déficientes intellectuelles. +

+ +

Redonner confiance

+

+ En foyer d'accueil ou en institut médico-éducatif, + l'éducateur spécialisé établit des repères dans la vie quotidienne des personnes dont il s'occupe : règles de civilité, + d'hygiène, d'alimentation... Ses outils : le théâtre, le sport, l'informatique... Il organise des sorties culturelles, des ateliers d'alphabétisation, du soutien scolaire... Il intervient auprès de divers organismes (établissements scolaires, banques, Pôle emploi, bailleurs sociaux...) pour résoudre les difficultés administratives et financières. +

+ +

Favoriser l'insertion sociale

+

+ Dans le cadre de l'AEMO (action éducative en milieu ouvert), il est mandaté par l'ASE (aide sociale à l'enfance) ou le tribunal pour travailler auprès de mineurs en danger (parents violents, risques sanitaires...). L'éducateur dit " de rue " peut aussi intervenir dans les quartiers difficiles pour prévenir la délinquance et favoriser l'insertion sociale des jeunes. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ergo1.html b/app/src/main/assets/fiche_ergo1.html new file mode 100644 index 0000000..8c79795 --- /dev/null +++ b/app/src/main/assets/fiche_ergo1.html @@ -0,0 +1,18 @@ + + + + + +

Ergothérapeute

+ +
+ +

+L'ergothérapeute est la personne qui t'aide +quand tu as des difficultés (après un accident, certaines maladies) +pour continuer à faire tout seul les gestes de la vie quotidienne : +manger, t'habiller ou te laver, faire des activités sur l'ordinateur… +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ergo2.html b/app/src/main/assets/fiche_ergo2.html new file mode 100644 index 0000000..858160a --- /dev/null +++ b/app/src/main/assets/fiche_ergo2.html @@ -0,0 +1,25 @@ + + + + + +

Ergothérapeute

+ +
+ +

Développer l'indépendance

+

+Manger, s'habiller, se déplacer... seul. Ces actes de la vie quotidienne peuvent poser des difficultés insurmontables après un accident ou un traumatisme. L'ergothérapeute contribue au traitement des situations de handicap chez des personnes de tout âge. Il propose des solutions techniques (activités utilitaires, créatives, récréatives) empruntées aux métiers manuels et aux gestes de la vie quotidienne et professionnelle. +

+ +

Un expert de la réadaptation

+

+Dans un premier temps, l'ergothérapeute doit analyser la nature du handicap de son patient afin de lui proposer une aide sur mesure. Puis il effectue un bilan de ses capacités gestuelles portant par exemple sur la rapidité et la précision de ses mouvements. Il dresse ensuite un bilan de son autonomie (pour s'habiller, se déplacer, s'alimenter...). À partir des besoins identifiés, il établit enfin un programme individualisé. +

+ + + +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ergo3.html b/app/src/main/assets/fiche_ergo3.html new file mode 100644 index 0000000..858160a --- /dev/null +++ b/app/src/main/assets/fiche_ergo3.html @@ -0,0 +1,25 @@ + + + + + +

Ergothérapeute

+ +
+ +

Développer l'indépendance

+

+Manger, s'habiller, se déplacer... seul. Ces actes de la vie quotidienne peuvent poser des difficultés insurmontables après un accident ou un traumatisme. L'ergothérapeute contribue au traitement des situations de handicap chez des personnes de tout âge. Il propose des solutions techniques (activités utilitaires, créatives, récréatives) empruntées aux métiers manuels et aux gestes de la vie quotidienne et professionnelle. +

+ +

Un expert de la réadaptation

+

+Dans un premier temps, l'ergothérapeute doit analyser la nature du handicap de son patient afin de lui proposer une aide sur mesure. Puis il effectue un bilan de ses capacités gestuelles portant par exemple sur la rapidité et la précision de ses mouvements. Il dresse ensuite un bilan de son autonomie (pour s'habiller, se déplacer, s'alimenter...). À partir des besoins identifiés, il établit enfin un programme individualisé. +

+ + + +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_inf1.html b/app/src/main/assets/fiche_inf1.html new file mode 100644 index 0000000..183042b --- /dev/null +++ b/app/src/main/assets/fiche_inf1.html @@ -0,0 +1,20 @@ + + + + + +

Infirmier

+ +
+ +

+L'infirmier ou l'infirmière est la personne +qui t’accueille à l’hôpital et t’explique ce qui va se passer. +Elle te fait les soins demandés par le médecin +(les pansements, les prises de sang…), +elle te donne les médicaments, surveille ta température, +prend ta tension… +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_inf2.html b/app/src/main/assets/fiche_inf2.html new file mode 100644 index 0000000..d6512fb --- /dev/null +++ b/app/src/main/assets/fiche_inf2.html @@ -0,0 +1,28 @@ + + + + + +

Infirmier

+ +
+ +

Prévenir, guérir et soulager

+

+L'infirmier effectue des soins de nature préventive, curative ou palliative pour améliorer, maintenir et restaurer la santé. Il collabore avec toute l'équipe soignante et participe au projet global de soin. Tenu au secret professionnel, il assure avec l'aide-soignant les soins d'hygiène, de confort et de sécurité du patient. +

+ +

Sur prescription

+

+La prescription médicale est le seul lien hiérarchique entre le médecin et l'infirmier. C'est-à-dire que l'infirmier n'intervient que sur ordre et avec l'accord du médecin. En aucune façon, il ne peut définir lui-même un traitement pour le patient. En revanche, il est chargé de surveiller les éventuels effets secondaires ou complications. +

+ +

Gestion administrative

+

+Surveillance des équipements, gestion des stocks de médicaments et des dossiers... autant de tâches dont l'infirmier doit s'acquitter. Il établit aussi les plannings de soins en fonction des prescriptions médicales. Par ailleurs, il peut organiser des rendez-vous auprès d'autres services (en radiologie, par exemple). Ou s'occuper des formalités d'admission des patients et rédiger les comptes rendus des visites du médecin dans le cahier des soins. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_inf3.html b/app/src/main/assets/fiche_inf3.html new file mode 100644 index 0000000..57a4e50 --- /dev/null +++ b/app/src/main/assets/fiche_inf3.html @@ -0,0 +1,27 @@ + + + + +

Infirmier

+ +
+ +

Prévenir, guérir et soulager

+

+L'infirmier effectue des soins de nature préventive, curative ou palliative pour améliorer, maintenir et restaurer la santé. Il collabore avec toute l'équipe soignante et participe au projet global de soin. Tenu au secret professionnel, il assure avec l'aide-soignant les soins d'hygiène, de confort et de sécurité du patient. +

+ +

Sur prescription

+

+La prescription médicale est le seul lien hiérarchique entre le médecin et l'infirmier. C'est-à-dire que l'infirmier n'intervient que sur ordre et avec l'accord du médecin. En aucune façon, il ne peut définir lui-même un traitement pour le patient. En revanche, il est chargé de surveiller les éventuels effets secondaires ou complications. +

+ +

Gestion administrative

+

+Surveillance des équipements, gestion des stocks de médicaments et des dossiers... autant de tâches dont l'infirmier doit s'acquitter. Il établit aussi les plannings de soins en fonction des prescriptions médicales. Par ailleurs, il peut organiser des rendez-vous auprès d'autres services (en radiologie, par exemple). Ou s'occuper des formalités d'admission des patients et rédiger les comptes rendus des visites du médecin dans le cahier des soins. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_kine1.html b/app/src/main/assets/fiche_kine1.html new file mode 100644 index 0000000..ecd0a6a --- /dev/null +++ b/app/src/main/assets/fiche_kine1.html @@ -0,0 +1,20 @@ + + + + + +

Le kinésithérapeute

+ +
+ +

+Le kinésithérapeute est la personne qui te fait des massages +ou te fait faire de la gymnastique médicale. + +Il aide aussi les enfants ou les adultes +qui ont des maladies respiratoires à mieux respirer. +

+ + + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_kine2.html b/app/src/main/assets/fiche_kine2.html new file mode 100644 index 0000000..cad9b31 --- /dev/null +++ b/app/src/main/assets/fiche_kine2.html @@ -0,0 +1,28 @@ + + + + + +

Le kinésithérapeute

+ +
+ +

Repérer la pathologie

+

+ Le masseur-kinésithérapeute intervient souvent à la suite d'une entorse, d'une scoliose, de difficultés respiratoires... D'abord, il étudie le dossier médical (radiographies, ordonnances du médecin référent...) du patient et pratique un examen clinique pour définir les méthodes et les moyens à mettre en oeuvre. +

+ +

Des techniques variées

+

+ Le kiné fait ensuite appel à de nombreuses techniques : massages répétés sur une zone douloureuse, mouvements de gymnastique à l'aide d'appareils, de poids... Il peut aussi utiliser l'eau (les séances se déroulent alors dans une piscine), la chaleur, la ionisation ou les ultrasons. +

+ +

Remise en forme, relaxation...

+

+ Sur prescription médicale, le kiné peut réaliser des bilans de capacité. Il intervient parfois, sans prescription médicale, dans le domaine sportif (remise en forme, relaxation, massage...) ou esthétique (exercices de relaxation pour le visage, par exemple). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_kine3.html b/app/src/main/assets/fiche_kine3.html new file mode 100644 index 0000000..963ff61 --- /dev/null +++ b/app/src/main/assets/fiche_kine3.html @@ -0,0 +1,27 @@ + + + + +

Le kinésithérapeute

+ +
+ +

Repérer la pathologie

+

+ Le masseur-kinésithérapeute intervient souvent à la suite d'une entorse, d'une scoliose, de difficultés respiratoires... D'abord, il étudie le dossier médical (radiographies, ordonnances du médecin référent...) du patient et pratique un examen clinique pour définir les méthodes et les moyens à mettre en oeuvre. +

+ +

Des techniques variées

+

+ Le kiné fait ensuite appel à de nombreuses techniques : massages répétés sur une zone douloureuse, mouvements de gymnastique à l'aide d'appareils, de poids... Il peut aussi utiliser l'eau (les séances se déroulent alors dans une piscine), la chaleur, la ionisation ou les ultrasons. +

+ +

Remise en forme, relaxation...

+

+ Sur prescription médicale, le kiné peut réaliser des bilans de capacité. Il intervient parfois, sans prescription médicale, dans le domaine sportif (remise en forme, relaxation, massage...) ou esthétique (exercices de relaxation pour le visage, par exemple). +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_medecin1.html b/app/src/main/assets/fiche_medecin1.html new file mode 100644 index 0000000..3862132 --- /dev/null +++ b/app/src/main/assets/fiche_medecin1.html @@ -0,0 +1,21 @@ + + + + +

Médecin

+ +
+ +

+Le médecin est la personne qui examine ton corps, +qui te soigne quand tu es malade +et te donne des conseils pour rester en bonne santé. + +Si cela est nécessaire, il te prescrit des médicaments, +des examens complémentaires (prise de sang, radio…) +ou un traitement (séances de kinésithérapie…). +

+ + + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_medecin2.html b/app/src/main/assets/fiche_medecin2.html new file mode 100644 index 0000000..3862132 --- /dev/null +++ b/app/src/main/assets/fiche_medecin2.html @@ -0,0 +1,21 @@ + + + + +

Médecin

+ +
+ +

+Le médecin est la personne qui examine ton corps, +qui te soigne quand tu es malade +et te donne des conseils pour rester en bonne santé. + +Si cela est nécessaire, il te prescrit des médicaments, +des examens complémentaires (prise de sang, radio…) +ou un traitement (séances de kinésithérapie…). +

+ + + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_medecin3.html b/app/src/main/assets/fiche_medecin3.html new file mode 100644 index 0000000..3862132 --- /dev/null +++ b/app/src/main/assets/fiche_medecin3.html @@ -0,0 +1,21 @@ + + + + +

Médecin

+ +
+ +

+Le médecin est la personne qui examine ton corps, +qui te soigne quand tu es malade +et te donne des conseils pour rester en bonne santé. + +Si cela est nécessaire, il te prescrit des médicaments, +des examens complémentaires (prise de sang, radio…) +ou un traitement (séances de kinésithérapie…). +

+ + + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ortho1.html b/app/src/main/assets/fiche_ortho1.html new file mode 100644 index 0000000..d64ad9e --- /dev/null +++ b/app/src/main/assets/fiche_ortho1.html @@ -0,0 +1,17 @@ + + + + +

Orthophoniste

+ +
+ +

+L'orthophoniste est la personne qui aide et rééduque +les enfants et les adultes qui ont du mal à communiquer +(difficultés pour parler, pour articuler, bégaiement…) +ou qui ont du mal à apprendre (à lire, à écrire, à calculer…). +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ortho2.html b/app/src/main/assets/fiche_ortho2.html new file mode 100644 index 0000000..b2dfb2a --- /dev/null +++ b/app/src/main/assets/fiche_ortho2.html @@ -0,0 +1,32 @@ + + + + +

Orthophoniste

+ +
+ +

Établir un bilan

+

+Auxiliaire médical, l'orthophoniste intervient sur prescription d'un médecin généraliste ou spécialiste (phoniatre, ORL). À la première visite, il établit un bilan orthophonique qui prend aussi en compte les caractéristiques du patient : sociale, économique et culturelle. Au terme de cet examen, il transmet au médecin ses observations et ses conclusions. +

+ +

Définir le trouble

+

+L'orthophoniste intervient sur les troubles de la voix, de la parole, de la respiration, de la déglutition. Il rééduque les défauts de prononciation (bégaiement, dyslexie, dysphasie...). Il traite aussi les difficultés d'écriture, de calcul ainsi que les pertes de parole (notamment après un accident cérébral ou une opération). +

+ +

Rééduquer

+

+Lors des séances, l'orthophoniste utilise des exercices techniques et ludiques adaptés à chaque patient et à chaque trouble. Il rééduque beaucoup les enfants avec qui il utilise des exercices courts. Avec les adultes, selon le type de handicap ou de malformation, il conçoit le programme de rééducation en collaboration avec le patient. +

+ +

Informer

+

+Au niveau national, les orthophonistes s'impliquent et apportent un appui technique dans de nombreuses campagnes de soins ou de sensibilisation. Le développement du travail en réseau, l'échange d'informations et la formation continue sont au centre des pratiques des orthophonistes. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_ortho3.html b/app/src/main/assets/fiche_ortho3.html new file mode 100644 index 0000000..b2dfb2a --- /dev/null +++ b/app/src/main/assets/fiche_ortho3.html @@ -0,0 +1,32 @@ + + + + +

Orthophoniste

+ +
+ +

Établir un bilan

+

+Auxiliaire médical, l'orthophoniste intervient sur prescription d'un médecin généraliste ou spécialiste (phoniatre, ORL). À la première visite, il établit un bilan orthophonique qui prend aussi en compte les caractéristiques du patient : sociale, économique et culturelle. Au terme de cet examen, il transmet au médecin ses observations et ses conclusions. +

+ +

Définir le trouble

+

+L'orthophoniste intervient sur les troubles de la voix, de la parole, de la respiration, de la déglutition. Il rééduque les défauts de prononciation (bégaiement, dyslexie, dysphasie...). Il traite aussi les difficultés d'écriture, de calcul ainsi que les pertes de parole (notamment après un accident cérébral ou une opération). +

+ +

Rééduquer

+

+Lors des séances, l'orthophoniste utilise des exercices techniques et ludiques adaptés à chaque patient et à chaque trouble. Il rééduque beaucoup les enfants avec qui il utilise des exercices courts. Avec les adultes, selon le type de handicap ou de malformation, il conçoit le programme de rééducation en collaboration avec le patient. +

+ +

Informer

+

+Au niveau national, les orthophonistes s'impliquent et apportent un appui technique dans de nombreuses campagnes de soins ou de sensibilisation. Le développement du travail en réseau, l'échange d'informations et la formation continue sont au centre des pratiques des orthophonistes. +

+ +

http://www.onisep.fr

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_orthoptiste1.html b/app/src/main/assets/fiche_orthoptiste1.html new file mode 100644 index 0000000..951ea4e --- /dev/null +++ b/app/src/main/assets/fiche_orthoptiste1.html @@ -0,0 +1,19 @@ + + + + +

Orthoptiste

+ +
+ +

+L'orthoptiste est la personne qui s'occupe +de la rééducation des yeux : +elle fait faire des exercices de gymnastique des yeux +pour renforcer leurs muscles. + +Elle peut travailler à l'hôpital ou dans un cabinet en ville. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_orthoptiste2.html b/app/src/main/assets/fiche_orthoptiste2.html new file mode 100644 index 0000000..951ea4e --- /dev/null +++ b/app/src/main/assets/fiche_orthoptiste2.html @@ -0,0 +1,19 @@ + + + + +

Orthoptiste

+ +
+ +

+L'orthoptiste est la personne qui s'occupe +de la rééducation des yeux : +elle fait faire des exercices de gymnastique des yeux +pour renforcer leurs muscles. + +Elle peut travailler à l'hôpital ou dans un cabinet en ville. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_orthoptiste3.html b/app/src/main/assets/fiche_orthoptiste3.html new file mode 100644 index 0000000..951ea4e --- /dev/null +++ b/app/src/main/assets/fiche_orthoptiste3.html @@ -0,0 +1,19 @@ + + + + +

Orthoptiste

+ +
+ +

+L'orthoptiste est la personne qui s'occupe +de la rééducation des yeux : +elle fait faire des exercices de gymnastique des yeux +pour renforcer leurs muscles. + +Elle peut travailler à l'hôpital ou dans un cabinet en ville. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_psycho1.html b/app/src/main/assets/fiche_psycho1.html new file mode 100644 index 0000000..1ea84f3 --- /dev/null +++ b/app/src/main/assets/fiche_psycho1.html @@ -0,0 +1,20 @@ + + + + +

Psychologue

+ +
+ +

+Le psychologue est la personne +qui a choisi comme métier d'écouter, +d'essayer de comprendre et d'aider +les personnes qui ont des soucis. + +Le psychologue n'est pas un médecin, +il ne peut pas prescrire de médicaments. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_psycho2.html b/app/src/main/assets/fiche_psycho2.html new file mode 100644 index 0000000..1ea84f3 --- /dev/null +++ b/app/src/main/assets/fiche_psycho2.html @@ -0,0 +1,20 @@ + + + + +

Psychologue

+ +
+ +

+Le psychologue est la personne +qui a choisi comme métier d'écouter, +d'essayer de comprendre et d'aider +les personnes qui ont des soucis. + +Le psychologue n'est pas un médecin, +il ne peut pas prescrire de médicaments. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_psycho3.html b/app/src/main/assets/fiche_psycho3.html new file mode 100644 index 0000000..1ea84f3 --- /dev/null +++ b/app/src/main/assets/fiche_psycho3.html @@ -0,0 +1,20 @@ + + + + +

Psychologue

+ +
+ +

+Le psychologue est la personne +qui a choisi comme métier d'écouter, +d'essayer de comprendre et d'aider +les personnes qui ont des soucis. + +Le psychologue n'est pas un médecin, +il ne peut pas prescrire de médicaments. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_secret1.html b/app/src/main/assets/fiche_secret1.html new file mode 100644 index 0000000..d69f301 --- /dev/null +++ b/app/src/main/assets/fiche_secret1.html @@ -0,0 +1,21 @@ + + + + +

Secrétaire

+ +
+ +

+ La secrétaire médicale est la personne +qui répond au téléphone et prend les rendez-vous +dans un cabinet médical ou dans le service +des consultations de l’hôpital. + +Elle accueille les personnes qui ont rendez-vous, +elle leur indique la salle d’attente +et les prévient quand c’est leur tour. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_secret2.html b/app/src/main/assets/fiche_secret2.html new file mode 100644 index 0000000..d69f301 --- /dev/null +++ b/app/src/main/assets/fiche_secret2.html @@ -0,0 +1,21 @@ + + + + +

Secrétaire

+ +
+ +

+ La secrétaire médicale est la personne +qui répond au téléphone et prend les rendez-vous +dans un cabinet médical ou dans le service +des consultations de l’hôpital. + +Elle accueille les personnes qui ont rendez-vous, +elle leur indique la salle d’attente +et les prévient quand c’est leur tour. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/fiche_secret3.html b/app/src/main/assets/fiche_secret3.html new file mode 100644 index 0000000..d69f301 --- /dev/null +++ b/app/src/main/assets/fiche_secret3.html @@ -0,0 +1,21 @@ + + + + +

Secrétaire

+ +
+ +

+ La secrétaire médicale est la personne +qui répond au téléphone et prend les rendez-vous +dans un cabinet médical ou dans le service +des consultations de l’hôpital. + +Elle accueille les personnes qui ont rendez-vous, +elle leur indique la salle d’attente +et les prévient quand c’est leur tour. +

+ + + \ No newline at end of file diff --git a/app/src/main/assets/google_map.html b/app/src/main/assets/google_map.html new file mode 100644 index 0000000..6545280 --- /dev/null +++ b/app/src/main/assets/google_map.html @@ -0,0 +1,62 @@ + + + + Map + + + + + + + +
+ + \ No newline at end of file diff --git a/app/src/main/assets/grands1.png b/app/src/main/assets/grands1.png new file mode 100644 index 0000000..0b8943b Binary files /dev/null and b/app/src/main/assets/grands1.png differ diff --git a/app/src/main/assets/grands2.png b/app/src/main/assets/grands2.png new file mode 100644 index 0000000..3caf070 Binary files /dev/null and b/app/src/main/assets/grands2.png differ diff --git a/app/src/main/assets/grands3.png b/app/src/main/assets/grands3.png new file mode 100644 index 0000000..776d56f Binary files /dev/null and b/app/src/main/assets/grands3.png differ diff --git a/app/src/main/assets/inf.jpg b/app/src/main/assets/inf.jpg new file mode 100644 index 0000000..d5eae77 Binary files /dev/null and b/app/src/main/assets/inf.jpg differ diff --git a/app/src/main/assets/inf1.png b/app/src/main/assets/inf1.png new file mode 100644 index 0000000..6e1ab90 Binary files /dev/null and b/app/src/main/assets/inf1.png differ diff --git a/app/src/main/assets/inf2.png b/app/src/main/assets/inf2.png new file mode 100644 index 0000000..65fe877 Binary files /dev/null and b/app/src/main/assets/inf2.png differ diff --git a/app/src/main/assets/inf3.png b/app/src/main/assets/inf3.png new file mode 100644 index 0000000..a72419b Binary files /dev/null and b/app/src/main/assets/inf3.png differ diff --git a/app/src/main/assets/kine1.png b/app/src/main/assets/kine1.png new file mode 100644 index 0000000..529ed3f Binary files /dev/null and b/app/src/main/assets/kine1.png differ diff --git a/app/src/main/assets/kine10.png b/app/src/main/assets/kine10.png new file mode 100644 index 0000000..ae9dcfc Binary files /dev/null and b/app/src/main/assets/kine10.png differ diff --git a/app/src/main/assets/kine11.png b/app/src/main/assets/kine11.png new file mode 100644 index 0000000..92740f0 Binary files /dev/null and b/app/src/main/assets/kine11.png differ diff --git a/app/src/main/assets/kine12.png b/app/src/main/assets/kine12.png new file mode 100644 index 0000000..ce22ec0 Binary files /dev/null and b/app/src/main/assets/kine12.png differ diff --git a/app/src/main/assets/kine2.png b/app/src/main/assets/kine2.png new file mode 100644 index 0000000..24c271a Binary files /dev/null and b/app/src/main/assets/kine2.png differ diff --git a/app/src/main/assets/kine3.png b/app/src/main/assets/kine3.png new file mode 100644 index 0000000..ba8378e Binary files /dev/null and b/app/src/main/assets/kine3.png differ diff --git a/app/src/main/assets/kine4.png b/app/src/main/assets/kine4.png new file mode 100644 index 0000000..d1bcfd3 Binary files /dev/null and b/app/src/main/assets/kine4.png differ diff --git a/app/src/main/assets/kine5.png b/app/src/main/assets/kine5.png new file mode 100644 index 0000000..ed28306 Binary files /dev/null and b/app/src/main/assets/kine5.png differ diff --git a/app/src/main/assets/kine6.png b/app/src/main/assets/kine6.png new file mode 100644 index 0000000..be96649 Binary files /dev/null and b/app/src/main/assets/kine6.png differ diff --git a/app/src/main/assets/kine7.png b/app/src/main/assets/kine7.png new file mode 100644 index 0000000..0c3212d Binary files /dev/null and b/app/src/main/assets/kine7.png differ diff --git a/app/src/main/assets/kine8.png b/app/src/main/assets/kine8.png new file mode 100644 index 0000000..1012925 Binary files /dev/null and b/app/src/main/assets/kine8.png differ diff --git a/app/src/main/assets/kine9.png b/app/src/main/assets/kine9.png new file mode 100644 index 0000000..f489b6c Binary files /dev/null and b/app/src/main/assets/kine9.png differ diff --git a/app/src/main/assets/medecin.jpg b/app/src/main/assets/medecin.jpg new file mode 100644 index 0000000..4fc7760 Binary files /dev/null and b/app/src/main/assets/medecin.jpg differ diff --git a/app/src/main/assets/moyens1.png b/app/src/main/assets/moyens1.png new file mode 100644 index 0000000..2adabed Binary files /dev/null and b/app/src/main/assets/moyens1.png differ diff --git a/app/src/main/assets/moyens2.png b/app/src/main/assets/moyens2.png new file mode 100644 index 0000000..16d16c2 Binary files /dev/null and b/app/src/main/assets/moyens2.png differ diff --git a/app/src/main/assets/moyens3.png b/app/src/main/assets/moyens3.png new file mode 100644 index 0000000..df636dc Binary files /dev/null and b/app/src/main/assets/moyens3.png differ diff --git a/app/src/main/assets/moyens4.png b/app/src/main/assets/moyens4.png new file mode 100644 index 0000000..00103cb Binary files /dev/null and b/app/src/main/assets/moyens4.png differ diff --git a/app/src/main/assets/moyens5.png b/app/src/main/assets/moyens5.png new file mode 100644 index 0000000..6842a88 Binary files /dev/null and b/app/src/main/assets/moyens5.png differ diff --git a/app/src/main/assets/orga_accueil.html b/app/src/main/assets/orga_accueil.html new file mode 100644 index 0000000..e32aae2 --- /dev/null +++ b/app/src/main/assets/orga_accueil.html @@ -0,0 +1,11 @@ + + + + + +
+ +
+ + + \ No newline at end of file diff --git a/app/src/main/assets/orga_apa.html b/app/src/main/assets/orga_apa.html new file mode 100644 index 0000000..266d831 --- /dev/null +++ b/app/src/main/assets/orga_apa.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_appareilleur.html b/app/src/main/assets/orga_appareilleur.html new file mode 100644 index 0000000..9dbb516 --- /dev/null +++ b/app/src/main/assets/orga_appareilleur.html @@ -0,0 +1,8 @@ + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_assist.html b/app/src/main/assets/orga_assist.html new file mode 100644 index 0000000..211fe40 --- /dev/null +++ b/app/src/main/assets/orga_assist.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_cadre.html b/app/src/main/assets/orga_cadre.html new file mode 100644 index 0000000..764ceef --- /dev/null +++ b/app/src/main/assets/orga_cadre.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_doc.html b/app/src/main/assets/orga_doc.html new file mode 100644 index 0000000..2a6c61f --- /dev/null +++ b/app/src/main/assets/orga_doc.html @@ -0,0 +1,9 @@ + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_ergo.html b/app/src/main/assets/orga_ergo.html new file mode 100644 index 0000000..9c42faf --- /dev/null +++ b/app/src/main/assets/orga_ergo.html @@ -0,0 +1,10 @@ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/app/src/main/assets/orga_grands.html b/app/src/main/assets/orga_grands.html new file mode 100644 index 0000000..868b65b --- /dev/null +++ b/app/src/main/assets/orga_grands.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_inf.html b/app/src/main/assets/orga_inf.html new file mode 100644 index 0000000..adf4b60 --- /dev/null +++ b/app/src/main/assets/orga_inf.html @@ -0,0 +1,10 @@ + + + + +
+
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_kine.html b/app/src/main/assets/orga_kine.html new file mode 100644 index 0000000..500c9dc --- /dev/null +++ b/app/src/main/assets/orga_kine.html @@ -0,0 +1,20 @@ + + + + + +
+ +
+ +
+ +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_moyens.html b/app/src/main/assets/orga_moyens.html new file mode 100644 index 0000000..eceaea9 --- /dev/null +++ b/app/src/main/assets/orga_moyens.html @@ -0,0 +1,10 @@ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/app/src/main/assets/orga_ortho.html b/app/src/main/assets/orga_ortho.html new file mode 100644 index 0000000..a6c63fa --- /dev/null +++ b/app/src/main/assets/orga_ortho.html @@ -0,0 +1,10 @@ + + + + +
+
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_orthoptiste.html b/app/src/main/assets/orga_orthoptiste.html new file mode 100644 index 0000000..1220e1f --- /dev/null +++ b/app/src/main/assets/orga_orthoptiste.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_petits.html b/app/src/main/assets/orga_petits.html new file mode 100644 index 0000000..8f43be5 --- /dev/null +++ b/app/src/main/assets/orga_petits.html @@ -0,0 +1,10 @@ + + + + + +
+
+ + + \ No newline at end of file diff --git a/app/src/main/assets/orga_psy.html b/app/src/main/assets/orga_psy.html new file mode 100644 index 0000000..7ce74c8 --- /dev/null +++ b/app/src/main/assets/orga_psy.html @@ -0,0 +1,10 @@ + + + + + +
+
+ + + \ No newline at end of file diff --git a/app/src/main/assets/orga_psychomo.html b/app/src/main/assets/orga_psychomo.html new file mode 100644 index 0000000..4f88284 --- /dev/null +++ b/app/src/main/assets/orga_psychomo.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_secret.html b/app/src/main/assets/orga_secret.html new file mode 100644 index 0000000..2e4a2f9 --- /dev/null +++ b/app/src/main/assets/orga_secret.html @@ -0,0 +1,10 @@ + + + + + +
+ + + + \ No newline at end of file diff --git a/app/src/main/assets/orga_standard.html b/app/src/main/assets/orga_standard.html new file mode 100644 index 0000000..27edb6f --- /dev/null +++ b/app/src/main/assets/orga_standard.html @@ -0,0 +1,9 @@ + + + + + +
+ + + \ No newline at end of file diff --git a/app/src/main/assets/ortho.jpg b/app/src/main/assets/ortho.jpg new file mode 100644 index 0000000..2b82e79 Binary files /dev/null and b/app/src/main/assets/ortho.jpg differ diff --git a/app/src/main/assets/ortho1.png b/app/src/main/assets/ortho1.png new file mode 100644 index 0000000..1ab5b33 Binary files /dev/null and b/app/src/main/assets/ortho1.png differ diff --git a/app/src/main/assets/ortho2.png b/app/src/main/assets/ortho2.png new file mode 100644 index 0000000..165171b Binary files /dev/null and b/app/src/main/assets/ortho2.png differ diff --git a/app/src/main/assets/ortho3.png b/app/src/main/assets/ortho3.png new file mode 100644 index 0000000..b4c2b6c Binary files /dev/null and b/app/src/main/assets/ortho3.png differ diff --git a/app/src/main/assets/orthoptiste.jpg b/app/src/main/assets/orthoptiste.jpg new file mode 100644 index 0000000..8209f33 Binary files /dev/null and b/app/src/main/assets/orthoptiste.jpg differ diff --git a/app/src/main/assets/orthopto1.png b/app/src/main/assets/orthopto1.png new file mode 100644 index 0000000..9ca97b1 Binary files /dev/null and b/app/src/main/assets/orthopto1.png differ diff --git a/app/src/main/assets/pediatre1.png b/app/src/main/assets/pediatre1.png new file mode 100644 index 0000000..94b5777 Binary files /dev/null and b/app/src/main/assets/pediatre1.png differ diff --git a/app/src/main/assets/petits1.png b/app/src/main/assets/petits1.png new file mode 100644 index 0000000..0fe1999 Binary files /dev/null and b/app/src/main/assets/petits1.png differ diff --git a/app/src/main/assets/petits2.png b/app/src/main/assets/petits2.png new file mode 100644 index 0000000..acccdb3 Binary files /dev/null and b/app/src/main/assets/petits2.png differ diff --git a/app/src/main/assets/petits3.png b/app/src/main/assets/petits3.png new file mode 100644 index 0000000..9ddfc28 Binary files /dev/null and b/app/src/main/assets/petits3.png differ diff --git a/app/src/main/assets/petits4.png b/app/src/main/assets/petits4.png new file mode 100644 index 0000000..feb051e Binary files /dev/null and b/app/src/main/assets/petits4.png differ diff --git a/app/src/main/assets/psy1.png b/app/src/main/assets/psy1.png new file mode 100644 index 0000000..8a504c5 Binary files /dev/null and b/app/src/main/assets/psy1.png differ diff --git a/app/src/main/assets/psy2.png b/app/src/main/assets/psy2.png new file mode 100644 index 0000000..93f9c7b Binary files /dev/null and b/app/src/main/assets/psy2.png differ diff --git a/app/src/main/assets/psy3.png b/app/src/main/assets/psy3.png new file mode 100644 index 0000000..080aa06 Binary files /dev/null and b/app/src/main/assets/psy3.png differ diff --git a/app/src/main/assets/psychologue.jpg b/app/src/main/assets/psychologue.jpg new file mode 100644 index 0000000..b47b776 Binary files /dev/null and b/app/src/main/assets/psychologue.jpg differ diff --git a/app/src/main/assets/psychomo1.png b/app/src/main/assets/psychomo1.png new file mode 100644 index 0000000..5be8556 Binary files /dev/null and b/app/src/main/assets/psychomo1.png differ diff --git a/app/src/main/assets/secret1.png b/app/src/main/assets/secret1.png new file mode 100644 index 0000000..3ff4b86 Binary files /dev/null and b/app/src/main/assets/secret1.png differ diff --git a/app/src/main/assets/secret2.png b/app/src/main/assets/secret2.png new file mode 100644 index 0000000..3c14898 Binary files /dev/null and b/app/src/main/assets/secret2.png differ diff --git a/app/src/main/assets/secretaire.jpg b/app/src/main/assets/secretaire.jpg new file mode 100644 index 0000000..5d720ae Binary files /dev/null and b/app/src/main/assets/secretaire.jpg differ diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/MainActivity.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/MainActivity.java new file mode 100644 index 0000000..b7db47f --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/MainActivity.java @@ -0,0 +1,228 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.app.Dialog; +import android.app.ProgressDialog; +import android.content.Intent; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.net.URLConnection; + +public class MainActivity extends AppCompatActivity +{ + public static final int DIALOG_DOWNLOAD_PROGRESS = 1; + private Button startBtn; + private ProgressDialog progressDialog; + final String url = "http://192.168.43.197/documents/"; + + public static File CreateFile() + { + File path = new File(Environment.getExternalStorageDirectory(),"/SSR_docs/"); + path.mkdirs(); + return path; + } + + String[] dir = { + "contact_map.html", + "fiche_amb1.html", + "fiche_amb2.html", + "fiche_amb3.html", + "fiche_ane1.html", + "fiche_ane2.html", + "fiche_ane3.html", + "fiche_assist1.html", + "fiche_assist2.html ", + "fiche_assist3.html ", + "fiche_educ1.html ", + "fiche_educ2.html ", + "fiche_educ3.html ", + "fiche_ergo1.html ", + "fiche_ergo2.html ", + "fiche_ergo3.html ", + "fiche_inf1.html ", + "fiche_inf2.html ", + "fiche_inf3.html ", + "fiche_kine1.html ", + "fiche_kine2.html ", + "fiche_kine3.html ", + "fiche_medecin1.html ", + "fiche_medecin2.html ", + "fiche_medecin3.html ", + "fiche_ortho1.html ", + "fiche_ortho2.html ", + "fiche_ortho3.html ", + "fiche_orthoptiste1.html ", + "fiche_orthoptiste2.html ", + "fiche_orthoptiste3.html ", + "fiche_psycho1.html ", + "fiche_psycho2.html ", + "fiche_psycho3.html ", + "fiche_secret1.html ", + "fiche_secret2.html ", + "fiche_secret3.html ", + "google_map.html ", + "orga_accueil.html ", + "orga_apa.html ", + "orga_appareilleur.html" , + "orga_assist.html ", + "orga_cadre.html ", + "orga_doc.html ", + "orga_ergo.html ", + "orga_grands.html ", + "orga_inf.html ", + "orga_kine.html ", + "orga_moyens.html ", + "orga_ortho.html ", + "orga_orthoptiste.html ", + "orga_petits.html ", + "orga_psy.html", + "orga_psychomo.html" , + "orga_secret.html" , + "orga_standard.html" + }; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + startBtn = (Button) findViewById(R.id.telechargement); + startBtn.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // TODO Auto-generated method stub + CreateFile(); + new DownloadFileAsync().execute(url + dir[0] ,url + dir[1], url +dir[2], url+dir[3], + url+dir[4], url+dir[5], url+dir[6], url+dir[7], url+dir[8], url+dir[9], + url+dir[10], url+dir[11], url+dir[12], url+dir[13], url+dir[14], url+dir[15],url+dir[16], + url+dir[17], url+dir[18], url+dir[19], url+dir[20], url+dir[21], url+dir[22], + url+dir[23], url+dir[24], url+dir[25], url+dir[26], url+dir[27], url+dir[28], url+dir[29], + url+dir[30], url+dir[31], url+dir[32], url+dir[33], url+dir[34], url+dir[35], url+dir[36], + url+dir[37], url+dir[38], url+dir[39], url+dir[40], url+dir[41], url+dir[42], url+dir[43], + url+dir[44], url+dir[45], url+dir[46], url+dir[47], url+dir[48], url+dir[49], url+dir[50], + url+dir[51], url+dir[52], url+dir[53], url+dir[54]);//OK + } + }); + } + + @Override + @Deprecated + protected Dialog onCreateDialog(int id) { + // TODO Auto-generated method stub + switch (id) { + case DIALOG_DOWNLOAD_PROGRESS: + progressDialog = new ProgressDialog(this); + progressDialog.setMessage("Téléchargement des fichiers"); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setCancelable(false); + progressDialog.show(); + return progressDialog; + default: + return null; + } + } + + class DownloadFileAsync extends AsyncTask { + + @Override + protected String doInBackground(String... params) { + // TODO Auto-generated method stub + int count; + for (int i = 0; i < dir.length; i++) { + try { + + URL url = new URL(params[i]); + URLConnection connexion = url.openConnection(); + connexion.connect(); + + int lengthofFile = connexion.getContentLength(); + Log.d("ANDRO_ASYNC", "Length of file: " + lengthofFile); + + InputStream input = new BufferedInputStream(url.openStream()); + OutputStream output = new FileOutputStream("/sdcard/SSR_docs/" + dir[i]); + + byte data[] = new byte[1024]; + + long total = 0; + + while ((count = input.read(data)) != -1) { + total += count; + publishProgress("" + (int) ((total * 100) / lengthofFile)); + output.write(data, 0, count); + } + + output.flush(); + output.close(); + input.close(); + } catch (Exception e) { + Log.i("FAIL", "Problème de téléchargement"); + // TODO: handle exception + } + + }return null; + } + + @Override + protected void onPostExecute(String result) { + // TODO Auto-generated method stub + dismissDialog(DIALOG_DOWNLOAD_PROGRESS); + } + + @Override + protected void onPreExecute() { + // TODO Auto-generated method stub + super.onPreExecute(); + showDialog(DIALOG_DOWNLOAD_PROGRESS); + } + + @Override + protected void onProgressUpdate(String... values) { + // TODO Auto-generated method stub + Log.d("ANDRO_ASYNC", values[0]); + progressDialog.setProgress(Integer.parseInt(values[0])); + } + + } + + public void send_savoirplus(View v) + { + Intent intent = new Intent(MainActivity.this, savoirplus.class); + startActivity(intent); + } + + public void send_age1(View v) + { + Intent intent1 = new Intent(MainActivity.this, activity_age1.class); + startActivity(intent1); + } + + public void send_age2(View v) + { + Intent intent2 = new Intent(MainActivity.this, activity_age2.class); + startActivity(intent2); + } + + public void send_age3(View v) + { + Intent intent3 = new Intent(MainActivity.this, activity_age3.class); + startActivity(intent3); + } + + + public void send_hop(View v) + { + Intent intent4 = new Intent(MainActivity.this, plan_hospital.class); + startActivity(intent4); + } +} \ No newline at end of file diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age1.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age1.java new file mode 100644 index 0000000..1f81768 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age1.java @@ -0,0 +1,83 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.ImageButton; +import android.widget.Toast; + +import com.google.zxing.integration.android.IntentIntegrator; +import com.google.zxing.integration.android.IntentResult; + + +/** + * Created by Robin on 30/01/2017. + */ + +public class activity_age1 extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_age1); + + ImageButton btnScan = (ImageButton) findViewById(R.id.mode_aventure); + ImageButton btnColo = (ImageButton) findViewById(R.id.dessine); + + final Activity activity = this; + + btnScan.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + IntentIntegrator integrator = new IntentIntegrator(activity); + integrator.initiateScan(); + } + }); + + btnColo.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent = getPackageManager().getLaunchIntentForPackage("anupam.acrylic"); + if (intent != null) { + // We found the activity now start the activity + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } else { + // Bring user to the market or let them choose an app? + intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setData(Uri.parse("market://details?id=" + "anupam.acrylic")); + startActivity(intent); + } + + } + }); + + } + + protected void onActivityResult(int requestCode, int resultCode, Intent data) + { + IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); + if (result != null) { + if (result.getContents() == null) + { + Toast.makeText(this, "Scan arrêté", Toast.LENGTH_LONG).show(); + } else { + Intent i = new Intent(activity_age1.this, educ1.class); + i.putExtra("result_flash",result.getContents()); + startActivity(i); + } + } else + { + super.onActivityResult(requestCode, resultCode, data); + } + } +} + + + + diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age2.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age2.java new file mode 100644 index 0000000..11f7b66 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age2.java @@ -0,0 +1,77 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.ImageButton; +import android.widget.Toast; + +import com.google.zxing.integration.android.IntentIntegrator; +import com.google.zxing.integration.android.IntentResult; + +/** + * Created by Robin on 30/01/2017. + */ + +public class activity_age2 extends AppCompatActivity +{ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_age2); + + ImageButton btnScan = (ImageButton) findViewById(R.id.mode_aventure); + ImageButton btnPuzzle = (ImageButton) findViewById(R.id.puzzle); + final Activity activity = this; + + btnScan.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + IntentIntegrator integrator = new IntentIntegrator(activity); + integrator.initiateScan(); + } + }); + + btnPuzzle.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent = getPackageManager().getLaunchIntentForPackage("com.kmrowiec.puzzlegame"); + if (intent != null) { + // We found the activity now start the activity + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } else { + // Bring user to the market or let them choose an app? + intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setData(Uri.parse("market://details?id=" + "com.kmrowiec.puzzlegame")); + startActivity(intent); + } + + } + }); + } + + protected void onActivityResult(int requestCode, int resultCode, Intent data) + { + IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); + if (result != null) { + if (result.getContents() == null) + { + Toast.makeText(this, "Scan arrêté", Toast.LENGTH_LONG).show(); + } else { + Intent i = new Intent(activity_age2.this, educ2.class); + i.putExtra("result_flash",result.getContents()); + startActivity(i); + } + } else + { + super.onActivityResult(requestCode, resultCode, data); + } + } + +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age3.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age3.java new file mode 100644 index 0000000..c191ad2 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_age3.java @@ -0,0 +1,55 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.ImageButton; +import android.widget.Toast; + +import com.google.zxing.integration.android.IntentIntegrator; +import com.google.zxing.integration.android.IntentResult; + +/** + * Created by Robin on 30/01/2017. + */ + + +public class activity_age3 extends AppCompatActivity { + @Override + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_age3); + + ImageButton btnScan = (ImageButton) findViewById(R.id.mode_aventure); + final Activity activity = this; + + btnScan.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + IntentIntegrator integrator = new IntentIntegrator(activity); + integrator.initiateScan(); + } + }); + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + + IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); + if (result != null) { + if (result.getContents() == null) + { + Toast.makeText(this, "Scan arrêté", Toast.LENGTH_LONG).show(); + } else { + Intent i = new Intent(activity_age3.this, educ3.class); + i.putExtra("result_flash",result.getContents()); + startActivity(i); + } + } else + { + super.onActivityResult(requestCode, resultCode, data); + } + } +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_hop.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_hop.java new file mode 100644 index 0000000..ad54a59 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/activity_hop.java @@ -0,0 +1,101 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.webkit.WebSettings; +import android.webkit.WebView; + +/** + * Created by Robin on 22/02/2017. + */ + +public class activity_hop extends AppCompatActivity +{ + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_explication); + WebView fiche_educ = (WebView) findViewById(R.id.fiche_educ); + WebSettings webSetting = fiche_educ.getSettings(); + webSetting.setJavaScriptEnabled(true); + Bundle bundle = getIntent().getExtras(); + String result_appui2 = bundle.getString("result_appui"); + + + if (result_appui2.equals("apa")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_apa.html"); + } + + if (result_appui2.equals("psy")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_psy.html"); + } + + if (result_appui2.equals("inf")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_inf.html"); + } + if (result_appui2.equals("doc")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_doc.html"); + } + if (result_appui2.equals("petits")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_petits.html"); + } + if (result_appui2.equals("grands")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_grands.html"); + } + if (result_appui2.equals("moyens")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_moyens.html"); + } + if (result_appui2.equals("cadre")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_cadre.html"); + } + if (result_appui2.equals("secret")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_secret.html"); + } + if (result_appui2.equals("ergo")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_ergo.html"); + } + if (result_appui2.equals("accueil")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_accueil.html"); + } + if (result_appui2.equals("psychomo")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_psychomo.html"); + } + if (result_appui2.equals("kine")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_kine.html"); + } + if (result_appui2.equals("appareilleur")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_appareilleur.html"); + } + if (result_appui2.equals("assist")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_assist.html"); + } + if (result_appui2.equals("orthoptiste")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_orthoptiste.html"); + } + if (result_appui2.equals("ortho")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_ortho.html"); + } + if (result_appui2.equals("standardiste")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/orga_standard.html"); + } + } + +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ1.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ1.java new file mode 100644 index 0000000..cff6b08 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ1.java @@ -0,0 +1,70 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.webkit.WebSettings; +import android.webkit.WebView; + +public class educ1 extends AppCompatActivity { + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_explication); + WebView fiche_educ = (WebView) findViewById(R.id.fiche_educ); + WebSettings webSetting = fiche_educ.getSettings(); + webSetting.setBuiltInZoomControls(true); + webSetting.setJavaScriptEnabled(true); + Bundle bundle = getIntent().getExtras(); + String result_flash = bundle.getString("result_flash"); + if (result_flash.equals("éducateur")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_educ1.html"); + } + if (result_flash.equals("ambulancier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_amb1.html"); + } + if (result_flash.equals("Kiné")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_kine1.html"); + } + if (result_flash.equals("ortho")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ortho1.html"); + } + if (result_flash.equals("infirmier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_inf1.html"); + } + if (result_flash.equals("ergo")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ergo1.html"); + } + if (result_flash.equals("ane")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ane1.html"); + } + if (result_flash.equals("secretaire")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_secret1.html"); + } + if (result_flash.equals("psychologue")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_psycho1.html"); + } + if (result_flash.equals("medecin")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_medecin1.html"); + } + if (result_flash.equals("orthoptiste")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_orthoptiste1.html"); + } + if (result_flash.equals("assistante")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_assist1.html"); + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ2.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ2.java new file mode 100644 index 0000000..79bb293 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ2.java @@ -0,0 +1,74 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.webkit.WebSettings; +import android.webkit.WebView; + +/** + * Created by Robin on 15/02/2017. + */ +public class educ2 extends AppCompatActivity { + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_explication); + WebView fiche_educ = (WebView) findViewById(R.id.fiche_educ); + WebSettings webSetting = fiche_educ.getSettings(); + webSetting.setBuiltInZoomControls(true); + webSetting.setJavaScriptEnabled(true); + Bundle bundle = getIntent().getExtras(); + String result_flash = bundle.getString("result_flash"); + if (result_flash.equals("éducateur")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/SSR_docs/fiche_educ2.html"); + } + if (result_flash.equals("ambulancier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_amb2.html"); + } + if (result_flash.equals("Kiné")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_kine2.html"); + } + if (result_flash.equals("ortho")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ortho2.html"); + } + if (result_flash.equals("infirmier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_inf2.html"); + } + if (result_flash.equals("ergo")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ergo2.html"); + } + if (result_flash.equals("ane")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ane2.html"); + } + if (result_flash.equals("secretaire")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_secret2.html"); + } + if (result_flash.equals("psychologue")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_psycho2.html"); + } + if (result_flash.equals("medecin")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_medecin2.html"); + } + if (result_flash.equals("orthoptiste")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_orthoptiste2.html"); + } + if (result_flash.equals("assistante")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_assist2.html"); + } + } + + +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ3.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ3.java new file mode 100644 index 0000000..42f2765 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/educ3.java @@ -0,0 +1,74 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.webkit.WebSettings; +import android.webkit.WebView; + +/** + * Created by Robin on 08/02/2017. + */ + +public class educ3 extends AppCompatActivity { + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_explication); + WebView fiche_educ = (WebView) findViewById(R.id.fiche_educ); + WebSettings webSetting = fiche_educ.getSettings(); + webSetting.setBuiltInZoomControls(true); + webSetting.setJavaScriptEnabled(true); + Bundle bundle = getIntent().getExtras(); + String result_flash = bundle.getString("result_flash"); + if (result_flash.equals("éducateur")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/SSR_docs/fiche_educ3.html"); + } + if (result_flash.equals("ambulancier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_amb3.html"); + } + if (result_flash.equals("Kiné")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_kine3.html"); + } + if (result_flash.equals("ortho")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ortho3.html"); + } + if (result_flash.equals("infirmier")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_inf3.html"); + } + if (result_flash.equals("ergo")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ergo3.html"); + } + if (result_flash.equals("ane")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_ane3.html"); + } + if (result_flash.equals("secretaire")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_secret3.html"); + } + if (result_flash.equals("psychologue")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_psycho3.html"); + } + if (result_flash.equals("medecin")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_medecin3.html"); + } + if (result_flash.equals("orthoptiste")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_orthoptiste3.html"); + } + if (result_flash.equals("assistante")) + { + fiche_educ.loadUrl("file:///sdcard/SSR_docs/fiche_assist3.html"); + } + } + +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/plan_hospital.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/plan_hospital.java new file mode 100644 index 0000000..37d8ed4 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/plan_hospital.java @@ -0,0 +1,130 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; + + +/** + * Created by Robin on 22/02/2017. + */ + +public class plan_hospital extends AppCompatActivity +{ + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_planhop); + } + + public void apa(View v) { + + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","apa"); + startActivity(i); + } + + public void psy(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","psy"); + startActivity(i); + } + + + public void inf(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","inf"); + startActivity(i); + } + + public void doc(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","doc"); + startActivity(i); + } + + public void petits(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","petits"); + startActivity(i); + } + + public void moyens(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","moyens"); + startActivity(i); + } + + public void grands(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","grands"); + startActivity(i); + } + + public void cadre(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","cadre"); + startActivity(i); + } + + public void secret(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","secret"); + startActivity(i); + } + + public void ergo(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","ergo"); + startActivity(i); + } + + public void accueil(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","accueil"); + startActivity(i); + } + + public void psychomo(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","psychomo"); + startActivity(i); + } + + public void kine(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","kine"); + startActivity(i); + } + + public void appareilleur(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","appareilleur"); + startActivity(i); + } + + public void assist(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","assist"); + startActivity(i); + } + + public void orthoptiste(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","orthoptiste"); + startActivity(i); + } + + public void ortho(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","ortho"); + startActivity(i); + } + + public void standartiste(View v) { + Intent i = new Intent(plan_hospital.this, activity_hop.class); + i.putExtra("result_appui","standardiste"); + startActivity(i); + } + +} diff --git a/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/savoirplus.java b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/savoirplus.java new file mode 100644 index 0000000..903a4b5 --- /dev/null +++ b/app/src/main/java/ssrmarcsautelet/automation/appli/ssrmarcsautelet/savoirplus.java @@ -0,0 +1,32 @@ +package ssrmarcsautelet.automation.appli.ssrmarcsautelet; + + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AppCompatActivity; +import android.webkit.WebView; + +public class savoirplus extends AppCompatActivity { + + WebView map; + WebView contact; + @SuppressLint("SetJavaScriptEnabled") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_savoirplus); + + + map = (WebView) findViewById(R.id.map); + map.loadUrl("file:///sdcard/SSR_docs/SSR_docs/google_map.html"); + map.getSettings().setJavaScriptEnabled(true); + + contact = (WebView) findViewById(R.id.contact); + contact.loadUrl("file:///sdcard/SSR_docs/contact_map.html"); + contact.getSettings().setJavaScriptEnabled(true); + contact.getSettings().setBuiltInZoomControls(true); + } + + +} diff --git a/app/src/main/res/drawable/colorier.gif b/app/src/main/res/drawable/colorier.gif new file mode 100644 index 0000000..08278cf Binary files /dev/null and b/app/src/main/res/drawable/colorier.gif differ diff --git a/app/src/main/res/drawable/image.jpg b/app/src/main/res/drawable/image.jpg new file mode 100644 index 0000000..22d10b9 Binary files /dev/null and b/app/src/main/res/drawable/image.jpg differ diff --git a/app/src/main/res/drawable/kode.JPG b/app/src/main/res/drawable/kode.JPG new file mode 100644 index 0000000..913e988 Binary files /dev/null and b/app/src/main/res/drawable/kode.JPG differ diff --git a/app/src/main/res/drawable/plan.JPG b/app/src/main/res/drawable/plan.JPG new file mode 100644 index 0000000..2d22a9b Binary files /dev/null and b/app/src/main/res/drawable/plan.JPG differ diff --git a/app/src/main/res/drawable/puzzle.png b/app/src/main/res/drawable/puzzle.png new file mode 100644 index 0000000..560c058 Binary files /dev/null and b/app/src/main/res/drawable/puzzle.png differ diff --git a/app/src/main/res/layout/activity_age1.xml b/app/src/main/res/layout/activity_age1.xml new file mode 100644 index 0000000..08d7662 --- /dev/null +++ b/app/src/main/res/layout/activity_age1.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_age2.xml b/app/src/main/res/layout/activity_age2.xml new file mode 100644 index 0000000..4c4d569 --- /dev/null +++ b/app/src/main/res/layout/activity_age2.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_age3.xml b/app/src/main/res/layout/activity_age3.xml new file mode 100644 index 0000000..267cbc8 --- /dev/null +++ b/app/src/main/res/layout/activity_age3.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_explication.xml b/app/src/main/res/layout/activity_explication.xml new file mode 100644 index 0000000..1af4101 --- /dev/null +++ b/app/src/main/res/layout/activity_explication.xml @@ -0,0 +1,27 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..e30d160 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,129 @@ + + + + + + +