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

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

Merge "Remove the unnecessary parsing that could be simply eliminated by...

Merge "Remove the unnecessary parsing that could be simply eliminated by casting to StringAtomicFormula."
parents 7174ed63 ecd43102
Loading
Loading
Loading
Loading
+6 −15
Original line number Diff line number Diff line
@@ -49,7 +49,8 @@ class RuleIndexingDetailsIdentifier {
            case Formula.COMPOUND_FORMULA_TAG:
                return getIndexingDetailsForCompoundFormula((CompoundFormula) formula);
            case Formula.STRING_ATOMIC_FORMULA_TAG:
                return getIndexingDetailsForAtomicStringFormula((AtomicFormula) formula);
                return getIndexingDetailsForStringAtomicFormula(
                        (AtomicFormula.StringAtomicFormula) formula);
            case Formula.INT_ATOMIC_FORMULA_TAG:
            case Formula.BOOLEAN_ATOMIC_FORMULA_TAG:
                // Package name and app certificate related formulas are string atomic formulas.
@@ -102,26 +103,16 @@ class RuleIndexingDetailsIdentifier {
        }
    }

    private static RuleIndexingDetails getIndexingDetailsForAtomicStringFormula(
            AtomicFormula atomicFormula) {
    private static RuleIndexingDetails getIndexingDetailsForStringAtomicFormula(
            AtomicFormula.StringAtomicFormula atomicFormula) {
        switch (atomicFormula.getKey()) {
            case AtomicFormula.PACKAGE_NAME:
                return new RuleIndexingDetails(PACKAGE_NAME_INDEXED,
                        getValueFromAtomicRuleString(atomicFormula.toString()));
                return new RuleIndexingDetails(PACKAGE_NAME_INDEXED, atomicFormula.getValue());
            case AtomicFormula.APP_CERTIFICATE:
                return new RuleIndexingDetails(APP_CERTIFICATE_INDEXED,
                        getValueFromAtomicRuleString(atomicFormula.toString()));
                return new RuleIndexingDetails(APP_CERTIFICATE_INDEXED, atomicFormula.getValue());
            default:
                return new RuleIndexingDetails(NOT_INDEXED);
        }
    }

    // The AtomRule API does not allow direct access to the {@link AtomicFormula} value. However,
    // this value is printed as "(%s %s %s)" where the last %s stands for the value. This method
    // parses the last.
    private static String getValueFromAtomicRuleString(String ruleString) {
        // TODO (b/145488708): Make an API change and get rid of this trick.
        return ruleString.split(" ")[2].split("[)]")[0];
    }
}