Abstracted SQL, Cursor, Loader, Adapter, RecyclerView

This commit is contained in:
Phillip Hsu
2016-07-29 23:18:46 -07:00
parent 7c41ac2d29
commit b43ff03662
16 changed files with 654 additions and 71 deletions
@@ -0,0 +1,23 @@
package com.philliphsu.clock2.timers;
import android.view.ViewGroup;
import com.philliphsu.clock2.BaseCursorAdapter;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.Timer;
import com.philliphsu.clock2.model.TimerDatabaseHelper;
/**
* Created by Phillip Hsu on 7/29/2016.
*/
public class TimersCursorAdapter extends BaseCursorAdapter<Timer, TimerViewHolder, TimerDatabaseHelper.TimerCursor> {
public TimersCursorAdapter(OnListItemInteractionListener<Timer> listener) {
super(listener);
}
@Override
protected TimerViewHolder onCreateViewHolder(ViewGroup parent, OnListItemInteractionListener<Timer> listener) {
return new TimerViewHolder(parent, listener);
}
}
@@ -3,52 +3,52 @@ package com.philliphsu.clock2.timers;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.content.Loader;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.RecyclerViewFragment;
import com.philliphsu.clock2.Timer;
import com.philliphsu.clock2.edittimer.EditTimerActivity;
import com.philliphsu.clock2.timers.dummy.DummyContent;
import butterknife.ButterKnife;
/**
* TODO: Extend from RecyclerViewFragment.
*/
public class TimersFragment extends Fragment {
public TimersFragment() {
// Required empty public constructor
}
import com.philliphsu.clock2.model.TimerDatabaseHelper;
import com.philliphsu.clock2.model.TimersListCursorLoader;
public class TimersFragment extends RecyclerViewFragment<
Timer,
TimerViewHolder,
TimerDatabaseHelper.TimerCursor,
TimersCursorAdapter> {
public static final int REQUEST_CREATE_TIMER = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_alarms, container, false);
ButterKnife.bind(this, view);
RecyclerView rv = ButterKnife.findById(view, R.id.list);
rv.setLayoutManager(new LinearLayoutManager(getActivity()));
rv.setAdapter(new TimerAdapter(DummyContent.ITEMS, new OnListItemInteractionListener<Timer>() {
@Override
public void onListItemClick(Timer item) {
startActivity(new Intent(getActivity(), EditTimerActivity.class));
}
@Override
public void onListItemDeleted(Timer item) {
}
}));
return view;
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// if (resultCode != Activity.RESULT_OK || data == null)
// return;
TimerDatabaseHelper db = new TimerDatabaseHelper(getActivity());
db.insertItem(Timer.create(1, 0, 0));
}
@Override
public void onFabClick() {
Intent intent = new Intent(getActivity(), EditTimerActivity.class);
startActivityForResult(intent, REQUEST_CREATE_TIMER);
}
@Override
protected TimersCursorAdapter getAdapter() {
return new TimersCursorAdapter(this);
}
@Override
public Loader<TimerDatabaseHelper.TimerCursor> onCreateLoader(int id, Bundle args) {
return new TimersListCursorLoader(getActivity());
}
@Override
public void onListItemClick(Timer item) {
}
@Override
public void onListItemDeleted(Timer item) {
}
}