Newer
Older
org.ntlab.acanthus_client / app / src / main / java / org / ntlab / acanthus_client / views / paint / PaintToolBar.java
package org.ntlab.acanthus_client.views.paint;

import android.content.Intent;
import android.os.Build;
import android.view.MenuItem;

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import org.ntlab.acanthus_client.Acanthus;
import org.ntlab.acanthus_client.R;
import org.ntlab.acanthus_client.views.paint.page.PageActivity;

//-----------------------------------------------------------------
// 描画シーンの下部のツールバー
public class PaintToolBar {
    private BottomNavigationView bottomNavigationView;
    private BottomNavigationView.OnNavigationItemSelectedListener onNavigationItemSelectedListener;
    private FragmentManager fragmentManager;
    private PenDetailsFragment penDetailsFragment = new PenDetailsFragment();

    //-----------------------------------------------------------------
    //-----------------------------------------------------------------
    public PaintToolBar(PaintActivity paintActivity, PaintCanvas paintCanvas, PaintOnionCanvas paintOnionCanvas) {
        this.bottomNavigationView = (BottomNavigationView) paintActivity.findViewById(R.id.navPaint);
        setNavigationListener(paintActivity, paintCanvas, paintOnionCanvas);

    }

    //-----------------------------------------------------------------
    //-----------------------------------------------------------------
    // ナビゲーションバーのタッチ監視
    private void setNavigationListener(AppCompatActivity appCompatActivity, PaintCanvas paintCanvas, PaintOnionCanvas paintOnionCanvas) {
        this.onNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
            @RequiresApi(api = Build.VERSION_CODES.O)
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    //-----------------------------------------------------------------
                    //
                    case R.id.navigation_pen:
                        transitionPenDetailFragment(appCompatActivity,paintCanvas,penDetailsFragment);
                        return true;
                    //-----------------------------------------------------------------
                    //
                    case R.id.navigation_clear:
                        paintCanvas.deleteStroke();
                        return true;
                    //-----------------------------------------------------------------
                    //
                    case R.id.navigation_invite:
                        transitionInviteActivity(appCompatActivity);
                        return true;

                    //-----------------------------------------------------------------
                    case R.id.navigation_page:

                        paintOnionCanvas.stopUpdate();
                        paintOnionCanvas.clearCanvas();

                        paintCanvas.canvasScreenShot();
                        paintCanvas.clearCanvas();
                        transitionPageActivity(appCompatActivity);
                        return true;

                }

                return true;
            }
        };

        bottomNavigationView.setOnNavigationItemSelectedListener(this.onNavigationItemSelectedListener);
    }
    //-----------------------------------------------------------------
    //ペンの詳細変更ページへ移動
    private void transitionPenDetailFragment(AppCompatActivity appCompatActivity ,PaintCanvas paintCanvas,PenDetailsFragment penDetailsFragment){
        penDetailsFragment.init(appCompatActivity,paintCanvas,penDetailsFragment);

//        fragmentManager = appCompatActivity.getSupportFragmentManager();
//        FragmentTransaction transaction = fragmentManager.beginTransaction();
//        transaction.replace(R.id.dummyFragment, penDetailsFragment);
//        transaction.commit();

//      Acanthus acanthus =(Acanthus) appCompatActivity.getApplication();
//      Intent intent = new Intent(acanthus,PenDetailsFragment.class);
//      appCompatActivity.startActivity(intent);
    }

    //-----------------------------------------------------------------
    // 招待ページへ移動
    private void transitionInviteActivity(AppCompatActivity appCompatActivity) {
        Acanthus acanthus = (Acanthus) appCompatActivity.getApplication();
        Intent intent = new Intent(acanthus, InviteActivity.class);
        appCompatActivity.startActivity(intent);
    }

    //-----------------------------------------------------------------
    // 編集へ移動
    private void transitionPageActivity(AppCompatActivity appCompatActivity) {
        Acanthus acanthus = (Acanthus) appCompatActivity.getApplication();
        Intent intent = new Intent(acanthus, PageActivity.class);
        appCompatActivity.startActivity(intent);
    }

    //-----------------------------------------------------------------

}