उपयोगकर्ता कॉन्फ़िगरेशन तय करना

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"
   >   <  defaultVal>ue="TRUE&<quot;
    >/
  /UserConfigurations
  ...
/WatchFace

इसके बाद, बूलियन विकल्पों का इस्तेमाल दो तरीकों से किया जा सकता है:

  1. स्मार्टवॉच की होम स्क्रीन Scene में BooleanConfiguration स्ट्रक्चर का इस्तेमाल करके:

    <Scene>
        <BooleanConfiguration id="show_>date"<;
            BooleanOption> id="<;TRUE"
            !-- ...Con>tent to s<how date --
      >      /Bo<oleanOption
            Bool>eanOption< id="FALSE"
            !-- ...Con>tent when< date not requ>ired <--
            /BooleanOp>t<ion
      >  /BooleanConfiguration
    /Scene
    

    ध्यान दें कि कॉन्फ़िगरेशन के विकल्पों को इस्तेमाल के दौरान नेस्ट नहीं किया जा सकता. इसलिए, यह मान्य नहीं है:

    <!-- Will not work -->
    <!-- <Scene>
      <BooleanConfiguration id="show_>date&<quot;
        BooleanOption> id=&qu<ot;TRUE"
          BooleanConfigur>ation id=<"show_time"
     >       BooleanOption id="TRUE"
              Content intended for when show_date< and show_time> both s<et to TRUE
            /B>oolea<nOption
          >/Bo<oleanConfiguration
      > < /Boolean>Option
      /BooleanConfiguration
    /Scene --
    
  2. इसके अलावा, कॉन्फ़िगरेशन विकल्प का इस्तेमाल एक्सप्रेशन में किया जा सकता है:

    <Condition>
    <Expressions>
        <Expression name="my_expres>sion"<;
            !-- Use show_date as part of a more complex eva>luation -<-
            ![CDATA[[CONFIGURATION.show_date] &&== &quo>t;TRU<E"  ..>. ]]
    <    /Express>ion
     <   /Expressions
        Compare expres>sion=&quo<t;my_expression"
      >     < !-- Con>t<ent goes h>ere --
        /Compare
    /Condition
    

सूची विकल्प

सूची के विकल्प, बूलियन विकल्पों की तरह ही काम करते हैं. उदाहरण के लिए, उपयोगकर्ता को बैकग्राउंड इमेज की सूची उपलब्ध कराने के लिए:

<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
    screenReaderText>=&q<uot;bg_img_lbl" defaultValue="0"
  ListOption id="0" disp>lay<Name="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico&quo>t; /
  <ListOption id=&quo>t;1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" /
  ...
/ListConfiguration

बूलियन विकल्पों की तरह ही, इसका इस्तेमाल करने के दो तरीके हैं:

  1. Scene में ListConfiguration एलिमेंट का इस्तेमाल करना:

    <ListConfiguration id="bg>_im<g"
      ListOpt>ion i<d="0"
        !-- >Sho<w backgroun>d 0< --
      /ListOption>
      Li<stOption id="1"
        !->- S<how backgro>u<nd 1 ... etc --
      >/ListOption
    /ListConfiguration
    
  2. इसके अलावा, कॉन्फ़िगरेशन विकल्प का इस्तेमाल ज़्यादा जटिल एक्सप्रेशन में किया जा सकता है:

    <Condition>
      <Expressions>
          <Expression name="background_zero_and_something_>else"<;
            !-- Use bg_img as part of a more complex eva>luation -<-
            ![CDATA[[CONFIGURATION.bg_im&&g] == &>quot;0&<quot;  ... >]]
      <    />Expression
     <   /Expressions
        Compare expression="background>_zero_and<_something_else"
      >     < !-- Con>t<ent goes h>ere --
        /Compare
    /Condition
    

रंग थीम

Watch Face Format की मदद से, ColorConfiguration की मदद से रंगीन थीम तय की जा सकती हैं. उपयोगकर्ता, वॉच फ़ेस एडिटर से अपनी पसंद की थीम चुन सकते हैं. साथ ही, इस थीम के रंग आपकी वॉच फ़ेस की पूरी डिफ़िनिशन में दिख सकते हैं.

उदाहरण के लिए, दो एंट्री और तीन रंगों वाली थीम तय करने के लिए:

आरामदायक

Urban

ColorConfiguration को इस तरह से तय करें:

<UserConfigurations>
  <ColorConfiguration id="myThemeColor" displayName="theme_label&qu>ot; d<efaultValue="0"
    ColorOption id="0" displayName="rela>xed_l<abel" colors="#3083dc #f8ffe5 #7dde92" /
    ColorOption id=&quo>t;1<" displayName=>&<quot;urban_label&qu>ot; colors="#f4b393 #fc60a8 #7a28cb" /
  /ColorConfiguration
/UserConfigurations

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

<HourHand resource="hour" ... tintColor="[CONFIGURATION.myT>h<emeColor.0]" /
MinuteHand resource="minute" ... tintColor=&quo>t<;[CONFIGURATION.myThemeColor.1]" /
SecondHand resource="second">; ... tintColor="[CONFIGURATION.myThemeColor.2]" /

अगर हर ColorOption के लिए सिर्फ़ एक रंग तय किया गया है, तो इंडेक्स के बिना भी, CONFIGURATION.myThemeColor के तौर पर रेफ़रंस दिया जा सकता है. इसके बाद, उपयोगकर्ता स्मार्टवॉच की स्क्रीन के एडिटर में जाकर, अपनी पसंद की थीम एंट्री चुन सकता है.

स्वाद

ध्यान दें: फ़्लेवर, Watch Face Format के 2 और उसके बाद के वर्शन पर काम करते हैं.

UserConfigurations, उपयोगकर्ता को काफ़ी सुविधाएं देता है. हालांकि, कॉन्फ़िगरेशन एलिमेंट की संख्या बढ़ाने पर, कॉम्बिनेशन की संख्या काफ़ी बढ़ सकती है.

Flavors की मदद से, उन UserConfigurations के लिए पहले से सेट किए गए विकल्प तय किए जा सकते हैं जिन्हें हाइलाइट करना है.

इसके बाद, उपयोगकर्ता साथ में काम करने वाले ऐप्लिकेशन में इन पहले से तय किए गए फ़्लेवर में से किसी एक को चुन सकता है या फिर हर कॉन्फ़िगरेशन वैल्यू को अलग से चुन सकता है.

उदाहरण के लिए, स्मार्टवॉच की किसी ऐसी होम स्क्रीन पर विचार करें जिसमें आपने तीन सेटिंग तय की हैं. साफ़ तौर पर समझाने के लिए, एलिमेंट और एट्रिब्यूट की जानकारी नहीं दी गई है:

<UserConfigurations>
  <ColorConfiguration id="themeColor>"<; ...
    ColorOption id="0" displayName=>"<;bright_label" ... /
    ColorOption id="1&qu>ot;< displayName=">mon<ochrome_label" ... /
  /ColorConfigura>tion
<  ListConfiguration id="clockAppearance" ... 
>    L<istOption id="0" displayName="big_an>d_b<old_label" ..>. /<
    ListOption id="1" displ>a<yName="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" encodin>g<="utf-8&>quot;?
WatchF<aceInfo
    ...
    MultipleInstancesAl>lowed< value="true" /
    F>l<avorsSupported> value="true" /
/WatchFaceInfo

इसके बाद, हर फ़्लेवर को UserConfigurations में इस तरह से तय किया जाता है:

<Flavors defaultValue="sportyFl>avo<r"
  Flavor id="spo>rtyFl<avor" ... 
    Configuration id=">theme<Color" optionId="0"/
    Configur>ation< id="clockAppearance" optionId=&>quot;<0"/
    Configuration >id=&quo<t;showHr" optionId="TRUE"/
    ComplicationSlot slotId="0"
      DefaultProviderPolicy
            >  def<aultSystemProvide>r=&<quot;ST>EP_<COUNT"
              defaultSys>temPr<oviderType="SHORT_TEXT"/
    /Com>plica<tionSlot
  /Flavor
  Flavor id="sophisticat>edFla<vor" ... 
    Configuration id="t>hemeC<olor" optionId="1>"/<
    Configuration id="clockAppearance" optionId="1"/
    Configuration id="showHr"> option<Id="FALSE"/
    ComplicationSlot slotId="0"
      !--
        Type here is set to empty to demonstrate >how t<o hide a complica>tio<n
     > <  slot i>n Flavors.
      --
      DefaultProviderPolicy
              defaultSystemProvider="SUNRISE_SUNSET"
              defaultSystemProviderType="EMPTY"/
    /ComplicationSlot
  /Flavor
/Flavors