/android/import-contacts

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

« back to all changes in this revision

Viewing changes to src/org/waxworlds/importcontacts/ImportVCF.java

  • Committer: edam
  • Date: 2009-01-11 13:00:52 UTC
  • Revision ID: edam@waxworlds.org-20090111130052-q9bh0zz4ey47egbv
- updated todo list

Show diffs side-by-side

added added

removed removed

1
 
/*
2
 
 * ConfigureVCF.java
3
 
 *
4
 
 * Copyright (C) 2009 Tim Marston <edam@waxworlds.org>
5
 
 *
6
 
 * This file is part of the Import Contacts program (hereafter referred
7
 
 * to as "this program"). For more information, see
8
 
 * http://www.waxworlds.org/edam/software/android/import-contacts
9
 
 *
10
 
 * This program is free software: you can redistribute it and/or modify
11
 
 * it under the terms of the GNU General Public License as published by
12
 
 * the Free Software Foundation, either version 3 of the License, or
13
 
 * (at your option) any later version.
14
 
 *
15
 
 * This program is distributed in the hope that it will be useful,
16
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 
 * GNU General Public License for more details.
19
 
 *
20
 
 * You should have received a copy of the GNU General Public License
21
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
 
 */
23
 
 
24
 
package org.waxworlds.edam.importcontacts;
25
 
 
26
 
import android.app.AlertDialog;
27
 
import android.app.Dialog;
28
 
import android.content.DialogInterface;
 
1
package org.waxworlds.importcontacts;
 
2
 
29
3
import android.content.SharedPreferences;
30
4
import android.os.Bundle;
31
 
import android.view.LayoutInflater;
32
 
import android.view.View;
33
 
import android.widget.Button;
34
 
import android.widget.TextView;
 
5
import android.widget.EditText;
35
6
 
36
 
public class ConfigureVCF extends WizardActivity
 
7
public class ImportVCF extends WizardActivity
37
8
{
38
 
        public final static int DIALOG_FILEORDIR = 1;
39
 
        public final static int DIALOG_FILECHOOSER = 2;
40
 
 
41
 
        private FileChooser _file_chooser = null;
42
 
 
43
 
        // the save path
44
 
        private String _path;
45
 
 
46
 
        // was the dialog closed normally?
47
 
        private boolean _ok = false;
48
 
 
49
 
        // for the fileordir dialog, was file selected?
50
 
        boolean _ok_file;
51
 
 
52
 
        // reference to the dialog
53
 
        Dialog _dialog;
54
 
 
55
9
        @Override
56
10
        protected void onCreate( Bundle savedInstanceState )
57
11
        {
58
 
                setContentView( R.layout.configure_vcf );
 
12
                setContentView( R.layout.import_vcf );
59
13
                super.onCreate( savedInstanceState );
60
14
 
61
 
                setNextActivity( Merge.class );
62
 
 
63
 
                // create file chooser
64
 
                _file_chooser = new FileChooser();
65
 
                String[] extensions = { "vcf" };
66
 
                _file_chooser.setExtensions( extensions );
67
 
                _file_chooser.setDismissListener(
68
 
                        new DialogInterface.OnDismissListener() {
69
 
                                public void onDismiss( DialogInterface dialog )
70
 
                                {
71
 
                                        if( _file_chooser.getOk() ) {
72
 
                                                _path = _file_chooser.getPath();
73
 
                                                updatePathButton();
74
 
                                        }
75
 
                                }
76
 
                        } );
77
 
                _file_chooser.setPathPrefix( "/sdcard" );
78
 
 
79
 
                // set up browser button
80
 
                Button button = (Button)findViewById( R.id.path );
81
 
                button.setOnClickListener( new View.OnClickListener() {
82
 
                        public void onClick( View view ) {
83
 
                                onBrowse();
84
 
                        }
85
 
                } );
86
 
        }
87
 
 
88
 
        private void onBrowse()
89
 
        {
90
 
                showDialog( DIALOG_FILEORDIR );
91
 
        }
92
 
 
93
 
        private void showBrowseDialog()
94
 
        {
95
 
                // set a path for this incantation
96
 
                _file_chooser.setMode(
97
 
                        _ok_file? FileChooser.MODE_FILE : FileChooser.MODE_DIR );
98
 
                _file_chooser.setPath( _path );
99
 
 
100
 
                // show dialog
101
 
                showDialog( DIALOG_FILECHOOSER );
102
 
        }
103
 
 
104
 
        protected void updatePathButton()
105
 
        {
106
 
                Button path_button = (Button)findViewById( R.id.path );
107
 
                path_button.setText(
108
 
                        _file_chooser.prettyPrint( "/sdcard" + _path, true ) );
109
 
 
110
 
                TextView location_text = (TextView)findViewById( R.id.location );
111
 
                location_text.setText( getString( _path.endsWith( "/" )?
112
 
                        R.string.vcf_location_dir : R.string.vcf_location_file ) );
 
15
                setNextState( ImportContacts.STATE_MERGE );
113
16
        }
114
17
 
115
18
        @Override
118
21
 
119
22
                SharedPreferences.Editor editor = getSharedPreferences().edit();
120
23
 
121
 
                editor.putString( "location", _path );
 
24
                // location
 
25
                EditText location = (EditText)findViewById( R.id.location );
 
26
                editor.putString( "location", location.getText().toString() );
122
27
 
123
28
                editor.commit();
124
29
        }
130
35
                SharedPreferences prefs = getSharedPreferences();
131
36
 
132
37
                // location
133
 
                _path = prefs.getString( "location", "/" );
134
 
                updatePathButton();
135
 
        }
136
 
 
137
 
        @Override
138
 
        protected Dialog onCreateDialog( int id )
139
 
        {
140
 
                Dialog ret = null;
141
 
 
142
 
                switch( id )
143
 
                {
144
 
                case DIALOG_FILEORDIR:
145
 
                        // custom layout in an AlertDialog
146
 
                        LayoutInflater factory = LayoutInflater.from( this );
147
 
                        final View dialogView = factory.inflate(
148
 
                                R.layout.fileordir, null );
149
 
 
150
 
                        // wire up buttons
151
 
                        ( (Button)dialogView.findViewById(  R.id.file ) )
152
 
                                .setOnClickListener( new View.OnClickListener() {
153
 
                                        public void onClick( View view ) {
154
 
                                                _ok = true;
155
 
                                                _ok_file = true;
156
 
                                                _dialog.dismiss();
157
 
                                        }
158
 
                                } );
159
 
                        ( (Button)dialogView.findViewById(  R.id.dir ) )
160
 
                        .setOnClickListener( new View.OnClickListener() {
161
 
                                public void onClick( View view ) {
162
 
                                        _ok = true;
163
 
                                        _ok_file = false;
164
 
                                        _dialog.dismiss();
165
 
                                }
166
 
                        } );
167
 
 
168
 
                        _dialog = ret = new AlertDialog.Builder( this )
169
 
                                .setTitle( "Do you want to?" )
170
 
                                .setView( dialogView )
171
 
                                .create();
172
 
                        ret.setOnDismissListener(
173
 
                                new DialogInterface.OnDismissListener() {
174
 
                                        public void onDismiss( DialogInterface dialog )
175
 
                                        {
176
 
                                                if( _ok ) showBrowseDialog();
177
 
                                        }
178
 
                                } );
179
 
                        break;
180
 
 
181
 
                case DIALOG_FILECHOOSER:
182
 
                        ret = _file_chooser.onCreateDialog( this );
183
 
                        break;
184
 
                }
185
 
 
186
 
                return ret;
187
 
        }
188
 
 
189
 
        @Override
190
 
        protected void onPrepareDialog( int id, Dialog dialog )
191
 
        {
192
 
                switch( id )
193
 
                {
194
 
                case DIALOG_FILEORDIR:
195
 
                        _ok = false;
196
 
                        break;
197
 
 
198
 
                case DIALOG_FILECHOOSER:
199
 
                        _file_chooser.onPrepareDialog( this, dialog );
200
 
                        break;
201
 
                }
202
 
 
203
 
                super.onPrepareDialog( id, dialog );
 
38
                EditText location = (EditText)findViewById( R.id.location );
 
39
                location.setText( prefs.getString( "location", "/sdcard/contacts" ) );
204
40
        }
205
41
}