ব্যবহারকারীর কনফিগারেশন সংজ্ঞায়িত করুন

UserConfigurations আপনাকে বিকল্পগুলি তৈরি করতে দেয় যা ব্যবহারকারী বেছে নিতে পারে। আপনি নির্বাচিত মানগুলির উপর ভিত্তি করে ঘড়ির মুখের উপাদানগুলির উপস্থিতি সামঞ্জস্য করতে পারেন৷

ব্যবহারকারী কনফিগারেশন বিকল্প হতে পারে:

  • BooleanConfiguration : সাধারণত ব্যবহারকারীর কাছে একটি উপাদান দেখানোর বা না দেখানোর বিকল্প থাকতে পারে বা দুটি শৈলীর মধ্যে বেছে নেওয়ার জন্য ব্যবহৃত হয়
  • ListConfiguration : ব্যবহারকারীকে বিভিন্ন অপশন প্রদান করে। উদাহরণস্বরূপ, যদি ঘড়ির মুখে চারটি ভিন্ন ব্যাকগ্রাউন্ড ইমেজ থেকে বেছে নেওয়া হয়
  • ColorConfiguration : রঙের থিম সংজ্ঞায়িত করে, যেখান থেকে ব্যবহারকারী তাদের পছন্দের থিম নির্বাচন করতে পারে।

বুলিয়ান বিকল্প

বুলিয়ান বিকল্পগুলি সম্ভবত ব্যবহারকারীর কনফিগারেশনগুলির মধ্যে সবচেয়ে সহজ। তাদের নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা যেতে পারে:

<WatchFace ...>
  <UserConfigurations>
   <!-- show_date and show_date_label defined in res/values/strings.xml -->
    <BooleanConfiguration id="show_date"
        displayName="show_date_label"
        screenReaderText="show_date_label"
        defaultValue="TRUE"
    />
  </UserConfigurations>
  ...
</WatchFace>

বুলিয়ান বিকল্প দুটি উপায়ে ব্যবহার করা যেতে পারে:

  1. ঘড়ির মুখের Scene মধ্যে BooleanConfiguration কাঠামো ব্যবহার করা:

    <Scene>
        <BooleanConfiguration id="show_date">
            <BooleanOption id="TRUE">
            <!-- ...Content to show date -->
            </BooleanOption>
            <BooleanOption id="FALSE">
            <!-- ...Content when date not required -->
            </BooleanOption>
        </BooleanConfiguration>
    </Scene>
    

    নোট করুন যে কনফিগারেশন বিকল্পগুলি তাদের ব্যবহারে নেস্ট করা যাবে না, তাই নিম্নলিখিতগুলি বৈধ নয় :

    <!-- Will not work -->
    <!-- <Scene>
      <BooleanConfiguration id="show_date">
        <BooleanOption id="TRUE">
          <BooleanConfiguration id="show_time">
            <BooleanOption id="TRUE">
              Content intended for when show_date and show_time both set to TRUE
            </BooleanOption>
          </BooleanConfiguration>
        </BooleanOption>
      </BooleanConfiguration>
    </Scene> -->
    
  2. বিকল্পভাবে, কনফিগারেশন বিকল্পটি অভিব্যক্তিতে ব্যবহার করা যেতে পারে:

    <Condition>
    <Expressions>
        <Expression name="my_expression">
            <!-- Use show_date as part of a more complex evaluation -->
            <![CDATA[[CONFIGURATION.show_date] == "TRUE" && ... ]]>
        </Expression>
        </Expressions>
        <Compare expression="my_expression">
            <!-- Content goes here -->
        </Compare>
    </Condition>
    

তালিকা বিকল্প

তালিকা বিকল্পগুলি বুলিয়ান বিকল্পগুলির সাথে খুব অনুরূপভাবে কাজ করে। উদাহরণস্বরূপ, ব্যবহারকারীকে বেছে নেওয়ার জন্য পটভূমি চিত্রগুলির একটি তালিকা প্রদান করতে:

<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
    screenReaderText="bg_img_lbl" defaultValue="0">
  <ListOption id="0" displayName="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico" />
  <ListOption id="1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" />
  ...
</ListConfiguration>

বুলিয়ান বিকল্পের অনুরূপ, এটি ব্যবহার করার জন্য আবার দুটি উপায় রয়েছে:

  1. Scene ListConfiguration উপাদান ব্যবহার করে:

    <ListConfiguration id="bg_img">
      <ListOption id="0">
        <!-- Show background 0 -->
      </ListOption>
      <ListOption id="1">
        <!-- Show background 1 ... etc -->
      </ListOption>
    </ListConfiguration>
    
  2. বিকল্পভাবে, কনফিগারেশন বিকল্পটি আরও জটিল অভিব্যক্তিতে ব্যবহার করা যেতে পারে:

    <Condition>
      <Expressions>
          <Expression name="background_zero_and_something_else">
            <!-- Use bg_img as part of a more complex evaluation -->
            <![CDATA[[CONFIGURATION.bg_img] == "0" && ... ]]>
          </Expression>
        </Expressions>
        <Compare expression="background_zero_and_something_else">
            <!-- Content goes here -->
        </Compare>
    </Condition>
    

রঙিন থিম

ওয়াচ ফেস ফরম্যাট আপনাকে ColorConfiguration মাধ্যমে রঙের থিম সংজ্ঞায়িত করতে দেয়। ব্যবহারকারীরা ঘড়ির মুখ সম্পাদক থেকে তাদের পছন্দের থিমটি নির্বাচন করতে পারেন এবং এই থিমের রঙগুলি আপনার ঘড়ির মুখের সংজ্ঞা জুড়ে প্রদর্শিত হতে পারে৷

উদাহরণস্বরূপ, থিমে দুটি এন্ট্রি এবং তিনটি রঙ সহ একটি থিম সংজ্ঞায়িত করতে:

রিলাক্সড

শহুরে

নিম্নরূপ একটি ColorConfiguration সংজ্ঞায়িত করুন:

<UserConfigurations>
  <ColorConfiguration id="myThemeColor" displayName="theme_label" defaultValue="0">
    <ColorOption id="0" displayName="relaxed_label" colors="#3083dc #f8ffe5 #7dde92" />
    <ColorOption id="1" displayName="urban_label" colors="#f4b393 #fc60a8 #7a28cb" />
  </ColorConfiguration>
</UserConfigurations>

এগুলি হেক্সাডেসিমেল রঙের মানের পরিবর্তে ডেটা উত্স হিসাবে ব্যবহার করা যেতে পারে। থিমের প্রথম, দ্বিতীয় বা তৃতীয় উপাদান নির্বাচন করার জন্য কীভাবে সূচক মান নির্দিষ্ট করা হয়েছে তা নোট করুন:

<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />

নির্দিষ্ট ক্ষেত্রে যেখানে প্রতিটি ColorOption শুধুমাত্র একটি রঙ সংজ্ঞায়িত করা হয়েছে, সূচী ছাড়াই এটি CONFIGURATION.myThemeColor হিসাবে উল্লেখ করাও সম্ভব।

এখানে ALT টেক্সট ঢোকানএখানে ALT টেক্সট ঢোকান

ব্যবহারকারী তারপর ঘড়ির মুখ সম্পাদকে তাদের পছন্দের থিম এন্ট্রি নির্বাচন করতে পারেন।

স্বাদ

দ্রষ্টব্য : ফ্লেভারগুলি ওয়াচ ফেস ফরম্যাটের 2 এবং উচ্চতর সংস্করণে সমর্থিত।

UserConfigurations ব্যবহারকারীকে অনেক নমনীয়তা প্রদান করে, কিন্তু আপনি সংজ্ঞায়িত কনফিগারেশন উপাদানের সংখ্যা বাড়ার সাথে সাথে সমন্বয়ের সংখ্যা অত্যধিক বৃদ্ধি পেতে পারে।

Flavors আপনাকে UserConfigurations জন্য প্রিসেটগুলি সংজ্ঞায়িত করতে দেয় যা আপনি হাইলাইট করার যোগ্য বলে মনে করেন।

ব্যবহারকারী তারপর সহচর অ্যাপের মধ্যে এই প্রিসেট স্বাদগুলি থেকে নির্বাচন করতে পারেন, বা প্রতিটি কনফিগারেশন মান পৃথকভাবে চয়ন করতে পারেন।

উদাহরণস্বরূপ, একটি ঘড়ির মুখ বিবেচনা করুন যেখানে আপনি তিনটি সেটিংস সংজ্ঞায়িত করেছেন (অভ্যন্তরীণ উপাদান এবং বৈশিষ্ট্যগুলির বিবরণ স্পষ্টতার জন্য বাদ দেওয়া হয়েছে):

<UserConfigurations>
  <ColorConfiguration id="themeColor" ...>
    <ColorOption id="0" displayName="bright_label" ... />
    <ColorOption id="1" displayName="monochrome_label" ... />
  </ColorConfiguration>
  <ListConfiguration id="clockAppearance" ... >
    <ListOption id="0" displayName="big_and_bold_label" ... />
    <ListrOption id="1" displayName="minimal_label" ... />
  </ListConfiguration>
  <BooleanConfiguration id="showHr" ... />
</UserConfigurations>

আপনি সংজ্ঞায়িত করেছেন:

  1. একটি রঙের থিম কনফিগারেশন, ব্যবহারকারীকে কোন রঙের থিম প্রয়োগ করতে হবে তা নির্বাচন করতে দেয়। আপনি দুটি থিম সংজ্ঞায়িত করেছেন, একটি রঙিন এবং একটি একরঙা৷
  2. ঘড়ি উপস্থিতি পছন্দ একটি তালিকা. আপনি দুটি পছন্দ সংজ্ঞায়িত করেছেন, একটি বড় সাহসী ঘড়ি এবং একটি আরও ন্যূনতম দেখতে ঘড়ি৷
  3. ঘড়ির মুখে ব্যবহারকারীর হার্ট রেট দেখাবেন কিনা তার একটি পছন্দ।

তদ্ব্যতীত, আপনার ঘড়ির মুখে একটি ComplicationSlot রয়েছে।

আপনি সিদ্ধান্ত নিন যে দুটি Flavors রয়েছে যা আপনি ব্যবহারকারীর কাছে হাইলাইট করতে চান। এই সমস্ত সেটিংসের আরও অনেকগুলি সম্ভাব্য সংমিশ্রণ রয়েছে, তবে এইগুলি আপনার কাছে সবচেয়ে ভাল কাজ বলে মনে হয়:

  1. একটি খেলাধুলাপ্রি় স্বাদ : এর মধ্যে থাকবে:
    1. উজ্জ্বল রঙের থিম, আপনাকে উত্সাহিত করতে এবং আপনাকে সক্রিয় করতে (আইডি: 0)
    2. বড় এবং সাহসী ঘড়ি, তাই এটি কাজ করার সময় দেখা যায় (আইডি: 0)
    3. রেফারেন্সের জন্য ঘড়ির মুখে হৃদস্পন্দন দেখানো হচ্ছে
    4. জটিলতার স্লট ধাপ সংখ্যা দেখাচ্ছে
  2. একটি পরিশীলিত গন্ধ : এতে থাকবে:
    1. একরঙা রঙের থিম, যেকোনো পোশাকের সাথে মেলে (আইডি: 1)
    2. ন্যূনতম ঘড়ি, যেকোনো পরিবেশের সাথে মানানসই (আইডি: 1)
    3. ঘড়ির মুখে কোন হার্ট রেট দেখা যাচ্ছে না
    4. জটিলতা স্লট সক্রিয় করা হয়নি

ফ্লেভারের জন্য watch_face_info.xml এ সক্ষম করা প্রয়োজন:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
    ...
    <MultipleInstancesAllowed value="true" />
    <FlavorsSupported value="true" />
</WatchFaceInfo>

তারপরে, প্রতিটি ফ্লেভার UserConfigurations মধ্যে নিম্নরূপ সংজ্ঞায়িত করা হয়:

<Flavors defaultValue="sportyFlavor">
  <Flavor id="sportyFlavor" ... >
    <Configuration id="themeColor" optionId="0"/>
    <Configuration id="clockAppearance" optionId="0"/>
    <Configuration id="showHr" optionId="TRUE"/>
    <ComplicationSlot slotId="0">
      <DefaultProviderPolicy
              defaultSystemProvider="STEP_COUNT"
              defaultSystemProviderType="SHORT_TEXT"/>
    </ComplicationSlot>
  </Flavor>
  <Flavor id="sophisticatedFlavor" ... >
    <Configuration id="themeColor" optionId="1"/>
    <Configuration id="clockAppearance" optionId="1"/>
    <Configuration id="showHr" optionId="FALSE"/>
    <ComplicationSlot slotId="0">
      <!--
        Type here is set to empty to demonstrate how to hide a complication
        slot in Flavors.
      -->
      <DefaultProviderPolicy
              defaultSystemProvider="SUNRISE_SUNSET"
              defaultSystemProviderType="EMPTY"/>
    </ComplicationSlot>
  </Flavor>
</Flavors>