Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit d80be02

Browse files
committed
Allow narrowing to stream or subject more easily
1 parent 22a8090 commit d80be02

File tree

4 files changed

+28
-16
lines changed

4 files changed

+28
-16
lines changed

app/src/main/java/com/zulip/android/MessageAdapter.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ public View getView(int position, View convertView, ViewGroup group) {
8686
display_recipient.setOnClickListener(new View.OnClickListener() {
8787
@Override
8888
public void onClick(View v) {
89-
// TODO: narrow to stream.
90-
Toast.makeText(v.getContext(), "Narrow to stream", Toast.LENGTH_LONG).show();
89+
if (getContext() instanceof NarrowListener) {
90+
((NarrowListener) getContext()).onNarrow(new NarrowFilterStream(message.getStream(), null));
91+
}
9192
}
9293
});
9394
}
@@ -106,8 +107,9 @@ public void onClick(View v) {
106107
instance.setOnClickListener(new View.OnClickListener() {
107108
@Override
108109
public void onClick(View v) {
109-
// TODO: narrow to thread
110-
Toast.makeText(v.getContext(), "Narrow to thread", Toast.LENGTH_LONG).show();
110+
if (getContext() instanceof NarrowListener) {
111+
((NarrowListener) getContext()).onNarrow(new NarrowFilterStream(message.getStream(), message.getSubject()));
112+
}
111113
}
112114
});
113115
}

app/src/main/java/com/zulip/android/MessageListFragment.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import android.widget.AbsListView.OnScrollListener;
2626
import android.widget.AdapterView;
2727
import android.widget.AdapterView.AdapterContextMenuInfo;
28-
import android.widget.AdapterView.OnItemClickListener;
2928
import android.widget.AdapterView.OnItemSelectedListener;
3029
import android.widget.ImageView;
3130
import android.widget.LinearLayout;
@@ -286,8 +285,7 @@ public void onCreateContextMenu(ContextMenu menu, View v,
286285

287286
@Override
288287
public boolean onContextItemSelected(MenuItem item) {
289-
Message message = itemFromMenuInfo((AdapterContextMenuInfo) item
290-
.getMenuInfo());
288+
Message message = itemFromMenuInfo(item.getMenuInfo());
291289
switch (item.getItemId()) {
292290
case R.id.reply_to_stream:
293291
mListener.openCompose(message.getStream(), message.getSubject());
@@ -299,18 +297,17 @@ public boolean onContextItemSelected(MenuItem item) {
299297
mListener.openCompose(message.getSender().getEmail());
300298
return true;
301299
case R.id.narrow_to_private:
302-
((ZulipActivity) getActivity()).doNarrow(new NarrowFilterPM(Arrays
303-
.asList(message.getRecipients(app))));
300+
((ZulipActivity) getActivity()).doNarrow(new NarrowFilterPM(Arrays.asList(message.getRecipients(app))));
304301
return true;
305302
case R.id.narrow_to_stream:
306-
// TODO This should probably use an interface defining a custom
307-
// listener.
308-
((ZulipActivity) getActivity()).doNarrow(new NarrowFilterStream(
309-
message.getStream(), null));
303+
if (getActivity() instanceof NarrowListener) {
304+
((NarrowListener) getActivity()).onNarrow(new NarrowFilterStream(message.getStream(), null));
305+
}
310306
return true;
311307
case R.id.narrow_to_subject:
312-
((ZulipActivity) getActivity()).doNarrow(new NarrowFilterStream(
313-
message.getStream(), message.getSubject()));
308+
if (getActivity() instanceof NarrowListener) {
309+
((NarrowListener) getActivity()).onNarrow(new NarrowFilterStream(message.getStream(), message.getSubject()));
310+
}
314311
return true;
315312
case R.id.copy_message:
316313
copyMessage(message);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.zulip.android;
2+
3+
/**
4+
* Listener for narrow actions
5+
*/
6+
public interface NarrowListener {
7+
void onNarrow(NarrowFilter narrowFilter);
8+
}

app/src/main/java/com/zulip/android/ZulipActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
import com.j256.ormlite.android.AndroidDatabaseResults;
4949

5050
public class ZulipActivity extends FragmentActivity implements
51-
MessageListFragment.Listener {
51+
MessageListFragment.Listener, NarrowListener {
5252

5353
ZulipApp app;
5454

@@ -416,6 +416,11 @@ public void doNarrow(NarrowFilter filter) {
416416
narrowedList.onReadyToDisplay(true);
417417
}
418418

419+
@Override
420+
public void onNarrow(NarrowFilter narrowFilter) {
421+
doNarrow(narrowFilter);
422+
}
423+
419424
@Override
420425
protected void onPostCreate(Bundle savedInstanceState) {
421426
super.onPostCreate(savedInstanceState);

0 commit comments

Comments
 (0)