diff --git a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java index f2fa84a..97346a9 100644 --- a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java @@ -51,6 +51,11 @@ import java.util.List; import java.util.Map; +import android.util.TypedValue; + +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintSet; + public class MainActivity extends AppCompatActivity implements NotificationListener { private EditText editMessage; @@ -62,6 +67,9 @@ private String[] words = {"ひまnow", "あそぼ!", "そろそろ会いたない〜?", "勉強なう", "電話しよ~", "お風呂入ってくる~", "今暇だよー!", "いそがしい~!!"}; private Button openDialogButton; private Map userViews = new HashMap<>(); + private int[] marginTopInDp = {90,100,300,450,480,310,1000}; + private int[] marginStartInDp = {0,250,0,90,200,280,1000}; + private int i = 0; ActivityViewModel activityViewModel; UserViewModel userViewModel; @@ -356,10 +364,16 @@ // comment.setText(ac.getText()); //} +// int[] marginTopInDp = {100,100,90,90,90,90}; +// int[] marginStartInDp = {200,200,0,0,0,0}; + ///natty ユーザごとにコメントの更新をする LinearLayout messageList = findViewById(R.id.messageList); + ConstraintLayout layout = findViewById(R.id.main); + i = 0; for (String friendId : friends) { + // String friendId = entry.getUserId(); // Activity activity = entry; @@ -368,24 +382,34 @@ if (userView == null) { + // 新しいユーザなので、アイコン+コメントを作成 FriendIconView container = new FriendIconView(this); container.setPadding(16, 16, 16, 16); + container.setId(View.generateViewId()); - // ユーザのアイコン(固定) - ShapeableImageView iconView = new ShapeableImageView(this); - iconView.setLayoutParams(new LinearLayout.LayoutParams(100, 100)); - iconView.setScaleType(ImageView.ScaleType.CENTER_CROP); - iconView.setStrokeColor(ContextCompat.getColorStateList(this, R.color.red)); - iconView.setStrokeWidth(2f); - iconView.setShapeAppearanceModel( - iconView.getShapeAppearanceModel().toBuilder() - .setAllCornerSizes(50) // 丸く - .build() + ConstraintLayout.LayoutParams params = new ConstraintLayout.LayoutParams( + ConstraintLayout.LayoutParams.WRAP_CONTENT, + ConstraintLayout.LayoutParams.WRAP_CONTENT ); + container.setLayoutParams(params); - // ユーザIDに応じてアイコンリソースを決定(仮にハードコード or マッピング) - iconView.setImageResource(getUserIconResource(friendId)); // ←ここがポイント + layout.addView(container); + +// // ユーザのアイコン(固定) +// ShapeableImageView iconView = new ShapeableImageView(this); +// iconView.setLayoutParams(new LinearLayout.LayoutParams(100, 100)); +// iconView.setScaleType(ImageView.ScaleType.CENTER_CROP); +// iconView.setStrokeColor(ContextCompat.getColorStateList(this, R.color.red)); +// iconView.setStrokeWidth(2f); +// iconView.setShapeAppearanceModel( +// iconView.getShapeAppearanceModel().toBuilder() +// .setAllCornerSizes(50) // 丸く +// .build() +// ); +// +// // ユーザIDに応じてアイコンリソースを決定(仮にハードコード or マッピング) +// iconView.setImageResource(getUserIconResource(friendId)); // ←ここがポイント // コメント部分 // TextView commentView = new TextView(this); @@ -399,7 +423,8 @@ // Mapに登録、画面に追加 userViews.put(friendId, container); - messageList.addView(container); + userView = container; + //messageList.addView(container); // TODO: CHANGE activitiesLiveData.observeForever(container.getActivitiesObserver()); @@ -410,6 +435,28 @@ // commentView.setText(activity.getText()); // } } + + ConstraintSet set = new ConstraintSet(); + set.clone(layout); + int marginTopInPx = (int) TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + marginTopInDp[i], + getResources().getDisplayMetrics() + ); + int marginStartInPx = (int) TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + marginStartInDp[i], + getResources().getDisplayMetrics() + ); + + set.connect(userView.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, marginTopInPx); + set.connect(userView.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, marginStartInPx); + + set.applyTo(layout); + + if(i<6){ + i++; + } } }