Use SnackBar

This commit is contained in:
seven332 committed 2016-03-08 17:18:29 +08:00
1 parent cd016a126c
commit b09b261098
11 files changed
+117 -56

No files matched your search

@@ -24,7 +24,9 @@ import android.os.PersistableBundle;
import android.support.annotation.IdRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
@@ -37,7 +39,6 @@ import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.client.EhUrlOpener;
import com.hippo.ehviewer.client.EhUtils;
import com.hippo.ehviewer.ui.annotation.WholeLifeCircle;
import com.hippo.ehviewer.ui.scene.AnalyticsScene;
import com.hippo.ehviewer.ui.scene.BaseScene;
import com.hippo.ehviewer.ui.scene.DownloadLabelScene;
@@ -73,14 +74,14 @@ public final class MainActivity extends StageActivity
public static final String KEY_TARGET_SCENE = "target_scene";
public static final String KEY_TARGET_ARGS = "target_args";
/*---------------
Whole life cycle
---------------*/
@Nullable
@WholeLifeCircle
private DrawerLayout mDrawerLayout;
@Nullable
@WholeLifeCircle
private NavigationView mNavView;
@Nullable
@WholeLifeCircle
private FrameLayout mRightDrawer;
private int mNavCheckedItem = 0;
@@ -357,6 +358,23 @@ public final class MainActivity extends StageActivity
}
}
public void showTip(@StringRes int id, int length) {
showTip(getString(id), length);
}
/**
* If activity is running, show snack bar, otherwise show toast
*/
public void showTip(CharSequence message, int length) {
if (null != mDrawerLayout) {
Snackbar.make(mDrawerLayout, message,
length == BaseScene.LENGTH_LONG ? Snackbar.LENGTH_LONG : Snackbar.LENGTH_SHORT).show();
} else {
Toast.makeText(this, message,
length == BaseScene.LENGTH_LONG ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show();
}
}
@Override
public void onBackPressed() {
if (mDrawerLayout != null && (mDrawerLayout.isDrawerOpen(Gravity.LEFT) ||
@@ -19,6 +19,7 @@ package com.hippo.ehviewer.ui.scene;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.DrawerLayout;
import android.view.Gravity;
@@ -32,6 +33,9 @@ import com.hippo.util.ActivityHelper;
public abstract class BaseScene extends SceneFragment {
public static final int LENGTH_SHORT = 0;
public static final int LENGTH_LONG = 1;
private boolean mViewCreated;
public void setDrawerLockMode(int lockMode, int edgeGravity) {
@@ -81,6 +85,20 @@ public abstract class BaseScene extends SceneFragment {
}
}
public void showTip(CharSequence message, int length) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
((MainActivity) activity).showTip(message, length);
}
}
public void showTip(@StringRes int id, int length) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
((MainActivity) activity).showTip(id, length);
}
}
public boolean needShowLeftDrawer() {
return true;
}
@@ -17,9 +17,12 @@
package com.hippo.ehviewer.ui.scene;
import android.content.Context;
import android.support.annotation.StringRes;
import android.widget.Toast;
import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.client.EhClient;
import com.hippo.ehviewer.ui.MainActivity;
import com.hippo.scene.SceneFragment;
import com.hippo.scene.StageActivity;
@@ -41,6 +44,10 @@ public abstract class EhCallback<E extends SceneFragment, T> implements EhClient
return mApplication;
}
public StageActivity getStageActivity() {
return mApplication.findStageActivityById(mStageId);
}
@SuppressWarnings("unchecked")
public E getScene() {
StageActivity stage = mApplication.findStageActivityById(mStageId);
@@ -54,4 +61,14 @@ public abstract class EhCallback<E extends SceneFragment, T> implements EhClient
return null;
}
}
public void showTip(@StringRes int id, int length) {
StageActivity activity = getStageActivity();
if (activity instanceof MainActivity) {
((MainActivity) activity).showTip(id, length);
} else {
Toast.makeText(getApplication(), id,
length == BaseScene.LENGTH_LONG ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show();
}
}
}
@@ -47,7 +47,6 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.annotation.Implemented;
import com.hippo.drawable.DrawerArrowDrawable;
@@ -848,7 +847,6 @@ public class FavoritesScene extends BaseScene implements
dstCat = which - 1;
}
if (srcCat == dstCat) {
Toast.makeText(getContext(), "src and dst in the same", Toast.LENGTH_SHORT).show();
return;
}
@@ -37,7 +37,6 @@ import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.easyrecyclerview.EasyRecyclerView;
import com.hippo.easyrecyclerview.LinearDividerItemDecoration;
@@ -410,8 +409,7 @@ public final class GalleryCommentsScene extends ToolbarScene
@Override
public void onSuccess(GalleryComment[] result) {
// Show toast
Toast.makeText(getApplication(), R.string.comment_successfully, Toast.LENGTH_SHORT).show();
showTip(R.string.comment_successfully, LENGTH_SHORT);
GalleryCommentsScene scene = getScene();
if (scene != null) {
@@ -421,8 +419,7 @@ public final class GalleryCommentsScene extends ToolbarScene
@Override
public void onFailure(Exception e) {
// Show toast
Toast.makeText(getApplication(), R.string.comment_failed, Toast.LENGTH_SHORT).show();
showTip(R.string.comment_failed, LENGTH_SHORT);
}
@Override
@@ -53,7 +53,6 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.drawable.RoundSideRectDrawable;
import com.hippo.ehviewer.EhApplication;
@@ -1338,8 +1337,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
@Override
public void onSuccess(Void result) {
Toast.makeText(getContext(), mAddOrRemove ? R.string.remove_from_favorite_success :
R.string.add_to_favorite_success, Toast.LENGTH_SHORT).show();
showTip(mAddOrRemove ? R.string.remove_from_favorite_success :
R.string.add_to_favorite_success, LENGTH_SHORT);
GalleryDetailScene scene = getScene();
if (scene != null) {
scene.onModifyFavoritesSuccess(mAddOrRemove);
@@ -1348,8 +1347,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
@Override
public void onFailure(Exception e) {
Toast.makeText(getContext(), mAddOrRemove ? R.string.remove_from_favorite_failure :
R.string.add_to_favorite_failure, Toast.LENGTH_SHORT).show();
showTip(mAddOrRemove ? R.string.remove_from_favorite_failure :
R.string.add_to_favorite_failure, LENGTH_SHORT);
}
@Override
@@ -1564,8 +1563,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
@Override
public void onSuccess(RateGalleryParser.Result result) {
// Show toast
Toast.makeText(getApplication(), R.string.rate_successfully, Toast.LENGTH_SHORT).show();
showTip(R.string.rate_successfully, LENGTH_SHORT);
GalleryDetailScene scene = getScene();
if (scene != null) {
@@ -1583,8 +1581,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
@Override
public void onFailure(Exception e) {
e.printStackTrace();
// Show toast
Toast.makeText(getApplication(), R.string.rate_failed, Toast.LENGTH_SHORT).show();
showTip(R.string.rate_failed, LENGTH_SHORT);
}
@Override
@@ -29,7 +29,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.easyrecyclerview.EasyRecyclerView;
import com.hippo.easyrecyclerview.LinearDividerItemDecoration;
@@ -176,7 +175,7 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler
if (position != 0 && mValues != null) {
ClipboardManager cmb = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setPrimaryClip(ClipData.newPlainText(null, mValues.get(position)));
Toast.makeText(getContext(), R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show();
showTip(R.string.copied_to_clipboard, LENGTH_SHORT);
return true;
} else {
return false;
@@ -44,7 +44,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.drawable.AddDeleteDrawable;
import com.hippo.drawable.DrawerArrowDrawable;
@@ -372,7 +371,7 @@ public final class GalleryListScene extends BaseScene
if (time - mPressBackTime > BACK_PRESSED_INTERVAL) {
// It is the last scene
mPressBackTime = time;
Toast.makeText(getContext(), R.string.press_twice_exit, Toast.LENGTH_SHORT).show();
showTip(R.string.press_twice_exit, LENGTH_SHORT);
return true;
} else {
return false;
@@ -466,7 +465,9 @@ public final class GalleryListScene extends BaseScene
CommonOperations.startDownload(getActivity(), gi);
break;
case 1: // Favorites
CommonOperations.addToFavorites(getActivity(), gi, new addToFavoriteListener());
CommonOperations.addToFavorites(getActivity(), gi,
new addToFavoriteListener(getContext(),
((StageActivity) getActivity()).getStageId(), getTag()));
break;
}
}
@@ -616,7 +617,7 @@ public final class GalleryListScene extends BaseScene
if (mSearchLayout.isSpecifyGallery()) {
int index = query.indexOf(' ');
if (index <= 0 || index >= query.length() - 1) {
Toast.makeText(getContext(), "Error", Toast.LENGTH_SHORT).show(); // TODO
showTip(R.string.error_invalid_specify_gallery, LENGTH_LONG);
return;
}
@@ -625,7 +626,7 @@ public final class GalleryListScene extends BaseScene
try {
gid = Long.parseLong(query.substring(0, index));
} catch (NumberFormatException e) {
Toast.makeText(getContext(), "Error", Toast.LENGTH_SHORT).show(); // TODO
showTip(R.string.error_invalid_specify_gallery, LENGTH_LONG);
return;
}
token = query.substring(index + 1);
@@ -953,19 +954,28 @@ public final class GalleryListScene extends BaseScene
}
}
private class addToFavoriteListener implements EhClient.Callback<Void> {
private static class addToFavoriteListener extends EhCallback<GalleryListScene, Void> {
public addToFavoriteListener(Context context, int stageId, String sceneTag) {
super(context, stageId, sceneTag);
}
@Override
public void onSuccess(Void result) {
Toast.makeText(getContext(), R.string.add_to_favorite_success, Toast.LENGTH_SHORT).show();
showTip(R.string.add_to_favorite_success, LENGTH_SHORT);
}
@Override
public void onFailure(Exception e) {
Toast.makeText(getContext(), R.string.add_to_favorite_failure, Toast.LENGTH_SHORT).show();
showTip(R.string.add_to_favorite_failure, LENGTH_SHORT);
}
@Override
public void onCancel() {}
@Override
public boolean isInstance(SceneFragment scene) {
return scene instanceof GalleryListScene;
}
}
}
@@ -33,7 +33,6 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.easyrecyclerview.EasyRecyclerView;
import com.hippo.easyrecyclerview.MarginItemDecoration;
@@ -408,7 +407,7 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
mDialog = null;
}
} else {
Toast.makeText(getContext(), R.string.error_out_of_range, Toast.LENGTH_SHORT).show();
showTip(R.string.error_out_of_range, LENGTH_SHORT);
}
}