Browse Source

optimized implementation

Jan-Peter Klein 1 year ago
parent
commit
d82d11feb7

+ 2 - 5
src/main/java/org/cryptomator/common/ErrorCode.java

@@ -32,17 +32,14 @@ public class ErrorCode {
 		this.rootCauseSpecificFrames = rootCauseSpecificFrames;
 	}
 
-	// visible for testing
-	String methodCode() {
+	public String methodCode() {
 		return format(traceCode(rootCause, LATEST_FRAME));
 	}
 
-	// visible for testing
-	String rootCauseCode() {
+	public String rootCauseCode() {
 		return format(traceCode(rootCause, rootCauseSpecificFrames));
 	}
 
-	// visible for testing
 	String throwableCode() {
 		return format(traceCode(throwable, ALL_FRAMES));
 	}

+ 19 - 0
src/main/java/org/cryptomator/ui/common/HttpHelper.java

@@ -0,0 +1,19 @@
+package org.cryptomator.ui.common;
+
+import com.google.common.io.CharStreams;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.http.HttpResponse;
+import java.nio.charset.StandardCharsets;
+
+public class HttpHelper {
+
+	public static String readBody(HttpResponse<InputStream> response) throws IOException {
+		try (var in = response.body(); var reader = new InputStreamReader(in, StandardCharsets.UTF_8)) {
+			return CharStreams.toString(reader);
+		}
+	}
+
+}

File diff suppressed because it is too large
+ 90 - 154
src/main/java/org/cryptomator/ui/error/ErrorController.java


+ 0 - 16
src/main/java/org/cryptomator/ui/error/ErrorDiscussion.java

@@ -2,27 +2,11 @@ package org.cryptomator.ui.error;
 
 public class ErrorDiscussion {
 
-	String id;
 	int upvoteCount;
 	String title;
 	String url;
-	int comments;
 	Answer answer;
 
-	String getUpvoteCount(){return  upvoteCount+"";}
-
-	String getErrorCode(){return title.substring(6);}
-	String getMethodCode(){
-		return title.substring(6,10);
-	}
-	String getRootCauseCode(){
-		return title.substring(11,15);
-	}
-
-	String getThrowableCode(){
-		return title.substring(16,20);
-	}
-
 	class Answer{
 		private String url;
 		private int upvoteCount;

+ 22 - 19
src/main/resources/fxml/error.fxml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <?import org.cryptomator.ui.controls.FontAwesome5IconView?>
+<?import org.cryptomator.ui.controls.FontAwesome5Spinner?>
 <?import org.cryptomator.ui.controls.FormattedLabel?>
 <?import javafx.geometry.Insets?>
 <?import javafx.scene.control.Button?>
@@ -31,26 +32,28 @@
 			</StackPane>
 			<VBox spacing="6" HBox.hgrow="ALWAYS">
 				<FormattedLabel styleClass="label-extra-large" format="%error.message" arg1="${controller.errorCode}"/>
-				<Label text="%error.existingSolutionDescription" wrapText="true" visible="${controller.lookUpSolutionVisibility}" managed="${controller.lookUpSolutionVisibility}"/>
-				<Label text="%error.description" wrapText="true" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}"/>
-				<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.solution" onAction="#showSolution" contentDisplay="LEFT" visible="${controller.lookUpSolutionVisibility}" managed="${controller.lookUpSolutionVisibility}">
-					<graphic>
-						<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
-					</graphic>
-				</Hyperlink>
-				<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.lookup" onAction="#searchError" contentDisplay="LEFT" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}">
-					<graphic>
-						<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
-					</graphic>
-				</Hyperlink>
-				<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.report" onAction="#reportError" contentDisplay="LEFT" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}">
-					<graphic>
-						<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
-					</graphic>
-				</Hyperlink>
+				<FontAwesome5Spinner glyphSize="24" visible="${controller.isLoadingHttpResponse}" managed="${controller.isLoadingHttpResponse}"/>
+				<VBox visible="${!controller.isLoadingHttpResponse}" managed="${!controller.isLoadingHttpResponse}">
+					<Label text="%error.existingSolutionDescription" wrapText="true" visible="${controller.lookUpSolutionVisibility}" managed="${controller.lookUpSolutionVisibility}"/>
+					<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.solution" onAction="#showSolution" contentDisplay="LEFT" visible="${controller.lookUpSolutionVisibility}" managed="${controller.lookUpSolutionVisibility}">
+						<graphic>
+							<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
+						</graphic>
+					</Hyperlink>
+					<Label text="%error.description" wrapText="true" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}"/>
+					<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.lookup" onAction="#searchError" contentDisplay="LEFT" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}">
+						<graphic>
+							<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
+						</graphic>
+					</Hyperlink>
+					<Hyperlink styleClass="hyperlink-underline" text="%error.hyperlink.report" onAction="#reportError" contentDisplay="LEFT" visible="${!controller.lookUpSolutionVisibility}" managed="${!controller.lookUpSolutionVisibility}">
+						<graphic>
+							<FontAwesome5IconView glyph="LINK" glyphSize="12"/>
+						</graphic>
+					</Hyperlink>
+				</VBox>
 			</VBox>
 		</HBox>
-
 		<VBox spacing="6" VBox.vgrow="ALWAYS">
 			<HBox>
 				<Label text="%error.technicalDetails"/>
@@ -66,7 +69,7 @@
 					</graphic>
 				</Hyperlink>
 			</HBox>
-			<TextArea VBox.vgrow="ALWAYS" text="${controller.detailTexts}" prefRowCount="5" editable="false"/>
+			<TextArea VBox.vgrow="ALWAYS" text="${controller.detailText}" prefRowCount="5" editable="false"/>
 		</VBox>
 
 		<ButtonBar buttonMinWidth="120" buttonOrder="B+C">