/android/export-contacts

To get this branch, use:
bzr branch http://bzr.ed.am/android/export-contacts

« back to all changes in this revision

Viewing changes to src/org/waxworlds/edam/exportcontacts/ConfigureVCF.java

  • Committer: edam
  • Date: 2010-07-04 14:54:18 UTC
  • Revision ID: edam@waxworlds.org-20100704145418-vcpya2sxsop0dlrq
- initial checkin
- copied intro and basic vcf-configure activities from import-contacts
- copied WizzardActivity class from import-contacts

Show diffs side-by-side

added added

removed removed

1
1
/*
2
2
 * ConfigureVCF.java
3
3
 *
4
 
 * Copyright (C) 2010 Tim Marston <tim@ed.am>
 
4
 * Copyright (C) 2010 Tim Marston <edam@waxworlds.org>
5
5
 *
6
6
 * This file is part of the Export Contacts program (hereafter referred
7
 
 * to as "this program").  For more information, see
8
 
 * http://ed.am/dev/android/export-contacts
 
7
 * to as "this program"). For more information, see
 
8
 * http://www.waxworlds.org/edam/software/android/export-contacts
9
9
 *
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/>.
22
22
 */
23
23
 
24
 
package am.ed.exportcontacts;
25
 
 
26
 
import java.io.IOException;
27
 
 
28
 
import android.app.AlertDialog;
29
 
import android.app.Dialog;
30
 
import android.content.DialogInterface;
 
24
package org.waxworlds.edam.exportcontacts;
 
25
 
31
26
import android.content.SharedPreferences;
32
27
import android.os.Bundle;
33
 
import android.os.Environment;
34
 
import android.view.View;
35
 
import android.widget.Button;
36
28
import android.widget.EditText;
37
29
 
38
30
public class ConfigureVCF extends WizardActivity
39
31
{
40
 
        public final static int DIALOG_FILECHOOSER = 1;
41
 
        public final static int DIALOG_NOSDCARD = 2;
42
 
 
43
 
        private FileChooser _file_chooser = null;
44
 
 
45
 
        // the sdcard path prefix
46
 
        private String _sdcard_prefix;
47
 
 
48
 
        // the save path
49
 
        private String _path;
50
 
 
51
32
        @Override
52
33
        protected void onCreate( Bundle savedInstanceState )
53
34
        {
54
35
                setContentView( R.layout.configure_vcf );
55
36
                super.onCreate( savedInstanceState );
56
37
 
57
 
                setNextActivity( Doit.class );
58
 
 
59
 
                // get sdcard prefix
60
 
                _sdcard_prefix = getSdCardPathPrefix();
61
 
                if( _sdcard_prefix == null )
62
 
                        showDialog( DIALOG_NOSDCARD );
63
 
 
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 )
72
 
                                {
73
 
                                        if( _file_chooser.getOk() ) {
74
 
                                                _path = _file_chooser.getPath();
75
 
                                                updatePathButton();
76
 
                                        }
77
 
                                }
78
 
                        } );
79
 
                if( _sdcard_prefix != null )
80
 
                        _file_chooser.setPathPrefix( _sdcard_prefix );
81
 
 
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 ) {
86
 
                                onBrowse();
87
 
                        }
88
 
                } );
 
38
//              setNextActivity( Doit.class );
89
39
        }
90
40
 
91
41
        @Override
94
44
 
95
45
                SharedPreferences.Editor editor = getSharedPreferences().edit();
96
46
 
97
 
                // path and filename
98
 
                editor.putString( "path", _path );
99
 
                EditText filename = (EditText)findViewById( R.id.filename );
100
 
                editor.putString( "filename", filename.getText().toString() );
 
47
                // location
 
48
                EditText location = (EditText)findViewById( R.id.location );
 
49
                editor.putString( "location", location.getText().toString() );
101
50
 
102
51
                editor.commit();
103
52
        }
108
57
 
109
58
                SharedPreferences prefs = getSharedPreferences();
110
59
 
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 ) );
117
 
*/
118
 
                // path and filename
119
 
                _path = prefs.getString( "path", "/" );
120
 
                updatePathButton();
121
 
                EditText filename = (EditText)findViewById( R.id.filename );
122
 
                filename.setText( prefs.getString( "filename",
123
 
                        "android-contacts.vcf" ) );
124
 
        }
125
 
 
126
 
        static protected String getSdCardPathPrefix()
127
 
        {
128
 
                // check sdcard status
129
 
                String state = Environment.getExternalStorageState();
130
 
                if( !Environment.MEDIA_MOUNTED.equals( state ) &&
131
 
                        !Environment.MEDIA_MOUNTED_READ_ONLY.equals( state ) )
132
 
                {
133
 
                        // no sdcard mounted
134
 
                        return null;
135
 
                }
136
 
 
137
 
                // get sdcard path
138
 
                String sdcard_path;
139
 
                try {
140
 
                        sdcard_path = Environment.getExternalStorageDirectory()
141
 
                                .getCanonicalPath();
142
 
                        if( sdcard_path.charAt( sdcard_path.length() - 1 ) == '/' )
143
 
                                sdcard_path =
144
 
                                        sdcard_path.substring( 0, sdcard_path.length() - 1 );
145
 
                }
146
 
                catch( IOException e ) {
147
 
                        sdcard_path = null;
148
 
                }
149
 
 
150
 
                return sdcard_path;
151
 
        }
152
 
 
153
 
        protected void updatePathButton()
154
 
        {
155
 
                Button path_button = (Button)findViewById( R.id.path );
156
 
                if( _sdcard_prefix != null )
157
 
                        path_button.setText(
158
 
                                _file_chooser.prettyPrint( _sdcard_prefix + _path, true ) );
159
 
        }
160
 
 
161
 
        protected void onBrowse()
162
 
        {
163
 
                // get path
164
 
                Button path_button = (Button)findViewById( R.id.path );
165
 
 
166
 
                // set a path for this incantation
167
 
                _file_chooser.setPath( path_button.getText().toString() );
168
 
 
169
 
                showDialog( DIALOG_FILECHOOSER );
170
 
        }
171
 
 
172
 
        @Override
173
 
        protected Dialog onCreateDialog( int id )
174
 
        {
175
 
                Dialog ret = null;
176
 
 
177
 
                switch( id )
178
 
                {
179
 
                case DIALOG_FILECHOOSER:
180
 
                        ret = _file_chooser.onCreateDialog();
181
 
                        break;
182
 
 
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,
191
 
                                                int whichButton)
192
 
                                        {
193
 
                                                // close the whole app!
194
 
                                                setResult( RESULT_OK );
195
 
                                                finish();
196
 
                                        }
197
 
                                } )
198
 
                        .create();
199
 
                        break;
200
 
                }
201
 
 
202
 
                return ret;
203
 
        }
204
 
 
205
 
        @Override
206
 
        protected void onPrepareDialog( int id, Dialog dialog )
207
 
        {
208
 
                switch( id )
209
 
                {
210
 
                case DIALOG_FILECHOOSER:
211
 
                        _file_chooser.onPrepareDialog( this, dialog );
212
 
                        break;
213
 
                }
214
 
 
215
 
                super.onPrepareDialog( id, dialog );
 
60
                // location
 
61
                EditText location = (EditText)findViewById( R.id.location );
 
62
                location.setText( prefs.getString( "location", "/sdcard/contacts.vcf" ) );
216
63
        }
217
64
}