diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_startup.java b/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_startup.java
index 3ccf7d363..ce2464bd2 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_startup.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_startup.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.addons.apps.updates; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*;
import gplx.xowa.addons.apps.cfgs.*;
+import gplx.xowa.addons.apps.updates.dbs.*;
public class Xoa_update_startup {
public static boolean Show_at_startup(Xoa_app app) {
try {
@@ -24,32 +25,23 @@ public class Xoa_update_startup {
Xocfg_mgr cfg = app.Cfg();
if (!cfg.Get_bool_app_or(Cfg__enabled, true)) return false;
- // get inet_interval and date
- int inet_interval = cfg.Get_int_app_or(Cfg__inet_interval, 7);
- DateAdp inet_date = cfg.Get_date_app_or(Cfg__inet_date, DateAdp_.MinValue);
-
- // if enough time has passed, check internet for update_db
- Io_url db_url = Xoa_update_db.Url(app);
- if (Datetime_now.Get().Diff_days(inet_date) > inet_interval) {
- Xoa_update_db.Download_from_inet(app, db_url);
- cfg.Set_date_app(Cfg__inet_date, Datetime_now.Get());
+ // check online for updates
+ Io_url db_url = Xoa_update_db_mgr_.Url(app);
+ if (Xoa_update_db_mgr_.Download_from_inet(app, Bool_.Y, db_url))
return true;
- }
- // check if there are versions to update
- DateAdp cutoff_date = cfg.Get_date_app_or(Cfg__cutoff_date, DateAdp_.parse_fmt(Xoa_app_.Build_date, Xoa_app_.Build_date_fmt));
- if (Xoa_update_db.Select(db_url, cutoff_date).length > 0)
+ // check offline for updates
+ DateAdp ignore_date = cfg.Get_date_app_or(Cfg__ignore_date, DateAdp_.parse_fmt(Xoa_app_.Build_date, Xoa_app_.Build_date_fmt));
+ if (Xoa_update_db_mgr_.Select(db_url, ignore_date).length > 0)
return true;
} catch (Exception exc) {Gfo_usr_dlg_.Instance.Warn_many("", "", "starup:fatal error while looking up app-update-reminder; err=~{0}", Err_.Message_gplx_log(exc));}
return false;
}
- public static void Set_cutoff_date_to_now(Xoa_app app) {
- app.Cfg().Set_date_app(Cfg__cutoff_date, Datetime_now.Get());
+ public static void Set_ignore_date_to_now(Xoa_app app) {
+ app.Cfg().Set_date_app(Cfg__ignore_date, Datetime_now.Get());
}
private static final String
Cfg__enabled = "xowa.app.update.startup.enabled"
- , Cfg__inet_interval = "xowa.app.update.startup.inet_interval"
- , Cfg__inet_date = "xowa.app.update.startup.inet_date"
- , Cfg__cutoff_date = "xowa.app.update.startup.cutoff_date";
+ , Cfg__ignore_date = "xowa.app.update.startup.ignore_date";
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_db.java b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_update_db_mgr_.java
similarity index 68%
rename from 400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_db.java
rename to 400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_update_db_mgr_.java
index 642486dbc..148729575 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/Xoa_update_db.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_update_db_mgr_.java
@@ -15,22 +15,31 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.xowa.addons.apps.updates; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*;
-import gplx.xowa.addons.apps.updates.dbs.*;
-public class Xoa_update_db {
+package gplx.xowa.addons.apps.updates.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.updates.*;
+import gplx.xowa.addons.apps.cfgs.*;
+public class Xoa_update_db_mgr_ {
public static Io_url Url(Xoa_app app) {return app.Fsys_mgr().Root_dir().GenSubFil_nest("user", "install", "update", "xoa_update.sqlite3");}
public static Xoa_app_version_itm[] Select(Io_url db_url, DateAdp cutoff_date) {
Xoa_update_db_mgr db_mgr = new Xoa_update_db_mgr(db_url);
return db_mgr.Tbl__app_version().Select_by_date(cutoff_date.XtoStr_fmt_yyyy_MM_dd_HH_mm_ss());
}
- public static boolean Download_from_inet(Xoa_app app, Io_url db_url) {
+ public static boolean Download_from_inet(Xoa_app app, boolean exit_if_too_soon, Io_url db_url) {
// exit if web_access disabled
if (!gplx.core.ios.IoEngine_system.Web_access_enabled) return false;
+ // exit if inet checked too soon
+ if (exit_if_too_soon) {
+ Xocfg_mgr cfg = app.Cfg();
+ int inet_interval = cfg.Get_int_app_or(Cfg__inet_interval, 7);
+ DateAdp inet_date = cfg.Get_date_app_or(Cfg__inet_date, DateAdp_.MinValue);
+ if (Datetime_now.Get().Diff_days(inet_date) < inet_interval) return false;
+ cfg.Set_date_app(Cfg__inet_date, Datetime_now.Get());
+ }
+
// check text file to see if version changed
Io_url trg_summary_fil = db_url.OwnerDir().GenSubFil("xoa_update.txt");
int trg_summary_version = Bry_.To_int_or(Io_mgr.Instance.LoadFilBryOr(trg_summary_fil, Bry_.new_a7("-1")), -1);
- String src_summary_server = app.Cfg().Get_str_app_or("xowa.app.update.server_url", "http://xowa.org"); // CFG:Cfg__
+ String src_summary_server = app.Cfg().Get_str_app_or("xowa.app.inet.server_url", "http://xowa.org"); // CFG:Cfg__
byte[] src_summary_bry = Io_mgr.Instance.DownloadFil_args("", Io_url_.Empty).Exec_as_bry(src_summary_server + "/admin/app_update/xoa_update.txt");
if (src_summary_bry == null) return false;
int src_summary_version = Bry_.To_int(src_summary_bry);
@@ -44,4 +53,7 @@ public class Xoa_update_db {
}
return true;
}
+ private static final String
+ Cfg__inet_interval = "xowa.app.update.inet.check_interval"
+ , Cfg__inet_date = "xowa.app.update.inet.check_date";
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/js/Xojs_wkr__replace.java b/400_xowa/src/gplx/xowa/addons/apps/updates/js/Xojs_wkr__replace.java
index 0b811b0d3..58ab5d00e 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/js/Xojs_wkr__replace.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/js/Xojs_wkr__replace.java
@@ -42,11 +42,9 @@ public class Xojs_wkr__replace extends Xojs_wkr__base {
} catch (Exception exc) {
Gfo_usr_dlg_.Instance.Log_many("failed to delete and move file; file=~{0} msg=~{1}", trg_fil.Raw(), Err_.Message_gplx_log(exc));
failed_list.Add(Keyval_.new_(src_fil.Raw(), trg_fil.Raw()));
- try {
- Io_mgr.Instance.CopyFil(src_fil, trg_fil, true); // try to copy file anyway
- } catch (Exception exc2) {
- Gfo_usr_dlg_.Instance.Log_many("failed to fopy file; file=~{0} msg=~{1}", trg_fil.Raw(), Err_.Message_gplx_log(exc2));
- }
+
+ // try {Io_mgr.Instance.CopyFil(src_fil, trg_fil, true);} // try to copy file anyway
+ // catch (Exception exc2) {Gfo_usr_dlg_.Instance.Log_many("failed to fopy file; file=~{0} msg=~{1}", trg_fil.Raw(), Err_.Message_gplx_log(exc2));}
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java
index cc19daa17..16b0fc065 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java
@@ -25,14 +25,14 @@ public class Xoa_update_html extends Xow_special_wtr__base {
return Load(app);
}
private static Mustache_doc_itm Load(Xoa_app app) {
- Io_url db_url = Xoa_update_db.Url(app);
+ Io_url db_url = Xoa_update_db_mgr_.Url(app);
// get from internet
boolean web_access_enabled = gplx.core.ios.IoEngine_system.Web_access_enabled;
- Xoa_update_db.Download_from_inet(app, db_url);
+ Xoa_update_db_mgr_.Download_from_inet(app, Bool_.N, db_url);
// load from db
- Xoa_app_version_itm[] db_itms = Xoa_update_db.Select(db_url, DateAdp_.parse_fmt(Xoa_app_.Build_date, Xoa_app_.Build_date_fmt));
+ Xoa_app_version_itm[] db_itms = Xoa_update_db_mgr_.Select(db_url, DateAdp_.parse_fmt(Xoa_app_.Build_date, Xoa_app_.Build_date_fmt));
// build root
String check_date = app.Cfg().Get_str_app_or("xowa.app.update.startup.inet_date", null); // CFG:Cfg__
diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_bridge.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_bridge.java
index c15603be5..d04f3c3ca 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_bridge.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_bridge.java
@@ -28,16 +28,16 @@ public class Xoa_update_bridge implements Bridge_cmd_itm {
Xoa_update_svc svc = new Xoa_update_svc(app);
switch (proc_id) {
- case Proc__exec: svc.Exec(args.Get_as_str("version"));break;
+ case Proc__install: svc.Install(args.Get_as_str("version"));break;
case Proc__skip: svc.Skip(); break;
default: throw Err_.new_unhandled_default(proc_id);
}
return "";
}
- private static final byte Proc__exec = 0, Proc__skip = 1;
+ private static final byte Proc__install = 0, Proc__skip = 1;
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
- .Add_str_byte("exec" , Proc__exec)
+ .Add_str_byte("install" , Proc__install)
.Add_str_byte("skip" , Proc__skip)
;
diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_svc.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_svc.java
index 91e11d347..94077bb8a 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_svc.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/svcs/Xoa_update_svc.java
@@ -25,7 +25,7 @@ class Xoa_update_svc implements Gfo_invk {
private Xoa_app app;
private Io_url app_root_dir, update_dir, update_jar_fil;
public Xoa_update_svc(Xoa_app app) {this.app = app;}
- public void Exec(String version_name) {
+ public void Install(String version_name) {
// get app_version from db
this.app_root_dir = app.Fsys_mgr().Root_dir();
this.update_dir = app_root_dir.GenSubDir_nest("user", "install", "update");
@@ -46,7 +46,7 @@ class Xoa_update_svc implements Gfo_invk {
download_wkr.Exec_async("app_updater");
}
public void Skip() {
- Xoa_update_startup.Set_cutoff_date_to_now(app);
+ Xoa_update_startup.Set_ignore_date_to_now(app);
}
private void On_download_done(GfoMsg m) {
Xojs_wkr__download download_wkr = (Xojs_wkr__download)m.ReadObj("v");