package com.myMinistry.fragments;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.myMinistry.Helper;
import com.myMinistry.R;
import com.myMinistry.provider.MinistryDatabase;
import com.myMinistry.util.FileUtils;
public class DBBackupsFragment extends Fragment {
private boolean is_dual_pane = false;
private FragmentManager fm;
public DBBackupsFragment newInstance() {
return new DBBackupsFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.db_backups, container, false);
fm = getActivity().getSupportFragmentManager();
view.findViewById(R.id.create_bu).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss-aaa", Locale.getDefault());
Calendar now = Calendar.getInstance();
String date = dateFormatter.format(now.getTime()).toString();
File intDB = getActivity().getApplicationContext().getDatabasePath(MinistryDatabase.DATABASE_NAME);
File extDB = FileUtils.getExternalDBFile(getActivity().getApplicationContext(), date + ".db");
try {
if(extDB != null) {
if(!extDB.exists())
extDB.createNewFile();
FileUtils.copyFile(intDB, extDB);
if(is_dual_pane) {
Fragment frag = fm.findFragmentById(R.id.secondary_fragment_container);
if(frag instanceof DBBackupsListFragment) {
DBBackupsListFragment f = (DBBackupsListFragment) fm.findFragmentById(R.id.secondary_fragment_container);
f.reloadAdapter();
}
else {
DBBackupsListFragment f = new DBBackupsListFragment().newInstance();
FragmentTransaction ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
if(frag != null)
ft.remove(frag);
ft.add(R.id.secondary_fragment_container, f);
ft.addToBackStack(null);
ft.commit();
}
}
Toast.makeText(getActivity(), getActivity().getApplicationContext().getString(R.string.toast_export_text), Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
Toast.makeText(getActivity(), getActivity().getApplicationContext().getString(R.string.toast_export_text_error), Toast.LENGTH_SHORT).show();
}
}
});
view.findViewById(R.id.cleanup_bu).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int FLAG = Helper.clearBackups(getActivity().getApplicationContext());
if(FLAG == 1)
Toast.makeText(getActivity(), getActivity().getApplicationContext().getString(R.string.toast_cleaned_backups), Toast.LENGTH_SHORT).show();
else if(FLAG == 2)
Toast.makeText(getActivity(), getActivity().getApplicationContext().getString(R.string.toast_cleaned_backups_only_one), Toast.LENGTH_SHORT).show();
else if(FLAG == 0)
Toast.makeText(getActivity(), getActivity().getApplicationContext().getString(R.string.toast_cleaned_backups_error), Toast.LENGTH_SHORT).show();
if(is_dual_pane) {
Fragment frag = fm.findFragmentById(R.id.secondary_fragment_container);
if(frag instanceof DBBackupsListFragment) {
DBBackupsListFragment f = (DBBackupsListFragment) fm.findFragmentById(R.id.secondary_fragment_container);
f.reloadAdapter();
}
else {
DBBackupsListFragment f = new DBBackupsListFragment().newInstance();
FragmentTransaction ft = fm.beginTransaction();
if(frag != null)
ft.remove(frag);
ft.add(R.id.secondary_fragment_container, f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
}
}});
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
is_dual_pane = getActivity().findViewById(R.id.secondary_fragment_container) != null;
if (is_dual_pane) {
Fragment frag = fm.findFragmentById(R.id.secondary_fragment_container);
DBBackupsListFragment f = new DBBackupsListFragment().newInstance();
FragmentTransaction ft = fm.beginTransaction();
if(frag != null)
ft.remove(frag);
ft.add(R.id.secondary_fragment_container, f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
}
}