Use VariationPosition instead of Axis.

Skia's SkFontArguments started out with an 'Axis' type to provide
variation position. This is an unfortunate name as the values are
actually positions on the axis (do not describe the axis itself) and the
collection of them is commonly known as the variation. Skia would like
to remove this long deprecated type, so move to the new interface.

Change-Id: I460ca8cb938f078d25f41b4cd1dfc4db3a4e824f
diff --git a/libs/hwui/hwui/MinikinSkia.cpp b/libs/hwui/hwui/MinikinSkia.cpp
index 6a12a20..a6137b0 100644
--- a/libs/hwui/hwui/MinikinSkia.cpp
+++ b/libs/hwui/hwui/MinikinSkia.cpp
@@ -125,22 +125,22 @@
 
 std::shared_ptr<minikin::MinikinFont> MinikinFontSkia::createFontWithVariation(
         const std::vector<minikin::FontVariation>& variations) const {
-    SkFontArguments params;
+    SkFontArguments args;
 
     int ttcIndex;
     std::unique_ptr<SkStreamAsset> stream(mTypeface->openStream(&ttcIndex));
     LOG_ALWAYS_FATAL_IF(stream == nullptr, "openStream failed");
 
-    params.setCollectionIndex(ttcIndex);
-    std::vector<SkFontArguments::Axis> skAxes;
-    skAxes.resize(variations.size());
+    args.setCollectionIndex(ttcIndex);
+    std::vector<SkFontArguments::VariationPosition::Coordinate> skVariation;
+    skVariation.resize(variations.size());
     for (size_t i = 0; i < variations.size(); i++) {
-        skAxes[i].fTag = variations[i].axisTag;
-        skAxes[i].fStyleValue = SkFloatToScalar(variations[i].value);
+        skVariation[i].axis = variations[i].axisTag;
+        skVariation[i].value = SkFloatToScalar(variations[i].value);
     }
-    params.setAxes(skAxes.data(), skAxes.size());
+    args.setVariationDesignPosition({skVariation.data(), static_cast<int>(skVariation.size())});
     sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
-    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(stream), params));
+    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(stream), args));
 
     return std::make_shared<MinikinFontSkia>(std::move(face), mFontData, mFontSize, mFilePath,
                                              ttcIndex, variations);
diff --git a/libs/hwui/jni/FontFamily.cpp b/libs/hwui/jni/FontFamily.cpp
index a2fef1e..68eaa0a 100644
--- a/libs/hwui/jni/FontFamily.cpp
+++ b/libs/hwui/jni/FontFamily.cpp
@@ -104,21 +104,21 @@
 
 static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, int ttcIndex,
         jint weight, jint italic) {
-    FatVector<SkFontArguments::Axis, 2> skiaAxes;
+    FatVector<SkFontArguments::VariationPosition::Coordinate, 2> skVariation;
     for (const auto& axis : builder->axes) {
-        skiaAxes.emplace_back(SkFontArguments::Axis{axis.axisTag, axis.value});
+        skVariation.push_back({axis.axisTag, axis.value});
     }
 
     const size_t fontSize = data->size();
     const void* fontPtr = data->data();
     std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));
 
-    SkFontArguments params;
-    params.setCollectionIndex(ttcIndex);
-    params.setAxes(skiaAxes.data(), skiaAxes.size());
+    SkFontArguments args;
+    args.setCollectionIndex(ttcIndex);
+    args.setVariationDesignPosition({skVariation.data(), static_cast<int>(skVariation.size())});
 
     sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
-    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(fontData), params));
+    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(fontData), args));
     if (face == NULL) {
         ALOGE("addFont failed to create font, invalid request");
         builder->axes.clear();
diff --git a/libs/hwui/jni/fonts/Font.cpp b/libs/hwui/jni/fonts/Font.cpp
index 5714cd1..996cdce 100644
--- a/libs/hwui/jni/fonts/Font.cpp
+++ b/libs/hwui/jni/fonts/Font.cpp
@@ -93,19 +93,19 @@
     sk_sp<SkData> data(SkData::MakeWithProc(fontPtr, fontSize,
             release_global_ref, reinterpret_cast<void*>(fontRef)));
 
-    FatVector<SkFontArguments::Axis, 2> skiaAxes;
+    FatVector<SkFontArguments::VariationPosition::Coordinate, 2> skVariation;
     for (const auto& axis : builder->axes) {
-        skiaAxes.emplace_back(SkFontArguments::Axis{axis.axisTag, axis.value});
+        skVariation.push_back({axis.axisTag, axis.value});
     }
 
     std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));
 
-    SkFontArguments params;
-    params.setCollectionIndex(ttcIndex);
-    params.setAxes(skiaAxes.data(), skiaAxes.size());
+    SkFontArguments args;
+    args.setCollectionIndex(ttcIndex);
+    args.setVariationDesignPosition({skVariation.data(), static_cast<int>(skVariation.size())});
 
     sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
-    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(fontData), params));
+    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(fontData), args));
     if (face == nullptr) {
         jniThrowException(env, "java/lang/IllegalArgumentException",
                           "Failed to create internal object. maybe invalid font data.");