diff --git a/app/src/main/java/com/zulip/android/activities/ExpandableStreamDrawerAdapter.java b/app/src/main/java/com/zulip/android/activities/ExpandableStreamDrawerAdapter.java index 663e285fb..aeba6bcb7 100644 --- a/app/src/main/java/com/zulip/android/activities/ExpandableStreamDrawerAdapter.java +++ b/app/src/main/java/com/zulip/android/activities/ExpandableStreamDrawerAdapter.java @@ -40,12 +40,19 @@ public Cursor getChildrenCursor(Cursor groupCursor) { ZLog.logException(e); } MatrixCursor matrixCursor = new MatrixCursor(new String[]{"subject", "_id"}); - - for (String[] result : results) { - try { - matrixCursor.addRow(new String[]{result[0], String.valueOf(groupCursor.getInt(0))}); - } catch (Exception e) { - ZLog.logException(e); + if (results.size() == 0){ + try { + matrixCursor.addRow(new String[]{"(no topic)", String.valueOf(0)}); + } catch (Exception e) { + ZLog.logException(e); + } + }else{ + for (String[] result: results){ + try { + matrixCursor.addRow(new String[]{result[0], String.valueOf(0)}); + } catch (Exception e) { + ZLog.logException(e); + } } } return matrixCursor; diff --git a/app/src/main/java/com/zulip/android/activities/ZulipActivity.java b/app/src/main/java/com/zulip/android/activities/ZulipActivity.java index 71ed7b068..027314a2c 100644 --- a/app/src/main/java/com/zulip/android/activities/ZulipActivity.java +++ b/app/src/main/java/com/zulip/android/activities/ZulipActivity.java @@ -56,6 +56,7 @@ import android.view.View; import android.view.ViewPropertyAnimator; import android.view.WindowManager; +import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.Interpolator; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; @@ -211,6 +212,8 @@ public void onReceive(Context contenxt, Intent intent) { private ImageView ivSearchStreamCancel; private ListView peopleDrawer; private Toast toast; + private boolean expanded_stream = false; + // private String streamSearchFilterKeyword = ""; private SimpleCursorAdapter.ViewBinder peopleBinder = new SimpleCursorAdapter.ViewBinder() { @@ -1235,10 +1238,22 @@ public boolean onGroupClick(ExpandableListView expandableListView, View view, in String streamName = ((TextView) view.findViewById(R.id.name)).getText().toString(); doNarrowToLastRead(streamName); drawerLayout.openDrawer(GravityCompat.START); + ImageView imageView = (ImageView) view.findViewById(R.id.stream_expand_arrow); + float deg = (imageView.getRotation() == 180F) ? 0F : 180F; + imageView.animate().rotation(deg).setInterpolator(new AccelerateDecelerateInterpolator()); + if (previousClick != -1 && expandableListView.getCount() > previousClick) { expandableListView.collapseGroup(previousClick); } - expandableListView.expandGroup(position); + + if ((previousClick == position) && expanded_stream) { + expandableListView.collapseGroup(position); + expanded_stream = false; + } else { + expandableListView.expandGroup(position); + expanded_stream = true; + } + previousClick = position; onNarrowFillSendBoxStream(streamName, "", false); return true; diff --git a/app/src/main/java/com/zulip/android/util/StreamSpan.java b/app/src/main/java/com/zulip/android/util/StreamSpan.java index f3ab36658..4764d2446 100644 --- a/app/src/main/java/com/zulip/android/util/StreamSpan.java +++ b/app/src/main/java/com/zulip/android/util/StreamSpan.java @@ -30,7 +30,6 @@ public StreamSpan(String streamId, int color) { @Override public void onClick(View widget) { Context context = widget.getContext().getApplicationContext(); - // get stream name from streamId string String streamName = null; if (StringUtils.isNumeric(streamId)) { diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml new file mode 100644 index 000000000..fcc35f04f --- /dev/null +++ b/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/stream_tile_new.xml b/app/src/main/res/layout/stream_tile_new.xml index 7c1d5ffb1..59ffb31df 100644 --- a/app/src/main/res/layout/stream_tile_new.xml +++ b/app/src/main/res/layout/stream_tile_new.xml @@ -1,43 +1,56 @@ - - + android:layout_weight="1"> - + - + + + + + - \ No newline at end of file + android:src="@drawable/ic_keyboard_arrow_down_black_24dp" /> + \ No newline at end of file