/************************************************************** * * 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 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 sm, const OUString& package, const OUString& rel_path, const OUString& key, sal_Int32 increment_by) { sal_Int32 value; Reference 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& 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(); } }