Wear स्मार्टवॉच की होम स्क्रीन

Wear OS by Google स्मार्टवॉच के लिए ऐप्लिकेशन बनाएं.

ध्यान दें: जनवरी 2026 से, सभी Wear OS डिवाइसों पर वॉच फ़ेस इंस्टॉल करने के लिए, Watch Face Format का इस्तेमाल करना ज़रूरी है.

उपयोगकर्ताओं के लिए किए गए बदलावों के बारे में ज़्यादा जानने के लिए, सहायता केंद्र का यह लेख पढ़ें.

नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
17 दिसंबर, 2025 1.2.1 - 1.3.0-beta01 -

डिपेंडेंसी का एलान करना

Wear पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    // Use to implement wear watchfaces
    implementation "androidx.wear.watchface:watchface:1.2.1"

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear.watchface:watchface-editor:1.2.1"

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

Kotlin

dependencies {
    // Use to implement wear watchfaces
    implementation("androidx.wear.watchface:watchface:1.2.1")

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1"

    // Use to implement a watchface style and complication editor
    implementation("androidx.wear.watchface:watchface-editor:1.2.1")

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.3

वर्शन 1.3.0-beta01

17 दिसंबर, 2025

androidx.wear.watchface:watchface-*:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • स्टैटिक कॉम्प्लिकेशन के लिए, झलक दिखाने वाले डेटा की सुविधा जोड़ी गई है. इसमें कॉम्प्लिकेशन की सुविधा देने वाली कंपनी, अपने मेनिफ़ेस्ट में झलक दिखाने वाले स्टैटिक डेटा के बारे में बता सकती है. ज़्यादा जानकारी के लिए, androidx.wear.watchface.complications.data.parser.StaticPreviewDataParser देखें.
  • ComplicationTextFormatting यूटिलिटी क्लास को जोड़ा गया है. इसमें डेटा और समय को कम से कम शब्दों में फ़ॉर्मैट करने की सुविधा है. यह उन कॉम्प्लिकेशन के लिए फ़ायदेमंद है जहां जगह बहुत कम होती है.

एपीआई में हुए बदलाव

  • पहले एक्सपेरिमेंट के तौर पर उपलब्ध प्रॉपर्टी Renderer.watchfaceColors अब निजी है. इस प्रॉपर्टी को अब भी सार्वजनिक तौर पर ऐक्सेस किया जा सकता है. (Ifdf60, b/409363281)

गड़बड़ियां ठीक की गईं

  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन की ज़रूरत होती है. (I48968, b/407632515)

वर्शन 1.3.0-alpha07

23 अप्रैल, 2025

androidx.wear.watchface:watchface-*:1.3.0-alpha07 रिलीज़ हो गया है. वर्शन 1.3.0-alpha07 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • कुछ समय से, स्मार्टवॉच की होम स्क्रीन के UserStyle स्कीमा को तय किया जा सकता है. साथ ही, एक्सएमएल में ColorUserStyleSetting को तय किया जा सकता है.

एपीआई में हुए बदलाव

  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन की ज़रूरत होती है. (Idb6b5)
  • Watch Face Push API जोड़ा गया है. इससे Wear OS ऐप्लिकेशन, प्रोग्राम के हिसाब से स्मार्टवॉच पर होम स्क्रीन इंस्टॉल कर सकता है.

गड़बड़ियां ठीक की गईं

  • ComplicationProvider का इस्तेमाल करने वाले डेवलपर को 1.3.0-alpha06 वर्शन को अपग्रेड करने का सुझाव दिया जाता है. ऐसा इसलिए, क्योंकि WearOS के अगले वर्शन में ComplicationDataSourceUpdateRequester के साथ क्रैश होने वाली समस्या को ठीक कर दिया गया है.

वर्शन 1.3.0-alpha06

26 मार्च, 2025

androidx.wear.watchface:watchface-*:1.3.0-alpha06 रिलीज़ हो गया है. वर्शन 1.3.0-alpha06 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Wear Watchface Format के पक्ष में, Wear watchface APIs (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava, और watchface-style) को बंद कर दिया गया है. इन्हें AndroidX से भी हटा दिया जाएगा. कॉम्प्लिकेशन एपीआई अब सेवा में नहीं हैं और इन्हें हटा दिया जाएगा. (Ice960)
  • अब कॉम्प्लिकेशन एपीआई, WearSDK से सीधे तौर पर कम्यूनिकेट कर सकते हैं. इससे आईपीसी हॉप कम होने की वजह से, बेहतर तरीके से काम किया जा सकता है.

वर्शन 1.3.0-alpha05

15 जनवरी, 2025

androidx.wear.watchface:watchface-*:1.3.0-alpha05 रिलीज़ हो गया है. वर्शन 1.3.0-alpha05 में ये बदलाव शामिल हैं.

नई सुविधाएं

आम तौर पर, स्मार्टवॉच की होम स्क्रीन पर ListUserStyle का इस्तेमाल करके, उपयोगकर्ता रंगों को चुन सकते हैं. यह तरीका काम करता है, लेकिन इसमें आइकॉन को ब्लूटूथ के ज़रिए कंपैनियन एडिटर को भेजना पड़ता है. यह तरीका सही नहीं है. इसलिए, हमने ColorUserStyleSetting पेश किया है. इसमें पेलोड, हर स्टाइल के हिसाब से एक या उससे ज़्यादा रंगों की सूची होती है. इसका वायर फ़ॉर्मैट काफ़ी छोटा होता है.

हमने ओईएम के लिए एक सुविधा जोड़ी है. इससे ओईएम को विजेट उपलब्ध कराने वाली कंपनियां, ComplicationData में अतिरिक्त जानकारी जोड़ सकती हैं. इसका इस्तेमाल ओईएम की स्मार्टवॉच की होम स्क्रीन पर किया जा सकता है.

एपीआई में हुए बदलाव

  • UserStyleSetting और UserStyleOption क्लास में अब बिल्डर मौजूद हैं. इन्हें बनाने का यही तरीका सुझाया जाता है. (Iacd03)
  • ComplicationData में एक्स्ट्रा पास करने की सुविधा. इसका इस्तेमाल ओईएम के लिए किया जाता है. ओईएम, कॉम्प्लिकेशन की सुविधा देने वाले और स्मार्टवॉच की होम स्क्रीन, दोनों को कंट्रोल करते हैं. अतिरिक्त सेटिंग करने के लिए, com.google.android.wearable.permission.COMPLICATION_EXTRAS के लिए खास अनुमति होना ज़रूरी है. (I4e3b2)
  • आम तौर पर, स्मार्टवॉच की होम स्क्रीन पर ListUserStyle का इस्तेमाल करके, उपयोगकर्ता को रंग चुनने की सुविधा मिलती है. हर ListUserStyle के लिए एक आइकॉन होता है.ListOption UserStyle स्कीमा को ब्लूटूथ पर भेजा जाता है. इसलिए, स्कीमा का साइज़ कम रखना ज़रूरी है. अगर कई आइकॉन की वजह से रंग के कई विकल्प दिए जाते हैं, तो इससे समस्या हो सकती है. इसके लिए, हमने ColorUserStyleSetting जोड़ा है. इसमें आइकॉन के बजाय रंगों की सूची होती है, जो ज़्यादा कॉम्पैक्ट होती है. (Ib542e)
  • ColorUserStyleSetting और ColorOption का इस्तेमाल करने के लिए, एपीआई 34 की ज़रूरत होती है. (I8771d)

गड़बड़ियां ठीक की गईं

  • यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए: -Xjspecify-annotations=strict (यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है). (Ifd363, b/326456246)

वर्शन 1.3.0-alpha04

18 सितंबर, 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha04 रिलीज़ हो गया है. वर्शन 1.3.0-alpha04 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • UserStyleSettings और UserStyleOptions में आइकॉन को लेज़ी लोडिंग करने की सुविधा जोड़ी गई है. इससे वॉच फ़ेस लोड करने की परफ़ॉर्मेंस बेहतर होती है. (Iaf43d)
  • Watchface.setUpdateScreenshotOnConfigurationChange की मदद से, सिस्टम कॉन्फ़िगरेशन में बदलाव होने पर अपडेट किए गए स्क्रीनशॉट लेने का विकल्प जोड़ा गया है. उदाहरण के लिए, अगर स्थान-भाषा बदल गई है. डिफ़ॉल्ट रूप से, यह सेटिंग बंद होती है. (I765a1)

गड़बड़ियां ठीक की गईं

  • नए प्लैटफ़ॉर्म एपीआई को ऐक्सेस करने के लिए, मैन्युअल तरीके से आउटलाइन बनाने की सुविधा हटा दी गई है. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे, R8 का वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर, एपीआई मॉडलिंग के ज़रिए यह काम अपने-आप हो जाता है. साथ ही, AGP 8.1 या इसके बाद के वर्शन (जैसे, D8 का वर्शन 8.1) का इस्तेमाल करने पर, सभी बिल्ड के लिए यह काम अपने-आप हो जाता है. AGP का इस्तेमाल न करने वाले क्लाइंट को, D8 के 8.1 या उसके बाद के वर्शन पर अपडेट करने का सुझाव दिया जाता है. ज़्यादा जानकारी के लिए यह लेख देखें. (Ia60e0, b/345472586)

वर्शन 1.3.0-alpha03

17 अप्रैल, 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha03 रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • हमने EditorSession#setOverrideComplications जोड़ा है. इससे, वॉच फ़ेस के मौजूदा इंस्टेंस के ComplicationData को कुछ समय के लिए सेट किया जाता है. अगर जटिलताओं में बार-बार बदलाव नहीं होता है, तो EditorSession#renderWatchFaceToBitmap के ज़रिए ओवरराइड पास करने के मुकाबले यह तरीका ज़्यादा असरदार होता है. (I19384)

गड़बड़ियां ठीक की गईं

  • इससे पहले, selectComplicationDataForInstant किसी भी टाइमलाइन के लिए toApiComplicationData को कॉल कर रहा था. इसका मतलब है कि बाद का === रेफ़रंस इक्वैलिटी टेस्ट हमेशा फ़ेल होगा. इसका मतलब है कि हर फ़्रेम में जटिलताएं फिर से लोड हो रही थीं. इससे बैटरी खत्म हो रही थी. (717406)

वर्शन 1.3.0-alpha02

3 अप्रैल, 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha02 रिलीज़ हो गया है. वर्शन 1.3.0-alpha02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • अब हम सबसे अच्छे और selectedData की तुलना करने के लिए, रेफ़रंस इक्वलिटी का इस्तेमाल करते हैं. ऐसा इसलिए, क्योंकि इक्वल ऑपरेटर का इस्तेमाल करने में ज़्यादा समय लगता है. (446b00)

एपीआई में हुए बदलाव

  • हमने GoalProgressComplicationData के लिए, फ़ॉलबैक की सुविधा के बिना डाइनैमिक एपीआई जोड़ा है. (c33264)

वर्शन 1.3.0-alpha01

7 फ़रवरी, 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • WatchFaceServices को एक साथ शुरू किया जा सकता है. इसलिए, इन्हें स्टेटलेस होना चाहिए. इसके लिए, हमने StatefulWatchFaceService जोड़ा है. इसमें createExtra() की ओर से बनाया गया उपयोगकर्ता तय किया गया अतिरिक्त पैरामीटर, शुरू होने के दौरान कॉल किए गए सभी ओवरराइड में पास किया जाता है.
  • GlesRenderer2 में अब कंस्ट्रक्टर ओवरलोड है. इससे, एट्रिब्यूट की एक सूची तय की जा सकती है, ताकि eglChooseConfig के साथ बारी-बारी से उन्हें आज़माया जा सके.

एपीआई में हुए बदलाव

  • StatefulWatchFaceService अब getComplicationSlotInflationFactory को बदलने की सुविधा देता है. इसमें createExtra() के बनाए गए उपयोगकर्ता के तय किए गए अतिरिक्त पैरामीटर को पास किया जाता है. (I82d9f)
  • कुछ वॉच फ़ेस को, createUserStyleSchema के दौरान बनाए गए सहायक डेटा को, शुरू करने के अन्य तरीकों के साथ शेयर करना होता है. कोई बेहतर विकल्प न होने की वजह से, डेवलपर आम तौर पर अपने WatchFaceServices को स्टेटफ़ुल बनाते थे. यह खतरनाक है, क्योंकि एक साथ कई इंस्टेंस बनाए जा सकते हैं. इससे बग आ सकते हैं. इस समस्या को हल करने के लिए, हमने StatefulWatchFaceService और StatefulWatchFaceRuntimeService को लॉन्च किया है. इनमें createExtra(), उपयोगकर्ता की ओर से तय किया गया टाइप बनाता है और इसे पैरामीटर के तौर पर अलग-अलग क्रिएट मेथड में पास किया जाता है. (If8a99)
  • हमने InteractiveWatchFaceClient में getUserStyleFlavors को जोड़ा है. यह मुख्य रूप से ओईएम के लिए काम का है. (I0f5d8)
  • GlesRenderer2 में अब कंस्ट्रक्टर ओवरलोड है. इससे, एट्रिब्यूट की एक सूची तय की जा सकती है, ताकि eglChooseConfig के साथ बारी-बारी से उन्हें आज़माया जा सके. उदाहरण के लिए, इससे आपको पहले एंटी-एलियासिंग के साथ कॉन्फ़िगरेशन आज़माने की सुविधा मिलती है. साथ ही, ज़रूरत पड़ने पर बिना एंटी-एलियासिंग वाले कॉन्फ़िगरेशन पर वापस जाने की सुविधा मिलती है. (I1ba74)
  • Android U से, WearOS में SystemDataSources.DATA_SOURCE_HEART_RATE के काम करने की सुविधा जोड़ी जाएगी. इस कॉम्प्लिकेशन में सिर्फ़ SHORT_TEXT कॉम्प्लिकेशन काम करते हैं. हालांकि, ComplicationSlot के लिए यह सुझाव दिया जाता है कि वह SMALL_IMAGE को भी स्वीकार करे. ऐसा इसलिए, क्योंकि ओईएम लाइव वैल्यू के बजाय, अपने हेल्थ ऐप्लिकेशन का शॉर्टकट दिखाने का विकल्प चुन सकते हैं. (I34223)
  • हमने METADATA_KEY_CONFIG_RESTORE_SUPPORTED जोड़ा है. Android U और इसके बाद के वर्शन में, यह कंट्रोल करता है कि METADATA_KEY_DATA_SOURCE_CONFIG_ACTION के साथ कॉम्प्लिकेशन डेटा सोर्स के लिए, बैकअप से सिस्टम को वापस लाने पर क्या होता है. सिस्टम डिफ़ॉल्ट रूप से यह मान लेता है कि कॉम्प्लिकेशन डेटा सोर्स सेवा, कॉन्फ़िगरेशन के किसी भी डेटा का बैकअप लेने की सुविधा देती है. हालांकि, अगर ऐसा नहीं होता है, तो वह मेटाडेटा सेटिंग METADATA_KEY_DATA_SOURCE_CONFIG_ACTION को false के तौर पर जोड़ सकता है. इससे कॉम्प्लिकेशन स्लॉट को कॉन्फ़िगर नहीं किया गया के तौर पर मार्क किया जाएगा. (I6c505)

वर्शन 1.2

वर्शन 1.2.1

24 जनवरी, 2024

androidx.wear.watchface:watchface-*:1.2.1 रिलीज़ हो गया है. वर्शन 1.2.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Samsung Galaxy Watch 4, 5, और 6 पर ऐप्लिकेशन के क्रैश होने की समस्या ठीक की गई. (43f0b0)

वर्शन 1.2.0

29 नवंबर, 2023

androidx.wear.watchface:watchface-*:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये बदलाव शामिल हैं.

1.1.0 के बाद हुए अहम बदलाव

  • हमने कुछ नई तरह की कॉम्प्लिकेशन सुविधाएं जोड़ी हैं. इनका इस्तेमाल Android T से किया जा सकता है:
    • GoalProgressComplicationData, जो RangedValueComplicationData से मिलता-जुलता है. हालांकि, यह किसी ऐसे लक्ष्य की ओर बढ़ने के लिए होता है जहां कम से कम वैल्यू अपने-आप शून्य होती है. साथ ही, वैल्यू को targetValue से ज़्यादा होने की अनुमति होती है.
    • WeightedElementsComplicationData में एलिमेंट की एक ऐरे (वज़न और रंग के जोड़े) शामिल होती है. साथ ही, इसमें टेक्स्ट/टाइटल/इमेज भी शामिल की जा सकती है. इन्हें पाई चार्ट के तौर पर दिखाया जा सकता है. इसमें कॉन्टेक्स्ट के हिसाब से रंगों का सही इस्तेमाल करना ज़रूरी है, क्योंकि आम तौर पर कॉम्प्लिकेशन में लेबल दिखाने के लिए जगह नहीं होती.
  • हमने RangedValueComplicationData में, वैकल्पिक ColorRanges के काम करने की सुविधा जोड़ी है. आम तौर पर, वॉच फ़ेस के चुने गए रंगों में कॉम्प्लिकेशन रेंडर किए जाते हैं.हालांकि, कभी-कभी ComplicationDataSource रंगों को सेट करने के लिए सबसे सही जगह होती है. उदाहरण के लिए, जब उनका कोई खास सिमैंटिक मतलब होता है. उदाहरण के लिए, तापमान के लिए लाल से नीला.
  • अब लगभग हर तरह के ComplicationData में SmallImages का इस्तेमाल किया जा सकता है.
  • हमने ComplicationDisplayPolicy जोड़ा है. DO_NOT_SHOW_WHEN_DEVICE_LOCKED, इस सुविधा के साथ काम करने वाली स्मार्टवॉच की होम स्क्रीन को यह निर्देश देता है कि डिवाइस लॉक होने पर विजेट न दिखाए.
  • Android T से, OEM यह तय कर पाएंगे कि जटिलता से जुड़ा अनुरोध, android.support.wearable.complications.SAFE_WATCH_FACES के हिसाब से तय की गई सूची में मौजूद किसी वॉच फ़ेस से आया है या नहीं. यह सूची, android.support.wearable.complications.SAFE_WATCH_FACES के ज़रिए, सेवा देने वाली कंपनी के मेनिफ़ेस्ट में मौजूद मेटाडेटा में तय की जाती है.ComplicationRequest#isForSafeWatchFace TargetWatchFaceSafety.UNKNOWN` के अलावा कोई और वैल्यू पाने के लिए, सेवा देने वाली कंपनी के पास com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE अनुमति होनी चाहिए.
  • UserStyleFlavors अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं है.

वर्शन 1.2.0-rc01

18 अक्टूबर, 2023

androidx.wear.watchface:watchface-*:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये बदलाव शामिल हैं.

वर्शन 1.2.0-beta02

6 सितंबर, 2023

androidx.wear.watchface:watchface-*:1.2.0-beta02 रिलीज़ हो गया है. वर्शन 1.2.0-beta02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • SuspendingComplicationDataSourceService#onDestroy अब खुला है. कृपया ध्यान दें कि सिस्टम के डिफ़ॉल्ट मौसम की जानकारी देने वाले कॉम्प्लिकेशन के लिए सहायता हटा दी गई है.

एपीआई में हुए बदलाव

  • "मौसम की जानकारी देने वाले नए डेटा सोर्स को ऐक्सेस करने की सुविधा" को पहले जैसा करें. (I6f335)

वर्शन 1.2.0-beta01

23 अगस्त, 2023

androidx.wear.watchface:watchface-*:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Android T से, WearOS में अब मौसम की जानकारी देने वाली सिस्टम कॉम्प्लिकेशन की सुविधा डिफ़ॉल्ट रूप से काम करेगी.

एपीआई में हुए बदलाव

  • Android घड़ी के विजेट के लिए, मौसम की जानकारी देने वाले सिस्टम का डिफ़ॉल्ट फ़ॉलबैक जोड़ें. (Ia0994)
  • इस पैच में, अमरूद के रैपर के साथ-साथ WatchFaceRuntimeService और WatchFaceControlClient.createWatchFaceRuntimeControlClient को जोड़ा गया है. इनसे, वॉच फ़ेस के रनटाइम के लिए सहायता मिलती है. ये एक खास तरह के वॉच फ़ेस होते हैं, जो किसी दूसरे पैकेज से अपनी परिभाषा लोड करते हैं. फ़िलहाल, WearOS सिर्फ़ Android वॉच फ़ेस फ़ॉर्मैट के रनटाइम के साथ काम करता है. (I2799f)
  • यह पैच, aosp/2636578 का फ़ॉलो अप है. इसमें हमने int defs का नाम बदला है, ताकि WatchFaceType, CanvasType, TapType या ComplicationsSlotBoundsType पर निर्भर किसी भी कोड को बदलने की ज़रूरत न पड़े. (I4098b)
  • एपीआई फ़ाइलों को अपडेट किया गया है, ताकि कंपैटिबिलिटी सप्रेशन के बारे में एनोटेट किया जा सके. (I8e87a, b/287516207)
  • इस पैच में, WatchFaceTypes में WatchFaceType कॉन्सटेंट, CanvasTypes में CanvasType कॉन्सटेंट, TapTypes में TapType कॉन्सटेंट, और ComplicationsSlotBoundsType में ComplicationsSlotBoundsType कॉन्सटेंट दिखाए गए हैं. (I3b85a, b/288750666)
  • WatchFace.OverlayStyle का इस्तेमाल बहुत कम होता है. साथ ही, ओईएम इसे अच्छी तरह से सपोर्ट नहीं करते हैं. इसलिए, हम इसे बंद कर रहे हैं. हालांकि, इसे बाद में हटाया जाएगा. (I7344a)

वर्शन 1.2.0-alpha09

21 जून, 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha09 रिलीज़ हो गया है. वर्शन 1.2.0-alpha09 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • RangedValueComplicationData.Builder अब DynamicFloat को स्वीकार करता है. साथ ही, ComplicationText के सबक्लास के तौर पर एक नया DynamicComplicationText उपलब्ध है. ये दोनों, डाइनैमिक एक्सप्रेशन के साथ-साथ प्लैटफ़ॉर्म बाइंडिंग का इस्तेमाल कर सकते हैं. ये बाइंडिंग, Wear 4 की सुविधा वाले डिवाइसों पर 1 हर्ट्ज़ पर अपडेट होती हैं.

एपीआई में हुए बदलाव

  • हर दिन की दूरी, हर दिन खर्च की गई कैलोरी, और हर दिन चढ़े गए फ़्लोर के लिए डाइनैमिक टाइप जोड़े गए. प्लैटफ़ॉर्म के स्वास्थ्य से जुड़े सोर्स के लिए कुंजियां अब PlatformHealthSources.Keys (Ib7637) में हैं
  • धड़कन की दर और हर दिन चले गए कदमों की जानकारी देने के लिए, PlatformDataProvider लागू करें. SensorGateway इंटरफ़ेस को सार्वजनिक एपीआई से हटा दिया गया है. (I55b84)
  • StateEntryValue का नाम बदलकर DynamicDataValue कर दें. साथ ही, स्टेट एपीआई को अपडेट करके DynamicDataKey का इस्तेमाल करें. (If1c01)
  • ऐप्लिकेशन की पुश की गई स्थिति को ऐक्सेस करने के लिए AppDataKey जोड़ें; प्लैटफ़ॉर्म के डेटा को ऐक्सेस करने के लिए PlatformDataKey जोड़ें; StateStore में नेमस्पेस का इस्तेमाल करने की सुविधा जोड़ें. (I7985e)
  • DynamicTypeEvaluator से enable/disablePlatformSource तरीके हटा दिए गए हैं. अपडेट करने की ज़िम्मेदारी, कॉल करने वाले व्यक्ति की होनी चाहिए. (I78c6d)
  • इससे बाउंड डेटा टाइप के साइज़ को सीमित किया जा सकता है. (Ie2966)

वर्शन 1.2.0-alpha08

19 अप्रैल, 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha08 रिलीज़ हो गया है. वर्शन 1.2.0-alpha08 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Android T से, खास अधिकार वाले com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE कॉम्प्लिकेशन उपलब्ध कराने वाले लोग, androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES मेटाडेटा रजिस्टर कर सकते हैं. यह सुरक्षित वॉच फ़ेस के लिए android.support.wearable.complications.SUPPORTED_TYPES को बदल देता है. इसका मतलब है कि कॉम्प्लिकेशन की सुविधा देने वाली कंपनी, भरोसेमंद और गैर-भरोसेमंद वॉच फ़ेस के लिए अलग-अलग तरह के कॉम्प्लिकेशन दिखा सकती है.

एपीआई में हुए बदलाव

  • प्रॉपर्टी में @Deprecated क्लास का प्रमोशन (I882d1, b/271441831)
  • Enum.valueOf के लिए वैल्यू पैरामीटर का नाम बदला गया (Ia9b89)
  • enum valueOf (I818fe) से ज़्यादा थ्रो किए गए अपवाद
  • हमने renderWatchFaceToSurface को हटा दिया है. अब createRemoteWatchFaceView का इस्तेमाल किया जाएगा. यह SurfaceControlViewHost पर बनाया गया है. इससे कॉल करने वाला व्यक्ति, वॉच फ़ेस से व्यू एम्बेड कर सकता है. यह तब रेंडर होता है, जब क्लाइंट RemoteWatchFaceViewHost#renderWatchFace को कॉल करता है. (Ib311d)
  • हमने renderWatchFaceToSurface को InteractiveWatchFaceClient, HeadlessWatchFaceClient, और EditorSession में जोड़ दिया है. आम तौर पर, यह बिटमैप में रेंडर करने से ज़्यादा बेहतर परफ़ॉर्म करेगा. (Ieacad)
  • ObservableStateStore का नाम बदलकर StateStore कर दिया गया है. (Ieb0e2)
  • कंस्ट्रक्टर आर्ग्युमेंट के बजाय DynamicTypeEvaluator.Builder जोड़ा गया है, ताकि ज़्यादा वैकल्पिक आर्ग्युमेंट इस्तेमाल किए जा सकें. इनमें ObservableStateStore भी शामिल है, जो अब डिफ़ॉल्ट रूप से खाली स्टोर पर सेट है. (I6f832)
  • DynamicTypeEvaluator में पैरामीटर का क्रम बदला गया. (Ic1ba4)
  • एक्ज़ीक्यूटर को DynamicTypeEvaluator.bind तरीकों में जोड़ दिया गया है. (I346ab)
  • हमने BoundDynamicType में startEvaluation तरीका जोड़ा है, ताकि डाइनैमिक टाइप बाइंड होने के बाद, जांच शुरू की जा सके. (I19908)
  • com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE की सुविधा देने वाले कॉम्प्लिकेशन प्रोवाइडर, androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES मेटाडेटा रजिस्टर कर सकते हैं. इससे सुरक्षित वॉच फ़ेस के लिए, android.support.wearable.complications.SUPPORTED_TYPES को बदला जा सकता है. (Id1c73)
  • हमने CustomValueUserStyleSettings2 का नाम बदलकर LargeCustomValueUserStyleSettings कर दिया है. (Ic17ac)

गड़बड़ियां ठीक की गईं

  • DynamicTypeValueReceiver#onPreUpdate को हटा दिया गया है. (I2dc35)

वर्शन 1.2.0-alpha07

22 फ़रवरी, 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha07 रिलीज़ हो गया है. वर्शन 1.2.0-alpha07 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Android T से, OEM यह तय कर पाएंगे कि जटिलता से जुड़ा अनुरोध, android.support.wearable.complications.SAFE_WATCH_FACES के हिसाब से तय की गई सूची में मौजूद किसी वॉच फ़ेस से आया है या नहीं. यह सूची, android.support.wearable.complications.SAFE_WATCH_FACES के ज़रिए, सेवा देने वाली कंपनी के मेनिफ़ेस्ट में मौजूद मेटाडेटा में तय की जाती है.ComplicationRequest#isForSafeWatchFace TargetWatchFaceSafety.UNKNOWN के अलावा किसी और तरह का डेटा पाने के लिए, सेवा देने वाली कंपनी को com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE अनुमति की ज़रूरत होगी.

  • Android T CustomValueUserStyleSetting2 का इस्तेमाल भी किया जा सकता है. इसमें 12.5 केबी तक का डेटा सेव किया जा सकता है. CustomValueUserStyleSetting के लिए, पहले यह सीमा 1 केबी थी. साइज की सीमाएं बढ़ने के बावजूद, वॉच फ़ेस डेवलपर को डेटा का साइज़ कम रखने के लिए कहा जाता है. ऐसा इसलिए, क्योंकि बदलाव करते समय सेटिंग को ब्लूटूथ के ज़रिए भेजा जाता है और ब्लूटूथ बैंडविड्थ सीमित होता है.

एपीआई में हुए बदलाव

  • हमने GlesRenderer और GlesRenderer2 में एक वैकल्पिक पैरामीटर eglContextAttribList जोड़ा है. इसकी मदद से, EGL14.eglCreateContext को पास किया गया EGL14.EGL_CONTEXT_CLIENT_VERSION सेट किया जा सकता है. (I2a83e)
  • हमने स्मार्टवॉच की होम स्क्रीन की लाइब्रेरी को java.util.function.Consumer के बजाय androidx.core.util.Consumer पर माइग्रेट कर दिया है. (I273f5)
  • KT प्रॉपर्टी ऐक्सेसर से ज़्यादा थ्रो किए गए अपवाद (Iff9d9)
  • हमने InteractiveWatchFaceClient.isComplicationDisplayPolicySupported जोड़ा है, ताकि क्लाइंट यह तय कर सके कि उसे पुरानी वॉच फ़ेस की ओर से, इस सुविधा को चालू करना है या नहीं. (I24c89)
  • हमने तय किया है कि isForSafeWatchFace को तीन स्थितियों वाला IntDef होना चाहिए. (Ief2f7)
  • Android T के लिए, हमने ComplicationRequest.isForSafeWatchFace लॉन्च किया है. इसका इस्तेमाल ओईएम कर सकते हैं. इसके लिए, com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE की ज़रूरत होती है. सिस्टम इमेज में मौजूद डेटा सोर्स के लिए, यह वैल्यू तब सही होती है, जब अनुरोध करने वाला वॉच फ़ेस, डेटा सोर्स के मेनिफ़ेस्ट में बताए गए सुरक्षित वॉच फ़ेस की सूची में शामिल हो. (I0cbb6)
  • Android T के लिए, हमने CustomValueUserStyleSetting2 जोड़ा है. इसमें 12.5 केबी तक का डेटा सेव किया जा सकता है. CustomValueUserStyleSetting के लिए, पहले यह सीमा 1 केबी थी. (I0b100)

वर्शन 1.2.0-alpha06

25 जनवरी, 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha06 रिलीज़ हो गया है. वर्शन 1.2.0-alpha06 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • कॉम्प्लिकेशन प्लैटफ़ॉर्म बाइंडिंग की सुविधा जोड़ने पर काम चल रहा है. यह सुविधा अभी इस्तेमाल के लिए उपलब्ध नहीं है. हालांकि, हमारे साथ बने रहें!
  • हमने नए कॉम्प्लिकेशन टाइप, GOAL_PROGRESS और WEIGHTED_ELEMENTS के लिए एक्सएमएल ComplicationSlot सहायता जोड़ी है.

गड़बड़ियां ठीक की गईं

  • इस अपडेट में, उस समस्या को ठीक किया गया है जिसकी वजह से Samsung डिवाइसों पर, वॉच फ़ेस एडिटर को ठीक से रिलीज़ नहीं किया गया था. (3b5987)
  • इस अपडेट में एक गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, एक से ज़्यादा पसंदीदा वॉच फ़ेस के बीच स्विच करते समय, कभी-कभी Android स्मार्टवॉच के विजेट सही तरीके से नहीं दिखते थे. (b38ece)
  • perOptionScreenReaderNames के साथ सीरियलाइज़ेशन की गड़बड़ी को ठीक करता है. इससे वॉच फ़ेस क्रैश हो जाते थे. (e9f466)

वर्शन 1.2.0-alpha05

7 दिसंबर, 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha05 रिलीज़ हो गया है. वर्शन 1.2.0-alpha05 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • हमने कुछ समय पहले, क्रम के हिसाब से UserStyleSettings जोड़ने की सुविधा जोड़ी थी. अब Android T से, क्रम के हिसाब से एक से ज़्यादा ComplicationSlotsUserStyleSetting जोड़े जा सकते हैं. उपयोगकर्ता के स्टाइल चुनने के आधार पर, सिर्फ़ एक ComplicationSlotsUserStyleSetting चालू होगा.

  • हम ListOption और ComplicationSlotsOption के लिए स्क्रीन रीडर की सुविधा को बेहतर बना रहे हैं. इसके लिए, हम screenReaderName फ़ील्ड जोड़ रहे हैं. ध्यान दें कि Android T से पहले, इस फ़ील्ड को कंपैनियन एडिटर अनदेखा कर देंगे.

एपीआई में हुए बदलाव

  • हमने ListOption और ComplicationSlotsOption में एक नया screenReaderName फ़ील्ड जोड़ा है. इसका इस्तेमाल एडिटर कर सकते हैं. Android T से पहले के वर्शन वाले डिवाइसों पर, कंपैनियन एडिटर इसे अनदेखा कर देंगे. (I75326)
  • Android T से, स्टाइल के क्रम में कई ComplicationSlotsUserStyleSettings इस्तेमाल किए जा सकते हैं. हालांकि, इनमें से सिर्फ़ एक ComplicationSlotsUserStyleSettings को एक बार में चालू किया जा सकता है. हमने UserStyleSchema में एक यूटिलिटी फ़ंक्शन findComplicationSlotsOptionForUserStyle जोड़ा है, ताकि अगर कोई ComplicationSlotsOption चालू हो, तो उसे ढूंढने में मदद मिल सके. (Ic2b06)
  • RangedValuesTypes को RangedValueComplicationData के कंपैनियन ऑब्जेक्ट में शामिल कर दिया गया है. साथ ही, इनका नाम बदलकर TYPE_UNDEFINED और TYPE_RATING कर दिया गया है. इसके अलावा, एक नया TYPE_PERCENTAGE जोड़ा गया है. (I55d02)
  • हमने एक्सपेरिमेंटल DynamicFloat का नाम बदलकर FloatExpression कर दिया है और इसे @hide के तौर पर मार्क किया है. (Idf4f1)
  • @JvmDefaultWithCompatibility एनोटेशन जोड़ा गया (I8f206)

वर्शन 1.2.0-alpha04

9 नवंबर, 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha04 रिलीज़ हो गया है. वर्शन 1.2.0-alpha04 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • हमने Android T के लिए, दो नए कॉम्प्लिकेशन टाइप GoalProgressComplicationData और WeightedElementsComplicationData के लिए सहायता जोड़ी है.
  • GoalProgressComplicationData, RangedValueComplicationData से मिलता-जुलता है. हालांकि, इसकी वैल्यू टारगेट से ज़्यादा हो सकती है. RangedValueComplicationData के लिए, वैल्यू को [min .. max] रेंज में रखा जाता है. इसका असर विज़ुअल डिज़ाइन पर पड़ता है, जो हो सकता है कि सभी वॉच फ़ेस के लिए सही न हो.
  • GoalProgressComplicationData में पाई चार्ट और सामान्य डेटा के मिलते-जुलते ब्रेकडाउन के लिए सहायता जोड़ी गई है.
  • हमने RangedValueComplicationData में, ColorRamps के काम करने की सुविधा जोड़ी है. हालांकि, इसका इस्तेमाल करना ज़रूरी नहीं है.
  • Android T के लिए, हमने ComplicationData में ComplicationPersistencePolicy और setCachePolicy को जोड़ा है.फ़िलहाल, इसकी मदद से कोई सेवा देने वाली कंपनी यह कंट्रोल कर सकती है कि कॉम्प्लिकेशन को सेव किया जाए या नहीं. इसका मतलब है कि रीबूट करने के बाद भी इसे कैश मेमोरी में सेव किया जाए या नहीं. ज़्यादातर जटिलताओं के लिए, कैश मेमोरी कंट्रोल सेट करने की ज़रूरत नहीं होगी.हालांकि, ऐसा करने से उन जटिलताओं के लिए पुराने डेटा से जुड़े कुछ मामलों को ठीक किया जा सकता है जो अक्सर अपडेट होती हैं. उदाहरण के लिए, सेहत से जुड़े डेटा की जटिलताएं. हमने ComplicationDisplayPolicy भी जोड़ा है. इसमें DO_NOT_SHOW_WHEN_DEVICE_LOCKED, स्मार्टवॉच की होम स्क्रीन को यह निर्देश देता है कि डिवाइस लॉक होने पर विजेट न दिखाए. (Ic9574)

एपीआई में हुए बदलाव

  • GoalProgressComplicationData, WeightedElementsComplicationData, और ColorRamp अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (Ica9e2)
  • ComplicationPersistencePolicy और ComplicationDisplayPolicy को अब टी एपीआई के तौर पर सही तरीके से मार्क किया गया है. (I31d88)
  • अब बंद किए गए ComplicationSlotOverlay कंस्ट्रक्टर में DeprecationLevel.WARNING है. इसलिए, इसे फिर से Java से कॉल किया जा सकता है. (Ib308c)
  • हमने ComplicationRequestListener, CanvasComplication, ComplicationTapFilter, और InteractiveWatchFaceClient के साथ Java के काम न करने से जुड़ी कुछ समस्याओं को ठीक कर दिया है. इसके लिए, हमने उन्हें @JvmDefaultWithCompatibility (Id94fc) के साथ एनोटेट किया है
  • हमने एक्सपेरिमेंट के तौर पर उपलब्ध ProtoLayoutComplicationData और ListComplicationData को हटा दिया है. इनके लिए डेवलपर स्टोरी साफ़ तौर पर नहीं बताई गई थी. हम उम्मीद करते हैं कि आने वाले समय में हम इस पर फिर से विचार करेंगे. (I9df05)
  • हमने RangedValueComplicationData में ValueType को वापस जोड़ दिया है. WeightedElementsComplicationData अब बैकग्राउंड के रंग के साथ काम करता है. हमने DiscreteRangedValueComplicationData को हटा दिया है, क्योंकि इसकी सुविधाएं WeightedElementsComplicationData की सुविधाओं का सबसेट हैं. (I6446c)

गड़बड़ियां ठीक की गईं

  • बराबर के निशान और हैश कोड में isForScreenShot शामिल करें. पक्का करें कि onRenderParametersChanged को सही isForScreenshot वैल्यू (I04a41) मिली हो
  • हेडलेस क्लाइंट से WatchFaceControlService के लीक होने की समस्या ठीक की गई. (e90e00)

वर्शन 1.2.0-alpha03

5 अक्टूबर, 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha03 रिलीज़ हो गया है. वर्शन 1.2.0-alpha03 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • कोई नई सुविधा नहीं जोड़ी गई है. हालांकि, हमने होम स्क्रीन एडिटर की कुछ गड़बड़ियां ठीक की हैं.

एपीआई में हुए बदलाव

  • UserStyleSchema.userStyleSettings अब उपलब्ध नहीं है, क्योंकि rootUserStyleSettings अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं है (Ie96e3)
  • rootUserStyleSettings को एक्सपेरिमेंटल (I8d6b3) से बाहर ले जाएं
  • हमने WatchFaceColors को एक्सपेरिमेंट के तौर पर मार्क किया है, क्योंकि यह सभी सिस्टम के साथ काम नहीं करता (I6d75d)
  • DisconnectReasons को सार्वजनिक एपीआई में दिखाएं, ताकि यह IntDef के साथ काम कर सके. (I791f8)

गड़बड़ियां ठीक की गईं

  • अगर SysUI बंद हो जाता है, तो घड़ी पर खुले हुए एडिटर को बंद करें. अगर SysUI बंद हो जाता है और वॉच फ़ेस एडिटर बंद नहीं होता है, तो वॉच फ़ेस की स्थिति में बदलाव हो सकता है. ऐसा इसलिए, क्योंकि सिस्टम, उपयोगकर्ता की स्टाइल में हुए किसी भी बदलाव को सेव करने के लिए SysUI पर निर्भर करता है.(ba762a
  • ComplicationDataSourceInfoRetriever में मेमोरी लीक की समस्या ठीक की गई है. इसमें kotlin coroutine continuation, gc रूट के तौर पर काम कर रहा था और एडिटर की गतिविधि को बनाए रख रहा था.(33ee06)

वर्शन 1.2.0-alpha02

21 सितंबर, 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • कुछ वॉच फ़ेस में UserStyle के बाहर कॉन्फ़िगरेशन होता है, जिससे वॉच फ़ेस के विज़ुअल पर असर पड़ता है. उदाहरण के लिए, बैकग्राउंड फ़ोटो चुनना. हमने Renderer.sendPreviewImageNeedsUpdateRequest जोड़ा है. इसकी मदद से, वॉच फ़ेस अपडेट की गई झलक वाली इमेज का अनुरोध कर सकता है. ध्यान दें कि इसके लिए, सिस्टम को अपडेट करना ज़रूरी है.

  • हमने स्मार्टवॉच की होम स्क्रीन के लिए एक एपीआई भी जोड़ा है, ताकि वे सिस्टम को अपने रंग दिखा सकें. सिस्टम, इसके आधार पर अपनी कलर पैलेट चुन सकता है. ध्यान दें कि इसे फ़ॉलो-ऑन पैच में एक्सपेरिमेंटल बना दिया गया है.

  • अब लगभग हर तरह के ComplicationData में SmallImages का इस्तेमाल किया जा सकता है.

एपीआई में हुए बदलाव

  • कभी-कभी वॉलपेपर मैनेजर, इंजन से अलग हो सकता है और दूसरा इंजन बना सकता है. हमने DisconnectReason int def जोड़ा है. साथ ही, ClientDisconnectListener को एक नए तरीके से बढ़ाया है, जिसमें DisconnectReason शामिल है. इससे सुनने वाला व्यक्ति इंजन के अलग होने की प्रोसेस को देख सकता है. (I45cce)
  • ComplicationSlotOverlay कंस्ट्रक्टर (I157e8) में दो वैकल्पिक पैरामीटर nameResourceId और screenReaderResourceId जोड़े गए
  • हमने getOrCreateInteractiveWatchFaceClient के नए ओवरलोड के लिए, PreviewImageUpdateRequestedListener के साथ एक अमरूद रैपर जोड़ा है. (Ic31f0)
  • हमने Renderer.sendPreviewImageNeedsUpdateRequest जोड़ा है. यह उन वॉच फ़ेस के लिए काम का है जिनमें UserStyleSchema के बाहर की स्थिति होती है. इससे उनके दिखने के तरीके पर असर पड़ता है. उदाहरण के लिए, ऐसा वॉच फ़ेस जिसमें चुनने के लिए बैकग्राउंड इमेज होती है. क्लाइंट साइड पर, हमने इन अनुरोधों को देखने के लिए getOrCreateInteractiveWatchFaceClient में PreviewImageUpdateRequestedListener को एक वैकल्पिक पैरामीटर के तौर पर जोड़ा है. (Iff44a)
  • हमने WatchFaceColors को दिखाने के लिए एपीआई को आसान बना दिया है. अब रेंडरर पर watchFaceColors नाम की एक आसान प्रॉपर्टी है, जिसे वॉच फ़ेस सेट कर सकता है. स्टाइल में किसी भी तरह के बदलाव के जवाब में इसे ज़रूरत के हिसाब से अपडेट किया जाना चाहिए. रंग में हुए बदलावों को देखने के लिए, WallpaperManager का इस्तेमाल करने के बजाय, हमने InteractiveWatchFaceClient में OnWatchFaceColorsListener को जोड़ दिया है. (I490bc)
  • हमने एक WatchFaceColors क्लास जोड़ी है. इसमें स्मार्टवॉच की होम स्क्रीन के तीन सबसे अहम रंग शामिल हैं. साथ ही, हमने रेंडरर में ओपन मेथड watchfaceColors और notifyWatchFaceColorsChanged जोड़े हैं. इनकी मदद से सिस्टम, WallpaperManager.getWallpaperColors के ज़रिए स्मार्टवॉच की होम स्क्रीन के रंग पा सकता है. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData के साथ ही एक्सपेरिमेंट के तौर पर उपलब्ध DiscreteRangedValueComplicationData, GoalProgressComplicationData, और WeightedElementsComplicationData अब SmallImages के साथ काम करते हैं. अगर किसी वॉच फ़ेस को कई रंगों में कॉम्प्लिकेशन रेंडर करना है, तो अब उसके पास कई रंगों वाले SmallImage का इस्तेमाल करने का विकल्प है. इससे पहले, उसे एक ही रंग वाली इमेज का इस्तेमाल करना पड़ता था. (I257df)
  • PreviewImageUpdateRequestedListener को Consumer<> के तौर पर फिर से फ़ैक्टर करें (Ia875d)
  • कस्टम सिंगल ऐब्स्ट्रैक्ट मेथड (एसएएम) टाइप OnWatchfaceColorsListener को सामान्य Java एसएएम टाइप (उपयोगकर्ता) (I0c489) से बदलें
  • हमने getOrCreateInteractiveWatchFaceClient और listenableGetOrCreateInteractiveWatchFaceClient के उन पुराने तरीकों को बंद कर दिया है जिनमें PreviewImageUpdateRequestedListener के बारे में नहीं बताया गया है. (Iec502)

गड़बड़ियां ठीक की गईं

  • DisconnectReason.BINDER_DIED का नाम बदलकर DisconnectReason.ENGINE_DIED कर दिया गया है. (I4eb0e)

वर्शन 1.2.0-alpha01

10 अगस्त, 2022

androidx.wear.watchface:watchface-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • हमने कई नए कॉम्प्लिकेशन फ़ॉर्मैट के लिए, एक्सपेरिमेंट के तौर पर सहायता उपलब्ध कराई है. इस पर अभी काम चल रहा है. इन नए फ़ॉर्मैट में बिना किसी सूचना के बदलाव किया जा सकता है. फ़िलहाल, CanvasComplicationDrawable से रेंडरर की सुविधा उपलब्ध नहीं है.
  • हमने कॉम्प्लिकेशन स्लॉट में वैकल्पिक मार्जिन भी जोड़े हैं. इससे छोटे कॉम्प्लिकेशन पर टैप करना आसान हो जाता है.

एपीआई में हुए बदलाव

  • एक्सपेरिमेंट के तौर पर उपलब्ध BoundingArc क्लास अब बदली नहीं जा सकती. (If624a)
  • छोटे कॉम्प्लिकेशन पर टैप करना मुश्किल हो सकता है. इस समस्या को कम करने के लिए, हमने मार्जिन की सुविधा लॉन्च की है. इससे रेंडरिंग पर असर डाले बिना, टैप किए जा सकने वाले एरिया को बढ़ाया जा सकता है. जब तक कोड या एक्सएमएल के ज़रिए मार्जिन तय न किया जाए, तब तक ComplciationSlots के मार्जिन का साइज़ शून्य होता है. (I14089)
  • फ़ैक्ट्री इंस्टेंस को नॉन-शून्य वैल्यू के तौर पर दिखाने के लिए, getComplicationSlotInflationFactory(CurrentUserStyleRepository) सिग्नेचर में बदलाव किया गया. पहले, शून्य वैल्यू दिखाना एक गड़बड़ी थी. इसलिए, एपीआई कॉन्ट्रैक्ट को ज़्यादा साफ़ तौर पर बताया जा रहा है. (I0fcc0)
  • हमने WatchFaceService.getComplicationSlotInflationFactory तरीके में currentUserStyleRepository आर्ग्युमेंट जोड़ा है, ताकि यह createComplicationSlotsManager के साथ काम कर सके. (I2ddd2)
  • UserStyleFlavors अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (I69cdc)
  • हमने RangedValueComplicationData से एक्सपेरिमेंट के तौर पर उपलब्ध ValueType को हटा दिया है. इसके बजाय, हमने एक्सपेरिमेंट के तौर पर DiscreteRangedValueComplicationData को लॉन्च किया है. यह RangedValueComplicationData की तरह ही है. हालांकि, इसमें पूर्णांक की रेंज और वैल्यू अलग होती है. हमने एक्सपेरिमेंट के तौर पर GoalProgressComplicationData भी लॉन्च किया है. यह RangedValueComplicationData जैसा ही है. हालांकि, इसका इस्तेमाल किसी ऐसे लक्ष्य की प्रोग्रेस के लिए किया जाता है जहां कम से कम वैल्यू डिफ़ॉल्ट रूप से शून्य होती है. साथ ही, वैल्यू को targetValue से ज़्यादा होने की अनुमति होती है. ध्यान दें कि सभी RangedValue वैरिएंट के लिए, कम से कम एक monochromeImage, text या title तय किया जाना चाहिए. (I9590c)
  • हमने boundsWithMargins को ComplicationSlotState से हटा दिया है, क्योंकि सिस्टम सॉफ़्टवेयर में इसका इस्तेमाल नहीं किया जाता. (I42e26)
  • हमने WeightedElementsComplicationData के लिए एक्सपेरिमेंटल सपोर्ट जोड़ा है. इसमें एलिमेंट (वज़न और रंग के जोड़े) की एक सीरीज़ होती है. साथ ही, इसमें टेक्स्ट/टाइटल/इमेज जोड़ने का विकल्प भी होता है. इन्हें पाई चार्ट के तौर पर दिखाया जा सकता है. इसमें कॉन्टेक्स्ट के हिसाब से रंगों का सही इस्तेमाल करना ज़रूरी है, क्योंकि आम तौर पर कॉम्प्लिकेशन में लेबल दिखाने के लिए जगह नहीं होती. (I87eea)
  • एक्सपेरिमेंट के तौर पर उपलब्ध ColorRamps का इस्तेमाल RangedValueComplicationData और GoalProgressComplicationData कर सकते हैं. अब इसकी मदद से, ज़्यादा से ज़्यादा सात रंगों का क्रम तय किया जा सकता है. साथ ही, यह फ़्लैग किया जा सकता है कि रंगों को आसानी से बदला जाना चाहिए या रंग के बराबर साइज़ वाले सॉलिड स्टेप रेंडर किए जाने चाहिए. (I9f5bf)
  • RangedValueComplicationData.drawSegmented को valueType में बदल दिया गया है. यह एक पूर्णांक है. इसके साथ ValueType IntDef भी है, जो रेंज वाली वैल्यू को सिमैंटिक अर्थ देता है. इसका इस्तेमाल कॉम्प्लिकेशन रेंडरर, स्टाइलिंग पर असर डालने के लिए कर सकता है. (I0616b)
  • हमने ColorRanges से RangedValueComplicationData में बदलने के लिए, एक्सपेरिमेंट के तौर पर सहायता देने की सुविधा जोड़ी है. आम तौर पर, वॉच फ़ेस के चुने गए रंगों में कॉम्प्लिकेशन रेंडर किए जाते हैं.हालांकि, कभी-कभी ComplicationDataSource रंगों को सेट करने के लिए सबसे सही जगह होती है. उदाहरण के लिए, जब उनका कोई खास सिमैंटिक मतलब होता है. उदाहरण के लिए, तापमान के लिए लाल से नीला. (I5153a)
  • हमने RangedValueComplicationData में, एक्सपेरिमेंट के तौर पर उपलब्ध drawSegmented हिंट को जोड़ा है. इससे रेंडरर को यह सिग्नल मिलता है कि वह रेंज वाली वैल्यू इंडिकेटर को सेगमेंट के साथ दिखाए. इसमें 1 सेगमेंट = 1 यूनिट होता है. (I7d7c1)

गड़बड़ियां ठीक की गईं

  • हमने ComplicationSlotBounds को पहले से तय किए गए स्क्रीन कोऑर्डिनेट सिस्टम के हिसाब से तय करने की सुविधा जोड़ी है. (I0985d)

वर्शन 1.1

वर्शन 1.1.1

10 अगस्त, 2022

androidx.wear.watchface:watchface-*:1.1.1 रिलीज़ हो गया है. वर्शन 1.1.1 में ये बदलाव शामिल हैं.

  • इस रिलीज़ में गड़बड़ियां ठीक की गई हैं. इसलिए, हम 1.1.0 वर्शन इस्तेमाल करने वाले लोगों को अपग्रेड करने का सुझाव देते हैं.

गड़बड़ियां ठीक की गईं

  • वॉच फ़ेस को एसिंक्रोनस तरीके से शुरू किया जाता है. अगर वॉच फ़ेस के तैयार होने से पहले कोई विजेट मिल जाता है, तो उसे pendingInitialComplications सूची में डाल दिया जाता है और बाद में लागू किया जाता है. माफ़ करें, pendingInitialComplications को बहुत जल्द लागू कर दिया गया था. इसका मतलब है कि वॉच फ़ेस को शुरू करने के दौरान, एक ऐसा समय था जब कॉम्प्लिकेशन को अब भी pendingInitialComplications पर रखा जाता था और उन्हें अनदेखा कर दिया जाता था. अब इस समस्या को ठीक कर दिया गया है. इसके अलावा, इस पैच में एक गड़बड़ी को ठीक किया गया है. इसमें ComplicationRenderer, प्लेसहोल्डर को एसिंक्रोनस तरीके से लोड करने की कोशिश कर रहा था. हालांकि, ऐसा नहीं हो सका. इस वजह से, कंपाइलेशन ग्राफ़िक कभी अपडेट नहीं हुआ. आखिर में, इस पैच में एक ऐसे बग को ठीक किया गया है जो शायद सिद्धांत के तौर पर मौजूद है. इसमें कई pendingInitialComplications को मर्ज करने की ज़रूरत होती है. (0d03ba3)

  • InteractiveInstanceManager में संभावित डेडलॉक की समस्या ठीक की गई है. इस समस्या में getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance, लॉक को ज़रूरत से ज़्यादा समय तक होल्ड कर रहा था. आम तौर पर, हमें उम्मीद होती है कि engine.setUserStyle तुरंत पूरा हो जाएगा. हालांकि, अगर किसी वजह से ऐसा नहीं होता है, तो हमें डेडलॉक/एएनआर की समस्या का सामना करना पड़ सकता है. इस पैच से, लॉक से गैर-ज़रूरी काम हट जाता है. इससे डेडलॉक की संभावना खत्म हो जाती है.(5a2adca)

  • WatchFaceService को बनाए रखने वाली कई समस्याओं को ठीक किया गया है. कभी-कभी WakeLock, WatchFaceService को बनाए रख सकता है. release() को कॉल करने से यह समस्या ठीक हो जाती है. साथ ही, StateFlows WatchFaceService को बनाए रख सकता है. CoroutineScopes को रद्द करने से यह समस्या ठीक हो जाती है.(fd48138)

  • awaitDeferredWatchFace* में टाइमआउट जोड़ें और watchfaceOverlayStyle NullPointerException को ठीक करें. आम तौर पर, यह टाइम आउट नहीं होना चाहिए. इसमें, नया इंस्टॉलेशन और DirectBoot ऐसे मामले भी शामिल हैं जहां सीपीयू का लोड ज़्यादा होता है. हमने एक एनपीई को भी ठीक किया है. यह तब होता था, जब getWatchfaceOverlayStyle को close() के बाद कॉल किया जाता था.(a4c3a5a)

वर्शन 1.1.0

15 जून, 2022

androidx.wear.watchface:watchface-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.

1.0.0 के बाद हुए अहम बदलाव

बदलाव करने की बेहतर सुविधा:

  • हमने हैरारकी वाले स्कीमा के लिए सहायता जोड़ी है. इससे एडिटर यूज़र इंटरफ़ेस (यूआई) की मदद से, स्टाइल की हैरारकी लिखी जा सकती है. अब वॉच फ़ेस और कंपैनियन एडिटर पर इस्तेमाल करने के लिए, अलग-अलग आइकॉन तय किए जा सकते हैं.
  • स्मार्टवॉच की होम स्क्रीन के एक से ज़्यादा इंस्टेंस के लिए, ऑप्ट-इन करने की सुविधा उपलब्ध है. हर इंस्टेंस का एक यूनीक आईडी होता है, जो सभी एपीआई प्लैटफ़ॉर्म पर उपलब्ध होता है.
  • अब एडिटर में इस्तेमाल करने के लिए, ComplicationSlots के लिए ऐसे नाम तय किए जा सकते हैं जिन्हें आसानी से पढ़ा जा सके.
  • “फ़्लेवर” को स्टाइल करने के लिए एक्सपेरिमेंटल सपोर्ट. यह स्टाइल का एक चुना हुआ कलेक्शन है, जो कंपैनियन एडिटर में दिखेगा.
  • वॉचफ़ेस के दो इंस्टेंस लोड होने पर, अब वॉचफ़ेस के इंस्टेंस, संसाधनों को शेयर कर सकते हैं. इससे मेमोरी सेव होती है
  • स्मार्टवॉच की होम स्क्रीन एडिटर में कोई विजेट चुनते समय, मौजूदा विजेट अब पहले से चुना हुआ होता है.

बेहतर कॉम्प्लिकेशन:

  • अब प्राइमरी और सेकंडरी डेटा सोर्स के लिए ComplicationType तय किया जा सकता है. इससे डेवलपर को, बिना किसी बदलाव के इस्तेमाल की जा सकने वाली सुविधाओं को ज़्यादा आसानी से इस्तेमाल करने में मदद मिलेगी.
  • हमने ComplicationDataTimeline जोड़ा है. यह समय के हिसाब से डेटा उपलब्ध कराता है, ताकि उसे वॉच फ़ेस पर दिखाया जा सके. इस डेटा को कैश मेमोरी में सेव किया जा सकता है और यह अपने-आप अपडेट होता है. उदाहरण के लिए, आज के मौसम का पूर्वानुमान अलग-अलग समय पर या आने वाले समय में होने वाले कई कैलेंडर इवेंट.
  • कॉम्प्लिकेशन प्रोवाइडर का ComponentName, ComplicationData का हिस्सा होता है.
  • अब कॉम्प्लिकेशन को कैश मेमोरी में सेव किया जाता है. इससे वॉच फ़ेस के बीच स्विच करते समय बेहतर अनुभव मिलता है.

अन्य बदलाव:

  • अब UserStyleSchema और ComplicationSlots को एक्सएमएल में तय किया जा सकता है. इससे वॉच फ़ेस बनाना आसान हो जाता है. साथ ही, सिस्टम से मेटाडेटा की क्वेरी तेज़ी से की जा सकती हैं.
  • वॉच फ़ेस अब सिस्टम ओवरले को रेंडर करने के लिए इस्तेमाल किए गए रंगों पर असर डाल सकते हैं.

वर्शन 1.1.0-rc01

18 मई, 2022

androidx.wear.watchface:watchface-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • हमने वॉच फ़ेस के लिए एक्सएमएल सपोर्ट में कुछ बदलाव किए हैं, ताकि ComplicationSlotBounds और रेफ़रंस तय करना आसान हो. एज कॉम्प्लिकेशन BoundingArc के साथ एक्सपेरिमेंट जारी है. इसे drawHighlight के ज़रिए प्लंब किया जाता है. हालांकि, उस समय इसका इस्तेमाल करने का सुझाव नहीं दिया जाता है.

एपीआई में हुए बदलाव

  • हमने drawHighlight का एक एक्सपेरिमेंटल ओवरलोड जोड़ा है, जो BoundingArc पैरामीटर स्वीकार करता है. (I705f8)
  • वॉच फ़ेस एक्सएमएल में अब संसाधन रेफ़रंस का इस्तेमाल किया जा सकता है. इसकी मदद से, XML और कोड, दोनों में एक ही कॉन्स्टेंट का इस्तेमाल किया जा सकता है. (I3ef61)
  • हमने center_x, center_y, size_x, size_y फ़ॉर्म में ComplicationSlotBounds को तय करने की सुविधा जोड़ी है. अब संसाधन रेफ़रंस का इस्तेमाल करके, अलग-अलग यूनिट (जैसे, dp) का इस्तेमाल भी किया जा सकता है. (Iace98)

गड़बड़ियां ठीक की गईं

  • runBlockingWithTracing को ठीक किया गया है. यह गलत कॉन्टेक्स्ट में टास्क चला रहा था.(4f595fe)
  • BaseEditorSession.close को सिंक्रोनस बनाएं. BaseEditorSession.close के एसिंक्रोनस होने की वजह से, हम ComplicationDataSourceInfoRetriever को बहुत देर से रिलीज़ करते हैं. इससे logcat में स्पैम की चेतावनी मिलती है. यह शायद नुकसान पहुंचाने वाला नहीं था, लेकिन logcat स्पैम ध्यान भटकाने वाला होता है. इसलिए, इससे बचना चाहिए.(35a5308)

वर्शन 1.1.0-beta02

11 मई, 2022

androidx.wear.watchface:watchface-*:1.1.0-beta02 रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • हमने नए ComplicationData टाइप के लिए, एक्सपेरिमेंट के तौर पर सहायता उपलब्ध कराई है. ये अभी इस्तेमाल के लिए तैयार नहीं हैं, लेकिन इस पर नज़र रखें.

एपीआई में हुए बदलाव

  • हमने BoundingArc जोड़ा है. यह एक एक्सपेरिमेंटल क्लास है, जो एज कॉम्प्लिकेशन स्लॉट की ज्यामिति के बारे में बताती है. इसे ComplicationSlot में जोड़ दिया गया है. साथ ही, इसे ComplicationSlotState और WatchFaceMetadataClient में भी जोड़ दिया गया है. (I61a40)
  • हमने UserStyleSetting एक्सएमएल में सेटिंग इनहेरिट करने की सुविधा जोड़ी है. इससे, वॉच फ़ेस के बीच सेटिंग शेयर की जा सकती है और वर्बोसिटी को कम किया जा सकता है. (Ief841)
  • हमने ComplicationData के दो नए एक्सपेरिमेंटल टाइप जोड़े हैं: ListComplicationData और ProtoLayoutComplicationData. फ़िलहाल, इन दोनों तरह के पास को रेंडर करने की सुविधा उपलब्ध नहीं है. साथ ही, अगर इन्हें ComplicationDataSource's मेनिफ़ेस्ट में जोड़ा जाता है, तो WearOS फ़िलहाल इनकी पहचान नहीं करता. (I1811c)

गड़बड़ियां ठीक की गईं

  • TimeLineEntry टाइप के सीरियललाइज़ेशन से जुड़ी समस्या ठीक की गई. हम TimeLineEntry टाइप को क्रम से नहीं लगा रहे थे. इसका मतलब है कि NoData टाइप के कैश किए गए TimeLineEntries को गलत तरीके से पैरंट कॉम्प्लिकेशन के टाइप के तौर पर समझा जाएगा. इससे, ज़रूरी फ़ील्ड मौजूद न होने पर NPEs की समस्या होगी. (55ffdf5)
  • उस गड़बड़ी को ठीक किया गया है जिसमें setComplicationData ने टाइमलाइन फ़ील्ड हटा दिए थे(fb392f5)
  • इस अपडेट में, एक गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, कभी-कभी runBlockingWithTracing से एनपीई(12ca62e) हो जाता था
  • उस गड़बड़ी को ठीक किया गया है जिसमें कभी-कभी कॉम्प्लिकेशन पाने पर हमें ClassNotFoundException: android.support.wearable.complications.ComplicationText मिलता है.(217942d9)
  • GlesRenderer.backgroundThreadInitInternal में मौजूद एक गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, EGL14.eglCreateContext को कॉल करने पर सिर्फ़ onBackgroundThreadGlContextCreated को कॉल किया जा रहा था. इस अपडेट में, एक और गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, verticalFlip की वजह से स्क्रीनशॉट में विज़ुअल गड़बड़ी हो रही थी.(c674ad2)
  • WatchFaceService के एक्सएमएल वर्शन की जांच से जुड़ी समस्या ठीक की गई. यह गलत पैकेज से लोड हो रहा था.(dfa06f3)
  • प्लेसहोल्डर वायर फ़ॉर्मैट अब इनर बंडल का इस्तेमाल करता है. हम नहीं चाहते कि प्लेसहोल्डर की वजह से, मौजूदा वॉचफ़ेस काम न करें. ऐसा इसलिए, क्योंकि हो सकता है कि वे वॉचफ़ेस, छिपे हुए इनर a.s.w.c.ComplicationData का इस्तेमाल करते हों. पहले, NoDataComplication के वायर फ़ॉर्मैट में, प्लेसहोल्डर को सामान्य फ़ील्ड में सेव किया जाता था. इससे समस्या होती थी, क्योंकि पुराने वॉच फ़ेस, प्लेसहोल्डर स्ट्रिंग को रेंडर करते थे. हालांकि, अब हम इस समस्या को पूरी तरह से अलग करने के लिए, इनर बंडल का इस्तेमाल करते हैं.(d5e7bd2)

वर्शन 1.1.0-beta01

20 अप्रैल, 2022

androidx.wear.watchface:watchface-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • अब WatchFaceMetadataClient तरीके (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) और HeadlessWatchFaceClient.getUserStyleFlavors, WatchFaceException के बजाय बिना जांच किए गए RuntimeException को थ्रो करते हैं. (I0718a)
  • WatchFaceMetadataClient.WatchFaceException को क्लास से हटा दिया गया है, ताकि इसका फिर से इस्तेमाल किया जा सके. (I4e869)

गड़बड़ियां ठीक की गईं

  • WatchFaceMetadataClient को कुछ ComplicationSlotBounds भेजने पर, अब यह क्रैश नहीं होगा.(Iaafd)

वर्शन 1.1.0-alpha05

6 अप्रैल, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha05 रिलीज़ हो गया है. वर्शन 1.1.0-alpha05 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • अब यह पता लगाया जा सकता है कि किस डेटा सोर्स ने ComplicationData भेजा है. इसके लिए, ComplicationData.dataSource की जांच करें. कुछ वॉच फ़ेस, इस जानकारी का इस्तेमाल कॉम्प्लिकेशन डिसप्ले को पसंद के मुताबिक बनाने के लिए कर सकते हैं. (I44a73)

एपीआई में हुए बदलाव

  • Renderer.CanvasRenderer और Renderer.GlesRenderer को बंद कर दिया गया है. अब Renderer.CanvasRenderer2 और Renderer.GlesRenderer2 का इस्तेमाल किया जा सकता है. ये SharedAssets के साथ काम करते हैं. SharedAssets को रेंडर करने के तरीकों में पास किया जाता है. हमने Java इंटरऑप के लिए, ListenableCanvasRenderer2 और ListenableGlesRenderer2 को लॉन्च किया है. (I31ffa)
  • @WatchFaceFlavorsExperimental में फ़्लेवर तय करने की सुविधा जोड़ी गई है. फ़्लेवर, स्टाइल वाले वॉच फ़ेस की पहले से कॉन्फ़िगर की गई सूची होती है (I04dd0)
  • Renderer.sharedAssets अब एक StateFlow है. साथ ही, हमने इस्तेमाल न किए गए Renderer.SharedAssetsFactory (I12ac5) को हटा दिया है
  • UserStyleSchema.userStyleSettings के इस्तेमाल पर अब रोक नहीं है (Iba7e3)
  • हमने HeadlessWatchFaceClient.getUserStyleSchemaDigestHash जोड़ा है. इससे HeadlessWatchFaceClient को डाइजेस्ट हैश की गणना करने से पहले, एआईडीएल पर स्कीमा पास करने के लिए कम ओवरहेड से बचने में मदद मिलती है. (I33597)
  • हमने WatchFaceMetadataClient में isUserStyleSchemaStatic जोड़ा है. यह सिर्फ़ तब सही होता है, जब UserStyleSchema पर भरोसा किया जा सकता हो कि वॉच फ़ेस APK अपडेट होने तक इसमें बदलाव नहीं होगा. (I45a3f)
  • हमने getDigestHash में getDigestHash जोड़ा है. यह स्कीमा के डाइजेस्ट हैश का हिसाब लगाता है.UserStyleSchema इसका इस्तेमाल करके, यह आसानी से पता लगाया जा सकता है कि UserStyleSchema में बदलाव हुआ है या नहीं. (I2063d)
  • METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED का नाम बदलकर METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED कर दिया गया (I9ba5d)
  • UserStyleSetting.OnWatchEditorData का नाम बदलकर UserStyleSetting.WatchFaceEditorData कर दिया गया है. इसमें ऐसा डेटा होता है जिसका इस्तेमाल सिर्फ़ वॉच फ़ेस एडिटर करता है. (If3afb)

वर्शन 1.1.0-alpha04

9 मार्च, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • अप-टू-डेट ComplicationData हमेशा उपलब्ध नहीं हो सकता. उदाहरण के लिए, कैश मेमोरी में सेव किया गया ComplicationData खत्म हो गया है. इसलिए, हमने NoDataComplication को एक वैकल्पिक प्लेसहोल्डर ComplicationData के साथ बढ़ा दिया है. साथ ही, ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER, PhotoImage.PLACEHOLDER को जोड़ा है. इनका इस्तेमाल सिर्फ़ NoDataComplicationData प्लेसहोल्डर के कॉन्टेक्स्ट में किया जा सकता है. अगर ये प्लेसहोल्डर चुने जाते हैं, तो उन्हें ग्रे बॉक्स/आर्क के साथ रेंडर करने का सुझाव दिया जाता है. (I6285d)
  • हमने ComplicationData.getNextChangeInstant जोड़ा है. इससे आपको रेफ़रंस इंस्टेंट के बाद का वह इंस्टेंट पता चलता है जिस पर कॉम्प्लिकेशन का कोई भी फ़ील्ड बदल सकता है. इसका इस्तेमाल, Android घड़ी के संकेत वाले अपडेट के लिए फ़्रेम शेड्यूल करने के लिए किया जाता है. उदाहरण के लिए, अगर कोई वॉच फ़ेस आम तौर पर हर मिनट में एक बार अपडेट होता है, तो स्टॉप वॉच कॉम्प्लिकेशन सेट करने पर, वह हर सेकंड में एक बार अपडेट होगा. (I7ceb2)
  • EditorSession.watchFaceId का इस्तेमाल अब सभी एपीआई लेवल पर किया जा सकता है. इसके अलावा, इसकी वैल्यू अब हमेशा WatchState.watchFaceInstanceId एट्रिब्यूट की वैल्यू से मेल खाएगी. (I323b9)
  • getPendingIntentForTouchEvent एपीआई की अब ज़रूरत नहीं है, क्योंकि फ़्रेमवर्क में समस्या ठीक कर दी गई है. इसलिए, इससे जुड़े सभी एपीआई हटा दिए गए हैं. PendingIntents को ट्रिगर करने के लिए, वॉच फ़ेस को कुछ खास करने की ज़रूरत नहीं होती. भले ही, हाल ही में होम बटन दबाया गया हो. (I1f2e8)
  • हमने RendererParameters.isForScreenShot जोड़ा है. अगर रेंडर, स्क्रीनशॉट के लिए है, तो इसकी वैल्यू सही होगी. ऐनिमेशन वाले कुछ वॉच फ़ेस को इसकी जानकारी की ज़रूरत होती है, ताकि वे सबसे अच्छे नतीजे देने के लिए बदलाव कर सकें. (I96d99)
  • हमने WatchFaceException में WatchFaceExceptionReason को जोड़ा है, ताकि आपको यह पता चल सके कि क्या गड़बड़ी हुई. (I01d15)
  • ComplicationDataSourceService.onImmediateComplicationRequest को हटा दिया गया है. इसके बजाय, ComplicationRequest.immediateResponseRequired को जोड़ा गया है. इससे यह पता चलता है कि प्रोवाइडर को तुरंत जवाब देना होगा. सबसे सही तरीका यह है कि वह < 100 मि॰से॰ में जवाब दे. ध्यान दें कि इस सुविधा को इस्तेमाल करने के लिए, com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE की अनुमति होना ज़रूरी है. (Ie6b23)
  • Tiramisu DP2 (I0cbb7) से मेल खाने के लिए, कोर और appcompat में अपडेट की गई nullability

गड़बड़ियां ठीक की गईं

  • अगर स्कीमा की पुष्टि नहीं हो पाती है, तो अब वॉचफ़ेस ऐप्लिकेशन क्रैश हो जाता है (Ia400f)

वर्शन 1.1.0-alpha03

9 फ़रवरी, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha03 रिलीज़ हो गया है. वर्शन 1.1.0-alpha03 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • हमने एक्सपेरिमेंट के तौर पर, हैरारिकल स्टाइल स्कीमा के लिए सहायता जोड़ी है. हमने androidx.wear.watchface.style.UserStyleSetting.Option में एक नई प्रॉपर्टी, childSettings जोड़ी है. फ़िलहाल, इसका इस्तेमाल सिर्फ़ ListOption करता है. इससे एडिटर यूज़र इंटरफ़ेस (यूआई) के लिए, स्टाइल के क्रम के बारे में बताया जा सकता है. हालांकि, इससे UserStyle में कोई बदलाव नहीं होता और यह अब भी Map<String, ByteArray> होता है. (Iaf6f4)
  • हमने WatchFace.OverlayStyle जोड़ा है. इससे वॉच फ़ेस, सिस्टम स्टेटस ओवरले की रेंडरिंग को कॉन्फ़िगर कर सकता है. (I8520d)
  • हमने clearWithBackgroundTintBeforeRenderingHighlightLayer के लिए, कंस्ट्रक्टर का एक नया पैरामीटर जोड़ा है. CanvasRenderer (डिफ़ॉल्ट वैल्यू false है) के लिए यह पैरामीटर इस्तेमाल करना ज़रूरी नहीं है. अगर इसे true पर सेट किया जाता है, तो बैकग्राउंड के रंग के हिसाब से कैनवस का रंग बदल जाएगा. (Ie01e5)
  • androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED मेटाडेटा कुंजी जोड़ी गई है. इसकी मदद से, कॉम्प्लिकेशन डेटा सोर्स यह बता सकते हैं कि वे बिना किसी कॉन्फ़िगरेशन के डिफ़ॉल्ट वैल्यू दे सकते हैं (Icc0d4)
  • वॉच फ़ेस में बदलाव करते समय, इंटरैक्टिव और हेडलेस, दोनों तरह के इंस्टेंस मौजूद हो सकते हैं. हमने Renderer.SharedAssets पेश किया है. इससे मेमोरी को बचाने में मदद मिलती है. इसकी मदद से, वॉच फ़ेस रेंडरर, इंस्टेंस के बीच ऐसे डेटा को शेयर कर सकता है जिसे बदला नहीं जा सकता. जैसे, टेक्सचर और शेडर. GlesRenderer.setEglConfig और GlesRenderer.setEglDisplay को बंद कर दिया गया है. इन्हें कभी भी सेट नहीं किया जा सकता था. ऐसा करने से, अनडिफ़ाइंड व्यवहार होता. (I0d9e7)
  • हमने ComplicationSlot.Builder और androidx.wear.watchface.client.ComplicationSlotState में, setNameResourceId और setScreenReaderNameResourceId (जो स्ट्रिंग संसाधनों को रेफ़रंस करते हैं) जोड़े हैं. साथ ही, androidx.wear.watchface.client.ComplicationSlotState में उनसे जुड़े गेटर जोड़े हैं. इससे सिस्टम, ComplicationSlots के नाम फ़ेच कर पाता है, ताकि उन्हें एडिटर और स्क्रीन रीडर में इस्तेमाल किया जा सके. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema और getComplicationSlotMetadataMap अब RemoteException के बजाय WatchFaceException थ्रो करते हैं. (I86f11)
  • ComplicationDataSourceService में मौजूद onSynchronousComplicationRequest और इससे जुड़े फ़ंक्शन के नाम बदलकर onImmediateComplicationRequest वगैरह कर दिए गए हैं... (I87ba0)
  • वॉच होम स्क्रीन के एडिटर में, कंपैनियन एडिटर की तुलना में स्क्रीन काफ़ी छोटी होती है. इसलिए, वॉच होम स्क्रीन के एडिटर के लिए अलग-अलग आइकॉन इस्तेमाल करना सही है. इस पैच में, सभी UserStyleSettings और उनकी Option क्लास में OnWatchEditorData जोड़ा गया है. फ़िलहाल, इसमें सिर्फ़ एक आइकॉन है. (If1886)
  • हमने ListenableGlesRenderer के कंस्ट्रक्टर में @JvmOverloads जोड़ा है, ताकि Java इंटरऑप को बेहतर बनाया जा सके. (I2974a)

गड़बड़ियां ठीक की गईं

  • ListenableGlesRenderer के कंस्ट्रक्टर को अब @Throws(GlesException::class) के तौर पर सही तरीके से मार्क किया गया है. साथ ही, अब इस क्लास को Java में बढ़ाया जा सकता है. (Iac6d0)
  • PhotoImageComplicationData tapAction से जुड़ी गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, टैप करने की कार्रवाई को सही तरीके से हैंडल नहीं किया जा रहा था (I1cc30)

वर्शन 1.1.0-alpha02

12 जनवरी, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • डीबग करने और जांच करने में मदद के लिए, ComplicationData और इससे जुड़ी सबक्लास में अब हैशकोड, equals, और toString के तरीके शामिल किए गए हैं. इससे इनके साथ काम करना आसान हो गया है.

एपीआई में हुए बदलाव

  • WatchfaceMetadataClient तरीके, सही जगह पर RemoteExceptions को फिर से थ्रो करते हैं. इससे क्लाइंट कोड के लिए, वॉच फ़ेस से गड़बड़ियों का पता लगाना आसान हो जाता है. (I78785)
  • ComplicationData और सब क्लास में अब हैशकोड, equals, और toString मौजूद हैं. (I24bc6)

वर्शन 1.1.0-alpha01

15 दिसंबर, 2021

androidx.wear.watchface:watchface-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • अब UserStyleSchema और ComplicationSlots को एक्सएमएल में तय किया जा सकता है. इससे वॉच फ़ेस बनाना आसान हो जाता है. इसके अलावा, WatchFaceMetadataClient क्वेरी तेज़ी से काम करती हैं, क्योंकि मेटाडेटा पाने के लिए इसे सेवा से बाइंड करने की ज़रूरत नहीं होती. WatchFaceMetadataClient और ListenableWatchFaceMetadataClient अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. ये स्टेबल एपीआई का हिस्सा बन जाएंगे. सिस्टम, वॉच फ़ेस के एक से ज़्यादा इंस्टेंस को सपोर्ट कर पाएगा. हर इंस्टेंस में, उपयोगकर्ता के तय किए गए स्टाइलिंग के अलग-अलग विकल्प होंगे. ये वॉच फ़ेस पिकर में दिखेंगे. इस सुविधा के लिए ऑप्ट इन करने के लिए, वॉच फ़ेस को अपने मेनिफ़ेस्ट में यह मेटा डेटा टैग शामिल करना होगा.

        <meta-data
            android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED"
            android:value="true" />
    
  • कुछ वॉच फ़ेस में ऐसी स्थिति होती है जिसे UserStyle में कैप्चर नहीं किया जाता है. इसे और कई इंस्टेंस को सपोर्ट करने के लिए, वॉच फ़ेस का इंस्टेंस आईडी अब WatchState.watchFaceInstanceId के ज़रिए उपलब्ध है.

  • ComplicationData को अब कैश मेमोरी में सेव किया जा रहा है, ताकि लोड होने पर जटिलताएं तुरंत दिख सकें. कभी-कभी सिस्टम, ComplicationData को मेमोरी में कैश मेमोरी के तौर पर सेव करता है. वहीं, कभी-कभी वॉच फ़ेस लाइब्रेरी इसे क्रम से लगाती हैं. सीरियलाइज़ किए जाने पर, इससे जुड़ा कोई भी tapAction मिट जाएगा. ऐसा होने पर, ComplicationData.tapActionLostDueToSerialization true दिखाएगा. साथ ही, वॉच फ़ेस को कॉम्प्लिकेशन को अलग तरीके से रेंडर करना चाहिए. जैसे, उसे धूसर या हल्का पारदर्शी कर देना चाहिए, ताकि यह पता चल सके कि उस पर टैप नहीं किया जा सकता. सिस्टम, tapAction के साथ अपडेट किया गया ComplicationData जल्द से जल्द भेजेगा.

  • कुछ ComplicationData को लंबे समय तक कैश मेमोरी में सेव नहीं किया जाना चाहिए. इसके लिए, हमने एक सामान्य सुविधा ComplicationDataTimeline जोड़ी है. इसका इस्तेमाल, समयसीमा के हिसाब से ComplicationData का क्रम देने के लिए किया जा सकता है, ताकि उन्हें वॉच फ़ेस पर दिखाया जा सके. इन्हें कैश मेमोरी में सेव किया जा सकता है और ये अपने-आप अपडेट हो सकते हैं. उदाहरण के लिए, आज के मौसम का पूर्वानुमान अलग-अलग समय पर या आने वाले समय में होने वाले कई कैलेंडर इवेंट. ComplicationRequestListener को एक नए तरीके onComplicationDataTimeline के साथ बढ़ाया गया है. इसका इस्तेमाल करके, यह डेटा वापस पाया जा सकता है.

  • DefaultComplicationDataSourcePolicy को बढ़ा दिया गया है, ताकि प्राइमरी और सेकंडरी डेटा सोर्स के लिए ComplicationType तय किया जा सके.

  • हमने सिंक्रोनस कॉम्प्लिकेशन प्रोवाइडर के लिए सहायता जोड़ी है. इसमें कॉम्प्लिकेशन को सामान्य से ज़्यादा फ़्रीक्वेंसी पर अपडेट किया जाता है. जब वॉच फ़ेस दिखता है और ऐंबियंट मोड में नहीं होता है, तब इसे हर सेकंड में एक बार अपडेट किया जाता है. ध्यान दें: मेमोरी पर ज़्यादा दबाव पड़ने की वजह से, सिंक्रोनस कॉम्प्लिकेशन प्रोवाइडर का इस्तेमाल सीमित हो सकता है.

  • PendingIntentTapListener में किए गए बदलावों को पहले जैसा किया जा सकता है. इसकी वजह यह है कि हमने फ़्रेमवर्क में मौजूद समस्या को हल कर दिया है. समस्या यह थी कि होम बटन दबाने के पांच सेकंड तक, वॉच फ़ेस पर गतिविधियां लॉन्च नहीं की जा सकती थीं.

एपीआई में हुए बदलाव

  • ComplicationData.isCached को बदलकर tapActionLostDueToSerialization कर दिया गया है. यह तब ज़्यादा काम आता है, जब यह तय करना हो कि कॉम्प्लिकेशन स्लॉट को अलग तरीके से रेंडर किया जाना चाहिए या नहीं, ताकि यह पता चल सके कि उसे टैप नहीं किया जा सकता. (I6de2f)
  • ComplicationDataTimeline को wear-complication-data-source में जोड़ा गया. इसका इस्तेमाल, समयसीमा के हिसाब से ComplicationData का क्रम देने के लिए किया जा सकता है, ताकि उन्हें वॉच फ़ेस पर दिखाया जा सके. इन्हें कैश मेमोरी में सेव किया जा सकता है और ये अपने-आप अपडेट हो सकते हैं. उदाहरण के लिए, आज के मौसम का पूर्वानुमान अलग-अलग समय पर या आने वाले समय में होने वाले कई कैलेंडर इवेंट. ComplicationRequestListener को एक नए तरीके onComplicationDataTimeline के साथ बढ़ाया गया है. इसका इस्तेमाल करके, यह डेटा वापस पाया जा सकता है. डेटा सोर्स सेवाओं को निलंबित करने के लिए, एक नया Kotlin रैपर SuspendingTimelineComplicationDataSourceService उपलब्ध है. (Idecdc)
  • PendingIntentTapListener और WatchFaceControlClient.getPendingIntentForTouchEvent को जोड़ा गया. इससे उन वॉच फ़ेस को मदद मिल सकती है जिन्हें टैप करने पर इंटेंट लॉन्च करने की ज़रूरत होती है. ऐसा इसलिए, ताकि वे उस समस्या को हल कर सकें जिसमें होम बटन दबाने के बाद, फ़्रेमवर्क पांच सेकंड तक नई गतिविधियां लॉन्च करने से रोकता है. (I98074)
  • हर वॉच फ़ेस के लिए ComplicationData कैश मेमोरी की सुविधा जोड़ी गई. इसका मकसद यह है कि वॉच फ़ेस लोड होने पर, कॉम्प्लिकेशन डेटा की पिछली वैल्यू दिखें. ऐसा तब तक होगा, जब तक सिस्टम उन्हें अपडेट नहीं कर लेता. ओईएम के लिए, एपीआई का नया तरीका WatchFaceControlClient.hasComplicationCache उपलब्ध है. इससे सिस्टम की उस रणनीति पर असर पड़ सकता है जिसके तहत, वॉच फ़ेस पर विजेट भेजे जाते हैं. इसके अलावा, ComplicationData में isCached प्रॉपर्टी है. हमारा सुझाव है कि कैश मेमोरी में सेव किए गए कॉम्प्लिकेशन को अलग-अलग तरीके से रेंडर किया जाए, क्योंकि tapAction को कैश मेमोरी में सेव नहीं किया जा सकता. साथ ही, यह कैश मेमोरी में सेव किए गए कॉम्प्लिकेशन में null होगा. (I404b0)
  • वॉच फ़ेस का इंस्टेंस आईडी अब WatchState.watchFaceInstanceId के ज़रिए उपलब्ध है. ज़्यादातर वॉच फ़ेस को इसका इस्तेमाल करने की ज़रूरत नहीं पड़ेगी. हालांकि, अगर हर वॉच फ़ेस की ऐसी स्थिति है जिसे स्कीमा में सेव नहीं किया गया है, तो वॉच फ़ेस इंस्टेंस की पहचान करने के लिए इस कुंजी का इस्तेमाल किया जा सकता है. इसके लिए, अब WatchFaceControlClient.createHeadlessWatchFaceClient को कॉल करते समय आईडी दिया जा सकता है. (I1ff98)
  • ज़्यादा समय तक DefaultComplicationDataSourcePolicy की सुविधा मिलती है. साथ ही, मुख्य और दूसरी प्रॉडक्ट इन्वेंट्री देने वाली कंपनी के लिए डिफ़ॉल्ट ComplicationTypes सेट करने की सुविधा मिलती है. इसके अलावा, फ़ॉलबैक सिस्टम देने वाली कंपनी के लिए भी डिफ़ॉल्ट ComplicationTypes सेट करने की सुविधा मिलती है. ComplicationSlot.defaultDataSourceType का अब इस्तेमाल नहीं किया जा सकता. (If0ce3)
  • ComplicationSlot.configExtras को अब बदला जा सकता है. साथ ही, EditorSession.openComplicationDataSourceChooser() को कॉल करने से पहले इसे अपडेट किया जा सकता है. (I6f852)
  • WatchFace.setComplicationDeniedDialogIntent और setComplicationRationaleDialogIntent को जोड़ा गया. इन इंटेंट को इसलिए लॉन्च किया जाता है, ताकि जटिलताओं से जुड़ी अनुमतियों का अनुरोध करने से पहले, वजह बताने वाला डायलॉग दिखाया जा सके. साथ ही, एक और डायलॉग दिखाया जा सके, जिसमें यह बताया गया हो कि अनुमतियां अस्वीकार किए जाने पर, जटिलता में बदलाव करने के लिए जटिलताओं से जुड़ी अनुमति की ज़रूरत होती है. ऐसा इसलिए, क्योंकि अनुमति देने वाली कंपनी चुनने का विकल्प नहीं खुलेगा. इसलिए, डायलॉग दिखाना ज़रूरी है. (I3a29c)
  • अब UserStyleSchema और ComplicationSlots को एक्सएमएल में तय किया जा सकता है. इससे वॉच फ़ेस बनाना आसान हो जाता है. साथ ही, WatchFaceMetadataClient क्वेरी तेज़ी से काम करती हैं, क्योंकि मेटाडेटा पाने के लिए उन्हें सेवा से बाइंड करने की ज़रूरत नहीं होती. (I85bfa)
  • InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent जोड़ा गया है, ताकि क्लाइंट यह तय कर सके कि वॉच फ़ेस, getPendingIntentForTouchEvent के साथ काम करता है या नहीं. (I0b917)
  • WatchFaceMetadataClient और ListenableWatchFaceMetadataClient अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. इनका इस्तेमाल, वॉच फ़ेस के मेटाडेटा को आसानी से पाने के लिए किया जा सकता है. इसके लिए, वॉच फ़ेस के बेंडर को खोलने की ज़रूरत नहीं होती. (Ibb827)
  • सिंक्रोनस विजेट उपलब्ध कराने वालों के लिए सहायता जोड़ी गई है. इसमें विजेट को सामान्य से ज़्यादा बार अपडेट किया जाता है. जब स्मार्टवॉच की होम स्क्रीन दिख रही हो और वह ऐंबियंट मोड में न हो, तब विजेट को हर सेकंड में एक बार अपडेट किया जाता है. इस सुविधा का इस्तेमाल करने के लिए, सेवा देने वाली कंपनी को अपने मेनिफ़ेस्ट में नया androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS मेटाडेटा टैग शामिल करना होगा और onSynchronousComplicationRequest को बदलना होगा. डेटा सोर्स के आधार पर, यह भी ज़रूरी हो सकता है कि वह onStartSynchronousComplicationRequests और onStopInteractiveComplicationRequests को बदल दे, ताकि उसे यह सूचना मिल सके कि कॉम्प्लिकेशन इंटरैक्टिव मोड में कब चालू होता है और कब बंद होता है. (I8fe9d)

वर्शन 1.0

वर्शन 1.0.1

9 फ़रवरी, 2022

androidx.wear.watchface:watchface-*:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • PhotoImageComplicationData tapAction से जुड़ी गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, टैप करने की कार्रवाई को सही तरीके से हैंडल नहीं किया जा रहा था (I1cc30)

वर्शन 1.0.0

1 दिसंबर, 2021

androidx.wear.watchface:watchface-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.

1.0.0 वर्शन की मुख्य सुविधाएं

WearOS स्मार्टवॉच की होम स्क्रीन डेवलप करने के लिए, androidx.wear.watchface पैकेज को नई सुझाई गई लाइब्रेरी के तौर पर इस्तेमाल किया जा सकता है. इसमें Wearable Support Library की तुलना में कई नई सुविधाएं हैं.

  • लाइब्रेरी, उपयोगकर्ता की स्टाइलिंग (जैसे, कलर पैलेट, घड़ी की सुइयों की स्टाइल, घंटे के निशान वगैरह बदलना) को सीधे तौर पर सपोर्ट करती है (androidx.wear.watchface.style देखें). androidx. wear.watchface.editor का इस्तेमाल करके, स्मार्टवॉच की होम स्क्रीन पर एडिटर को डेवलप करना अब बहुत आसान हो गया है.साथ ही, सिस्टम के कंपैनियन ऐप्लिकेशन से स्मार्टवॉच की होम स्क्रीन को एडिट किया जा सकता है.इसके लिए, आपको कोई अतिरिक्त कोड लिखने की ज़रूरत नहीं है.
  • सबसे सही तरीके पहले से मौजूद हैं. लाइब्रेरी, कॉम्प्लिकेशन के लिए स्क्रीन रीडर के कॉन्टेंट लेबल अपने-आप जनरेट करती है. हालांकि, आपके पास अपने लेबल जोड़ने का विकल्प भी होता है. इसके अलावा, बैटरी कम होने और चार्ज न होने पर, बैटरी लाइफ़ को बेहतर बनाने के लिए फ़्रेमरेट अपने-आप कम हो जाता है.
  • वॉच फ़ेस डेवलप करने के लिए कम कोड की ज़रूरत होती है. खास तौर पर, कॉम्प्लिकेशन के लिए. ऐसा इसलिए, क्योंकि ज़्यादातर बॉयलरप्लेट कोड को लाइब्रेरी में ले जाया गया है.

गड़बड़ियां ठीक की गईं

  • EditorSession.userStyle.compareAndSet ठीक करें (I6f676)
  • वॉच फ़ेस के अपडेट होने में लगने वाले बहुत कम समय की देरी को ठीक करें (Iffb97)
  • यूज़र इंटरफ़ेस (यूआई) थ्रेड पर InteractiveWatchFaceImpl.onDestroy को डिसपैच करें (I83340)
  • ब्रॉडकास्ट रिसीवर से जुड़ी कई समस्याएं ठीक की गईं (I7d25f)

वर्शन 1.0.0-rc01

3 नवंबर, 2021

androidx.wear.watchface:watchface-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • dump() फ़ंक्शन को ठीक किया गया है. इसे adb shell dumpsys कॉल करता है. यह फ़ंक्शन, फ़्लो माइग्रेशन की वजह से काम नहीं कर रहा था. (087cf9e)

  • पक्का करें कि writeDirectBootPrefs को सही क्रम में कॉल किया गया हो. हम चाहते हैं कि writeDirectBootPrefs हमेशा initStyleAndComplications के बाद चले. ऐसा न होने पर, यूज़र इंटरफ़ेस (यूआई) थ्रेड को शुरू होने में देरी हो सकती है.(37650ac)

  • पक्का करें कि Renderer.onDestroy को कॉल किया गया हो. अगर रेंडरर बन गया है, लेकिन WF init पूरा नहीं हुआ है और Engine.onDestroy को कॉल किया गया है, तो हमें Renderer.onDestroy को कॉल करना होगा. (f9952dc)

  • isBatteryLowAndNotCharging में ऑप्टिमाइज़ेशन/बदलाव. इस पैच में, isBatteryLowAndNotCharging के शुरुआती सेटअप को पहले किया जाता है. इसका मतलब है कि इसे createWatchFace के साथ-साथ किया जा सकता है. इसके अलावा, अब हम ACTION_POWER_DISCONNECTED को भी सुनते हैं. (ddffd80

  • InteractiveWatchFaceClientImpl.isConnectionAlive to be false after close (ab9774e)

वर्शन 1.0.0-beta01

27 अक्टूबर, 2021

androidx.wear.watchface:watchface-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.

वर्शन 1.0.0-alpha24

13 अक्टूबर, 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha24 रिलीज़ हो गया है. वर्शन 1.0.0-alpha24 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • पैकेज androidx.wear.watchface.complications में मौजूद क्लास को नए wear:watchface:watchface-complications प्रोजेक्ट में ट्रांसफ़र कर दिया गया है. ध्यान दें कि इसका मतलब है कि इस लाइब्रेरी के साथ-साथ, wear:watchface:watchface-complications-data के किसी भी पिछले ऐल्फ़ा वर्शन को शामिल नहीं किया जा सकता. ऐसा इसलिए, क्योंकि आपको डुप्लीकेट क्लास के बारे में गड़बड़ियां मिलेंगी. (I97195)
  • Renderer.dump का नाम बदलकर Renderer.onDump कर दिया गया है. साथ ही, इसे @UiThread के साथ एनोटेट किया गया है. (I44845)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener का नाम बदलकर addOnWatchFaceReadyListener और removeWatchFaceReadyListener का नाम बदलकर removeOnWatchFaceReadyListener कर दिया गया है. (I48fea)
  • EditorSession getComplicationsPreviewData और getComplicationsDataSourceInfo अब निलंबित फ़ंक्शन नहीं हैं. इसके बजाय, ये StateFlow<> प्रॉपर्टी हैं जिनकी वैल्यू शुरू में शून्य होती है. ListenableEditorSession में, getListenableComplicationPreviewData और getListenableComplicationsProviderInfo को हटा दिया गया है. इसके बजाय, बेस क्लास से नए StateFlow<> ऑब्जेक्ट का इस्तेमाल किया गया है. अगर आपको Java कोड में हुए बदलावों को सुनना है, तो androidx.lifecycle.FlowLiveDataConversions.asLiveData का इस्तेमाल करके, उसे LiveData<> में बदलें. (Ic5483)

वर्शन 1.0.0-alpha23

29 सितंबर, 2021

androidx.wear.watchface:watchface-*:1.0.0-alpha23 रिलीज़ हो गया है. वर्शन 1.0.0-alpha23 में ये बदलाव शामिल हैं.

नई सुविधाएं

वॉचफ़ेस लाइब्रेरी अब एक ही लाइब्रेरी ग्रुप है. इस वजह से, लाइब्रेरी को दूसरी जगह ले जाया गया है. आपको अपने Gradle इंपोर्ट को इस तरह अपडेट करना होगा:

ओल्ड नया
androidx.wear:wear-complications-data androidx.wear.watchface:watchface-complications-data
androidx.wear:wear-complications-data-source androidx.wear.watchface:watchface-complications-data-source
androidx.wear:wear-watchface androidx.wear.watchface:watchface
androidx.wear:wear-watchface-complications-rendering androidx.wear.watchface:watchface-complications-rendering
androidx.wear:wear-watchface-client androidx.wear.watchface:watchface-client
androidx.wear:wear-watchface-client-guava androidx.wear.watchface:watchface-client-guava
androidx.wear:wear-watchface-data androidx.wear.watchface:watchface-data
androidx.wear:wear-watchface-editor androidx.wear.watchface:watchface-editor
androidx.wear:wear-watchface-editor-guava androidx.wear.watchface:watchface-editor-guava
androidx.wear:wear-watchface-guava androidx.wear.watchface:watchface-guava
androidx.wear:wear-watchface-style androidx.wear.watchface:watchface-style

एपीआई में हुए बदलाव

  • अलग-अलग androidx.wear वॉचफ़ेस और कॉम्प्लिकेशन लाइब्रेरी को androidx.wear.watchface लाइब्रेरी ग्रुप में माइग्रेट करें. (b25f3c0)
  • EditorRequest.canWatchFaceSupportHeadlessEditing जोड़ा गया है. इससे क्लाइंट को यह पता चल पाएगा कि वॉच फ़ेस एडिटर, हेडलेस एडिटिंग की सुविधा के साथ काम करता है या नहीं. ध्यान दें कि इस सुविधा के साथ कुछ फ़ॉल्स नेगेटिव होंगे, क्योंकि इसे asop/1756809 में जोड़ा गया था. हालांकि, यह आने वाले समय में सभी वॉच फ़ेस के लिए सही वैल्यू दिखाएगा. (ca55590)
  • रेंडरर में अब dump() तरीका है. इसे बदला जा सकता है, ताकि ABD shell dumpsys activity service WatchFaceService से जनरेट हुई जानकारी में कस्टम डेटा जोड़ा जा सके. (95235f9)
  • InteractiveWatchFaceClient.addWatchFaceReadyListener अब सबसे पहले एक्ज़ीक्यूटर के बारे में बताता है. (563ac2f)
  • StateFlowCompatHelper को हटा दिया गया है. इसके बजाय, asLiveData (androidx.lifecycle.asLiveData) का इस्तेमाल किया जाना चाहिए. (bd35d3)
  • CurrentUserStyleRepository.userStyle को अब बदला नहीं जा सकता. (I44889)
  • WatchFaceReadyListener का नाम बदलकर OnWatchFaceReadyListener कर दिया गया है. (Ic12a9)

गड़बड़ियां ठीक की गईं

  • InteractiveInstanceManager.deleteInstance को onDestroy को कॉल करने के लिए. यह इसलिए ज़रूरी है, ताकि InteractiveWatchFaceImpl को गार्बेज इकट्ठा किया जा सके.(fce4af8, b/199485839)