OSDN Git Service

Update new UI of conditional cards
authorMill Chen <millchen@google.com>
Mon, 5 Nov 2018 09:20:22 +0000 (17:20 +0800)
committerMill Chen <millchen@google.com>
Wed, 7 Nov 2018 08:06:31 +0000 (16:06 +0800)
- Add half-width and full-width layouts for conditional cards
- Keep origin strings of conditional cards, that could make conditional
cards truncate its title and summary in half-width card.
- Add default value of isHalfWidth to each condition controller.

Bug: 113451905
Test: robotests, visual
Change-Id: Ib0055f32c4ab9e73c0e0a57c6b0ef586d52942e0

19 files changed:
res/layout/homepage_condition_full_tile.xml [new file with mode: 0644]
res/layout/homepage_condition_half_tile.xml [new file with mode: 0644]
res/layout/homepage_condition_tile.xml [deleted file]
res/values/dimens.xml
res/values/styles.xml
src/com/android/settings/homepage/contextualcards/ContextualCard.java
src/com/android/settings/homepage/contextualcards/ContextualCardLookupTable.java
src/com/android/settings/homepage/contextualcards/conditional/AirplaneModeConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardController.java
src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/RingerMutedConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/RingerVibrateConditionController.java
src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java

diff --git a/res/layout/homepage_condition_full_tile.xml b/res/layout/homepage_condition_full_tile.xml
new file mode 100644 (file)
index 0000000..f00132b
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<androidx.cardview.widget.CardView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    style="@style/ContextualCardStyle">
+
+    <LinearLayout
+        android:id="@+id/content"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/homepage_condition_full_card_height"
+        android:paddingStart="@dimen/homepage_card_padding_start"
+        android:paddingEnd="@dimen/homepage_card_padding_end"
+        android:orientation="horizontal"
+        android:gravity="center_vertical">
+
+        <ImageView
+            android:id="@android:id/icon"
+            android:layout_width="@dimen/suggestion_card_icon_size"
+            android:layout_height="@dimen/suggestion_card_icon_size"
+            android:tint="?android:attr/colorAccent"/>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingStart="@dimen/homepage_condition_full_card_padding_start"
+            android:paddingEnd="@dimen/homepage_condition_full_card_padding_end"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@android:id/title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
+                style="@style/TextAppearance.ConditionCardTitle"/>
+
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                style="@style/TextAppearance.ConditionCardSummary"/>
+
+        </LinearLayout>
+
+        <View
+            android:id="@+id/divider"
+            android:layout_width="@dimen/homepage_condition_full_card_divider_width"
+            android:layout_height="match_parent"
+            android:layout_marginTop="@dimen/homepage_condition_full_card_divider_padding_top"
+            android:layout_marginBottom="@dimen/homepage_condition_full_card_divider_padding_bottom"
+            android:background="?android:attr/dividerVertical" />
+
+        <Button
+            android:id="@+id/first_action"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/ConditionFullCardBorderlessButton"/>
+
+    </LinearLayout>
+
+</androidx.cardview.widget.CardView>
diff --git a/res/layout/homepage_condition_half_tile.xml b/res/layout/homepage_condition_half_tile.xml
new file mode 100644 (file)
index 0000000..9cde951
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<androidx.cardview.widget.CardView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/homepage_condition_half_card_height"
+    style="@style/ContextualCardStyle">
+
+    <LinearLayout
+        android:id="@+id/content"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/homepage_card_padding_start"
+        android:paddingEnd="@dimen/homepage_card_padding_end"
+        android:paddingTop="@dimen/homepage_condition_half_card_padding_top"
+        android:orientation="vertical">
+
+        <ImageView
+            android:id="@android:id/icon"
+            android:layout_width="@dimen/suggestion_card_icon_size"
+            android:layout_height="@dimen/suggestion_card_icon_size"
+            android:tint="?android:attr/colorAccent"/>
+
+        <TextView
+            android:id="@android:id/title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/homepage_condition_half_card_title_margin_top"
+            android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
+            style="@style/TextAppearance.ConditionCardTitle"/>
+
+        <TextView
+            android:id="@android:id/summary"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@style/TextAppearance.ConditionCardSummary"/>
+
+        <include layout="@layout/horizontal_divider"/>
+
+        <Button
+            android:id="@+id/first_action"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@style/ConditionHalfCardBorderlessButton"/>
+
+    </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/homepage_condition_tile.xml b/res/layout/homepage_condition_tile.xml
deleted file mode 100644 (file)
index ed76094..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-     Copyright (C) 2018 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<androidx.cardview.widget.CardView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    style="@style/ContextualCardStyle">
-
-    <LinearLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="@dimen/condition_header_height"
-            android:background="?android:attr/selectableItemBackground"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_width="@dimen/suggestion_card_icon_size"
-                android:layout_height="@dimen/suggestion_card_icon_size"
-                android:layout_marginTop="12dp"
-                android:layout_marginStart="14dp"
-                android:layout_marginEnd="24dp"
-                android:tint="?android:attr/colorAccent"/>
-
-            <TextView
-                android:id="@android:id/title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="14dp"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorPrimary"/>
-
-        </LinearLayout>
-
-        <TextView
-            android:id="@android:id/summary"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingStart="62dp"
-            android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-            android:paddingBottom="8dp"
-            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
-            android:alpha=".7"
-            android:textColor="?android:attr/textColorPrimary"/>
-
-        <androidx.appcompat.widget.ButtonBarLayout
-            android:id="@+id/buttonBar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingStart="62dp"
-            android:paddingBottom="1dp"
-            style="?android:attr/buttonBarStyle"
-            android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
-            <Button
-                android:id="@+id/first_action"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:paddingStart="0dp"
-                android:alpha=".8"
-                android:textAlignment="viewStart"
-                android:textColor="?android:attr/textColorPrimary"
-                style="?android:attr/buttonBarButtonStyle"/>
-
-            <Space
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"/>
-
-        </androidx.appcompat.widget.ButtonBarLayout>
-
-        <include layout="@layout/horizontal_divider"/>
-
-    </LinearLayout>
-
-</androidx.cardview.widget.CardView>
index 18bcc38..c91ffb5 100755 (executable)
     <!-- Signal icon in NetworkSelectSetting -->
     <dimen name="signal_strength_icon_size">24dp</dimen>
 
-
+    <!-- Condition cards size and padding -->
+    <dimen name="homepage_condition_card_title_margin_bottom">2dp</dimen>
+    <dimen name="homepage_condition_half_card_height">150dp</dimen>
+    <dimen name="homepage_condition_half_card_padding_top">12dp</dimen>
+    <dimen name="homepage_condition_half_card_title_margin_top">12dp</dimen>
+    <dimen name="homepage_condition_full_card_height">72dp</dimen>
+    <dimen name="homepage_condition_full_card_padding_start">24dp</dimen>
+    <dimen name="homepage_condition_full_card_padding_end">24dp</dimen>
+    <dimen name="homepage_condition_full_card_divider_width">.75dp</dimen>
+    <dimen name="homepage_condition_full_card_divider_padding_top">12dp</dimen>
+    <dimen name="homepage_condition_full_card_divider_padding_bottom">12dp</dimen>
 
 </resources>
index 83971b6..70d8a93 100644 (file)
         <item name="android:textColor">?android:attr/colorAccent</item>
     </style>
 
+    <style name="TextAppearance.ConditionCardTitle"
+           parent="@android:style/TextAppearance.Material.Body2">
+        <item name="android:textSize">16sp</item>
+    </style>
+
+    <style name="TextAppearance.ConditionCardSummary"
+           parent="@android:style/TextAppearance.Material.Body1">
+        <item name="android:textColor">?android:attr/textColorSecondary</item>
+    </style>
+
     <style name="TextAppearance.EntityHeaderTitle"
            parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="cardElevation">@dimen/homepage_card_elevation</item>
     </style>
 
+    <style name="ConditionCardBorderlessButton"
+           parent="android:Widget.DeviceDefault.Button.Borderless">
+        <item name="android:textColor">?android:attr/colorAccent</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textAllCaps">false</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+    </style>
+
+    <style name="ConditionHalfCardBorderlessButton"
+           parent="@style/ConditionCardBorderlessButton">
+        <item name="android:textAlignment">viewStart</item>
+        <item name="android:paddingStart">0dp</item>
+    </style>
+
+    <style name="ConditionFullCardBorderlessButton"
+           parent="@style/ConditionCardBorderlessButton">
+        <item name="android:textAlignment">viewEnd</item>
+        <item name="android:paddingEnd">0dp</item>
+    </style>
+
 </resources>
index 996c2dd..b0dfad8 100644 (file)
@@ -42,6 +42,7 @@ public class ContextualCard {
         int CONDITIONAL = 3;
     }
 
+    private final Builder mBuilder;
     private final String mName;
     @CardType
     private final int mCardType;
@@ -142,7 +143,12 @@ public class ContextualCard {
         return TextUtils.isEmpty(mSliceUri);
     }
 
+    public Builder mutate() {
+        return mBuilder;
+    }
+
     public ContextualCard(Builder builder) {
+        mBuilder = builder;
         mName = builder.mName;
         mCardType = builder.mCardType;
         mRankingScore = builder.mRankingScore;
@@ -164,28 +170,47 @@ public class ContextualCard {
     }
 
     ContextualCard(Cursor c) {
+        mBuilder = new Builder();
         mName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.NAME));
+        mBuilder.setName(mName);
         mCardType = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.TYPE));
+        mBuilder.setCardType(mCardType);
         mRankingScore = c.getDouble(c.getColumnIndex(CardDatabaseHelper.CardColumns.SCORE));
+        mBuilder.setRankingScore(mRankingScore);
         mSliceUri = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.SLICE_URI));
+        mBuilder.setSliceUri(Uri.parse(mSliceUri));
         mCategory = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.CATEGORY));
+        mBuilder.setCategory(mCategory);
         mLocalizedToLocale = c.getString(
                 c.getColumnIndex(CardDatabaseHelper.CardColumns.LOCALIZED_TO_LOCALE));
+        mBuilder.setLocalizedToLocale(mLocalizedToLocale);
         mPackageName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.PACKAGE_NAME));
+        mBuilder.setPackageName(mPackageName);
         mAppVersion = c.getLong(c.getColumnIndex(CardDatabaseHelper.CardColumns.APP_VERSION));
+        mBuilder.setAppVersion(mAppVersion);
         mTitleResName = c.getString(
                 c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_RES_NAME));
+        mBuilder.setTitleResName(mTitleResName);
         mTitleText = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_TEXT));
+        mBuilder.setTitleText(mTitleText);
         mSummaryResName = c.getString(
                 c.getColumnIndex(CardDatabaseHelper.CardColumns.SUMMARY_RES_NAME));
+        mBuilder.setSummaryResName(mSummaryResName);
         mSummaryText = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.SUMMARY_TEXT));
+        mBuilder.setSummaryText(mSummaryText);
         mIconResName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.ICON_RES_NAME));
+        mBuilder.setIconResName(mIconResName);
         mIconResId = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.ICON_RES_ID));
+        mBuilder.setIconResId(mIconResId);
         mCardAction = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.CARD_ACTION));
+        mBuilder.setCardAction(mCardAction);
         mExpireTimeMS = c.getLong(c.getColumnIndex(CardDatabaseHelper.CardColumns.EXPIRE_TIME_MS));
+        mBuilder.setExpireTimeMS(mExpireTimeMS);
         mIsHalfWidth = (c.getInt(
                 c.getColumnIndex(CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH)) == 1);
+        mBuilder.setIsHalfWidth(mIsHalfWidth);
         mIconDrawable = null;
+        mBuilder.setIconDrawable(mIconDrawable);
     }
 
     @Override
index 2ac0ad6..2253a2f 100644 (file)
@@ -62,7 +62,11 @@ public class ContextualCardLookupTable {
     static final Set<ControllerRendererMapping> LOOKUP_TABLE =
             new TreeSet<ControllerRendererMapping>() {{
                 add(new ControllerRendererMapping(CardType.CONDITIONAL,
-                        ConditionContextualCardRenderer.VIEW_TYPE,
+                        ConditionContextualCardRenderer.HALF_WIDTH_VIEW_TYPE,
+                        ConditionContextualCardController.class,
+                        ConditionContextualCardRenderer.class));
+                add(new ControllerRendererMapping(CardType.CONDITIONAL,
+                        ConditionContextualCardRenderer.FULL_WIDTH_VIEW_TYPE,
                         ConditionContextualCardController.class,
                         ConditionContextualCardRenderer.class));
                 add(new ControllerRendererMapping(CardType.SLICE,
index b6bb05a..f33633e 100644 (file)
@@ -79,6 +79,7 @@ public class AirplaneModeConditionController implements ConditionalCardControlle
                 .setTitleText(mAppContext.getText(R.string.condition_airplane_title).toString())
                 .setSummaryText(mAppContext.getText(R.string.condition_airplane_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_airplanemode_active))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index 8b0ee42..4e40556 100644 (file)
@@ -73,6 +73,7 @@ public class BackgroundDataConditionController implements ConditionalCardControl
                 .setTitleText(mAppContext.getText(R.string.condition_bg_data_title).toString())
                 .setSummaryText(mAppContext.getText(R.string.condition_bg_data_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_data_saver))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index 66901f3..bce7c5d 100644 (file)
@@ -82,6 +82,7 @@ public class BatterySaverConditionController implements ConditionalCardControlle
                 .setTitleText(mAppContext.getText(R.string.condition_battery_title).toString())
                 .setSummaryText(mAppContext.getText(R.string.condition_battery_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_battery_saver_accent_24dp))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index b2fbbcb..05199ba 100644 (file)
@@ -89,6 +89,7 @@ public class CellularDataConditionController implements ConditionalCardControlle
                 .setTitleText(mAppContext.getText(R.string.condition_cellular_title).toString())
                 .setSummaryText(mAppContext.getText(R.string.condition_cellular_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_cellular_off))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index eb65819..10881d9 100644 (file)
@@ -85,6 +85,14 @@ public class ConditionContextualCardController implements ContextualCardControll
     public void onConditionsChanged() {
         final List<ContextualCard> conditionCards = mConditionManager.getDisplayableCards();
 
+        final boolean isOddNumber = conditionCards.size() % 2 == 1;
+        if (isOddNumber) {
+            final int lastIndex = conditionCards.size() - 1;
+            final ConditionalContextualCard card = (ConditionalContextualCard) conditionCards.get(
+                    lastIndex);
+            conditionCards.set(lastIndex, card.mutate().setIsHalfWidth(false).build());
+        }
+
         if (mListener != null) {
             final Map<Integer, List<ContextualCard>> conditionalCards = new ArrayMap<>();
             conditionalCards.put(ContextualCard.CardType.CONDITIONAL, conditionCards);
index 4098636..41c540c 100644 (file)
@@ -37,7 +37,8 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
  * Card renderer for {@link ConditionalContextualCard}.
  */
 public class ConditionContextualCardRenderer implements ContextualCardRenderer {
-    public static final int VIEW_TYPE = R.layout.homepage_condition_tile;
+    public static final int HALF_WIDTH_VIEW_TYPE = R.layout.homepage_condition_half_tile;
+    public static final int FULL_WIDTH_VIEW_TYPE = R.layout.homepage_condition_full_tile;
 
     private final Context mContext;
     private final ControllerRendererPool mControllerRendererPool;
@@ -50,7 +51,11 @@ public class ConditionContextualCardRenderer implements ContextualCardRenderer {
 
     @Override
     public int getViewType(boolean isHalfWidth) {
-        return VIEW_TYPE;
+        if (isHalfWidth) {
+            return HALF_WIDTH_VIEW_TYPE;
+        } else {
+            return FULL_WIDTH_VIEW_TYPE;
+        }
     }
 
     @Override
@@ -88,15 +93,12 @@ public class ConditionContextualCardRenderer implements ContextualCardRenderer {
         view.icon.setImageDrawable(card.getIconDrawable());
         view.title.setText(card.getTitleText());
         view.summary.setText(card.getSummaryText());
-
-        setViewVisibility(view.itemView, R.id.divider, false);
     }
 
     private void initializeActionButton(ConditionalCardHolder view, ConditionalContextualCard card,
             MetricsFeatureProvider metricsFeatureProvider) {
         final CharSequence action = card.getActionText();
         final boolean hasButtons = !TextUtils.isEmpty(action);
-        setViewVisibility(view.itemView, R.id.buttonBar, hasButtons);
 
         final Button button = view.itemView.findViewById(R.id.first_action);
         if (hasButtons) {
@@ -115,13 +117,6 @@ public class ConditionContextualCardRenderer implements ContextualCardRenderer {
         }
     }
 
-    private void setViewVisibility(View containerView, int viewId, boolean visible) {
-        View view = containerView.findViewById(viewId);
-        if (view != null) {
-            view.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-
     public static class ConditionalCardHolder extends RecyclerView.ViewHolder {
 
         public final ImageView icon;
index 21cb6c0..706b50e 100644 (file)
@@ -100,6 +100,7 @@ public class DndConditionCardController implements ConditionalCardController {
                 .setTitleText(mAppContext.getText(R.string.condition_zen_title).toString())
                 .setSummaryText(getSummary().toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index eec7e4a..862f828 100644 (file)
@@ -99,6 +99,7 @@ public class HotspotConditionController implements ConditionalCardController {
                 .setTitleText(mAppContext.getText(R.string.condition_hotspot_title).toString())
                 .setSummaryText(getSummary().toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_hotspot))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index d8d5f79..249e4a0 100644 (file)
@@ -78,6 +78,7 @@ public class NightDisplayConditionController implements ConditionalCardControlle
                 .setSummaryText(
                         mAppContext.getText(R.string.condition_night_display_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_settings_night_display))
+                .setIsHalfWidth(true)
                 .build();
     }
 
index 75a72fd..09b75eb 100644 (file)
@@ -72,6 +72,7 @@ public class RingerMutedConditionController extends AbnormalRingerConditionContr
                 .setSummaryText(
                         mAppContext.getText(R.string.condition_device_muted_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_notifications_off_24dp))
+                .setIsHalfWidth(true)
                 .build();
     }
 }
index 4c355a3..d8084b5 100644 (file)
@@ -60,6 +60,7 @@ public class RingerVibrateConditionController extends AbnormalRingerConditionCon
                 .setSummaryText(
                         mAppContext.getText(R.string.condition_device_vibrate_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_volume_ringer_vibrate))
+                .setIsHalfWidth(true)
                 .build();
     }
 }
index c508403..44b21bf 100644 (file)
@@ -93,6 +93,7 @@ public class WorkModeConditionController implements ConditionalCardController {
                 .setTitleText(mAppContext.getText(R.string.condition_work_title).toString())
                 .setSummaryText(mAppContext.getText(R.string.condition_work_summary).toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_signal_workmode_enable))
+                .setIsHalfWidth(true)
                 .build();
     }