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

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

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

जनवरी 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 ऐप्लिकेशन, प्रोग्राम के हिसाब से स्मार्टवॉच पर होम स्क्रीन इंस्टॉल कर सकता है.

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

  • ComplicationProviderService का इस्तेमाल करने वाले डेवलपर को 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 OS के वॉचफ़ेस एपीआई (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava, और watchface-style) को Wear Watchface Format के पक्ष में बंद कर दिया गया है. इन्हें 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 का इस्तेमाल करके रंग चुनने की सुविधा मिलती है. हर 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 में अब मौसम की जानकारी देने वाली सिस्टम कॉम्प्लिकेशन की सुविधा डिफ़ॉल्ट रूप से काम करेगी.

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

  • कॉम्प्लिकेशन के लिए, मौसम की जानकारी देने वाले सिस्टम का डिफ़ॉल्ट फ़ॉलबैक जोड़ें. (Ia0994)
  • इस पैच में, अमरूद के रैपर के साथ-साथ WatchFaceRuntimeService और WatchFaceControlClient.createWatchFaceRuntimeControlClient को जोड़ा गया है. इनसे, वॉच फ़ेस के रनटाइम के लिए सहायता मिलती है. ये एक खास तरह के वॉच फ़ेस होते हैं, जो किसी दूसरे पैकेज से अपनी परिभाषा लोड करते हैं. फ़िलहाल, WearOS सिर्फ़ Android Watch Face Format के रनटाइम के साथ काम करता है. (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 इस्तेमाल किए जा सकते हैं. हालांकि, इनमें से सिर्फ़ एक को एक बार में चालू किया जा सकता है. हमने 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 के बाहर की स्थिति होती है. इससे उनके दिखने के तरीके पर असर पड़ता है. उदाहरण के लिए, ऐसा वॉच फ़ेस जिसमें चुनने के लिए बैकग्राउंड इमेज होती है. क्लाइंट साइड पर, हमने इन अनुरोधों को देखने के लिए PreviewImageUpdateRequestedListener को getOrCreateInteractiveWatchFaceClient में एक वैकल्पिक पैरामीटर के तौर पर जोड़ा है. (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 से NPE(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)
  • हमने CanvasRenderer के लिए, clearWithBackgroundTintBeforeRenderingHighlightLayer एक नया कंस्ट्रक्टर पैरामीटर जोड़ा है. इसका इस्तेमाल करना ज़रूरी नहीं है. इसकी डिफ़ॉल्ट वैल्यू false है. अगर इसे true पर सेट किया जाता है, तो बैकग्राउंड के रंग के हिसाब से कैनवस का रंग बदल जाएगा. (Ie01e5)
  • androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED मेटाडेटा कुंजी जोड़ी गई है. इसकी मदद से, कॉम्प्लिकेशन डेटा सोर्स यह बता सकते हैं कि वे बिना किसी कॉन्फ़िगरेशन के डिफ़ॉल्ट वैल्यू दे सकते हैं (Icc0d4)
  • वॉच फ़ेस में बदलाव करते समय, इंटरैक्टिव और हेडलेस, दोनों तरह के इंस्टेंस मौजूद हो सकते हैं. हमने Renderer.SharedAssets पेश किया है. इससे स्मार्टवॉच की होम स्क्रीन रेंडर करने वाला व्यक्ति, इंस्टेंस के बीच ऐसे डेटा को शेयर कर सकता है जिसे बदला नहीं जा सकता. जैसे, टेक्सचर और शेडर. इससे मेमोरी को सेव करने में मदद मिलती है. GlesRenderer.setEglConfig और GlesRenderer.setEglDisplay को बंद कर दिया गया है. इन्हें कभी भी सेट नहीं किया जा सकता था. ऐसा करने से, अनडिफ़ाइंड व्यवहार होता. (I0d9e7)
  • हमने ComplicationSlot.Builder में 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 सेट करने की सुविधा भी शामिल है. 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 में ये बदलाव शामिल हैं.

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

  • adb shell dumpsys से कॉल किए गए dump() को ठीक करें. यह फ़्लो माइग्रेशन की वजह से काम नहीं कर रहा था. (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 शेल 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)