diff options
-rw-r--r-- | res/drawable-xxhdpi/img_loading_placeholder.png | bin | 0 -> 30052 bytes | |||
-rw-r--r-- | res/layout/v2_fragment_pager_list.xml | 9 | ||||
-rw-r--r-- | src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java | 43 |
3 files changed, 48 insertions, 4 deletions
diff --git a/res/drawable-xxhdpi/img_loading_placeholder.png b/res/drawable-xxhdpi/img_loading_placeholder.png Binary files differnew file mode 100644 index 0000000..4b0abf7 --- /dev/null +++ b/res/drawable-xxhdpi/img_loading_placeholder.png diff --git a/res/layout/v2_fragment_pager_list.xml b/res/layout/v2_fragment_pager_list.xml index 876c2f0..2c2b11c 100644 --- a/res/layout/v2_fragment_pager_list.xml +++ b/res/layout/v2_fragment_pager_list.xml @@ -40,6 +40,12 @@ <include layout="@layout/v2item_icon"/> <include layout="@layout/v2_nav_bar_preview_item"/> </RelativeLayout> + <ImageView + android:id="@+id/loading_view" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:src="@drawable/img_loading_placeholder" + android:background="@android:color/white"/> </FrameLayout> <!-- Each card in this layout should have a Space below it @@ -106,7 +112,8 @@ <LinearLayout android:id="@+id/title_layout" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:alpha="0"> <TextView android:id="@+id/title" android:layout_width="0dp" diff --git a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java index f6b175c..87057bf 100644 --- a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java +++ b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java @@ -15,7 +15,10 @@ */ package org.cyanogenmod.theme.chooserv2; +import android.animation.Animator; +import android.animation.AnimatorSet; import android.animation.IntEvaluator; +import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.app.WallpaperManager; import android.content.ComponentName; @@ -175,6 +178,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb private ScrollView mScrollView; private ViewGroup mScrollContent; private ViewGroup mPreviewContent; // Contains icons, font, nav/status etc. Not wallpaper + private View mLoadingView; //Status Bar Views private ImageView mBluetooth; @@ -286,6 +290,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb mScrollView = (ScrollView) v.findViewById(android.R.id.list); mScrollContent = (ViewGroup) mScrollView.getChildAt(0); mPreviewContent = (ViewGroup) v.findViewById(R.id.preview_container); + mLoadingView = v.findViewById(R.id.loading_view); // Status Bar mStatusBar = (ViewGroup) v.findViewById(R.id.status_bar); @@ -1065,6 +1070,12 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb loadTitle(c); loadFont(c, false); loadAndRemoveAdditionalCards(c); + mHandler.post(new Runnable() { + @Override + public void run() { + animateContentIn(); + } + }); break; case LOADER_ID_STATUS_BAR: loadStatusBar(c, true); @@ -1102,6 +1113,9 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb } } + @Override + public void onLoaderReset(Loader<Cursor> loader) {} + private void loadAndRemoveAdditionalCards(Cursor c) { LinkedList<View> removeList = new LinkedList<View>(); for(int i=0; i < mAdditionalCards.getChildCount(); i++) { @@ -1194,9 +1208,6 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb return pkg != null && pkg.equals(mPkgName); } - @Override - public void onLoaderReset(Loader<Cursor> loader) {} - private void loadTitle(Cursor c) { if (CURRENTLY_APPLIED_THEME.equals(mPkgName)) { mTitle.setText(R.string.my_theme); @@ -1740,6 +1751,32 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb mProgress.startAnimation(scaleAnim); } + private void animateContentIn() { + AnimatorSet set = new AnimatorSet(); + set.setDuration(ANIMATE_TITLE_IN_DURATION); + set.play(ObjectAnimator.ofFloat(mLoadingView, "alpha", 1f, 0f)) + .with(ObjectAnimator.ofFloat(mTitleLayout, "alpha", 0f, 1f)); + set.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + } + + @Override + public void onAnimationEnd(Animator animation) { + mLoadingView.setVisibility(View.GONE); + } + + @Override + public void onAnimationCancel(Animator animation) { + } + + @Override + public void onAnimationRepeat(Animator animation) { + } + }); + set.start(); + } + public void fadeInCards() { mActiveCardId = -1; for (int i = 0; i < mCardIdsToComponentTypes.size(); i++) { |