ওয়াচফেস পরুন

Wear OS by Google স্মার্টওয়াচের জন্য অ্যাপ্লিকেশন তৈরি করুন।

দ্রষ্টব্য: Wear OS 5 বা তার পরবর্তী সংস্করণ আগে থেকে ইনস্টল করা ডিভাইসগুলিতে ওয়াচ ফেস ইনস্টল করার জন্য এবং Google Play তে প্রকাশিত সমস্ত নতুন ওয়াচ ফেসের জন্য ওয়াচ ফেস ফর্ম্যাট প্রয়োজন।

২০২৬ সালের জানুয়ারি থেকে, সমস্ত Wear OS ডিভাইসে ওয়াচ ফেস ইনস্টল করার জন্য ওয়াচ ফেস ফর্ম্যাটের প্রয়োজন হবে।

ব্যবহারকারী-মুখোমুখি পরিবর্তনগুলি সম্পর্কে আরও জানুন এই সহায়তা কেন্দ্র নিবন্ধে

সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
১৭ ডিসেম্বর, ২০২৫ ১.২.১ - ১.৩.০-বিটা০১ -

নির্ভরতা ঘোষণা করা

Wear-এর উপর নির্ভরতা যোগ করতে, আপনার প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরি পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:

গ্রোভি

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"
}

কোটলিন

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"
}
,

গ্রোভি

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"
}

কোটলিন

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"
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন অথবা এই লাইব্রেরি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.3

সংস্করণ 1.3.0-beta01

১৭ ডিসেম্বর, ২০২৫

androidx.wear.watchface:watchface-*:1.3.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • স্ট্যাটিক জটিলতা পূর্বরূপ ডেটার জন্য সমর্থন যোগ করা হয়েছে, যেখানে একটি জটিলতা প্রদানকারী তার ম্যানিফেস্টে স্ট্যাটিক পূর্বরূপ ডেটা নির্দিষ্ট করতে পারে, আরও বিস্তারিত জানার জন্য androidx.wear.watchface.complications.data.parser.StaticPreviewDataParser দেখুন।
  • ডেটা এবং সময় যতটা সম্ভব সংক্ষিপ্তভাবে ফর্ম্যাট করার জন্য ইউটিলিটি ক্লাস ComplicationTextFormatting যোগ করা হয়েছে, যা জটিলতার জন্য কার্যকর যেখানে স্থান খুব বেশি।

API পরিবর্তনগুলি

  • পূর্বে পরীক্ষামূলক সম্পত্তি Renderer.watchfaceColors এখন ব্যক্তিগত। এই সম্পত্তির জন্য এখনও পাবলিক অ্যাক্সেসর রয়েছে। ( Ifdf60 , b/409363281 )

বাগ ফিক্স

  • Kotlin 2.0 দিয়ে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা তার পরবর্তী সংস্করণ ব্যবহার করা প্রয়োজন। ( I48968 , b/407632515 )

সংস্করণ 1.3.0-alpha07

২৩ এপ্রিল, ২০২৫

androidx.wear.watchface:watchface-*:1.3.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha07-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কিছুদিন ধরেই ওয়াচফেসের ইউজারস্টাইল স্কিমা সংজ্ঞায়িত করা সম্ভব হয়েছে, এবং XML-এ ColorUserStyleSetting সংজ্ঞায়িত করা সম্ভব।

API পরিবর্তনগুলি

  • Kotlin 2.0 দিয়ে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা তার নতুন সংস্করণ ব্যবহার করা প্রয়োজন। ( Idb6b5 )
  • ওয়াচ ফেস পুশ এপিআই যোগ করা হয়েছে যা একটি Wear OS অ্যাপকে প্রোগ্রাম্যাটিকভাবে একটি ঘড়িতে একটি ওয়াচ ফেস ইনস্টল করার অনুমতি দেয়।

বাগ ফিক্স

  • 1.3.0-alpha06 ব্যবহারকারী জটিলতা সরবরাহকারীদের আপগ্রেড করার জন্য উৎসাহিত করা হচ্ছে কারণ WearOS-এর পরবর্তী সংস্করণে ComplicationDataSourceUpdateRequester এর সাথে একটি ক্র্যাশ বাগ ঠিক করা হয়েছে।

সংস্করণ 1.3.0-alpha06

২৬ মার্চ, ২০২৫

androidx.wear.watchface:watchface-*:1.3.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha06-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • Wear Watchface ফর্ম্যাটের সুবিধার্থে wear watchface API গুলি (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava, এবং watchface -style) অবমূল্যায়ন করা হয়েছে এবং অবশেষে AndroidX থেকে সরানো হবে। জটিল API গুলি অবমূল্যায়ন করা হয়নি এবং থাকবে। ( Ice960 )
  • জটিল API গুলি এখন WearSDK সাথে সরাসরি যোগাযোগ করতে সক্ষম, যা কম IPC হপসের কারণে আরও দক্ষ।

সংস্করণ 1.3.0-alpha05

১৫ জানুয়ারী, ২০২৫

androidx.wear.watchface:watchface-*:1.3.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha05-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

ওয়াচ ফেস সাধারণত ব্যবহারকারীদের ListUserStyle ব্যবহার করে রঙ নির্বাচন করার সুযোগ দেয়। যদিও এটি কাজ করে, এর জন্য ব্লুটুথের মাধ্যমে আইকনগুলিকে কম্প্যানিয়ন এডিটরে পাঠানো প্রয়োজন যা অদক্ষ, তাই আমরা ColorUserStyleSetting চালু করেছি যেখানে পেলোড হল প্রতি স্টাইলে এক বা একাধিক রঙের তালিকা যার তারের বিন্যাস উল্লেখযোগ্যভাবে কমপ্যাক্ট।

আমরা একটি OEM ফেসিং বৈশিষ্ট্য যুক্ত করেছি যা OEM জটিলতা প্রদানকারীদের OEM ঘড়ির মুখগুলির ব্যবহারের জন্য ComplicationData-তে অতিরিক্ত যোগ করার অনুমতি দেয়।

API পরিবর্তনগুলি

  • UserStyleSetting এবং UserStyleOption ক্লাসগুলিতে এখন বিল্ডার রয়েছে যা এগুলি তৈরি করার প্রস্তাবিত উপায়। ( Iacd03 )
  • ComplicationData তে অতিরিক্ত পাস করার জন্য সমর্থন। এটি OEM-দের ব্যবহারের জন্য তৈরি যেখানে তারা জটিলতা প্রদানকারী এবং গ্রহণকারী ওয়াচফেস উভয়ই নিয়ন্ত্রণ করে। অতিরিক্ত সেট করার জন্য বিশেষাধিকারপ্রাপ্ত com.google.android.wearable.permission.COMPLICATION_EXTRAS অনুমতি প্রয়োজন। ( I4e3b2 )
  • ওয়াচ ফেস সাধারণত ব্যবহারকারীকে ListUserStyle ব্যবহার করে রঙ নির্বাচন করতে দেয়, প্রতিটি ListOption এর জন্য একটি আইকন থাকে। যেহেতু UserStyle স্কিমাগুলি ব্লুটুথের মাধ্যমে পাঠানো হয়, তাই স্কিমার আকার কম রাখা গুরুত্বপূর্ণ, যা এই সমস্ত আইকনের কারণে কয়েক ডজন রঙের বিকল্প দেওয়া হলে সমস্যা হতে পারে। এটিতে সহায়তা করার জন্য আমরা ColorUserStyleSetting যুক্ত করেছি যেখানে বিকল্পটিতে আইকনের পরিবর্তে রঙের তালিকা রয়েছে, যা অনেক বেশি কম্প্যাক্ট। ( Ib542e )
  • ColorUserStyleSetting এবং ColorOption ব্যবহারের জন্য API 34 প্রয়োজন। ( I8771d )

বাগ ফিক্স

  • এই লাইব্রেরিটি এখন JSpecify nullness annotations ব্যবহার করে, যা টাইপ-ব্যবহারের। সঠিক ব্যবহার জোরদার করার জন্য Kotlin ডেভেলপারদের নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত: -Xjspecify-annotations=strict (এটি Kotlin কম্পাইলারের 2.1.0 সংস্করণ থেকে শুরু করে ডিফল্ট)। ( Ifd363 , b/326456246 )

সংস্করণ 1.3.0-alpha04

১৮ সেপ্টেম্বর, ২০২৪

androidx.wear.watchface:watchface-*:1.3.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha04-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • UserStyleSettings এবং UserStyleOptions এ আইকনগুলির অলস লোডিংয়ের জন্য সমর্থন যোগ করা হয়েছে যা ওয়াচফেস লোড করার জন্য একটি পারফরম্যান্স জয়। ( Iaf43d )
  • নতুন Watchface.setUpdateScreenshotOnConfigurationChange এর মাধ্যমে সিস্টেম কনফিগারেশন পরিবর্তন হলে (যেমন লোকেল পরিবর্তিত হলে) আপডেট করা স্ক্রিনশট নেওয়ার জন্য একটি বিকল্প যোগ করা হয়েছে। ডিফল্টরূপে এই সেটিংটি বন্ধ থাকে। ( I765a1 )

বাগ ফিক্স

  • নতুন প্ল্যাটফর্ম API-তে অ্যাক্সেসের ম্যানুয়াল রূপরেখা সরানো হয়েছে কারণ এটি AGP 7.3 বা তার পরবর্তী সংস্করণ (যেমন R8 সংস্করণ 3.3) ব্যবহার করার সময় এবং AGP 8.1 বা তার পরবর্তী সংস্করণ (যেমন D8 সংস্করণ 8.1) ব্যবহার করার সময় সমস্ত বিল্ডের জন্য API মডেলিংয়ের মাধ্যমে স্বয়ংক্রিয়ভাবে ঘটে। যে ক্লায়েন্টরা AGP ব্যবহার করছেন না তাদের D8 সংস্করণ 8.1 বা তার পরবর্তী সংস্করণে আপডেট করার পরামর্শ দেওয়া হচ্ছে। আরও বিস্তারিত জানার জন্য এই নিবন্ধটি দেখুন। ( Ia60e0 , b/345472586 )

সংস্করণ 1.3.0-alpha03

১৭ এপ্রিল, ২০২৪

androidx.wear.watchface:watchface-*:1.3.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • আমরা EditorSession#setOverrideComplications যোগ করেছি যা সম্পাদনার সময় অন্তর্নিহিত ওয়াচফেস ইনস্ট্যান্সের ComplicationData অস্থায়ীভাবে সেট করে। যদি জটিলতাগুলি খুব কমই পরিবর্তিত হয়, তবে এটি EditorSession#renderWatchFaceToBitmap এর মাধ্যমে ওভাররাইড পাস করার চেয়ে বেশি কার্যকর। ( I19384 )

বাগ ফিক্স

  • পূর্বে selectComplicationDataForInstant যেকোনো টাইমলাইনের জন্য toApiComplicationData কল করত, যার অর্থ পরবর্তী === রেফারেন্স সমতা পরীক্ষা সর্বদা ব্যর্থ হত। এর অর্থ হল প্রতিটি ফ্রেমে জটিলতা পুনরায় লোড হচ্ছিল যার ফলে ব্যাটারি নিষ্কাশন হচ্ছিল। ( 717406 )

সংস্করণ 1.3.0-alpha02

৩ এপ্রিল, ২০২৪

androidx.wear.watchface:watchface-*:1.3.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • ইকুয়ালস অপারেটরটি ব্যয়বহুল হওয়ায় আমরা এখন সেরা এবং selectedData তুলনা করার জন্য রেফারেন্স ইকুয়ালিটি ব্যবহার করি। ( 446b00 )

API পরিবর্তনগুলি

  • আমরা GoalProgressComplicationData এর জন্য একটি নো-ফলব্যাক ডায়নামিক API যোগ করেছি। ( c33264 )

সংস্করণ 1.3.0-alpha01

৭ ফেব্রুয়ারী, ২০২৪

androidx.wear.watchface:watchface-*:1.3.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • WatchFaceServices একই সাথে ইনিশিয়ালাইজ করা যেতে পারে এবং সেগুলি স্টেটলেস হওয়া উচিত, এটি সমর্থন করার জন্য আমরা StatefulWatchFaceService যোগ করেছি যেখানে createExtra() দ্বারা তৈরি একটি ব্যবহারকারী সংজ্ঞায়িত অতিরিক্ত ইনিশিয়ালাইজেশনের সময় কল করা সমস্ত ওভাররাইডগুলিতে পাস করা হয়।
  • GlesRenderer2 এখন একটি কনস্ট্রাক্টর ওভারলোড রয়েছে যা আপনাকে eglChooseConfig দিয়ে চেষ্টা করার জন্য বৈশিষ্ট্যের একটি তালিকা নির্দিষ্ট করতে দেয়।

API পরিবর্তনগুলি

  • StatefulWatchFaceService এখন getComplicationSlotInflationFactory এর একটি ওভাররাইড সমর্থন করে যেখানে createExtra() দ্বারা তৈরি ব্যবহারকারী-সংজ্ঞায়িত অতিরিক্ত পাস করা হয়। ( I82d9f )
  • কিছু ঘড়ির মুখের জন্য createUserStyleSchema এর সময় তৈরি করা সহায়ক ডেটা অন্যান্য প্রাথমিক পদ্ধতির সাথে ভাগ করে নেওয়া প্রয়োজন। যেহেতু এর চেয়ে ভালো বিকল্প ছিল না, তাই ডেভেলপাররা সাধারণত তাদের WatchFaceServices স্টেটফুল করে তোলে। এটি বিপজ্জনক কারণ একাধিক উদাহরণ একসাথে তৈরি করা যেতে পারে যা বাগের কারণ হতে পারে। এটি সমাধানের জন্য আমরা StatefulWatchFaceService এবং StatefulWatchFaceRuntimeService চালু করেছি যেখানে createExtra() দ্বারা একটি ব্যবহারকারী-নির্ধারিত প্রকার তৈরি করা হয় এবং একটি প্যারামিটার হিসাবে বিভিন্ন create পদ্ধতিতে প্রেরণ করা হয়। ( If8a99 )
  • আমরা InteractiveWatchFaceClientgetUserStyleFlavors যোগ করেছি, যা মূলত OEM-দের জন্য আকর্ষণীয়। ( I0f5d8 )
  • GlesRenderer2 এখন একটি কনস্ট্রাক্টর ওভারলোড রয়েছে যা আপনাকে eglChooseConfig দিয়ে চেষ্টা করার জন্য অ্যাট্রিবিউটের একটি তালিকা নির্দিষ্ট করতে দেয়। উদাহরণস্বরূপ, এটি আপনাকে প্রথমে অ্যান্টি-অ্যালিয়াসিং সহ একটি কনফিগারেশন চেষ্টা করতে এবং প্রয়োজনে কোনও একটিতে ফিরে যেতে দেয়। ( I1ba74 )
  • Android U থেকে, WearOS-এ SystemDataSources.DATA_SOURCE_HEART_RATE এর জন্য সমর্থন যোগ করা হবে। এই জটিলতাটি শুধুমাত্র SHORT_TEXT জটিলতা সমর্থন করবে বলে নিশ্চিত, তবে ComplicationSlot জন্য SMALL_IMAGE গ্রহণ করার পরামর্শ দেওয়া হচ্ছে কারণ OEM-রা লাইভ মানের পরিবর্তে তাদের স্বাস্থ্য অ্যাপের শর্টকাট পরিবেশন করতে পারে। ( 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

২৪ জানুয়ারী, ২০২৪

androidx.wear.watchface:watchface-*:1.2.1 প্রকাশিত হয়েছে। সংস্করণ 1.2.1-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • Samsung Galaxy Watch 4, 5 এবং 6-এ একটি ক্র্যাশ ঠিক করা হয়েছে। ( 43f0b0 )

সংস্করণ 1.2.0

২৯ নভেম্বর, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-এ এই কমিটগুলি রয়েছে।

১.১.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

  • আমরা কিছু নতুন জটিলতার ধরণ যোগ করেছি যা Android T থেকে ব্যবহারের জন্য উপলব্ধ:
    • GoalProgressComplicationData যা RangedValueComplicationData এর অনুরূপ, তবে এটি এমন একটি লক্ষ্যের দিকে অগ্রগতির জন্য যেখানে min স্পষ্টতই শূন্য, এবং মানটি targetValue চেয়ে বড় হতে পারে।
    • WeightedElementsComplicationData যা ঐচ্ছিক টেক্সট/শিরোনাম/ছবি সহ উপাদানগুলির একটি অ্যারে (ওজন এবং রঙের জোড়া) নিয়ে গঠিত। এগুলি একটি পাই চার্ট হিসাবে প্রদর্শিত হতে পারে যেখানে প্রেক্ষাপটের ভিত্তিতে রঙগুলি অর্থপূর্ণ হতে হবে, কারণ সাধারণত লেবেল রেন্ডার করার জন্য কোনও জটিলতার জায়গা থাকে না।
  • আমরা RangedValueComplicationData তে ঐচ্ছিক ColorRanges এর জন্য সমর্থন যোগ করেছি। সাধারণত জটিলতাগুলি ঘড়ির মুখের পছন্দের রঙে রেন্ডার করা হয়, তবে কখনও কখনও ComplicationDataSource রঙগুলি সেট করার জন্য সবচেয়ে ভালভাবে স্থাপন করা হয়, যেমন যখন তাদের একটি নির্দিষ্ট শব্দার্থিক অর্থ থাকে। যেমন তাপমাত্রার জন্য লাল থেকে নীল।
  • প্রায় সব ধরণের ComplicationData এখন SmallImages সমর্থন করে।
  • আমরা ComplicationDisplayPolicy যোগ করেছি যেখানে DO_NOT_SHOW_WHEN_DEVICE_LOCKED একটি সামঞ্জস্যপূর্ণ ওয়াচ ফেসকে নির্দেশ দেয় যে ডিভাইসটি লক থাকা অবস্থায় জটিলতা প্রদর্শন না করার জন্য।
  • Android T থেকে, OEM গুলি নির্ধারণ করতে সক্ষম হবে যে কোনও জটিলতার অনুরোধ তাদের প্রদানকারীর 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

১৮ অক্টোবর, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.2.0-beta02

৬ সেপ্টেম্বর, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • SuspendingComplicationDataSourceService#onDestroy এখন খোলা আছে। অনুগ্রহ করে মনে রাখবেন সিস্টেমের ডিফল্ট আবহাওয়া সংক্রান্ত জটিলতার জন্য সমর্থন সরানো হয়েছে।

API পরিবর্তনগুলি

  • "আবহাওয়ার জটিলতার জন্য একটি নতুন ডেটা উৎস প্রকাশ করুন"। ( I6f335 )

সংস্করণ 1.2.0-beta01

২৩ আগস্ট, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • অ্যান্ড্রয়েড টি থেকে, WearOS এখন একটি ডিফল্ট আবহাওয়া সিস্টেম জটিলতা সমর্থন করবে।

API পরিবর্তনগুলি

  • জটিলতার জন্য আবহাওয়ার ডিফল্ট সিস্টেম ফলব্যাক যোগ করুন। ( Ia0994 )
  • এই প্যাচটিতে পেয়ারার র‍্যাপারের সাথে WatchFaceRuntimeService এবং WatchFaceControlClient.createWatchFaceRuntimeControlClient যোগ করা হয়েছে। এগুলি ওয়াচ ফেস রানটাইমের জন্য সমর্থন যোগ করে যা একটি বিশেষ ধরণের ওয়াচ ফেস যা অন্য প্যাকেজ থেকে এর সংজ্ঞা লোড করে। বর্তমানে WearOS শুধুমাত্র অ্যান্ড্রয়েড ওয়াচ ফেস ফর্ম্যাটের জন্য রানটাইম সমর্থন করে। ( I2799f )
  • এই প্যাচটি aosp/2636578 এর একটি ফলো-আপ যেখানে আমরা int defs এর নাম পরিবর্তন করি যাতে WatchFaceType , CanvasType , TapType বা ComplicationsSlotBoundsType এর উপর নির্ভর করে যেকোনো কোড পরিবর্তন করার প্রয়োজন হয় না। ( I4098b )
  • সামঞ্জস্যতা দমনের জন্য অ্যানোটেট করার জন্য API ফাইলগুলি আপডেট করা হয়েছে। ( I8e87a , b/287516207 )
  • এই প্যাচটি WatchFaceTypesWatchFaceType ধ্রুবক, CanvasTypesCanvasType ধ্রুবক, TapTypesTapType ধ্রুবক এবং ComplicationsSlotBoundsTypeComplicationsSlotBoundsType ধ্রুবক প্রকাশ করে। ( I3b85a , b/288750666 )
  • WatchFace.OverlayStyle ব্যবহার খুবই কম এবং OEM গুলি এটিকে ভালোভাবে সমর্থন করে না, তাই আমরা পরবর্তী সময়ে এটি অপসারণের উদ্দেশ্যে এটির মূল্য হ্রাস করছি। ( I7344a )

সংস্করণ 1.2.0-alpha09

২১ জুন, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-alpha09 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha09-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • RangedValueComplicationData.Builder এখন DynamicFloat গ্রহণ করে, এবং ComplicationText এর একটি সাবক্লাস হিসেবে একটি নতুন DynamicComplicationText উপলব্ধ, যা উভয়ই গতিশীল এক্সপ্রেশন এবং সমর্থিত Wear 4 ডিভাইসে 1hz এ আপডেট করা প্ল্যাটফর্ম বাইন্ডিং ব্যবহার করতে পারে।

API পরিবর্তনগুলি

  • দৈনিক দূরত্ব, দৈনিক ক্যালোরি এবং দৈনিক ফ্লোরের জন্য ডায়নামিক টাইপ যোগ করা হয়েছে। প্ল্যাটফর্ম স্বাস্থ্য উৎসের জন্য কীগুলি এখন PlatformHealthSources.Keys ( Ib7637 ) এর অধীনে রয়েছে।
  • হৃদস্পন্দন এবং দৈনিক পদক্ষেপ প্রদানের জন্য PlatformDataProvider বাস্তবায়ন করুন। পাবলিক API থেকে SensorGateway ইন্টারফেস সরানো হয়েছে। ( I55b84 )
  • StateEntryValue এর নাম পরিবর্তন করে DynamicDataValue করুন, এবং DynamicDataKey ব্যবহার করার জন্য state API গুলি আপডেট করুন। ( If1c01 )
  • অ্যাপ পুশ করা অবস্থা অ্যাক্সেস করার জন্য AppDataKey যোগ করুন; প্ল্যাটফর্ম ডেটা অ্যাক্সেস করার জন্য PlatformDataKey যোগ করুন; StateStore এ নেমস্পেস সাপোর্ট যোগ করুন। ( I7985e )
  • DynamicTypeEvaluator থেকে enable / disablePlatformSource পদ্ধতিগুলি সরানো হয়েছে। আপডেটের জন্য কলকারীরই দায়িত্ব থাকা উচিত। ( I78c6d )
  • বাউন্ড ডেটা টাইপের আকার ক্যাপ করার অনুমতি দিন। ( Ie2966 )

সংস্করণ 1.2.0-alpha08

১৯ এপ্রিল, ২০২৩

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 কে ওভাররাইড করে। এর অর্থ হল একটি জটিলতা প্রদানকারী বিশ্বস্ত বনাম অবিশ্বস্ত ওয়াচফেসে বিভিন্ন ধরণের পরিবেশন করতে পারে।

API পরিবর্তনগুলি

  • সম্পত্তিতে @Deprecated শ্রেণীর প্রচার ( I882d1 , b/271441831 )
  • Enum.valueOf এর জন্য মান প্যারামিটারের নাম পরিবর্তন করা হয়েছে ( Ia9b89 )
  • enum valueOf ( I818fe ) থেকে আরও থ্রোন করা ব্যতিক্রম
  • আমরা createRemoteWatchFaceView এর পক্ষে renderWatchFaceToSurface সরিয়ে দিয়েছি, যা SurfaceControlViewHost এর উপরে তৈরি এবং কলারকে ওয়াচফেস থেকে একটি ভিউ এম্বেড করার অনুমতি দেয়, যা ক্লায়েন্ট যখন RemoteWatchFaceViewHost#renderWatchFace কল করে তখন রেন্ডার হয়। ( Ib311d )
  • আমরা InteractiveWatchFaceClient , HeadlessWatchFaceClient এবং EditorSessionrenderWatchFaceToSurface যোগ করেছি। সাধারণত এটি একটি বিটম্যাপে রেন্ডারিংয়ের চেয়ে বেশি কার্যকর হবে। ( Ieacad )
  • ObservableStateStore নাম পরিবর্তন করে StateStore করা হয়েছে। ( Ieb0e2 )
  • আরও ঐচ্ছিক আর্গুমেন্টের অনুমতি দেওয়ার জন্য কনস্ট্রাক্টর আর্গুমেন্টের পরিবর্তে DynamicTypeEvaluator.Builder যোগ করা হয়েছে, যার মধ্যে রয়েছে ObservableStateStore যা এখন একটি খালি স্টোরে ডিফল্ট। ( I6f832 )
  • DynamicTypeEvaluator এ প্যারামিটারের পুনঃফ্যাক্টর করা ক্রম। ( Ic1ba4 )
  • DynamicTypeEvaluator.bind পদ্ধতিতে এক্সিকিউটর যোগ করা হয়েছে। ( I346ab )
  • ডায়নামিক টাইপ বাউন্ড হওয়ার পরে মূল্যায়ন শুরু করার জন্য আমরা BoundDynamicTypestartEvaluation পদ্ধতি যোগ করেছি। ( 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

২২ ফেব্রুয়ারী, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha07-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • Android T থেকে, OEM গুলি নির্ধারণ করতে সক্ষম হবে যে কোনও জটিলতার অনুরোধ তাদের প্রদানকারীর android.support.wearable.complications.SAFE_WATCH_FACES ComplicationRequest#isForSafeWatchFace দ্বারা সংজ্ঞায়িত তালিকার একটি ঘড়ির মুখ থেকে এসেছে কিনা। TargetWatchFaceSafety.UNKNOWN ছাড়া অন্য কিছু পেতে প্রদানকারীর com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE অনুমতির প্রয়োজন হবে।

  • এছাড়াও অ্যান্ড্রয়েড টি থেকে CustomValueUserStyleSetting2 ব্যবহারের জন্য উপলব্ধ যা ১২.৫kb পর্যন্ত ধারণ করতে পারে। CustomValueUserStyleSetting এর পূর্ববর্তী সীমা ছিল ১kb। বর্ধিত আকারের সীমা সত্ত্বেও, ওয়াচফেস ডেভেলপারদের ডেটা ছোট রাখতে উৎসাহিত করা হচ্ছে কারণ সম্পাদনার সময় সেটিংস ব্লুটুথের মাধ্যমে পাঠানো হয় এবং ব্লুটুথ ব্যান্ডউইথ সীমিত।

API পরিবর্তনগুলি

  • আমরা GlesRenderer এবং GlesRenderer2 তে একটি ঐচ্ছিক প্যারামিটার eglContextAttribList যোগ করেছি যা আপনাকে EGL14.EGL_CONTEXT_CLIENT_VERSION কে EGL14.eglCreateContext তে পাস করা সেট করতে দেয়। ( I2a83e )
  • আমরা ওয়াচ ফেস লিবগুলিকে java.util.function.Consumer এর পরিবর্তে androidx.core.util.Consumer এ স্থানান্তরিত করেছি। ( I273f5 )
  • KT প্রোপার্টি অ্যাক্সেসর থেকে আরও থ্রোন করা ব্যতিক্রম ( Iff9d9 )
  • আমরা InteractiveWatchFaceClient.isComplicationDisplayPolicySupported যোগ করেছি যাতে ক্লায়েন্ট নির্ধারণ করতে পারে যে তাকে পুরানো ওয়াচফেসের পক্ষে সমর্থন অনুকরণ করতে হবে কিনা। ( I24c89 )
  • আমরা সিদ্ধান্ত নিয়েছি যে isForSafeWatchFace একটি ত্রি-অবস্থা IntDef হওয়া উচিত। ( Ief2f7 )
  • অ্যান্ড্রয়েড টি-এর জন্য আমরা ComplicationRequest.isForSafeWatchFace চালু করেছি যা OEM ব্যবহারের জন্য তৈরি এবং এর জন্য com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE প্রয়োজন। সিস্টেম ইমেজে ডেটা সোর্সের জন্য, যদি অনুরোধকারী ওয়াচফেসটি তার ম্যানিফেস্টে ডেটা সোর্স দ্বারা নির্দিষ্ট করা নিরাপদ ওয়াচফেসের তালিকার ভিতরে থাকে তবে এটি true ফিরে আসবে। ( I0cbb6 )
  • অ্যান্ড্রয়েড টি-এর জন্য আমরা CustomValueUserStyleSetting2 যোগ করেছি যা ১২.৫kb পর্যন্ত ধারণ করতে পারে। CustomValueUserStyleSetting এর পূর্ববর্তী সীমা ছিল ১kb। ( I0b100 )

সংস্করণ 1.2.0-alpha06

২৫ জানুয়ারী, ২০২৩

androidx.wear.watchface:watchface-*:1.2.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha06-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • জটিল প্ল্যাটফর্ম বাইন্ডিংয়ের জন্য সমর্থন যোগ করার কাজ চলছে, এটি এখনও ব্যবহারের জন্য প্রস্তুত নয়, তবে সাথে থাকুন!
  • আমরা নতুন জটিলতার ধরণ, GOAL_PROGRESS এবং WEIGHTED_ELEMENTS-এর জন্য XML ComplicationSlot সমর্থন যোগ করেছি।

বাগ ফিক্স

  • Samsung ডিভাইসে ওয়াচফেস এডিটর সঠিকভাবে প্রকাশিত না হওয়ায় একটি লিক ঠিক করা হয়েছে। ( 3b5987 )
  • একাধিক পছন্দের ওয়াচফেসের মধ্যে স্যুইচ করার সময় জটিলতাগুলি সঠিকভাবে প্রদর্শিত না হওয়ার একটি বাগ সংশোধন করা হয়েছে। ( b38ece )
  • perOptionScreenReaderNames এর সাথে একটি সিরিয়ালাইজেশন বাগ সংশোধন করে যা ঘড়ির মুখ ক্র্যাশের দিকে পরিচালিত করে। ( e9f466 )

সংস্করণ 1.2.0-alpha05

৭ ডিসেম্বর, ২০২২

androidx.wear.watchface:watchface-*:1.2.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha05-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কিছুদিন আগে আমরা হাইয়ারার্কিকাল UserStyleSettings এর জন্য সমর্থন যোগ করেছি, এবং অ্যান্ড্রয়েড টি থেকে এখন একটি হাইয়ারকিতে একাধিক ComplicationSlotsUserStyleSetting রাখা সম্ভব। ব্যবহারকারীর স্টাইল নির্বাচনের উপর ভিত্তি করে শুধুমাত্র একটি ComplicationSlotsUserStyleSetting সক্রিয় থাকবে।

  • আমরা একটি screenReaderName ক্ষেত্র যোগ করে ListOption এবং ComplicationSlotsOption এর জন্য স্ক্রিন রিডার সাপোর্ট উন্নত করছি, মনে রাখবেন android T-এর আগে এই ক্ষেত্রটি সহযোগী সম্পাদকরা উপেক্ষা করবে।

API পরিবর্তনগুলি

  • আমরা সম্পাদকদের ব্যবহারের জন্য ListOption এবং ComplicationSlotsOption এ একটি নতুন ঐচ্ছিক screenReaderName ক্ষেত্র যুক্ত করেছি - android T-এর আগে ডিভাইসগুলিতে সহযোগী সম্পাদকরা এটি উপেক্ষা করবে। ( I75326 )
  • অ্যান্ড্রয়েড টি থেকে একাধিক ComplicationSlotsUserStyleSettings এখন একটি স্টাইল হায়ারার্কিতে সমর্থিত, যতক্ষণ না তাদের মধ্যে সর্বাধিক কেবল একটিই যেকোনো সময়ে সক্রিয় থাকতে পারে। আমরা UserStyleSchema তে findComplicationSlotsOptionForUserStyle একটি ইউটিলিটি ফাংশন যুক্ত করেছি যা সক্রিয় ComplicationSlotsOption খুঁজে পেতে সাহায্য করবে। ( Ic2b06 )
  • RangedValuesTypes RangedValueComplicationData এর কম্প্যানিয়ন অবজেক্টে টেনে আনা হয়েছে এবং TYPE_UNDEFINED , TYPE_RATING নামকরণ করা হয়েছে এবং একটি নতুন TYPE_PERCENTAGE যোগ করা হয়েছে। ( I55d02 )
  • আমরা পরীক্ষামূলক DynamicFloat নাম পরিবর্তন করে FloatExpression রেখেছি এবং এটিকে @hide হিসেবে চিহ্নিত করেছি। ( Idf4f1 )
  • @JvmDefaultWithCompatibility টীকা যোগ করা হচ্ছে ( I8f206 )

সংস্করণ 1.2.0-alpha04

৯ নভেম্বর, ২০২২

androidx.wear.watchface:watchface-*:1.2.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha04-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • Android T-এর জন্য আমরা দুটি নতুন জটিলতার ধরণ, GoalProgressComplicationData এবং WeightedElementsComplicationData এর জন্য সমর্থন যোগ করেছি।
  • GoalProgressComplicationData RangedValueComplicationData এর অনুরূপ, কিন্তু এর মান লক্ষ্যমাত্রা অতিক্রম করতে সক্ষম ( RangedValueComplicationData এর জন্য মানটি [সর্বনিম্ন .. সর্বোচ্চ] পরিসরে আটকানো থাকে) যার ফলে ভিজ্যুয়াল ডিজাইনের উপর প্রভাব পড়ে যা সমস্ত ঘড়ির মুখের সাথে মানানসই নাও হতে পারে।
  • GoalProgressComplicationData পাই চার্ট এবং সাধারণ ডেটার অনুরূপ ভাঙ্গনের জন্য সমর্থন যোগ করে।
  • আমরা RangedValueComplicationData তে ColorRamps এর জন্য ঐচ্ছিক সমর্থন যোগ করেছি।
  • অ্যান্ড্রয়েড টি-এর জন্য, আমরা ComplicationData তে ComplicationPersistencePolicy এবং setCachePolicy যোগ করেছি যা বর্তমানে একজন প্রদানকারীকে নিয়ন্ত্রণ করতে দেয় যে কোনও জটিলতা টিকে আছে কিনা (অর্থাৎ রিবুট করার পরে এটি ক্যাশে করা হয়েছে কিনা)। বেশিরভাগ জটিলতার জন্য ক্যাশে নিয়ন্ত্রণ সেট করার প্রয়োজন হবে না, তবে এটি করার ফলে কিছু জটিলতার জন্য স্টেল ডেটা দিয়ে কর্নার কেসগুলি ঠিক করা যেতে পারে যা ঘন ঘন আপডেট হয় (যেমন স্বাস্থ্য ডেটা জটিলতা)। আমরা ComplicationDisplayPolicy ও যোগ করেছি যেখানে DO_NOT_SHOW_WHEN_DEVICE_LOCKED একটি সামঞ্জস্যপূর্ণ ওয়াচ ফেসকে নির্দেশ দেয় যে ডিভাইসটি লক থাকা অবস্থায় জটিলতা প্রদর্শন না করতে। ( Ic9574 )

API পরিবর্তনগুলি

  • GoalProgressComplicationData , WeightedElementsComplicationData এবং ColorRamp আর পরীক্ষামূলক নয়। ( Ica9e2 )
  • ComplicationPersistencePolicy এবং ComplicationDisplayPolicy এখন সঠিকভাবে T API হিসেবে চিহ্নিত করা হয়েছে। ( I31d88 )
  • অপ্রচলিত ComplicationSlotOverlay কনস্ট্রাক্টরে এখন DeprecationLevel.WARNING আছে যার ফলে এটি আবার জাভা থেকে কল করা যাবে। ( Ib308c )
  • আমরা ComplicationRequestListener , CanvasComplication , ComplicationTapFilter এবং InteractiveWatchFaceClient এর সাথে কিছু জাভা কম্প্যাট সমস্যা @JvmDefaultWithCompatibility ( Id94fc ) দিয়ে টীকা দিয়ে সমাধান করেছি।
  • আমরা পরীক্ষামূলক ProtoLayoutComplicationData এবং ListComplicationData সরিয়ে ফেলেছি। এগুলোর ডেভেলপারের গল্প অস্পষ্ট ছিল, আমরা ভবিষ্যতে আবার দেখার আশা করছি। ( I9df05 )
  • আমরা RangedValueComplicationData তে একটি ValueType যোগ করেছি। WeightedElementsComplicationData এখন একটি ব্যাকগ্রাউন্ড কালার সমর্থন করে। আমরা DiscreteRangedValueComplicationData সরিয়ে দিয়েছি কারণ এর কার্যকারিতা WeightedElementsComplicationData এর একটি উপসেট। ( I6446c )

বাগ ফিক্স

  • equals এবং হ্যাশ কোডে isForScreenShot অন্তর্ভুক্ত করুন। নিশ্চিত করুন যে onRenderParametersChanged সঠিক isForScreenshot মান ( I04a41 ) পেয়েছে।
  • হেডলেস ক্লায়েন্টদের কাছ থেকে WatchFaceControlService ফাঁস ঠিক করা হয়েছে। ( e90e00 )

সংস্করণ 1.2.0-alpha03

৫ অক্টোবর, ২০২২

androidx.wear.watchface:watchface-*:1.2.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কোনও নতুন বৈশিষ্ট্য নেই, তবে আমরা ওয়াচফেস এডিটরের কয়েকটি বাগ ঠিক করেছি।

API পরিবর্তনগুলি

  • rootUserStyleSettings স্টাইলসেটিংস হিসাবে অপ্রচলিত UserStyleSchema.userStyleSettings অ-পরীক্ষামূলক হয়ে যায় ( Ie96e3 )
  • পরীক্ষামূলক ( I8d6b3 ) থেকে rootUserStyleSettings সরান।
  • আমরা WatchFaceColors পরীক্ষামূলক হিসেবে চিহ্নিত করেছি কারণ এটি সমস্ত সিস্টেমে সমর্থিত নয় ( I6d75d )
  • IntDef সাথে কাজ করার জন্য পাবলিক API-তে DisconnectReasons এক্সপোজ করুন। ( I791f8 )

বাগ ফিক্স

  • SysUI বন্ধ হয়ে গেলে যেকোনো খোলা ঘড়ির সম্পাদক বন্ধ করুন। যদি SysUI বন্ধ হয়ে যায় এবং অন ওয়াচ ফেস সম্পাদক বন্ধ না হয়, তাহলে ঘড়ির মুখটি একটি অসামঞ্জস্যপূর্ণ অবস্থায় থাকতে পারে কারণ সিস্টেমটি ব্যবহারকারীর স্টাইল পরিবর্তন অব্যাহত রাখার জন্য SysUI উপর নির্ভর করে। ( ba762a)
  • ComplicationDataSourceInfoRetriever এ একটি মেমরি লিক ঠিক করুন, যেখানে একটি kotlin coroutine ধারাবাহিকতা একটি gc রুট হিসেবে কাজ করছিল এবং সম্পাদক কার্যকলাপ ধরে রাখছিল। ( 33ee06 )

সংস্করণ 1.2.0-alpha02

২১ সেপ্টেম্বর, ২০২২

androidx.wear.watchface:watchface-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কিছু ঘড়ির মুখের UserStyle এর বাইরে কনফিগারেশন থাকে যা এটিকে দৃশ্যত প্রভাবিত করে, (যেমন একটি ব্যাকগ্রাউন্ড ছবি নির্বাচন করা)। আমরা Renderer.sendPreviewImageNeedsUpdateRequest যোগ করেছি যা ঘড়ির মুখকে একটি আপডেট করা প্রিভিউ চিত্রের অনুরোধ করতে দেয়। মনে রাখবেন এটি কাজ করার জন্য একটি সংশ্লিষ্ট সিস্টেম আপ-ডেট প্রয়োজন।

  • আমরা ঘড়ির মুখগুলির রঙ সিস্টেমে প্রকাশ করার জন্য একটি APIও যুক্ত করেছি যা এর উপর ভিত্তি করে এর রঙ প্যালেট বেছে নিতে পারে। মনে রাখবেন যে এটি একটি ফলো-অন প্যাচে পরীক্ষামূলকভাবে তৈরি করা হয়েছে।

  • প্রায় প্রতিটি ধরণের ComplicationData এখন SmallImages সমর্থন করে।

API পরিবর্তনগুলি

  • ওয়ালপেপার ম্যানেজার কখনও কখনও একটি ইঞ্জিন থেকে বিচ্ছিন্ন হয়ে আরেকটি তৈরি করতে পারে। আমরা একটি DisconnectReason int def এবং ClientDisconnectListener বর্ধিত করেছি একটি নতুন পদ্ধতির সাথে যার মধ্যে একটি DisconnectReason অন্তর্ভুক্ত রয়েছে, যা শ্রোতাকে ইঞ্জিন বিচ্ছিন্নতা পর্যবেক্ষণ করতে দেয়। ( I45cce )
  • ComplicationSlotOverlay কনস্ট্রাক্টরে ( I157e8 ) দুটি ঐচ্ছিক প্যারামিটার nameResourceId এবং screenReaderResourceId যোগ করা হয়েছে।
  • আমরা getOrCreateInteractiveWatchFaceClient এর নতুন ওভারলোডের জন্য একটি PreviewImageUpdateRequestedListener সহ একটি পেয়ারার মোড়ক যুক্ত করেছি। ( Ic31f0 )
  • আমরা Renderer.sendPreviewImageNeedsUpdateRequest যোগ করেছি যা UserStyleSchema এর বাইরের অবস্থাযুক্ত ঘড়ির মুখগুলির জন্য কার্যকর যা তাদের চেহারাকে প্রভাবিত করে (যেমন একটি নির্বাচনযোগ্য ব্যাকগ্রাউন্ড চিত্র সহ একটি ঘড়ির মুখ)। ক্লায়েন্ট সাইডে আমরা এই অনুরোধগুলি পর্যবেক্ষণ করার জন্য getOrCreateInteractiveWatchFaceClient এর ঐচ্ছিক প্যারামিটার হিসাবে PreviewImageUpdateRequestedListener যোগ করেছি। ( Iff44a )
  • আমরা WatchFaceColors এক্সপোজারের জন্য API সহজ করেছি, এখন Renderer-এ watchFaceColors নামে একটি সহজ বৈশিষ্ট্য রয়েছে যা ওয়াচফেস সেট করতে পারে, যেকোনো স্টাইল পরিবর্তনের প্রতিক্রিয়ায় এটি প্রয়োজন অনুসারে আপডেট করা উচিত। রঙের পরিবর্তন পর্যবেক্ষণ করার জন্য WallpaperManager ব্যবহার করার পরিবর্তে, আমরা InteractiveWatchFaceClientOnWatchFaceColorsListener যোগ করেছি। ( I490bc )
  • আমরা একটি WatchFaceColors ক্লাস যোগ করেছি যা তিনটি সবচেয়ে বিশিষ্ট ঘড়ির মুখের রঙ ধারণ করে এবং খোলা পদ্ধতি যোগ করেছে watchfaceColors & notifyWatchFaceColorsChanged রেন্ডারারে পরিবর্তিত হয়েছে, এগুলি সিস্টেমকে WallpaperManager.getWallpaperColors এর মাধ্যমে ঘড়ির মুখের রঙগুলি পেতে দেয়। ( I3d611 )
  • ShortTextComplicationData , RangedValueComplicationData , NoPermissionComplicationData (এবং পরীক্ষামূলক DiscreteRangedValueComplicationData , GoalProgressComplicationData এবং WeightedElementsComplicationData ) এখন SmallImages সমর্থন করে। যদি একটি ওয়াচফেস একাধিক রঙের একটি জটিলতা রেন্ডার করতে পছন্দ করে, তাহলে এখন এটি একটি বহু রঙের SmallImage ব্যবহার করার বিকল্প পাবে যেখানে আগে এটিকে একটি একরঙা ছবি ব্যবহার করতে হত। ( I257df )
  • রিফ্যাক্টর PreviewImageUpdateRequestedListener পরিবর্তে ( Ia875d ) একজন Consumer<> হতে হবে।
  • কাস্টম সিঙ্গেল অ্যাবস্ট্রাক্ট মেথড (SAM) টাইপ OnWatchfaceColorsListener জেনেরিক জাভা SAM টাইপ (Consumer) ( I0c489 ) দিয়ে প্রতিস্থাপন করুন।
  • আমরা পুরনো getOrCreateInteractiveWatchFaceClient এবং listenableGetOrCreateInteractiveWatchFaceClient পদ্ধতিগুলি বাতিল করেছি যা PreviewImageUpdateRequestedListener নির্দিষ্ট করে না। ( Iec502 )

বাগ ফিক্স

  • DisconnectReason.BINDER_DIED এর নাম পরিবর্তন করে DisconnectReason.ENGINE_DIED রাখা হয়েছে। ( I4eb0e )

সংস্করণ 1.2.0-alpha01

১০ আগস্ট, ২০২২

androidx.wear.watchface:watchface-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • আমরা বিভিন্ন নতুন জটিলতা ফর্ম্যাটের জন্য পরীক্ষামূলক সহায়তা যোগ করেছি। এটি সক্রিয় উন্নয়নের একটি ক্ষেত্র; এই নতুন ফর্ম্যাটগুলি কোনও নোটিশ ছাড়াই পরিবর্তন সাপেক্ষে এবং বর্তমানে CanvasComplicationDrawable থেকে কোনও রেন্ডারার সমর্থন নেই।
  • আমরা জটিলতার স্লটে ঐচ্ছিক মার্জিনও যুক্ত করেছি যা ছোট জটিলতাগুলি সহজেই সমাধান করতে সাহায্য করে।

API পরিবর্তনগুলি

  • পরীক্ষামূলক BoundingArc ক্লাসটি এখন অপরিবর্তনীয়। ( If624a )
  • ছোটখাটো জটিলতা মোকাবেলা করা কঠিন হতে পারে। এটি কমাতে, আমরা মার্জিনের জন্য সমর্থন চালু করেছি যা রেন্ডারিংকে প্রভাবিত না করেই ট্যাপযোগ্য এলাকা বৃদ্ধি করে। নির্দিষ্ট না করা পর্যন্ত (কোডে বা XML এর মাধ্যমে) ComplciationSlots মার্জিন শূন্য আকারের থাকে। ( I14089 )
  • getComplicationSlotInflationFactory(CurrentUserStyleRepository) স্বাক্ষর পরিবর্তন করে একটি নন-নাল ফ্যাক্টরি ইনস্ট্যান্স ফেরত পাঠানো হয়েছে। আগে null ফেরত দেওয়া একটি ত্রুটি ছিল, তাই এটি কেবল API চুক্তিটিকে আরও স্পষ্ট করে তুলছে। ( I0fcc0 )
  • createComplicationSlotsManager এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য আমরা WatchFaceService.getComplicationSlotInflationFactory পদ্ধতিতে currentUserStyleRepository আর্গুমেন্ট যোগ করেছি। ( I2ddd2 )
  • UserStyleFlavors এখন অ-পরীক্ষামূলক বৈশিষ্ট্যে পরিণত হয়েছে। ( I69cdc )
  • আমরা RangedValueComplicationData থেকে পরীক্ষামূলক ValueType সরিয়ে দিয়েছি এবং এর পরিবর্তে পরীক্ষামূলক DiscreteRangedValueComplicationData চালু করেছি যা RangedValueComplicationData মতো, পূর্ণসংখ্যার পরিসর এবং মান ছাড়া। আমরা পরীক্ষামূলক GoalProgressComplicationData ও চালু করেছি যা RangedValueComplicationData এর মতো, তবে এটি এমন একটি লক্ষ্যের দিকে অগ্রগতির জন্য যেখানে min স্পষ্টভাবে শূন্য, এবং মান targetValue চেয়ে বড় হতে পারে। দ্রষ্টব্য: সমস্ত RangedValue ভেরিয়েন্টের জন্য কমপক্ষে একটি monochromeImage, text বা title নির্দিষ্ট করতে হবে। ( I9590c )
  • আমরা ComplicationSlotState থেকে boundsWithMargins সরিয়ে ফেলেছি কারণ সিস্টেম সফ্টওয়্যারের এটির জন্য কোনও ব্যবহারের কেস নেই। ( I42e26 )
  • আমরা WeightedElementsComplicationData এর জন্য পরীক্ষামূলক সহায়তা যোগ করেছি যার মধ্যে রয়েছে ঐচ্ছিক টেক্সট/শিরোনাম/ছবি সহ বিভিন্ন উপাদানের (ওজন এবং রঙের জোড়া) অ্যারে। এগুলি একটি পাই চার্ট হিসাবে প্রদর্শিত হতে পারে যেখানে প্রেক্ষাপট বিবেচনা করে রঙগুলি অর্থপূর্ণ হতে হবে, কারণ সাধারণত লেবেল রেন্ডার করার জন্য কোনও জটিলতার জায়গা থাকে না। ( I87eea )
  • RangedValueComplicationData এবং GoalProgressComplicationData দ্বারা ঐচ্ছিকভাবে ব্যবহৃত পরীক্ষামূলক ColorRamps এখন আপনাকে সাতটি রঙের একটি ক্রম এবং একটি পতাকা নির্দিষ্ট করার অনুমতি দেয় যা নির্দেশ করে যে রঙগুলি মসৃণভাবে টুইন করা উচিত কিনা অথবা রঙের সমান আকারের কঠিন ধাপগুলি রেন্ডার করা উচিত কিনা। ( I9f5bf )
  • RangedValueComplicationData.drawSegmented valueType তে পরিবর্তন করা হয়েছে যা একটি int যার সাথে সংশ্লিষ্ট ValueType IntDef রয়েছে যা রেঞ্জড মানের অর্থ প্রদান করে এবং স্টাইলিংকে প্রভাবিত করার জন্য জটিলতা রেন্ডারার দ্বারা ব্যবহার করা যেতে পারে। ( I0616b )
  • আমরা RangedValueComplicationData তে ঐচ্ছিক ColorRanges এর জন্য পরীক্ষামূলক সহায়তা যোগ করেছি। সাধারণত জটিলতাগুলি ঘড়ির মুখের পছন্দের রঙে রেন্ডার করা হয়, তবে কখনও কখনও ComplicationDataSource রঙগুলি সেট করার জন্য সবচেয়ে ভালভাবে স্থাপন করা হয়, যেমন যখন তাদের একটি নির্দিষ্ট শব্দার্থিক অর্থ থাকে। যেমন তাপমাত্রার জন্য লাল থেকে নীল। ( I5153a )
  • আমরা RangedValueComplicationData তে একটি পরীক্ষামূলক drawSegmented ইঙ্গিত যোগ করেছি। এটি রেন্ডারারদের সেগমেন্ট সহ রেঞ্জড মান সূচক আঁকতে সংকেত দেয়, যেখানে 1 সেগমেন্ট = 1 ইউনিট। ( I7d7c1 )

বাগ ফিক্স

  • আমরা একটি পূর্বনির্ধারিত স্ক্রিন স্থানাঙ্ক সিস্টেমের সাপেক্ষে ComplicationSlotBounds সংজ্ঞায়িত করার ক্ষমতা যুক্ত করেছি। ( I0985d )

সংস্করণ 1.1

সংস্করণ 1.1.1

১০ আগস্ট, ২০২২

androidx.wear.watchface:watchface-*:1.1.1 প্রকাশিত হয়েছে। সংস্করণ 1.1.1-এ এই কমিটগুলি রয়েছে।

  • এটি একটি বাগ ফিক্স রিলিজ এবং ১.১.০ সংস্করণের ব্যবহারকারীদের আপগ্রেড করার জন্য জোরালোভাবে উৎসাহিত করা হচ্ছে।

বাগ ফিক্স

  • ওয়াচ ফেস ইনিশিয়ালাইজেশন অ্যাসিঙ্ক্রোনাস এবং যদি ওয়াচ ফেস প্রস্তুত হওয়ার আগে কোনও জটিলতা পাওয়া যায় তবে এটি pendingInitialComplications তালিকায় রাখা হয় এবং পরে প্রয়োগ করা হয়। দুর্ভাগ্যবশত pendingInitialComplications খুব তাড়াতাড়ি প্রয়োগ করা হয়েছিল যার অর্থ ওয়াচ ফেস ইনিশিয়ালাইজেশনের সময় একটি সময়সীমা ছিল যেখানে জটিলতাগুলি এখনও pendingInitialComplications এ রাখা হত এবং উপেক্ষা করা হত। এটি এখন ঠিক করা হয়েছে। এছাড়াও এই প্যাচটি একটি বাগ সংশোধন করে যেখানে ComplicationRenderer ভুলভাবে প্লেসহোল্ডারগুলিকে অ্যাসিঙ্ক্রোনাসভাবে লোড করার চেষ্টা করছিল, যা ব্যর্থ হওয়ার ফলে সংকলন গ্রাফিক কখনও আপডেট হয়নি। অবশেষে এই প্যাচটি একটি আশাবাদী তাত্ত্বিক বাগ সংশোধন করে যেখানে একাধিক pendingInitialComplications একত্রিত করতে হবে। ( 0d03ba3 )

  • Fix potential deadlock in InteractiveInstanceManager where getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance was holding the lock longer than necessary. Usually we'd expect engine.setUserStyle to be quick but if for some reason it's not then we could end up with a deadlock/ANR. This patch moves unnecessary work out of the lock, removing the potential for a deadlock.( 5a2adca )

  • Fix several issues that retained WatchFaceService . The WakeLock can sometimes retain the WatchFaceService , adding a release() call fixes this. Also the StateFlows can retain WatchFaceService , canceling the underlying CoroutineScopes fixes that.( fd48138 )

  • Add timeouts to awaitDeferredWatchFace * and fix watchfaceOverlayStyle NullPointerException . In normal circumstances this shouldn't timeout including after fresh install and DirectBoot scenarios where the CPU load is high. We've also fixed a NPE if getWatchfaceOverlayStyle is called after close() .( a4c3a5a )

সংস্করণ 1.1.0

১৫ জুন, ২০২২

androidx.wear.watchface:watchface-*:1.1.0 is released. Version 1.1.0 contains these commits.

১.০.০ থেকে গুরুত্বপূর্ণ পরিবর্তনগুলি

Improved Editing:

  • We added support for hierarchical schemas, which allows a hierarchy of styles to be scribed by editor UIs. You can now specify separate icons for use by on watch face and companion editors.
  • There is opt-in support for multiple instances of a watch face, each instance has a unique ID available across all API surfaces.
  • You can now specify human readable names for ComplicationSlots for use in editors.
  • Experimental support for styling “flavors”, a curated selection of styles which will be visible from the companion editor.
  • When editing two instances of the watchface are loaded, it's now possible for watchface instances to share resources, saving memory
  • When picking a complication in the on watch face editor, the current provider is now preselected.

Improved Complications:

  • You can now specify the ComplicationType for the primary and secondary data sources, giving developers more flexibility for the out of box experience.
  • We added ComplicationDataTimeline which provides a sequence of time-gated data to be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events.
  • The ComponentName of the complication provider is part of the ComplicationData .
  • Complications are now cached which provides a better experience when switching between watch faces.

Other changes:

  • The UserStyleSchema and ComplicationSlots can now be defined in XML. This simplifies watch face construction and allows for faster metadata queries from the system.
  • Watch faces can now influence the colors used for rendering the system overlay.

সংস্করণ 1.1.0-rc01

১৮ মে, ২০২২

androidx.wear.watchface:watchface-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.

নতুন বৈশিষ্ট্য

  • We've made some usability tweaks to watchface XML support, making it easier to specify ComplicationSlotBounds and supporting references. Experimentation with edge complication BoundingArc continues, plumbing it through to drawHighlight although it's not recommended for use at that time.

API পরিবর্তনগুলি

  • We've added an experimental overload of drawHighlight which accepts a BoundingArc parameter. ( I705f8 )
  • Watch face XML now supports resource references. It lets you use the same constants both in XML and your code. ( I3ef61 )
  • We've added the ability to define ComplicationSlotBounds in center_x , center_y , size_x , size_y form. Now it is also possible to use different units (ie dp) using resource references. ( Iace98 )

বাগ ফিক্স

  • Fix runBlockingWithTracing which was running tasks on the wrong context.( 4f595fe )
  • Make BaseEditorSession.close synchronous. The problem with BaseEditorSession.close being asynchronous is that we release the ComplicationDataSourceInfoRetriever too late leading to warning spam in logcat. This was probably harmless but logcat spam is distracting and should be avoided.( 35a5308 )

Version 1.1.0-beta02

১১ মে, ২০২২

androidx.wear.watchface:watchface-*:1.1.0-beta02 is released. Version 1.1.0-beta02 contains these commits.

নতুন বৈশিষ্ট্য

  • We've added experimental support for new ComplicationData types, these are not yet ready for use but watch this space.

API পরিবর্তনগুলি

  • We've added BoundingArc , an experimental class that describes the geometry of an edge complication slot. This has been added to ComplicationSlot and plumbed through to ComplicationSlotState and WatchFaceMetadataClient . ( I61a40 )
  • We've added the ability to inherit settings in UserStyleSetting XML. It lets you reduce verbosity and share a setting between watchfaces. ( Ief841 )
  • We have added two new experimental types of ComplicationData : ListComplicationData & ProtoLayoutComplicationData . Currently there's no rendering support for either of these types and WearOS doesn't currently recognize these types if added to a ComplicationDataSource's manifest. ( I1811c )

বাগ ফিক্স

  • Fix serialization of TimeLineEntry type. We were not serializing the TimeLineEntry type which meant cached TimeLineEntries of type NoData would be incorrectly interpreted as having the parent complication's type leading to NPEs when non-existent required fields were accessed. ( 55ffdf5 )
  • Fix a bug where setComplicationData dropped timeline fields( fb392f5 )
  • Fixes a bug where very occasionally runBlockingWithTracing would lead to an NPE( 12ca62e )
  • Fixes a bug where we sometimes get ClassNotFoundException: android.support.wearable.complications.ComplicationText when receiving a complication.( 217942d9 )
  • Fixes a bug in GlesRenderer.backgroundThreadInitInternal where it was only calling onBackgroundThreadGlContextCreated if EGL14.eglCreateContext was called. Fixes another bug where there was a visual glitch in the screenshot caused by verticalFlip .( c674ad2 )
  • Fix WatchFaceService XML version check, it was loading from the wrong package.( dfa06f3 )
  • Placeholder wire format now uses an inner bundle. We don't want placeholders to break existing watchfaces which might use the hidden inner aswcComplicationData. Previously the wire format of a NoDataComplication data stored the placeholder in the usual fields (problematic because old watch faces would render the placeholder string which isn't intended), instead we now use an inner bundle to fully isolate this.( d5e7bd2 )

সংস্করণ 1.1.0-beta01

April 20, 2022

androidx.wear.watchface:watchface-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.

API পরিবর্তনগুলি

  • Now WatchFaceMetadataClient methods ( getUserStyleSchema , getComplicationSlotMetadataMap , getUserStyleFlavors ) and HeadlessWatchFaceClient.getUserStyleFlavors throw unchecked RuntimeException instead of WatchFaceException . ( I0718a )
  • WatchFaceMetadataClient.WatchFaceException has been moved out of the class to allow it to be reused. ( I4e869 )

বাগ ফিক্স

  • WatchFaceMetadataClient will no longer crash when sent partial ComplicationSlotBounds .( Iaafd )

সংস্করণ 1.1.0-alpha05

৬ এপ্রিল, ২০২২

androidx.wear.watchface:watchface-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits.

নতুন বৈশিষ্ট্য

  • You can now tell which data source sent a ComplicationData by inspecting ComplicationData.dataSource , some watch faces may use this to customize complication display. ( I44a73 )

API পরিবর্তনগুলি

  • Renderer.CanvasRenderer and Renderer.GlesRenderer have been deprecated in favor of Renderer.CanvasRenderer2 and Renderer.GlesRenderer2 which support SharedAssets which are passed to the render methods. For java interop we've introduced ListenableCanvasRenderer2 and ListenableGlesRenderer2 . ( I31ffa )
  • Added @WatchFaceFlavorsExperimental ability to define flavors - preconfigured list of styled watchfaces ( I04dd0 )
  • Renderer.sharedAssets is now a StateFlow and we've removed the unused Renderer.SharedAssetsFactory ( I12ac5 )
  • UserStyleSchema.userStyleSettings is not deprecated anymore ( Iba7e3 )
  • We've added HeadlessWatchFaceClient.getUserStyleSchemaDigestHash which allows a HeadlessWatchFaceClient to avoid the relatively low overhead of passing the schema over AIDL before computing the digest hash. ( I33597 )
  • We've added isUserStyleSchemaStatic to WatchFaceMetadataClient which is true if and only if the UserStyleSchema can be relied on not to change unless the watch face APK is updated. ( I45a3f )
  • We have added getDigestHash to UserStyleSchema which computes a digest hash of the schema. This can be used to efficiently determine if the UserStyleSchema has changed. ( I2063d )
  • METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTED renamed to METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED ( I9ba5d )
  • UserStyleSetting.OnWatchEditorData has been renamed to UserStyleSetting.WatchFaceEditorData , it contains data that's used purely by the on watch face editor. ( If3afb )

সংস্করণ 1.1.0-alpha04

March 9, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.

API পরিবর্তনগুলি

  • Up to date ComplicationData may not always be available (eg expired cached ComplicationData) so we've extended NoDataComplication with an optional placeholder ComplicationData and added ComplicationText.PLACEHOLDER , MonochromaticImage.PLACEHOLDER , SmallImage.PLACEHOLDER , PhotoImage.PLACEHOLDER which are only allowed to be used inside the context of a NoDataComplicationData placeholder. If selected these placeholders are suggested to be rendered with gray boxes/arcs. ( I6285d )
  • We've added ComplicationData.getNextChangeInstant which tells you the next Instant after the reference Instant at which any field of the complication may change. This is used internally to schedule frames for complication updates. Eg if a watch face normally updates once per minute, setting the stop watch complication will cause it to update once per second. ( I7ceb2 )
  • EditorSession.watchFaceId can now be used on all API levels. In addition its value will now always be consistent with WatchState.watchFaceInstanceId . ( I323b9 )
  • The getPendingIntentForTouchEvent API is no longer necessary since the underlying issue has been fixed in the framework, so all the related APIs have been removed. Watchfaces do not need to do anything special for PendingIntents to fire, even if the home button has recently been pressed. ( I1f2e8 )
  • We've added RendererParameters.isForScreenShot which will be true if the render is for a screen shot. Some watch faces with animations need to know this in order to make adjustments to ensure the best results. ( I96d99 )
  • We've added WatchFaceExceptionReason to WatchFaceException to give some context to what went wrong. ( I01d15 )
  • ComplicationDataSourceService.onImmediateComplicationRequest has been removed, instead ComplicationRequest.immediateResponseRequired has been added to signal that the provider needs to respond quickly (ideally responding in < 100ms). Note this functionality is guarded behind the privileged com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE permission. ( Ie6b23 )
  • Updated nullability in core and appcompat to match Tiramisu DP2 ( I0cbb7 )

বাগ ফিক্স

  • Now watchface app crashes with an exception if the schema validation fails ( Ia400f )

সংস্করণ 1.1.0-alpha03

৯ ফেব্রুয়ারী, ২০২২

androidx.wear.watchface:watchface-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.

API পরিবর্তনগুলি

  • We've added experimental support for hierarchical style schemas. We've added a new property to androidx.wear.watchface.style.UserStyleSetting.Option , childSettings which is initially only used by ListOption . This allows a hierarchy of styles to be described for use by Editor UIs, the underlying UserStyle is unchanged and is still a Map<String, ByteArray> . ( Iaf6f4 )
  • We've added WatchFace.OverlayStyle which allows the watch face to configure the rendering of the system status overlay. ( I8520d )
  • We've introduced clearWithBackgroundTintBeforeRenderingHighlightLayer a new optional constructor parameter for CanvasRenderer (default is false), if set to true then the canvas will be cleared with the background tint color. ( Ie01e5 )
  • Added androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED metadata key which allows complication data sources to indicate they can provide a default value without any configuration ( Icc0d4 )
  • It's common when editing a watch face for there to be both an interactive and a headless instance. To help save memory we've introduced Renderer.SharedAssets which allows a watch face renderer to share immutable data (eg textures and shaders) between instances. GlesRenderer.setEglConfig and GlesRenderer.setEglDisplay are deprecated, it was never intended for these to be settable, and doing so would have led to undefined behavior. ( I0d9e7 )
  • We've added setNameResourceId & setScreenReaderNameResourceId (which reference string resources) to ComplicationSlot.Builder and corresponding getters in androidx.wear.watchface.client.ComplicationSlotState . This allows the system to fetch the names of ComplicationSlots for use in editors and screen readers. ( If6c6a )
  • WatchfaceMetadataClient.getUserStyleSchema and getComplicationSlotMetadataMap now throw WatchFaceException instead of RemoteException . ( I86f11 )
  • onSynchronousComplicationRequest and related functions in ComplicationDataSourceService have been renamed to onImmediateComplicationRequest etc... ( I87ba0 )
  • Watch face editors have much less screen real estate than companion editors, therefore it makes sense to support different icons for on watch face editors. This patch adds OnWatchEditorData (currently containing just an icon) to all UserStyleSettings and where appropriate their Option classes. ( If1886 )
  • We've added @JvmOverloads to ListenableGlesRenderer's constructor for better java interop. ( I2974a )

বাগ ফিক্স

  • ListenableGlesRenderer 's constructor is now correctly marked as @Throws(GlesException::class) , and it is now possible to extend this class in java. ( Iac6d0 )
  • Fixes bug with PhotoImageComplicationData tapAction not being correctly handled ( I1cc30 )

সংস্করণ 1.1.0-alpha02

১২ জানুয়ারী, ২০২২

androidx.wear.watchface:watchface-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.

নতুন বৈশিষ্ট্য

  • To aid debugging and testing, ComplicationData and related subclasses now have overridden hashcode, equals and toString methods making them easier to work with.

API পরিবর্তনগুলি

  • WatchfaceMetadataClient methods once again throw RemoteExceptions where appropriate, making it easier for client code to catch errors from the watch face. ( I78785 )
  • ComplicationData and sub classes now have hashcode, equals and toString. ( I24bc6 )

সংস্করণ 1.1.0-alpha01

১৫ ডিসেম্বর, ২০২১

androidx.wear.watchface:watchface-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

নতুন বৈশিষ্ট্য

  • The UserStyleSchema and ComplicationSlots can now be defined in XML. This simplifies watch face construction. In addition, WatchFaceMetadataClient queries are faster because it doesn't need to bind to the service to get the metadata. The WatchFaceMetadataClient and ListenableWatchFaceMetadataClient are no longer experimental and will become part of the stable api. The system will be able to optionally support multiple instances of a watch face, each with distinct user defined styling options. These will be visible in the watch face picker. To opt into this a watch face must include the following meta data tag in its manifest.

        <meta-data
            android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED"
            android:value="true" />
    
  • Some watch faces have state that's not captured in the UserStyle , to support this and multiple instances, the watch face's instance ID is now available via WatchState.watchFaceInstanceId .

  • ComplicationData is now being cached to allow complications to be displayed immediately upon loading. Sometimes ComplicationData is cached in memory by the system and sometimes it is serialized by the watch face libraries. When serialized any associated tapAction will be lost, if this happens ComplicationData.tapActionLostDueToSerialization will return true and the watch face should render the complication differently (eg grayed out or semi-transparent) to signal that it can't be tapped. The system will send updated ComplicationData with a tapAction as soon as possible.

  • Some ComplicationData shouldn't be cached for a long time, to support this we've added a more general feature ComplicationDataTimeline . This can be used to provide a sequence of time-gated ComplicationData to be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events. ComplicationRequestListener has been extended with a new method onComplicationDataTimeline which you can use to return this data.

  • DefaultComplicationDataSourcePolicy has been extended so you can specify the ComplicationType for the primary and secondary data sources.

  • We've added support for synchronous complication providers where the complication is updated at a higher frequency than normal, up to once per second when the watch face is visible and non-ambient. Note: synchronous complication providers may have limited usage due to memory pressure concerns.

  • The PendingIntentTapListener changes are likely to be reverted because we solved the underlying problem (it's not possible for the watch face to launch activities for 5 seconds after pressing the home button) in the framework instead.

API পরিবর্তনগুলি

  • ComplicationData.isCached has been changed to tapActionLostDueToSerialization which is more useful when determining if the complication slot should be rendered differently to signal that it can't be tapped. ( I6de2f )
  • Added ComplicationDataTimeline to wear-complication-data-source . This can be used to provide a sequence of time-gated ComplicationData to be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events. ComplicationRequestListener has been extended with a new method onComplicationDataTimeline which you can use to return this data. There's a new kotlin wrapper SuspendingTimelineComplicationDataSourceService for suspending data source services. ( Idecdc )
  • Added PendingIntentTapListener and WatchFaceControlClient.getPendingIntentForTouchEvent . This can help watch faces that need to launch intents in response to taps to work around a problem where the framework blocks launching new activities for 5 seconds after pressing the home button. ( I98074 )
  • Introduced a per-watchface ComplicationData cache. The purpose of this is to allow the watch face to display last known complication data values upon loading until the system has had a chance to update them. There is a new API method WatchFaceControlClient.hasComplicationCache intended for OEMs. This may influence the system's strategy for sending complications to a watch face. In addition, ComplicationData has an isCached property and it is recommended that cached complications are rendered differently because the tapAction can not be cached and will be null in a cached complication. ( I404b0 )
  • The watch face's instance ID is now available via WatchState.watchFaceInstanceId . Most watch faces won't need to use this, but if there's a per-watch face state that's not stored in the Schema then this is the key to use to identify the watch face instance. To help support this you can now provide an ID when calling WatchFaceControlClient.createHeadlessWatchFaceClient . ( I1ff98 )
  • Extended DefaultComplicationDataSourcePolicy with the ability to set the default ComplicationTypes for the primary, secondary provider and for the fallback system provider. ComplicationSlot.defaultDataSourceType is now deprecated. ( If0ce3 )
  • ComplicationSlot.configExtras is now mutable and can be updated before calling EditorSession.openComplicationDataSourceChooser() . ( I6f852 )
  • Added WatchFace.setComplicationDeniedDialogIntent and setComplicationRationaleDialogIntent . These intents are launched to to show a rationale dialog before requesting complication permissions, and another dialog explaining that complication permission is needed when trying to edit a complication when permissions have been denied (the provider chooser will fail to open so the dialog is needed). ( I3a29c )
  • The UserStyleSchema and ComplicationSlots can now be defined in XML. This simplifies watch face construction and makes WatchFaceMetadataClient queries faster as they do not need to bind to the service to get the metadata. ( I85bfa )
  • Added InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent so a client can determine if a watch face supports getPendingIntentForTouchEvent . ( I0b917 )
  • WatchFaceMetadataClient and ListenableWatchFaceMetadataClient are no longer experimental. They can be used to efficiently obtain watch face metadata, where possible without opening a binder to the watch face. ( Ibb827 )
  • Added support for synchronous complication providers where the complication is updated at a higher frequency than normal, up to once per second when the watch face is visible and non-ambient. To use this the provider must include a new androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDS metadata tag in its manifest and override onSynchronousComplicationRequest . Depending on the nature of the data source, it may also need to override onStartSynchronousComplicationRequests and onStopInteractiveComplicationRequests to get notifications of when the complication enters and exits interactive mode. ( I8fe9d )

সংস্করণ 1.0

সংস্করণ 1.0.1

৯ ফেব্রুয়ারী, ২০২২

androidx.wear.watchface:watchface-*:1.0.1 is released. Version 1.0.1 contains these commits.

বাগ ফিক্স

  • Fixes bug with PhotoImageComplicationData tapAction not being correctly handled ( I1cc30 )

সংস্করণ 1.0.0

১ ডিসেম্বর, ২০২১

androidx.wear.watchface:watchface-*:1.0.0 is released. Version 1.0.0 contains these commits.

Major Features of 1.0.0

The androidx.wear.watchface package is the new recommended library for developing WearOS watch faces. It has a number of new features over the old Wearable Support Library.

  • User styling (eg to change the color palette, the style of the watch hands, the look of the hour marks etc) is directly supported by the library (see androidx.wear.watchface.style ). It's now much easier to develop an on watch face editor using androidx.wear.watchface.editor and your watch face can be edited from the system companion app without you needing to write any extra code.
  • Best practices baked in. The library automatically generated screen reader content labels for complications (you can also add your own ones), and the framerate automatically drops when the battery is low and not charging to improve battery life.
  • Less code is needed to develop a watch face, especially for complications where a lot of the boilerplate has moved into the library.

বাগ ফিক্স

  • Fix EditorSession.userStyle.compareAndSet ( I6f676 )
  • Fix very short watch face delays ( Iffb97 )
  • Dispatch InteractiveWatchFaceImpl.onDestroy on the UI thread ( I83340 )
  • Fix several problems with broadcast receivers ( I7d25f )

সংস্করণ 1.0.0-rc01

৩ নভেম্বর, ২০২১

androidx.wear.watchface:watchface-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.

বাগ ফিক্স

  • Fix dump() (called by adb shell dumpsys) which got broken by flow migrations. ( 087cf9e )

  • Ensure proper ordering of writeDirectBootPrefs. We want writeDirectBootPrefs to always run after initStyleAndComplications or we risk delaying UI thread init.( 37650ac )

  • Ensure Renderer.onDestroy is called. In the scenario where the renderer has been created but WF init has not completed and Engine.onDestroy is called, we need to call Renderer.onDestroy. ( f9952dc )

  • Optimization/fix to isBatteryLowAndNotCharging. This patch moves the initial setup of isBatteryLowAndNotCharging earlier which means it can be done in parallel with createWatchFace. In addition we now listen to ACTION_POWER_DISCONNECTED. ( ddffd80

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

সংস্করণ 1.0.0-beta01

২৭ অক্টোবর, ২০২১

androidx.wear.watchface:watchface-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Version 1.0.0-alpha24

১৩ অক্টোবর, ২০২১

androidx.wear.watchface:watchface-*:1.0.0-alpha24 is released. Version 1.0.0-alpha24 contains these commits.

API পরিবর্তনগুলি

  • Classes in package androidx.wear.watchface.complications have been moved into a new wear:watchface:watchface-complications project. Note this means you can't include this library as well as any previous alpha version of wear:watchface:watchface-complications-data because you'll get errors about duplicate classes. ( I97195 )
  • Renderer.dump has been renamed to Renderer.onDump and has been annotated with @UiThread. ( I44845 )
  • InteractiveWatchFaceClient.addWatchFaceReadyListener has been renamed to addOnWatchFaceReadyListener and removeWatchFaceReadyListener has been renamed to removeOnWatchFaceReadyListener . ( I48fea )
  • EditorSession getComplicationsPreviewData and getComplicationsDataSourceInfo are no longer suspend functions, instead they are StateFlow<> properties whose value is initially null. In ListenableEditorSession getListenableComplicationPreviewData and getListenableComplicationsProviderInfo have been removed in favor of the new StateFlow<> objects from the base class. If you need to listen to changes in java code, consider using androidx.lifecycle.FlowLiveDataConversions.asLiveData to convert to LiveData<> . ( Ic5483 )

Version 1.0.0-alpha23

২৯ সেপ্টেম্বর, ২০২১

androidx.wear.watchface:watchface-*:1.0.0-alpha23 is released. Version 1.0.0-alpha23 contains these commits.

নতুন বৈশিষ্ট্য

The watchface library is now a single library group, and as a result the libraries have moved and you will need to update your gradle imports as follows:

পুরাতন নতুন
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

API পরিবর্তনগুলি

  • Migrate the separate androidx.wear Watchface and complications libraries into androidx.wear.watchface library group. ( b25f3c0 )
  • Added EditorRequest.canWatchFaceSupportHeadlessEditing to let a client know if a watchface editor supports headless editing. Note there will be some false negatives with this because support was added in asop/1756809 however it will return the correct value for all future watchfaces. ( ca55590 )
  • Renderer now has a dump() method which can be overridden to add custom data to the information generated by ABD shell dumpsys activity service WatchFaceService. ( 95235f9 )
  • InteractiveWatchFaceClient.addWatchFaceReadyListener now specifies the executor first. ( 563ac2f )
  • StateFlowCompatHelper has been removed. asLiveData (androidx.lifecycle.asLiveData) should be used instead. ( bd35d3 )
  • CurrentUserStyleRepository.userStyle is no longer mutable. ( I44889 )
  • WatchFaceReadyListener has been renamed to OnWatchFaceReadyListener. ( Ic12a9 )

বাগ ফিক্স

  • InteractiveInstanceManager.deleteInstance to call onDestroy This is needed to ensure InteractiveWatchFaceImpl gets garbage collected.( fce4af8 , b/199485839 )