4
* Copyright (C) 2010 Tim Marston <edam@waxworlds.org>
4
* Copyright (C) 2010 Tim Marston <tim@ed.am>
6
6
* This file is part of the Export Contacts program (hereafter referred
7
* to as "this program"). For more information, see
8
* http://www.waxworlds.org/edam/software/android/export-contacts
7
* to as "this program"). For more information, see
8
* http://ed.am/dev/android/export-contacts
10
10
* This program is free software: you can redistribute it and/or modify
11
11
* it under the terms of the GNU General Public License as published by
21
21
* along with this program. If not, see <http://www.gnu.org/licenses/>.
24
package org.waxworlds.edam.exportcontacts;
24
package am.ed.exportcontacts;
26
import java.io.IOException;
28
import android.app.AlertDialog;
29
import android.app.Dialog;
30
import android.content.DialogInterface;
26
31
import android.content.SharedPreferences;
27
32
import android.os.Bundle;
33
import android.os.Environment;
34
import android.view.View;
35
import android.widget.Button;
28
36
import android.widget.EditText;
30
38
public class ConfigureVCF extends WizardActivity
40
public final static int DIALOG_FILECHOOSER = 1;
41
public final static int DIALOG_NOSDCARD = 2;
43
private FileChooser _file_chooser = null;
45
// the sdcard path prefix
46
private String _sdcard_prefix;
33
52
protected void onCreate( Bundle savedInstanceState )
35
54
setContentView( R.layout.configure_vcf );
36
55
super.onCreate( savedInstanceState );
38
// setNextActivity( Doit.class );
57
setNextActivity( Doit.class );
60
_sdcard_prefix = getSdCardPathPrefix();
61
if( _sdcard_prefix == null )
62
showDialog( DIALOG_NOSDCARD );
64
// create file chooser
65
_file_chooser = new FileChooser( this );
66
_file_chooser.setMode( FileChooser.MODE_DIR );
67
// String[] extensions = { "vcf" };
68
// _file_chooser.setExtensions( extensions );
69
_file_chooser.setDismissListener(
70
new DialogInterface.OnDismissListener() {
71
public void onDismiss( DialogInterface dialog )
73
if( _file_chooser.getOk() ) {
74
_path = _file_chooser.getPath();
79
if( _sdcard_prefix != null )
80
_file_chooser.setPathPrefix( _sdcard_prefix );
82
// set up browser button
83
Button path_button = (Button)findViewById( R.id.path );
84
path_button.setOnClickListener( new View.OnClickListener() {
85
public void onClick( View view ) {
45
95
SharedPreferences.Editor editor = getSharedPreferences().edit();
48
EditText location = (EditText)findViewById( R.id.location );
49
editor.putString( "location", location.getText().toString() );
98
editor.putString( "path", _path );
99
EditText filename = (EditText)findViewById( R.id.filename );
100
editor.putString( "filename", filename.getText().toString() );
58
109
SharedPreferences prefs = getSharedPreferences();
61
EditText location = (EditText)findViewById( R.id.location );
62
location.setText( prefs.getString( "location", "/sdcard/contacts.vcf" ) );
111
/* // default filename
112
Calendar now = Calendar.getInstance();
113
NumberFormat formatter = new DecimalFormat( "00" );
114
String date = now.get( Calendar.YEAR ) + "-" +
115
formatter.format( now.get( Calendar.MONTH ) ) + "-" +
116
formatter.format( now.get( Calendar.DAY_OF_MONTH ) );
119
_path = prefs.getString( "path", "/" );
121
EditText filename = (EditText)findViewById( R.id.filename );
122
filename.setText( prefs.getString( "filename",
123
"android-contacts.vcf" ) );
126
static protected String getSdCardPathPrefix()
128
// check sdcard status
129
String state = Environment.getExternalStorageState();
130
if( !Environment.MEDIA_MOUNTED.equals( state ) &&
131
!Environment.MEDIA_MOUNTED_READ_ONLY.equals( state ) )
140
sdcard_path = Environment.getExternalStorageDirectory()
142
if( sdcard_path.charAt( sdcard_path.length() - 1 ) == '/' )
144
sdcard_path.substring( 0, sdcard_path.length() - 1 );
146
catch( IOException e ) {
153
protected void updatePathButton()
155
Button path_button = (Button)findViewById( R.id.path );
156
if( _sdcard_prefix != null )
158
_file_chooser.prettyPrint( _sdcard_prefix + _path, true ) );
161
protected void onBrowse()
164
Button path_button = (Button)findViewById( R.id.path );
166
// set a path for this incantation
167
_file_chooser.setPath( path_button.getText().toString() );
169
showDialog( DIALOG_FILECHOOSER );
173
protected Dialog onCreateDialog( int id )
179
case DIALOG_FILECHOOSER:
180
ret = _file_chooser.onCreateDialog();
183
case DIALOG_NOSDCARD:
184
ret = new AlertDialog.Builder( this )
185
.setIcon( R.drawable.alert_dialog_icon )
186
.setTitle( R.string.error_title )
187
.setMessage( R.string.error_nosdcard )
188
.setPositiveButton( R.string.error_ok,
189
new DialogInterface.OnClickListener() {
190
public void onClick(DialogInterface dialog,
193
// close the whole app!
194
setResult( RESULT_OK );
206
protected void onPrepareDialog( int id, Dialog dialog )
210
case DIALOG_FILECHOOSER:
211
_file_chooser.onPrepareDialog( this, dialog );
215
super.onPrepareDialog( id, dialog );