summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/drawable-xxhdpi/img_loading_placeholder.pngbin0 -> 30052 bytes
-rw-r--r--res/layout/v2_fragment_pager_list.xml9
-rw-r--r--src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java43
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
new file mode 100644
index 0000000..4b0abf7
--- /dev/null
+++ b/res/drawable-xxhdpi/img_loading_placeholder.png
Binary files differ
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++) {