Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f18c0a5 authored by Jeffrey Huang's avatar Jeffrey Huang
Browse files

Keep subscibers when configs are deleted

Test: GTS Tests
Bug: 146383400
Change-Id: I1e92a5233dbdceff88b18ab394e6b6dc06be9023
parent 94eafe74
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1228,7 +1228,6 @@ Status StatsService::removeConfiguration(int64_t key, const int32_t callingUid)

    ConfigKey configKey(callingUid, key);
    mConfigManager->RemoveConfig(configKey);
    SubscriberReporter::getInstance().removeConfig(configKey);
    return Status::ok();
}

+0 −22
Original line number Diff line number Diff line
@@ -189,25 +189,11 @@ void ConfigManager::RemoveConfig(const ConfigKey& key) {
            // Remove from map
            uidIt->second.erase(key);

            // No more configs for this uid, lets remove the active configs callback.
            if (uidIt->second.empty()) {
                auto itActiveConfigsChangedReceiver = mActiveConfigsChangedReceivers.find(uid);
                    if (itActiveConfigsChangedReceiver != mActiveConfigsChangedReceivers.end()) {
                        mActiveConfigsChangedReceivers.erase(itActiveConfigsChangedReceiver);
                    }
            }

            for (const sp<ConfigListener>& listener : mListeners) {
                broadcastList.push_back(listener);
            }
        }

        auto itReceiver = mConfigReceivers.find(key);
        if (itReceiver != mConfigReceivers.end()) {
            // Remove from map
            mConfigReceivers.erase(itReceiver);
        }

        // Remove from disk. There can still be a lingering file on disk so we check
        // whether or not the config was on memory.
        remove_saved_configs(key);
@@ -238,12 +224,6 @@ void ConfigManager::RemoveConfigs(int uid) {
            // Remove from map
                remove_saved_configs(*it);
                removed.push_back(*it);
                mConfigReceivers.erase(*it);
        }

        auto itActiveConfigsChangedReceiver = mActiveConfigsChangedReceivers.find(uid);
        if (itActiveConfigsChangedReceiver != mActiveConfigsChangedReceivers.end()) {
            mActiveConfigsChangedReceivers.erase(itActiveConfigsChangedReceiver);
        }

        mConfigs.erase(uidIt);
@@ -277,8 +257,6 @@ void ConfigManager::RemoveAllConfigs() {
            uidIt = mConfigs.erase(uidIt);
        }

        mConfigReceivers.clear();
        mActiveConfigsChangedReceivers.clear();
        for (const sp<ConfigListener>& listener : mListeners) {
            broadcastList.push_back(listener);
        }
+0 −6
Original line number Diff line number Diff line
@@ -69,12 +69,6 @@ void SubscriberReporter::unsetBroadcastSubscriber(const ConfigKey& configKey,
    }
}

void SubscriberReporter::removeConfig(const ConfigKey& configKey) {
    VLOG("SubscriberReporter::removeConfig called.");
    lock_guard<std::mutex> lock(mLock);
    mIntentMap.erase(configKey);
}

void SubscriberReporter::alertBroadcastSubscriber(const ConfigKey& configKey,
                                                  const Subscription& subscription,
                                                  const MetricDimensionKey& dimKey) const {
+0 −3
Original line number Diff line number Diff line
@@ -59,9 +59,6 @@ public:
     */
    void unsetBroadcastSubscriber(const ConfigKey& configKey, int64_t subscriberId);

    /** Remove all information stored by SubscriberReporter about the given config. */
    void removeConfig(const ConfigKey& configKey);

    /**
     * Sends a broadcast via the intentSender previously stored for the
     * given (configKey, subscriberId) pair by setBroadcastSubscriber.