package edu.mob.lab04;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.EditText;
import android.widget.Toast;
import java.util.HashMap;
import java.util.Locale;
public class MainActivity extends AppCompatActivity implements CRecyclerViewAdapter.IItemClickListener{
protected CDBMaterial dbMaterial;
protected RecyclerView recyclerView;
protected CRecyclerViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
dbMaterial = new CDBMaterial(this);
dbMaterial.open();
findViewById(R.id.buttonAdd).setOnClickListener(v -> {
dbMaterial.addMaterial(
((EditText)findViewById(R.id.editType)).getText().toString(),
((EditText)findViewById(R.id.editStandard)).getText().toString());
adapter.swapCursor(dbMaterial.getMaterials());
runLayoutAnimation();
});
adapter = new CRecyclerViewAdapter(this,dbMaterial.getMaterials());
recyclerView = findViewById(R.id.viewList);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
adapter.setClickListener(this);
int resId = R.anim.layout_animation_fall_down;
LayoutAnimationController animation =
AnimationUtils.loadLayoutAnimation(this, resId);
recyclerView.setLayoutAnimation(animation);
}
private void runLayoutAnimation(){
final LayoutAnimationController controller =
AnimationUtils.loadLayoutAnimation(this, R.anim.layout_animation_fall_down);
recyclerView.setLayoutAnimation(controller);
recyclerView.getAdapter().notifyDataSetChanged();
recyclerView.scheduleLayoutAnimation();
}
@Override
public void onItemClick(View view, int position) {
HashMap<String, String> item = adapter.getItem(position);
Toast.makeText(this, String.format(Locale.US, "IDX = %d, dane: %s, %s, %s", position,
item.get(CDBHelper.TYPE_ID), item.get(CDBHelper.TYPE_TYPENAME),
item.get(CDBHelper.TYPE_STANDARD)),Toast.LENGTH_SHORT).show();
}
}