Use support-vector-drawable and animated-vector-drawable

This commit is contained in:
seven332 committed 2016-03-01 14:38:07 +08:00
1 parent 8f7c67661b
commit 92dc8ce74f
187 files changed
+1089 -599

No files matched your search

@@ -20,11 +20,11 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.support.annotation.IntDef;
import com.hippo.anani.AnimationUtils;
import com.hippo.gl.anim.AlphaAnimation;
import com.hippo.gl.glrenderer.GLCanvas;
import com.hippo.gl.glrenderer.Texture;
import com.hippo.gl.view.GLView;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.MathUtils;
import java.lang.annotation.Retention;
@@ -23,13 +23,13 @@ import android.support.annotation.NonNull;
import android.util.Log;
import android.view.animation.Interpolator;
import com.hippo.anani.AnimationUtils;
import com.hippo.ehviewer.gallery.GalleryProvider;
import com.hippo.gl.anim.Animation;
import com.hippo.gl.view.GLView;
import com.hippo.gl.widget.GLEdgeView;
import com.hippo.gl.widget.GLProgressView;
import com.hippo.gl.widget.GLTextureView;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.AssertUtils;
import com.hippo.yorozuya.LayoutUtils;
import com.hippo.yorozuya.MathUtils;
@@ -33,8 +33,6 @@ import android.view.WindowManager;
import android.widget.Spinner;
import android.widget.TextView;
import com.hippo.anani.AnimationUtils;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.client.data.GalleryInfo;
@@ -51,7 +49,9 @@ import com.hippo.gl.view.GLRootView;
import com.hippo.image.Image;
import com.hippo.util.SystemUiHelper;
import com.hippo.widget.Slider;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.ConcurrentPool;
import com.hippo.yorozuya.SimpleAnimatorListener;
import com.hippo.yorozuya.SimpleHandler;
import java.io.File;
@@ -36,7 +36,6 @@ import com.hippo.app.AppCompatPreferenceActivity;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.ui.fragment.EhFragment;
import com.hippo.ehviewer.ui.fragment.ReadFragment;
import com.hippo.vector.VectorDrawable;
import java.lang.reflect.Field;
import java.util.List;
@@ -133,10 +132,11 @@ public final class SettingsActivity extends AppCompatPreferenceActivity {
}
}
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setActionBarUpIndicator(VectorDrawable.create(this, R.xml.ic_arrow_left_dark_x24));
setActionBarUpIndicator(getResources().getDrawable(R.drawable.ic_arrow_left_dark_x24));
replaceHeaderLayoutResId();
}
@@ -51,9 +51,7 @@ import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.dao.DownloadLabelRaw;
import com.hippo.util.ActivityHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.ViewUtils;
import java.util.HashMap;
@@ -97,8 +95,6 @@ public class DownloadLabelScene extends ToolbarScene {
mRecyclerView = (EasyRecyclerView) view.findViewById(R.id.recycler_view);
View tip = view.findViewById(R.id.tip);
SimpleImageView tipImage = (SimpleImageView) tip.findViewById(R.id.tip_image);
tipImage.setDrawable(VectorDrawable.create(getContext(), R.xml.sadpanda_head));
mViewTransition = new ViewTransition(mRecyclerView, tip);
if (mRecyclerView != null) {
@@ -143,7 +139,7 @@ public class DownloadLabelScene extends ToolbarScene {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.label);
setNavigationIcon(VectorDrawable.create(getContext(), R.xml.ic_arrow_left_dark_x24));
setNavigationIcon(R.drawable.ic_arrow_left_dark_x24);
// Clear nav checked item
setNavCheckedItem(0);
@@ -69,11 +69,9 @@ import com.hippo.scene.TransitionHelper;
import com.hippo.unifile.UniFile;
import com.hippo.util.ActivityHelper;
import com.hippo.util.ApiHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.FabLayout;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.FileUtils;
import com.hippo.yorozuya.IntList;
import com.hippo.yorozuya.ObjectUtils;
@@ -182,8 +180,6 @@ public class DownloadScene extends ToolbarScene
mRecyclerView = (EasyRecyclerView) view.findViewById(R.id.recycler_view);
mFabLayout = (FabLayout) view.findViewById(R.id.fab_layout);
View tip = view.findViewById(R.id.tip);
SimpleImageView tipImage = (SimpleImageView) tip.findViewById(R.id.tip_image);
tipImage.setDrawable(VectorDrawable.create(getContext(), R.xml.sadpanda_head));
mViewTransition = new ViewTransition(mRecyclerView, tip);
if (mRecyclerView != null) {
@@ -210,6 +206,7 @@ public class DownloadScene extends ToolbarScene
}
if (mFabLayout != null) {
mFabLayout.setExpanded(false, false);
mFabLayout.setHidePrimaryFab(true);
mFabLayout.setAutoCancel(false);
mFabLayout.setOnClickFabListener(this);
@@ -228,7 +225,7 @@ public class DownloadScene extends ToolbarScene
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
updateTitle();
setNavigationIcon(VectorDrawable.create(getContext(), R.xml.ic_arrow_left_dark_x24));
setNavigationIcon(R.drawable.ic_arrow_left_dark_x24);
// Clear nav checked item
setNavCheckedItem(R.id.nav_download);
@@ -35,16 +35,15 @@ import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.anani.AnimationUtils;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.easyrecyclerview.EasyRecyclerView;
import com.hippo.easyrecyclerview.LinearDividerItemDecoration;
import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.UrlOpener;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.UrlOpener;
import com.hippo.ehviewer.client.EhClient;
import com.hippo.ehviewer.client.EhRequest;
import com.hippo.ehviewer.client.EhUrl;
@@ -57,11 +56,11 @@ import com.hippo.text.URLImageGetter;
import com.hippo.util.ActivityHelper;
import com.hippo.util.ReadableTime;
import com.hippo.util.TextUrl;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.LinkifyTextView;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.LayoutUtils;
import com.hippo.yorozuya.SimpleAnimatorListener;
public final class GalleryCommentsScene extends ToolbarScene
implements EasyRecyclerView.OnItemClickListener,
@@ -77,7 +76,7 @@ public final class GalleryCommentsScene extends ToolbarScene
private FloatingActionButton mFab;
private View mEditPanel;
private SimpleImageView mSendImage;
private ImageView mSendImage;
private EditText mEditText;
private CommentAdapter mAdapter;
@@ -137,9 +136,8 @@ public final class GalleryCommentsScene extends ToolbarScene
View view = inflater.inflate(R.layout.scene_gallery_comments, container, false);
EasyRecyclerView recyclerView = (EasyRecyclerView) view.findViewById(R.id.recycler_view);
View tip = view.findViewById(R.id.tip);
SimpleImageView tipImage = (SimpleImageView) tip.findViewById(R.id.tip_image);
mEditPanel = view.findViewById(R.id.edit_panel);
mSendImage = (SimpleImageView) mEditPanel.findViewById(R.id.send);
mSendImage = (ImageView) mEditPanel.findViewById(R.id.send);
mEditText = (EditText) mEditPanel.findViewById(R.id.edit_text);
mFab = (FloatingActionButton) view.findViewById(R.id.fab);
@@ -157,12 +155,7 @@ public final class GalleryCommentsScene extends ToolbarScene
recyclerView.setOnItemClickListener(this);
recyclerView.setOnItemLongClickListener(this);
tipImage.setDrawable(VectorDrawable.create(getContext(), R.xml.sadpanda_head));
mSendImage.setDrawable(VectorDrawable.create(getContext(), R.xml.ic_send_dark_x24));
mSendImage.setOnClickListener(this);
mFab.setImageDrawable(VectorDrawable.create(getContext(), R.xml.ic_reply_dark_x24));
mFab.setOnClickListener(this);
mViewTransition = new ViewTransition(recyclerView, tip);
@@ -187,7 +180,7 @@ public final class GalleryCommentsScene extends ToolbarScene
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_comments);
setNavigationIcon(VectorDrawable.create(getContext(), R.xml.ic_arrow_left_dark_x24));
setNavigationIcon(R.drawable.ic_arrow_left_dark_x24);
// Clear nav checked item
setNavCheckedItem(0);
@@ -40,6 +40,7 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RatingBar;
import android.widget.TextView;
@@ -72,16 +73,14 @@ import com.hippo.text.Html;
import com.hippo.text.URLImageGetter;
import com.hippo.util.ActivityHelper;
import com.hippo.util.ApiHelper;
import com.hippo.util.DrawableManager;
import com.hippo.util.ExceptionUtils;
import com.hippo.util.ReadableTime;
import com.hippo.vector.AnimatedVectorDrawable;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.AutoWrapLayout;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.ProgressiveRatingBar;
import com.hippo.widget.SimpleGridLayout;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.SimpleHandler;
import java.lang.annotation.Retention;
@@ -126,7 +125,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
private TextView mTitle;
private TextView mUploader;
private TextView mCategory;
private SimpleImageView mOtherActions;
private ImageView mOtherActions;
private ViewGroup mActionGroup;
private View mDownload;
private View mRead;
@@ -164,8 +163,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
private ViewTransition mViewTransition2;
private AnimatedVectorDrawable mHeartDrawable;
private AnimatedVectorDrawable mHeartOutlineDrawable;
private PopupMenu mPopupMenu;
@Nullable
@@ -316,10 +313,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
View mainView = main.findViewById(R.id.scroll_view);
View progressView = main.findViewById(R.id.progress_view);
mFailedView = (ViewGroup) main.findViewById(R.id.tip);
SimpleImageView mFailedImage = (SimpleImageView) mFailedView.getChildAt(0);
mFailedText = (TextView) mFailedView.getChildAt(1);
mFailedView.setOnClickListener(this);
mFailedImage.setDrawable(VectorDrawable.create(getContext(), R.xml.sadpanda_head));
mViewTransition = new ViewTransition(mainView, progressView, mFailedView);
mHeader = mainView.findViewById(R.id.header);
@@ -328,11 +323,10 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mTitle = (TextView) mHeader.findViewById(R.id.title);
mUploader = (TextView) mHeader.findViewById(R.id.uploader);
mCategory = (TextView) mHeader.findViewById(R.id.category);
mOtherActions = (SimpleImageView) mHeader.findViewById(R.id.other_actions);
mOtherActions = (ImageView) mHeader.findViewById(R.id.other_actions);
mActionGroup = (ViewGroup) mHeader.findViewById(R.id.action_card);
mDownload = mActionGroup.findViewById(R.id.download);
mRead = mActionGroup.findViewById(R.id.read);
mOtherActions.setDrawable(VectorDrawable.create(getContext(), R.xml.ic_dots_vertical_secondary_dark_x24));
RippleSalon.addRipple(mOtherActions, false);
RippleSalon.addRipple(mDownload, false);
RippleSalon.addRipple(mRead, false);
@@ -342,6 +336,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mDownload.setOnClickListener(this);
mRead.setOnClickListener(this);
mBelowHeader = mainView.findViewById(R.id.below_header);
View belowHeader = mBelowHeader;
@@ -371,6 +366,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mTorrent.setOnClickListener(this);
mShare.setOnClickListener(this);
mRate.setOnClickListener(this);
ensureActionDrawable();
mTags = (LinearLayout) belowHeader.findViewById(R.id.tags);
mNoTags = (TextView) mTags.findViewById(R.id.no_tags);
@@ -472,8 +468,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mViewTransition2 = null;
mHeartDrawable = null;
mHeartOutlineDrawable = null;
mPopupMenu = null;
}
@@ -521,6 +515,24 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
return true;
}
private void setActionDrawable(TextView text, Drawable drawable) {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
text.setCompoundDrawables(null, drawable, null, null);
}
private void ensureActionDrawable() {
Drawable heart = DrawableManager.getDrawable(getContext(), R.drawable.v_heart_primary_x48);
setActionDrawable(mHeart, heart);
Drawable heartOutline = DrawableManager.getDrawable(getContext(), R.drawable.v_heart_outline_primary_x48);
setActionDrawable(mHeartOutline, heartOutline);
Drawable torrent = DrawableManager.getDrawable(getContext(), R.drawable.v_utorrent_primary_x48);
setActionDrawable(mTorrent, torrent);
Drawable share = DrawableManager.getDrawable(getContext(), R.drawable.v_share_primary_x48);
setActionDrawable(mShare, share);
Drawable rate = DrawableManager.getDrawable(getContext(), R.drawable.v_thumb_up_primary_x48);
setActionDrawable(mRate, rate);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean createCircularReveal() {
int w = mColorBg.getWidth();
@@ -597,32 +609,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
}
}
private void setActionDrawable(TextView text, Drawable drawable) {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
text.setCompoundDrawables(null, drawable, null, null);
}
private void ensureActionDrawable() {
if (mHeartDrawable != null) {
return;
}
mHeartDrawable = AnimatedVectorDrawable.create(getContext(), R.xml.ic_heart_animated);
setActionDrawable(mHeart, mHeartDrawable);
mHeartOutlineDrawable = AnimatedVectorDrawable.create(getContext(), R.xml.ic_heart_outline_animated);
setActionDrawable(mHeartOutline, mHeartOutlineDrawable);
VectorDrawable torrent = VectorDrawable.create(getContext(), R.xml.ic_utorrent_primary_x48);
setActionDrawable(mTorrent, torrent);
VectorDrawable share = VectorDrawable.create(getContext(), R.xml.ic_share_primary_x48);
setActionDrawable(mShare, share);
VectorDrawable rate = VectorDrawable.create(getContext(), R.xml.ic_thumb_up_primary_x48);
setActionDrawable(mRate, rate);
}
private void bindViewSecond() {
GalleryDetail gd = mGalleryDetail;
@@ -648,7 +634,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mRatingText.setText(getAllRatingText(gd.rating, gd.ratedTimes));
mRating.setRating(gd.rating);
ensureActionDrawable();
if (gd.isFavored) {
mHeart.setVisibility(View.VISIBLE);
mHeartOutline.setVisibility(View.GONE);
@@ -39,7 +39,6 @@ import com.hippo.ehviewer.client.EhUtils;
import com.hippo.ehviewer.client.data.GalleryDetail;
import com.hippo.rippleold.RippleSalon;
import com.hippo.util.ActivityHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.yorozuya.LayoutUtils;
import java.util.ArrayList;
@@ -170,7 +169,7 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_info);
setNavigationIcon(VectorDrawable.create(getContext(), R.xml.ic_arrow_left_dark_x24));
setNavigationIcon(R.drawable.ic_arrow_left_dark_x24);
// Clear nav checked item
setNavCheckedItem(0);
@@ -48,8 +48,6 @@ import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.anani.AnimationUtils;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.drawable.AddDeleteDrawable;
import com.hippo.drawable.DrawerArrowDrawable;
import com.hippo.easyrecyclerview.EasyRecyclerView;
@@ -76,12 +74,14 @@ import com.hippo.scene.StageActivity;
import com.hippo.scene.TransitionHelper;
import com.hippo.util.ActivityHelper;
import com.hippo.util.ApiHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.util.DrawableManager;
import com.hippo.view.ViewTransition;
import com.hippo.widget.ContentLayout;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.OffsetLayout;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.MathUtils;
import com.hippo.yorozuya.SimpleAnimatorListener;
import com.hippo.yorozuya.SimpleHandler;
import java.lang.annotation.Retention;
@@ -218,7 +218,7 @@ public final class GalleryListScene extends BaseScene
private void setSearchBarHint(Context context, SearchBar searchBar) {
Resources resources = context.getResources();
Drawable searchImage = VectorDrawable.create(context, R.xml.ic_magnify_x24);
Drawable searchImage = DrawableManager.getDrawable(context, R.drawable.v_magnify_x24);
SpannableStringBuilder ssb = new SpannableStringBuilder(" ");
ssb.append(resources.getString(R.string.gallery_list_search_bar_hint));
int textSize = (int) (searchBar.getEditTextTextSize() * 1.25);
@@ -311,8 +311,6 @@ public final class GalleryListScene extends BaseScene
mSearchLayout.setHelper(this);
Drawable searchDrawable = VectorDrawable.create(getContext(), R.xml.ic_magnify_dark_x24);
mFab.setImageDrawable(searchDrawable);
mFab.setOnClickListener(this);
mSearchBarMoveHelper = new SearchBarMoveHelper();
@@ -48,7 +48,6 @@ import com.hippo.ehviewer.client.exception.EhException;
import com.hippo.scene.SceneFragment;
import com.hippo.scene.StageActivity;
import com.hippo.util.ActivityHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.widget.ContentLayout;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.Slider;
@@ -152,7 +151,7 @@ public class GalleryPreviewsScene extends ToolbarScene {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_previews);
setNavigationIcon(VectorDrawable.create(getContext(), R.xml.ic_arrow_left_dark_x24));
setNavigationIcon(R.drawable.ic_arrow_left_dark_x24);
// Clear nav checked item
setNavCheckedItem(0);
@@ -34,9 +34,7 @@ import com.hippo.scene.SceneFragment;
import com.hippo.scene.StageActivity;
import com.hippo.util.ActivityHelper;
import com.hippo.util.ExceptionUtils;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.SimpleImageView;
/**
* Only show a progress with jobs in background
@@ -154,11 +152,9 @@ public final class ProgressScene extends BaseScene implements View.OnClickListen
View view = inflater.inflate(R.layout.scene_progress, container, false);
View progress = view.findViewById(R.id.progress);
mTip = view.findViewById(R.id.tip);
SimpleImageView tipImage = (SimpleImageView) mTip.findViewById(R.id.tip_image);
mTipText = (TextView) mTip.findViewById(R.id.tip_text);
mTip.setOnClickListener(this);
tipImage.setDrawable(VectorDrawable.create(getContext(), R.xml.sadpanda_head));
mTipText.setText(mError);
mViewTransition = new ViewTransition(progress, mTip);
@@ -16,7 +16,6 @@
package com.hippo.ehviewer.ui.scene;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
@@ -29,8 +28,6 @@ import com.hippo.ehviewer.client.EhUtils;
import com.hippo.rippleold.RippleSalon;
import com.hippo.scene.Announcer;
import com.hippo.util.ActivityHelper;
import com.hippo.vector.VectorDrawable;
import com.hippo.widget.SimpleImageView;
public final class WarningScene extends BaseScene implements View.OnClickListener {
@@ -43,13 +40,9 @@ public final class WarningScene extends BaseScene implements View.OnClickListene
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scene_warning, container, false);
SimpleImageView alert = (SimpleImageView) view.findViewById(R.id.icon_alert);
mCancel = view.findViewById(R.id.cancel);
mOk = view.findViewById(R.id.ok);
Drawable drawable = VectorDrawable.create(getContext(), R.xml.ic_alert_red_x48);
alert.setDrawable(drawable);
mCancel.setOnClickListener(this);
mOk.setOnClickListener(this);
@@ -41,11 +41,11 @@ import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.ehviewer.R;
import com.hippo.view.ViewTransition;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.MathUtils;
import com.hippo.yorozuya.SimpleAnimatorListener;
import com.hippo.yorozuya.ViewUtils;
import java.util.ArrayList;
@@ -18,7 +18,6 @@ package com.hippo.ehviewer.widget;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.IntDef;
@@ -34,6 +33,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.hippo.easyrecyclerview.EasyRecyclerView;
@@ -41,7 +41,6 @@ import com.hippo.ehviewer.R;
import com.hippo.ehviewer.client.data.ListUrlBuilder;
import com.hippo.rippleold.RippleSalon;
import com.hippo.widget.RadioGridGroup;
import com.hippo.widget.SimpleImageView;
import com.hippo.yorozuya.ViewUtils;
import java.lang.annotation.Retention;
@@ -86,7 +85,7 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
private View mNormalView;
private CategoryTable mCategoryTable;
private RadioGridGroup mNormalSearchMode;
private SimpleImageView mNormalSearchModeHelp;
private ImageView mNormalSearchModeHelp;
private View mSearchTagHelp;
private SwitchCompat mEnableAdvanceSwitch;
@@ -133,10 +132,8 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
mNormalView = normalView;
mCategoryTable = (CategoryTable) normalView.findViewById(R.id.search_category_table);
mNormalSearchMode = (RadioGridGroup) normalView.findViewById(R.id.normal_search_mode);
mNormalSearchModeHelp = (SimpleImageView) normalView.findViewById(R.id.normal_search_mode_help);
mNormalSearchModeHelp = (ImageView) normalView.findViewById(R.id.normal_search_mode_help);
mEnableAdvanceSwitch = (SwitchCompat) normalView.findViewById(R.id.search_enable_advance);
Drawable helpDrawable = com.hippo.vector.VectorDrawable.create(context, R.xml.ic_help_circle_x24);
mNormalSearchModeHelp.setDrawable(helpDrawable);
mNormalSearchModeHelp.setOnClickListener(this);
RippleSalon.addRipple(mNormalSearchModeHelp, false);
mEnableAdvanceSwitch.setOnCheckedChangeListener(SearchLayout.this);
@@ -18,10 +18,10 @@ package com.hippo.gl.widget;
import android.graphics.Color;
import android.graphics.Path;
import android.support.v4.view.animation.PathInterpolatorCompat;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import com.hippo.anani.PathInterpolator;
import com.hippo.gl.anim.Animation;
import com.hippo.gl.anim.FloatAnimation;
import com.hippo.gl.glrenderer.GLCanvas;
@@ -43,16 +43,16 @@ public class GLProgressView extends GLView {
trimStartPath.moveTo(0.0f, 0.0f);
trimStartPath.lineTo(0.5f, 0.0f);
trimStartPath.cubicTo(0.7f, 0.0f, 0.6f, 1f, 1f, 1f);
TRIM_START_INTERPOLATOR = PathInterpolator.build(trimStartPath);
TRIM_START_INTERPOLATOR = PathInterpolatorCompat.create(trimStartPath);
Path trimEndPath = new Path();
trimEndPath.moveTo(0.0f, 0.0f);
trimEndPath.cubicTo(0.2f, 0.0f, 0.1f, 1f, 0.5f, 1f);
trimEndPath.lineTo(1f, 1f);
TRIM_END_INTERPOLATOR = PathInterpolator.build(trimEndPath);
TRIM_END_INTERPOLATOR = PathInterpolatorCompat.create(trimEndPath);
}
private GLPaint mGLPaint;
private final GLPaint mGLPaint;
private float mCx;
private float mCy;
@@ -0,0 +1,45 @@
/*
* Copyright 2016 Hippo Seven
*
* 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.
*/
package com.hippo.util;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.graphics.drawable.VectorDrawableCompat;
import android.support.v7.widget.AppCompatDrawableManager;
public final class DrawableManager {
private static final AppCompatDrawableManager sManager = AppCompatDrawableManager.get();
public static Drawable getDrawable(@NonNull Context context, @DrawableRes int resId) {
return sManager.getDrawable(context, resId);
}
public static Drawable getVectorDrawable(@NonNull Resources res,
@DrawableRes int resId, @Nullable Resources.Theme theme) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
return res.getDrawable(resId, theme);
} else {
return VectorDrawableCompat.create(res, resId, theme);
}
}
}
@@ -20,11 +20,11 @@ import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.view.View;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.yorozuya.SimpleAnimatorListener;
public class ViewTransition {
private static long ANIMATE_TIME = 300L;
private static final long ANIMATE_TIME = 300L;
private final View[] mViews;
@@ -33,12 +33,12 @@ import android.view.View.OnClickListener;
import android.view.animation.Interpolator;
import android.widget.TextView;
import com.hippo.anani.AnimationUtils;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.ehviewer.R;
import com.hippo.hotspot.HotspotTouchHelper;
import com.hippo.hotspot.Hotspotable;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.MathUtils;
import com.hippo.yorozuya.SimpleAnimatorListener;
public class CheckTextView extends TextView implements OnClickListener, Hotspotable {
@@ -35,7 +35,6 @@ import com.hippo.easyrecyclerview.HandlerDrawable;
import com.hippo.easyrecyclerview.LayoutManagerUtils;
import com.hippo.ehviewer.R;
import com.hippo.util.ExceptionUtils;
import com.hippo.vector.VectorDrawable;
import com.hippo.view.ViewTransition;
import com.hippo.widget.refreshlayout.RefreshLayout;
import com.hippo.yorozuya.IntIdGenerator;
@@ -92,15 +91,12 @@ public class ContentLayout extends FrameLayout {
mRecyclerView = (EasyRecyclerView) mRefreshLayout.findViewById(R.id.recycler_view);
mImageView = mTipView.getChildAt(0);
mTextView = (TextView) mTipView.getChildAt(1);
SimpleImageView imageView = (SimpleImageView) findViewById(R.id.empty_image);
mFastScroller.attachToRecyclerView(mRecyclerView);
HandlerDrawable drawable = new HandlerDrawable();
drawable.setColor(ResourcesUtils.getAttrColor(context, R.attr.colorAccent));
mFastScroller.setHandlerDrawable(drawable);
imageView.setDrawable(VectorDrawable.create(context, R.xml.sadpanda_head));
mRefreshLayout.setHeaderColorSchemeResources(
R.color.loading_indicator_red,
R.color.loading_indicator_purple,
@@ -27,10 +27,10 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
import com.hippo.anani.AnimationUtils;
import com.hippo.anani.SimpleAnimatorListener;
import com.hippo.ehviewer.R;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.AssertUtils;
import com.hippo.yorozuya.SimpleAnimatorListener;
public class FabLayout extends ViewGroup implements View.OnClickListener {
@@ -27,13 +27,13 @@ import android.graphics.Path;
import android.graphics.RectF;
import android.support.annotation.NonNull;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.animation.PathInterpolatorCompat;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import com.hippo.anani.PathInterpolator;
import com.hippo.ehviewer.R;
import com.hippo.yorozuya.ViewUtils;
@@ -51,13 +51,13 @@ public class ProgressView extends View {
trimStartPath.moveTo(0.0f, 0.0f);
trimStartPath.lineTo(0.5f, 0.0f);
trimStartPath.cubicTo(0.7f, 0.0f, 0.6f, 1f, 1f, 1f);
TRIM_START_INTERPOLATOR = PathInterpolator.build(trimStartPath);
TRIM_START_INTERPOLATOR = PathInterpolatorCompat.create(trimStartPath);
Path trimEndPath = new Path();
trimEndPath.moveTo(0.0f, 0.0f);
trimEndPath.cubicTo(0.2f, 0.0f, 0.1f, 1f, 0.5f, 1f);
trimEndPath.lineTo(1f, 1f);
TRIM_END_INTERPOLATOR = PathInterpolator.build(trimEndPath);
TRIM_END_INTERPOLATOR = PathInterpolatorCompat.create(trimEndPath);
}
private final ArrayList<Animator> mAnimators = new ArrayList<>();
+16 -12
View File
@@ -19,13 +19,17 @@ package com.hippo.widget;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -34,9 +38,8 @@ import android.view.ViewConfiguration;
import android.widget.AbsoluteLayout;
import android.widget.PopupWindow;
import com.hippo.anani.AnimationUtils;
import com.hippo.ehviewer.R;
import com.hippo.vector.VectorDrawable;
import com.hippo.yorozuya.AnimationUtils;
import com.hippo.yorozuya.LayoutUtils;
import com.hippo.yorozuya.MathUtils;
import com.hippo.yorozuya.SimpleHandler;
@@ -116,8 +119,9 @@ public class Slider extends View {
Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
textPaint.setTextAlign(Paint.Align.CENTER);
mBubbleMinWidth = LayoutUtils.dp2pix(context, BUBBLE_WIDTH);
mBubbleMinHeight = LayoutUtils.dp2pix(context, BUBBLE_HEIGHT);
Resources resources = context.getResources();
mBubbleMinWidth = resources.getDimensionPixelOffset(R.dimen.slider_bubble_width);
mBubbleMinHeight = resources.getDimensionPixelOffset(R.dimen.slider_bubble_height);
mBubble = new BubbleView(context, textPaint);
mBubble.setScaleX(0.0f);
@@ -460,11 +464,11 @@ public class Slider extends View {
}
@SuppressLint("ViewConstructor")
private static class BubbleView extends View {
private static class BubbleView extends AppCompatImageView {
private static final float TEXT_CENTER = (float) BUBBLE_WIDTH / 2.0f / BUBBLE_HEIGHT;
private final VectorDrawable mVectorDrawable;
private final Drawable mDrawable;
private final Paint mTextPaint;
@@ -475,16 +479,14 @@ public class Slider extends View {
@SuppressWarnings("deprecation")
public BubbleView(Context context, Paint paint) {
super(context);
mVectorDrawable = VectorDrawable.create(context, R.xml.slider_bubble);
setBackgroundDrawable(mVectorDrawable);
setImageResource(R.drawable.v_slider_bubble);
mDrawable = DrawableCompat.wrap(getDrawable());
setImageDrawable(mDrawable);
mTextPaint = paint;
}
public void setColor(int color) {
Object obj = mVectorDrawable.getTargetByName("bubble");
if (obj instanceof VectorDrawable.VFullPath) {
((VectorDrawable.VFullPath) obj).setFillColor(color);
}
DrawableCompat.setTint(mDrawable, color);
}
public void setProgress(int progress) {
@@ -505,6 +507,8 @@ public class Slider extends View {
@Override
protected void onDraw(@NonNull Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
int x = width / 2;