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

Commit 55c0d32

Browse files
committed
Adds an arrow in front of a expandable stream to expand and contract that stream.
1 parent dbc27ba commit 55c0d32

File tree

4 files changed

+86
-34
lines changed

4 files changed

+86
-34
lines changed

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import android.view.View;
5757
import android.view.ViewPropertyAnimator;
5858
import android.view.WindowManager;
59+
import android.view.animation.AccelerateDecelerateInterpolator;
5960
import android.view.animation.Interpolator;
6061
import android.view.inputmethod.InputMethodManager;
6162
import android.widget.AdapterView;
@@ -210,6 +211,8 @@ public void onReceive(Context contenxt, Intent intent) {
210211
private ImageView ivSearchStreamCancel;
211212
private ListView peopleDrawer;
212213
private Toast toast;
214+
private boolean expanded_stream = false;
215+
213216
//
214217
private String streamSearchFilterKeyword = "";
215218
private SimpleCursorAdapter.ViewBinder peopleBinder = new SimpleCursorAdapter.ViewBinder() {
@@ -1234,10 +1237,22 @@ public boolean onGroupClick(ExpandableListView expandableListView, View view, in
12341237
String streamName = ((TextView) view.findViewById(R.id.name)).getText().toString();
12351238
doNarrowToLastRead(streamName);
12361239
drawerLayout.openDrawer(GravityCompat.START);
1240+
ImageView imageView = (ImageView) view.findViewById(R.id.stream_expand_arrow);
1241+
float deg = (imageView.getRotation() == 180F) ? 0F : 180F;
1242+
imageView.animate().rotation(deg).setInterpolator(new AccelerateDecelerateInterpolator());
1243+
12371244
if (previousClick != -1 && expandableListView.getCount() > previousClick) {
12381245
expandableListView.collapseGroup(previousClick);
12391246
}
1240-
expandableListView.expandGroup(position);
1247+
1248+
if ((previousClick == position) && expanded_stream) {
1249+
expandableListView.collapseGroup(position);
1250+
expanded_stream = false;
1251+
} else {
1252+
expandableListView.expandGroup(position);
1253+
expanded_stream = true;
1254+
}
1255+
12411256
previousClick = position;
12421257
onNarrowFillSendBoxStream(streamName, "", false);
12431258
return true;

app/src/main/java/com/zulip/android/util/StreamSpan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public StreamSpan(String streamId, int color) {
3030
@Override
3131
public void onClick(View widget) {
3232
Context context = widget.getContext().getApplicationContext();
33-
33+
3434
// get stream name from streamId string
3535
String streamName = null;
3636
if (StringUtils.isNumeric(streamId)) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24.0"
5+
android:viewportHeight="24.0">
6+
<path
7+
android:fillColor="#5b5656"
8+
android:pathData="M7.41,7.84L12,12.42l4.59,-4.58L18,9.25l-6,6 -6,-6z"/>
9+
</vector>
Lines changed: 60 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,71 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:layout_height="48dp"
55
android:orientation="horizontal">
66

7-
<View
8-
android:id="@+id/stream_dot"
9-
android:layout_width="16dp"
10-
android:layout_height="16dp"
11-
android:layout_centerVertical="true"
7+
<LinearLayout
8+
android:layout_width="0dp"
9+
android:layout_height="wrap_content"
1210
android:layout_gravity="center_vertical"
13-
android:layout_marginLeft="16dp"
14-
android:background="@drawable/dot" />
11+
android:layout_weight="1">
1512

16-
<TextView
17-
android:id="@+id/unread_group"
18-
android:layout_width="wrap_content"
19-
android:layout_height="wrap_content"
20-
android:layout_alignParentEnd="true"
21-
android:layout_alignParentRight="true"
22-
android:layout_alignTop="@+id/stream_dot"
23-
android:layout_gravity="center_vertical|end"
24-
android:layout_marginEnd="30dp"
25-
android:layout_marginRight="30dp"
26-
android:text="1"
27-
android:visibility="gone" />
13+
<View
14+
android:id="@+id/stream_dot"
15+
android:layout_width="16dp"
16+
android:layout_height="16dp"
17+
android:layout_gravity="center_vertical"
18+
android:layout_marginLeft="16dp"
19+
android:background="@drawable/dot" />
20+
21+
<TextView
22+
android:id="@+id/unread_group"
23+
android:layout_width="0dp"
24+
android:layout_height="wrap_content"
25+
android:layout_alignParentEnd="true"
26+
android:layout_alignParentRight="true"
27+
android:layout_alignTop="@+id/stream_dot"
28+
android:layout_gravity="center_vertical|end"
29+
android:layout_marginEnd="30dp"
30+
android:layout_marginRight="30dp"
31+
android:layout_weight="1"
32+
android:text="1"
33+
android:visibility="gone" />
2834

29-
<TextView
30-
android:id="@+id/name"
35+
<TextView
36+
android:id="@+id/name"
37+
android:layout_width="wrap_content"
38+
android:layout_height="wrap_content"
39+
android:layout_gravity="center_vertical"
40+
android:layout_marginLeft="20dp"
41+
android:layout_marginStart="20dp"
42+
android:gravity="center_vertical"
43+
android:text="MyStream"
44+
android:textColor="@color/colorTextPrimary"
45+
android:textSize="18sp" />
46+
</LinearLayout>
47+
48+
<ImageView
3149
android:layout_width="wrap_content"
3250
android:layout_height="wrap_content"
33-
android:layout_centerVertical="true"
34-
android:layout_gravity="center_vertical"
35-
android:layout_marginLeft="20dp"
36-
android:layout_marginStart="20dp"
37-
android:layout_toEndOf="@+id/stream_dot"
38-
android:layout_toRightOf="@+id/stream_dot"
51+
android:layout_marginTop="7dp"
52+
android:id="@+id/stream_expand_arrow"
3953
android:padding="5dp"
40-
android:text="MyStream"
41-
android:textColor="@color/colorTextPrimary"
42-
android:textSize="18sp" />
43-
</RelativeLayout>
54+
android:layout_marginRight="5dp"
55+
android:src="@drawable/ic_keyboard_arrow_down_black_24dp" />
56+
<!--<LinearLayout-->
57+
<!--android:layout_width="wrap_content"-->
58+
<!--android:layout_height="wrap_content">-->
59+
60+
<!--<TextView-->
61+
<!--android:id="@+id/badge_notification_1"-->
62+
<!--android:layout_width="wrap_content"-->
63+
<!--android:layout_height="wrap_content"-->
64+
<!--android:background="@drawable/badge_item_count"-->
65+
<!--android:text="27"-->
66+
<!--android:layout_marginTop="12dp"-->
67+
<!--android:textColor="#FFF"-->
68+
<!--android:textSize="14sp"-->
69+
<!--android:textStyle="bold" />-->
70+
<!--</LinearLayout>-->
71+
</LinearLayout>

0 commit comments

Comments
 (0)