diff --git a/.idea/misc.xml b/.idea/misc.xml index 8de8a6e..c59d7c2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,30 +3,34 @@ diff --git a/app/build.gradle b/app/build.gradle index ccb56ae..dd92557 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,6 +42,7 @@ implementation 'androidx.navigation:navigation-ui:2.3.5' implementation 'androidx.annotation:annotation:1.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java index f311050..fc77782 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Position.java @@ -2,7 +2,7 @@ //----------------------------------------------------------------- // ペン座標 -public class Position implements Comparable { +public class Position { private int i; private Float x; private Float y; @@ -31,15 +31,4 @@ //----------------------------------------------------------------- // - @Override - public int compareTo(Object o) { - if (o instanceof Position) { - if (i < ((Position) o).i) { - return -1; - } else if (i > ((Position) o).i) { - return 1; - } - } - return 0; - } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java b/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java index da661cb..1d97c24 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/Stroke.java @@ -1,6 +1,7 @@ package org.ntlab.acanthus_client.entities; import java.util.ArrayList; +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; @@ -12,7 +13,7 @@ private int pen; private int color; private int thickness; - private SortedSet positions = new TreeSet<>(); + private List positions = new ArrayList<>(); public int getStrokeNo() { return this.strokeNo; @@ -26,7 +27,7 @@ public int getThickness() { return this.thickness; } - public SortedSet getPositions() { + public List getPositions() { return this.positions; } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java index 2fb1662..899c755 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java +++ b/app/src/main/java/org/ntlab/acanthus_client/resources/gallery/StrokesRest.java @@ -45,7 +45,7 @@ // @FormUrlEncoded @POST("gallery/{aid}/pageMap/{pid}/layers/0/strokes/{strokeNo}/positions") - Call addPositions(@Field("positionNo") int i, @Path("aid") Integer aid, + Call addPositions(@Field("positionNo") int i, @Path("aid") Integer aid, @Path("pid") int pid, @Path("strokeNo") Integer strokeNo, @Field("x") double x, @Field("y") double y); @@ -63,4 +63,16 @@ // @GET("gallery/{aid}/images") Call> getPageUrls(@Path("aid") Integer aid); + + //----------------------------------------------------------------- + // + @GET("gallery/{aid}/pageMap/{pid}/image") + Call getLayers(@Path("aid") Integer aid, @Path("pid") Integer pid); + + //----------------------------------------------------------------- + // + @FormUrlEncoded + @POST("gallery/{aid}/pageMap/{pid}/image") + Call addImage(@Path("aid") Integer aid, @Path("pid") Integer pid, @Field("image") String image); + } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/MainActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/MainActivity.java index fc7e634..0697841 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/MainActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/MainActivity.java @@ -3,18 +3,28 @@ import android.content.Intent; import android.os.Bundle; import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.ImageView; +import android.widget.Toast; import com.google.android.material.bottomnavigation.BottomNavigationView; import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.ActivityMainBinding; +import org.ntlab.acanthus_client.views.main_menu_ui.mypage.MyPageFragment; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ShareCompat; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import androidx.navigation.NavController; import androidx.navigation.Navigation; import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; +import java.util.Random; + public class MainActivity extends AppCompatActivity { @@ -40,22 +50,47 @@ NavigationUI.setupWithNavController(binding.navView, navController); } - // ツールバーにIconを表示 + // ツールバーにbotton_nav_topを表示 @Override public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.botton_nav_icon, menu); + getMenuInflater().inflate(R.menu.botton_nav_top, menu); return true; } - // Iconを押したときMyPageに遷移させたい -// @Override -// public boolean onOptionsItemSelected(MenuItem item) { -// switch (item.getItemId()) { -// case R.id.icon: -// intent = new Intent(getApplication(), MyPageFragment.class); -// startActivity(intent); -// return true; -// } -// return super.onOptionsItemSelected(item); -// } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + // shareボタンの処理 + case R.id.editMenuShare: + ShareCompat.IntentBuilder builder + = ShareCompat.IntentBuilder.from(this); + String subject = "サブジェクト"; + String bodyText = "アプリ名とかストアページURLとか..."; + builder.setSubject(subject) /// 件名 + .setText(bodyText) /// 本文 + .setType("text/plain"); + Intent intent = builder.createChooserIntent(); + + /// 結果を受け取らずに起動 + builder.startChooser(); + return true; + + // Iconを押したときMyPageに遷移 + case R.id.icon: + String[] poptext = { "I LOVE JENKINS", "わけわからん", "そうだ、新田研に行こう。", "大吉", "中吉", "吉", "凶" }; + Random random = new Random(); + Toast myToast = Toast.makeText( + getApplicationContext(), + poptext[random.nextInt(7)], + Toast.LENGTH_SHORT + ); + myToast.show(); + return true; + + default: + return super.onOptionsItemSelected(item); + + } + } } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java index fd13098..242a3b8 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java @@ -4,7 +4,6 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -18,10 +17,8 @@ import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.AnimationJson; import org.ntlab.acanthus_client.views.animation_detail.AnimationDetailActivity; -import org.ntlab.acanthus_client.views.paint.PaintCanvas; -import org.ntlab.acanthus_client.views.paint.PaintToolBar; -import org.ntlab.acanthus_client.views.paint.PaintViewModel; import java.util.HashMap; import java.util.Timer; @@ -62,6 +59,10 @@ //animationCanvas = this.findViewById(R.id.animationMyCanvas); init(); + //intentでHomeFragmentから渡されたanimation情報を取得 + Intent intent = getIntent(); + AnimationJson animationJson = (AnimationJson) intent.getSerializableExtra("AnimationJsonData"); + //wecView初期設定 webView = this.findViewById(R.id.animationWebview); webView .getSettings().setLoadWithOverviewMode(true); @@ -126,6 +127,7 @@ buttonDetail.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(AnimationActivity.this, AnimationDetailActivity.class); + intent.putExtra("AnimationJsonData", animationJson); startActivity(intent); } }); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java index 5e8eb6e..64501ea 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationViewModel.java @@ -25,7 +25,7 @@ private Acanthus acanthus; private PaintModelContainer paintModelContainer; private AnimationConnectionModel animationConnectionModel; - private MutableLiveData> pages = new MutableLiveData<>();; + private MutableLiveData> pages = new MutableLiveData<>(); public void init(Acanthus acanthus) { diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/button/AlphaButton.java b/app/src/main/java/org/ntlab/acanthus_client/views/button/AlphaButton.java new file mode 100644 index 0000000..33c146b --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/button/AlphaButton.java @@ -0,0 +1,27 @@ +package org.ntlab.acanthus_client.views.button; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.Button; +import androidx.appcompat.widget.AppCompatButton; + +/*** 半透明になるエフェクトのボタン ***/ +public class AlphaButton extends AppCompatButton { + public AlphaButton(Context context) { + super(context); + } + + public AlphaButton(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void setPressed(boolean pressed) { + if(pressed){ + this.setAlpha(0.75f); + }else{ + this.setAlpha(1.0f); + } + super.setPressed(pressed); + } +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/button/PushButton.java b/app/src/main/java/org/ntlab/acanthus_client/views/button/PushButton.java new file mode 100644 index 0000000..afd1a03 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/button/PushButton.java @@ -0,0 +1,30 @@ +package org.ntlab.acanthus_client.views.button; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.Button; +import androidx.appcompat.widget.AppCompatButton; + +/*** プッシュするエフェクトのボタン ***/ +public class PushButton extends AppCompatButton { + public PushButton(Context context) { + super(context); + } + + public PushButton(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void setPressed(boolean pressed) { + if(pressed){ + this.setScaleY(0.85f); + this.setScaleX(0.85f); + }else{ + this.setScaleY(1.0f); + this.setScaleX(1.0f); + } + super.setPressed(pressed); + } + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java index a564b35..7bdc090 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java @@ -29,6 +29,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import java.util.ArrayList; import java.util.Collection; @@ -40,7 +41,7 @@ import java.util.Comparator; -public class EditFragment extends Fragment { +public class EditFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { private EditViewModel editViewModel; private FragmentEditBinding binding; @@ -54,6 +55,8 @@ private String AnimationName; private String AnimationLastUpDate; + private SwipeRefreshLayout mSwipeRefreshLayout; + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { editViewModel = @@ -86,6 +89,9 @@ ListView listView = (ListView) getActivity().findViewById(R.id.list_view); + // SwipeRefreshLayoutを作成 + createSwipeRefreshLayout(); + editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { //listViewの表示をしている @@ -183,5 +189,18 @@ startActivity(intent); } + // 引っ張って更新するSwipeRefreshLayoutを作成 + public void createSwipeRefreshLayout(){ + mSwipeRefreshLayout = (SwipeRefreshLayout) getActivity().findViewById(R.id.refresh_edit); + // 色指定 + mSwipeRefreshLayout.setColorScheme(R.color.theme_color,R.color.blue,R.color.green); + mSwipeRefreshLayout.setOnRefreshListener(this); + } + // ひっぱり更新の処理 + @Override + public void onRefresh() { + + mSwipeRefreshLayout.setRefreshing(false); + } } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java index 0553b85..2f38308 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/home/HomeFragment.java @@ -25,6 +25,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import java.io.IOException; import java.util.ArrayList; @@ -32,11 +33,13 @@ import java.util.Collections; import java.util.Iterator; -public class HomeFragment extends Fragment { +public class HomeFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { private HomeViewModel homeViewModel; private FragmentHomeBinding binding; + private SwipeRefreshLayout mSwipeRefreshLayout; + @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -70,7 +73,13 @@ Integer uid = 1; String token = "abc0"; + View header = (View)getLayoutInflater().inflate(R.layout.animation_home_header,null); + ListView listView = (ListView) getActivity().findViewById(R.id.animation_view); + listView.addHeaderView(header); + + // SwipeRefreshLayoutを作成 + createSwipeRefreshLayout(); homeViewModel.updateGallery(acanthus); @@ -103,14 +112,14 @@ public void onItemClick(AdapterView adapterView, View view, int position, long id) { // homeViewModel.setCurrentAnimation(animationJsonSortList.get(position).getAid(), acanthus); // transitionAnimationActivity(animationJsonSortList.get(position)); - try { - homeViewModel.setCurrentAnimation(animationJsonSortList.get(position).getAid(), acanthus); - transitionAnimationActivity(animationJsonSortList.get(position)); - } catch (IOException e) { - e.printStackTrace(); + if (position != 0) { + try { + homeViewModel.setCurrentAnimation(animationJsonSortList.get(position-1).getAid(), acanthus); + transitionAnimationActivity(animationJsonSortList.get(position-1)); + } catch (IOException e) { + e.printStackTrace(); + } } - - } }); } @@ -130,4 +139,19 @@ intent.putExtra("AnimationJsonData", animationJson); startActivity(intent); } + + // 引っ張って更新するSwipeRefreshLayoutを作成 + public void createSwipeRefreshLayout(){ + mSwipeRefreshLayout = (SwipeRefreshLayout) getActivity().findViewById(R.id.refresh); + // 色指定 + mSwipeRefreshLayout.setColorScheme(R.color.theme_color,R.color.blue,R.color.green); + mSwipeRefreshLayout.setOnRefreshListener(this); + } + + // ひっぱり更新の処理 + @Override + public void onRefresh() { + + mSwipeRefreshLayout.setRefreshing(false); + } } \ No newline at end of file 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 f26c8dc..ff9c115 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 @@ -17,6 +17,7 @@ import org.ntlab.acanthus_client.entities.Stroke; import java.io.ByteArrayOutputStream; +import java.util.ArrayList; import java.util.Base64; import java.util.Collection; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -38,6 +39,11 @@ private Paint clonepaint; //----------------------------------------------------------------- + private Paint latestpaint; + private ArrayList paints = new ArrayList<>(); + private ArrayList paths = new ArrayList<>(); + private ArrayList clonepaints = new ArrayList<>(); + private ArrayList clonepaths = new ArrayList<>(); private PaintViewModel paintViewModel; //----------------------------------------------------------------- @@ -60,10 +66,17 @@ super(context, attrs); pen = new Pen(255, 0, 0, 0, 20); - - //----------------------------------------------------------------- + //pen =new Pen(Color.BLACK,20);//新しくPenクラスを作り色と幅の値を設定 path = new Path(); // 図形描画 + paths.add(path); + /// + clonepath = new Path(); // 図形描画 paint = new Paint();//筆の種類 + paints.add(paint); + /// + clonepaint = new Paint();//筆の種類 + latestpaint = new Paint();//筆の種類 + paint.setColor(Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue()));//色の指定 paint.setColor(Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue()));//色の指定 paint.setStyle(Paint.Style.STROKE);//線をひく paint.setStrokeWidth(pen.getThickness());//幅 @@ -101,8 +114,24 @@ @Override protected void onDraw(Canvas canvas) { super.onDraw(curCanvas); + canvas.drawColor(0xFFFFFFFF); + paint.setColor(Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue())); paint.setColor(Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue())); paint.setStrokeWidth(pen.getThickness()); + for (int i = 0; i < clonepaths.toArray().length; i++) { + try { + canvas.drawPath(paths.get(i), paints.get(i)); + curCanvas.drawPath(paths.get(i), paints.get(i)); + } catch (IndexOutOfBoundsException ex) { + + } + try { + canvas.drawPath(clonepaths.get(i), clonepaints.get(i)); + curCanvas.drawPath(clonepaths.get(i), clonepaints.get(i)); + } catch (IndexOutOfBoundsException ex) { + + } + } canvas.drawPath(path, paint); canvas.drawPath(clonepath, clonepaint); @@ -125,7 +154,7 @@ Log.d("motion", "+++++++++++++++++++++++++++++++++++++++down======================================================"); onTouched(x, y); paintViewModel.setmStrokeNo(); - paintViewModel.addLocalStrokeRequest(x, y); + paintViewModel.addLocalStrokeRequest(x, y, Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue()), pen.getThickness()); //paintViewModel.addPositionLocal(x, y); break; @@ -138,6 +167,12 @@ case MotionEvent.ACTION_UP: Log.d("motion", "=====================================up======================================================"); paintViewModel.addPositionRequestFirst(); + path = new Path(); + paint = new Paint(); + paint.setColor(Color.argb(pen.getAlpha(), pen.getRed(), pen.getGreen(), pen.getBlue()));//色の指定 + paint.setStyle(Paint.Style.STROKE);//線をひく + paths.add(path); + paints.add(paint); break; } @@ -149,7 +184,11 @@ // 描画クリア public void clearCanvas() { paintViewModel.deleteStrokesRequest(); + paths.clear(); path.reset(); + paints.clear(); + clonepaths.clear(); + clonepaints.clear(); clonepath.reset(); invalidate(); } @@ -179,7 +218,7 @@ //----------------------------------------------------------------- // 押した瞬間の処理 private void onTouched2(float x, float y) { -// path2 = new Path(); + //path2 = new Path(); clonepath.moveTo(x, y); invalidate(); } @@ -199,6 +238,8 @@ image.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); String encode = Base64.getEncoder().encodeToString(byteArray); + paintViewModel.setImage(encode); + Log.d("motion", "=====================================up======================================================"); Log.d("motion", "=====================================up======================================================"); int stringcnt = 0; @@ -243,6 +284,13 @@ clonepath.reset(); invalidate(); for (Stroke s : paintViewModel.getStroke().getValue()) { + clonepaint = new Paint(); + clonepath = new Path(); + clonepaint.setColor(Color.argb(Color.alpha(s.getColor()), Color.red(s.getColor()), Color.green(s.getColor()), Color.blue(s.getColor())));//色の指定 + clonepaint.setStrokeWidth(s.getThickness()); + clonepaint.setStyle(Paint.Style.STROKE);//線をひく + clonepaints.add(clonepaint); + clonepaths.add(clonepath); for (Position p : s.getPositions()) { if (cnt == 0) { onTouched2(p.getX(), p.getY()); 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 2372a45..0814924 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 @@ -32,8 +32,11 @@ private MutableLiveData mStrokeNo = new MutableLiveData(0); private MutableLiveData> mlatestPosition = new MutableLiveData<>(); + private MutableLiveData> mlatestPosition = new MutableLiveData<>(); private MutableLiveData> mStrokes = new MutableLiveData<>(); private MutableLiveData> mPreStroke = new MutableLiveData<>(); + private MutableLiveData> mPages = new MutableLiveData<>(new HashMap<>()); + private int strokeNo = 0; private ScheduledThreadPoolExecutor thread = new ScheduledThreadPoolExecutor(1); @@ -52,14 +55,14 @@ return this.mStrokes; } - public MutableLiveData getmStrokeNo() { - return this.mStrokeNo; - } - public LiveData getPageNo() { return this.mCurPageNo; } + public LiveData> getPages() { + return this.mPages; + } + public PaintModelContainer getPaintModelContainer() { return paintModelContainer; } @@ -68,6 +71,10 @@ return this.mlatestPosition; } + public MutableLiveData> getMlatestPosition() { + return this.mlatestPosition; + } + //----------------------------------------------------------------- //----------------------------------------------------------------- // init @@ -96,8 +103,8 @@ //----------------------------------------------------------------- // 描画APIの通信リクエスト - public void addLocalStrokeRequest(float x, float y) { - paintModelContainer.getPaintConnectionModel().addLocalStroke(strokeNo); + public void addLocalStrokeRequest(float x, float y , int color,int shick) { + paintModelContainer.getPaintConnectionModel().addLocalStroke(strokeNo,color,shick); fsx = x; fsy = y; cnt = 1; @@ -150,7 +157,6 @@ pageOperationModel.incrementPageNo(mCurPageNo, mPageSize.getValue()); pageConnectionModel.getPage(mCurPageId); - updatePrePageId(); } //----------------------------------------------------------------- @@ -200,6 +206,14 @@ } //----------------------------------------------------------------- + // ページのサムネイル取得 + public void getPageThumbnailRequest() { + PageConnectionModel pageConnectionModel = paintModelContainer.getPageConnectionModel(); + + pageConnectionModel.getPageThumb(mPages); + } + + //----------------------------------------------------------------- //----------------------------------------------------------------- // 筆跡の削除 public void deleteStroke() { @@ -215,12 +229,19 @@ } //----------------------------------------------------------------- - // ページの枚数を取得する + // public void getPageSizeRequest() { paintModelContainer.getPageConnectionModel().getPageSize(mPageSize); } //----------------------------------------------------------------- + //最新のStrokePositionを取得 + public void getPosition(Integer latestStrokeNo) { + paintModelContainer.getPaintConnectionModel().getLatestStrokePosition(latestStrokeNo, mlatestPosition); + //Log.d("debug", "run: "+mlatestPosition.getValue()); + } + + //----------------------------------------------------------------- //----------------------------------------------------------------- // 一定間隔でサーバー上の筆跡を取得する(GET) @Override @@ -240,6 +261,12 @@ } //----------------------------------------------------------------- + //サーバーに画像データ(BASE64)を送る + public void setImage(String image){ + paintModelContainer.getPaintConnectionModel().setImage(image); + } + + //----------------------------------------------------------------- // public void stop() { thread.shutdown(); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PenDetailsFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PenDetailsFragment.java index 16e77d4..51a3d0d 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PenDetailsFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PenDetailsFragment.java @@ -20,49 +20,48 @@ import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.FragmentPenDetailBinding; -public class PenDetailsFragment extends Fragment implements TextView.OnEditorActionListener,View.OnFocusChangeListener, SeekBar.OnSeekBarChangeListener { +public class PenDetailsFragment extends Fragment implements TextView.OnEditorActionListener, View.OnFocusChangeListener, SeekBar.OnSeekBarChangeListener { private PaintCanvas paintCanvas; private FragmentPenDetailBinding binding; - private SeekBar sbAlpha,sbRed,sbGreen,sbBlue, sbThickness; - private EditText edtAlpha,edtRed,edtGreen,edtBlue, edtThickness; + private SeekBar sbAlpha, sbRed, sbGreen, sbBlue, sbThickness; + private EditText edtAlpha, edtRed, edtGreen, edtBlue, edtThickness; private TextView txtColor; private StrokeCanvasView strokeCanvasView; - @Override public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState){ - binding = FragmentPenDetailBinding.inflate(inflater,container,false); + ViewGroup container, Bundle savedInstanceState) { + binding = FragmentPenDetailBinding.inflate(inflater, container, false); View root = binding.getRoot(); //SeekBarやEditText、txtColorの紐づけ txtColor = root.findViewById(R.id.txtColor); - sbAlpha = root.findViewById(R.id.seekBarAlpha); - sbRed = root.findViewById(R.id.seekBarRed); - sbGreen = root.findViewById(R.id.seekBarGreen); - sbBlue = root.findViewById(R.id.seekBarBlue); + sbAlpha = root.findViewById(R.id.seekBarAlpha); + sbRed = root.findViewById(R.id.seekBarRed); + sbGreen = root.findViewById(R.id.seekBarGreen); + sbBlue = root.findViewById(R.id.seekBarBlue); sbThickness = root.findViewById(R.id.seekBarThickness); edtAlpha = root.findViewById(R.id.edtAlpha); - edtRed = root.findViewById(R.id.edtRed); + edtRed = root.findViewById(R.id.edtRed); edtGreen = root.findViewById(R.id.edtGreen); - edtBlue = root.findViewById(R.id.edtBlue); + edtBlue = root.findViewById(R.id.edtBlue); edtThickness = root.findViewById(R.id.edtThickness); //seekBarとEditTextの初期値 sbAlpha.setProgress(paintCanvas.getPen().getAlpha()); - edtAlpha.setText(String.format("%1$d",sbAlpha.getProgress())); + edtAlpha.setText(String.format("%1$d", sbAlpha.getProgress())); sbRed.setProgress(paintCanvas.getPen().getRed()); - edtRed.setText(String.format("%1$d",sbRed.getProgress())); + edtRed.setText(String.format("%1$d", sbRed.getProgress())); sbGreen.setProgress(paintCanvas.getPen().getGreen()); - edtGreen.setText(String.format("%1$d",sbGreen.getProgress())); + edtGreen.setText(String.format("%1$d", sbGreen.getProgress())); sbBlue.setProgress(paintCanvas.getPen().getBlue()); - edtBlue.setText(String.format("%1$d",sbBlue.getProgress())); + edtBlue.setText(String.format("%1$d", sbBlue.getProgress())); changeColor(); sbThickness.setProgress(paintCanvas.getPen().getThickness()); - edtThickness.setText(String.format("%1$d",sbThickness.getProgress())); + edtThickness.setText(String.format("%1$d", sbThickness.getProgress())); //strokeCanvasView.setStrokeWidth(sbThickness.getProgress(),paintCanvas); //SeekBarやEditTextの処理 @@ -88,10 +87,9 @@ edtThickness.setOnFocusChangeListener(this); - //cancelボタンを押したときの処理。 - View button =root.findViewById(R.id.PenDetailCancel); - button.setOnClickListener(view ->{ + View button = root.findViewById(R.id.PenDetailCancel); + button.setOnClickListener(view -> { FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.remove(this).commit(); @@ -101,19 +99,18 @@ } //PaintToolBarから最初に呼び出されるメソッド - public void init(AppCompatActivity appCompatActivity,PaintCanvas paintCanvas,Fragment fragment){ - FragmentManager fragmentManager=appCompatActivity.getSupportFragmentManager(); + public void init(AppCompatActivity appCompatActivity, PaintCanvas paintCanvas, Fragment fragment) { + FragmentManager fragmentManager = appCompatActivity.getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); - transaction.replace(R.id.dummyFragment,fragment).commit(); + transaction.replace(R.id.dummyFragment, fragment).commit(); setPaintCanvas(paintCanvas); } - //SeekBarの具体的処理 @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ - switch (seekBar.getId()){ + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + switch (seekBar.getId()) { case R.id.seekBarAlpha: edtAlpha.setText(String.format("%1$d", progress)); paintCanvas.getPen().setAlpha(progress); @@ -123,7 +120,7 @@ paintCanvas.getPen().setRed(progress); break; case R.id.seekBarGreen: - edtGreen.setText(String.format("%1$d" , progress)); + edtGreen.setText(String.format("%1$d", progress)); paintCanvas.getPen().setGreen(progress); break; case R.id.seekBarBlue: @@ -135,10 +132,12 @@ paintCanvas.getPen().setThickness(progress); //strokeCanvasView.setStrokeWidth(progress,paintCanvas); break; - default: return; + default: + return; } changeColor(); } + @Override public void onStartTrackingTouch(SeekBar seekBar) { @@ -158,18 +157,18 @@ int value = 0; //Log.d("strong", v.getText().toString()); try { - value = Integer.parseInt(((TextView)v).getText().toString()); - }catch(NumberFormatException ex) { + value = Integer.parseInt(((TextView) v).getText().toString()); + } catch (NumberFormatException ex) { ((TextView) v).setText("0"); } - value = Math.max(0,Math.min(255,value)); + value = Math.max(0, Math.min(255, value)); // 何も入力していないときの処理 // String txt = ((TextView)v).getText().toString(); // if(txt.equals("")) Toast.makeText(getActivity(), "入力してください", Toast.LENGTH_LONG).show(); - switch(v.getId()){ + switch (v.getId()) { case R.id.edtAlpha: sbAlpha.setProgress(value); break; @@ -185,10 +184,11 @@ case R.id.edtThickness: sbThickness.setProgress(value); - value = Math.max(0,Math.min(50,value)); + value = Math.max(0, Math.min(50, value)); //strokeCanvasView.setStrokeWidth(value,paintCanvas); break; - default:return; + default: + return; } changeColor(); @@ -200,16 +200,16 @@ //Log.d("strong", v.getText().toString()); try { value = Integer.parseInt(v.getText().toString()); - }catch(NumberFormatException ex) { + } catch (NumberFormatException ex) { v.setText("20"); } - value = Math.max(0,Math.min(255,value)); + value = Math.max(0, Math.min(255, value)); // 何も入力していないときの処理 - // if(v.getText().toString().equals("")) Toast.makeText(getActivity(), "入力してください", Toast.LENGTH_LONG).show(); + // if(v.getText().toString().equals("")) Toast.makeText(getActivity(), "入力してください", Toast.LENGTH_LONG).show(); - switch(v.getId()){ + switch (v.getId()) { case R.id.edtAlpha: sbAlpha.setProgress(value); break; @@ -223,30 +223,31 @@ sbBlue.setProgress(value); break; case R.id.edtThickness: - value = Math.max(0,Math.min(50,value)); + value = Math.max(0, Math.min(50, value)); sbThickness.setProgress(value); //strokeCanvasView.setStrokeWidth(value,paintCanvas); break; - default:return false; + default: + return false; } changeColor(); return false; } - private void changeColor(){ - int a,r,g,b; + private void changeColor() { + int a, r, g, b; a = Integer.parseInt(edtAlpha.getText().toString()); r = Integer.parseInt(edtRed.getText().toString()); g = Integer.parseInt(edtGreen.getText().toString()); b = Integer.parseInt(edtBlue.getText().toString()); - txtColor.setBackgroundColor(Color.argb(a ,r , g, b)); + txtColor.setBackgroundColor(Color.argb(a, r, g, b)); } //setter - private void setPaintCanvas(PaintCanvas paintCanvas){ - this.paintCanvas=paintCanvas; + private void setPaintCanvas(PaintCanvas paintCanvas) { + this.paintCanvas = paintCanvas; } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java index 1a28047..066f625 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PageConnectionModel.java @@ -9,6 +9,8 @@ import org.ntlab.acanthus_client.resources.gallery.PagesRest; import org.ntlab.acanthus_client.resources.gallery.StrokesRest; +import java.util.HashMap; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -128,6 +130,29 @@ } //----------------------------------------------------------------- + // ページのサムネイルを取得する + public void getPageThumb(MutableLiveData> mPages){ + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + Call> call = strokesRest.getPageUrls(acanthus.getAid()); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if(response.isSuccessful()){ + mPages.setValue(response.body()); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + + } + + //----------------------------------------------------------------- + // 前のページのIDを取得する public void getPrePageId() { diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java index 623ecca..e23c35a 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/models/PaintConnectionModel.java @@ -61,15 +61,15 @@ //----------------------------------------------------------------- // ローカルでのストロークの追加(POST) - public void addLocalStroke(int mStrokeNo) { + public void addLocalStroke(int mStrokeNo,int color,int shick) { final StrokesRest strokesRest = retrofit.create(StrokesRest.class); Log.d("strokeNo:", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^add----------------------"); //----------------------------------------------------------------- // ストローク追加API Call call = strokesRest.addStroke( - acanthus.getAid(), acanthus.getEditingPageId(), 0, acanthus.getPreferenceUid(), mStrokeNo, acanthus.getPreferenceToken(), - 0, 0, 10); + acanthus.getAid(), acanthus.getEditingPageId(), 0, acanthus.getPreferenceUid(),mStrokeNo, acanthus.getPreferenceToken(), + 0, color, shick); // strokeNoを更新 call.enqueue(new Callback() { @@ -95,15 +95,15 @@ //----------------------------------------------------------------- // 座標追加 - Call call = strokesRest.addPositions(i, acanthus.getAid(), acanthus.getEditingPageId(), currentStrokeNo, x, y); - call.enqueue(new Callback() { + Call call = strokesRest.addPositions(i, acanthus.getAid(), acanthus.getEditingPageId(), currentStrokeNo, x, y); + call.enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - + public void onResponse(Call call, Response response) { + Log.d("POSTsuccess: ", "i:" + i + ",x:" + x + ",y:" + y); } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { Log.d("POSTonFailure: ", "i:" + i + ",x:" + x + ",y:" + y); } }); @@ -198,5 +198,25 @@ } //----------------------------------------------------------------- + // "screenssc()"が実行されたとき、エンコードした文字列(BASE64)をサーバに送る + public void setImage(String image){ + final StrokesRest strokesRest = retrofit.create(StrokesRest.class); + + //----------------------------------------------------------------- + Call call = strokesRest.addImage(acanthus.getAid(), acanthus.getEditingPageNo(), image); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + + } + + + //----------------------------------------------------------------- } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java index baa2f3d..8b7dc37 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/page/PageActivity.java @@ -1,24 +1,23 @@ package org.ntlab.acanthus_client.views.paint.page; import androidx.appcompat.app.AppCompatActivity; -import androidx.core.app.ComponentActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import android.content.Intent; import android.os.Bundle; -import android.telephony.mbms.MbmsErrors; +import android.util.Log; import android.view.MotionEvent; import android.view.View; +import android.webkit.WebView; import com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter; import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.ActivityPageBinding; -import org.ntlab.acanthus_client.views.paint.PaintActivity; import org.ntlab.acanthus_client.views.paint.PaintViewModel; +import java.util.HashMap; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -126,6 +125,10 @@ binding = ActivityPageBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); + WebView webView = binding.pageWebview; + webView.setInitialScale(1); + webView.getSettings().setLoadWithOverviewMode(true); + webView.getSettings().setUseWideViewPort(true); } //----------------------------------------------------------------- @@ -135,6 +138,16 @@ @Override public void onChanged(Integer pageNo) { binding.textPageNo.setText(String.valueOf(pageNo)); + + paintViewModel.getPageThumbnailRequest(); + } + }); + + paintViewModel.getPages().observe(this, new Observer>() { + @Override + public void onChanged(HashMap s) { + binding.pageWebview.loadUrl(s.get(paintViewModel.getPageNo().getValue())); + Log.d("a", "onFailure: -----------------------OK:Obs"); } }); } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/title/TitleActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/title/TitleActivity.java index b8ca99e..6f3cabb 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/title/TitleActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/title/TitleActivity.java @@ -17,6 +17,7 @@ import org.ntlab.acanthus_client.databinding.ActivityTitleBinding; import org.ntlab.acanthus_client.views.MainActivity; +import org.ntlab.acanthus_client.views.login.LoginScreenActivity; import org.ntlab.acanthus_client.views.sign_up.SignUpActivity; import org.w3c.dom.Text; @@ -103,7 +104,7 @@ } private void falseLogin() { - transitionActivity(new SignUpActivity()); + transitionActivity(new LoginScreenActivity()); } private void transitionActivity(AppCompatActivity appCompatActivity) { diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserListViewAdapter.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserListViewAdapter.java index 0f50618..6f8ce34 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserListViewAdapter.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserListViewAdapter.java @@ -19,14 +19,14 @@ //参照保存データ static class ViewHolder { - TextView textViewUid; + TextView textViewName; } - public UserListViewAdapter(Context context, int layoutId, ArrayList name) { + public UserListViewAdapter(Context context, int layoutId, ArrayList names) { super(); this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.layoutId = layoutId; - this.nameList = name; + this.nameList = names; } @Override @@ -38,15 +38,15 @@ convertView = inflater.inflate(layoutId, parent, false); //ViewHolderの生成とレイアウト内テキストのセット viewHolder = new UserListViewAdapter.ViewHolder(); - viewHolder.textViewUid = convertView.findViewById(R.id.followOrFollowerUid); + viewHolder.textViewName = convertView.findViewById(R.id.followOrFollowerName); convertView.setTag(viewHolder); } else { //既に初期セットの処理がされている場合、再利用する viewHolder = (UserListViewAdapter.ViewHolder) convertView.getTag(); } - //ViewHolder内のtextViewName,Dateに各ポジションのデータをセット - if (nameList != null) viewHolder.textViewUid.setText(nameList.get(position)); + //ViewHolder内のtextViewNameに各ポジションのデータをセット + if (nameList != null) viewHolder.textViewName.setText(nameList.get(position)); return convertView; } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java index 3081e4f..e0bba96 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java @@ -35,16 +35,17 @@ userPageViewModel = new ViewModelProvider(this).get(UserPageViewModel.class); acanthus = (Acanthus) getApplication(); - Integer uid = 1; -// Integer uid = acanthus.getPreferenceUid(); - String token = "abc0"; -// String token = acanthus.getPreferenceToken(); -// Intent intent = getIntent(); //FollowListActivity,FollowerListActivityからそれぞれuidをもらう -// Integer uid2 = intent.getIntExtra("UID", 0); - Integer uid2 = 2; + Integer loginUid = 1; +// Integer loginUid = acanthus.getPreferenceUid(); + String loginToken = "abc0"; +// String loginToken = acanthus.getPreferenceToken(); + Intent intent = getIntent(); //FollowListActivity,FollowerListActivityからそれぞれuidをもらう +// Integer uid = intent.getIntExtra("UID", 0); + Integer uid = 2; + String uname = intent.getStringExtra("NAME"); TextView userNameText = findViewById(R.id.userNameText); -// userNameText.setText(); + userNameText.setText(uname); TextView profileText = findViewById(R.id.profileText); @@ -61,18 +62,18 @@ Button followUserButton = findViewById(R.id.followUserButton); //閲覧しているユーザーページが自分のページならフォローボタンを非表示する - if (uid == uid2) { + if (loginUid == uid) { followUserButton.setVisibility(View.INVISIBLE); } //ログインしているユーザーがフォローしているかの有無で画面表示時のボタンの文字を変更する - userPageViewModel.getFollows(uid); + userPageViewModel.getFollows(loginUid); userPageViewModel.getFollowJson().observe(this, new Observer() { @Override public void onChanged(@Nullable FollowJson followJson) { followsUidList = followJson.getFollowUids(); - if (followsUidList.contains(uid2)) { + if (followsUidList.contains(uid)) { followUserButton.setText("フォロー解除"); }else{ followUserButton.setText("フォローする"); @@ -85,13 +86,13 @@ followUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (!followsUidList.contains(uid2)) { - userPageViewModel.addFollow(uid, token, uid2); - followsUidList.add(uid2); + if (!followsUidList.contains(uid)) { + userPageViewModel.addFollow(loginUid, loginToken, uid); + followsUidList.add(uid); followUserButton.setText("フォロー解除"); }else{ - userPageViewModel.releaseFollow(uid, token, uid2); - followsUidList.remove(uid2); + userPageViewModel.releaseFollow(loginUid, loginToken, uid); + followsUidList.remove(uid); followUserButton.setText("フォローする"); } } @@ -103,7 +104,7 @@ @Override public void onClick(View v) { Intent intent = new Intent(getApplication(), FollowListActivity.class); - intent.putExtra("UID", uid2); + intent.putExtra("UID", uid); startActivity(intent); } }); @@ -114,7 +115,7 @@ @Override public void onClick(View v) { Intent intent = new Intent(getApplication(), FollowerListActivity.class); - intent.putExtra("UID", uid2); + intent.putExtra("UID", uid); startActivity(intent); } }); @@ -125,7 +126,7 @@ @Override public void onClick(View v) { Intent intent = new Intent(getApplication(), WorkListActivity.class); - intent.putExtra("UID", uid2); + intent.putExtra("UID", uid); startActivity(intent); } }); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java index e3a7348..9d86815 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java @@ -60,6 +60,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) { Intent intent = new Intent(getApplication(), UserPageActivity.class); intent.putExtra("UID", followUidList.get(position)); + intent.putExtra("NAME", followNameList.get(position)); startActivity(intent); } }); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java index e001d96..22aad87 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java @@ -62,6 +62,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) { Intent intent = new Intent(getApplication(), UserPageActivity.class); intent.putExtra("UID", followerUidList.get(position)); + intent.putExtra("NAME", followerNameList.get(position)); startActivity(intent); } }); diff --git a/app/src/main/res/drawable/acanthus_icon_black_500x500_removebg.png b/app/src/main/res/drawable/acanthus_icon_black_500x500_removebg.png new file mode 100644 index 0000000..ca65d5c --- /dev/null +++ b/app/src/main/res/drawable/acanthus_icon_black_500x500_removebg.png Binary files differ diff --git a/app/src/main/res/drawable/flame_login.xml b/app/src/main/res/drawable/flame_login.xml new file mode 100644 index 0000000..bf86498 --- /dev/null +++ b/app/src/main/res/drawable/flame_login.xml @@ -0,0 +1,17 @@ + + + + android:shape="rectangle" > + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/flame_theme_color.xml b/app/src/main/res/drawable/flame_theme_color.xml new file mode 100644 index 0000000..cba2996 --- /dev/null +++ b/app/src/main/res/drawable/flame_theme_color.xml @@ -0,0 +1,17 @@ + + + + android:shape="rectangle" > + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/flame_theme_color_stroke.xml b/app/src/main/res/drawable/flame_theme_color_stroke.xml new file mode 100644 index 0000000..78d24f0 --- /dev/null +++ b/app/src/main/res/drawable/flame_theme_color_stroke.xml @@ -0,0 +1,21 @@ + + + + android:shape="rectangle" > + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/higeorgie.png b/app/src/main/res/drawable/higeorgie.png deleted file mode 100644 index 91295d0..0000000 --- a/app/src/main/res/drawable/higeorgie.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/drawable/ic_baseline_fast_forward.xml b/app/src/main/res/drawable/ic_baseline_fast_forward.xml index cbce5f9..434728f 100644 --- a/app/src/main/res/drawable/ic_baseline_fast_forward.xml +++ b/app/src/main/res/drawable/ic_baseline_fast_forward.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_fast_rewind.xml b/app/src/main/res/drawable/ic_baseline_fast_rewind.xml index 71964b2..fade3d1 100644 --- a/app/src/main/res/drawable/ic_baseline_fast_rewind.xml +++ b/app/src/main/res/drawable/ic_baseline_fast_rewind.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_library_add.xml b/app/src/main/res/drawable/ic_baseline_library_add.xml index 2f49a21..a65f07b 100644 --- a/app/src/main/res/drawable/ic_baseline_library_add.xml +++ b/app/src/main/res/drawable/ic_baseline_library_add.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_pause.xml b/app/src/main/res/drawable/ic_baseline_pause.xml index 44d6b0b..c5bc87c 100644 --- a/app/src/main/res/drawable/ic_baseline_pause.xml +++ b/app/src/main/res/drawable/ic_baseline_pause.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_pending.xml b/app/src/main/res/drawable/ic_baseline_pending.xml index 832ccf3..14b5625 100644 --- a/app/src/main/res/drawable/ic_baseline_pending.xml +++ b/app/src/main/res/drawable/ic_baseline_pending.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_person_add_alt_1.xml b/app/src/main/res/drawable/ic_baseline_person_add_alt_1.xml new file mode 100644 index 0000000..dbf9979 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_person_add_alt_1.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_play_arrow.xml b/app/src/main/res/drawable/ic_baseline_play_arrow.xml index e529c59..d4d0755 100644 --- a/app/src/main/res/drawable/ic_baseline_play_arrow.xml +++ b/app/src/main/res/drawable/ic_baseline_play_arrow.xml @@ -4,6 +4,6 @@ android:viewportWidth="25" android:viewportHeight="25"> diff --git a/app/src/main/res/drawable/ic_baseline_refresh.xml b/app/src/main/res/drawable/ic_baseline_refresh.xml index fcb5fcc..d460479 100644 --- a/app/src/main/res/drawable/ic_baseline_refresh.xml +++ b/app/src/main/res/drawable/ic_baseline_refresh.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/ic_baseline_video_library.xml b/app/src/main/res/drawable/ic_baseline_video_library.xml new file mode 100644 index 0000000..b1e8f24 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_video_library.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_west.xml b/app/src/main/res/drawable/ic_baseline_west.xml index 5427d83..d77e877 100644 --- a/app/src/main/res/drawable/ic_baseline_west.xml +++ b/app/src/main/res/drawable/ic_baseline_west.xml @@ -5,6 +5,6 @@ android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/app/src/main/res/drawable/nitta_lab.png b/app/src/main/res/drawable/nitta_lab.png new file mode 100644 index 0000000..47b8b40 --- /dev/null +++ b/app/src/main/res/drawable/nitta_lab.png Binary files differ diff --git a/app/src/main/res/drawable/nitta_manga.jpg b/app/src/main/res/drawable/nitta_manga.jpg new file mode 100644 index 0000000..757a5cc --- /dev/null +++ b/app/src/main/res/drawable/nitta_manga.jpg Binary files differ diff --git a/app/src/main/res/drawable/nitta_manga_removebg.png b/app/src/main/res/drawable/nitta_manga_removebg.png new file mode 100644 index 0000000..f9c2f31 --- /dev/null +++ b/app/src/main/res/drawable/nitta_manga_removebg.png Binary files differ diff --git a/app/src/main/res/drawable/nitta_naoya.jpg b/app/src/main/res/drawable/nitta_naoya.jpg new file mode 100644 index 0000000..6c4b9e5 --- /dev/null +++ b/app/src/main/res/drawable/nitta_naoya.jpg Binary files differ diff --git a/app/src/main/res/drawable/note.png b/app/src/main/res/drawable/note.png deleted file mode 100644 index 60c647d..0000000 --- a/app/src/main/res/drawable/note.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_animation.xml b/app/src/main/res/layout/activity_animation.xml index 70be5e9..c325be8 100644 --- a/app/src/main/res/layout/activity_animation.xml +++ b/app/src/main/res/layout/activity_animation.xml @@ -17,7 +17,7 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0" /> -