diff --git a/app/src/main/java/org/mian/gitnex/core/MainApplication.java b/app/src/main/java/org/mian/gitnex/core/MainApplication.java index 955a4e47..289c9564 100644 --- a/app/src/main/java/org/mian/gitnex/core/MainApplication.java +++ b/app/src/main/java/org/mian/gitnex/core/MainApplication.java @@ -17,7 +17,6 @@ import org.mian.gitnex.helpers.FontsOverride; import org.mian.gitnex.helpers.TinyDB; import org.mian.gitnex.helpers.contexts.AccountContext; import org.mian.gitnex.notifications.Notifications; -import java.nio.charset.StandardCharsets; /** * @author opyale @@ -59,7 +58,7 @@ public class MainApplication extends Application { ACRABuilder.withBuildConfigClass(BuildConfig.class).withReportContent(ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.STACK_TRACE, ReportField.AVAILABLE_MEM_SIZE, ReportField.BRAND).setReportFormat(StringFormat.KEY_VALUE_LIST); ACRABuilder.getPluginConfigurationBuilder(NotificationConfigurationBuilder.class).withResTitle(R.string.crashTitle) - .withResIcon(R.drawable.gitnex_transparent).withResChannelName(R.string.setCrashReports).withResText(R.string.crashMessage); + .withResIcon(R.drawable.gitnex_transparent).withResChannelName(R.string.setCrashReports).withResText(R.string.crashMessage).withEnabled(true); ACRABuilder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder.class).withMailTo(getResources().getString(R.string.appEmail)) .withSubject(getResources().getString(R.string.crashReportEmailSubject, AppUtil .getAppBuildNo(context))) diff --git a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java index a2c7d85a..b9ae5f8c 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java +++ b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java @@ -338,7 +338,9 @@ public class AppUtil { public static long getLineCount(String s) { - long lines = 0; + if(s.length() < 1) return 0; + + long lines = 1; // we start counting at 1 because there is always at least one line Pattern pattern = Pattern.compile("(\r\n|\n)"); Matcher matcher = pattern.matcher(s); @@ -346,11 +348,6 @@ public class AppUtil { while(matcher.find()) lines++; - // Sometimes there may be text, but no line breaks. - // This should still count as one line. - if(s.length() > 0 && lines == 0) - return 1; - return lines; } diff --git a/app/src/main/java/org/mian/gitnex/helpers/FileDiffView.java b/app/src/main/java/org/mian/gitnex/helpers/FileDiffView.java index 44e20d52..28111096 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/FileDiffView.java +++ b/app/src/main/java/org/mian/gitnex/helpers/FileDiffView.java @@ -1,11 +1,12 @@ package org.mian.gitnex.helpers; +import androidx.annotation.NonNull; import java.io.Serializable; import java.util.List; /** - * Author M M Arif - * Author 6543 + * @author M M Arif + * @author 6543 */ public class FileDiffView implements Serializable { @@ -137,12 +138,17 @@ public class FileDiffView implements Serializable { return fileInfo; } + @NonNull + @Override public String toString() { StringBuilder raw = new StringBuilder(); if(this.contents != null) { for(Content c : this.contents) { raw.append(c.getRaw()); + if(!c.getRaw().endsWith("\n")) { + raw.append("\n"); + } } } return raw.toString(); diff --git a/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java b/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java index 4bbf0172..b697a8a3 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java +++ b/app/src/main/java/org/mian/gitnex/helpers/ParseDiff.java @@ -7,7 +7,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * Author 6543 + * @author 6543 */ public class ParseDiff { @@ -108,6 +108,9 @@ public class ParseDiff { if(rawDiff.length <= 1) { continue; } + if(rawDiff[1].startsWith("\n")) { + rawDiff[1] = rawDiff[1].substring(1); + } // extract the diff stats info of the first line String statsLine = rawDiffs[j].split("\n")[0].split(" @@")[0]; diff --git a/app/src/main/java/org/mian/gitnex/helpers/Version.java b/app/src/main/java/org/mian/gitnex/helpers/Version.java index ed6d9209..fafdcf83 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/Version.java +++ b/app/src/main/java/org/mian/gitnex/helpers/Version.java @@ -51,7 +51,10 @@ public class Version { final Pattern patternNumberDotNumber = Pattern.compile("^\\d+(\\.(\\d)+)*"); - if(!valid(raw) || raw.equals("main")) { + if(!valid(raw)) { + throw new IllegalArgumentException("Invalid version format: " + raw); + } + if(raw.equals("main")) { dev = true; values = new ArrayList<>(); return; diff --git a/app/src/main/java/org/mian/gitnex/views/SyntaxHighlightedArea.java b/app/src/main/java/org/mian/gitnex/views/SyntaxHighlightedArea.java index edac1092..7feee465 100644 --- a/app/src/main/java/org/mian/gitnex/views/SyntaxHighlightedArea.java +++ b/app/src/main/java/org/mian/gitnex/views/SyntaxHighlightedArea.java @@ -107,15 +107,7 @@ public class SyntaxHighlightedArea extends LinearLayout { .create(new Prism4j(mainGrammarLocator), prism4jTheme, MainGrammarLocator.DEFAULT_FALLBACK_LANGUAGE) .highlight(mainGrammarLocator.fromExtension(extension), source); - getActivity().runOnUiThread(() -> { - if(highlightedSource.charAt(highlightedSource.length() - 1) == '\n') { - // Removes a line break which is probably added by Prism4j but not actually present in the source. - // This line should be altered in case this gets fixed. - sourceView.setText(highlightedSource.subSequence(0, highlightedSource.length() - 1)); - } else { - sourceView.setText(highlightedSource); - } - }); + getActivity().runOnUiThread(() -> sourceView.setText(highlightedSource)); } catch(Throwable ignored) { // Fall back to plaintext if something fails diff --git a/app/src/main/res/layout/activity_settings_translation.xml b/app/src/main/res/layout/activity_settings_translation.xml index ffda7c7a..381bfe3c 100644 --- a/app/src/main/res/layout/activity_settings_translation.xml +++ b/app/src/main/res/layout/activity_settings_translation.xml @@ -55,8 +55,7 @@ android:focusable="true" android:clickable="true" android:orientation="vertical" - android:padding="15dp" - android:layout_marginBottom="5dp"> + android:padding="15dp"> - - + +