|
@@ -35,7 +35,9 @@ import android.view.ViewGroup;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.CompoundButton;
|
|
|
import android.widget.ImageView;
|
|
|
+import android.widget.ListAdapter;
|
|
|
import android.widget.ListView;
|
|
|
+import android.widget.ScrollView;
|
|
|
import android.widget.Switch;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
@@ -447,11 +449,15 @@ public class ShareFileFragment extends Fragment
|
|
|
noShares.setVisibility(View.GONE);
|
|
|
usersList.setVisibility(View.VISIBLE);
|
|
|
usersList.setAdapter(mUserGroupsAdapter);
|
|
|
-
|
|
|
+ setListViewHeightBasedOnChildren(usersList);
|
|
|
} else {
|
|
|
noShares.setVisibility(View.VISIBLE);
|
|
|
usersList.setVisibility(View.GONE);
|
|
|
}
|
|
|
+
|
|
|
+ // Set Scroll to initial position
|
|
|
+ ScrollView scrollView = (ScrollView) getView().findViewById(R.id.shareScroll);
|
|
|
+ scrollView.scrollTo(0, 0);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -612,6 +618,28 @@ public class ShareFileFragment extends Fragment
|
|
|
return (AppCompatButton) getView().findViewById(R.id.shareViewLinkGetLinkButton);
|
|
|
}
|
|
|
|
|
|
+ public static void setListViewHeightBasedOnChildren(ListView listView) {
|
|
|
+ ListAdapter listAdapter = listView.getAdapter();
|
|
|
+ if (listAdapter == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.AT_MOST);
|
|
|
+ int totalHeight = 0;
|
|
|
+ View view = null;
|
|
|
+ for (int i = 0; i < listAdapter.getCount(); i++) {
|
|
|
+ view = listAdapter.getView(i, view, listView);
|
|
|
+ if (i == 0) {
|
|
|
+ view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
|
|
|
+ }
|
|
|
+ view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
|
|
|
+ totalHeight += view.getMeasuredHeight();
|
|
|
+ }
|
|
|
+ ViewGroup.LayoutParams params = listView.getLayoutParams();
|
|
|
+ params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
|
|
|
+ listView.setLayoutParams(params);
|
|
|
+ listView.requestLayout();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* This interface must be implemented by activities that contain this
|
|
|
* fragment to allow an interaction in this fragment to be communicated
|