package com.orgzly.android.widgets;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;
import com.orgzly.BuildConfig;
import com.orgzly.R;
import com.orgzly.android.AppIntent;
import com.orgzly.android.provider.clients.FiltersClient;
import com.orgzly.android.ui.fragments.FiltersFragment;
import com.orgzly.android.util.LogUtils;
public class FilterSelectDialogActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor>, AdapterView.OnItemClickListener {
private static final String TAG = FilterSelectDialogActivity.class.getName();
private SimpleCursorAdapter mListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
if (BuildConfig.LOG_DEBUG) LogUtils.d(TAG, savedInstanceState);
setContentView(R.layout.activity_filter_select_dialog);
setupAdapter();
ListView list = (ListView) findViewById(R.id.filter_select_list);
list.setOnItemClickListener(this);
getSupportLoaderManager().initLoader(0, null, this);
}
private void setupAdapter() {
/* Create adapter using Cursor. */
mListAdapter = FiltersFragment.createFilterCursorAdapter(this);
ListView list = (ListView) findViewById(R.id.filter_select_list);
list.setAdapter(mListAdapter);
}
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return FiltersClient.getCursorLoader(this);
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
mListAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
mListAdapter.changeCursor(null);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (BuildConfig.LOG_DEBUG) LogUtils.d(TAG, "onItemClick", id);
/* notify Widget */
Intent intent = new Intent(this, ListWidgetProvider.class);
intent.setAction(AppIntent.ACTION_LIST_WIDGET_SET_FILTER);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, getIntent().getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID));
intent.putExtra(ListWidgetProvider.EXTRA_FILTER_ID, id);
sendBroadcast(intent);
setResult(RESULT_OK);
finish();
}
}