Use support-vector-drawable and animated-vector-drawable
This commit is contained in:
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<>();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user