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");