diff --git a/app/build.gradle b/app/build.gradle index 03fd868..528baf5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,10 +56,10 @@ android { def Properties props = new Properties() def propFile = file('../../signing.properties') -if (propFile.canRead()){ +if (propFile.canRead()) { props.load(new FileInputStream(propFile)) - if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') && + if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') && props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) { println 'RELEASE BUILD SIGNING' diff --git a/app/src/google/AndroidManifest.xml b/app/src/google/AndroidManifest.xml index d7ff1a7..6e986da 100644 --- a/app/src/google/AndroidManifest.xml +++ b/app/src/google/AndroidManifest.xml @@ -1,9 +1,9 @@ + package="org.emunix.unipatcher"> - + - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5b31313..9262751 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,77 +1,77 @@ + package="org.emunix.unipatcher" + android:installLocation="auto"> - - - - - + + + + + - + - + - + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + android:label="@string/file_picker_activity_title"/> + android:theme="@style/PreferenceTheme"/> - - + android:label="@string/help_activity_title"/> + android:label="@string/donate_activity_title"/> + android:exported="false"/> + + diff --git a/app/src/main/cpp/xdelta3.c b/app/src/main/cpp/xdelta3.c index 3f7a93a..43fa900 100644 --- a/app/src/main/cpp/xdelta3.c +++ b/app/src/main/cpp/xdelta3.c @@ -39,11 +39,10 @@ const int ERR_UNABLE_OPEN_OUTPUT = -5003; const int ERR_WRONG_CHECKSUM = -5010; int Java_org_emunix_unipatcher_patch_XDelta_xdelta3apply(JNIEnv *env, - jobject this, - jstring patchPath, - jstring romPath, - jstring outputPath) -{ + jobject this, + jstring patchPath, + jstring romPath, + jstring outputPath) { int ret = 0; const char *patchName = (*env)->GetStringUTFChars(env, patchPath, NULL); const char *romName = (*env)->GetStringUTFChars(env, romPath, NULL); @@ -57,19 +56,16 @@ int Java_org_emunix_unipatcher_patch_XDelta_xdelta3apply(JNIEnv *env, (*env)->ReleaseStringUTFChars(env, romPath, romName); (*env)->ReleaseStringUTFChars(env, outputPath, outputName); - if (!patchFile) - { + if (!patchFile) { return ERR_UNABLE_OPEN_PATCH; } - if (!romFile) - { + if (!romFile) { fclose(patchFile); return ERR_UNABLE_OPEN_ROM; } - if (!outputFile) - { + if (!outputFile) { fclose(patchFile); fclose(romFile); return ERR_UNABLE_OPEN_OUTPUT; @@ -83,19 +79,18 @@ int Java_org_emunix_unipatcher_patch_XDelta_xdelta3apply(JNIEnv *env, return ret; } -int apply(FILE *patch, FILE *in, FILE *out) -{ +int apply(FILE *patch, FILE *in, FILE *out) { int BUFFER_SIZE = 32768; int r, ret; xd3_stream stream; xd3_config config; xd3_source source; - void* Input_Buf; + void *Input_Buf; int Input_Buf_Read; - memset (&stream, 0, sizeof (stream)); - memset (&source, 0, sizeof (source)); + memset(&stream, 0, sizeof(stream)); + memset(&source, 0, sizeof(source)); xd3_init_config(&config, 0); config.winsize = BUFFER_SIZE; @@ -108,18 +103,16 @@ int apply(FILE *patch, FILE *in, FILE *out) r = fseek(in, 0, SEEK_SET); if (r) return r; - source.onblk = fread((void*)source.curblk, 1, source.blksize, in); + source.onblk = fread((void *) source.curblk, 1, source.blksize, in); source.curblkno = 0; xd3_set_source(&stream, &source); Input_Buf = malloc(BUFFER_SIZE); fseek(patch, 0, SEEK_SET); - do - { + do { Input_Buf_Read = fread(Input_Buf, 1, BUFFER_SIZE, patch); - if (Input_Buf_Read < BUFFER_SIZE) - { + if (Input_Buf_Read < BUFFER_SIZE) { xd3_set_flags(&stream, XD3_FLUSH | stream.flags); } xd3_avail_input(&stream, Input_Buf, Input_Buf_Read); @@ -128,14 +121,13 @@ int apply(FILE *patch, FILE *in, FILE *out) ret = xd3_decode_input(&stream); - switch (ret) - { + switch (ret) { case XD3_INPUT: continue; case XD3_OUTPUT: r = fwrite(stream.next_out, 1, stream.avail_out, out); - if (r != (int)stream.avail_out) + if (r != (int) stream.avail_out) return r; xd3_consume_output(&stream); goto process; @@ -144,7 +136,7 @@ int apply(FILE *patch, FILE *in, FILE *out) r = fseek(in, source.blksize * source.getblkno, SEEK_SET); if (r) return r; - source.onblk = fread((void*)source.curblk, 1, source.blksize, in); + source.onblk = fread((void *) source.curblk, 1, source.blksize, in); source.curblkno = source.getblkno; goto process; @@ -166,7 +158,7 @@ int apply(FILE *patch, FILE *in, FILE *out) free(Input_Buf); - free((void*)source.curblk); + free((void *) source.curblk); xd3_close_stream(&stream); xd3_free_stream(&stream); diff --git a/app/src/main/java/org/emunix/unipatcher/Utils.java b/app/src/main/java/org/emunix/unipatcher/Utils.java index 112d72a..2750827 100644 --- a/app/src/main/java/org/emunix/unipatcher/Utils.java +++ b/app/src/main/java/org/emunix/unipatcher/Utils.java @@ -73,17 +73,20 @@ public class Utils { public static long getFreeSpace(File file) { StatFs stat = new StatFs(file.getPath()); long bytesAvailable; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { bytesAvailable = stat.getAvailableBytes(); - else - //noinspection deprecation + } else + //noinspection deprecation + { bytesAvailable = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks(); + } return bytesAvailable; } public static void copyFile(Context context, File from, File to) throws IOException { - if (Utils.getFreeSpace(to.getParentFile()) < from.length()) + if (Utils.getFreeSpace(to.getParentFile()) < from.length()) { throw new IOException(context.getString(R.string.notify_error_not_enough_space)); + } try { FileUtils.copyFile(from, to); @@ -94,7 +97,7 @@ public class Utils { public static void moveFile(Context context, File from, File to) throws IOException { FileUtils.deleteQuietly(to); - if(!from.renameTo(to)) { + if (!from.renameTo(to)) { copyFile(context, from, to); FileUtils.deleteQuietly(from); } @@ -141,24 +144,28 @@ public class Utils { public static String bytesToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); - for(int i = 0; i < bytes.length ;i++) { + for (int i = 0; i < bytes.length; i++) { sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); } public static boolean isPatch(File file) { - String[] patches = {"ips", "ups", "bps", "aps", "ppf", "dps", "ebp", "xdelta", "xdelta3", "vcdiff"}; + String[] patches = + {"ips", "ups", "bps", "aps", "ppf", "dps", "ebp", "xdelta", "xdelta3", "vcdiff"}; String ext = FilenameUtils.getExtension(file.getName()).toLowerCase(Locale.getDefault()); for (String patch : patches) { - if (ext.equals(patch)) - return true; + if (ext.equals(patch)) return true; } return false; } public static boolean isArchive(String path) { String ext = FilenameUtils.getExtension(path).toLowerCase(Locale.getDefault()); - return ext.equals("zip") || ext.equals("rar") || ext.equals("7z") || ext.equals("gz") || ext.equals("tgz"); + return ext.equals("zip") + || ext.equals("rar") + || ext.equals("7z") + || ext.equals("gz") + || ext.equals("tgz"); } } diff --git a/app/src/main/java/org/emunix/unipatcher/WorkerService.java b/app/src/main/java/org/emunix/unipatcher/WorkerService.java index c4d5c5e..2c6a85e 100644 --- a/app/src/main/java/org/emunix/unipatcher/WorkerService.java +++ b/app/src/main/java/org/emunix/unipatcher/WorkerService.java @@ -99,7 +99,7 @@ public class WorkerService extends IntentService { File outputFile = new File(intent.getStringExtra("outputPath")); Patch patcher = null; - if(!fileExists(patchFile) || !fileExists(romFile)) + if (!fileExists(patchFile) || !fileExists(romFile)) return; // create output dir @@ -115,7 +115,7 @@ public class WorkerService extends IntentService { // check access to output dir try { - if (!outputFile.getParentFile().canWrite()){ + if (!outputFile.getParentFile().canWrite()) { String text = getString(R.string.notify_error_unable_to_write_to_directory, outputFile.getParent()); showErrorNotification(text); return; @@ -176,7 +176,7 @@ public class WorkerService extends IntentService { String errorMsg = null; File romFile = new File(intent.getStringExtra("romPath")); - if(!fileExists(romFile)) + if (!fileExists(romFile)) return; SmdFixChecksum fixer = new SmdFixChecksum(this, romFile); @@ -200,7 +200,7 @@ public class WorkerService extends IntentService { File romFile = new File(intent.getStringExtra("romPath")); String headerPath = intent.getStringExtra("headerPath"); - if(!fileExists(romFile)) + if (!fileExists(romFile)) return; SnesSmcHeader worker = new SnesSmcHeader(); @@ -230,7 +230,7 @@ public class WorkerService extends IntentService { File romFile = new File(intent.getStringExtra("romPath")); - if(!fileExists(romFile)) + if (!fileExists(romFile)) return; SnesSmcHeader worker = new SnesSmcHeader(); @@ -271,7 +271,7 @@ public class WorkerService extends IntentService { .setContentIntent(PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT)) .setAutoCancel(true) .setStyle(new NotificationCompat.BigTextStyle() - .bigText(text)) + .bigText(text)) .build(); nm.notify(0, notify); } diff --git a/app/src/main/java/org/emunix/unipatcher/patch/APS.java b/app/src/main/java/org/emunix/unipatcher/patch/APS.java index a144f40..2e5353b 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/APS.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/APS.java @@ -47,9 +47,11 @@ public class APS extends Patch { Patch aps = null; switch (checkAPS(patchFile)) { case APS_N64_PATCH: - aps = new APS_N64(context, patchFile, romFile, outputFile); break; + aps = new APS_N64(context, patchFile, romFile, outputFile); + break; case APS_GBA_PATCH: - aps = new APS_GBA(context, patchFile, romFile, outputFile); break; + aps = new APS_GBA(context, patchFile, romFile, outputFile); + break; case NOT_APS_PATCH: throw new PatchException(context.getString(R.string.notify_error_not_aps_patch)); } diff --git a/app/src/main/java/org/emunix/unipatcher/patch/APS_GBA.java b/app/src/main/java/org/emunix/unipatcher/patch/APS_GBA.java index a0c2804..90d1202 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/APS_GBA.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/APS_GBA.java @@ -130,7 +130,7 @@ public class APS_GBA extends Patch { crc = crc16(romBuf); - for(int i = 0; i < CHUNK_SIZE; i++) + for (int i = 0; i < CHUNK_SIZE; i++) romBuf[i] ^= patchBuf[i]; if (crc == patchCrc1) { @@ -151,7 +151,7 @@ public class APS_GBA extends Patch { IOUtils.closeQuietly(output); } - if(isOriginal) { + if (isOriginal) { Utils.truncateFile(outputFile, fileSize2); } else { Utils.truncateFile(outputFile, fileSize1); diff --git a/app/src/main/java/org/emunix/unipatcher/patch/APS_N64.java b/app/src/main/java/org/emunix/unipatcher/patch/APS_N64.java index bf8577e..fcb0e10 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/APS_N64.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/APS_N64.java @@ -144,7 +144,7 @@ public class APS_N64 extends Patch { size = patchStream.read(); patchPos++; if (size != 0) { - byte[] data = new byte[(int)size]; + byte[] data = new byte[(int) size]; patchStream.read(data); patchPos += size; outputStream.write(data); @@ -153,7 +153,7 @@ public class APS_N64 extends Patch { byte val = (byte) patchStream.read(); size = patchStream.read(); patchPos += 2; - byte[] data = new byte[(int)size]; + byte[] data = new byte[(int) size]; Arrays.fill(data, val); outputStream.write(data); outPos += size; @@ -164,7 +164,7 @@ public class APS_N64 extends Patch { if (romPos + size > romSize) { romPos = (int) romSize; } else { - byte[] buf = new byte[(int)size]; + byte[] buf = new byte[(int) size]; romStream.read(buf); romPos += size; } @@ -226,7 +226,7 @@ public class APS_N64 extends Patch { } private long readLELong(InputStream stream) throws IOException { - return (stream.read() & 0xff) + ((stream.read() & 0xff) << 8) + return (stream.read() & 0xff) + ((stream.read() & 0xff) << 8) + ((stream.read() & 0xff) << 16) + ((stream.read() & 0xff) << 24); } } diff --git a/app/src/main/java/org/emunix/unipatcher/patch/BPS.java b/app/src/main/java/org/emunix/unipatcher/patch/BPS.java index 6c1368e..5fbb221 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/BPS.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/BPS.java @@ -250,7 +250,7 @@ public class BPS extends Patch { throw new PatchException(context.getString(R.string.notify_error_patch_corrupted)); return new BpsCrc(inputCrc, outputCrc, patchCrc, realPatchCrc); } finally { - IOUtils.closeQuietly(stream); + IOUtils.closeQuietly(stream); } } diff --git a/app/src/main/java/org/emunix/unipatcher/patch/DPS.java b/app/src/main/java/org/emunix/unipatcher/patch/DPS.java index 6c7d193..59351ea 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/DPS.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/DPS.java @@ -44,11 +44,11 @@ public class DPS extends Patch { @Override public void apply() throws PatchException, IOException { - if (patchFile.length() < MIN_SIZE_PATCH) { - throw new PatchException(context.getString(R.string.notify_error_patch_corrupted)); - } + if (patchFile.length() < MIN_SIZE_PATCH) { + throw new PatchException(context.getString(R.string.notify_error_patch_corrupted)); + } - BufferedInputStream patchStream = null; + BufferedInputStream patchStream = null; RandomAccessFile romStream = null; RandomAccessFile outputStream = null; @@ -121,7 +121,7 @@ public class DPS extends Patch { } private long getUInt(byte[] a, int offset) { - return ((long)(a[offset] & 0xff)) + ((long)(a[offset + 1] & 0xff) << 8) + - ((long)(a[offset + 2] & 0xff) << 16) + ((long)(a[offset + 3] & 0xff) << 24); + return ((long) (a[offset] & 0xff)) + ((long) (a[offset + 1] & 0xff) << 8) + + ((long) (a[offset + 2] & 0xff) << 16) + ((long) (a[offset + 3] & 0xff) << 24); } } diff --git a/app/src/main/java/org/emunix/unipatcher/patch/EBP.java b/app/src/main/java/org/emunix/unipatcher/patch/EBP.java index 7193d96..9a66ad4 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/EBP.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/EBP.java @@ -106,7 +106,7 @@ public class EBP extends Patch { // if we couldn't fix the ROM, try to remove a 0xff byte at the end. if (!checkMD5(file)) { - int length = (int)file.length(); + int length = (int) file.length(); byte[] buffer = new byte[length]; FileInputStream in = new FileInputStream(file); int count = in.read(buffer); @@ -254,7 +254,7 @@ public class EBP extends Patch { if (size < 2) throw new PatchException(context.getString(R.string.notify_error_patch_corrupted)); ips.write(buffer, 0, 2); - size = (((int)buffer[0] & 0xff) << 8) + ((int)buffer[1] & 0xff); + size = (((int) buffer[0] & 0xff) << 8) + ((int) buffer[1] & 0xff); if (size != 0) { int c = ebp.read(buffer, 0, size); if (c < size) diff --git a/app/src/main/java/org/emunix/unipatcher/patch/PPF.java b/app/src/main/java/org/emunix/unipatcher/patch/PPF.java index f93d40c..fe77763 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/PPF.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/PPF.java @@ -32,7 +32,6 @@ import java.util.Arrays; public class PPF extends Patch { -// private static final String LOG_TAG = "PPF"; private static final byte[] MAGIC_NUMBER = {0x50, 0x50, 0x46}; // "PPF" without version private RandomAccessFile patchStream; @@ -75,10 +74,17 @@ public class PPF extends Patch { } switch (getPPFVersion(patchFile)) { - case 1: applyPPF1(); break; - case 2: applyPPF2(); break; - case 3: applyPPF3(); break; - default: throw new PatchException(context.getString(R.string.notify_error_not_ppf_patch)); + case 1: + applyPPF1(); + break; + case 2: + applyPPF2(); + break; + case 3: + applyPPF3(); + break; + default: + throw new PatchException(context.getString(R.string.notify_error_not_ppf_patch)); } } @@ -217,24 +223,24 @@ public class PPF extends Patch { private long readLittleEndianLong(RandomAccessFile stream) throws IOException { byte[] b = new byte[8]; stream.read(b); - long result = ((long)(b[7] & 0xff) << 56) + ((long)(b[6] & 0xff) << 48 ) + - ((long)(b[5] & 0xff) << 40) + ((long)(b[4] & 0xff) << 32 ) + - ((long)(b[3] & 0xff) << 24) + ((long)(b[2] & 0xff) << 16 ) + - ((long)(b[1] & 0xff) << 8) + ((long)b[0] & 0xff); + long result = ((long) (b[7] & 0xff) << 56) + ((long) (b[6] & 0xff) << 48) + + ((long) (b[5] & 0xff) << 40) + ((long) (b[4] & 0xff) << 32) + + ((long) (b[3] & 0xff) << 24) + ((long) (b[2] & 0xff) << 16) + + ((long) (b[1] & 0xff) << 8) + ((long) b[0] & 0xff); return result; } private int readLittleEndianInt(RandomAccessFile stream) throws IOException { byte[] b = new byte[4]; stream.read(b); - return ((b[3] & 0xff) << 24) + ((b[2] & 0xff) <<16 ) + - ((b[1] & 0xff) << 8) + (b[0]&0xff); + return ((b[3] & 0xff) << 24) + ((b[2] & 0xff) << 16) + + ((b[1] & 0xff) << 8) + (b[0] & 0xff); } /** * Returns size of FileID * - * @param stream stream of PPF file + * @param stream stream of PPF file * @param ppfVersion version of PPF patch * @return size of FileID or 0 */ diff --git a/app/src/main/java/org/emunix/unipatcher/patch/UPS.java b/app/src/main/java/org/emunix/unipatcher/patch/UPS.java index 3733a78..7043d62 100644 --- a/app/src/main/java/org/emunix/unipatcher/patch/UPS.java +++ b/app/src/main/java/org/emunix/unipatcher/patch/UPS.java @@ -38,6 +38,7 @@ import java.util.zip.CRC32; public class UPS extends Patch { private static final byte[] MAGIC_NUMBER = {0x55, 0x50, 0x53, 0x31}; // "UPS1" + public UPS(Context context, File patch, File rom, File output) { super(context, patch, rom, output); } @@ -197,7 +198,7 @@ public class UPS extends Patch { throw new PatchException(context.getString(R.string.notify_error_patch_corrupted)); return new UpsCrc(inputCrc, outputCrc, patchCrc, realPatchCrc); } finally { - IOUtils.closeQuietly(stream); + IOUtils.closeQuietly(stream); } } @@ -243,7 +244,7 @@ public class UPS extends Patch { return realPatchCRC; } - public void swapInOut(){ + public void swapInOut() { long tmp; tmp = inputFileCRC; inputFileCRC = outputFileCRC; diff --git a/app/src/main/java/org/emunix/unipatcher/tools/SmdFixChecksum.java b/app/src/main/java/org/emunix/unipatcher/tools/SmdFixChecksum.java index 7075936..d0373a0 100644 --- a/app/src/main/java/org/emunix/unipatcher/tools/SmdFixChecksum.java +++ b/app/src/main/java/org/emunix/unipatcher/tools/SmdFixChecksum.java @@ -51,7 +51,7 @@ public class SmdFixChecksum { try { smdStream = new BufferedInputStream(new FileInputStream(smdFile)); - long c = IOUtils.skip(smdStream, 512); + long c = IOUtils.skip(smdStream, 512); if (c != 512) throw new IOException("Skip failed"); @@ -83,7 +83,7 @@ public class SmdFixChecksum { smdStream.writeByte((sum >> 8) & 0xff); smdStream.writeByte(sum & 0xff); } finally { - IOUtils.closeQuietly(smdStream); + IOUtils.closeQuietly(smdStream); } } } diff --git a/app/src/main/java/org/emunix/unipatcher/tools/SnesSmcHeader.java b/app/src/main/java/org/emunix/unipatcher/tools/SnesSmcHeader.java index 7d35899..90a72c3 100644 --- a/app/src/main/java/org/emunix/unipatcher/tools/SnesSmcHeader.java +++ b/app/src/main/java/org/emunix/unipatcher/tools/SnesSmcHeader.java @@ -60,7 +60,7 @@ public class SnesSmcHeader { int length; length = inputRom.read(header); if (saveHeader) { - File headerfile = new File(romfile.getPath()+".smc_header"); + File headerfile = new File(romfile.getPath() + ".smc_header"); outputHeader = new FileOutputStream(headerfile); outputHeader.write(header, 0, length); } diff --git a/app/src/main/java/org/emunix/unipatcher/ui/activity/FilePickerActivity.java b/app/src/main/java/org/emunix/unipatcher/ui/activity/FilePickerActivity.java index 56d524b..1ee6da8 100644 --- a/app/src/main/java/org/emunix/unipatcher/ui/activity/FilePickerActivity.java +++ b/app/src/main/java/org/emunix/unipatcher/ui/activity/FilePickerActivity.java @@ -216,7 +216,7 @@ public class FilePickerActivity extends AppCompatActivity implements FilePickerA fileList.add(entry); } else { entry = new FileEntry(); - if (Utils.isPatch(file)){ + if (Utils.isPatch(file)) { entry.setIcon(R.drawable.ic_healing_grey600_24dp); } else { entry.setIcon(R.drawable.ic_insert_drive_file_grey600_24dp); @@ -359,8 +359,7 @@ public class FilePickerActivity extends AppCompatActivity implements FilePickerA } } - private HashMap getFileChecksums(File file) throws IOException, NoSuchAlgorithmException, IllegalArgumentException - { + private HashMap getFileChecksums(File file) throws IOException, NoSuchAlgorithmException, IllegalArgumentException { if (file.isDirectory()) throw new IllegalArgumentException("Unable calculate checksum for directory"); diff --git a/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java b/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java index 270f675..dcd0e0d 100644 --- a/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java +++ b/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java @@ -54,7 +54,7 @@ import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_NO; import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_YES; public class MainActivity extends AppCompatActivity - implements NavigationView.OnNavigationItemSelectedListener { + implements NavigationView.OnNavigationItemSelectedListener { private static final String LOG_TAG = "org.emunix.unipatcher"; private FirebaseAnalytics firebaseAnalytics; @@ -84,7 +84,7 @@ public class MainActivity extends AppCompatActivity public void onClick(View view) { FragmentManager fragmentManager = getSupportFragmentManager(); ActionFragment fragment = (ActionFragment) fragmentManager.findFragmentById(R.id.content_frame); - if (fragment != null){ + if (fragment != null) { boolean ret = fragment.runAction(); } //Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) @@ -105,7 +105,7 @@ public class MainActivity extends AppCompatActivity private void setTheme() { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); - String theme = sp.getString("theme","light"); + String theme = sp.getString("theme", "light"); switch (theme) { case "light": AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO); @@ -156,9 +156,14 @@ public class MainActivity extends AppCompatActivity // update the main content by replacing fragments Fragment fragment; switch (position) { - case 1: fragment = new SmdFixChecksumFragment(); break; - case 2: fragment = new SnesSmcHeaderFragment(); break; - default: fragment = new PatchingFragment(); + case 1: + fragment = new SmdFixChecksumFragment(); + break; + case 2: + fragment = new SnesSmcHeaderFragment(); + break; + default: + fragment = new PatchingFragment(); } FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); diff --git a/app/src/main/java/org/emunix/unipatcher/ui/adapter/FilePickerAdapter.java b/app/src/main/java/org/emunix/unipatcher/ui/adapter/FilePickerAdapter.java index c453814..186fe87 100644 --- a/app/src/main/java/org/emunix/unipatcher/ui/adapter/FilePickerAdapter.java +++ b/app/src/main/java/org/emunix/unipatcher/ui/adapter/FilePickerAdapter.java @@ -38,6 +38,7 @@ public class FilePickerAdapter extends RecyclerView.Adapter + android:interpolator="@android:anim/decelerate_interpolator"> + android:toYDelta="0"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_donate.xml b/app/src/main/res/layout/activity_donate.xml index 35c854b..7f51053 100644 --- a/app/src/main/res/layout/activity_donate.xml +++ b/app/src/main/res/layout/activity_donate.xml @@ -1,5 +1,6 @@ - + app:popupTheme="@style/AppTheme.NoActionBar.PopupOverlay"/> @@ -25,6 +26,6 @@ android:id="@+id/donate_fragment" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> diff --git a/app/src/main/res/layout/activity_file_picker.xml b/app/src/main/res/layout/activity_file_picker.xml index 6ddd0fb..a57acaa 100644 --- a/app/src/main/res/layout/activity_file_picker.xml +++ b/app/src/main/res/layout/activity_file_picker.xml @@ -6,18 +6,19 @@ android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".ui.activity.FilePickerActivity"> + - + @@ -26,12 +27,12 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/appbar" + android:layout_margin="@dimen/activity_horizontal_margin" android:gravity="center" android:includeFontPadding="false" - android:layout_margin="@dimen/activity_horizontal_margin" - android:visibility="gone" + android:text="@string/permissions_storage_error_info" android:textStyle="bold" - android:text="@string/permissions_storage_error_info" /> + android:visibility="gone"/> - + app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> + android:minHeight="?attr/actionBarSize"/> @@ -33,6 +34,6 @@ android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7cc3f55..df70665 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -19,7 +19,7 @@ android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> - + @@ -36,7 +36,7 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" - android:src="@drawable/ic_save_white_24dp" /> + android:src="@drawable/ic_save_white_24dp"/> @@ -47,8 +47,8 @@ android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" - app:menu="@menu/activity_main_drawer" + app:itemIconTint="@color/colorDrawerText" app:itemTextColor="@color/colorDrawerText" - app:itemIconTint="@color/colorDrawerText" /> + app:menu="@menu/activity_main_drawer"/> diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 39fc9d2..1be65df 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,5 +1,6 @@ - + app:popupTheme="@style/AppTheme.NoActionBar.PopupOverlay"/> diff --git a/app/src/main/res/layout/file_picker_row_item.xml b/app/src/main/res/layout/file_picker_row_item.xml index 13d4c61..1ff4db6 100644 --- a/app/src/main/res/layout/file_picker_row_item.xml +++ b/app/src/main/res/layout/file_picker_row_item.xml @@ -1,41 +1,42 @@ - + android:layout_height="wrap_content"> - + - - + + - - + + - + - + diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index aabe3b2..bf44e81 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -1,4 +1,6 @@ - + + android:src="@mipmap/ic_launcher"/> + android:text="@string/help_activity_about_tab_license"/> + android:textAppearance="@android:style/TextAppearance.Small"/> diff --git a/app/src/main/res/layout/fragment_changelog.xml b/app/src/main/res/layout/fragment_changelog.xml index 5ba94cc..4f5093a 100644 --- a/app/src/main/res/layout/fragment_changelog.xml +++ b/app/src/main/res/layout/fragment_changelog.xml @@ -1,4 +1,6 @@ - + + android:textAppearance="@android:style/TextAppearance.Small"/> diff --git a/app/src/main/res/layout/fragment_faq.xml b/app/src/main/res/layout/fragment_faq.xml index 5bc6058..f06d1ef 100644 --- a/app/src/main/res/layout/fragment_faq.xml +++ b/app/src/main/res/layout/fragment_faq.xml @@ -1,4 +1,6 @@ - + + android:textAppearance="@android:style/TextAppearance.Small"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_file_details.xml b/app/src/main/res/layout/fragment_file_details.xml index 3c3cc35..ece03fc 100644 --- a/app/src/main/res/layout/fragment_file_details.xml +++ b/app/src/main/res/layout/fragment_file_details.xml @@ -1,8 +1,9 @@ - + android:layout_height="wrap_content" + android:orientation="vertical"> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> @@ -56,19 +57,19 @@ android:orientation="horizontal"> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> @@ -79,20 +80,20 @@ android:orientation="horizontal"> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> + android:textSize="@dimen/material_text_subhead"/> + android:textIsSelectable="true" + android:textSize="@dimen/material_text_subhead"/> diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index 3901096..90d6f66 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -1,5 +1,6 @@ - - @@ -18,30 +19,30 @@ android:padding="@dimen/card_padding"> + android:textSize="20sp"/> @@ -58,30 +59,30 @@ android:padding="@dimen/card_padding"> + android:textSize="20sp"/> @@ -98,30 +99,30 @@ android:padding="@dimen/card_padding"> + android:drawablePadding="8dp" + android:padding="8dp" + android:text="@string/main_activity_tap_to_rename" + android:textSize="20sp"/> diff --git a/app/src/main/res/layout/smd_fix_checksum_fragment.xml b/app/src/main/res/layout/smd_fix_checksum_fragment.xml index a308051..9523472 100644 --- a/app/src/main/res/layout/smd_fix_checksum_fragment.xml +++ b/app/src/main/res/layout/smd_fix_checksum_fragment.xml @@ -1,5 +1,6 @@ - @@ -18,9 +19,9 @@ android:padding="@dimen/card_padding"> + android:textSize="20sp"/> @@ -53,12 +54,12 @@ style="@style/Card"> + android:padding="@dimen/card_padding" + android:text="@string/smd_fix_checksum_help" + android:textSize="16sp"/> diff --git a/app/src/main/res/layout/snes_smc_header_fragment.xml b/app/src/main/res/layout/snes_smc_header_fragment.xml index 32cb1d8..fcb650a 100644 --- a/app/src/main/res/layout/snes_smc_header_fragment.xml +++ b/app/src/main/res/layout/snes_smc_header_fragment.xml @@ -1,5 +1,6 @@ - @@ -18,9 +19,9 @@ android:padding="@dimen/card_padding"> + android:textSize="20sp"/> @@ -53,12 +54,12 @@ style="@style/Card"> + android:padding="@dimen/card_padding" + android:text="@string/snes_smc_header_help" + android:textSize="16sp"/> @@ -74,9 +75,9 @@ android:padding="@dimen/card_padding"> + android:textSize="20sp"/> diff --git a/app/src/main/res/layout/toolbar.xml b/app/src/main/res/layout/toolbar.xml index b4c953a..b41b3a2 100644 --- a/app/src/main/res/layout/toolbar.xml +++ b/app/src/main/res/layout/toolbar.xml @@ -6,4 +6,4 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay" /> \ No newline at end of file + app:popupTheme="@style/AppTheme.PopupOverlay"/> \ No newline at end of file diff --git a/app/src/main/res/menu/activity_help.xml b/app/src/main/res/menu/activity_help.xml index ea75a7a..846096d 100644 --- a/app/src/main/res/menu/activity_help.xml +++ b/app/src/main/res/menu/activity_help.xml @@ -1,17 +1,19 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:context=".ui.activity.HelpActivity"> - + - + diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 65bda03..32fc3a7 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -1,46 +1,46 @@ - + + android:title="@string/nav_apply_patch"/> + android:title="@string/nav_smd_fix_checksum"/> + android:title="@string/nav_snes_add_del_smc_header"/> - + + android:title="@string/nav_settings"/> + android:title="@string/nav_rate"/> + android:title="@string/nav_donate"/> + android:title="@string/nav_share"/> + android:title="@string/nav_help"/> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7eb5c9b..dabb22f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -38,7 +38,7 @@ Seleziona il file di patch Scegli il file di intestazione Impossibile leggere la cartella %1$s - + Proprietà Nome: diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 26dd0e8..f34f6d3 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -38,7 +38,7 @@ Wybier plik Łatki Wybierz plik nagłówka Błędna ścieżka %1$s - + Właściwości Nazwa: diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6e28292..02d2406 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -38,7 +38,7 @@ Выберите патч Выберите файл заголовка Не удалось открыть директорию %1$s - + Свойства Имя: diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml index 63fc816..c9aaa29 100644 --- a/app/src/main/res/values-w820dp/dimens.xml +++ b/app/src/main/res/values-w820dp/dimens.xml @@ -1,3 +1,4 @@ + Properties Name: diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index b0f4d6a..943df13 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -15,9 +15,9 @@ true - -