Skip to content

Commit c3f4df5

Browse files
authored
Merge pull request #44 from Mraulio/dev
Dev
2 parents b233894 + af3101f commit c3f4df5

File tree

9 files changed

+79
-29
lines changed

9 files changed

+79
-29
lines changed

.idea/.gitignore

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ android {
1111
minSdk 23
1212
targetSdk 33
1313
versionCode 6
14-
versionName "0.51"
14+
versionName "0.52"
1515
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1616
javaCompileOptions {
1717
annotationProcessorOptions {

app/src/main/java/com/mraulio/gbcameramanager/gbxcart/GBxCartCommands.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@
1616
import android.view.View;
1717
import android.widget.TextView;
1818
import android.widget.Toast;
19-
2019
import com.hoho.android.usbserial.driver.UsbSerialPort;
2120
import com.mraulio.gbcameramanager.R;
2221
import com.mraulio.gbcameramanager.ui.usbserial.UsbSerialFragment;
2322
import com.mraulio.gbcameramanager.utils.Utils;
24-
2523
import java.io.BufferedOutputStream;
2624
import java.io.ByteArrayOutputStream;
2725
import java.io.File;
@@ -240,11 +238,11 @@ protected Void doInBackground(Void... voids) {
240238

241239
String folderName = null;
242240
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
243-
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateLocale+"HH-mm-ss");
241+
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateLocale + "HH-mm-ss");
244242
folderName = "PhotoFullRom_" + dtf.format(now);
245243
fileName += dtf.format(now) + "-full.gbc";
246244
} else {
247-
SimpleDateFormat sdf = new SimpleDateFormat(dateLocale+"_HH-mm-ss", Locale.getDefault());
245+
SimpleDateFormat sdf = new SimpleDateFormat(dateLocale + "_HH-mm-ss", Locale.getDefault());
248246
folderName = "PhotoFullRom_" + sdf.format(nowDate);
249247
fileName += sdf.format(nowDate) + "-full.gbc";
250248
}
@@ -395,10 +393,10 @@ protected Void doInBackground(Void... voids) {
395393
String fileName = "gbCamera_";
396394

397395
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
398-
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateLocale+"_HH-mm-ss");
396+
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateLocale + "_HH-mm-ss");
399397
fileName += dtf.format(now) + ".sav";
400398
} else {
401-
SimpleDateFormat sdf = new SimpleDateFormat(dateLocale+"_HH-mm-ss", Locale.getDefault());
399+
SimpleDateFormat sdf = new SimpleDateFormat(dateLocale + "_HH-mm-ss", Locale.getDefault());
402400
fileName += sdf.format(nowDate) + ".sav";
403401
}
404402

@@ -491,6 +489,7 @@ public int compare(File f1, File f2) {
491489
} catch (IOException e) {
492490
e.printStackTrace();
493491
}
492+
494493
if (!magicIsReal(fileBytes)) {
495494
tv.append(context.getString(R.string.no_valid_file));
496495
return;

app/src/main/java/com/mraulio/gbcameramanager/ui/gallery/GalleryFragment.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
293293
Collections.sort(selectedImages);
294294

295295
int firstImage = selectedImages.get(0);
296+
int lastImage = selectedImages.get(selectedImages.size()-1);
296297
selectedImages.clear();
297298
selectedImages.add(globalImageIndex);
298299
if (firstImage < globalImageIndex) {
@@ -304,12 +305,13 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
304305
}
305306
selectedImages.add(globalImageIndex);
306307
} else if (firstImage > globalImageIndex) {
307-
for (int i = firstImage; i > globalImageIndex; i--) {
308+
for (int i = lastImage; i > globalImageIndex; i--) {
308309
if (!selectedImages.contains(i)) {
309310
selectedImages.add(i);
310311
}
311312
}
312313
}
314+
313315
alreadyMultiSelect = true;
314316
if (selectedImages.size() > 1) {
315317
showEditMenuButton = true;

app/src/main/java/com/mraulio/gbcameramanager/ui/importFile/ImageConversionUtils.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -227,18 +227,21 @@ private static boolean has4Colors(Bitmap bitmap) {
227227
}
228228

229229
private static Bitmap from4toBw(Bitmap bitmap) {
230-
int height = bitmap.getHeight();
231-
int width = bitmap.getWidth();
230+
Bitmap b = bitmap.copy(bitmap.getConfig(),true);
231+
int height = b.getHeight();
232+
int width = b.getWidth();
233+
232234
for (int y = 0; y < height; y++) {
233235
for (int x = 0; x < width; x++) {
234-
int pixel = bitmap.getPixel(x, y);
236+
int pixel = b.getPixel(x, y);
235237
int grayValue = (int) (Color.red(pixel) * 0.299 + Color.green(pixel) * 0.587 + Color.blue(pixel) * 0.114);
236238

237239
int closestColor = findClosestColor(grayValue, hashPalettes.get("bw").getPaletteColorsInt());
238-
bitmap.setPixel(x, y, closestColor);
240+
241+
b.setPixel(x, y, closestColor);
239242
}
240243
}
241-
return bitmap;
244+
return b;
242245
}
243246

244247
public static Bitmap convertToGrayScale(Bitmap bitmap) {

app/src/main/java/com/mraulio/gbcameramanager/ui/importFile/ImportFragment.java

+24-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import static com.mraulio.gbcameramanager.ui.importFile.newpalette.NewPaletteDialog.paletteViewer;
88
import static com.mraulio.gbcameramanager.ui.importFile.newpalette.NewPaletteDialog.showNewPaletteDialog;
99
import static com.mraulio.gbcameramanager.ui.usbserial.UsbSerialUtils.magicIsReal;
10+
import static com.mraulio.gbcameramanager.utils.StaticValues.lastSeenGalleryImage;
11+
import static com.mraulio.gbcameramanager.utils.StaticValues.showEditMenuButton;
1012
import static com.mraulio.gbcameramanager.utils.Utils.frameGroupSorting;
1113
import static com.mraulio.gbcameramanager.utils.Utils.frameGroupsNames;
1214
import static com.mraulio.gbcameramanager.utils.Utils.hashFrames;
@@ -16,6 +18,7 @@
1618

1719
import android.annotation.SuppressLint;
1820
import android.app.Activity;
21+
import android.app.AlertDialog;
1922
import android.content.Context;
2023
import android.content.Intent;
2124
import android.database.Cursor;
@@ -24,6 +27,7 @@
2427
import android.graphics.Canvas;
2528
import android.graphics.Color;
2629
import android.graphics.Paint;
30+
import android.graphics.drawable.ColorDrawable;
2731
import android.net.Uri;
2832
import android.os.AsyncTask;
2933
import android.os.Bundle;
@@ -54,6 +58,7 @@
5458

5559
import com.mraulio.gbcameramanager.model.ImageData;
5660
import com.mraulio.gbcameramanager.ui.gallery.CustomGridViewAdapterImage;
61+
import com.mraulio.gbcameramanager.ui.gallery.MainImageDialog;
5762
import com.mraulio.gbcameramanager.ui.gallery.SaveImageAsyncTask;
5863
import com.mraulio.gbcameramanager.ui.palettes.CustomGridViewAdapterPalette;
5964
import com.mraulio.gbcameramanager.db.FrameDao;
@@ -221,6 +226,23 @@ public void onNothingSelected(AdapterView<?> adapterView) {
221226
tvFileName = view.findViewById(R.id.tvFileName);
222227
gridViewImport = view.findViewById(R.id.gridViewImport);
223228

229+
//Showing the image big
230+
gridViewImport.setOnItemClickListener(new AdapterView.OnItemClickListener() {
231+
@Override
232+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
233+
Bitmap image = Bitmap.createScaledBitmap(finalListBitmaps.get(position), finalListBitmaps.get(position).getWidth() * 6, finalListBitmaps.get(position).getHeight() * 6, false);
234+
ImageView imageView = new ImageView(getContext());
235+
imageView.setImageBitmap(image);
236+
237+
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
238+
builder.setView(imageView);
239+
240+
AlertDialog dialog = builder.create();
241+
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
242+
dialog.show();
243+
}
244+
});
245+
224246
btnSelectFile.setOnClickListener(new View.OnClickListener() {
225247
@Override
226248
public void onClick(View v) {
@@ -407,7 +429,7 @@ public void onClick(View v) {
407429

408430
} else if (cbAddFrame.isChecked()) {
409431
//Make the frame bw
410-
Bitmap bwBitmap = paletteChanger("bw",finalListImages.get(0).getImageBytes(),false);
432+
Bitmap bwBitmap = paletteChanger("bw", finalListImages.get(0).getImageBytes(), false);
411433
if (bwBitmap.getHeight() != 144 && bwBitmap.getHeight() != 224) {
412434
Utils.toast(getContext(), getString(R.string.cant_add_frame));
413435
btnAddImages.setEnabled(true);
@@ -1064,7 +1086,7 @@ public static int[] getImagePalette(Bitmap bitmap, LinearLayout lyPalette, Image
10641086
LinkedHashSet<Integer> colorSet = new LinkedHashSet<>();
10651087
for (int pixel : pixels) {
10661088
colorSet.add(pixel);
1067-
if (colorSet.size() > 4){
1089+
if (colorSet.size() > 4) {
10681090
return null;
10691091
}
10701092
}

app/src/main/java/com/mraulio/gbcameramanager/ui/palettes/PalettesFragment.java

+20-10
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class PalettesFragment extends Fragment {
7878
String newPaletteName = "";
7979
int[] palette;
8080
final String PALETTE_ID_REGEX = "^[a-z0-9]{2,}$";
81+
boolean newPalette = false;
8182

8283
public View onCreateView(@NonNull LayoutInflater inflater,
8384
ViewGroup container, Bundle savedInstanceState) {
@@ -107,6 +108,7 @@ public void run() {
107108
palette = Utils.gbcPalettesList.get(palettePos).getPaletteColorsInt().clone();//Clone so it doesn't overwrite base palette colors.
108109
newPaletteId = Utils.gbcPalettesList.get(palettePos).getPaletteId();
109110
newPaletteName = Utils.gbcPalettesList.get(palettePos).getPaletteName();
111+
newPalette = false;
110112
paletteDialog(palette, newPaletteId, newPaletteName);
111113
}
112114
};
@@ -209,6 +211,7 @@ public void onClick(DialogInterface dialog, int which) {
209211
@Override
210212
public void onClick(View v) {
211213
palette = Utils.gbcPalettesList.get(0).getPaletteColorsInt().clone();//Clone so it doesn't overwrite base palette colors.
214+
newPalette = true;
212215
paletteDialog(palette, "", "");
213216
}
214217
});
@@ -242,9 +245,9 @@ private void PaletteJsonCreator() throws JSONException {
242245
JSONArray paletteArr = new JSONArray();
243246
for (int color : palette.getPaletteColorsInt()) {
244247
String hexColor;
245-
if (color == 0){//For total transparency color
248+
if (color == 0) {//For total transparency color
246249
hexColor = "#000000";
247-
}else{
250+
} else {
248251
hexColor = "#" + Integer.toHexString(color).substring(2);
249252
}
250253

@@ -271,11 +274,13 @@ private void PaletteJsonCreator() throws JSONException {
271274

272275
private void paletteDialog(int[] palette, String paletteId, String paletteName) {
273276
final Dialog dialog = new Dialog(getContext());
277+
dialog.setCancelable(false);
274278
dialog.setContentView(R.layout.palette_creator);
275279
final boolean[] validId = {false};
276280

277281
ImageView ivPalette = dialog.findViewById(R.id.ivPalette);
278282
Button btnSavePalette = dialog.findViewById(R.id.btnSavePalette);
283+
Button btnCancelPalette = dialog.findViewById(R.id.btnCancelPalette);
279284
btnSavePalette.setEnabled(false);
280285

281286
EditText etPaletteId = dialog.findViewById(R.id.etPaletteId);
@@ -503,8 +508,8 @@ public void onClick(View v) {
503508
ColorPickerDialogBuilder
504509
.with(getContext())
505510
.setTitle(getString(R.string.choose_color))
506-
.initialColor(lastPickedColor)
507-
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
511+
.initialColor(newPalette ? lastPickedColor : palette[0])
512+
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE)
508513
.density(12)
509514
.showAlphaSlider(false)
510515
.setOnColorSelectedListener(new OnColorSelectedListener() {
@@ -543,7 +548,7 @@ public void onClick(View v) {
543548
ColorPickerDialogBuilder
544549
.with(getContext())
545550
.setTitle(getString(R.string.choose_color))
546-
.initialColor(lastPickedColor)
551+
.initialColor(newPalette ? lastPickedColor : palette[1])
547552
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE)
548553
.density(12)
549554
.showAlphaSlider(false)
@@ -585,8 +590,8 @@ public void onClick(View v) {
585590
ColorPickerDialogBuilder
586591
.with(getContext())
587592
.setTitle(getString(R.string.choose_color))
588-
.initialColor(lastPickedColor)
589-
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
593+
.initialColor(newPalette ? lastPickedColor : palette[2])
594+
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE)
590595
.density(12)
591596
.showAlphaSlider(false)
592597
.setOnColorSelectedListener(new OnColorSelectedListener() {
@@ -627,8 +632,8 @@ public void onClick(View v) {
627632
ColorPickerDialogBuilder
628633
.with(getContext())
629634
.setTitle(getString(R.string.choose_color))
630-
.initialColor(lastPickedColor)
631-
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
635+
.initialColor(newPalette ? lastPickedColor : palette[3])
636+
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE)
632637
.density(12)
633638
.showAlphaSlider(false)
634639
.setOnColorSelectedListener(new OnColorSelectedListener() {
@@ -661,7 +666,12 @@ public void onClick(DialogInterface dialog, int which) {
661666
.show();
662667
}
663668
});
664-
669+
btnCancelPalette.setOnClickListener(new View.OnClickListener() {
670+
@Override
671+
public void onClick(View v) {
672+
dialog.dismiss();
673+
}
674+
});
665675
btnSavePalette.setOnClickListener(new View.OnClickListener() {
666676
@Override
667677
public void onClick(View v) {

app/src/main/java/com/mraulio/gbcameramanager/ui/usbserial/UsbSerialFragment.java

-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ public class UsbSerialFragment extends Fragment implements SerialInputOutputMana
126126
public View onCreateView(LayoutInflater inflater, ViewGroup container,
127127
Bundle savedInstanceState) {
128128
View view = inflater.inflate(R.layout.fragment_usb_serial, container, false);
129-
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
130129
StaticValues.currentFragment = StaticValues.CURRENT_FRAGMENT.USB_SERIAL;
131130

132131
gridView = view.findViewById(R.id.gridView);

app/src/main/res/layout/palette_creator.xml

+17-3
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,24 @@
148148
android:background="@color/purple_700"></ImageView>
149149
</LinearLayout>
150150

151-
<Button
152-
android:id="@+id/btnSavePalette"
151+
<LinearLayout
153152
android:layout_width="match_parent"
154153
android:layout_height="wrap_content"
155-
android:text="@string/btn_save"></Button>
154+
android:gravity="center"
155+
android:orientation="horizontal">
156+
<Button
157+
android:id="@+id/btnCancelPalette"
158+
android:layout_width="wrap_content"
159+
android:layout_marginRight="5dp"
160+
android:layout_height="wrap_content"
161+
android:text="@string/cancel"></Button>
162+
<Button
163+
android:id="@+id/btnSavePalette"
164+
android:layout_width="wrap_content"
165+
android:layout_height="wrap_content"
166+
android:text="@string/btn_save"></Button>
167+
168+
</LinearLayout>
169+
156170
</LinearLayout>
157171
</ScrollView>

0 commit comments

Comments
 (0)