diff options
Diffstat (limited to 'java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java')
-rw-r--r-- | java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java index 3629b7551..1912e1e3f 100644 --- a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java +++ b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java @@ -16,49 +16,50 @@ package com.android.dialer.voicemail.listui; +import android.database.Cursor; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.support.v4.app.LoaderManager.LoaderCallbacks; +import android.support.v4.content.Loader; 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 com.android.dialer.common.LogUtil; -import com.android.dialer.voicemail.datasources.VoicemailData; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; /** Fragment for Dialer Voicemail Tab. */ -public final class NewVoicemailFragment extends Fragment { +public final class NewVoicemailFragment extends Fragment implements LoaderCallbacks<Cursor> { + + private RecyclerView recyclerView; + @Nullable @Override public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.new_voicemail_call_log_fragment, container, false); - RecyclerView recyclerView = - (RecyclerView) view.findViewById(R.id.new_voicemail_call_log_recycler_view); - recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView = view.findViewById(R.id.new_voicemail_call_log_recycler_view); + getLoaderManager().restartLoader(0, null, this); + return view; + } - // TODO(uabdullah): To be removed once we hook up the UI to the voicemail backend - List<VoicemailData> voicemailData = new ArrayList<>(); - Random rand = new Random(); - for (int i = 0; i < 50; i++) { - VoicemailData mocked = - VoicemailData.builder() - .setName("Fatima Abdullah " + i) - .setLocation("San Francisco, CA") - .setDate("March " + (rand.nextInt(30) + 1)) - .setDuration("00:" + (rand.nextInt(50) + 10)) - .setTranscription( - "This is a transcription text message that literally means nothing.") - .build(); - voicemailData.add(mocked); - } + @Override + public Loader<Cursor> onCreateLoader(int id, Bundle args) { + LogUtil.enterBlock("NewVoicemailFragment.onCreateLoader"); + return new VoicemailCursorLoader(getContext()); + } - LogUtil.i("onCreateView", "size of input:" + voicemailData.size()); - recyclerView.setAdapter(new NewVoicemailCallLogAdapter(voicemailData)); - return view; + @Override + public void onLoadFinished(Loader<Cursor> loader, Cursor data) { + LogUtil.i("NewVoicemailFragment.onCreateLoader", "cursor size is %d", data.getCount()); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView.setAdapter(new NewVoicemailAdapter(data)); + } + + @Override + public void onLoaderReset(Loader<Cursor> loader) { + LogUtil.enterBlock("NewVoicemailFragment.onLoaderReset"); + recyclerView.setAdapter(null); } } |