/android/import-contacts

To get this branch, use:
bzr branch http://bzr.ed.am/android/import-contacts
6 by edam
- added GPL header comments to all files
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
1 by edam
Initial import
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;
9 by edam
- added scroll view to all layouts
35
	public static final int STATE_INTRO = 1;
11 by edam
- renamed ImportVCF class to ConfigureVCF
36
	public static final int STATE_CONFIGURE_VCF = 3;
9 by edam
- added scroll view to all layouts
37
	public static final int STATE_MERGE = 4;
38
	public static final int STATE_DOIT = 5;
1 by edam
Initial import
39
40
	private Stack< Integer > _stateStack;
41
42
	/** Called when the activity is first created. */
43
	@Override
13 by edam
- converted project to use Android 1.5 SDK
44
	public void onCreate( Bundle savedInstanceState )
45
	{
1 by edam
Initial import
46
		super.onCreate(savedInstanceState);
47
48
		_stateStack = new Stack< Integer >();
49
11 by edam
- renamed ImportVCF class to ConfigureVCF
50
		if( savedInstanceState == null )
51
		{
52
			startState( STATE_INTRO );
53
		}
54
		else
55
		{
56
			int[] stack = savedInstanceState.getIntArray( "_stateStack" );
57
			for( int n = 0; n < stack.length; n++ )
58
				_stateStack.push( stack[ n ] );
59
			int lastState = _stateStack.pop();
60
			startState( lastState );
61
		}
13 by edam
- converted project to use Android 1.5 SDK
62
	}
1 by edam
Initial import
63
64
	@Override
11 by edam
- renamed ImportVCF class to ConfigureVCF
65
	protected void onSaveInstanceState(Bundle outState) {
66
		super.onSaveInstanceState(outState);
67
		int[] stack = new int[ _stateStack.size() ];
68
		for( int n = 0; n < _stateStack.size(); n++ )
69
			stack[ n ] = _stateStack.elementAt( n );
70
		outState.putIntArray( "_stateStack", stack );
71
	}
72
73
	@Override
1 by edam
Initial import
74
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
75
	{
76
		super.onActivityResult(requestCode, resultCode, data);
77
78
		// quit?
79
		if( resultCode == RESULT_CANCELED ) {
80
			finish();
81
		}
82
		else {
83
			int newState = STATE_NONE;
84
			if( data != null ) {
85
				Bundle extras = data.getExtras();
86
				if( extras != null ) {
87
					Integer tmp = extras.getInt( "nextstate" );
88
					if( tmp != null ) {
89
						newState = tmp.intValue();
90
					}
91
				}
92
			}
93
			startState( newState );
11 by edam
- renamed ImportVCF class to ConfigureVCF
94
1 by edam
Initial import
95
		}
96
	}
97
98
	private void startState( int newState )
99
	{
100
		if( newState == STATE_NONE )
101
		{
102
			// we're going back, so pop top state off stack
103
			_stateStack.pop();
104
			newState = ( (Integer)_stateStack.peek() ).intValue();
105
		}
106
		else
107
		{
108
			// push new state on state
109
			_stateStack.push( new Integer( newState ) );
110
		}
111
112
		// figure out the class
113
		Class cls = null;
114
		switch( newState ) {
9 by edam
- added scroll view to all layouts
115
		case STATE_INTRO: cls = Intro.class; break;
11 by edam
- renamed ImportVCF class to ConfigureVCF
116
		case STATE_CONFIGURE_VCF: cls = ConfigureVCF.class; break;
1 by edam
Initial import
117
		case STATE_MERGE: cls = Merge.class; break;
118
		case STATE_DOIT: cls = Doit.class; break;
119
		}
120
121
		// start activity
122
		Intent i = new Intent( this, cls );
123
		if( _stateStack.size() > 1 ) i.putExtra( "backstate", true );
124
		startActivityForResult( i, 0 );
125
	}
13 by edam
- converted project to use Android 1.5 SDK
126
}