blob: 3e7fb0ce5a1b8000b3cf35e7692733c2ad75219a [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_extensions.hxx"
#include "config.hxx"
#include "myconfigurationhelper.hxx"
#include <rtl/ustrbuf.hxx>
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
using ::rtl::OUString;
using ::rtl::OUStringBuffer;
namespace
{
using namespace oooimprovement;
static const OUString CFG_COUNTERS = OUString::createFromAscii("Counters");
static const OUString CFG_ENABLINGALLOWED = OUString::createFromAscii("EnablingAllowed");
static const OUString CFG_EVENTSCOUNT = OUString::createFromAscii("LoggedEvents");
static const OUString CFG_EXTENSION = OUString::createFromAscii("ooSetupExtension");
static const OUString CFG_FAILEDATTEMPTS = OUString::createFromAscii("FailedAttempts");
static const OUString CFG_INVACCEPT = OUString::createFromAscii("InvitationAccepted");
static const OUString CFG_L10N = OUString::createFromAscii("L10N");
static const OUString CFG_LOCALE = OUString::createFromAscii("ooLocale");
static const OUString CFG_LOGGING = OUString::createFromAscii("/org.openoffice.Office.Logging");
static const OUString CFG_LOGPATH = OUString::createFromAscii("LogPath");
static const OUString CFG_NAME = OUString::createFromAscii("ooName");
static const OUString CFG_OFFICESTARTCOUNTDOWN = OUString::createFromAscii("OfficeStartCounterdown");
static const OUString CFG_OOOIMPROVEMENT = OUString::createFromAscii("OOoImprovement");
static const OUString CFG_OOOIMPROVEMENTPACK = OUString::createFromAscii("/org.openoffice.Office.OOoImprovement.Settings");
static const OUString CFG_PARTICIPATION = OUString::createFromAscii("Participation");
static const OUString CFG_PRODUCT = OUString::createFromAscii("Product");
static const OUString CFG_REPORTCOUNT = OUString::createFromAscii("UploadedReports");
static const OUString CFG_REPORTEREMAIL = OUString::createFromAscii("ReporterEmail");
static const OUString CFG_SETUP = OUString::createFromAscii("/org.openoffice.Setup");
static const OUString CFG_SHOWEDINV = OUString::createFromAscii("ShowedInvitation");
static const OUString CFG_SOAPIDADD = OUString::createFromAscii("SoapIdAdditions");
static const OUString CFG_SOAPURL = OUString::createFromAscii("SoapUrl");
static const OUString CFG_UPLOAD = OUString::createFromAscii("Upload");
static const OUString CFG_VERSION = OUString::createFromAscii("ooSetupVersion");
static const OUString SOAPID = OUString::createFromAscii("OpenOffice.org Improvement Report - Version 1\n");
static sal_Int32 incrementCfgValue(
const Reference<XMultiServiceFactory> sm,
const OUString& package,
const OUString& rel_path,
const OUString& key,
sal_Int32 increment_by)
{
sal_Int32 value;
Reference<XInterface> cfg =
MyConfigurationHelper::openConfig(
sm,
package, MyConfigurationHelper::E_STANDARD);
MyConfigurationHelper::readRelativeKey(
cfg,
rel_path, key) >>= value;
value += increment_by;
MyConfigurationHelper::writeRelativeKey(
cfg,
rel_path, key,
Any(value));
MyConfigurationHelper::flush(cfg);
return value;
};
}
namespace oooimprovement
{
Config::Config(const Reference<XMultiServiceFactory>& sf)
: m_ServiceFactory(sf)
{}
OUString Config::getSoapUrl() const
{
OUString result;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_UPLOAD, CFG_SOAPURL,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
OUString Config::getSoapId() const
{
OUString value;
OUStringBuffer result = SOAPID;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_UPLOAD, CFG_SOAPIDADD,
MyConfigurationHelper::E_READONLY) >>= value;
result.append(value);
return result.makeStringAndClear();
}
OUString Config::getReporterEmail() const
{
OUString result;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_UPLOAD, CFG_REPORTEREMAIL,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
OUString Config::getLogPath() const
{
OUString result;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_LOGGING, CFG_OOOIMPROVEMENT, CFG_LOGPATH,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
bool Config::getEnablingAllowed() const
{
bool result = false;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_LOGGING, CFG_OOOIMPROVEMENT, CFG_ENABLINGALLOWED,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
bool Config::getInvitationAccepted() const
{
bool result = false;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_PARTICIPATION, CFG_INVACCEPT,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
};
bool Config::getShowedInvitation() const
{
bool result = false;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_PARTICIPATION, CFG_SHOWEDINV,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
};
OUString Config::getCompleteProductname() const
{
OUStringBuffer result;
OUString value;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_SETUP, CFG_PRODUCT, CFG_NAME,
MyConfigurationHelper::E_READONLY) >>= value;
result.append(value);
value = OUString::createFromAscii("");
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_SETUP, CFG_PRODUCT, CFG_VERSION,
MyConfigurationHelper::E_READONLY) >>= value;
if(value.getLength()) result.appendAscii(" ").append(value);
value = OUString::createFromAscii("");
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_SETUP, CFG_PRODUCT, CFG_EXTENSION,
MyConfigurationHelper::E_READONLY) >>= value;
if(value.getLength()) result.appendAscii(" ").append(value);
return result.makeStringAndClear();
}
OUString Config::getSetupLocale() const
{
OUString result;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_SETUP, CFG_L10N, CFG_LOCALE,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
sal_Int32 Config::getReportCount() const
{
sal_Int32 result = 0;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_REPORTCOUNT,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
#ifdef FUTURE
sal_Int32 Config::getFailedAttempts() const
{
sal_Int32 result = 0;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_FAILEDATTEMPTS,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
#endif
sal_Int32 Config::getOfficeStartCounterdown() const
{
sal_Int32 result = 0;
MyConfigurationHelper::readDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_PARTICIPATION, CFG_OFFICESTARTCOUNTDOWN,
MyConfigurationHelper::E_READONLY) >>= result;
return result;
}
sal_Int32 Config::incrementReportCount(sal_Int32 by)
{
return incrementCfgValue(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_REPORTCOUNT,
by);
}
sal_Int32 Config::incrementEventCount(sal_Int32 by)
{
return incrementCfgValue(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_EVENTSCOUNT,
by);
}
sal_Int32 Config::incrementFailedAttempts(sal_Int32 by)
{
return incrementCfgValue(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_FAILEDATTEMPTS,
by);
}
sal_Int32 Config::decrementOfficeStartCounterdown(sal_Int32 by)
{
return incrementCfgValue(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_PARTICIPATION, CFG_OFFICESTARTCOUNTDOWN,
-by);
}
void Config::resetFailedAttempts()
{
sal_Int32 zero = 0;
MyConfigurationHelper::writeDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_COUNTERS, CFG_FAILEDATTEMPTS,
Any(zero),
MyConfigurationHelper::E_STANDARD);
}
void Config::giveupUploading()
{
sal_Bool f = false;
MyConfigurationHelper::writeDirectKey(
m_ServiceFactory,
CFG_OOOIMPROVEMENTPACK, CFG_PARTICIPATION, CFG_INVACCEPT,
Any(f),
MyConfigurationHelper::E_STANDARD);
resetFailedAttempts();
}
}