package tof.cv.mpp;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import tof.cv.mpp.adapter.CompensationAdapter;
public class CompensationFragment extends ListFragment {
protected static final String TAG = "CompensationFragment";
CompensationAdapter a;
private TextView mTitleText;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_compensation, null);
}
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add(Menu.NONE, 0, Menu.NONE, "Web")
.setIcon(R.drawable.ic_menu_goto)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case (0):
String url = getString(R.string.compensation_url);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
registerForContextMenu(getListView());
((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(R.string.nav_drawer_compensation);
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(null);
boolean isTablet = this.getActivity().getResources().getBoolean(R.bool.tablet_layout);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(
!isTablet);
mTitleText = (TextView) getView().findViewById(R.id.title);
}
public void onResume() {
super.onResume();
updateList();
}
public void updateList() {
String[] f = getActivity().getDir("COMPENSATION", Context.MODE_PRIVATE).list();
Arrays.sort(f);
ArrayList<String> arraylist = new ArrayList<String>(Arrays.asList(f));
a = new CompensationAdapter(getActivity(),
android.R.layout.simple_list_item_1, arraylist);
setListAdapter(a);
if (f.length == 0) {
WebView mywebview = (WebView) getView().findViewById(android.R.id.empty);
String data = this.getActivity().getString(R.string.compensation_html);
mywebview.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);
mTitleText.setVisibility(View.GONE);
} else {
mTitleText.setVisibility(View.VISIBLE);
try {
long elapsed = System.currentTimeMillis() - Long.valueOf(f[0].split(";")[0]);
mTitleText.setText(getResources().getQuantityString(R.plurals.compensation_days, (int) (elapsed / DateUtils.DAY_IN_MILLIS), (int) (elapsed / DateUtils.DAY_IN_MILLIS)));
//mTitleText.setText("Retards depuis le: "+Utils.formatDate(new Date(Long.valueOf(f[0].split(";")[0])-4*DateUtils.DAY_IN_MILLIS),"d MMMMM"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onListItemClick(ListView l, View v, final int position, long id) {
super.onListItemClick(l, v, position, id);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
String[] items = {getString(R.string.compensation_show_info), getString(R.string.compensation_edit_delay), getString(R.string.compensation_edit_text), getString(R.string.remove)};
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {
switch (which) {
case 0:
String[] all=getListAdapter().getItem(position).toString().split(";");
Intent i = new Intent(getActivity(), InfoTrainActivity.class);
String id = getListAdapter().getItem(position).toString().split(";")[3];
i.putExtra("FileName", getListAdapter().getItem(position).toString());
i.putExtra("Name",all[all.length-1] );
startActivity(i);
break;
case 1:
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
final EditText input = new EditText(getActivity());
input.setInputType(InputType.TYPE_CLASS_NUMBER);
alert.setView(input);
input.setText(getListAdapter().getItem(position).toString().split(";")[1]);
alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
File directory = getActivity().getDir("COMPENSATION", Context.MODE_PRIVATE);
File from = new File(directory, getListAdapter().getItem(position).toString());
String newDate = getListAdapter().getItem(position).toString().split(";")[0];
String newDelay = input.getText().toString().replaceAll(";", ",");
String newText = getListAdapter().getItem(position).toString().split(";")[2];
String newId = getListAdapter().getItem(position).toString().split(";")[3];
File to = new File(directory, newDate + ";" + newDelay + ";" + newText + ";" + newId);
from.renameTo(to);
updateList();
}
});
alert.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
break;
case 2:
AlertDialog.Builder alert2 = new AlertDialog.Builder(getActivity());
final EditText input2 = new EditText(getActivity());
alert2.setView(input2);
input2.setText(getListAdapter().getItem(position).toString().split(";")[2]);
alert2.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
File directory = getActivity().getDir("COMPENSATION", Context.MODE_PRIVATE);
File from = new File(directory, getListAdapter().getItem(position).toString());
String newDate = getListAdapter().getItem(position).toString().split(";")[0];
String newDelay = getListAdapter().getItem(position).toString().split(";")[1];
String newText = input2.getText().toString().replaceAll(";", ",");
String newId = getListAdapter().getItem(position).toString().split(";")[3];
File to = new File(directory, newDate + ";" + newDelay + ";" + newText + ";" + newId);
from.renameTo(to);
updateList();
}
});
alert2.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert2.show();
break;
case 3:
File directory = getActivity().getDir("COMPENSATION", Context.MODE_PRIVATE);
new File(directory, getListAdapter().getItem(position).toString())
.delete();
updateList();
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
builder.create().show();
}
}