/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/ImportContacts.java

  • Committer: edam
  • Date: 2009-01-13 06:35:26 UTC
  • Revision ID: edam@waxworlds.org-20090113063526-l9t1s9git4bav60a
- new contact's phone numebrs and email addresses are added to the caches after those contacts are updated to account for the situation where the same contact is imported again from another file (or the contact exists twice in the same file!?)

Show diffs side-by-side

added added

removed removed

 
1
/*
 
2
 * ImportContacts.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.importcontacts;
 
25
 
 
26
import java.util.Stack;
 
27
 
 
28
import android.app.Activity;
 
29
import android.content.Intent;
 
30
import android.os.Bundle;
 
31
 
 
32
public class ImportContacts extends Activity
 
33
{
 
34
        public static final int STATE_NONE = 0;
 
35
        public static final int STATE_IMPORT_VCF = 1;
 
36
        public static final int STATE_MERGE = 2;
 
37
        public static final int STATE_DOIT = 3;
 
38
 
 
39
        private Stack< Integer > _stateStack;
 
40
 
 
41
        /** Called when the activity is first created. */
 
42
        @Override
 
43
    public void onCreate(Bundle savedInstanceState)
 
44
    {
 
45
                super.onCreate(savedInstanceState);
 
46
 
 
47
                _stateStack = new Stack< Integer >();
 
48
 
 
49
                startState( STATE_IMPORT_VCF );
 
50
    }
 
51
 
 
52
        @Override
 
53
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
 
54
        {
 
55
                super.onActivityResult(requestCode, resultCode, data);
 
56
 
 
57
                // quit?
 
58
                if( resultCode == RESULT_CANCELED ) {
 
59
                        finish();
 
60
                }
 
61
                else {
 
62
                        int newState = STATE_NONE;
 
63
                        if( data != null ) {
 
64
                                Bundle extras = data.getExtras();
 
65
                                if( extras != null ) {
 
66
                                        Integer tmp = extras.getInt( "nextstate" );
 
67
                                        if( tmp != null ) {
 
68
                                                newState = tmp.intValue();
 
69
                                        }
 
70
                                }
 
71
                        }
 
72
                        startState( newState );
 
73
                }
 
74
        }
 
75
 
 
76
        private void startState( int newState )
 
77
        {
 
78
                if( newState == STATE_NONE )
 
79
                {
 
80
                        // we're going back, so pop top state off stack
 
81
                        _stateStack.pop();
 
82
                        newState = ( (Integer)_stateStack.peek() ).intValue();
 
83
                }
 
84
                else
 
85
                {
 
86
                        // push new state on state
 
87
                        _stateStack.push( new Integer( newState ) );
 
88
                }
 
89
 
 
90
                // figure out the class
 
91
                Class cls = null;
 
92
                switch( newState ) {
 
93
                case STATE_IMPORT_VCF: cls = ImportVCF.class; break;
 
94
                case STATE_MERGE: cls = Merge.class; break;
 
95
                case STATE_DOIT: cls = Doit.class; break;
 
96
                }
 
97
 
 
98
                // start activity
 
99
                Intent i = new Intent( this, cls );
 
100
                if( _stateStack.size() > 1 ) i.putExtra( "backstate", true );
 
101
                startActivityForResult( i, 0 );
 
102
        }
 
103
}
 
 
'\\ No newline at end of file'