Newer
Older
Cactus-CleanArchitecture / app / src / main / java / org / ntlab / radishforandroidstudio / cactusClient / MainActivity.java
package org.ntlab.radishforandroidstudio.cactusClient;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;

import org.ntlab.radishforandroidstudio.R;
import org.ntlab.radishforandroidstudio.cactusClient.views.PlayerFragment;
import org.ntlab.radishforandroidstudio.cactusClient.views.StartFragment;

/**
 * Cactusのメインアプリケーション
 */

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        splash();

        //fragmentの設定
        Fragment fragment = new StartFragment();
        addFragment(R.id.fragment_place, fragment, "StartFragment");
        setContentView(R.layout.activity_main);
    }


    public void splash() {
        //3秒間スリープし、スプラッシュを表示。
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        setTheme(R.style.AppTheme_NoActionBar);
        setContentView(R.layout.activity_main);
    }

    protected void addFragment(int containerViewId, Fragment fragment, String tag) {
        getSupportFragmentManager().beginTransaction().add(containerViewId, fragment, tag).commit();
    }

    protected void replaceFragment(int containerViewId, Fragment fragment, String tag, boolean flag) {
        if (flag) {
            getSupportFragmentManager().beginTransaction().replace(containerViewId, fragment, tag).addToBackStack(null).commit();
        } else {
            getSupportFragmentManager().beginTransaction().replace(containerViewId, fragment, tag).commit();
        }
    }


    @Override
    public void onBackPressed() {
        FragmentManager manager = getSupportFragmentManager();
        if (manager == null) {
            super.onBackPressed();
            return;
        }
        Fragment fragment = manager.findFragmentById(R.id.fragment_place);
        if (fragment == null) {
            super.onBackPressed();
            return;
        }
        if (fragment instanceof PlayerFragment) {
            manager.beginTransaction().remove(fragment).commit();
            manager.popBackStack();
            return;
        }
        super.onBackPressed();
    }
}