package me.angeldevil.lifecyclefragment.app;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements DebugFragment.OnVisibleListener {

    private TabLayout tab;
    private ViewPager pager;
    private ScrollView logScroll;
    private TextView log;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        logScroll = findViewById(R.id.log_scroll);
        log = findViewById(R.id.log);

        pager = findViewById(R.id.pager);
        pager.setAdapter(new FirstAdapter(getSupportFragmentManager()));

        tab = findViewById(R.id.tab);
        tab.setupWithViewPager(pager);
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("LifecycleFragment", "onStop");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("LifecycleFragment", "onStart");
    }

    @Override
    public void onVisible(DebugFragment fragment, boolean firstVisible) {
        if (log != null) {
            log.append(fragment.getName() + "--Visible, firstVisible: " + firstVisible + "\n");
            logScroll.fullScroll(View.FOCUS_DOWN);
        }
    }

    @Override
    public void onInvisible(DebugFragment fragment) {
        if (log != null) {
            log.append(fragment.getName() + "--Invisible\n");
            logScroll.fullScroll(View.FOCUS_DOWN);
        }
    }

    @Override
    public void onUserInteraction() {
        super.onUserInteraction();
        if (log != null && !log.getText().toString().endsWith("\n\n")) {
            log.append("\n");
        }
    }
}