Add composite listeners

This commit is contained in:
Eric Reed committed 2014-12-05 10:22:31 -05:00
1 parent 7fae856b93
commit 0b5b34d958
4 files changed
+54 -4

No files matched your search

@@ -48,7 +48,7 @@ public class HomeFragment extends StdBrowseFragment {
@Override
protected void setupEventListeners() {
super.setupEventListeners();
setOnItemViewClickedListener(new ItemViewClickedListener());
mClickedListener.registerListener(new ItemViewClickedListener());
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@@ -64,6 +64,8 @@ public class StdBrowseFragment extends BrowseFragment {
protected String MainTitle;
protected ApiClient apiClient;
protected CompositeClickedListener mClickedListener = new CompositeClickedListener();
protected CompositeSelectedListener mSelectedListener = new CompositeSelectedListener();
private ArrayObjectAdapter mRowsAdapter;
private Drawable mDefaultBackground;
private Target mBackgroundTarget;
@@ -125,7 +127,7 @@ public class StdBrowseFragment extends BrowseFragment {
// }
addAdditionalRows(mRowsAdapter);
setAdapter(mRowsAdapter);
}
@@ -170,8 +172,11 @@ public class StdBrowseFragment extends BrowseFragment {
}
});
setOnItemViewClickedListener(new ItemViewClickedListener());
setOnItemViewSelectedListener(new ItemViewSelectedListener());
setOnItemViewClickedListener(mClickedListener);
mClickedListener.registerListener(new ItemViewClickedListener());
setOnItemViewSelectedListener(mSelectedListener);
mSelectedListener.registerListener(new ItemViewSelectedListener());
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@@ -257,5 +262,42 @@ public class StdBrowseFragment extends BrowseFragment {
}
}
protected class CompositeClickedListener implements OnItemViewClickedListener {
private List<OnItemViewClickedListener> registeredListeners = new ArrayList<>();
public void registerListener (OnItemViewClickedListener listener) {
registeredListeners.add(listener);
}
public void unRegisterListener (OnItemViewClickedListener listener) {
registeredListeners.remove(listener);
}
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
for (OnItemViewClickedListener listener : registeredListeners) {
listener.onItemClicked(itemViewHolder, item, rowViewHolder, row);
}
}
}
protected class CompositeSelectedListener implements OnItemViewSelectedListener {
private List<OnItemViewSelectedListener> registeredListeners = new ArrayList<>();
public void registerListener (OnItemViewSelectedListener listener) {
registeredListeners.add(listener);
}
public void unRegisterListener (OnItemViewSelectedListener listener) {
registeredListeners.remove(listener);
}
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
for (OnItemViewSelectedListener listener : registeredListeners) {
listener.onItemSelected(itemViewHolder, item, rowViewHolder, row);
}
}
}
}
@@ -4,6 +4,8 @@ import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Point;
import android.media.AudioManager;
import android.media.ToneGenerator;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;
@@ -148,4 +150,10 @@ public class Utils {
return apiClient.GetImageUrl(item, options);
}
public static void Beep() {
// send the tone to the "alarm" stream (classic beeps go there) with 50% volume
ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_ALARM, 50);
toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200); // 200 is duration in ms
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB