Created
November 9, 2015 13:56
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.gadfil.brainstorage.view.fragment; | |
import android.app.Activity; | |
import android.database.Cursor; | |
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.LoaderManager; | |
import android.support.v4.content.CursorLoader; | |
import android.support.v4.content.Loader; | |
import android.support.v7.app.ActionBar; | |
import android.support.v7.app.ActionBarActivity; | |
import android.util.Log; | |
import android.view.LayoutInflater; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.AdapterView; | |
import android.widget.ListView; | |
import ru.gadfil.brainstorage.R; | |
import ru.gadfil.brainstorage.model.adapter.JobCursorAdapter; | |
import ru.gadfil.brainstorage.model.data.object.Constant; | |
import ru.gadfil.brainstorage.model.data.table.Jobs; | |
import ru.gadfil.brainstorage.model.database.Provider; | |
import ru.gadfil.brainstorage.view.Navigate; | |
/** | |
* Created by gadfil on 21.07.2014. | |
*/ | |
public class JobListFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor>, | |
AdapterView.OnItemClickListener{ | |
public static final int FAVORITE_LIST = 42; | |
private static final String SELECTION_ID = "selection_id"; | |
private ListView mListView; | |
private JobCursorAdapter mAdapter; | |
private Navigate mNavigate; | |
private ActionBar mActionBar; | |
private long mSelectionId =1; | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View rootView = inflater.inflate(R.layout.list_fragment, container, false); | |
// mActionBar.setDisplayHomeAsUpEnabled(false); | |
mListView = (ListView) rootView.findViewById(R.id.listView); | |
mAdapter = new JobCursorAdapter(getActivity(), null); | |
mListView.setAdapter(mAdapter); | |
mListView.setOnItemClickListener(this); | |
if(getArguments()!=null){ | |
mSelectionId = getArguments().getLong(SELECTION_ID); | |
} | |
Log.d("log","mSelectionId: " + mSelectionId); | |
getActivity().getSupportLoaderManager().initLoader((int) mSelectionId, null, this); | |
return rootView; | |
} | |
public static JobListFragment newInstance(long selectionId) { | |
Bundle arg = new Bundle(); | |
arg.putLong(SELECTION_ID, selectionId); | |
JobListFragment fragment = new JobListFragment(); | |
fragment.setArguments(arg); | |
return fragment; | |
} | |
@Override | |
public void onAttach(Activity activity) { | |
super.onAttach(activity); | |
setHasOptionsMenu(true); | |
try { | |
mNavigate = (Navigate) activity; | |
setHasOptionsMenu(true); | |
mActionBar = ((ActionBarActivity) getActivity()).getSupportActionBar(); | |
mActionBar.setSubtitle(null); | |
mActionBar.setDisplayHomeAsUpEnabled(true); | |
} catch (ClassCastException e) { | |
throw new ClassCastException("Activity must implement Navigate."); | |
} | |
} | |
@Override | |
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) { | |
switch (i) { | |
case FAVORITE_LIST: | |
return new CursorLoader(getActivity(), Provider.FAVORITE_JOBS_SETTING_CONTENT_URI, | |
new String[]{ | |
Jobs.TABLE_NAME + '.' + Jobs._ID, | |
Jobs.TABLE_NAME + '.' + Jobs.CONTRACT, | |
Jobs.TABLE_NAME + '.' + Jobs.FULTIME, | |
Jobs.TABLE_NAME + '.' + Jobs.REMOTELY, | |
Jobs.TABLE_NAME + '.' + Jobs.PUB_DATE, | |
Jobs.TABLE_NAME + '.' + Jobs.LOCATION, | |
Jobs.TABLE_NAME + '.' + Jobs.LOGO_URL, | |
Jobs.TABLE_NAME + '.' + Jobs.LOGO_SRC, | |
Jobs.TABLE_NAME + '.' + Jobs.BONUS, | |
Jobs.TABLE_NAME + '.' + Jobs.COMPANY, | |
Jobs.TABLE_NAME + '.' + Jobs.LINK, | |
Jobs.TABLE_NAME + '.' + Jobs.JOB, | |
Jobs.TABLE_NAME + '.' + Jobs.PUB_DATE_TEXT | |
}, | |
Constant.SETTING_FAVORITE_JOBS_WHERE, | |
null, null); | |
default: | |
return new CursorLoader(getActivity(), Provider.SELECTION_JOBS_SETTING_CONTENT_URI, | |
new String[]{ | |
Jobs.TABLE_NAME + '.' + Jobs._ID, | |
Jobs.TABLE_NAME + '.' + Jobs.CONTRACT, | |
Jobs.TABLE_NAME + '.' + Jobs.FULTIME, | |
Jobs.TABLE_NAME + '.' + Jobs.REMOTELY, | |
Jobs.TABLE_NAME + '.' + Jobs.PUB_DATE, | |
Jobs.TABLE_NAME + '.' + Jobs.LOCATION, | |
Jobs.TABLE_NAME + '.' + Jobs.LOGO_URL, | |
Jobs.TABLE_NAME + '.' + Jobs.LOGO_SRC, | |
Jobs.TABLE_NAME + '.' + Jobs.BONUS, | |
Jobs.TABLE_NAME + '.' + Jobs.COMPANY, | |
Jobs.TABLE_NAME + '.' + Jobs.LINK, | |
Jobs.TABLE_NAME + '.' + Jobs.JOB, | |
Jobs.TABLE_NAME + '.' + Jobs.PUB_DATE_TEXT | |
}, | |
Jobs.TABLE_NAME + '.' + Jobs.SELECTION_ID + "=? AND " + Constant.SETTING_SELECTION_JOBS_WHERE, | |
new String[]{String.valueOf(mSelectionId)}, null); | |
} | |
// | |
} | |
@Override | |
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) { | |
mAdapter.swapCursor(cursor); | |
} | |
@Override | |
public void onLoaderReset(Loader<Cursor> cursorLoader) { | |
mAdapter.swapCursor(null); | |
} | |
@Override | |
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { | |
if( mSelectionId == FAVORITE_LIST ){ | |
mNavigate.loadJobDescription( id); | |
}else{ | |
mNavigate.loadJobDescription(id); | |
} | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
switch (item.getItemId()){ | |
case android.R.id.home: | |
mNavigate.loadSelectionList(); | |
break; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment