summaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorClark Scheff <clark@cyngn.com>2014-07-25 11:56:46 -0700
committerClark Scheff <clark@cyngn.com>2014-07-28 10:31:23 -0700
commit4b8f4a4b93647ac06a942fc0802bbacff5ff4323 (patch)
tree344b8a65f75f12c4dcaf4b2071a36d163fc8cafb /src/org
parentf0afe9ffc536bda859393a2782399f04f54c1635 (diff)
downloadpackages_apps_ThemeChooser-4b8f4a4b93647ac06a942fc0802bbacff5ff4323.zip
packages_apps_ThemeChooser-4b8f4a4b93647ac06a942fc0802bbacff5ff4323.tar.gz
packages_apps_ThemeChooser-4b8f4a4b93647ac06a942fc0802bbacff5ff4323.tar.bz2
Show blank card with loading indicator while loading card.
Once the card is loaded the blank card and loading indicator will fade out, revealing the loaded content. Change-Id: I5812cfa837e9a8decdd2cd2a69c1d4e2e30a4aff
Diffstat (limited to 'src/org')
-rw-r--r--src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java43
1 files changed, 40 insertions, 3 deletions
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++) {