Bug 884075 - Make button toast listeners per toast. r=margaret

This commit is contained in:
Wes Johnston 2013-07-16 01:33:05 -07:00
Родитель 4d3ab27bc9
Коммит 45baf2ff07
2 изменённых файлов: 21 добавлений и 22 удалений

Просмотреть файл

@ -395,14 +395,7 @@ abstract public class BrowserApp extends GeckoApp
mBrowserToolbar = (BrowserToolbar) findViewById(R.id.browser_toolbar); mBrowserToolbar = (BrowserToolbar) findViewById(R.id.browser_toolbar);
mToast = new ButtonToast(findViewById(R.id.toast), new ButtonToast.ToastListener() { mToast = new ButtonToast(findViewById(R.id.toast));
@Override
public void onButtonClicked(CharSequence token) {
if (ADD_SHORTCUT_TOAST.equals(token)) {
showBookmarkDialog();
}
}
});
((GeckoApp.MainLayout) mMainLayout).setTouchEventInterceptor(new HideTabsTouchListener()); ((GeckoApp.MainLayout) mMainLayout).setTouchEventInterceptor(new HideTabsTouchListener());
((GeckoApp.MainLayout) mMainLayout).setMotionEventInterceptor(new MotionEventInterceptor() { ((GeckoApp.MainLayout) mMainLayout).setMotionEventInterceptor(new MotionEventInterceptor() {
@ -1699,10 +1692,15 @@ abstract public class BrowserApp extends GeckoApp
} else { } else {
tab.addBookmark(); tab.addBookmark();
mToast.show(false, mToast.show(false,
getResources().getString(R.string.bookmark_added), getResources().getString(R.string.bookmark_added),
getResources().getString(R.string.bookmark_options), getResources().getString(R.string.bookmark_options),
0, 0,
ADD_SHORTCUT_TOAST); new ButtonToast.ToastListener() {
@Override
public void onButtonClicked() {
showBookmarkDialog();
}
});
item.setIcon(R.drawable.ic_menu_bookmark_remove); item.setIcon(R.drawable.ic_menu_bookmark_remove);
} }
} }

Просмотреть файл

@ -50,23 +50,24 @@ public class ButtonToast {
public final CharSequence buttonMessage; public final CharSequence buttonMessage;
public final int buttonIcon; public final int buttonIcon;
public final CharSequence message; public final CharSequence message;
public ToastListener listener;
public Toast(CharSequence aMessage, CharSequence aButtonMessage, int aIcon, CharSequence aToken) { public Toast(CharSequence aMessage, CharSequence aButtonMessage, int aIcon, ToastListener aListener) {
message = aMessage; message = aMessage;
buttonMessage = aButtonMessage; buttonMessage = aButtonMessage;
buttonIcon = aIcon; buttonIcon = aIcon;
token = aToken; listener = aListener;
token = "";
} }
} }
public interface ToastListener { public interface ToastListener {
void onButtonClicked(CharSequence token); void onButtonClicked();
} }
public ButtonToast(View view, ToastListener listener) { public ButtonToast(View view) {
mView = view; mView = view;
mListener = listener; mListener = null;
mMessageView = (TextView) mView.findViewById(R.id.toast_message); mMessageView = (TextView) mView.findViewById(R.id.toast_message);
mButton = (Button) mView.findViewById(R.id.toast_button); mButton = (Button) mView.findViewById(R.id.toast_button);
mButton.setOnClickListener(new View.OnClickListener() { mButton.setOnClickListener(new View.OnClickListener() {
@ -77,8 +78,8 @@ public class ButtonToast {
return; return;
hide(false); hide(false);
if (mListener != null) { if (t.listener != null) {
mListener.onButtonClicked(t.token); t.listener.onButtonClicked();
} }
} }
}); });
@ -88,8 +89,8 @@ public class ButtonToast {
public void show(boolean immediate, CharSequence message, public void show(boolean immediate, CharSequence message,
CharSequence buttonMessage, int buttonIcon, CharSequence buttonMessage, int buttonIcon,
CharSequence token) { ToastListener listener) {
Toast t = new Toast(message, buttonMessage, buttonIcon, token); Toast t = new Toast(message, buttonMessage, buttonIcon, listener);
show(t, immediate); show(t, immediate);
} }