diff --git a/app/src/main/java/us/shandian/giga/get/FilteredDownloadManagerWrapper.java b/app/src/main/java/us/shandian/giga/get/FilteredDownloadManagerWrapper.java deleted file mode 100644 index c417def15..000000000 --- a/app/src/main/java/us/shandian/giga/get/FilteredDownloadManagerWrapper.java +++ /dev/null @@ -1,88 +0,0 @@ -package us.shandian.giga.get; - -import android.content.Context; - -import java.util.Map.Entry; -import java.util.HashMap; - -public class FilteredDownloadManagerWrapper implements DownloadManager -{ - - private boolean mDownloaded = false; // T=Filter downloaded files; F=Filter downloading files - private DownloadManager mManager; - private HashMap mElementsMap = new HashMap(); - - public FilteredDownloadManagerWrapper(DownloadManager manager, boolean filterDownloaded) { - mManager = manager; - mDownloaded = filterDownloaded; - refreshMap(); - } - - private void refreshMap() { - mElementsMap.clear(); - - int size = 0; - for (int i = 0; i < mManager.getCount(); i++) { - if (mManager.getMission(i).finished == mDownloaded) { - mElementsMap.put(size++, i); - } - } - } - - private int toRealPosition(int pos) { - if (mElementsMap.containsKey(pos)) { - return mElementsMap.get(pos); - } else { - return -1; - } - } - - private int toFakePosition(int pos) { - for (Entry entry : mElementsMap.entrySet()) { - if (entry.getValue() == pos) { - return entry.getKey(); - } - } - - return -1; - } - - @Override - public int startMission(String url, String name, int threads) { - int ret = mManager.startMission(url, name, threads); - refreshMap(); - return toFakePosition(ret); - } - - @Override - public void resumeMission(int id) { - mManager.resumeMission(toRealPosition(id)); - } - - @Override - public void pauseMission(int id) { - mManager.pauseMission(toRealPosition(id)); - } - - @Override - public void deleteMission(int id) { - mManager.deleteMission(toRealPosition(id)); - } - - @Override - public DownloadMission getMission(int id) { - return mManager.getMission(toRealPosition(id)); - } - - - @Override - public int getCount() { - return mElementsMap.size(); - } - - @Override - public String getLocation() { - return mManager.getLocation(); - } - -} diff --git a/app/src/main/java/us/shandian/giga/ui/common/BlockGraphView.java b/app/src/main/java/us/shandian/giga/ui/common/BlockGraphView.java deleted file mode 100755 index 9e2706678..000000000 --- a/app/src/main/java/us/shandian/giga/ui/common/BlockGraphView.java +++ /dev/null @@ -1,84 +0,0 @@ -package us.shandian.giga.ui.common; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.util.AttributeSet; -import android.view.View; - -import org.schabi.newpipe.R; -import us.shandian.giga.get.DownloadMission; - -public class BlockGraphView extends View -{ - private static int BLOCKS_PER_LINE = 15; - - private int mForeground, mBackground; - private int mBlockSize, mLineCount; - private DownloadMission mMission; - - public BlockGraphView(Context context) { - this(context, null); - } - - public BlockGraphView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public BlockGraphView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - try { - TypedArray array = context.obtainStyledAttributes(R.styleable.AppCompatTheme); - mBackground = array.getColor(R.styleable.AppCompatTheme_colorPrimary, 0); - mForeground = array.getColor(R.styleable.AppCompatTheme_colorPrimaryDark, 0); - array.recycle(); - } catch (Exception e) { - - } - } - - public void setMission(DownloadMission mission) { - mMission = mission; - setWillNotDraw(false); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int width = MeasureSpec.getSize(widthMeasureSpec); - mBlockSize = width / BLOCKS_PER_LINE - 1; - mLineCount = (int) Math.ceil((double) mMission.blocks / BLOCKS_PER_LINE); - int height = mLineCount * (mBlockSize + 1); - setMeasuredDimension(width, height); - } - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - - Paint p = new Paint(); - p.setFlags(Paint.ANTI_ALIAS_FLAG); - - for (int i = 0; i < mLineCount; i++) { - for (int j = 0; j < BLOCKS_PER_LINE; j++) { - long pos = i * BLOCKS_PER_LINE + j; - if (pos >= mMission.blocks) { - break; - } - - if (mMission.isBlockPreserved(pos)) { - p.setColor(mForeground); - } else { - p.setColor(mBackground); - } - - int left = (mBlockSize + 1) * j; - int right = left + mBlockSize; - int top = (mBlockSize + 1) * i; - int bottom = top + mBlockSize; - canvas.drawRect(left, top, right, bottom, p); - } - } - } -} diff --git a/app/src/main/java/us/shandian/giga/ui/common/FloatingActionButton.java b/app/src/main/java/us/shandian/giga/ui/common/FloatingActionButton.java deleted file mode 100644 index 424ce388a..000000000 --- a/app/src/main/java/us/shandian/giga/ui/common/FloatingActionButton.java +++ /dev/null @@ -1,231 +0,0 @@ -package us.shandian.giga.ui.common; - -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.app.Activity; -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.view.Gravity; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.OvershootInterpolator; -import android.widget.FrameLayout; - -/* - * From GitHub Gist: https://gist.github.com/Jogan/9def6110edf3247825c9 - */ -public class FloatingActionButton extends View implements Animator.AnimatorListener { - - final static OvershootInterpolator overshootInterpolator = new OvershootInterpolator(); - final static AccelerateInterpolator accelerateInterpolator = new AccelerateInterpolator(); - - Context context; - Paint mButtonPaint; - Paint mDrawablePaint; - Bitmap mBitmap; - boolean mHidden = false; - - public FloatingActionButton(Context context) { - super(context); - this.context = context; - init(Color.WHITE); - } - - public void setFloatingActionButtonColor(int FloatingActionButtonColor) { - init(FloatingActionButtonColor); - } - - public void setFloatingActionButtonDrawable(Drawable FloatingActionButtonDrawable) { - mBitmap = ((BitmapDrawable) FloatingActionButtonDrawable).getBitmap(); - invalidate(); - } - - public void init(int FloatingActionButtonColor) { - setWillNotDraw(false); - setLayerType(View.LAYER_TYPE_SOFTWARE, null); - - mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - mButtonPaint.setColor(FloatingActionButtonColor); - mButtonPaint.setStyle(Paint.Style.FILL); - mButtonPaint.setShadowLayer(10.0f, 0.0f, 3.5f, Color.argb(100, 0, 0, 0)); - mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG); - - invalidate(); - } - - @Override - protected void onDraw(Canvas canvas) { - setClickable(true); - canvas.drawCircle(getPaddingLeft() + getRealWidth() / 2, - getPaddingTop() + getRealHeight() / 2, - (float) getRealWidth() / 2.6f, mButtonPaint); - canvas.drawBitmap(mBitmap, getPaddingLeft() + (getRealWidth() - mBitmap.getWidth()) / 2, - getPaddingTop() + (getRealHeight() - mBitmap.getHeight()) / 2, mDrawablePaint); - } - - private int getRealWidth() { - return getWidth() - getPaddingLeft() - getPaddingRight(); - } - - private int getRealHeight() { - return getHeight() - getPaddingTop() - getPaddingBottom(); - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_UP) { - setAlpha(1.0f); - } else if (event.getAction() == MotionEvent.ACTION_DOWN) { - setAlpha(0.6f); - } - return super.onTouchEvent(event); - } - - @Override - public void onAnimationCancel(Animator anim) { - - } - - @Override - public void onAnimationEnd(Animator anim) { - if (mHidden) { - setVisibility(View.GONE); - } - } - - @Override - public void onAnimationRepeat(Animator anim) { - - } - - @Override - public void onAnimationStart(Animator anim) { - - } - - - public void hideFloatingActionButton() { - if (!mHidden) { - ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 1, 0); - ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 1, 0); - AnimatorSet animSetXY = new AnimatorSet(); - animSetXY.playTogether(scaleX, scaleY); - animSetXY.setInterpolator(accelerateInterpolator); - animSetXY.setDuration(100); - animSetXY.start(); - animSetXY.addListener(this); - mHidden = true; - } - } - - public void showFloatingActionButton() { - if (mHidden) { - setVisibility(View.VISIBLE); - ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 0, 1); - ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 0, 1); - AnimatorSet animSetXY = new AnimatorSet(); - animSetXY.playTogether(scaleX, scaleY); - animSetXY.setInterpolator(overshootInterpolator); - animSetXY.setDuration(200); - animSetXY.start(); - mHidden = false; - } - } - - public boolean isHidden() { - return mHidden; - } - - static public class Builder { - private FrameLayout.LayoutParams params; - private final Activity activity; - int gravity = Gravity.BOTTOM | Gravity.RIGHT; // default bottom right - Drawable drawable; - int color = Color.WHITE; - int size = 0; - float scale = 0; - int paddingLeft = 0, - paddingTop = 0, - paddingBottom = 0, - paddingRight = 0; - - public Builder(Activity context) { - scale = context.getResources().getDisplayMetrics().density; - size = convertToPixels(72, scale); // default size is 72dp by 72dp - params = new FrameLayout.LayoutParams(size, size); - params.gravity = gravity; - - this.activity = context; - } - - /** - * Sets the gravity for the FAB - */ - public Builder withGravity(int gravity) { - this.gravity = gravity; - return this; - } - - /** - * Sets the margins for the FAB in dp - */ - public Builder withPaddings(int left, int top, int right, int bottom) { - paddingLeft = convertToPixels(left, scale); - paddingTop = convertToPixels(top, scale); - paddingRight = convertToPixels(right, scale); - paddingBottom = convertToPixels(bottom, scale); - return this; - } - - /** - * Sets the FAB drawable - */ - public Builder withDrawable(final Drawable drawable) { - this.drawable = drawable; - return this; - } - - /** - * Sets the FAB color - */ - public Builder withButtonColor(final int color) { - this.color = color; - return this; - } - - /** - * Sets the FAB size in dp - */ - public Builder withButtonSize(int size) { - size = convertToPixels(size, scale); - params = new FrameLayout.LayoutParams(size, size); - return this; - } - - public FloatingActionButton create() { - final FloatingActionButton button = new FloatingActionButton(activity); - button.setFloatingActionButtonColor(this.color); - button.setFloatingActionButtonDrawable(this.drawable); - button.setPadding(paddingLeft, paddingTop, paddingBottom, paddingRight); - params.gravity = this.gravity; - ViewGroup root = (ViewGroup) activity.findViewById(android.R.id.content); - root.addView(button, params); - return button; - } - - // The calculation (value * scale + 0.5f) is a widely used to convert to dps to pixel units - // based on density scale - // see developer.android.com (Supporting Multiple Screen Sizes) - private int convertToPixels(int dp, float scale){ - return (int) (dp * scale + 0.5f) ; - } - } -} diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/DownloadedMissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/DownloadedMissionsFragment.java deleted file mode 100644 index 1c8c56a36..000000000 --- a/app/src/main/java/us/shandian/giga/ui/fragment/DownloadedMissionsFragment.java +++ /dev/null @@ -1,13 +0,0 @@ -package us.shandian.giga.ui.fragment; - -import us.shandian.giga.get.DownloadManager; -import us.shandian.giga.get.FilteredDownloadManagerWrapper; -import us.shandian.giga.service.DownloadManagerService; - -public class DownloadedMissionsFragment extends MissionsFragment -{ - @Override - protected DownloadManager setupDownloadManager(DownloadManagerService.DMBinder binder) { - return new FilteredDownloadManagerWrapper(binder.getDownloadManager(), true); - } -} diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/DownloadingMissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/DownloadingMissionsFragment.java deleted file mode 100644 index 79d50904e..000000000 --- a/app/src/main/java/us/shandian/giga/ui/fragment/DownloadingMissionsFragment.java +++ /dev/null @@ -1,13 +0,0 @@ -package us.shandian.giga.ui.fragment; - -import us.shandian.giga.get.DownloadManager; -import us.shandian.giga.get.FilteredDownloadManagerWrapper; -import us.shandian.giga.service.DownloadManagerService; - -public class DownloadingMissionsFragment extends MissionsFragment -{ - @Override - protected DownloadManager setupDownloadManager(DownloadManagerService.DMBinder binder) { - return new FilteredDownloadManagerWrapper(binder.getDownloadManager(), false); - } -} diff --git a/app/src/main/java/us/shandian/giga/util/CrashHandler.java b/app/src/main/java/us/shandian/giga/util/CrashHandler.java index 5404e0d39..dc3b76fb2 100644 --- a/app/src/main/java/us/shandian/giga/util/CrashHandler.java +++ b/app/src/main/java/us/shandian/giga/util/CrashHandler.java @@ -8,6 +8,7 @@ import android.os.Environment; import java.io.File; import java.io.PrintWriter; +//todo: replace this by using the internal crash handler of newpipe public class CrashHandler implements Thread.UncaughtExceptionHandler { public static String CRASH_DIR = Environment.getExternalStorageDirectory().getPath() + "/GigaCrash/";