package com.databases.example.features.checkbook.transactions;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.SharedPreferences;
import android.graphics.drawable.GradientDrawable;
import android.net.Uri;
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.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.databases.example.R;
import com.databases.example.database.MyContentProvider;
import com.databases.example.utils.Constants;
import com.databases.example.utils.DateTime;
import com.databases.example.utils.Money;
import java.util.ArrayList;
import java.util.Locale;
public class TransactionViewFragment extends DialogFragment {
public static TransactionViewFragment newInstance(int id) {
TransactionViewFragment frag = new TransactionViewFragment();
Bundle args = new Bundle();
args.putInt("id", id);
frag.setArguments(args);
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
ArrayList<Transaction> transactions = Transaction.getTransactions(getActivity().getContentResolver().query(
Uri.parse(MyContentProvider.TRANSACTIONS_URI + "/" + getArguments().getInt("id")), null, null, null, null));
Transaction transaction = transactions.get(0);
final LayoutInflater li = LayoutInflater.from(this.getActivity());
final View transStatsView = li.inflate(R.layout.transaction_item, null);
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
final boolean useDefaults = prefs.getBoolean(getString(R.string.pref_key_account_default_appearance), true);
final Locale locale = getResources().getConfiguration().locale;
final Money value = new Money(transaction.value);
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this.getActivity());
alertDialogBuilder.setView(transStatsView);
alertDialogBuilder.setCancelable(true);
//Change gradient
try {
LinearLayout l;
l = (LinearLayout) transStatsView.findViewById(R.id.transaction_gradient);
GradientDrawable defaultGradientPos = new GradientDrawable(
GradientDrawable.Orientation.BOTTOM_TOP,
new int[]{0xFF4ac925, 0xFF4ac925});
GradientDrawable defaultGradientNeg = new GradientDrawable(
GradientDrawable.Orientation.BOTTOM_TOP,
new int[]{0xFFe00707, 0xFFe00707});
if (useDefaults) {
if (transaction.type.contains(Constants.DEPOSIT)) {
l.setBackgroundDrawable(defaultGradientPos);
} else {
l.setBackgroundDrawable(defaultGradientNeg);
}
} else {
if (transaction.type.contains(Constants.DEPOSIT)) {
l.setBackgroundDrawable(defaultGradientPos);
} else {
l.setBackgroundDrawable(defaultGradientNeg);
}
}
} catch (Exception e) {
Toast.makeText(getActivity(), "Could Not Set Custom gradient", Toast.LENGTH_SHORT).show();
}
//Set Statistics
TextView statsName = (TextView) transStatsView.findViewById(R.id.transaction_name);
statsName.setText(transaction.name);
TextView statsValue = (TextView) transStatsView.findViewById(R.id.transaction_value);
statsValue.setText("Value: " + value.getNumberFormat(locale));
TextView statsType = (TextView) transStatsView.findViewById(R.id.transaction_type);
statsType.setText("Type: " + transaction.type);
TextView statsCategory = (TextView) transStatsView.findViewById(R.id.transaction_category);
statsCategory.setText("Category: " + transaction.category);
TextView statsCheckNum = (TextView) transStatsView.findViewById(R.id.transaction_checknum);
statsCheckNum.setText("Check Num: " + transaction.checknum);
TextView statsMemo = (TextView) transStatsView.findViewById(R.id.transaction_memo);
statsMemo.setText("Memo: " + transaction.memo);
DateTime d = new DateTime();
d.setStringSQL(transaction.date);
TextView statsDate = (TextView) transStatsView.findViewById(R.id.transaction_date);
statsDate.setText("Date: " + d.getReadableDate());
DateTime t = new DateTime();
t.setStringSQL(transaction.time);
TextView statsTime = (TextView) transStatsView.findViewById(R.id.transaction_time);
statsTime.setText("Time: " + t.getReadableTime());
TextView statsCleared = (TextView) transStatsView.findViewById(R.id.transaction_cleared);
statsCleared.setText("Cleared: " + transaction.cleared);
return alertDialogBuilder.create();
}
}