diff --git a/app/src/main/java/com/simplemobiletools/draw/MyCanvas.java b/app/src/main/java/com/simplemobiletools/draw/MyCanvas.java index 607712d..ab32d8a 100644 --- a/app/src/main/java/com/simplemobiletools/draw/MyCanvas.java +++ b/app/src/main/java/com/simplemobiletools/draw/MyCanvas.java @@ -85,7 +85,7 @@ public class MyCanvas extends View { canvas.drawPath(mPath, mPaint); } - public void clearCanvas(){ + public void clearCanvas() { mPath.reset(); mPaths.clear(); pathsUpdated(); diff --git a/app/src/main/java/com/simplemobiletools/draw/Utils.java b/app/src/main/java/com/simplemobiletools/draw/Utils.java index ecdea08..7115145 100644 --- a/app/src/main/java/com/simplemobiletools/draw/Utils.java +++ b/app/src/main/java/com/simplemobiletools/draw/Utils.java @@ -1,10 +1,28 @@ package com.simplemobiletools.draw; import android.content.Context; +import android.graphics.Color; import android.widget.Toast; public class Utils { + private final static double BRIGHTNESS_CUTOFF = 130.0; + public static void showToast(Context cxt, int msgId) { Toast.makeText(cxt, cxt.getResources().getString(msgId), Toast.LENGTH_SHORT).show(); } + + // Used to determine the best foreground color (black or white) given a background color + public static boolean shouldUseWhite(int color) { + float r, g, b; + r = Color.red(color); + g = Color.green(color); + b = Color.blue(color); + + double brightness = Math.sqrt( + r * r * .299 + + g * g * .587 + + b * b * .114); + + return brightness < BRIGHTNESS_CUTOFF; + } } diff --git a/app/src/main/java/com/simplemobiletools/draw/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/draw/activities/MainActivity.java index 63b9c00..6a4aafb 100644 --- a/app/src/main/java/com/simplemobiletools/draw/activities/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/draw/activities/MainActivity.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Bundle; @@ -18,6 +19,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; +import android.widget.ImageView; import android.widget.Toast; import com.simplemobiletools.draw.Config; @@ -87,6 +89,27 @@ public class MainActivity extends SimpleActivity implements MyCanvas.PathsChange case R.id.clear: mMyCanvas.clearCanvas(); return true; + case R.id.change_background: + int oldColor = ((ColorDrawable)mMyCanvas.getBackground()).getColor(); + AmbilWarnaDialog dialog = new AmbilWarnaDialog(this, oldColor, + new AmbilWarnaDialog.OnAmbilWarnaListener() { + @Override + public void onCancel(AmbilWarnaDialog dialog) { + } + + @Override + public void onOk(AmbilWarnaDialog dialog, int pickedColor) { + if (Utils.shouldUseWhite(pickedColor)) { + ((ImageView)mUndoBtn).setImageResource(R.mipmap.undo_white); + } else { + ((ImageView)mUndoBtn).setImageResource(R.mipmap.undo_black); + } + mMyCanvas.setBackgroundColor(pickedColor); + } + }); + + dialog.show(); + return true; case R.id.about: startActivity(new Intent(getApplicationContext(), AboutActivity.class)); return true; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e40ba7d..ab8c976 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -23,7 +23,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/color_picker" android:padding="@dimen/icon_padding" - android:src="@mipmap/undo" + android:src="@mipmap/undo_black" android:visibility="gone"/> diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml index 38445c6..51b0885 100644 --- a/app/src/main/res/menu/menu.xml +++ b/app/src/main/res/menu/menu.xml @@ -15,6 +15,10 @@ android:id="@+id/clear" android:title="@string/clear" app:showAsAction="never"/> + Ajustes Tema oscuro Limpiar + Cambiar fondo Acerca de diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 80ab415..eca8301 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,6 +17,7 @@ Settings Dark theme Clear + Change background About