diff --git a/README.md b/README.md
index 1d3b080..2dfd62a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-WebOS Quick Install v4.7.0u
+WebOS Quick Install v4.7.1u
===================
> **NOTICE: THIS TOOL IS DESIGNED FOR LEGACY PALM/HP WEBOS AND SOME VERSIONS OF LUNEOS. IT IS NOT COMPATIBLE WITH WEBOS OSE OR LG WEBOS.**
@@ -29,40 +29,22 @@ Powered by JayCanuck's [webOSLib java library](https://github.com/JayCanuck/java
* Supports English, French, German, and Simplified Chinese
------------------------------
-**What's new in v4.7.0u:**
+What's new in v4.7.1u:
------------------------------
-1. Now uses user Java preferences rather than system Java preferences
+1. Fixed some code spacing and indentation
-2. Fixed several NullPointerException errors
+2. Removed unnecessary files
-3. Fixed blank package description icons/screenshots in Package Viewer window
+3. Fixed compatibility with early versions of Java 7
-4. Imported and made use of JPowerShell API in order to implement an awesome powershell self-elevating permissions hack that triggers UAC to start novacom (from https://github.com/profesorfalken/jPowerShell)
-
-5. Converted project from NetBeans to Eclispe
-
-6. Converted project from Java 6/CC1.5 to Java 12/CC11. Java 7 or above is now reccomended, as is the use of OpenJDK (https://www.adoptopenjdk.net)
-
-7. Install folder is no longer created until novacom is detected
-
-8. Most of the novacom driver detection code is re-written from the ground up to better support Linux and macOS on all architectures, including armhf. This means that novacom can now be detected accurately on headless servers, or even a Raspberry Pi! Windows novacom detection support is retained from earlier versions
-
-9. On Windows and Linux, if novacom is installed, but not running, it will now be started. (This is not needed on macOS, because novacomd runs perpetually once installed)
-
-11. If the Install folder is empty, it will now be deleted upon exit
-
-12. Re-hosted webos-clock-themer repository at https://github.com/NotAlexNoyle/WebOS-Clock-Themer/
-
-13. Updated "about" window
-
-14. Several other minor edits and bug fixes (see the commit history at https://github.com/NotAlexNoyle/WebOS-Quick-Install for a comprehensive comparison)
+4. Bumped version number, and made title automatically adapt to new version numbers
------------------------------
-**Planned for future versions:**
+Planned for future versions:
------------------------------
-1. Fix a lot of code spacing, order, and indentation
+1. Fix more code spacing and indentation (Currently up to FeedViewer.java)
2. Fix several eclipse warnings
@@ -78,20 +60,29 @@ Powered by JayCanuck's [webOSLib java library](https://github.com/JayCanuck/java
8. Add support for BSDs and Solaris-based operating systems (and possibly more)
-9. Fix missing splash screen
+9. Distrbute operating system-specific packages with icons (.exe, .app, etc) instead of .jar for everything.
-10. Distrbute operating system-specific packages with icons (.exe, .app, etc) instead of .jar for everything.
+10. Fix armhf device detection
-11. Fix armhf device detection
+11. Locate and remove unwanted loop when loading image assets in PackageViewer upon first launch
-12. Locate and remove unwanted loop when loading image assets in PackageViewer upon first launch
+12. Fix layout of About window on MacOS
-13. Fix layout of About window on MacOS
+13. Fix Linux novacomd installation, and add support for installing novacomd on armhf
-14. Fix Linux novacomd installation, and add support for installing novacomd on armhf
+14. Work on community feedback and implement community requests!
-15. Work on community feedback and implement community requests!
+15. Fix code order / refactor in general.
+16. Update translations
+
+17. Resolve this issue: https://github.com/JayCanuck/webos-quick-install/issues/4
+
+18. Fulfill this request: https://github.com/JayCanuck/webos-quick-install/issues/3
+
+19. Add "continue anyway" option in the "there are no devices currently connected" pane, and change "ok" to "quit"
+
+20. Fix splash screen
**Requirements**
diff --git a/bin/ipkg/PackageEntry.class b/bin/ipkg/PackageEntry.class
index 5277ea8..7391733 100644
Binary files a/bin/ipkg/PackageEntry.class and b/bin/ipkg/PackageEntry.class differ
diff --git a/bin/ipkg/PackageFeed.class b/bin/ipkg/PackageFeed.class
index 05c714b..6eb81bc 100644
Binary files a/bin/ipkg/PackageFeed.class and b/bin/ipkg/PackageFeed.class differ
diff --git a/bin/ipkg/PackageFilter.class b/bin/ipkg/PackageFilter.class
index adbcb38..79b156e 100644
Binary files a/bin/ipkg/PackageFilter.class and b/bin/ipkg/PackageFilter.class differ
diff --git a/bin/ipkg/PackageManager.class b/bin/ipkg/PackageManager.class
index 8440842..a2db945 100644
Binary files a/bin/ipkg/PackageManager.class and b/bin/ipkg/PackageManager.class differ
diff --git a/bin/ipkg/PackageSorter.class b/bin/ipkg/PackageSorter.class
index 6d1ead5..01e5c11 100644
Binary files a/bin/ipkg/PackageSorter.class and b/bin/ipkg/PackageSorter.class differ
diff --git a/bin/resources/NewJFrame.properties b/bin/resources/NewJFrame.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/bin/resources/WebOSQuickInstallApp.properties b/bin/resources/WebOSQuickInstallApp.properties
index 1caaad2..e674fd4 100644
--- a/bin/resources/WebOSQuickInstallApp.properties
+++ b/bin/resources/WebOSQuickInstallApp.properties
@@ -2,7 +2,7 @@
Application.name = WebOS Quick Install
Application.title = WebOS Quick Install
-Application.version = v4.7.0u
+Application.version = v4.7.1u
Application.vendor = NotAlexNoyle
Application.homepage = http://github.com/NotAlexNoyle/WebOS-Quick-Install
Application.description = An advanced tool for installing and managing packages on webOS devices.
diff --git a/bin/utils/FileUtils.class b/bin/utils/FileUtils.class
index d66a549..e07def7 100644
Binary files a/bin/utils/FileUtils.class and b/bin/utils/FileUtils.class differ
diff --git a/bin/utils/MD5.class b/bin/utils/MD5.class
index 0e17b15..64a5dae 100644
Binary files a/bin/utils/MD5.class and b/bin/utils/MD5.class differ
diff --git a/bin/wosqi/About$2.class b/bin/wosqi/About$2.class
index 688e57c..8c6ceda 100644
Binary files a/bin/wosqi/About$2.class and b/bin/wosqi/About$2.class differ
diff --git a/bin/wosqi/About$3.class b/bin/wosqi/About$3.class
index f16d685..0002198 100644
Binary files a/bin/wosqi/About$3.class and b/bin/wosqi/About$3.class differ
diff --git a/bin/wosqi/About$4.class b/bin/wosqi/About$4.class
index e7ca87d..1756e0a 100644
Binary files a/bin/wosqi/About$4.class and b/bin/wosqi/About$4.class differ
diff --git a/bin/wosqi/About$5.class b/bin/wosqi/About$5.class
index 6fdf9cd..9d6db5c 100644
Binary files a/bin/wosqi/About$5.class and b/bin/wosqi/About$5.class differ
diff --git a/bin/wosqi/About.class b/bin/wosqi/About.class
index acc5497..3a6abb1 100644
Binary files a/bin/wosqi/About.class and b/bin/wosqi/About.class differ
diff --git a/bin/wosqi/Bundle.properties b/bin/wosqi/Bundle.properties
index 9ee0f20..50aa7cd 100644
--- a/bin/wosqi/Bundle.properties
+++ b/bin/wosqi/Bundle.properties
@@ -4,7 +4,7 @@
MainView.name = WebOS Quick Install
MainView.id = WOSQI
MainView.title = WebOS Quick Install
-MainView.version = v4.7.0u
+MainView.version = v4.7.1u
MainView.vendor = Alexander Noyle
MainView.vendorId = NotAlexNoyle
MainView.homepage = https://github.com/NotAlexNoyle/WebOS-Quick-Install
@@ -114,7 +114,7 @@ InstalledPatchInfo.jLabel5.text=Description:
InstalledPatchInfo.jLabel11.text=Author:
About.closeButton.text=Close
About.jLabel5.text=Donate to support the original developer:
-About.appVersionLabel.text=Version v4.7.0u
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=Open Source under the Apache License 2.0
About.jLabel4.text=Copyright 2009-2014 Jason Robitaille.
About.jLabel7.text=Donate to support the new maintainer:
diff --git a/bin/wosqi/Bundle_de.properties b/bin/wosqi/Bundle_de.properties
index 0e97b95..61c0466 100644
--- a/bin/wosqi/Bundle_de.properties
+++ b/bin/wosqi/Bundle_de.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=Beschreibung:
InstalledPatchInfo.jLabel11.text=Author:
About.closeButton.text=Schlie\u00dfen
About.jLabel5.text=Unterst\u00fctzen Sie die Entwicklung
-About.appVersionLabel.text=Version 4.5.0
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=Deutsche \u00dcbersetzung von Tobias Kaller
About.jLabel4.text=Copyright \u00a9 2009-2013 Jason Robitaille. All rights reserved.
About.jLabel6.text=
Jason Robitaille and Canuck Coding are in no way affiliated with HP, LG or their affiliates. Palm, Pre, Pixi, Veer, TouchPad, and WebOS are among the trademarks owned by or licensed to Hewlett-Packard Development Company, L.P. www.hpwebos.com
diff --git a/bin/wosqi/Bundle_fr.properties b/bin/wosqi/Bundle_fr.properties
index 6e102ba..54bdf09 100644
--- a/bin/wosqi/Bundle_fr.properties
+++ b/bin/wosqi/Bundle_fr.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=Description:
InstalledPatchInfo.jLabel11.text=Auteur:
About.closeButton.text=Fermer
About.jLabel5.text=Aide de soutien au d\u00e9veloppement
-About.appVersionLabel.text=Version 4.5.0
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=La traduction de fran\u00e7ais a fait par Jake Morrison.
About.jLabel4.text=Copyright \u00a9 2009-2013 Jason Robitaille. Tous droits r\u00e9serv\u00e9s.
About.jLabel6.text=Jason Robitaille et Canuck Coding sont en aucun cas affili\u00e9 avec HP ou LG ou des sous filiales. Palm, Pre, Pixi, Veer, TouchPad, et WebOS sont des marques commerciales ou des marques d\u00e9pos\u00e9es appartenant \u00e0 ou sous licence de Hewlett-Packard www.hpwebos.com
diff --git a/bin/wosqi/Bundle_zh.properties b/bin/wosqi/Bundle_zh.properties
index 35ae9ef..a504222 100644
--- a/bin/wosqi/Bundle_zh.properties
+++ b/bin/wosqi/Bundle_zh.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=\u63cf\u8ff0:
InstalledPatchInfo.jLabel11.text=\u4f5c\u8005:
About.closeButton.text=\u5173\u95ed
About.jLabel5.text=\u5e2e\u52a9
-About.appVersionLabel.text=\u7248\u672c\u53f7 4.5.0
+About.appVersionLabel.text=\u7248\u672c\u53f7 v4.7.1u
About.jLabel2.text=\u7b80\u4f53\u4e2d\u6587\u7ffb\u8bd1:medigi8@twitter
About.jLabel4.text=\u7248\u6743\u5f52Jason Robitaille\u6240\u6709,\u76d7\u7248\u5fc5\u7a76.
About.jLabel6.text=\u6b64\u4e3a\u4e2a\u4eba\u4f5c\u54c1,\u4e0ePalm\u516c\u53f8\u65e0\u5173.Palm,Pre,Pixi,Veer,TouchPad\u548cWebOS\u6ce8\u518c\u5546\u6807\u5f52 Hewlett-Packard\u516c\u53f8\u6240\u6709.
diff --git a/bin/wosqi/DeviceManagement$1.class b/bin/wosqi/DeviceManagement$1.class
index 1f08e12..a5083e6 100644
Binary files a/bin/wosqi/DeviceManagement$1.class and b/bin/wosqi/DeviceManagement$1.class differ
diff --git a/bin/wosqi/DeviceManagement$10.class b/bin/wosqi/DeviceManagement$10.class
index 1867f2f..3868a35 100644
Binary files a/bin/wosqi/DeviceManagement$10.class and b/bin/wosqi/DeviceManagement$10.class differ
diff --git a/bin/wosqi/DeviceManagement$11.class b/bin/wosqi/DeviceManagement$11.class
index ca446f6..0f409d6 100644
Binary files a/bin/wosqi/DeviceManagement$11.class and b/bin/wosqi/DeviceManagement$11.class differ
diff --git a/bin/wosqi/DeviceManagement$2.class b/bin/wosqi/DeviceManagement$2.class
index c8e0cba..1fc2163 100644
Binary files a/bin/wosqi/DeviceManagement$2.class and b/bin/wosqi/DeviceManagement$2.class differ
diff --git a/bin/wosqi/DeviceManagement$3.class b/bin/wosqi/DeviceManagement$3.class
index 8836276..f4015b5 100644
Binary files a/bin/wosqi/DeviceManagement$3.class and b/bin/wosqi/DeviceManagement$3.class differ
diff --git a/bin/wosqi/DeviceManagement$4.class b/bin/wosqi/DeviceManagement$4.class
index 0bdb4e2..c4aed31 100644
Binary files a/bin/wosqi/DeviceManagement$4.class and b/bin/wosqi/DeviceManagement$4.class differ
diff --git a/bin/wosqi/DeviceManagement$5.class b/bin/wosqi/DeviceManagement$5.class
index 1803861..d15792c 100644
Binary files a/bin/wosqi/DeviceManagement$5.class and b/bin/wosqi/DeviceManagement$5.class differ
diff --git a/bin/wosqi/DeviceManagement$6.class b/bin/wosqi/DeviceManagement$6.class
index 06d86e3..2339bca 100644
Binary files a/bin/wosqi/DeviceManagement$6.class and b/bin/wosqi/DeviceManagement$6.class differ
diff --git a/bin/wosqi/DeviceManagement$7.class b/bin/wosqi/DeviceManagement$7.class
index 95cb939..380bc42 100644
Binary files a/bin/wosqi/DeviceManagement$7.class and b/bin/wosqi/DeviceManagement$7.class differ
diff --git a/bin/wosqi/DeviceManagement$8.class b/bin/wosqi/DeviceManagement$8.class
index 1903090..f0ea188 100644
Binary files a/bin/wosqi/DeviceManagement$8.class and b/bin/wosqi/DeviceManagement$8.class differ
diff --git a/bin/wosqi/DeviceManagement$9.class b/bin/wosqi/DeviceManagement$9.class
index 881b674..8d5cef8 100644
Binary files a/bin/wosqi/DeviceManagement$9.class and b/bin/wosqi/DeviceManagement$9.class differ
diff --git a/bin/wosqi/DeviceManagement$DoDeleteApps.class b/bin/wosqi/DeviceManagement$DoDeleteApps.class
index 8dd6463..1b0d8ca 100644
Binary files a/bin/wosqi/DeviceManagement$DoDeleteApps.class and b/bin/wosqi/DeviceManagement$DoDeleteApps.class differ
diff --git a/bin/wosqi/DeviceManagement$DoDispose.class b/bin/wosqi/DeviceManagement$DoDispose.class
index 17bf19a..a9d724c 100644
Binary files a/bin/wosqi/DeviceManagement$DoDispose.class and b/bin/wosqi/DeviceManagement$DoDispose.class differ
diff --git a/bin/wosqi/DeviceManagement$DoLoadDetails.class b/bin/wosqi/DeviceManagement$DoLoadDetails.class
index 9fa0568..40ac09e 100644
Binary files a/bin/wosqi/DeviceManagement$DoLoadDetails.class and b/bin/wosqi/DeviceManagement$DoLoadDetails.class differ
diff --git a/bin/wosqi/DeviceManagement$DoLoadPackages.class b/bin/wosqi/DeviceManagement$DoLoadPackages.class
index cd7f813..cfcd8bb 100644
Binary files a/bin/wosqi/DeviceManagement$DoLoadPackages.class and b/bin/wosqi/DeviceManagement$DoLoadPackages.class differ
diff --git a/bin/wosqi/DeviceManagement.class b/bin/wosqi/DeviceManagement.class
index 79ac401..06663ff 100644
Binary files a/bin/wosqi/DeviceManagement.class and b/bin/wosqi/DeviceManagement.class differ
diff --git a/bin/wosqi/DeviceManagement.form b/bin/wosqi/DeviceManagement.form
deleted file mode 100644
index daf1555..0000000
--- a/bin/wosqi/DeviceManagement.form
+++ /dev/null
@@ -1,372 +0,0 @@
-
-
-
diff --git a/bin/wosqi/FeedLoader$1.class b/bin/wosqi/FeedLoader$1.class
index 5ec06f3..38ca2db 100644
Binary files a/bin/wosqi/FeedLoader$1.class and b/bin/wosqi/FeedLoader$1.class differ
diff --git a/bin/wosqi/FeedLoader$DoDispose.class b/bin/wosqi/FeedLoader$DoDispose.class
index 38c0abd..56122ea 100644
Binary files a/bin/wosqi/FeedLoader$DoDispose.class and b/bin/wosqi/FeedLoader$DoDispose.class differ
diff --git a/bin/wosqi/FeedLoader$DoLoad.class b/bin/wosqi/FeedLoader$DoLoad.class
index ffcc474..d25ba78 100644
Binary files a/bin/wosqi/FeedLoader$DoLoad.class and b/bin/wosqi/FeedLoader$DoLoad.class differ
diff --git a/bin/wosqi/FeedLoader.class b/bin/wosqi/FeedLoader.class
index 2bc031b..65a52c6 100644
Binary files a/bin/wosqi/FeedLoader.class and b/bin/wosqi/FeedLoader.class differ
diff --git a/bin/wosqi/FeedLoader.form b/bin/wosqi/FeedLoader.form
deleted file mode 100644
index b625adf..0000000
--- a/bin/wosqi/FeedLoader.form
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
diff --git a/bin/wosqi/FeedViewer$1.class b/bin/wosqi/FeedViewer$1.class
index 09e43f7..f389ca3 100644
Binary files a/bin/wosqi/FeedViewer$1.class and b/bin/wosqi/FeedViewer$1.class differ
diff --git a/bin/wosqi/FeedViewer$10.class b/bin/wosqi/FeedViewer$10.class
index d68f101..b406ded 100644
Binary files a/bin/wosqi/FeedViewer$10.class and b/bin/wosqi/FeedViewer$10.class differ
diff --git a/bin/wosqi/FeedViewer$11.class b/bin/wosqi/FeedViewer$11.class
index fcf1735..5333ae3 100644
Binary files a/bin/wosqi/FeedViewer$11.class and b/bin/wosqi/FeedViewer$11.class differ
diff --git a/bin/wosqi/FeedViewer$12.class b/bin/wosqi/FeedViewer$12.class
index 10e302d..84c17c6 100644
Binary files a/bin/wosqi/FeedViewer$12.class and b/bin/wosqi/FeedViewer$12.class differ
diff --git a/bin/wosqi/FeedViewer$13.class b/bin/wosqi/FeedViewer$13.class
index 8a44e4d..e067410 100644
Binary files a/bin/wosqi/FeedViewer$13.class and b/bin/wosqi/FeedViewer$13.class differ
diff --git a/bin/wosqi/FeedViewer$14.class b/bin/wosqi/FeedViewer$14.class
index ada1fc3..1348721 100644
Binary files a/bin/wosqi/FeedViewer$14.class and b/bin/wosqi/FeedViewer$14.class differ
diff --git a/bin/wosqi/FeedViewer$15.class b/bin/wosqi/FeedViewer$15.class
index 5689894..63d20f5 100644
Binary files a/bin/wosqi/FeedViewer$15.class and b/bin/wosqi/FeedViewer$15.class differ
diff --git a/bin/wosqi/FeedViewer$16.class b/bin/wosqi/FeedViewer$16.class
index 7e453fe..bbebd83 100644
Binary files a/bin/wosqi/FeedViewer$16.class and b/bin/wosqi/FeedViewer$16.class differ
diff --git a/bin/wosqi/FeedViewer$17.class b/bin/wosqi/FeedViewer$17.class
index 2288653..92c496b 100644
Binary files a/bin/wosqi/FeedViewer$17.class and b/bin/wosqi/FeedViewer$17.class differ
diff --git a/bin/wosqi/FeedViewer$18.class b/bin/wosqi/FeedViewer$18.class
index dfae27b..2c9ff50 100644
Binary files a/bin/wosqi/FeedViewer$18.class and b/bin/wosqi/FeedViewer$18.class differ
diff --git a/bin/wosqi/FeedViewer$19.class b/bin/wosqi/FeedViewer$19.class
index 52cd829..07bf1ca 100644
Binary files a/bin/wosqi/FeedViewer$19.class and b/bin/wosqi/FeedViewer$19.class differ
diff --git a/bin/wosqi/FeedViewer$2.class b/bin/wosqi/FeedViewer$2.class
index 31de11f..4c2e015 100644
Binary files a/bin/wosqi/FeedViewer$2.class and b/bin/wosqi/FeedViewer$2.class differ
diff --git a/bin/wosqi/FeedViewer$20.class b/bin/wosqi/FeedViewer$20.class
index 8f13383..f14fe61 100644
Binary files a/bin/wosqi/FeedViewer$20.class and b/bin/wosqi/FeedViewer$20.class differ
diff --git a/bin/wosqi/FeedViewer$21.class b/bin/wosqi/FeedViewer$21.class
index 0241891..020e33e 100644
Binary files a/bin/wosqi/FeedViewer$21.class and b/bin/wosqi/FeedViewer$21.class differ
diff --git a/bin/wosqi/FeedViewer$22.class b/bin/wosqi/FeedViewer$22.class
index 8155e31..0f5bdfa 100644
Binary files a/bin/wosqi/FeedViewer$22.class and b/bin/wosqi/FeedViewer$22.class differ
diff --git a/bin/wosqi/FeedViewer$23.class b/bin/wosqi/FeedViewer$23.class
index 2f3258a..0b8160e 100644
Binary files a/bin/wosqi/FeedViewer$23.class and b/bin/wosqi/FeedViewer$23.class differ
diff --git a/bin/wosqi/FeedViewer$24.class b/bin/wosqi/FeedViewer$24.class
index 94995c5..79cf36f 100644
Binary files a/bin/wosqi/FeedViewer$24.class and b/bin/wosqi/FeedViewer$24.class differ
diff --git a/bin/wosqi/FeedViewer$25.class b/bin/wosqi/FeedViewer$25.class
index 87debe7..e8b274d 100644
Binary files a/bin/wosqi/FeedViewer$25.class and b/bin/wosqi/FeedViewer$25.class differ
diff --git a/bin/wosqi/FeedViewer$26.class b/bin/wosqi/FeedViewer$26.class
index d2826dd..80975de 100644
Binary files a/bin/wosqi/FeedViewer$26.class and b/bin/wosqi/FeedViewer$26.class differ
diff --git a/bin/wosqi/FeedViewer$27.class b/bin/wosqi/FeedViewer$27.class
index 0ad095b..e538b53 100644
Binary files a/bin/wosqi/FeedViewer$27.class and b/bin/wosqi/FeedViewer$27.class differ
diff --git a/bin/wosqi/FeedViewer$28.class b/bin/wosqi/FeedViewer$28.class
index 856ec91..bff6349 100644
Binary files a/bin/wosqi/FeedViewer$28.class and b/bin/wosqi/FeedViewer$28.class differ
diff --git a/bin/wosqi/FeedViewer$29.class b/bin/wosqi/FeedViewer$29.class
index ee37398..f31fad1 100644
Binary files a/bin/wosqi/FeedViewer$29.class and b/bin/wosqi/FeedViewer$29.class differ
diff --git a/bin/wosqi/FeedViewer$3.class b/bin/wosqi/FeedViewer$3.class
index 4f59192..f8ae98f 100644
Binary files a/bin/wosqi/FeedViewer$3.class and b/bin/wosqi/FeedViewer$3.class differ
diff --git a/bin/wosqi/FeedViewer$30.class b/bin/wosqi/FeedViewer$30.class
index a2da253..d28a1cd 100644
Binary files a/bin/wosqi/FeedViewer$30.class and b/bin/wosqi/FeedViewer$30.class differ
diff --git a/bin/wosqi/FeedViewer$31.class b/bin/wosqi/FeedViewer$31.class
index 5f194f5..e38f66a 100644
Binary files a/bin/wosqi/FeedViewer$31.class and b/bin/wosqi/FeedViewer$31.class differ
diff --git a/bin/wosqi/FeedViewer$32.class b/bin/wosqi/FeedViewer$32.class
index 32017d7..26e473a 100644
Binary files a/bin/wosqi/FeedViewer$32.class and b/bin/wosqi/FeedViewer$32.class differ
diff --git a/bin/wosqi/FeedViewer$33.class b/bin/wosqi/FeedViewer$33.class
index 6b683e9..bbbfdeb 100644
Binary files a/bin/wosqi/FeedViewer$33.class and b/bin/wosqi/FeedViewer$33.class differ
diff --git a/bin/wosqi/FeedViewer$34.class b/bin/wosqi/FeedViewer$34.class
index b0afe07..cb95097 100644
Binary files a/bin/wosqi/FeedViewer$34.class and b/bin/wosqi/FeedViewer$34.class differ
diff --git a/bin/wosqi/FeedViewer$35.class b/bin/wosqi/FeedViewer$35.class
index 6569976..3d704a2 100644
Binary files a/bin/wosqi/FeedViewer$35.class and b/bin/wosqi/FeedViewer$35.class differ
diff --git a/bin/wosqi/FeedViewer$36.class b/bin/wosqi/FeedViewer$36.class
index 9eef4c3..a8c90db 100644
Binary files a/bin/wosqi/FeedViewer$36.class and b/bin/wosqi/FeedViewer$36.class differ
diff --git a/bin/wosqi/FeedViewer$37.class b/bin/wosqi/FeedViewer$37.class
index dda7707..f413dca 100644
Binary files a/bin/wosqi/FeedViewer$37.class and b/bin/wosqi/FeedViewer$37.class differ
diff --git a/bin/wosqi/FeedViewer$38.class b/bin/wosqi/FeedViewer$38.class
index ceb3861..cd4e0a7 100644
Binary files a/bin/wosqi/FeedViewer$38.class and b/bin/wosqi/FeedViewer$38.class differ
diff --git a/bin/wosqi/FeedViewer$39.class b/bin/wosqi/FeedViewer$39.class
index e3cee02..d3c3c0f 100644
Binary files a/bin/wosqi/FeedViewer$39.class and b/bin/wosqi/FeedViewer$39.class differ
diff --git a/bin/wosqi/FeedViewer$4.class b/bin/wosqi/FeedViewer$4.class
index 24b8eab..dfae073 100644
Binary files a/bin/wosqi/FeedViewer$4.class and b/bin/wosqi/FeedViewer$4.class differ
diff --git a/bin/wosqi/FeedViewer$40.class b/bin/wosqi/FeedViewer$40.class
index 2b133b1..b941c31 100644
Binary files a/bin/wosqi/FeedViewer$40.class and b/bin/wosqi/FeedViewer$40.class differ
diff --git a/bin/wosqi/FeedViewer$41.class b/bin/wosqi/FeedViewer$41.class
index 8814564..101f4d5 100644
Binary files a/bin/wosqi/FeedViewer$41.class and b/bin/wosqi/FeedViewer$41.class differ
diff --git a/bin/wosqi/FeedViewer$42.class b/bin/wosqi/FeedViewer$42.class
index 5f64258..cb4af8e 100644
Binary files a/bin/wosqi/FeedViewer$42.class and b/bin/wosqi/FeedViewer$42.class differ
diff --git a/bin/wosqi/FeedViewer$43.class b/bin/wosqi/FeedViewer$43.class
index 656b50b..0d4bd88 100644
Binary files a/bin/wosqi/FeedViewer$43.class and b/bin/wosqi/FeedViewer$43.class differ
diff --git a/bin/wosqi/FeedViewer$44.class b/bin/wosqi/FeedViewer$44.class
index 8ace959..a2f864e 100644
Binary files a/bin/wosqi/FeedViewer$44.class and b/bin/wosqi/FeedViewer$44.class differ
diff --git a/bin/wosqi/FeedViewer$45.class b/bin/wosqi/FeedViewer$45.class
index b9db7aa..645881d 100644
Binary files a/bin/wosqi/FeedViewer$45.class and b/bin/wosqi/FeedViewer$45.class differ
diff --git a/bin/wosqi/FeedViewer$46.class b/bin/wosqi/FeedViewer$46.class
index ae783a4..bbacff5 100644
Binary files a/bin/wosqi/FeedViewer$46.class and b/bin/wosqi/FeedViewer$46.class differ
diff --git a/bin/wosqi/FeedViewer$47.class b/bin/wosqi/FeedViewer$47.class
index 5bb0c14..74d85b6 100644
Binary files a/bin/wosqi/FeedViewer$47.class and b/bin/wosqi/FeedViewer$47.class differ
diff --git a/bin/wosqi/FeedViewer$48.class b/bin/wosqi/FeedViewer$48.class
index 2035efa..9eb0517 100644
Binary files a/bin/wosqi/FeedViewer$48.class and b/bin/wosqi/FeedViewer$48.class differ
diff --git a/bin/wosqi/FeedViewer$49.class b/bin/wosqi/FeedViewer$49.class
index 15bd44e..2f76021 100644
Binary files a/bin/wosqi/FeedViewer$49.class and b/bin/wosqi/FeedViewer$49.class differ
diff --git a/bin/wosqi/FeedViewer$5.class b/bin/wosqi/FeedViewer$5.class
index 9d154b2..b6a2ce4 100644
Binary files a/bin/wosqi/FeedViewer$5.class and b/bin/wosqi/FeedViewer$5.class differ
diff --git a/bin/wosqi/FeedViewer$50.class b/bin/wosqi/FeedViewer$50.class
index 88ba50a..8f40861 100644
Binary files a/bin/wosqi/FeedViewer$50.class and b/bin/wosqi/FeedViewer$50.class differ
diff --git a/bin/wosqi/FeedViewer$51.class b/bin/wosqi/FeedViewer$51.class
index 2c3a8a9..0f62c78 100644
Binary files a/bin/wosqi/FeedViewer$51.class and b/bin/wosqi/FeedViewer$51.class differ
diff --git a/bin/wosqi/FeedViewer$52.class b/bin/wosqi/FeedViewer$52.class
index 77e408e..ac5d4b5 100644
Binary files a/bin/wosqi/FeedViewer$52.class and b/bin/wosqi/FeedViewer$52.class differ
diff --git a/bin/wosqi/FeedViewer$53.class b/bin/wosqi/FeedViewer$53.class
index 168beb8..85ac90e 100644
Binary files a/bin/wosqi/FeedViewer$53.class and b/bin/wosqi/FeedViewer$53.class differ
diff --git a/bin/wosqi/FeedViewer$54.class b/bin/wosqi/FeedViewer$54.class
index e0aeb35..6fbe2b8 100644
Binary files a/bin/wosqi/FeedViewer$54.class and b/bin/wosqi/FeedViewer$54.class differ
diff --git a/bin/wosqi/FeedViewer$55.class b/bin/wosqi/FeedViewer$55.class
index 85bd2a8..45254ff 100644
Binary files a/bin/wosqi/FeedViewer$55.class and b/bin/wosqi/FeedViewer$55.class differ
diff --git a/bin/wosqi/FeedViewer$56.class b/bin/wosqi/FeedViewer$56.class
index c96f020..29f384c 100644
Binary files a/bin/wosqi/FeedViewer$56.class and b/bin/wosqi/FeedViewer$56.class differ
diff --git a/bin/wosqi/FeedViewer$57.class b/bin/wosqi/FeedViewer$57.class
index a1cccdc..59c3f4c 100644
Binary files a/bin/wosqi/FeedViewer$57.class and b/bin/wosqi/FeedViewer$57.class differ
diff --git a/bin/wosqi/FeedViewer$58.class b/bin/wosqi/FeedViewer$58.class
index 72ef2b6..994ccce 100644
Binary files a/bin/wosqi/FeedViewer$58.class and b/bin/wosqi/FeedViewer$58.class differ
diff --git a/bin/wosqi/FeedViewer$59.class b/bin/wosqi/FeedViewer$59.class
index 429c233..fe684b1 100644
Binary files a/bin/wosqi/FeedViewer$59.class and b/bin/wosqi/FeedViewer$59.class differ
diff --git a/bin/wosqi/FeedViewer$6.class b/bin/wosqi/FeedViewer$6.class
index 93c05b7..bd41c8d 100644
Binary files a/bin/wosqi/FeedViewer$6.class and b/bin/wosqi/FeedViewer$6.class differ
diff --git a/bin/wosqi/FeedViewer$60.class b/bin/wosqi/FeedViewer$60.class
index c27a49b..ac4f4fd 100644
Binary files a/bin/wosqi/FeedViewer$60.class and b/bin/wosqi/FeedViewer$60.class differ
diff --git a/bin/wosqi/FeedViewer$61.class b/bin/wosqi/FeedViewer$61.class
index 70b4146..8f2a554 100644
Binary files a/bin/wosqi/FeedViewer$61.class and b/bin/wosqi/FeedViewer$61.class differ
diff --git a/bin/wosqi/FeedViewer$62.class b/bin/wosqi/FeedViewer$62.class
index 09a72e8..656063f 100644
Binary files a/bin/wosqi/FeedViewer$62.class and b/bin/wosqi/FeedViewer$62.class differ
diff --git a/bin/wosqi/FeedViewer$63.class b/bin/wosqi/FeedViewer$63.class
index 33846ce..245dda2 100644
Binary files a/bin/wosqi/FeedViewer$63.class and b/bin/wosqi/FeedViewer$63.class differ
diff --git a/bin/wosqi/FeedViewer$7.class b/bin/wosqi/FeedViewer$7.class
index ce294a5..6d89ea2 100644
Binary files a/bin/wosqi/FeedViewer$7.class and b/bin/wosqi/FeedViewer$7.class differ
diff --git a/bin/wosqi/FeedViewer$8.class b/bin/wosqi/FeedViewer$8.class
index 02def4c..5e8737b 100644
Binary files a/bin/wosqi/FeedViewer$8.class and b/bin/wosqi/FeedViewer$8.class differ
diff --git a/bin/wosqi/FeedViewer$9.class b/bin/wosqi/FeedViewer$9.class
index 33e3a17..23ed8dd 100644
Binary files a/bin/wosqi/FeedViewer$9.class and b/bin/wosqi/FeedViewer$9.class differ
diff --git a/bin/wosqi/FeedViewer$DoDispose.class b/bin/wosqi/FeedViewer$DoDispose.class
index fe050af..16ffe8c 100644
Binary files a/bin/wosqi/FeedViewer$DoDispose.class and b/bin/wosqi/FeedViewer$DoDispose.class differ
diff --git a/bin/wosqi/FeedViewer$DoLoad.class b/bin/wosqi/FeedViewer$DoLoad.class
index 3866985..c078a1c 100644
Binary files a/bin/wosqi/FeedViewer$DoLoad.class and b/bin/wosqi/FeedViewer$DoLoad.class differ
diff --git a/bin/wosqi/FeedViewer$DoSecondaryLoad.class b/bin/wosqi/FeedViewer$DoSecondaryLoad.class
index 713e758..d0be9d6 100644
Binary files a/bin/wosqi/FeedViewer$DoSecondaryLoad.class and b/bin/wosqi/FeedViewer$DoSecondaryLoad.class differ
diff --git a/bin/wosqi/FeedViewer$ImageLayeredPane.class b/bin/wosqi/FeedViewer$ImageLayeredPane.class
index 1fda137..5f6683e 100644
Binary files a/bin/wosqi/FeedViewer$ImageLayeredPane.class and b/bin/wosqi/FeedViewer$ImageLayeredPane.class differ
diff --git a/bin/wosqi/FeedViewer.class b/bin/wosqi/FeedViewer.class
index ea37884..ee56942 100644
Binary files a/bin/wosqi/FeedViewer.class and b/bin/wosqi/FeedViewer.class differ
diff --git a/bin/wosqi/FeedViewer.form b/bin/wosqi/FeedViewer.form
deleted file mode 100644
index adc2d06..0000000
--- a/bin/wosqi/FeedViewer.form
+++ /dev/null
@@ -1,3658 +0,0 @@
-
-
-
diff --git a/bin/wosqi/InstalledPatchInfo.form b/bin/wosqi/InstalledPatchInfo.form
deleted file mode 100644
index 9a7b2be..0000000
--- a/bin/wosqi/InstalledPatchInfo.form
+++ /dev/null
@@ -1,332 +0,0 @@
-
-
-
diff --git a/bin/wosqi/InstalledPkgInfo.form b/bin/wosqi/InstalledPkgInfo.form
deleted file mode 100644
index 53d00f4..0000000
--- a/bin/wosqi/InstalledPkgInfo.form
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-
diff --git a/bin/wosqi/Installer.form b/bin/wosqi/Installer.form
deleted file mode 100644
index d263b74..0000000
--- a/bin/wosqi/Installer.form
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
diff --git a/bin/wosqi/MainView$1.class b/bin/wosqi/MainView$1.class
index 8a829b0..647365f 100644
Binary files a/bin/wosqi/MainView$1.class and b/bin/wosqi/MainView$1.class differ
diff --git a/bin/wosqi/MainView$10.class b/bin/wosqi/MainView$10.class
index 5248ee5..7644d88 100644
Binary files a/bin/wosqi/MainView$10.class and b/bin/wosqi/MainView$10.class differ
diff --git a/bin/wosqi/MainView$11.class b/bin/wosqi/MainView$11.class
index b6c8ecc..cfd6f15 100644
Binary files a/bin/wosqi/MainView$11.class and b/bin/wosqi/MainView$11.class differ
diff --git a/bin/wosqi/MainView$12.class b/bin/wosqi/MainView$12.class
index 2078d68..93f4854 100644
Binary files a/bin/wosqi/MainView$12.class and b/bin/wosqi/MainView$12.class differ
diff --git a/bin/wosqi/MainView$13.class b/bin/wosqi/MainView$13.class
index 71fbcd5..d48c4ac 100644
Binary files a/bin/wosqi/MainView$13.class and b/bin/wosqi/MainView$13.class differ
diff --git a/bin/wosqi/MainView$14.class b/bin/wosqi/MainView$14.class
index fafe5c6..d681df4 100644
Binary files a/bin/wosqi/MainView$14.class and b/bin/wosqi/MainView$14.class differ
diff --git a/bin/wosqi/MainView$15.class b/bin/wosqi/MainView$15.class
index 48627aa..0c2f89a 100644
Binary files a/bin/wosqi/MainView$15.class and b/bin/wosqi/MainView$15.class differ
diff --git a/bin/wosqi/MainView$16.class b/bin/wosqi/MainView$16.class
index 2ff6930..9a1ddd3 100644
Binary files a/bin/wosqi/MainView$16.class and b/bin/wosqi/MainView$16.class differ
diff --git a/bin/wosqi/MainView$17.class b/bin/wosqi/MainView$17.class
index 0d7a8e7..8b04b97 100644
Binary files a/bin/wosqi/MainView$17.class and b/bin/wosqi/MainView$17.class differ
diff --git a/bin/wosqi/MainView$18.class b/bin/wosqi/MainView$18.class
index 650d5ca..534a581 100644
Binary files a/bin/wosqi/MainView$18.class and b/bin/wosqi/MainView$18.class differ
diff --git a/bin/wosqi/MainView$19.class b/bin/wosqi/MainView$19.class
index c1734d4..352d6b2 100644
Binary files a/bin/wosqi/MainView$19.class and b/bin/wosqi/MainView$19.class differ
diff --git a/bin/wosqi/MainView$2.class b/bin/wosqi/MainView$2.class
index c747ed8..8850483 100644
Binary files a/bin/wosqi/MainView$2.class and b/bin/wosqi/MainView$2.class differ
diff --git a/bin/wosqi/MainView$20.class b/bin/wosqi/MainView$20.class
index 581d7f6..f15c8bc 100644
Binary files a/bin/wosqi/MainView$20.class and b/bin/wosqi/MainView$20.class differ
diff --git a/bin/wosqi/MainView$3.class b/bin/wosqi/MainView$3.class
index fb1aae3..fc4ab44 100644
Binary files a/bin/wosqi/MainView$3.class and b/bin/wosqi/MainView$3.class differ
diff --git a/bin/wosqi/MainView$4.class b/bin/wosqi/MainView$4.class
index 42628c5..eb76b12 100644
Binary files a/bin/wosqi/MainView$4.class and b/bin/wosqi/MainView$4.class differ
diff --git a/bin/wosqi/MainView$5.class b/bin/wosqi/MainView$5.class
index ff46129..e2a7e74 100644
Binary files a/bin/wosqi/MainView$5.class and b/bin/wosqi/MainView$5.class differ
diff --git a/bin/wosqi/MainView$6.class b/bin/wosqi/MainView$6.class
index 5bf487b..131fa05 100644
Binary files a/bin/wosqi/MainView$6.class and b/bin/wosqi/MainView$6.class differ
diff --git a/bin/wosqi/MainView$7.class b/bin/wosqi/MainView$7.class
index 06f92df..ccfd22f 100644
Binary files a/bin/wosqi/MainView$7.class and b/bin/wosqi/MainView$7.class differ
diff --git a/bin/wosqi/MainView$8.class b/bin/wosqi/MainView$8.class
index ea81e62..6814137 100644
Binary files a/bin/wosqi/MainView$8.class and b/bin/wosqi/MainView$8.class differ
diff --git a/bin/wosqi/MainView$9.class b/bin/wosqi/MainView$9.class
index d78103f..98f189c 100644
Binary files a/bin/wosqi/MainView$9.class and b/bin/wosqi/MainView$9.class differ
diff --git a/bin/wosqi/MainView$CheckConnection.class b/bin/wosqi/MainView$CheckConnection.class
index 9e23703..33e8cc1 100644
Binary files a/bin/wosqi/MainView$CheckConnection.class and b/bin/wosqi/MainView$CheckConnection.class differ
diff --git a/bin/wosqi/MainView$DoInstallDrivers.class b/bin/wosqi/MainView$DoInstallDrivers.class
index f0e9f4d..92f83b6 100644
Binary files a/bin/wosqi/MainView$DoInstallDrivers.class and b/bin/wosqi/MainView$DoInstallDrivers.class differ
diff --git a/bin/wosqi/MainView$DoctorChooseFilter.class b/bin/wosqi/MainView$DoctorChooseFilter.class
index 1861e10..e102a73 100644
Binary files a/bin/wosqi/MainView$DoctorChooseFilter.class and b/bin/wosqi/MainView$DoctorChooseFilter.class differ
diff --git a/bin/wosqi/MainView$FirstCheckConnection.class b/bin/wosqi/MainView$FirstCheckConnection.class
index 4f64d8e..1a8a7c2 100644
Binary files a/bin/wosqi/MainView$FirstCheckConnection.class and b/bin/wosqi/MainView$FirstCheckConnection.class differ
diff --git a/bin/wosqi/MainView$ImagePanel.class b/bin/wosqi/MainView$ImagePanel.class
index c184e3b..8313759 100644
Binary files a/bin/wosqi/MainView$ImagePanel.class and b/bin/wosqi/MainView$ImagePanel.class differ
diff --git a/bin/wosqi/MainView$WebOSChooseFilter.class b/bin/wosqi/MainView$WebOSChooseFilter.class
index 8551bd0..4bfa4df 100644
Binary files a/bin/wosqi/MainView$WebOSChooseFilter.class and b/bin/wosqi/MainView$WebOSChooseFilter.class differ
diff --git a/bin/wosqi/MainView$WebOSFileFilter.class b/bin/wosqi/MainView$WebOSFileFilter.class
index 51fbceb..f37a125 100644
Binary files a/bin/wosqi/MainView$WebOSFileFilter.class and b/bin/wosqi/MainView$WebOSFileFilter.class differ
diff --git a/bin/wosqi/MainView.class b/bin/wosqi/MainView.class
index 9e7f09a..6bd3df3 100644
Binary files a/bin/wosqi/MainView.class and b/bin/wosqi/MainView.class differ
diff --git a/bin/wosqi/MainView.form b/bin/wosqi/MainView.form
deleted file mode 100644
index 16d602c..0000000
--- a/bin/wosqi/MainView.form
+++ /dev/null
@@ -1,545 +0,0 @@
-
-
-
diff --git a/bin/wosqi/ReceiveFile.form b/bin/wosqi/ReceiveFile.form
deleted file mode 100644
index 241c5a2..0000000
--- a/bin/wosqi/ReceiveFile.form
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
diff --git a/bin/wosqi/SendFile.form b/bin/wosqi/SendFile.form
deleted file mode 100644
index 0f9c034..0000000
--- a/bin/wosqi/SendFile.form
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
diff --git a/bin/wosqi/Settings.form b/bin/wosqi/Settings.form
deleted file mode 100644
index 5b67bcb..0000000
--- a/bin/wosqi/Settings.form
+++ /dev/null
@@ -1,352 +0,0 @@
-
-
-
diff --git a/bin/wosqi/Usage.form b/bin/wosqi/Usage.form
deleted file mode 100644
index 0d37963..0000000
--- a/bin/wosqi/Usage.form
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
diff --git a/bin/wosqi/WebOSQuickInstallApp$1.class b/bin/wosqi/WebOSQuickInstallApp$1.class
index ac21631..e4dde56 100644
Binary files a/bin/wosqi/WebOSQuickInstallApp$1.class and b/bin/wosqi/WebOSQuickInstallApp$1.class differ
diff --git a/bin/wosqi/WebOSQuickInstallApp.class b/bin/wosqi/WebOSQuickInstallApp.class
index 772cb4c..bc07e19 100644
Binary files a/bin/wosqi/WebOSQuickInstallApp.class and b/bin/wosqi/WebOSQuickInstallApp.class differ
diff --git a/src/ipkg/PackageEntry.java b/src/ipkg/PackageEntry.java
index 2f8d8e9..5088dce 100644
--- a/src/ipkg/PackageEntry.java
+++ b/src/ipkg/PackageEntry.java
@@ -9,8 +9,10 @@ import org.json.JSONObject;
/**
* @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public class PackageEntry {
+
public String name;
public String id;
public String version;
@@ -23,6 +25,7 @@ public class PackageEntry {
public String file;
public PackageEntry() {
+
name = null;
id = null;
version = null;
@@ -33,107 +36,187 @@ public class PackageEntry {
depends = null;
arch = null;
file = null;
+
}
public boolean newerThan(PackageEntry app) {
+
return isGreaterVersionThan(app.version);
+
}
public boolean isUpdate(InstalledEntry app) {
+
return isGreaterVersionThan(app.getVersion());
+
}
private boolean isGreaterVersionThan(String otherVersion) {
+
boolean result = false;
Pattern p = Pattern.compile("[.-]");
String[] self = p.split(version);
String[] other = p.split(otherVersion);
- for(int i=0; i otherVal) {
+
result = true;
break;
- } else if (selfVal < otherVal) {
+
+ }
+ else if (selfVal < otherVal) {
+
result = false;
break;
+
}
- if(self.length-1==i && other.length-1>i) {
- otherVal = Integer.parseInt(other[i+1]);
- if(otherVal>=0) {
+ if(self.length - 1 == i && other.length - 1 > i) {
+
+ otherVal = Integer.parseInt(other[i + 1]);
+ if(otherVal >= 0) {
+
result = false;
- } else {
- result = true;
+
}
+ else {
+
+ result = true;
+
+ }
+
break;
+
}
- if(other.length-1==i && self.length-1>i) {
- selfVal = Integer.parseInt(self[i+1]);
- if(selfVal>0) {
+ if(other.length - 1 == i && self.length - 1 > i) {
+
+ selfVal = Integer.parseInt(self[i + 1]);
+ if(selfVal > 0) {
+
result = true;
- } else {
- result = false;
+
}
+ else {
+
+ result = false;
+
+ }
+
result = true;
break;
+
}
+
}
+
return result;
+
}
public String getDownloadUrl() {
+
String url = null;
OnlineFile online;
- if(source!=null) {
+ if(source != null) {
+
if(source.has("Location")) {
+
try {
+
online = new OnlineFile(source.getString("Location"));
+
if(online.exists()) {
+
url = online.toString();
+
+
}
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: OnlineFile requested not found.");
+
+ }
+
}
+
}
- if((url==null) && (file!=null)) {
+
+ if((url == null) && (file != null)) {
+
online = new OnlineFile(file);
if(online.exists()) {
+
url = online.toString();
- } else {
- url = null;
+
}
+ else {
+
+ url = null;
+
+ }
+
}
+
return url;
+
}
public String getFormattedDate() {
+
String result = null;
- if(source!=null) {
+ if(source != null) {
+
if(source.has("LastUpdated")) {
+
try {
- Date d = new Date(Long.parseLong(source
- .getString("LastUpdated"))*1000);
+
+ Date d = new Date(Long.parseLong(source.getString("LastUpdated")) * 1000);
result = DateFormat.getDateTimeInstance().format(d);
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Date format invalid.");
+
+ }
+
}
+
}
+
return result;
+
}
@Override
public String toString() {
+
return name;
+
}
@Override
public boolean equals(Object o) {
+
boolean result = false;
if(o instanceof String) {
+
String currId = (String) o;
result = currId.equals(id);
- } else if(o instanceof PackageEntry) {
+
+ }
+ else if(o instanceof PackageEntry) {
+
PackageEntry pkgCurr = (PackageEntry) o;
result = pkgCurr.id.equals(id);
+
}
+
return result;
+
}
+
}
diff --git a/src/ipkg/PackageFeed.java b/src/ipkg/PackageFeed.java
index d34f580..4326689 100644
--- a/src/ipkg/PackageFeed.java
+++ b/src/ipkg/PackageFeed.java
@@ -9,123 +9,230 @@ import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import org.json.JSONObject;
+/**
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
+ */
public class PackageFeed {
+
public ArrayList packages;
private File feed;
private String urlBase;
- public PackageFeed(File f, String base){
+ public PackageFeed(File f, String base) {
+
feed = f;
urlBase = base;
packages = new ArrayList(0);
scan();
+
}
private void scan() {
+
BufferedReader input = null;
packages.clear();
try {
+
if(feed.getName().toLowerCase().endsWith(".gz")) {
- input = new BufferedReader(new InputStreamReader(
- new GZIPInputStream(new FileInputStream(feed)), "UTF-8"));
- } else {
- input = new BufferedReader(new InputStreamReader(
- new FileInputStream(feed), "UTF-8"));
+
+ input = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(feed)), "UTF-8"));
+
}
- } catch(Exception e) {
+ else {
+
+ input = new BufferedReader(new InputStreamReader(new FileInputStream(feed), "UTF-8"));
+
+ }
+
+ }
+ catch(Exception e) {
+
System.err.println("Error opening package list " + feed.getAbsolutePath());
input = null;
+
}
- if(input!=null) {
+
+ if(input != null) {
+
try {
+
String line = input.readLine();
- while(line!=null) {
+ while(line != null) {
+
PackageEntry curr = new PackageEntry();
line = line.trim();
- while(!line.equals("")) {
- if(!line.endsWith(":")) {
+ while(! line.equals("")) {
+
+ if(! line.endsWith(":")) {
+
if(line.startsWith("Package")) {
- curr.id = line.substring(line.indexOf(":")+1).trim();
- } else if(line.startsWith("Description")){
- curr.name =line.substring(line.indexOf(":")+1).trim();
- } else if(line.startsWith("Version")){
- curr.version = line.substring(line.indexOf(":")+1).trim();
- } else if(line.startsWith("Depends")) {
- curr.depends = line.substring(line.indexOf(":")+1).split(",");
- for(int i=0; i", "").trim();
- } else if(line.startsWith("Size")) {
- String size = line.substring(line.indexOf(":")+1).trim();
- if(size.length()>0) {
+
+ }
+ else if(line.startsWith("Maintainer")){
+
+ curr.developer = line.substring(line.indexOf(":") + 1).replaceAll("\\<.*?\\>", "").trim();
+
+ }
+ else if(line.startsWith("Size")) {
+
+ String size = line.substring(line.indexOf(":") + 1).trim();
+ if(size.length() > 0) {
+
curr.size = Long.parseLong(size);
+
}
- } else if(line.startsWith("Architecture")) {
- curr.arch = line.substring(line.indexOf(":")+1).trim().toLowerCase();
- } else if(line.startsWith("MD5Sum")) {
- curr.md5sum = line.substring(line.indexOf(":")+1).trim();
- } else if(line.startsWith("Filename")) {
- curr.file = urlBase + line.substring(line.indexOf(":")+1).trim();
- } else if(line.startsWith("Source")) {
+
+ }
+ else if(line.startsWith("Architecture")) {
+
+ curr.arch = line.substring(line.indexOf(":") + 1).trim().toLowerCase();
+
+ }
+ else if(line.startsWith("MD5Sum")) {
+
+ curr.md5sum = line.substring(line.indexOf(":") + 1).trim();
+
+ }
+ else if(line.startsWith("Filename")) {
+
+ curr.file = urlBase + line.substring(line.indexOf(":") + 1).trim();
+
+ }
+ else if(line.startsWith("Source")) {
+
try {
- curr.source = new JSONObject(line.substring(line.indexOf(":")+1).trim());
- } catch(Exception e) {
- if(curr.id!=null) {
+
+ curr.source = new JSONObject(line.substring(line.indexOf(":") +1).trim());
+
+ }
+ catch(Exception e) {
+
+ if(curr.id != null) {
+
System.err.println("Error reading source JSON of " + curr.id);
curr.id = null;
break;
+
}
+
}
+
}
+
}
+
line = input.readLine();
+
}
- if(curr.id!=null && curr.name!=null) {
- if(!packages.contains(curr)) {
+ if(curr.id != null && curr.name != null) {
+
+ if(! packages.contains(curr)) {
+
packages.add(curr);
+
}
+
}
+
line = input.readLine();
+
}
- } catch(Exception e) {
- System.err.println("Error parsing package feed: " + e.getMessage());
+
}
+ catch(Exception e) {
+
+ System.err.println("Error parsing package feed: " + e.getMessage());
+
+ }
+
}
- if(input!=null)
+
+ if(input != null) {
+
try {
+
input.close();
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Input could not be closed.");
+
+ }
+
+ }
+
}
public int indexOf(String id) {
+
int index = -1;
- for(int i=0; i-1) {
- base = url.substring(0, index+1);
+ if(index > -1) {
+
+ base = url.substring(0, index + 1);
+
}
+
OnlineFile online = new OnlineFile(url);
File f = online.download();
- if(f==null) { //2nd try if 1st failed
+ // Second attempt if first download failed
+ if(f == null) {
+
f = online.download();
+
}
- if(base!=null && f!=null) {
+
+ if(base != null && f != null) {
+
result = new PackageFeed(f, base);
+
}
+
return result;
+
}
+
}
\ No newline at end of file
diff --git a/src/ipkg/PackageFilter.java b/src/ipkg/PackageFilter.java
index b6f852d..a7f1e37 100644
--- a/src/ipkg/PackageFilter.java
+++ b/src/ipkg/PackageFilter.java
@@ -2,8 +2,10 @@ package ipkg;
/**
* @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public enum PackageFilter {
+
Applications("Application"),
Kernels("Kernel"),
Linux_Apps("Linux Application"),
@@ -16,10 +18,16 @@ public enum PackageFilter {
private String type;
PackageFilter(String val) {
+
type = val;
+
}
+
@Override
public String toString() {
+
return type;
+
}
+
}
diff --git a/src/ipkg/PackageManager.java b/src/ipkg/PackageManager.java
index 1f20829..1361370 100644
--- a/src/ipkg/PackageManager.java
+++ b/src/ipkg/PackageManager.java
@@ -15,8 +15,10 @@ import wosqi.WebOSQuickInstallApp;
/**
* @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public class PackageManager {
+
public final String ALL_CATEGORIES;
private final String[] defaultFeeds;
private boolean[] feedStates;
@@ -30,7 +32,9 @@ public class PackageManager {
private ResourceBundle bundle;
public PackageManager(DeviceInfo info, ArrayList apps) {
+
this(info, apps, null);
+
}
public PackageManager(DeviceInfo info, ArrayList apps, JTextArea display) {
@@ -71,7 +75,7 @@ public class PackageManager {
int numFeeds = prefs.getInt("numCustomFeeds", 0);
feedStates = new boolean[defaultFeeds.length + numFeeds];
feedUrls = new String[defaultFeeds.length + numFeeds];
- for(int i=0; i list) {
- for(int i=0; i-1) {
- PackageEntry existing = packages.get(index);
- if(curr.newerThan(existing)) {
- packages.set(index, curr);
- }
- } else {
- packages.add(curr);
- }
- }
- }
-
- public PackageEntry getEntryById(String id) {
- PackageEntry result = null;
- int index = indexOf(id);
- if(index>-1) {
- result = packages.get(index);
- }
- return result;
- }
-
- private int indexOf(String id) {
- int result = -1;
- for(int i=0; i list) {
+
+ for(int i = 0; i < list.size(); i++) {
+
+ PackageEntry curr = list.get(i);
+ int index = indexOf(curr.id);
+ if(index > -1) {
+
+ PackageEntry existing = packages.get(index);
+ if(curr.newerThan(existing)) {
+
+ packages.set(index, curr);
+
+ }
+
+ }
+ else {
+
+ packages.add(curr);
+
+ }
+
+ }
+
+ }
+
+ public PackageEntry getEntryById(String id) {
+
+ PackageEntry result = null;
+ int index = indexOf(id);
+ if(index > -1) {
+
+ result = packages.get(index);
+
+ }
+
+ return result;
+
+ }
+
+ private int indexOf(String id) {
+
+ int result = -1;
+ for(int i = 0; i < packages.size(); i++) {
+
+ if(packages.get(i).id.equals(id)) {
+
+ result = i;
+ break;
+
+ }
+
+ }
+
+ return result;
+
+ }
+
+ public void setFilter(PackageFilter filter) {
+
+ filtered = new ArrayList(0);
+ for(int i = 0; i < packages.size(); i++) {
+
+ PackageEntry curr = (PackageEntry) packages.get(i);
+ if(filter == PackageFilter.None) {
+
+ filtered.add(curr);
+
+ }
+ else {
+
+ String type = PackageFilter.Applications.toString();
+ if(curr.source != null) {
+
+ if(curr.source.has("Type")) {
+
+ try {
+
+ type = curr.source.getString("Type");
+
+ }
+
+ catch(Exception e) {
+
+ System.out.println("ERROR: Package has no type!");
+
+ }
+
+ }
+
+ }
+
+ if(type.equals(filter.toString())) {
+
+ filtered.add(curr);
+
+ }
+
+ }
+
+ }
+
}
public ArrayList getCategories() {
+
ArrayList result = new ArrayList(0);
result.add(ALL_CATEGORIES);
- for(int i=0; i0 &&
- !category.toLowerCase().equals("unavailable")) {
- if(!result.contains(category)) {
+ if(category.length() > 0 && ! category.toLowerCase().equals("unavailable")) {
+
+ if(! result.contains(category)) {
+
result.add(category);
+
}
+
}
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Package has invalid category!");
+
+ }
+
}
+
}
+
}
+
Collections.sort(result);
return result;
+
}
public ArrayList getPackagesByCategory(String category) {
+
return getPackagesByCategory(category, false);
+
}
- public ArrayList getPackagesByCategory(String category,
- boolean includeInstalled) {
+ public ArrayList getPackagesByCategory(String category, boolean includeInstalled) {
+
ArrayList results = new ArrayList(0);
- for(int i=0; i minVal) {
+
result &= true;
break;
- } else if (verVal < minVal) {
+
+ }
+ else if (verVal < minVal) {
+
result &= false;
break;
+
}
- if(deviceVer.length-1==i && min.length-1>i) {
- minVal = Integer.parseInt(min[i+1]);
- if(minVal>0) {
+
+ if(deviceVer.length - 1 == i && min.length - 1 > i) {
+
+ minVal = Integer.parseInt(min[i + 1]);
+ if(minVal > 0) {
+
result &= false;
- } else {
- result &= true;
+
}
+ else {
+
+ result &= true;
+
+ }
+
break;
+
}
- if(min.length-1==i && deviceVer.length-1>i) {
+
+ if(min.length - 1 == i && deviceVer.length - 1 > i) {
+
result &=true;
break;
+
}
+
}
- } catch(Exception e) {
- e.printStackTrace();
+
}
+ catch(Exception e) {
+
+ e.printStackTrace();
+
+ }
+
}
+
if(result && item.source.has("MaxWebOSVersion")) {
+
try {
+
String[] max = item.source.getString("MaxWebOSVersion").split("\\.");
- for(int i=0; i maxVal) {
+
+ }
+ else if (verVal > maxVal) {
+
result &= false;
break;
+
}
- if(deviceVer.length-1==i && max.length-1>i) {
+
+ if(deviceVer.length - 1 == i && max.length - 1 > i) {
+
result &= true;
break;
+
}
- if(max.length-1==i && deviceVer.length-1>i) {
- verVal = Integer.parseInt(deviceVer[i+1]);
- if(verVal>0) {
+
+ if(max.length - 1 == i && deviceVer.length - 1 > i) {
+
+ verVal = Integer.parseInt(deviceVer[i + 1]);
+ if(verVal > 0) {
+
result &= false;
- } else {
- result &= true;
+
}
+ else {
+
+ result &= true;
+
+ }
+
break;
+
}
+
}
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: WebOS version parsing failed.");
+
+ }
+
}
+
if(result && item.source.has("Category")) {
+
try {
+
String category = item.source.getString("Category");
if(category.toLowerCase().equals("unavailable")) {
+
result &= false;
+
}
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Category availability could not be determined.");
+
+ }
+
}
+
}
+
return result;
+
}
public ArrayList getUpdates() {
+
ArrayList results = new ArrayList(0);
- for(int i=0; i-1) {
+ if(index > -1) {
+
if(curr.isUpdate(installed.get(index))) {
+
results.add(curr);
+
}
+
}
+
}
+
return results;
+
}
public void setInstalledAppList(ArrayList apps) {
+
installed = apps;
+
}
public boolean hasPackages() {
- return (packages.size()>0);
+
+ return (packages.size() > 0);
+
}
public boolean isInstalled(PackageEntry pkg) {
+
return installed.contains(new InstalledEntry(pkg.id));
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/ipkg/PackageSorter.java b/src/ipkg/PackageSorter.java
index 6ca18eb..fbad93e 100644
--- a/src/ipkg/PackageSorter.java
+++ b/src/ipkg/PackageSorter.java
@@ -4,26 +4,46 @@ import java.util.Comparator;
/**
* @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public class PackageSorter implements Comparator {
+
boolean ascending;
PackageSorter(boolean ascending) {
+
this.ascending = ascending;
+
}
+
public int compare(Object a, Object b) {
+
int i;
PackageEntry data1 = (PackageEntry)a;
PackageEntry data2 = (PackageEntry)b;
if (ascending) {
+
i = data1.name.compareToIgnoreCase(data2.name);
- if(i==0)
+ if(i == 0) {
+
i = data1.id.compareToIgnoreCase(data2.id);
- } else {
- i = data2.name.compareToIgnoreCase(data1.name);
- if(i==0)
- i = data2.id.compareToIgnoreCase(data1.id);
+
+ }
+
}
+ else {
+
+ i = data2.name.compareToIgnoreCase(data1.name);
+ if(i == 0) {
+
+ i = data2.id.compareToIgnoreCase(data1.id);
+
+ }
+
+ }
+
return i;
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/resources/NewJFrame.properties b/src/resources/NewJFrame.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/src/resources/WebOSQuickInstallApp.properties b/src/resources/WebOSQuickInstallApp.properties
index 1caaad2..e674fd4 100644
--- a/src/resources/WebOSQuickInstallApp.properties
+++ b/src/resources/WebOSQuickInstallApp.properties
@@ -2,7 +2,7 @@
Application.name = WebOS Quick Install
Application.title = WebOS Quick Install
-Application.version = v4.7.0u
+Application.version = v4.7.1u
Application.vendor = NotAlexNoyle
Application.homepage = http://github.com/NotAlexNoyle/WebOS-Quick-Install
Application.description = An advanced tool for installing and managing packages on webOS devices.
diff --git a/src/utils/FileUtils.java b/src/utils/FileUtils.java
index 3356595..e09cb02 100644
--- a/src/utils/FileUtils.java
+++ b/src/utils/FileUtils.java
@@ -7,94 +7,164 @@ import java.io.IOException;
import org.jdesktop.application.Application;
/**
- *
- * @author Jason
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public class FileUtils {
+
public static File appDirectory() {
+
File app, dir;
try {
- app = new File(Application.getInstance()
- .getClass().getProtectionDomain().getCodeSource().getLocation().toURI());
- dir = app.getParentFile();
- } catch(Exception e) {
- app = new File(Application.getInstance().getClass().getProtectionDomain()
- .getCodeSource().getLocation()
- .getPath().replaceAll("%20", " "));
+
+ app = new File(Application.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().toURI());
dir = app.getParentFile();
+
}
+ catch(Exception e) {
+
+ app = new File(Application.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().getPath().replaceAll("%20", " "));
+ dir = app.getParentFile();
+
+ }
+
return dir;
+
}
public static void copy(File from, File to) throws IOException {
+
FileInputStream fis = new FileInputStream(from);
FileOutputStream fos = new FileOutputStream(to);
try {
+
byte[] buf = new byte[1024];
int i = 0;
while ((i = fis.read(buf)) != -1) {
+
fos.write(buf, 0, i);
+
}
- } catch (IOException e) {
- throw e;
- } finally {
- if (fis != null)
- fis.close();
- if (fos != null)
- fos.close();
+
}
+ catch (IOException e) {
+
+ throw e;
+
+ }
+ finally {
+
+ if (fis != null) {
+
+ fis.close();
+
+ }
+
+ if (fos != null) {
+
+ fos.close();
+
+ }
+
+ }
+
}
public static String getFilename(File file) {
+
return getFilename(file.getName());
+
}
public static String getFilename(String file) {
+
String name = file;
int index = name.lastIndexOf("\\");
- if(index>-1) {
+ if(index > -1) {
+
name = name.substring(index+1, name.length());
- } else {
- index = name.lastIndexOf("/");
- if(index>-1)
- name = name.substring(index+1, name.length());
+
}
+ else {
+
+ index = name.lastIndexOf("/");
+ if(index > -1) {
+
+ name = name.substring(index+1, name.length());
+
+ }
+
+ }
+
return name;
+
}
public static String formatFilesize(File file) {
+
return formatFilesize(file.length());
+
}
public static String formatFilesize(long size) {
+
String result = "";
- if(size<1000) { //bytes
+ // bytes
+ if(size < 1000) {
+
result = size + "B";
- } else if((size/1024)<1000) { //kilobytes
- result = roundNicely(((double)size)/1024.0) + "KB";
- } else {
- result = roundNicely((((double)size)/1024.0)/1024.0) + "MB";
+
}
+ //kilobytes
+ else if((size / 1024) < 1000) {
+
+ result = roundNicely(((double)size) / 1024.0) + "KB";
+
+ }
+ else {
+
+ result = roundNicely((((double)size) / 1024.0) /1024.0) + "MB";
+
+ }
+
return result;
+
}
private static String roundNicely(double dbl) {
- long rounded = Math.round((dbl*100.0));
- String result = String.valueOf(((double)rounded)/100.0);
- if(dbl<10) {
- result = String.valueOf(Math.round(dbl*100.0)/100.0);
- } else if(dbl<100) {
- result = String.valueOf(Math.round(dbl*10.0)/10.0);
- } else {
+
+ long rounded = Math.round((dbl * 100.0));
+ String result = String.valueOf(((double)rounded) / 100.0);
+ if(dbl < 10) {
+
+ result = String.valueOf(Math.round(dbl * 100.0) / 100.0);
+
+ }
+ else if(dbl < 100) {
+
+ result = String.valueOf(Math.round(dbl * 10.0) / 10.0);
+
+ }
+ else {
+
result = String.valueOf(((long)dbl));
+
}
+
if(result.endsWith(".0")) {
+
result = result.replace(".0", "");
+
}
+
return result;
+
}
public static String getMD5Sum(File file) {
+
return MD5.getMD5Checksum(file);
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/utils/MD5.java b/src/utils/MD5.java
index 2d062d6..d899646 100644
--- a/src/utils/MD5.java
+++ b/src/utils/MD5.java
@@ -7,48 +7,78 @@ import java.security.MessageDigest;
/**
* @author Jason Robitaille
+ * @maintainer NotAlexNoyle
*/
public class MD5 {
+
private static final byte[] HEX_CHAR_TABLE = {
+
(byte)'0', (byte)'1', (byte)'2', (byte)'3',
(byte)'4', (byte)'5', (byte)'6', (byte)'7',
(byte)'8', (byte)'9', (byte)'a', (byte)'b',
(byte)'c', (byte)'d', (byte)'e', (byte)'f'
- };
+
+ };
public static byte[] createChecksum(File f) throws Exception {
+
InputStream fis = new FileInputStream(f);
byte[] buffer = new byte[2048];
MessageDigest complete = MessageDigest.getInstance("MD5");
int numRead;
do {
+
numRead = fis.read(buffer);
+
if (numRead > 0) {
+
complete.update(buffer, 0, numRead);
- }
- } while (numRead != -1);
+
+ }
+
+ }
+ while (numRead != -1);
+
fis.close();
+
return complete.digest();
+
}
public static String getMD5Checksum(File f) {
+
String result = null;
try {
+
byte[] raw = createChecksum(f);
result = getHexString(raw);
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Could not get md5 checksum.");
+
+ }
+
return result;
+
}
private static String getHexString(byte[] raw) throws Exception {
+
byte[] hex = new byte[2 * raw.length];
int index = 0;
for (byte b : raw) {
+
int v = b & 0xFF;
hex[index++] = HEX_CHAR_TABLE[v >>> 4];
hex[index++] = HEX_CHAR_TABLE[v & 0xF];
+
}
+
return new String(hex, "ASCII");
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/wosqi/About.java b/src/wosqi/About.java
index 1f08e25..8dfd276 100644
--- a/src/wosqi/About.java
+++ b/src/wosqi/About.java
@@ -9,6 +9,10 @@ import javax.swing.JLabel;
import org.jdesktop.application.Action;
+/**
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
+ */
public class About extends javax.swing.JDialog {
private ResourceBundle bundle;
@@ -30,12 +34,8 @@ public class About extends javax.swing.JDialog {
}
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- // //GEN-BEGIN:initComponents
+ // This method is called from within the constructor to initialize the form.
+ // WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.
private void initComponents() {
jLayeredPane1 = new javax.swing.JLayeredPane();
@@ -69,7 +69,6 @@ public class About extends javax.swing.JDialog {
jLayeredPane1.setBackground(new java.awt.Color(192, 192, 192));
jLayeredPane1.setName("jLayeredPane1");
jLayeredPane1.setOpaque(true);
-
javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(wosqi.WebOSQuickInstallApp.class).getContext().getActionMap(About.class, this);
closeButton.setAction(actionMap.get("closeAboutBox"));
closeButton.setBackground(new java.awt.Color(192, 192, 192));
@@ -86,10 +85,10 @@ public class About extends javax.swing.JDialog {
}
});
+
jLayeredPane1.add(closeButton);
closeButton.setBounds(130, 310, 90, 25);
-
- jLabel5.setFont(jLabel5.getFont().deriveFont((jLabel5.getFont().getStyle() | java.awt.Font.ITALIC), jLabel5.getFont().getSize()+1));
+ jLabel5.setFont(jLabel5.getFont().deriveFont((jLabel5.getFont().getStyle() | java.awt.Font.ITALIC), jLabel5.getFont().getSize() + 1));
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/donate.gif")));
jLabel5.setText(bundle.getString("About.jLabel5.text"));
@@ -105,7 +104,6 @@ public class About extends javax.swing.JDialog {
}
});
-
jLayeredPane1.add(jLabel5);
jLabel5.setBounds(10, 120, 330, 50);
@@ -158,9 +156,13 @@ public class About extends javax.swing.JDialog {
jLabel2.setText(bundle.getString("About.jLabel2.text"));
jLabel2.setName("jLabel2");
jLabel2.addMouseListener(new java.awt.event.MouseAdapter() {
+
public void mouseClicked(java.awt.event.MouseEvent evt) {
+
jLabel2MouseClicked(evt);
+
}
+
});
jLayeredPane1.add(jLabel2);
jLabel2.setBounds(10, 80, 330, 40);
@@ -168,16 +170,21 @@ public class About extends javax.swing.JDialog {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 350, Short.MAX_VALUE)
+
);
layout.setVerticalGroup(
+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 341, Short.MAX_VALUE)
+
);
pack();
- }// //GEN-END:initComponents
+
+ }
private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed
@@ -192,21 +199,47 @@ public class About extends javax.swing.JDialog {
}//GEN-LAST:event_closeButtonKeyTyped
private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel5MouseClicked
+
try {
+
Desktop.getDesktop().browse(new URI("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7G5QLAXMVVSGY"));
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Link could not be opened.");
+
+ }
+
}//GEN-LAST:event_jLabel5MouseClicked
private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel7MouseClicked
+
try {
+
Desktop.getDesktop().browse(new URI("https://www.paypal.me/NotAlexNoyle"));
- } catch(Exception e) {}
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Link could not be opened.");
+
+ }
+
}//GEN-LAST:event_jLabel7MouseClicked
private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel2MouseClicked
- /*try {
+ try {
+
Desktop.getDesktop().browse(new URI("https://github.com/JayCanuck/webos-quick-install"));
- } catch(Exception e) {}*/
+
+ }
+ catch(Exception e) {
+
+ System.out.println("ERROR: Link could not be opeend.");
+
+ }
+
}//GEN-LAST:event_jLabel2MouseClicked
// Variables declaration - do not modify//GEN-BEGIN:variables
@@ -219,4 +252,4 @@ public class About extends javax.swing.JDialog {
private javax.swing.JLayeredPane jLayeredPane1;
// End of variables declaration//GEN-END:variables
-}
+}
\ No newline at end of file
diff --git a/src/wosqi/Bundle.properties b/src/wosqi/Bundle.properties
index 9ee0f20..50aa7cd 100644
--- a/src/wosqi/Bundle.properties
+++ b/src/wosqi/Bundle.properties
@@ -4,7 +4,7 @@
MainView.name = WebOS Quick Install
MainView.id = WOSQI
MainView.title = WebOS Quick Install
-MainView.version = v4.7.0u
+MainView.version = v4.7.1u
MainView.vendor = Alexander Noyle
MainView.vendorId = NotAlexNoyle
MainView.homepage = https://github.com/NotAlexNoyle/WebOS-Quick-Install
@@ -114,7 +114,7 @@ InstalledPatchInfo.jLabel5.text=Description:
InstalledPatchInfo.jLabel11.text=Author:
About.closeButton.text=Close
About.jLabel5.text=Donate to support the original developer:
-About.appVersionLabel.text=Version v4.7.0u
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=Open Source under the Apache License 2.0
About.jLabel4.text=Copyright 2009-2014 Jason Robitaille.
About.jLabel7.text=Donate to support the new maintainer:
diff --git a/src/wosqi/Bundle_de.properties b/src/wosqi/Bundle_de.properties
index 0e97b95..61c0466 100644
--- a/src/wosqi/Bundle_de.properties
+++ b/src/wosqi/Bundle_de.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=Beschreibung:
InstalledPatchInfo.jLabel11.text=Author:
About.closeButton.text=Schlie\u00dfen
About.jLabel5.text=Unterst\u00fctzen Sie die Entwicklung
-About.appVersionLabel.text=Version 4.5.0
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=Deutsche \u00dcbersetzung von Tobias Kaller
About.jLabel4.text=Copyright \u00a9 2009-2013 Jason Robitaille. All rights reserved.
About.jLabel6.text=Jason Robitaille and Canuck Coding are in no way affiliated with HP, LG or their affiliates. Palm, Pre, Pixi, Veer, TouchPad, and WebOS are among the trademarks owned by or licensed to Hewlett-Packard Development Company, L.P. www.hpwebos.com
diff --git a/src/wosqi/Bundle_fr.properties b/src/wosqi/Bundle_fr.properties
index 6e102ba..54bdf09 100644
--- a/src/wosqi/Bundle_fr.properties
+++ b/src/wosqi/Bundle_fr.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=Description:
InstalledPatchInfo.jLabel11.text=Auteur:
About.closeButton.text=Fermer
About.jLabel5.text=Aide de soutien au d\u00e9veloppement
-About.appVersionLabel.text=Version 4.5.0
+About.appVersionLabel.text=Version v4.7.1u
About.jLabel2.text=La traduction de fran\u00e7ais a fait par Jake Morrison.
About.jLabel4.text=Copyright \u00a9 2009-2013 Jason Robitaille. Tous droits r\u00e9serv\u00e9s.
About.jLabel6.text=Jason Robitaille et Canuck Coding sont en aucun cas affili\u00e9 avec HP ou LG ou des sous filiales. Palm, Pre, Pixi, Veer, TouchPad, et WebOS sont des marques commerciales ou des marques d\u00e9pos\u00e9es appartenant \u00e0 ou sous licence de Hewlett-Packard www.hpwebos.com
diff --git a/src/wosqi/Bundle_zh.properties b/src/wosqi/Bundle_zh.properties
index 35ae9ef..a504222 100644
--- a/src/wosqi/Bundle_zh.properties
+++ b/src/wosqi/Bundle_zh.properties
@@ -106,7 +106,7 @@ InstalledPatchInfo.jLabel5.text=\u63cf\u8ff0:
InstalledPatchInfo.jLabel11.text=\u4f5c\u8005:
About.closeButton.text=\u5173\u95ed
About.jLabel5.text=\u5e2e\u52a9
-About.appVersionLabel.text=\u7248\u672c\u53f7 4.5.0
+About.appVersionLabel.text=\u7248\u672c\u53f7 v4.7.1u
About.jLabel2.text=\u7b80\u4f53\u4e2d\u6587\u7ffb\u8bd1:medigi8@twitter
About.jLabel4.text=\u7248\u6743\u5f52Jason Robitaille\u6240\u6709,\u76d7\u7248\u5fc5\u7a76.
About.jLabel6.text=\u6b64\u4e3a\u4e2a\u4eba\u4f5c\u54c1,\u4e0ePalm\u516c\u53f8\u65e0\u5173.Palm,Pre,Pixi,Veer,TouchPad\u548cWebOS\u6ce8\u518c\u5546\u6807\u5f52 Hewlett-Packard\u516c\u53f8\u6240\u6709.
diff --git a/src/wosqi/DeviceManagement.form b/src/wosqi/DeviceManagement.form
deleted file mode 100644
index daf1555..0000000
--- a/src/wosqi/DeviceManagement.form
+++ /dev/null
@@ -1,372 +0,0 @@
-
-
-
diff --git a/src/wosqi/DeviceManagement.java b/src/wosqi/DeviceManagement.java
index 7cdb0b0..29891dc 100644
--- a/src/wosqi/DeviceManagement.java
+++ b/src/wosqi/DeviceManagement.java
@@ -19,7 +19,12 @@ import javax.swing.JFrame;
import org.json.JSONArray;
import org.json.JSONObject;
+/**
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
+ */
public class DeviceManagement extends javax.swing.JDialog {
+
private ResourceBundle bundle;
private WebOSConnection webOS;
private DefaultTableModel modTable;
@@ -29,6 +34,7 @@ public class DeviceManagement extends javax.swing.JDialog {
private Timer t;
public DeviceManagement(java.awt.Frame parent, WebOSConnection connection) {
+
super(parent);
bundle = WebOSQuickInstallApp.bundle;
initComponents();
@@ -41,50 +47,84 @@ public class DeviceManagement extends javax.swing.JDialog {
modTable.addRow(new Object[] {bundle.getString("LOADING_LIST..."),Boolean.FALSE});
this.getContentPane().requestFocus();
t = new Timer();
+
if(!webOS.isConnected()) {
+
DeviceInfo info = webOS.getDeviceInfo();
- if(info!=null && !info.model().equals(DeviceInfo.Model.Unknown.toString())) {
- JOptionPane.showMessageDialog(rootPane, MessageFormat.format(bundle
- .getString("{0}_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."),
- new Object[] {info.model()}));
- } else {
- JOptionPane.showMessageDialog(rootPane, bundle
- .getString("DEVICE_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."));
+ if(info != null && ! info.model().equals(DeviceInfo.Model.Unknown.toString())) {
+
+ JOptionPane.showMessageDialog(rootPane, MessageFormat.format(bundle.getString("{0}_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."), new Object[] {info.model()}));
}
+ else {
+
+ JOptionPane.showMessageDialog(rootPane, bundle.getString("DEVICE_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."));
+
+ }
+
t.schedule(new DoDispose(), 200);
- } else {
+
+ }
+ else {
+
t.schedule(new DoLoadDetails(), 100);
webOS.configPkgMgr();
+
}
+
}
private void loadDeviceDetails() {
+
DeviceInfo info = webOS.getDeviceInfo();
URL imgURL;
if(info.model().equals(DeviceInfo.Model.Emulator.toString())) {
+
imgURL = getClass().getResource("/resources/Emulator 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.Palm_Pixi.toString()) ||
- info.model().equals(DeviceInfo.Model.Palm_Pixi_Plus.toString())) {
- imgURL = getClass().getResource("/resources/Palm Pixi 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.Palm_Pre.toString()) ||
- info.model().equals(DeviceInfo.Model.Palm_Pre_Plus.toString())) {
- imgURL = getClass().getResource("/resources/Palm Pre 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.Palm_Pre_2.toString())) {
- imgURL = getClass().getResource("/resources/Palm Pre 2 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.HP_Veer.toString())) {
- imgURL = getClass().getResource("/resources/HP Veer 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.HP_TouchPad.toString())) {
- imgURL = getClass().getResource("/resources/HP TouchPad 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.HP_Pre_3.toString())) {
- imgURL = getClass().getResource("/resources/HP Pre 3 64x64.png");
- } else if(info.model().equals(DeviceInfo.Model.Samsung_Galaxy_Nexus.toString())
- || info.model().equals(DeviceInfo.Model.LG_Nexus_4.toString())
- || info.model().equals(DeviceInfo.Model.Asus_Nexus_7.toString())) {
- imgURL = getClass().getResource("/resources/LuneOS 64x64.png");
- } else { //unknown/Open webOS generic
- imgURL = getClass().getResource("/resources/Open webOS 64x64.png");
+
}
+ else if(info.model().equals(DeviceInfo.Model.Palm_Pixi.toString()) || info.model().equals(DeviceInfo.Model.Palm_Pixi_Plus.toString())) {
+
+ imgURL = getClass().getResource("/resources/Palm Pixi 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.Palm_Pre.toString()) || info.model().equals(DeviceInfo.Model.Palm_Pre_Plus.toString())) {
+
+ imgURL = getClass().getResource("/resources/Palm Pre 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.Palm_Pre_2.toString())) {
+
+ imgURL = getClass().getResource("/resources/Palm Pre 2 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.HP_Veer.toString())) {
+
+ imgURL = getClass().getResource("/resources/HP Veer 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.HP_TouchPad.toString())) {
+
+ imgURL = getClass().getResource("/resources/HP TouchPad 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.HP_Pre_3.toString())) {
+
+ imgURL = getClass().getResource("/resources/HP Pre 3 64x64.png");
+
+ }
+ else if(info.model().equals(DeviceInfo.Model.Samsung_Galaxy_Nexus.toString()) || info.model().equals(DeviceInfo.Model.LG_Nexus_4.toString()) || info.model().equals(DeviceInfo.Model.Asus_Nexus_7.toString())) {
+
+ imgURL = getClass().getResource("/resources/LuneOS 64x64.png");
+
+ }
+ // Unknown/Generic WebOS Device
+ else {
+
+ imgURL = getClass().getResource("/resources/Open webOS 64x64.png");
+
+ }
+
jLabel7.setIcon(new ImageIcon(imgURL));
jLabel2.setText(bundle.getString("DEVICE:") + " " + info.name());
jLabel1.setText(bundle.getString("OS:") + " " + info.os());
@@ -92,226 +132,360 @@ public class DeviceManagement extends javax.swing.JDialog {
jLabel10.setText(bundle.getString("BUILD_NAME:") + " " + info.buildName());
jLabel4.setText(bundle.getString("BUILD_TIME:") + " " + info.buildTime());
- if(!info.model().equals(DeviceInfo.Model.Emulator.toString())) {
+ if(! info.model().equals(DeviceInfo.Model.Emulator.toString())) {
+
try {
- String out = webOS.runProgram("/bin/grep", new String[] {"-e", "Processor",
- "-e", "BogoMIPS", "-e", "Hardware", "/proc/cpuinfo"});
+
+ String out = webOS.runProgram("/bin/grep", new String[] {"-e", "Processor", "-e", "BogoMIPS", "-e", "Hardware", "/proc/cpuinfo"});
String[] tokens = out.split("\n");
- for(int i=0; i0) {
+ while(modTable.getRowCount() > 0) {
+
modTable.removeRow(0);
+
}
- for(int i=0; i-1 && rightBrace>-1) {
- out = out.substring(leftBrace, rightBrace+1);
+ if(leftBrace > -1 && rightBrace > -1) {
+
+ out = out.substring(leftBrace, rightBrace + 1);
results = new JSONObject(out).getJSONArray("apps");
+
}
- } catch(Exception e) {
- System.err.println("Unable to get apps list from luna-send: " +
- e.getMessage());
+
}
+ catch(Exception e) {
+
+ System.err.println("Unable to get apps list from luna-send: " + e.getMessage());
+
+ }
+
return results;
+
}
private JSONObject getAppInfoFromId(String appid) {
+
JSONObject result = null;
- for(int i=0; i warn = webOS.whatDependsRecursive(curr.getId());
- if(warn.size()>0) {
- String warnMsg = "" +
- MessageFormat.format(bundle
- .getString("DEPENDANT_PACKAGES_EXIST_WARNING"),
- new Object[] {modTable.getValueAt(i, 0)}) + "\n";
- for(int j=0; j 0) {
+
+ String warnMsg = "" + MessageFormat.format(bundle.getString("DEPENDANT_PACKAGES_EXIST_WARNING"), new Object[] {modTable.getValueAt(i, 0)}) + "\n";
+ for(int j = 0; j < warn.size(); j++) {
+
warnMsg += "\n" + pkgs.get(indexOfPackage(warn.get(j))).getName();
+
}
- if(JOptionPane.showConfirmDialog(rootPane, warnMsg,
- bundle.getString("WARNING"), JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.WARNING_MESSAGE)==JOptionPane.OK_OPTION) {
- uninstallPackage(curr);
+
+ if(JOptionPane.showConfirmDialog(rootPane, warnMsg, bundle.getString("WARNING"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE)==JOptionPane.OK_OPTION) {
+
+ uninstallPackage(curr);
uninstall();
break;
- } else {
+
+ }
+ else {
+
break;
+
}
- } else {
- if(uninstallPackage(curr)) {
- i--;
- }
+
}
+ else {
+
+ if(uninstallPackage(curr)) {
+
+ i--;
+
+ }
+
+ }
+
}
+
}
+
webOS.executeRestartFlags();
+
}
public int indexOfPackage(String appid) {
+
int result = -1;
- for(int i=0; i depends = webOS.whatDepends(entry.getId());
- if(depends.size()>0) {
- for(int i=0; i 0) {
+
+ for(int i = 0; i < depends.size(); i++) {
+
int index = indexOfPackage(depends.get(i));
- if(index>-1) {
+ if(index > -1) {
+
continueOn &= uninstallPackage(pkgs.get(index));
- if(!continueOn) {
+
+ if(! continueOn) {
+
break;
+
}
+
}
+
}
+
}
+
if(continueOn && webOS.uninstall(curr.getId())) {
+
pkgs.remove(curr);
int index = indexOfFiltered(curr.getId());
- if(index>-1) {
+ if(index > -1) {
+
modTable.removeRow(index);
filtered.remove(index);
+
}
+
continueOn = true;
- } else {
- continueOn = false;
+
}
+ else {
+
+ continueOn = false;
+
+ }
+
return continueOn;
+
}
@Action
public void closeManagement() {
+
dispose();
+
}
private void setState(boolean enable) {
+
jComboBox1.setEnabled(enable);
jButton1.setEnabled(enable);
jTable1.setEnabled(enable);
if(enable) {
+
jTable1.setBackground(new Color(255, 255, 255));
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
- } else {
+
+ }
+ else {
+
jTable1.setBackground(new Color(230, 230, 230));
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
+
}
+
}
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
+ // This method is called from within the constructor to initialize the form.
+ // WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.
// //GEN-BEGIN:initComponents
private void initComponents() {
@@ -336,121 +510,165 @@ public class DeviceManagement extends javax.swing.JDialog {
jLabel5 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- setTitle(bundle.getString("MainView.jMenuItem5.text")); // NOI18N
+ setTitle(bundle.getString("MainView.jMenuItem5.text"));
setModal(true);
- setName("aboutBox"); // NOI18N
+ setName("aboutBox");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
+
public void windowClosing(java.awt.event.WindowEvent evt) {
+
formWindowClosing(evt);
+
}
+
});
addKeyListener(new java.awt.event.KeyAdapter() {
+
public void keyPressed(java.awt.event.KeyEvent evt) {
+
formKeyPressed(evt);
+
}
+
});
- jLayeredPane1.setName("jLayeredPane1"); // NOI18N
+ jLayeredPane1.setName("jLayeredPane1");
jLayeredPane1.addMouseListener(new java.awt.event.MouseAdapter() {
+
public void mouseClicked(java.awt.event.MouseEvent evt) {
+
jLayeredPane1MouseClicked(evt);
+
}
+
});
jLayeredPane1.addKeyListener(new java.awt.event.KeyAdapter() {
+
public void keyTyped(java.awt.event.KeyEvent evt) {
+
jLayeredPane1KeyTyped(evt);
+
}
+
});
- jLayeredPane3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("DeviceManagement.jLayeredPane3.border.title"))); // NOI18N
- jLayeredPane3.setName("jLayeredPane3"); // NOI18N
+ jLayeredPane3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("DeviceManagement.jLayeredPane3.border.title")));
+ jLayeredPane3.setName("jLayeredPane3");
jLayeredPane3.addMouseListener(new java.awt.event.MouseAdapter() {
+
public void mouseClicked(java.awt.event.MouseEvent evt) {
+
jLayeredPane3MouseClicked(evt);
+
}
+
});
- jScrollPane1.setName("jScrollPane1"); // NOI18N
+ jScrollPane1.setName("jScrollPane1");
- jTable1.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
-
- },
- new String [] {
- "Name", ""
- }
- ) {
+ jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {}, new String [] {"Name", ""}) {
+
Class[] types = new Class [] {
+
java.lang.String.class, java.lang.Boolean.class
+
};
+
boolean[] canEdit = new boolean [] {
+
false, true
+
};
public Class getColumnClass(int columnIndex) {
+
return types [columnIndex];
+
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
+
return canEdit [columnIndex];
+
}
+
});
jTable1.setFillsViewportHeight(true);
jTable1.setFocusable(false);
jTable1.setGridColor(new java.awt.Color(192, 192, 192));
- jTable1.setName("jTable1"); // NOI18N
+ jTable1.setName("jTable1");
jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jTable1.setShowVerticalLines(false);
jTable1.getTableHeader().setResizingAllowed(false);
jTable1.getTableHeader().setReorderingAllowed(false);
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
+
public void mouseClicked(java.awt.event.MouseEvent evt) {
+
jTable1MouseClicked(evt);
+
}
public void mousePressed(java.awt.event.MouseEvent evt) {
+
jTable1MousePressed(evt);
+
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
+
jTable1MouseReleased(evt);
+
}
+
});
jTable1.addKeyListener(new java.awt.event.KeyAdapter() {
+
public void keyTyped(java.awt.event.KeyEvent evt) {
+
jTable1KeyTyped(evt);
+
}
+
});
jScrollPane1.setViewportView(jTable1);
jTable1.getColumnModel().getColumn(0).setResizable(false);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(250);
- jTable1.getColumnModel().getColumn(0).setHeaderValue(bundle.getString("DeviceManagement.jTable1.columnModel.title0")); // NOI18N
+ jTable1.getColumnModel().getColumn(0).setHeaderValue(bundle.getString("DeviceManagement.jTable1.columnModel.title0"));
jTable1.getColumnModel().getColumn(1).setResizable(false);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
- jTable1.getColumnModel().getColumn(1).setHeaderValue(bundle.getString("DeviceManagement.jTable1.columnModel.title1")); // NOI18N
+ jTable1.getColumnModel().getColumn(1).setHeaderValue(bundle.getString("DeviceManagement.jTable1.columnModel.title1"));
jScrollPane1.setBounds(20, 50, 240, 260);
jLayeredPane3.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Packages", "Patches" }));
jComboBox1.setFocusable(false);
- jComboBox1.setName("jComboBox1"); // NOI18N
+ jComboBox1.setName("jComboBox1");
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
+
public void actionPerformed(java.awt.event.ActionEvent evt) {
+
jComboBox1ActionPerformed(evt);
+
}
+
});
jComboBox1.setBounds(154, 20, 100, 20);
jLayeredPane3.add(jComboBox1, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(wosqi.WebOSQuickInstallApp.class).getContext().getActionMap(DeviceManagement.class, this);
- jButton1.setAction(actionMap.get("uninstall")); // NOI18N
- jButton1.setText(bundle.getString("DeviceManagement.jButton1.text")); // NOI18N
+ jButton1.setAction(actionMap.get("uninstall"));
+ jButton1.setText(bundle.getString("DeviceManagement.jButton1.text"));
jButton1.setFocusable(false);
- jButton1.setName("jButton1"); // NOI18N
+ jButton1.setName("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
+
public void actionPerformed(java.awt.event.ActionEvent evt) {
+
jButton1ActionPerformed(evt);
+
}
+
});
jButton1.setBounds(150, 320, 110, 23);
jLayeredPane3.add(jButton1, javax.swing.JLayeredPane.DEFAULT_LAYER);
@@ -458,71 +676,75 @@ public class DeviceManagement extends javax.swing.JDialog {
jLayeredPane3.setBounds(320, 10, 280, 360);
jLayeredPane1.add(jLayeredPane3, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLayeredPane2.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("DeviceManagement.jLayeredPane2.border.title"))); // NOI18N
- jLayeredPane2.setName("jLayeredPane2"); // NOI18N
+ jLayeredPane2.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("DeviceManagement.jLayeredPane2.border.title")));
+ jLayeredPane2.setName("jLayeredPane2");
jLayeredPane2.addMouseListener(new java.awt.event.MouseAdapter() {
+
public void mouseClicked(java.awt.event.MouseEvent evt) {
+
jLayeredPane2MouseClicked(evt);
+
}
+
});
jLabel7.setVerticalAlignment(javax.swing.SwingConstants.TOP);
- jLabel7.setName("jLabel7"); // NOI18N
+ jLabel7.setName("jLabel7");
jLabel7.setBounds(190, 20, 70, 70);
jLayeredPane2.add(jLabel7, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel3.setText(bundle.getString("DeviceManagement.jLabel3.text")); // NOI18N
- jLabel3.setName("jLabel3"); // NOI18N
+ jLabel3.setText(bundle.getString("DeviceManagement.jLabel3.text"));
+ jLabel3.setName("jLabel3");
jLabel3.setBounds(20, 180, 250, 20);
jLayeredPane2.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel13.setText(bundle.getString("DeviceManagement.jLabel13.text")); // NOI18N
- jLabel13.setName("jLabel13"); // NOI18N
+ jLabel13.setText(bundle.getString("DeviceManagement.jLabel13.text"));
+ jLabel13.setName("jLabel13");
jLabel13.setBounds(20, 300, 250, 20);
jLayeredPane2.add(jLabel13, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel8.setText(bundle.getString("DeviceManagement.jLabel8.text")); // NOI18N
- jLabel8.setName("jLabel8"); // NOI18N
+ jLabel8.setText(bundle.getString("DeviceManagement.jLabel8.text"));
+ jLabel8.setName("jLabel8");
jLabel8.setBounds(20, 240, 250, 20);
jLayeredPane2.add(jLabel8, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel12.setText(bundle.getString("DeviceManagement.jLabel12.text")); // NOI18N
- jLabel12.setName("jLabel12"); // NOI18N
+ jLabel12.setText(bundle.getString("DeviceManagement.jLabel12.text"));
+ jLabel12.setName("jLabel12");
jLabel12.setBounds(20, 270, 250, 20);
jLayeredPane2.add(jLabel12, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel11.setText(bundle.getString("DeviceManagement.jLabel11.text")); // NOI18N
- jLabel11.setName("jLabel11"); // NOI18N
+ jLabel11.setText(bundle.getString("DeviceManagement.jLabel11.text"));
+ jLabel11.setName("jLabel11");
jLabel11.setBounds(20, 330, 250, 20);
jLayeredPane2.add(jLabel11, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel9.setText(bundle.getString("DeviceManagement.jLabel9.text")); // NOI18N
- jLabel9.setName("jLabel9"); // NOI18N
+ jLabel9.setText(bundle.getString("DeviceManagement.jLabel9.text"));
+ jLabel9.setName("jLabel9");
jLabel9.setBounds(20, 210, 250, 20);
jLayeredPane2.add(jLabel9, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel4.setText(bundle.getString("DeviceManagement.jLabel4.text")); // NOI18N
- jLabel4.setName("jLabel4"); // NOI18N
+ jLabel4.setText(bundle.getString("DeviceManagement.jLabel4.text"));
+ jLabel4.setName("jLabel4");
jLabel4.setBounds(20, 150, 250, 20);
jLayeredPane2.add(jLabel4, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel1.setText(bundle.getString("DeviceManagement.jLabel1.text")); // NOI18N
- jLabel1.setName("jLabel1"); // NOI18N
+ jLabel1.setText(bundle.getString("DeviceManagement.jLabel1.text"));
+ jLabel1.setName("jLabel1");
jLabel1.setBounds(20, 60, 170, 20);
jLayeredPane2.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel10.setText(bundle.getString("DeviceManagement.jLabel10.text")); // NOI18N
- jLabel10.setName("jLabel10"); // NOI18N
+ jLabel10.setText(bundle.getString("DeviceManagement.jLabel10.text"));
+ jLabel10.setName("jLabel10");
jLabel10.setBounds(20, 120, 250, 20);
jLayeredPane2.add(jLabel10, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel2.setText(bundle.getString("DeviceManagement.jLabel2.text")); // NOI18N
- jLabel2.setName("jLabel2"); // NOI18N
+ jLabel2.setText(bundle.getString("DeviceManagement.jLabel2.text"));
+ jLabel2.setName("jLabel2");
jLabel2.setBounds(20, 30, 170, 20);
jLayeredPane2.add(jLabel2, javax.swing.JLayeredPane.DEFAULT_LAYER);
- jLabel5.setText(bundle.getString("DeviceManagement.jLabel5.text")); // NOI18N
- jLabel5.setName("jLabel5"); // NOI18N
+ jLabel5.setText(bundle.getString("DeviceManagement.jLabel5.text"));
+ jLabel5.setName("jLabel5");
jLabel5.setBounds(20, 90, 170, 20);
jLayeredPane2.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER);
@@ -531,19 +753,15 @@ public class DeviceManagement extends javax.swing.JDialog {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 619, javax.swing.GroupLayout.PREFERRED_SIZE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 385, javax.swing.GroupLayout.PREFERRED_SIZE)
- );
+ layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 619, javax.swing.GroupLayout.PREFERRED_SIZE));
+ layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 385, javax.swing.GroupLayout.PREFERRED_SIZE));
pack();
+
}// //GEN-END:initComponents
private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed
+
}//GEN-LAST:event_formKeyPressed
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
@@ -551,60 +769,86 @@ public class DeviceManagement extends javax.swing.JDialog {
}//GEN-LAST:event_jTable1MouseClicked
private void jTable1KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTable1KeyTyped
+
}//GEN-LAST:event_jTable1KeyTyped
private void jLayeredPane1KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jLayeredPane1KeyTyped
+
}//GEN-LAST:event_jLayeredPane1KeyTyped
private void jLayeredPane2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLayeredPane2MouseClicked
+
}//GEN-LAST:event_jLayeredPane2MouseClicked
private void jLayeredPane3MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLayeredPane3MouseClicked
+
}//GEN-LAST:event_jLayeredPane3MouseClicked
private void jLayeredPane1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLayeredPane1MouseClicked
+
}//GEN-LAST:event_jLayeredPane1MouseClicked
private void jTable1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MousePressed
+
int i = jTable1.rowAtPoint(evt.getPoint());
- if(i>-1) {
- if(jTable1.columnAtPoint(evt.getPoint())==0) {
+ if(i > -1) {
+
+ if(jTable1.columnAtPoint(evt.getPoint()) == 0) {
+
JFrame mainFrame = WebOSQuickInstallApp.getApplication().getMainFrame();
- if(jComboBox1.getSelectedIndex()==0) {
- InstalledPkgInfo info = new InstalledPkgInfo(mainFrame, webOS,
- filtered.get(i));
- info.setLocationRelativeTo(mainFrame);
- WebOSQuickInstallApp.getApplication().show(info);
- } else {
- InstalledPatchInfo info = new InstalledPatchInfo(mainFrame, webOS,
- filtered.get(i));
+ if(jComboBox1.getSelectedIndex() == 0) {
+
+ InstalledPkgInfo info = new InstalledPkgInfo(mainFrame, webOS, filtered.get(i));
info.setLocationRelativeTo(mainFrame);
WebOSQuickInstallApp.getApplication().show(info);
+
}
+ else {
+
+ InstalledPatchInfo info = new InstalledPatchInfo(mainFrame, webOS, filtered.get(i));
+ info.setLocationRelativeTo(mainFrame);
+ WebOSQuickInstallApp.getApplication().show(info);
+
+ }
+
}
+
}
+
int row = jTable1.getSelectedRow();
- if(row>-1) {
+ if(row > -1) {
+
jTable1.removeRowSelectionInterval(row, row);
+
}
+
}//GEN-LAST:event_jTable1MousePressed
private void jTable1MouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseReleased
+
int row = jTable1.getSelectedRow();
- if(row>-1) {
+ if(row > -1) {
+
jTable1.removeRowSelectionInterval(row, row);
+
}
+
}//GEN-LAST:event_jTable1MouseReleased
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
+
}//GEN-LAST:event_formWindowClosing
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
+
t.schedule(new DoLoadPackages(), 50);
+
}//GEN-LAST:event_jComboBox1ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
+
t.schedule(new DoDeleteApps(), 50);
+
}//GEN-LAST:event_jButton1ActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
@@ -629,27 +873,46 @@ public class DeviceManagement extends javax.swing.JDialog {
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
- class DoLoadDetails extends TimerTask {
+ class DoLoadDetails extends TimerTask {
+
public void run() {
+
loadDeviceDetails();
+
}
+
}
- class DoLoadPackages extends TimerTask {
+ class DoLoadPackages extends TimerTask {
+
public void run() {
+
loadPackages();
+
}
+
}
- class DoDeleteApps extends TimerTask {
+
+ class DoDeleteApps extends TimerTask {
+
public void run() {
+
setState(false);
uninstall();
setState(true);
+
}
+
}
- class DoDispose extends TimerTask {
+
+ class DoDispose extends TimerTask {
+
public void run() {
+
dispose();
+
}
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/wosqi/FeedLoader.form b/src/wosqi/FeedLoader.form
deleted file mode 100644
index b625adf..0000000
--- a/src/wosqi/FeedLoader.form
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
diff --git a/src/wosqi/FeedLoader.java b/src/wosqi/FeedLoader.java
index 59bb7ea..d7d1099 100644
--- a/src/wosqi/FeedLoader.java
+++ b/src/wosqi/FeedLoader.java
@@ -9,32 +9,46 @@ import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;
+/**
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
+ */
public class FeedLoader extends javax.swing.JDialog {
+
private ResourceBundle bundle;
private WebOSConnection webOS;
public PackageManager pkgMgr;
public Timer t;
public FeedLoader(java.awt.Frame parent, WebOSConnection connection) {
+
super(parent);
bundle = WebOSQuickInstallApp.bundle;
initComponents();
t = new Timer();
webOS = connection;
- if(!webOS.isConnected()) {
+ if(! webOS.isConnected()) {
+
DeviceInfo info = webOS.getDeviceInfo();
- if(info!=null && !info.model().equals(DeviceInfo.Model.Unknown.toString())) {
- JOptionPane.showMessageDialog(rootPane, MessageFormat.format(bundle
- .getString("{0}_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."),
- new Object[] {info.model()}));
- } else {
- JOptionPane.showMessageDialog(rootPane, bundle
- .getString("DEVICE_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."));
+ if(info != null && ! info.model().equals(DeviceInfo.Model.Unknown.toString())) {
+
+ JOptionPane.showMessageDialog(rootPane, MessageFormat.format(bundle.getString("{0}_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."), new Object[] {info.model()}));
+ }
+ else {
+
+ JOptionPane.showMessageDialog(rootPane, bundle.getString("DEVICE_IS_DISCONNECTED._PLEASE_RECONNECT_THEN_TRY_AGAIN."));
+
}
+
t.schedule(new DoDispose(), 200);
- } else {
- t.schedule(new DoLoad(), 200);
+
}
+ else {
+
+ t.schedule(new DoLoad(), 200);
+
+ }
+
}
/** This method is called from within the constructor to
@@ -57,30 +71,38 @@ public class FeedLoader extends javax.swing.JDialog {
setForeground(new java.awt.Color(219, 219, 219));
setIconImage(null);
setModal(true);
- setName("transfer"); // NOI18N
+ setName("transfer");
setResizable(false);
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
+
public void windowActivated(java.awt.event.WindowEvent evt) {
+
formWindowActivated(evt);
+
}
public void windowClosed(java.awt.event.WindowEvent evt) {
+
formWindowClosed(evt);
+
}
public void windowOpened(java.awt.event.WindowEvent evt) {
+
formWindowOpened(evt);
+
}
+
});
jLayeredPane1.setBackground(new java.awt.Color(219, 219, 219));
jLayeredPane1.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 153, 153)), javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED, java.awt.Color.lightGray, new java.awt.Color(204, 204, 204), null, null)));
- jLayeredPane1.setName("jLayeredPane1"); // NOI18N
+ jLayeredPane1.setName("jLayeredPane1");
jLayeredPane1.setOpaque(true);
jScrollPane2.setBorder(null);
jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
- jScrollPane2.setName("jScrollPane2"); // NOI18N
+ jScrollPane2.setName("jScrollPane2");
jTextArea2.setBackground(new java.awt.Color(219, 219, 219));
jTextArea2.setColumns(20);
@@ -97,7 +119,7 @@ public class FeedLoader extends javax.swing.JDialog {
jScrollPane2.setBounds(10, 20, 240, 30);
jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/activity.gif"))); // NOI18N
+ jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/activity.gif")));
jLabel6.setText(bundle.getString("FeedLoader.jLabel6.text"));
jLabel6.setName("jLabel6");
jLayeredPane1.add(jLabel6);
@@ -112,16 +134,11 @@ public class FeedLoader extends javax.swing.JDialog {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
- );
+ layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE));
+ layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE));
pack();
+
}// //GEN-END:initComponents
private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
@@ -129,9 +146,11 @@ public class FeedLoader extends javax.swing.JDialog {
}//GEN-LAST:event_formWindowOpened
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
+
}//GEN-LAST:event_formWindowActivated
private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
+
}//GEN-LAST:event_formWindowClosed
// Variables declaration - do not modify//GEN-BEGIN:variables
@@ -143,15 +162,24 @@ public class FeedLoader extends javax.swing.JDialog {
// End of variables declaration//GEN-END:variables
class DoLoad extends TimerTask {
+
public void run() {
- pkgMgr = new PackageManager(webOS.getDeviceInfo(), webOS.listInstalled(),
- jTextArea2);
+
+ pkgMgr = new PackageManager(webOS.getDeviceInfo(), webOS.listInstalled(), jTextArea2);
dispose();
+
}
+
}
+
class DoDispose extends TimerTask {
+
public void run() {
+
dispose();
+
}
+
}
-}
+
+}
\ No newline at end of file
diff --git a/src/wosqi/FeedViewer.form b/src/wosqi/FeedViewer.form
deleted file mode 100644
index adc2d06..0000000
--- a/src/wosqi/FeedViewer.form
+++ /dev/null
@@ -1,3658 +0,0 @@
-
-
-
diff --git a/src/wosqi/FeedViewer.java b/src/wosqi/FeedViewer.java
index 6796471..e42efaa 100644
--- a/src/wosqi/FeedViewer.java
+++ b/src/wosqi/FeedViewer.java
@@ -44,7 +44,12 @@ import ipkg.PackageEntry;
import ipkg.PackageFilter;
import ipkg.PackageManager;
+/**
+ * @author Jason Robitaille
+ * @maintainer NotAlexNoyle
+ */
public class FeedViewer extends javax.swing.JDialog {
+
private ResourceBundle bundle;
private PackageManager pkgMgr;
private final String UNKNOWN_VALUE;
@@ -76,6 +81,7 @@ public class FeedViewer extends javax.swing.JDialog {
private static final int BUFFER_SIZE = 4096;
public FeedViewer(java.awt.Frame parent, WebOSConnection wc, PackageManager pm) {
+
super(parent);
bundle = WebOSQuickInstallApp.bundle;
URL bgURL = getClass().getResource("/resources/background2.jpg");
diff --git a/src/wosqi/InstalledPatchInfo.form b/src/wosqi/InstalledPatchInfo.form
deleted file mode 100644
index 9a7b2be..0000000
--- a/src/wosqi/InstalledPatchInfo.form
+++ /dev/null
@@ -1,332 +0,0 @@
-
-
-
diff --git a/src/wosqi/InstalledPkgInfo.form b/src/wosqi/InstalledPkgInfo.form
deleted file mode 100644
index 53d00f4..0000000
--- a/src/wosqi/InstalledPkgInfo.form
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-
diff --git a/src/wosqi/Installer.form b/src/wosqi/Installer.form
deleted file mode 100644
index d263b74..0000000
--- a/src/wosqi/Installer.form
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
diff --git a/src/wosqi/MainView.form b/src/wosqi/MainView.form
deleted file mode 100644
index 16d602c..0000000
--- a/src/wosqi/MainView.form
+++ /dev/null
@@ -1,545 +0,0 @@
-
-
-
diff --git a/src/wosqi/MainView.java b/src/wosqi/MainView.java
index aea286e..dc4b0f1 100644
--- a/src/wosqi/MainView.java
+++ b/src/wosqi/MainView.java
@@ -8,6 +8,7 @@ import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
+import java.awt.geom.RoundRectangle2D;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
@@ -23,6 +24,7 @@ import java.util.Timer;
import java.util.TimerTask;
import java.util.prefs.Preferences;
+import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
@@ -32,6 +34,7 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
+import javax.swing.JWindow;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
diff --git a/src/wosqi/ReceiveFile.form b/src/wosqi/ReceiveFile.form
deleted file mode 100644
index 241c5a2..0000000
--- a/src/wosqi/ReceiveFile.form
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
diff --git a/src/wosqi/SendFile.form b/src/wosqi/SendFile.form
deleted file mode 100644
index 0f9c034..0000000
--- a/src/wosqi/SendFile.form
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
diff --git a/src/wosqi/Settings.form b/src/wosqi/Settings.form
deleted file mode 100644
index 5b67bcb..0000000
--- a/src/wosqi/Settings.form
+++ /dev/null
@@ -1,352 +0,0 @@
-
-
-
diff --git a/src/wosqi/Usage.form b/src/wosqi/Usage.form
deleted file mode 100644
index 0d37963..0000000
--- a/src/wosqi/Usage.form
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
diff --git a/src/wosqi/WebOSQuickInstallApp.java b/src/wosqi/WebOSQuickInstallApp.java
index 9ae7e01..cc5083c 100644
--- a/src/wosqi/WebOSQuickInstallApp.java
+++ b/src/wosqi/WebOSQuickInstallApp.java
@@ -35,7 +35,7 @@ public class WebOSQuickInstallApp extends SingleFrameApplication {
app.getFrame().setResizable(false);
app.getFrame().setSize(630, 400);
app.getFrame().setVisible(true);
- app.getFrame().setTitle("WebOS Quick Install (v4.7.0u)");
+ app.getFrame().setTitle(bundle.getString("MainView.title") + " " + bundle.getString("MainView.version"));
show(app);
}
@@ -60,6 +60,7 @@ public class WebOSQuickInstallApp extends SingleFrameApplication {
* Main method launching the application.
*/
public static void main(String[] args) {
+
Logger logger = Logger.getLogger(org.jdesktop.application.SessionStorage.class.getName());
logger.setLevel(java.util.logging.Level.OFF);