Wear पर स्मार्टवॉच की होम स्क्रीन
ध्यान दें: 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#isForSafeWatchFaceTargetWatchFaceSafety.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#isForSafeWatchFaceTargetWatchFaceSafety.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का इस्तेमाल किया जा सकता है.
एपीआई में हुए बदलाव
- कभी-कभी वॉलपेपर मैनेजर, इंजन से अलग हो सकता है और दूसरा इंजन बना सकता है. हमने
DisconnectReasonint 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()कॉल जोड़ने से यह समस्या ठीक हो जाती है. साथ ही,StateFlowsWatchFaceServiceको बनाए रख सकता है.CoroutineScopesको रद्द करने से यह समस्या ठीक हो जाती है.(fd48138)awaitDeferredWatchFace* में टाइमआउट जोड़ें औरwatchfaceOverlayStyleNullPointerExceptionको ठीक करें. आम तौर पर, इस प्रोसेस का टाइम आउट नहीं होना चाहिए. इसमें, नया इंस्टॉलेशन और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)PhotoImageComplicationDatatapAction को सही तरीके से हैंडल न करने से जुड़ी गड़बड़ी को ठीक किया गया (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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
PhotoImageComplicationDatatapAction को सही तरीके से हैंडल न करने से जुड़ी गड़बड़ी को ठीक किया गया (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)