BackupRestoreActivity.java :  » UnTagged » andicar » org » andicar » activity » miscellaneous » Android Open Source

Android Open Source » UnTagged » andicar 
andicar » org » andicar » activity » miscellaneous » BackupRestoreActivity.java
/*
 *  AndiCar - a car management software for Android powered devices.
 * 
 *  Copyright (C) 2010 Miklos Keresztes (miklos.keresztes@gmail.com)
 *  
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.andicar.activity.miscellaneous;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.andicar.activity.BaseActivity;
import org.andicar.activity.R;
import org.andicar.activity.dialog.AndiCarDialogBuilder;
import org.andicar.persistence.FileUtils;
import org.andicar.utils.AndiCarStatistics;
import org.andicar.utils.StaticValues;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import com.andicar.addon.services.AndiCarAddOnServiceStarter;


/**
 *
 * @author miki
 */
public class BackupRestoreActivity extends BaseActivity {

    private ArrayList<String> bkFileList;
    private String selectedFile = null;
    private Button btnRestore;
    private Button btnBackup;
    private Button btnDelete;
    private ListView lvBackupList;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView( R.layout.backup_restore_activity );

        btnBackup = (Button) findViewById(R.id.btnBackup);
        btnBackup.setOnClickListener(btnBkClickListener);
        btnRestore = (Button) findViewById(R.id.btnRestore);
        btnRestore.setOnClickListener(btnRestoreClickListener);
        btnRestore.setEnabled(false);
        btnDelete = (Button) findViewById(R.id.btnDelete);
        btnDelete.setOnClickListener(btnDeleteBkClickListener);
        btnDelete.setEnabled(false);
        lvBackupList = (ListView) findViewById(R.id.lvBackupList);
        fillBkList();

    }

    private void fillBkList() {
        bkFileList = FileUtils.getBkFiles();
        if(bkFileList == null || bkFileList.isEmpty()){
            btnRestore.setEnabled(false);
            btnDelete.setEnabled(false);
            lvBackupList.setAdapter(null);
            return;
        }
        ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_single_choice, bkFileList);
        lvBackupList.setAdapter(listAdapter);
        lvBackupList.setItemsCanFocus(false);
        lvBackupList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        lvBackupList.setOnItemClickListener(bkFileSelectedListener);
    }

    protected AdapterView.OnItemClickListener bkFileSelectedListener = new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                selectedFile = bkFileList.get(arg2);
                btnRestore.setEnabled(true);
                btnDelete.setEnabled(true);
            }
        };

    private View.OnClickListener btnBkClickListener =  new View.OnClickListener() {
            public void onClick(View arg0) {
                if(mDbAdapter.backupDb(null, null)){
                    Toast toast = Toast.
                            makeText( getApplicationContext(),
                            mResource.getString( R.string.BackupRestoreEditActivity_BackupCreatedMessage ), Toast.LENGTH_SHORT);
                    toast.show();
                    fillBkList();
                    if(isSendStatistics){
                        Map<String, String> parameters = new HashMap<String, String>();
                        parameters.put("Operation", "Backup");
                        AndiCarStatistics.sendFlurryEvent(BackupRestoreActivity.this, "BackupRestore", parameters);
                    }
                }
                else{
                    madbErrorAlert.setMessage(mResource.getString( R.string.BackupRestoreEditActivity_BackupFailedMessage ) + "\n" +
                            mDbAdapter.lastErrorMessage);
                    madError = madbErrorAlert.create();
                    madError.show();
                }
                btnRestore.setEnabled(false);
                btnDelete.setEnabled(false);
            }
    };

    private View.OnClickListener btnRestoreClickListener =  new View.OnClickListener() {
        public void onClick(View arg0) {
            AndiCarDialogBuilder builder = new AndiCarDialogBuilder(BackupRestoreActivity.this, 
                AndiCarDialogBuilder.DIALOGTYPE_WARNING, mResource.getString(R.string.GEN_Confirm));
            builder.setMessage(mResource.getString(R.string.BackupRestoreEditActivity_RestoreConfirmation));
            builder.setCancelable(false);
            builder.setPositiveButton(mResource.getString(R.string.GEN_YES),
                       new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                if(mDbAdapter.restoreDb(selectedFile)){
                                    SharedPreferences.Editor editor = mPreferences.edit();
                                    editor.putBoolean("MustClose", true);
                                    editor.putLong( "CurrentCar_ID", -1);
//                                    editor.putLong( "CurrentDriver_ID", -1);
                                    editor.commit();
                                    try{
                                      AndiCarAddOnServiceStarter.startServices(BackupRestoreActivity.this);
                                    }
                                    catch(Exception e){}
                                    if(isSendStatistics){
                                        Map<String, String> parameters = new HashMap<String, String>();
                                        parameters.put("Operation", "Restore");
                                        AndiCarStatistics.sendFlurryEvent(BackupRestoreActivity.this, "BackupRestore", parameters);
                                    }

                                    AndiCarDialogBuilder builder = new AndiCarDialogBuilder(BackupRestoreActivity.this, 
                                        AndiCarDialogBuilder.DIALOGTYPE_INFO, mResource.getString(R.string.GEN_Info));
                                    builder.setMessage(mResource.getString(R.string.BackupRestoreEditActivity_RestoreOKMessage));
                                    builder.setCancelable(false);
                                    builder.setPositiveButton(mResource.getString(R.string.GEN_OK),
                                               new DialogInterface.OnClickListener() {
                                                   public void onClick(DialogInterface dialog, int id) {
                                                       finish();
                                                   }
                                               });
                                    AlertDialog alert = builder.create();
                                    alert.show();

                                }
                                else{
                                    madbErrorAlert.setMessage(mResource.getString( R.string.BackupRestoreEditActivity_BackupFailedMessage ) + "\n" +
                                            mDbAdapter.lastErrorMessage);
                                    madError = madbErrorAlert.create();
                                    madError.show();
                                }
                           }
                       });
            builder.setNegativeButton(mResource.getString(R.string.GEN_NO),
                        new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                           }
                        });
            AlertDialog alert = builder.create();
            alert.show();
        }
    };

    private View.OnClickListener btnDeleteBkClickListener =  new View.OnClickListener() {
        public void onClick(View arg0) {
            AndiCarDialogBuilder builder = new AndiCarDialogBuilder(BackupRestoreActivity.this, 
                AndiCarDialogBuilder.DIALOGTYPE_QUESTION, mResource.getString(R.string.GEN_Confirm));
            builder.setMessage(mResource.getString(R.string.BackupRestoreEditActivity_BackupDeleteConfirmation));
            builder.setCancelable(false);
            builder.setPositiveButton(mResource.getString(R.string.GEN_YES),
                       new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                FileUtils.deleteFile(StaticValues.BACKUP_FOLDER + selectedFile);
                                fillBkList();
                                btnRestore.setEnabled(false);
                                btnDelete.setEnabled(false);
                           }
                       });
            builder.setNegativeButton(mResource.getString(R.string.GEN_NO),
                        new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                           }
                        });
            AlertDialog alert = builder.create();
            alert.show();
            }
    };
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.