set constants for min item height and call controls height

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2021-07-01 21:57:08 +02:00
parent 64d98aefb4
commit 98f8a29eae
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
3 changed files with 11 additions and 20 deletions

View File

@ -15,6 +15,7 @@ import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.drawee.view.SimpleDraweeView;
import com.nextcloud.talk.R; import com.nextcloud.talk.R;
import com.nextcloud.talk.controllers.CallController;
import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.DisplayUtils;
import org.webrtc.MediaStream; import org.webrtc.MediaStream;
@ -28,12 +29,12 @@ import java.util.Map;
public class ParticipantsAdapter extends BaseAdapter { public class ParticipantsAdapter extends BaseAdapter {
private static final String TAG = "ParticipantsAdapter"; private static final String TAG = "ParticipantsAdapter";
private static final int ITEM_MIN_HEIGHT = 500;
private final Context mContext; private final Context mContext;
private final ArrayList<ParticipantDisplayItem> participantDisplayItems; private final ArrayList<ParticipantDisplayItem> participantDisplayItems;
private final RelativeLayout gridViewWrapper; private final RelativeLayout gridViewWrapper;
private final LinearLayout callInfosLinearLayout; private final LinearLayout callInfosLinearLayout;
private final LinearLayout callControlsLinearLayout;
private final int columns; private final int columns;
private final boolean isVoiceOnlyCall; private final boolean isVoiceOnlyCall;
@ -41,13 +42,11 @@ public class ParticipantsAdapter extends BaseAdapter {
Map<String, ParticipantDisplayItem> participantDisplayItems, Map<String, ParticipantDisplayItem> participantDisplayItems,
RelativeLayout gridViewWrapper, RelativeLayout gridViewWrapper,
LinearLayout callInfosLinearLayout, LinearLayout callInfosLinearLayout,
LinearLayout callControlsLinearLayout,
int columns, int columns,
boolean isVoiceOnlyCall) { boolean isVoiceOnlyCall) {
this.mContext = mContext; this.mContext = mContext;
this.gridViewWrapper = gridViewWrapper; this.gridViewWrapper = gridViewWrapper;
this.callInfosLinearLayout = callInfosLinearLayout; this.callInfosLinearLayout = callInfosLinearLayout;
this.callControlsLinearLayout = callControlsLinearLayout;
this.columns = columns; this.columns = columns;
this.isVoiceOnlyCall = isVoiceOnlyCall; this.isVoiceOnlyCall = isVoiceOnlyCall;
@ -143,14 +142,14 @@ public class ParticipantsAdapter extends BaseAdapter {
if (callInfosLinearLayout.getVisibility() == View.VISIBLE && isVoiceOnlyCall) { if (callInfosLinearLayout.getVisibility() == View.VISIBLE && isVoiceOnlyCall) {
headerHeight = callInfosLinearLayout.getHeight(); headerHeight = callInfosLinearLayout.getHeight();
} }
if (callControlsLinearLayout.getVisibility() == View.VISIBLE && isVoiceOnlyCall) { if (isVoiceOnlyCall) {
callControlsHeight = callControlsLinearLayout.getHeight(); callControlsHeight = CallController.CALL_CONTROLS_HEIGHT;
} }
int itemHeight = (gridViewWrapper.getHeight() - headerHeight - callControlsHeight) / getRowsCount(getCount()); int itemHeight = (gridViewWrapper.getHeight() - headerHeight - callControlsHeight) / getRowsCount(getCount());
// if (itemHeight < 9000) { if (itemHeight < ITEM_MIN_HEIGHT) {
// itemHeight = 9000; itemHeight = ITEM_MIN_HEIGHT;
// } }
return itemHeight + 10; return itemHeight;
} }
private int getRowsCount(int items) { private int getRowsCount(int items) {

View File

@ -163,6 +163,8 @@ public class CallController extends BaseController {
private static final String TAG = "CallController"; private static final String TAG = "CallController";
public static final int CALL_CONTROLS_HEIGHT = 300;
private static final String[] PERMISSIONS_CALL = { private static final String[] PERMISSIONS_CALL = {
android.Manifest.permission.CAMERA, android.Manifest.permission.CAMERA,
android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.RECORD_AUDIO,
@ -486,7 +488,7 @@ public class CallController extends BaseController {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT); ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.callInfosLinearLayout); params.addRule(RelativeLayout.BELOW, R.id.callInfosLinearLayout);
params.setMargins(0,0,0,400); params.setMargins(0,0,0, CALL_CONTROLS_HEIGHT);
gridView.setLayoutParams(params); gridView.setLayoutParams(params);
} else { } else {
callControlEnableSpeaker.setVisibility(View.GONE); callControlEnableSpeaker.setVisibility(View.GONE);
@ -562,20 +564,11 @@ public class CallController extends BaseController {
} }
}); });
LinearLayout callControlsLinearLayout = controllerCallLayout.findViewById(R.id.callControlsLinearLayout);
callControlsLinearLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
callControlsLinearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
participantsAdapter = new ParticipantsAdapter( participantsAdapter = new ParticipantsAdapter(
this.getActivity(), this.getActivity(),
participantDisplayItems, participantDisplayItems,
gridViewWrapper, gridViewWrapper,
callInfosLinearLayout, callInfosLinearLayout,
callControlsLinearLayout,
columns, columns,
isVoiceOnlyCall); isVoiceOnlyCall);
gridView.setAdapter(participantsAdapter); gridView.setAdapter(participantsAdapter);

View File

@ -53,7 +53,6 @@
android:stretchMode="columnWidth" android:stretchMode="columnWidth"
android:numColumns="2" android:numColumns="2"
android:scrollbars="vertical" android:scrollbars="vertical"
android:background="#fff000"
/> />
<FrameLayout <FrameLayout