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

Commit 5237c0c3 authored by ztenghui's avatar ztenghui Committed by Android (Google) Code Review
Browse files

Merge "Support negative value in exponential data in the pathData." into lmp-mr1-dev

parents 69f35c8e 897f6dae
Loading
Loading
Loading
Loading
+21 −5
Original line number Diff line number Diff line
@@ -34,7 +34,11 @@ public class PathParser {
        Path path = new Path();
        PathDataNode[] nodes = createNodesFromPathData(pathData);
        if (nodes != null) {
            try {
                PathDataNode.nodesToPath(nodes, path);
            } catch (RuntimeException e) {
                throw new RuntimeException("Error in parsing " + pathData, e);
            }
            return path;
        }
        return null;
@@ -128,7 +132,12 @@ public class PathParser {

        while (end < s.length()) {
            c = s.charAt(end);
            if (((c - 'A') * (c - 'Z') <= 0) || (((c - 'a') * (c - 'z') <= 0))) {
            // Note that 'e' or 'E' are not valid path commands, but could be
            // used for floating point numbers' scientific notation.
            // Therefore, when searching for next command, we should ignore 'e'
            // and 'E'.
            if ((((c - 'A') * (c - 'Z') <= 0) || ((c - 'a') * (c - 'z') <= 0))
                    && c != 'e' && c != 'E') {
                return end;
            }
            end++;
@@ -188,8 +197,7 @@ public class PathParser {
            }
            return Arrays.copyOf(results, count);
        } catch (NumberFormatException e) {
            Log.e(LOGTAG, "error in parsing \"" + s + "\"");
            throw e;
            throw new RuntimeException("error in parsing \"" + s + "\"", e);
        }
    }

@@ -206,7 +214,10 @@ public class PathParser {
        boolean foundSeparator = false;
        result.mEndWithNegOrDot = false;
        boolean secondDot = false;
        boolean isExponential = false;
        for (; currentIndex < s.length(); currentIndex++) {
            boolean isPrevExponential = isExponential;
            isExponential = false;
            char currentChar = s.charAt(currentIndex);
            switch (currentChar) {
                case ' ':
@@ -214,7 +225,8 @@ public class PathParser {
                    foundSeparator = true;
                    break;
                case '-':
                    if (currentIndex != start) {
                    // The negative sign following a 'e' or 'E' is not a separator.
                    if (currentIndex != start && !isPrevExponential) {
                        foundSeparator = true;
                        result.mEndWithNegOrDot = true;
                    }
@@ -228,6 +240,10 @@ public class PathParser {
                        result.mEndWithNegOrDot = true;
                    }
                    break;
                case 'e':
                case 'E':
                    isExponential = true;
                    break;
            }
            if (foundSeparator) {
                break;
+86 −0
Original line number Diff line number Diff line
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="833"
            android:propertyName="translateX"
            android:valueFrom="144"
            android:valueTo="144"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="100"
            android:propertyName="translateX"
            android:valueFrom="144"
            android:valueTo="147.411817411"
            android:interpolator="@interpolator/ic_open_ball_start_translatex_interpolator" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="167"
            android:propertyName="translateY"
            android:valueFrom="144.58457376"
            android:valueTo="144.58457376"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="333"
            android:propertyName="translateY"
            android:valueFrom="144.58457376"
            android:valueTo="196.11111456"
            android:interpolator="@interpolator/ic_open_ball_start_translatey_interpolator_1" />
        <objectAnimator
            android:duration="333"
            android:propertyName="translateY"
            android:valueFrom="196.11111456"
            android:valueTo="196.11111456"
            android:interpolator="@interpolator/ic_open_ball_start_translatey_interpolator_2" />
        <objectAnimator
            android:duration="100"
            android:propertyName="translateY"
            android:valueFrom="196.11111456"
            android:valueTo="129.468428513"
            android:interpolator="@interpolator/ic_open_ball_start_translatey_interpolator_3" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="167"
            android:propertyName="scaleX"
            android:valueFrom="0"
            android:valueTo="0.71187984"
            android:interpolator="@interpolator/ic_open_ball_start_scalex_interpolator_1" />
        <objectAnimator
            android:duration="667"
            android:propertyName="scaleX"
            android:valueFrom="0.71187984"
            android:valueTo="0.71187984"
            android:interpolator="@interpolator/ic_open_ball_start_scalex_interpolator_2" />
        <objectAnimator
            android:duration="100"
            android:propertyName="scaleX"
            android:valueFrom="0.71187984"
            android:valueTo="0.586201598553"
            android:interpolator="@interpolator/ic_open_ball_start_scalex_interpolator_3" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="167"
            android:propertyName="scaleY"
            android:valueFrom="0"
            android:valueTo="0.71187984"
            android:interpolator="@interpolator/ic_open_ball_start_scaley_interpolator_1" />
        <objectAnimator
            android:duration="667"
            android:propertyName="scaleY"
            android:valueFrom="0.71187984"
            android:valueTo="0.71187984"
            android:interpolator="@interpolator/ic_open_ball_start_scaley_interpolator_2" />
        <objectAnimator
            android:duration="100"
            android:propertyName="scaleY"
            android:valueFrom="0.71187984"
            android:valueTo="0.586201598553"
            android:interpolator="@interpolator/ic_open_ball_start_scaley_interpolator_3" />
    </set>
</set>
+17 −0
Original line number Diff line number Diff line
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="933"
            android:propertyName="rotation"
            android:valueFrom="-90"
            android:valueTo="-90"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="1367"
            android:propertyName="rotation"
            android:valueFrom="-90"
            android:valueTo="-87"
            android:interpolator="@android:interpolator/linear" />
    </set>
</set>
+48 −0
Original line number Diff line number Diff line
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="500"
            android:propertyName="pathData"
            android:valueFrom="M 0,-17.3838043213 c -9.625,0.0 -17.0795440674,8.28025817871 -17.0795440674,17.4052734375 c 0.0,9.75645446777 7.51704406738,17.6295623779 17.0795440674,17.353515625 c 11.5579986572,-0.333648681641 17.2784118652,-8.72853088379 17.2784118652,-17.353515625 c 0.0,-8.62501525879 -7.65341186523,-17.4052734375 -17.2784118652,-17.4052734375 Z"
            android:valueTo="M 0,-17.3838043213 c -9.625,0.0 -17.0795440674,8.28025817871 -17.0795440674,17.4052734375 c 0.0,9.75645446777 7.51704406738,17.6295623779 17.0795440674,17.353515625 c 11.5579986572,-0.333648681641 17.2784118652,-8.72853088379 17.2784118652,-17.353515625 c 0.0,-8.62501525879 -7.65341186523,-17.4052734375 -17.2784118652,-17.4052734375 Z"
            android:valueType="pathType"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="267"
            android:propertyName="pathData"
            android:valueFrom="M 0,-17.3838043213 c -9.625,0.0 -17.0795440674,8.28025817871 -17.0795440674,17.4052734375 c 0.0,9.75645446777 7.51704406738,17.6295623779 17.0795440674,17.353515625 c 11.5579986572,-0.333648681641 17.2784118652,-8.72853088379 17.2784118652,-17.353515625 c 0.0,-8.62501525879 -7.65341186523,-17.4052734375 -17.2784118652,-17.4052734375 Z"
            android:valueTo="M 0,-6 c -9.625,0 -23.5648803711,6.97859191895 -23.5648803711,16.1035919189 c 0.0,8.875 6.62738037109,8.39640808105 23.5648803711,8.39640808105 c 17.0625,0.0 23.8825073242,0.375 23.8825073242,-8.25 c 0.0,-8.625 -14.2574920654,-16.25 -23.8825073242,-16.25 Z"
            android:valueType="pathType"
            android:interpolator="@interpolator/ic_open_path_1_pathdata_interpolator_1" />
        <objectAnimator
            android:duration="33"
            android:propertyName="pathData"
            android:valueFrom="M 0,-6 c -9.625,0 -23.5648803711,6.97859191895 -23.5648803711,16.1035919189 c 0.0,8.875 6.62738037109,8.39640808105 23.5648803711,8.39640808105 c 17.0625,0.0 23.8825073242,0.375 23.8825073242,-8.25 c 0.0,-8.625 -14.2574920654,-16.25 -23.8825073242,-16.25 Z"
            android:valueTo="M 0,-6 c -9.625,0 -23.5648803711,6.97859191895 -23.5648803711,16.1035919189 c 0.0,8.875 6.62738037109,8.39640808105 23.5648803711,8.39640808105 c 17.0625,0.0 23.8825073242,0.375 23.8825073242,-8.25 c 0.0,-8.625 -14.2574920654,-16.25 -23.8825073242,-16.25 Z"
            android:valueType="pathType"
            android:interpolator="@interpolator/ic_open_path_1_pathdata_interpolator_2" />
        <objectAnimator
            android:duration="67"
            android:propertyName="pathData"
            android:valueFrom="M 0,-6 c -9.625,0 -23.5648803711,6.97859191895 -23.5648803711,16.1035919189 c 0.0,8.875 6.62738037109,8.39640808105 23.5648803711,8.39640808105 c 17.0625,0.0 23.8825073242,0.375 23.8825073242,-8.25 c 0.0,-8.625 -14.2574920654,-16.25 -23.8825073242,-16.25 Z"
            android:valueTo="M 0,-17.3838043213 c -9.625,0.0 -17.0795440674,8.28025817871 -17.0795440674,17.4052734375 c 0.0,9.75645446777 7.51704406738,17.6295623779 17.0795440674,17.353515625 c 11.5579986572,-0.333648681641 17.2784118652,-8.72853088379 17.2784118652,-17.353515625 c 0.0,-8.62501525879 -7.65341186523,-17.4052734375 -17.2784118652,-17.4052734375 Z"
            android:valueType="pathType"
            android:interpolator="@interpolator/ic_open_path_1_pathdata_interpolator_3" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="933"
            android:propertyName="fillAlpha"
            android:valueFrom="1"
            android:valueTo="1"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="17"
            android:propertyName="fillAlpha"
            android:valueFrom="1"
            android:valueTo="0"
            android:interpolator="@android:interpolator/linear" />
    </set>
</set>
+74 −0
Original line number Diff line number Diff line
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="917"
            android:propertyName="strokeAlpha"
            android:valueFrom="0"
            android:valueTo="0"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="17"
            android:propertyName="strokeAlpha"
            android:valueFrom="0"
            android:valueTo="1"
            android:interpolator="@android:interpolator/linear" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="917"
            android:propertyName="strokeWidth"
            android:valueFrom="0"
            android:valueTo="0"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="17"
            android:propertyName="strokeWidth"
            android:valueFrom="0"
            android:valueTo="20"
            android:interpolator="@android:interpolator/linear" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="933"
            android:propertyName="trimPathStart"
            android:valueFrom="0.06"
            android:valueTo="0.06"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="383"
            android:propertyName="trimPathStart"
            android:valueFrom="0.06"
            android:valueTo="0.19231"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="983"
            android:propertyName="trimPathStart"
            android:valueFrom="0.19231"
            android:valueTo="0.999"
            android:interpolator="@interpolator/ic_open_path_1_1_trimpathstart_interpolator_2" />
    </set>
    <set
        android:ordering="sequentially" >
        <objectAnimator
            android:duration="933"
            android:propertyName="trimPathEnd"
            android:valueFrom="0.061"
            android:valueTo="0.061"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="300"
            android:propertyName="trimPathEnd"
            android:valueFrom="0.061"
            android:valueTo="0.19231"
            android:interpolator="@android:interpolator/linear" />
        <objectAnimator
            android:duration="1067"
            android:propertyName="trimPathEnd"
            android:valueFrom="0.19231"
            android:valueTo="1"
            android:interpolator="@interpolator/ic_open_path_1_1_trimpathend_interpolator_2" />
    </set>
</set>
Loading