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

Commit c4c14c9f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do not hold AppOpsService lock while calling DeviceConfig" into sc-dev

parents fc143aa7 6a193b5d
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -179,17 +179,20 @@ final class DiscreteRegistry {
    }

    void systemReady() {
        synchronized (mOnDiskLock) {
            mDiscreteAccessDir = new File(new File(Environment.getDataSystemDirectory(), "appops"),
                    "discrete");
            createDiscreteAccessDirLocked();
            mDiscreteOps = new DiscreteOps();
        }
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_PRIVACY,
                AsyncTask.THREAD_POOL_EXECUTOR, (DeviceConfig.Properties p) -> {
                    setDiscreteHistoryParameters(p);
                });
        setDiscreteHistoryParameters(DeviceConfig.getProperties(DeviceConfig.NAMESPACE_PRIVACY));
        synchronized (mOnDiskLock) {
            synchronized (mInMemoryLock) {
                mDiscreteAccessDir = new File(
                        new File(Environment.getDataSystemDirectory(), "appops"),
                        "discrete");
                createDiscreteAccessDirLocked();
                mDiscreteOps = new DiscreteOps();
            }
        }
    }

    private void setDiscreteHistoryParameters(DeviceConfig.Properties p) {
+1 −1
Original line number Diff line number Diff line
@@ -246,10 +246,10 @@ final class HistoricalRegistry {
                                    + " by which to push history on next write");
                        }
                    }
                    mDiscreteRegistry.systemReady();
                }
            }
        }
        mDiscreteRegistry.systemReady();
    }

    private boolean isPersistenceInitializedMLocked() {