package com.databases.example.features.checkbook.accounts;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.databases.example.R;
import com.databases.example.database.DatabaseHelper;
import timber.log.Timber;
/**
* Created by kev on 10/6/14.
*/
public class AccountSortDialogFragment extends DialogFragment {
public static AccountSortDialogFragment newInstance() {
return new AccountSortDialogFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
LayoutInflater li = LayoutInflater.from(this.getActivity());
View accountSortView = li.inflate(R.layout.sort_accounts, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this.getActivity());
alertDialogBuilder.setView(accountSortView);
alertDialogBuilder.setTitle(R.string.sort);
alertDialogBuilder.setCancelable(true);
ListView sortOptions = (ListView) accountSortView.findViewById(R.id.sort_options);
sortOptions.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch (position) {
//Newest
case 0:
prefs.edit().putString(getString(R.string.pref_key_account_sort), DatabaseHelper.ACCOUNT_DATE + " DESC, " + DatabaseHelper.ACCOUNT_TIME + " DESC").apply();
break;
//Oldest
case 1:
prefs.edit().putString(getString(R.string.pref_key_account_sort), DatabaseHelper.ACCOUNT_DATE + " ASC, " + DatabaseHelper.ACCOUNT_TIME + " ASC").apply();
break;
//Largest
case 2:
prefs.edit().putString(getString(R.string.pref_key_account_sort), "CAST (" + DatabaseHelper.ACCOUNT_BALANCE + " AS INTEGER)" + " DESC").apply();
break;
//Smallest
case 3:
prefs.edit().putString(getString(R.string.pref_key_account_sort), "CAST (" + DatabaseHelper.ACCOUNT_BALANCE + " AS INTEGER)" + " ASC").apply();
break;
//Alphabetical
case 4:
prefs.edit().putString(getString(R.string.pref_key_account_sort), DatabaseHelper.ACCOUNT_NAME + " ASC").apply();
break;
//None
case 5:
prefs.edit().putString(getString(R.string.pref_key_account_sort), null).apply();
break;
default:
Timber.e("Unknown Sorting Option!");
break;
}
//Restart loader with new sort order
getParentFragment().getLoaderManager().restartLoader(AccountsFragment.ACCOUNTS_LOADER, null, (AccountsFragment) getParentFragment());
getDialog().cancel();
}
});
return alertDialogBuilder.create();
}
}