From 6f633734b6ee0e0f58ab5a68b665afe03512e255 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 21 Mar 2012 15:50:53 -0700 Subject: [PATCH] Bug 737368, part 2: Implement a trivial update-application-progress UI for Gonk that shows ASCII bars in logcat. r=mwu --HG-- rename : toolkit/mozapps/update/updater/progressui_null.cpp => toolkit/mozapps/update/updater/progressui_gonk.cpp --- toolkit/mozapps/update/updater/Makefile.in | 6 +++ .../update/updater/progressui_gonk.cpp | 53 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 toolkit/mozapps/update/updater/progressui_gonk.cpp diff --git a/toolkit/mozapps/update/updater/Makefile.in b/toolkit/mozapps/update/updater/Makefile.in index 990ff477e11e..acc29f866e4f 100644 --- a/toolkit/mozapps/update/updater/Makefile.in +++ b/toolkit/mozapps/update/updater/Makefile.in @@ -98,6 +98,12 @@ CMMSRCS += progressui_osx.mm launchchild_osx.mm OS_LIBS += -framework Cocoa endif +ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) #{ +HAVE_PROGRESSUI = 1 +STL_FLAGS = +CPPSRCS += progressui_gonk.cpp +endif #} + ifndef HAVE_PROGRESSUI CPPSRCS += progressui_null.cpp endif diff --git a/toolkit/mozapps/update/updater/progressui_gonk.cpp b/toolkit/mozapps/update/updater/progressui_gonk.cpp new file mode 100644 index 000000000000..f77d0af6338a --- /dev/null +++ b/toolkit/mozapps/update/updater/progressui_gonk.cpp @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * vim: sw=2 ts=8 et : + */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include +#include + +#include + +#include "android/log.h" + +#include "progressui.h" + +#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, "GeckoUpdater" , ## args) + +using namespace std; + +int InitProgressUI(int *argc, char ***argv) +{ + return 0; +} + +int ShowProgressUI() +{ + LOG("Starting to apply update ...\n"); + return 0; +} + +void QuitProgressUI() +{ + LOG("Finished applying update\n"); +} + +void UpdateProgressUI(float progress) +{ + assert(0.0f <= progress && progress <= 100.0f); + + static const size_t kProgressBarLength = 50; + static size_t sLastNumBars; + size_t numBars = size_t(float(kProgressBarLength) * progress / 100.0f); + if (numBars == sLastNumBars) { + return; + } + sLastNumBars = numBars; + + size_t numSpaces = kProgressBarLength - numBars; + string bars(numBars, '='); + string spaces(numSpaces, ' '); + LOG("Progress [ %s%s ]\n", bars.c_str(), spaces.c_str()); +}