From d0360931fe15f9ec868a276bd1df604186778503 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Mon, 17 Apr 2017 01:02:43 +0200 Subject: [PATCH] google drive integration part 1.1 --- bin/application/Main.class | Bin 6513 -> 6886 bytes bin/application/MainWindowController.class | Bin 26508 -> 27887 bytes bin/application/playGame.class | Bin 750 -> 4412 bytes src/application/Main.java | 361 +++++++++++---------- 4 files changed, 184 insertions(+), 177 deletions(-) diff --git a/bin/application/Main.class b/bin/application/Main.class index f854668b215bc6ee144a04bb19ccdc7783f77d92..062923ffc7c2b222fc5d9b6cd539a3881c56f5b4 100644 GIT binary patch literal 6886 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 literal 6513 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 diff --git a/bin/application/playGame.class b/bin/application/playGame.class index 4ecb3e2233682168831efb7724b82fb49f7bc675..391c1d5899c7ebee8b1b143fbb2f30b052b462d4 100644 GIT binary patch literal 4412 zcma)9349b+8UN4bn9VW}*b>UwhC2y?1r=yn4oM(%F#+1dP-4YSc3+YSvoqV7Sx9R2 zS6gkht+j|3-bWR0rNR=a#d_CT@B6;B*0Ww!s>T1Coz2dMP|W@^`{sM!`_BLOeQzIr z>hu`^&r+&XL=?=_b2-yU>z-j-iJYmA?$EPBMYV$I!}>uzVd~akqG!kvdWOtd-LUo= zR>nTmZd;yXo2GCSEb0sk>6(NmsX)v0htJHdI1}C@Z|z3IGQ7pNey$bP(f>DoW`vQpSUJ(S<;PUoat|jVF{M0SgK&2 z6gn`H2-~;E)V%@Q$!b`RCIwM?(y4ng*OxYhj2IW$+#5p+T2-v5z)kn4>j?^3iB$?_ zr1Op=EU(ANiY~)6We}N+oiaqLHLSri2ol5X$eX5{c7(9}?Y=0X3e|R3Sqz5MvQEQ# zT%lkJ1GUGobHedP6)X$e6$B^jeL#w0gMu0+IzJM_Mr>BGsnTLUtQxl9*@U6EA+MV> zvmq>ecmFVxlWgu&(Z+a8Oi5ebFf+o5f+?#xL_{&vThSrWw_}2&l9>$NJft-2l=+u# zwToUVHJjgOZ@y)ZfiIobD`$s36nLNg{^{kn^8_Cq3sc<8gjTnL5v{^C^Cm(UHsgY!)C(CRM`<=3mvL z!2%m&cnNM*aSJ0>_MwZJ)bLWgj7S_XZF#!7Xfl>~PVCd#8pwWQ|Rw z-?CoW4@N~MhP!aLidR#y1!aYPuPIp{E+6ADVk}_T`A$3G@q{5L5uq>^6 zt%ld(_0;c%^-mtr^Fh|!E8F5x1)DF>7AH9pB8_*oIETXHD(9jc7vXTqVU?`IyYOxm_p-@M+|%$L9OKkUONrspxS&FeuduvL zu*}2zG`wHdWWDSazCpq{Xr$R5KZp;j_z;_VSla{<8a^UpTkX<|7>?s(D()*4ia+kR zkEBITUI;XtkR!9+FO+UiPao)U^fa#rg%UptE46!^U&WY$%gO+h*l?VDj-zaxhbP_1 z##=m;fdC22zbqv7q;@;2%idS#db;BylI>|H%Yq$I;**@RT8l8tk&vV2 zkd9LEafio)Hd5(6hxt_B>n=SP4F9O9XZthylGQS?U)1n0zQn1;_+)iwl)QtKHPhF^ ziArM!MZ%{tZC}P$ReXggk@2bA)$lcZopOlwRNA(T0YlK)>ZU$fea($*z4QiXZTTGUSh?AIahJ zV+HdktHkmM`6=5@)?lOjIew|)7tHa~Yt!&6zro7t6(e30zo9pcl)w@ivh$8xOcdQ9 zjp-eKk9Bi5EjkQ&`S%)uG4jr5<3creYGljdP)3y)fbIA~J0&s>X6$g7p zb0W!#Ulcp_O}i$6@qv>3bAKQw#+)9O|HorHjPR>L>2gS3B> zK(M7OOE~SO?z+NNaZbU~^MW{8C{#tMsPPK_f~fJfQj8lG(wHiastEsi-Ih~JUbgwH z=1v`?u~YcAj~tS(zU36OmK7(tXg!G;$4QFd5M@g)#^NzFU>4sf z0GCpY;;&{?QH1L`#(19U6uadF>I<0L*>W0-fH5o{Lvve^m^g~z_%p|_HhyIR z$)i|vKeq0Rx1YlH;{H_yJSV=JkK*gq^0kML0(!fS;fUl87{{=Wr{d4Q5bxkc)x6+B zM_bQVqfgFzAJVM_435F%m$RX6PF(>9_tM?Z?=5~YNFO+c*oN4g zSOFhB&NMVA8D$VBgYQ#Jn@sC4=JFY5qUK@-7BG#M^V5h{B4;mC(}%^l6-#j&mf;A0 zjGRFeK80pHMvlj^3TKgEu2(BHSfkA5h;HJqg|%3#Y~kHJg?1%_4#i+EvXJuOaw8$c z^apT>(xQ*!G{Lc#_T0}^gxX50Gvlkr@SIqsW3+pgN zl@dRF4iez&cE4@Rr~Tti_caV;is^N!-F%+=I=bPH;F#?GkeT zmZ^x4e;FR-s>)A5Eh0~1|6;!Vj#488((m~_i>tqq_BZ?!Pxz~U;Ys`l|K*-+QBU!f I5W$@P0fe8bg8%>k delta 232 zcmdm^^p2J5)W2Q(7#J8#7?d}1r7+gBGe|Qs@Mk5KCFV - * - * 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 - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - */ - package application; - - import java.io.File; - import java.io.FileOutputStream; - import java.io.IOException; - import java.net.URL; - import java.nio.channels.Channels; - import java.nio.channels.ReadableByteChannel; - import java.util.Optional; - import javafx.application.Application; - import javafx.fxml.FXMLLoader; - import javafx.stage.DirectoryChooser; - import javafx.stage.Stage; - import javafx.scene.Scene; - import javafx.scene.control.Alert; - import javafx.scene.control.ButtonType; - import javafx.scene.control.Alert.AlertType; - import javafx.scene.layout.AnchorPane; - - - public class Main extends Application { - - Stage primaryStage; - private MainWindowController mainWindowController; - private String dirWin = System.getProperty("user.home") + "/Documents/cemu_UI"; //Windows: C:/Users/"User"/Documents/HomeFlix - private String dirLinux = System.getProperty("user.home") + "/cemu_UI"; //Linux: /home/"User"/HomeFlix - private String gamesDBdownloadURL = "https://github.com/Seil0/cemu_UI/raw/master/downloadContent/games.db"; - private File directory; - private File configFile; - private File gamesDBFile; - @SuppressWarnings("unused") - private File localDB; - private File pictureCache; - - - @Override - public void start(Stage primaryStage) { - this.primaryStage = primaryStage; - mainWindow(); - } - - private void mainWindow(){ - try { - FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fxml")); - AnchorPane pane = loader.load(); - primaryStage.setResizable(false); - primaryStage.setTitle("cemu_UI"); - // primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/recources/Homeflix_Icon_64x64.png"))); //adds application icon - - mainWindowController = loader.getController(); //Link of FXMLController and controller class - mainWindowController.setMain(this); //call setMain - - //get OS and the right paths - if(System.getProperty("os.name").equals("Linux")){ - directory = new File(dirLinux); - configFile = new File(dirLinux + "/config.xml"); - gamesDBFile = new File(dirLinux + "/games.db"); - localDB = new File(dirLinux+"/localRoms.db"); - pictureCache= new File(dirLinux+"/picture_cache"); - }else{ - directory = new File(dirWin); - configFile = new File(dirWin + "/config.xml"); - gamesDBFile = new File(dirWin + "/games.db"); - localDB = new File(dirWin+"/localRoms.db"); - pictureCache= new File(dirWin+"/picture_cache"); - } - - //startup checks - System.out.println(directory.exists()); - System.out.println(configFile.exists()); - if(directory.exists() != true){ - System.out.println("mkdir all"); - directory.mkdir(); - pictureCache.mkdir(); - } - - if(configFile.exists() != true){ - System.out.println("firststart"); - firstStart(); - mainWindowController.setColor("00a8cc"); - mainWindowController.setxPosHelper(0); - mainWindowController.saveSettings(); - Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) - System.exit(0); //finishes itself - } - - if(pictureCache.exists() != true){ - pictureCache.mkdir(); - } - - if(gamesDBFile.exists() != true){ - try { - System.out.print("downloading games.db... "); - URL website = new URL(gamesDBdownloadURL); - ReadableByteChannel rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(gamesDBFile); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - System.out.println("done!"); - } catch (Exception e) { - e.printStackTrace(); - } - } - - //loading settings and initialize UI - mainWindowController.loadSettings(); - mainWindowController.dbController.main(); - mainWindowController.addUIData(); - mainWindowController.initActions(); - mainWindowController.initUI(); - - Scene scene = new Scene(pane); //create new scene, append pane to scene - scene.getStylesheets().add(Main.class.getResource("MainWindows.css").toExternalForm()); - primaryStage.setScene(scene); //append scene to stage - primaryStage.show(); //show stage - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void firstStart(){ - Alert alert = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser - alert.setTitle("cemu_UI"); - alert.setHeaderText("cemu installation"); - alert.setContentText("please select your cemu installation"); - - Optional result = alert.showAndWait(); - if (result.get() == ButtonType.OK){ - DirectoryChooser directoryChooser = new DirectoryChooser(); - File selectedDirectory = directoryChooser.showDialog(primaryStage); - mainWindowController.setCemuPath(selectedDirectory.getAbsolutePath()); - - } else { - mainWindowController.setCemuPath(null); - } - - Alert alert2 = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser - alert2.setTitle("cemu_UI"); - alert2.setHeaderText("rom directory"); - alert2.setContentText("please select your rom directory"); - - Optional result2 = alert2.showAndWait(); - if (result2.get() == ButtonType.OK){ - DirectoryChooser directoryChooser = new DirectoryChooser(); - File selectedDirectory = directoryChooser.showDialog(primaryStage); - mainWindowController.setRomPath(selectedDirectory.getAbsolutePath()); - - } else { - mainWindowController.setRomPath(null); - } - } - - public static void main(String[] args) { - launch(args); - } -} \ No newline at end of file +/** + * cemu_UI + * + * Copyright 2017 <@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 + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ +package application; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Optional; +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.stage.DirectoryChooser; +import javafx.stage.Stage; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.layout.AnchorPane; + + +public class Main extends Application { + + Stage primaryStage; + private MainWindowController mainWindowController; + CloudController cloudController; + private String dirWin = System.getProperty("user.home") + "/Documents/cemu_UI"; //Windows: C:/Users/"User"/Documents/HomeFlix + private String dirLinux = System.getProperty("user.home") + "/cemu_UI"; //Linux: /home/"User"/HomeFlix + private String gamesDBdownloadURL = "https://github.com/Seil0/cemu_UI/raw/master/downloadContent/games.db"; + private File directory; + private File configFile; + private File gamesDBFile; + @SuppressWarnings("unused") + private File localDB; + private File pictureCache; + + + @Override + public void start(Stage primaryStage) { + this.primaryStage = primaryStage; + cloudController = new CloudController(this); + mainWindow(); + } + + private void mainWindow(){ + try { + FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fxml")); + AnchorPane pane = loader.load(); + primaryStage.setResizable(false); + primaryStage.setTitle("cemu_UI"); +// primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/recources/Homeflix_Icon_64x64.png"))); //adds application icon + + mainWindowController = loader.getController(); //Link of FXMLController and controller class + mainWindowController.setMain(this); //call setMain + + //get os and the right paths + if(System.getProperty("os.name").equals("Linux")){ + directory = new File(dirLinux); + configFile = new File(dirLinux + "/config.xml"); + gamesDBFile = new File(dirLinux + "/games.db"); + localDB = new File(dirLinux+"/localRoms.db"); + pictureCache= new File(dirLinux+"/picture_cache"); + }else{ + directory = new File(dirWin); + configFile = new File(dirWin + "/config.xml"); + gamesDBFile = new File(dirWin + "/games.db"); + localDB = new File(dirWin+"/localRoms.db"); + pictureCache= new File(dirWin+"/picture_cache"); + } + + //startup checks + System.out.println(directory.exists()); + System.out.println(configFile.exists()); + if(directory.exists() != true){ + System.out.println("mkdir all"); + directory.mkdir(); + pictureCache.mkdir(); + } + + if(configFile.exists() != true){ + System.out.println("firststart"); + firstStart(); + mainWindowController.setColor("00a8cc"); + mainWindowController.setxPosHelper(0); + mainWindowController.saveSettings(); + Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) + System.exit(0); //finishes itself + } + + if(pictureCache.exists() != true){ + pictureCache.mkdir(); + } + + if(gamesDBFile.exists() != true){ + try { + System.out.print("downloading games.db... "); + URL website = new URL(gamesDBdownloadURL); + ReadableByteChannel rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(gamesDBFile); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + System.out.println("done!"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //loading settings and initialize UI, dbController.main() loads all databases + mainWindowController.loadSettings(); + if(mainWindowController.isCloudSync()) { + cloudController.initializeConnection(mainWindowController.getCloudService(), mainWindowController.getCemuPath()); + cloudController.sync(mainWindowController.getCloudService(), mainWindowController.getCemuPath()); + mainWindowController.saveSettings();//TODO find a better way + } + mainWindowController.dbController.main(); + mainWindowController.addUIData(); + mainWindowController.initActions(); + mainWindowController.initUI(); + + Scene scene = new Scene(pane); //create new scene, append pane to scene + scene.getStylesheets().add(Main.class.getResource("MainWindows.css").toExternalForm()); + primaryStage.setScene(scene); //append scene to stage + primaryStage.show(); //show stage + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void firstStart(){ + Alert alert = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser + alert.setTitle("cemu_UI"); + alert.setHeaderText("cemu installation"); + alert.setContentText("please select your cemu installation"); + + Optional result = alert.showAndWait(); + if (result.get() == ButtonType.OK){ + DirectoryChooser directoryChooser = new DirectoryChooser(); + File selectedDirectory = directoryChooser.showDialog(primaryStage); + mainWindowController.setCemuPath(selectedDirectory.getAbsolutePath()); + + } else { + mainWindowController.setCemuPath(null); + } + + Alert alert2 = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser + alert2.setTitle("cemu_UI"); + alert2.setHeaderText("rom directory"); + alert2.setContentText("please select your rom directory"); + + Optional result2 = alert2.showAndWait(); + if (result2.get() == ButtonType.OK){ + DirectoryChooser directoryChooser = new DirectoryChooser(); + File selectedDirectory = directoryChooser.showDialog(primaryStage); + mainWindowController.setRomPath(selectedDirectory.getAbsolutePath()); + + } else { + mainWindowController.setRomPath(null); + } + } + + public static void main(String[] args) { + launch(args); + } +}