/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/am/ed/exportcontacts/ConfigureVCF.java

  • Committer: Tim Marston
  • Date: 2014-03-02 11:03:07 UTC
  • Revision ID: tim@ed.am-20140302110307-nnrn9dhfnjg06lve
removed some unused code, fixed locale warnings and made showContinueOrAbort()
abort implicitly (rather than return false); added check for unidentifiable
contacts; fixed spelling mistake

Show diffs side-by-side

added added

removed removed

1
1
/*
2
2
 * ConfigureVCF.java
3
3
 *
4
 
 * Copyright (C) 2010 Tim Marston <edam@waxworlds.org>
 
4
 * Copyright (C) 2010 Tim Marston <tim@ed.am>
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://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
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 org.waxworlds.edam.exportcontacts;
25
 
 
 
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;
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;
29
37
 
30
38
public class ConfigureVCF extends WizardActivity
31
39
{
 
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
 
32
51
        @Override
33
52
        protected void onCreate( Bundle savedInstanceState )
34
53
        {
35
54
                setContentView( R.layout.configure_vcf );
36
55
                super.onCreate( savedInstanceState );
37
56
 
38
 
//              setNextActivity( Doit.class );
 
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
                } );
39
89
        }
40
90
 
41
91
        @Override
44
94
 
45
95
                SharedPreferences.Editor editor = getSharedPreferences().edit();
46
96
 
47
 
                // location
48
 
                EditText location = (EditText)findViewById( R.id.location );
49
 
                editor.putString( "location", location.getText().toString() );
 
97
                // path and filename
 
98
                editor.putString( "path", _path );
 
99
                EditText filename = (EditText)findViewById( R.id.filename );
 
100
                editor.putString( "filename", filename.getText().toString() );
50
101
 
51
102
                editor.commit();
52
103
        }
57
108
 
58
109
                SharedPreferences prefs = getSharedPreferences();
59
110
 
60
 
                // location
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 ) );
 
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 );
63
216
        }
64
217
}