package com.databases.example.features.checkbook.accounts;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.SharedPreferences;
import android.graphics.drawable.GradientDrawable;
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.utils.DateTime;
import com.databases.example.utils.Money;
import java.util.Locale;
//Class that handles view fragment
public class AccountViewFragment extends DialogFragment {
private static final String KEY = "account";
public static AccountViewFragment newInstance(Account account) {
AccountViewFragment frag = new AccountViewFragment();
Bundle args = new Bundle();
args.putParcelable(KEY, account);
frag.setArguments(args);
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Account account = getArguments().getParcelable(KEY);
final LayoutInflater li = LayoutInflater.from(this.getActivity());
final View accountStatsView = li.inflate(R.layout.account_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 balance = new Money(account.balance);
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this.getActivity());
alertDialogBuilder.setView(accountStatsView);
alertDialogBuilder.setCancelable(true);
//Change gradient
try {
LinearLayout l;
l = (LinearLayout) accountStatsView.findViewById(R.id.account_gradient);
//Older color to black gradient (0xFF00FF33,0xFF000000)
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 (balance.isPositive(locale)) {
l.setBackgroundDrawable(defaultGradientPos);
} else {
l.setBackgroundDrawable(defaultGradientNeg);
}
} else {
if (balance.isPositive(locale)) {
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) accountStatsView.findViewById(R.id.account_name);
statsName.setText(account.name);
TextView statsValue = (TextView) accountStatsView.findViewById(R.id.account_balance);
statsValue.setText("Balance: " + balance.getNumberFormat(locale));
DateTime d = new DateTime();
d.setStringSQL(account.date);
TextView statsDate = (TextView) accountStatsView.findViewById(R.id.account_date);
statsDate.setText("Date: " + d.getReadableDate());
DateTime t = new DateTime();
t.setStringSQL(account.time);
TextView statsTime = (TextView) accountStatsView.findViewById(R.id.account_time);
statsTime.setText("Time: " + t.getReadableTime());
return alertDialogBuilder.create();
}
}