Browse Source

added to option to select a local or streaming source at the first start

pull/24/head
Jannik 4 years ago
parent
commit
8ec7653a5e
  1. 194
      src/main/java/com/cemu_UI/uiElements/JFXDirStrmCancelDialog.java
  2. 66
      src/main/java/com/cemu_UI/uiElements/JFXInfoDialog.java
  3. 126
      src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java
  4. 65
      src/main/java/com/cemu_UI/uiElements/JFXTextAreaInfoDialog.java
  5. 87
      src/main/java/kellerkinder/HomeFlix/application/Main.java
  6. 11
      src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java
  7. 5
      src/main/resources/locals/HomeFlix-Local_de_DE.properties
  8. 5
      src/main/resources/locals/HomeFlix-Local_en_US.properties

194
src/main/java/com/cemu_UI/uiElements/JFXDirStrmCancelDialog.java

@ -0,0 +1,194 @@
package com.cemu_UI.uiElements;
import java.util.ResourceBundle;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
public class JFXDirStrmCancelDialog {
private String headingText;
private String bodyText;
private String dialogBtnStyle;
private String btn1Text;
private String btn2Text;
private String cancelText;
private int dialogWidth;
private int dialogHeight;
private EventHandler<ActionEvent> btn1Action;
private EventHandler<ActionEvent> btn2Action;
private Pane pane;
/**
* Creates a new JFoenix Dialog to show some information with okay and cancel
* option
*
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param btn1Action action which is performed if btn1 is clicked
* @param btn2Action action which is performed if btn2 is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
*/
public JFXDirStrmCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
int dialogHeight, EventHandler<ActionEvent> btn1Action, EventHandler<ActionEvent> btn2Action,
Pane pane, ResourceBundle bundle) {
setHeadingText(headingText);
setBodyText(bodyText);
setDialogBtnStyle(dialogBtnStyle);
setDialogWidth(dialogWidth);
setDialogHeight(dialogHeight);
setBtn1Action(btn1Action);
setBtn2Action(btn2Action);
setPane(pane);
btn1Text = bundle.getString("addDirectory");
btn2Text = bundle.getString("addStreamSource");
cancelText = bundle.getString("cancelBtnText");
}
public JFXDirStrmCancelDialog() {
// Auto-generated constructor stub
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton btn1 = new JFXButton(btn1Text);
btn1.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
btn1.addEventHandler(ActionEvent.ACTION, btn1Action);
btn1.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
btn1.setPrefHeight(32);
btn1.setStyle(dialogBtnStyle);
JFXButton btn2 = new JFXButton(btn2Text);
btn2.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
btn2.addEventHandler(ActionEvent.ACTION, btn2Action);
btn2.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
btn2.setPrefHeight(32);
btn2.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, btn1, btn2);
content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public String getBtn1Text() {
return btn1Text;
}
public void setBtn1Text(String btn1Text) {
this.btn1Text = btn1Text;
}
public String getBtn2Text() {
return btn2Text;
}
public void setBtn2Text(String btn2Text) {
this.btn2Text = btn2Text;
}
public String getCancelText() {
return cancelText;
}
public void setCancelText(String cancelText) {
this.cancelText = cancelText;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public EventHandler<ActionEvent> getBtn1Action() {
return btn1Action;
}
public void setBtn1Action(EventHandler<ActionEvent> btn1Action) {
this.btn1Action = btn1Action;
}
public EventHandler<ActionEvent> getBtn2Action() {
return btn2Action;
}
public void setBtn2Action(EventHandler<ActionEvent> btn2Action) {
this.btn2Action = btn2Action;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
}

66
src/main/java/com/cemu_UI/uiElements/JFXInfoDialog.java

@ -1,7 +1,7 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
* Copyright 2017-2018 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -43,12 +43,12 @@ public class JFXInfoDialog {
/**
* Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
*/
public JFXInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText;
@ -58,6 +58,10 @@ public class JFXInfoDialog {
this.dialogHeight = dialogHeight;
this.pane = pane;
}
public JFXInfoDialog() {
// Auto-generated constructor stub
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
@ -83,4 +87,52 @@ public class JFXInfoDialog {
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
}

126
src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java

@ -1,7 +1,7 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
* Copyright 2017-2018 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -19,7 +19,6 @@
* MA 02110-1301, USA.
*/
package com.cemu_UI.uiElements;
import java.util.ResourceBundle;
@ -50,14 +49,14 @@ public class JFXOkayCancelDialog {
/**
* Creates a new JFoenix Dialog to show some information with okay and cancel option
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param okayAction action which is performed if the okay button is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param okayAction action which is performed if the okay button is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
*/
public JFXOkayCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
int dialogHeight, EventHandler<ActionEvent> okayAction, EventHandler<ActionEvent> cancelAction, Pane pane,
@ -74,36 +73,63 @@ public class JFXOkayCancelDialog {
cancelText = bundle.getString("cancelBtnText");
}
public JFXOkayCancelDialog() {
// Auto-generated constructor stub
}
public void show() {
JFXDialogLayout content = new JFXDialogLayout();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton okayBtn = new JFXButton(okayText);
okayBtn.addEventHandler(ActionEvent.ACTION, (e)-> {
dialog.close();
});
okayBtn.addEventHandler(ActionEvent.ACTION, okayAction);
okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
okayBtn.setPrefHeight(32);
okayBtn.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e)-> {
dialog.close();
});
cancelBtn.addEventHandler(ActionEvent.ACTION, cancelAction);
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, okayBtn);
content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight()-content.getPrefHeight())/2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth()-content.getPrefWidth())/2);
dialog.show();
content.setHeading(new Text(headingText));
content.setBody(new Text(bodyText));
StackPane stackPane = new StackPane();
stackPane.autosize();
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
JFXButton okayBtn = new JFXButton(okayText);
okayBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
okayBtn.addEventHandler(ActionEvent.ACTION, okayAction);
okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
okayBtn.setPrefHeight(32);
okayBtn.setStyle(dialogBtnStyle);
JFXButton cancelBtn = new JFXButton(cancelText);
cancelBtn.addEventHandler(ActionEvent.ACTION, (e) -> {
dialog.close();
});
cancelBtn.addEventHandler(ActionEvent.ACTION, cancelAction);
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
cancelBtn.setPrefHeight(32);
cancelBtn.setStyle(dialogBtnStyle);
content.setActions(cancelBtn, okayBtn);
content.setPrefSize(dialogWidth, dialogHeight);
pane.getChildren().add(stackPane);
AnchorPane.setTopAnchor(stackPane, (pane.getHeight() - content.getPrefHeight()) / 2);
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth() - content.getPrefWidth()) / 2);
dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public String getOkayText() {
@ -122,6 +148,22 @@ public class JFXOkayCancelDialog {
this.cancelText = cancelText;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public EventHandler<ActionEvent> getOkayAction() {
return okayAction;
}
@ -138,5 +180,13 @@ public class JFXOkayCancelDialog {
this.cancelAction = cancelAction;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
}

65
src/main/java/com/cemu_UI/uiElements/JFXTextAreaInfoDialog.java

@ -1,7 +1,7 @@
/**
* cemu_UI
*
* Copyright 2017 <@Seil0>
* Copyright 2017-2018 <@Seil0>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -45,12 +45,12 @@ public class JFXTextAreaInfoDialog {
/**
* Creates a new JFoenix Dialog to show some information
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param headingText Heading Text, just the heading
* @param bodyText body Text, all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param pane pane to which the dialog belongs
*/
public JFXTextAreaInfoDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, int dialogHeight, Pane pane) {
this.headingText = headingText;
@ -60,6 +60,10 @@ public class JFXTextAreaInfoDialog {
this.dialogHeight = dialogHeight;
this.pane = pane;
}
public JFXTextAreaInfoDialog() {
// Auto-generated constructor stub
}
public void show() {
textArea = new JFXTextArea(bodyText);
@ -88,6 +92,46 @@ public class JFXTextAreaInfoDialog {
dialog.show();
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String headingText) {
this.headingText = headingText;
}
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getDialogBtnStyle() {
return dialogBtnStyle;
}
public void setDialogBtnStyle(String dialogBtnStyle) {
this.dialogBtnStyle = dialogBtnStyle;
}
public int getDialogWidth() {
return dialogWidth;
}
public void setDialogWidth(int dialogWidth) {
this.dialogWidth = dialogWidth;
}
public int getDialogHeight() {
return dialogHeight;
}
public void setDialogHeight(int dialogHeight) {
this.dialogHeight = dialogHeight;
}
public JFXTextArea getTextArea() {
return textArea;
}
@ -95,4 +139,13 @@ public class JFXTextAreaInfoDialog {
public void setTextArea(JFXTextArea textArea) {
this.textArea = textArea;
}
public Pane getPane() {
return pane;
}
public void setPane(Pane pane) {
this.pane = pane;
}
}

87
src/main/java/kellerkinder/HomeFlix/application/Main.java

@ -36,10 +36,12 @@ import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class Main extends Application {
@ -61,7 +63,6 @@ public class Main extends Application {
private File configFile;
private File posterCache;
private String path;
private String FONT_FAMILY = "System";
private String local = System.getProperty("user.language")+"_"+System.getProperty("user.country");
private double FONT_SIZE = 17;
@ -105,8 +106,8 @@ public class Main extends Application {
// startup checks
if (!configFile.exists()) {
directory.mkdir();
mainWindowController.addSource(firstStart(), "local");
directory.mkdir();
getFirstSource();
mainWindowController.setColor("ee3523");
mainWindowController.setSize(FONT_SIZE);
mainWindowController.setAutoUpdate(false);
@ -132,8 +133,10 @@ public class Main extends Application {
}
}
// Method for first Start
private String firstStart(){
/** TODO add option to add streaming as first source
* when there i no config.xml we need to get the path for the first source from the user
*/
private void getFirstSource(){
switch (System.getProperty("user.language") + "_" + System.getProperty("user.country")) {
case "en_US":
bundle = ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US); // us_english
@ -146,26 +149,78 @@ public class Main extends Application {
break;
}
// // directory action
// EventHandler<ActionEvent> btn1Action = new EventHandler<ActionEvent>() {
// @Override
// public void handle(ActionEvent event) {
// DirectoryChooser directoryChooser = new DirectoryChooser();
// directoryChooser.setTitle(bundle.getString("addDirectory"));
// File selectedFolder = directoryChooser.showDialog(primaryStage);
// if (selectedFolder != null && selectedFolder.exists()) {
// mainWindowController.addSource(selectedFolder.getPath(), "local");
// } else {
// LOGGER.error("The selected folder dosen't exist!");
// }
// }
// };
//
// // streaming action
// EventHandler<ActionEvent> btn2Action = new EventHandler<ActionEvent>() {
// @Override
// public void handle(ActionEvent event) {
// FileChooser fileChooser = new FileChooser();
// fileChooser.setTitle("addStreamSource");
// File selectedFile = fileChooser.showOpenDialog(getPrimaryStage());
// if (selectedFile != null && selectedFile.exists()) {
// mainWindowController.addSource(selectedFile.getPath(), "stream");
// } else {
// LOGGER.error("The selected file dosen't exist!");
// }
// }
// };
//
// JFXDirStrmCancelDialog selectFirstSource = new JFXDirStrmCancelDialog(bundle.getString("addSourceHeader"),
// bundle.getString("addSourceBody"), "", 200, 100, btn1Action, btn2Action, pane, bundle);
// selectFirstSource.show();
Alert alert = new Alert(AlertType.CONFIRMATION); //new alert with DirectoryChooser
alert.setTitle("Project HomeFlix");
alert.setHeaderText(bundle.getString("firstStartHeader"));
alert.setContentText(bundle.getString("firstStartContent"));
alert.setHeaderText(bundle.getString("addSourceHeader"));
alert.setContentText(bundle.getString("addSourceBody"));
alert.setResizable(true);
ButtonType buttonDirectory = new ButtonType(bundle.getString("addDirectory"));
ButtonType buttonStreaming = new ButtonType(bundle.getString("addStreamSource"));
ButtonType buttonCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonDirectory, buttonStreaming, buttonCancel);
Optional<ButtonType> result = alert.showAndWait();
if (result.get() == ButtonType.OK){
if (result.get() == buttonDirectory) {
DirectoryChooser directoryChooser = new DirectoryChooser();
File selectedDirectory =
directoryChooser.showDialog(primaryStage);
path = selectedDirectory.getAbsolutePath();
directoryChooser.setTitle(bundle.getString("addDirectory"));
File selectedFolder = directoryChooser.showDialog(primaryStage);
if (selectedFolder != null && selectedFolder.exists()) {
mainWindowController.addSource(selectedFolder.getPath(), "local");
} else {
LOGGER.error("The selected folder dosen't exist!");
System.exit(1);
}
} else if (result.get() == buttonStreaming) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("addStreamSource");
File selectedFile = fileChooser.showOpenDialog(getPrimaryStage());
if (selectedFile != null && selectedFile.exists()) {
mainWindowController.addSource(selectedFile.getPath(), "stream");
} else {
LOGGER.error("The selected file dosen't exist!");
System.exit(1);
}
} else {
LOGGER.warn("No directory selected!");
LOGGER.warn("No source selected!");
System.exit(1);
}
return path;
}
public static void main(String[] args) {

11
src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java

@ -267,7 +267,6 @@ public class MainWindowController {
private ImageView skip_next_black = new ImageView(new Image("icons/ic_skip_next_black_18dp_1x.png"));
private ImageView play_arrow_white = new ImageView(new Image("icons/ic_play_arrow_white_18dp_1x.png"));
private ImageView play_arrow_black = new ImageView(new Image("icons/ic_play_arrow_black_18dp_1x.png"));
private DirectoryChooser directoryChooser = new DirectoryChooser();
private MenuItem like = new MenuItem("like");
private MenuItem dislike = new MenuItem("dislike"); //TODO one option (like or dislike)
private ContextMenu menu = new ContextMenu(like, dislike);
@ -290,6 +289,7 @@ public class MainWindowController {
omdbAPIController = new OMDbAPIController(this, dbController, this.main);
}
// call all init methods
void init() {
loadSettings();
checkAutoUpdate();
@ -632,10 +632,11 @@ public class MainWindowController {
@FXML
private void addDirectoryBtnAction(){
File selectedFolder = directoryChooser.showDialog(null);
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle(bundle.getString("addDirectory"));
File selectedFolder = directoryChooser.showDialog(main.getPrimaryStage());
if (selectedFolder != null && selectedFolder.exists()) {
addSource(selectedFolder.getPath(), "local");
dbController.refreshDataBase();
mainWindowController.addSource(selectedFolder.getPath(), "local");
} else {
LOGGER.error("The selected folder dosen't exist!");
}
@ -644,7 +645,7 @@ public class MainWindowController {
@FXML
private void addStreamSourceBtnAction(){
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
fileChooser.setTitle("addStreamSource");
File selectedFile = fileChooser.showOpenDialog(main.getPrimaryStage());
if (selectedFile != null && selectedFile.exists()) {
addSource(selectedFile.getPath(), "stream");

5
src/main/resources/locals/HomeFlix-Local_de_DE.properties

@ -60,5 +60,6 @@ imdbRating = IMDB-Bewertung
type = Type
#first start
firstStartHeader = Es ist kein Stammverzeichnis f\u00FCr Filme angegeben!
firstStartContent = Stammverzeichniss angeben?
addSourceHeader = Neue Quelle hinzuf\u00FCgen
addSourceBody = HomeFlix konnte keine Quelle finden. \nFüge eine loakels Verzeichniss oder eine Sreaming Datei als neue Quelle hinzu.
cancelBtnText = Abbrechen

5
src/main/resources/locals/HomeFlix-Local_en_US.properties

@ -60,5 +60,6 @@ imdbRating = IMDB-Rating
type = Type
#first start
firstStartHeader = There is no root directory for movies!
firstStartContent = Specify a root directory?
addSourceHeader = add a new source
addSourceBody = HomeFlix was not able to load a source. \nAdd a new local directory oa a streaming file as new source.
cancelBtnText = cancel

Loading…
Cancel
Save

Du besuchst diese Seite mit einem veralteten IPv4-Internetzugang. Möglicherweise treten in Zukunft Probleme mit der Erreichbarkeit und Performance auf. Bitte frage deinen Internetanbieter oder Netzwerkadministrator nach IPv6-Unterstützung.
You are visiting this site with an outdated IPv4 internet access. You may experience problems with accessibility and performance in the future. Please ask your ISP or network administrator for IPv6 support.
Weitere Infos | More Information
Klicke zum schließen | Click to close