diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Pen.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Pen.java new file mode 100644 index 0000000..17e335e --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Pen.java @@ -0,0 +1,36 @@ +package org.ntlab.acanthus_client.entities; + +//----------------------------------------------------------------- +// +public class Pen { + private Integer penType; + private Integer color; + private Integer thickness; + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // + public Pen(Integer penType, Integer color, Integer thickness) { + this.penType = penType; + this.color = color; + this.thickness = thickness; + } + //----------------------------------------------------------------- + // getter + public Integer getPenType() { + return this.penType; + } + + public Integer getColor() { + return this.getColor(); + } + + public Integer getThickness() { + return this.thickness; + } + //----------------------------------------------------------------- + // setter + + //----------------------------------------------------------------- + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java index 030ed32..c100d3d 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InviteConnectionModel.java @@ -1,7 +1,60 @@ package org.ntlab.acanthus_client.views.paint; +import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.resources.gallery.InvitesRest; +import org.ntlab.acanthus_client.resources.gallery.StrokesRest; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; +import retrofit2.converter.scalars.ScalarsConverterFactory; + //----------------------------------------------------------------- // 招待関係通信 public class InviteConnectionModel { + private Retrofit retrofit; + private Acanthus acanthus; + + //----------------------------------------------------------------- + // + public InviteConnectionModel() { + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(ScalarsConverterFactory.create()) + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // init + public void init(Acanthus acanthus) { + this.acanthus = acanthus; + } + + //----------------------------------------------------------------- + // 新しい編集者の追加(POST) + public void inviteNewEditor(Integer invitedUid) { + final InvitesRest invitesRest = retrofit.create(InvitesRest.class); + + //----------------------------------------------------------------- + // 招待リクエストを送るAPI + Call call = invitesRest.addInvite( + acanthus.getAid(), acanthus.getPreferenceUid().toString(), invitedUid.toString(), acanthus.getPreferenceToken()); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + //----------------------------------------------------------------- } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java index bcd5c55..d173367 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java @@ -8,14 +8,19 @@ import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.databinding.ActivityPaintBinding; //----------------------------------------------------------------- // 描画ページ public class PaintActivity extends AppCompatActivity { private PaintCanvas paintCanvas; + private ActivityPaintBinding binding; + private PaintViewModel paintViewModel; + //----------------------------------------------------------------- + //----------------------------------------------------------------- @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -24,13 +29,20 @@ //----------------------------------------------------------------- // 描画全体のクリア - public void onClear(View view) { + public void onClickClear(View view) { paintCanvas.clearCanvas(); } //----------------------------------------------------------------- - //----------------------------------------------------------------- // + public void onClickInvite(View view) { + Integer dummy1Id = 2; + paintViewModel.inviteNewUserRequest(dummy1Id); + } + + //----------------------------------------------------------------- + //----------------------------------------------------------------- + // init private void init() { setContentView(R.layout.activity_paint); Acanthus acanthus = (Acanthus) getApplication(); @@ -43,6 +55,7 @@ //----------------------------------------------------------------- // private void initView() { + binding = ActivityPaintBinding.inflate(getLayoutInflater()); paintCanvas = (PaintCanvas) findViewById(R.id.myCanvas); paintCanvas.setPaintViewModel(paintViewModel); } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java index 5a89afe..54a3d4a 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java @@ -42,6 +42,7 @@ path = new Path(); // 図形描画 paint = new Paint();//筆の種類 + paint.setColor(Color.RED);//色の指定 paint.setStyle(Paint.Style.STROKE);//線をひく paint.setStrokeWidth(20);//幅 diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java index 6dcc98b..9a6ec32 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintModelContainer.java @@ -4,17 +4,24 @@ // 各種モデルの保持者 public class PaintModelContainer { private PaintConnectionModel paintConnectionModel; + private InviteConnectionModel inviteConnectionModel; //----------------------------------------------------------------- //----------------------------------------------------------------- //  - public PaintModelContainer(){ + public PaintModelContainer() { this.paintConnectionModel = new PaintConnectionModel(); + this.inviteConnectionModel = new InviteConnectionModel(); } + //----------------------------------------------------------------- // getter public PaintConnectionModel getPaintConnectionModel() { return this.paintConnectionModel; } + + public InviteConnectionModel getInviteConnectionModel() { + return this.inviteConnectionModel; + } //----------------------------------------------------------------- } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java index a2da854..7dd65d2 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintViewModel.java @@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel; +import org.jetbrains.annotations.NotNull; import org.ntlab.acanthus_client.Acanthus; @@ -21,14 +22,15 @@ //----------------------------------------------------------------- //----------------------------------------------------------------- - // + // init public void init(Acanthus acanthus) { paintModelContainer.getPaintConnectionModel().init(acanthus); + paintModelContainer.getInviteConnectionModel().init(acanthus); } //----------------------------------------------------------------- // 描画APIの通信リクエスト - public void drawStrokeRequest(MotionEvent motionEvent) { + public void drawStrokeRequest(@NotNull MotionEvent motionEvent) { float x = motionEvent.getX(); float y = motionEvent.getY(); @@ -44,6 +46,12 @@ } //----------------------------------------------------------------- + // 招待APIの通信リクエスト + public void inviteNewUserRequest(Integer invitedUid) { + paintModelContainer.getInviteConnectionModel().inviteNewEditor(invitedUid); + } + + //----------------------------------------------------------------- // 一定間隔でサーバー上の筆跡を取得する(GET) public void startObservationOfChangedStroke() { } diff --git a/app/src/main/res/layout/activity_paint.xml b/app/src/main/res/layout/activity_paint.xml index 1e36f75..8b6f4d7 100644 --- a/app/src/main/res/layout/activity_paint.xml +++ b/app/src/main/res/layout/activity_paint.xml @@ -15,12 +15,26 @@ android:layout_weight="1" />