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

Commit 99f85a1e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14440236

Change-Id: I8251219fc9fc4fbdaa4031a83d09908f5d754f0a
parents 18234909 c4c14c9f
Loading
Loading
Loading
Loading
+9 −6
Original line number Original line Diff line number Diff line
@@ -179,17 +179,20 @@ final class DiscreteRegistry {
    }
    }


    void systemReady() {
    void systemReady() {
        synchronized (mOnDiskLock) {
            mDiscreteAccessDir = new File(new File(Environment.getDataSystemDirectory(), "appops"),
                    "discrete");
            createDiscreteAccessDirLocked();
            mDiscreteOps = new DiscreteOps();
        }
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_PRIVACY,
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_PRIVACY,
                AsyncTask.THREAD_POOL_EXECUTOR, (DeviceConfig.Properties p) -> {
                AsyncTask.THREAD_POOL_EXECUTOR, (DeviceConfig.Properties p) -> {
                    setDiscreteHistoryParameters(p);
                    setDiscreteHistoryParameters(p);
                });
                });
        setDiscreteHistoryParameters(DeviceConfig.getProperties(DeviceConfig.NAMESPACE_PRIVACY));
        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) {
    private void setDiscreteHistoryParameters(DeviceConfig.Properties p) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -246,10 +246,10 @@ final class HistoricalRegistry {
                                    + " by which to push history on next write");
                                    + " by which to push history on next write");
                        }
                        }
                    }
                    }
                    mDiscreteRegistry.systemReady();
                }
                }
            }
            }
        }
        }
        mDiscreteRegistry.systemReady();
    }
    }


    private boolean isPersistenceInitializedMLocked() {
    private boolean isPersistenceInitializedMLocked() {