package jp.gihyo.mitoma.android.s010901transition;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    //onResume( )と共用するためフィールドに設置
    ArrayAdapter<FriendsDTO> adapter;
    ArrayList<FriendsDTO> friendsList;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView = findViewById(R.id.lvFriends);
        // リストデータ取得
        FriendsDAO friendsDAO = FriendsDAO.getInstance();
        this.friendsList = friendsDAO.select();
        // アダプタ生成とセット
        this.adapter = new ArrayAdapter<>(
                this,R.layout.custom_list_item,friendsList);
        listView.setAdapter(adapter);
        // リスナーのセット
        listView.setOnItemClickListener(new OnItemClick());
    }
    @Override
    // 遷移先からの戻りの処理
    protected void onResume() {
        super.onResume();
        // DBから最新データ読込&再表示
        FriendsDAO friendsDAO = FriendsDAO.getInstance();
        this.friendsList = friendsDAO.select();
        this.adapter.notifyDataSetChanged();
    }

    private class OnItemClick implements AdapterView.OnItemClickListener{
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // 選択行のDTO取得
            FriendsDTO dto = (FriendsDTO)parent.getItemAtPosition(position);
            Toast.makeText(MainActivity.this,dto.name + "さんが選択されました",Toast.LENGTH_LONG).show();
            Intent intent = new Intent(MainActivity.this,SubActivity.class);
            // DTOを添付してSubActivityに遷移
            intent.putExtra("dto",dto);
            startActivity(intent);
        }
    }
}