Merge "Avoid animation flashing and fix padding." into jb-dev
diff --git a/res/layout/app_percentage_item.xml b/res/layout/app_percentage_item.xml
index e5710e4..949999a 100644
--- a/res/layout/app_percentage_item.xml
+++ b/res/layout/app_percentage_item.xml
@@ -18,8 +18,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingLeft="@*android:dimen/preference_item_padding_side"
- android:paddingRight="@*android:dimen/preference_item_padding_side"
+ android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingTop="8dip"
android:paddingBottom="8dip"
android:columnCount="3">
diff --git a/res/layout/data_usage_cycles.xml b/res/layout/data_usage_cycles.xml
index 136fec6..c9647c8 100644
--- a/res/layout/data_usage_cycles.xml
+++ b/res/layout/data_usage_cycles.xml
@@ -20,8 +20,8 @@
android:layout_height="40dip"
android:orientation="horizontal"
android:gravity="center_vertical"
- android:paddingLeft="@*android:dimen/preference_item_padding_side"
- android:paddingRight="@*android:dimen/preference_item_padding_side">
+ android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:paddingRight="?android:attr/listPreferredItemPaddingRight">
<TextView
android:layout_width="wrap_content"
diff --git a/res/layout/data_usage_detail.xml b/res/layout/data_usage_detail.xml
index 639fcf5..0ce17d2 100644
--- a/res/layout/data_usage_detail.xml
+++ b/res/layout/data_usage_detail.xml
@@ -18,20 +18,22 @@
android:id="@+id/app_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="@*android:dimen/preference_item_padding_side"
- android:layout_marginRight="@*android:dimen/preference_item_padding_side"
+ android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:layout_marginRight="?android:attr/listPreferredItemPaddingRight"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:layout_marginRight="@*android:dimen/preference_item_padding_inner"
+ android:layout_marginTop="8dip"
+ android:layout_marginRight="8dip"
android:orientation="vertical">
<ImageView
@@ -82,8 +84,8 @@
android:id="@+id/app_settings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="@*android:dimen/preference_item_padding_side"
- android:layout_marginRight="@*android:dimen/preference_item_padding_side"
+ android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:layout_marginRight="?android:attr/listPreferredItemPaddingRight"
android:layout_marginTop="16dip"
android:layout_marginBottom="16dip"
android:text="@string/data_usage_app_settings" />
diff --git a/res/layout/data_usage_header.xml b/res/layout/data_usage_header.xml
index a7b12b7..619956d 100644
--- a/res/layout/data_usage_header.xml
+++ b/res/layout/data_usage_header.xml
@@ -41,8 +41,8 @@
android:id="@+id/usage_summary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingLeft="@*android:dimen/preference_item_padding_side"
- android:paddingRight="@*android:dimen/preference_item_padding_side"
+ android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingTop="8dip"
android:paddingBottom="8dip"
android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -52,8 +52,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
- android:paddingLeft="@*android:dimen/preference_item_padding_side"
- android:paddingRight="@*android:dimen/preference_item_padding_side"
+ android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
+ android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingBottom="8dip"
android:text="@string/data_usage_empty"
android:textAppearance="?android:attr/textAppearanceSmall" />
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 1255b6b..3b0ce59 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -394,9 +394,6 @@
mUsageSummary = (TextView) mHeader.findViewById(R.id.usage_summary);
mEmpty = (TextView) mHeader.findViewById(android.R.id.empty);
- // only assign layout transitions once first layout is finished
- mListView.getViewTreeObserver().addOnGlobalLayoutListener(mFirstLayoutListener);
-
mAdapter = new DataUsageAdapter(mUidDetailProvider, mInsetSide);
mListView.setOnItemClickListener(mListListener);
mListView.setAdapter(mAdapter);
@@ -574,25 +571,22 @@
}
/**
- * Listener to setup {@link LayoutTransition} after first layout pass.
+ * Build and assign {@link LayoutTransition} to various containers. Should
+ * only be assigned after initial layout is complete.
*/
- private OnGlobalLayoutListener mFirstLayoutListener = new OnGlobalLayoutListener() {
- @Override
- public void onGlobalLayout() {
- mListView.getViewTreeObserver().removeOnGlobalLayoutListener(mFirstLayoutListener);
+ private void ensureLayoutTransitions() {
+ // skip when already setup
+ if (mChart.getLayoutTransition() != null) return;
- mTabsContainer.setLayoutTransition(buildLayoutTransition());
- mHeader.setLayoutTransition(buildLayoutTransition());
- mNetworkSwitchesContainer.setLayoutTransition(buildLayoutTransition());
+ mTabsContainer.setLayoutTransition(buildLayoutTransition());
+ mHeader.setLayoutTransition(buildLayoutTransition());
+ mNetworkSwitchesContainer.setLayoutTransition(buildLayoutTransition());
- final LayoutTransition chartTransition = buildLayoutTransition();
- chartTransition.setStartDelay(LayoutTransition.APPEARING, 0);
- chartTransition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
- chartTransition.setAnimator(LayoutTransition.APPEARING, null);
- chartTransition.setAnimator(LayoutTransition.DISAPPEARING, null);
- mChart.setLayoutTransition(chartTransition);
- }
- };
+ final LayoutTransition chartTransition = buildLayoutTransition();
+ chartTransition.disableTransitionType(LayoutTransition.APPEARING);
+ chartTransition.disableTransitionType(LayoutTransition.DISAPPEARING);
+ mChart.setLayoutTransition(chartTransition);
+ }
private static LayoutTransition buildLayoutTransition() {
final LayoutTransition transition = new LayoutTransition();
@@ -1176,6 +1170,9 @@
}
mUsageSummary.setText(getString(summaryRes, totalPhrase, rangePhrase));
+
+ // initial layout is finished above, ensure we have transitions
+ ensureLayoutTransitions();
}
private final LoaderCallbacks<ChartData> mChartDataCallbacks = new LoaderCallbacks<