package org.safermobile.intheclear.screens;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import org.safermobile.intheclear.ITCConstants;
import org.safermobile.intheclear.R;
import org.safermobile.intheclear.ui.WipeArrayAdaptor;
import org.safermobile.intheclear.ui.WipeSelector;
import org.safermobile.intheclear.ui.WipeSelector.Color;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
public class WipePreferences extends Activity implements OnClickListener {
Button confirmSelection;
ArrayList<WipeSelector> wipeOptions;
ListView list;
boolean defaultContacts, defaultPhotos, defaultCallLog, defaultSMS, defaultCalendar, defaultSDCard = false;
boolean defaultNone = true;
@SuppressWarnings("unchecked")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wipe_selector);
confirmSelection = (Button) findViewById(R.id.confirmSelection);
confirmSelection.setOnClickListener(this);
wipeOptions = new ArrayList<WipeSelector>();
/*
* If this activity is started with preconfigured user preferences,
* (which would be passed in as a bundle)
* we must automatically populate them here
*/
try {
if(getIntent().getSerializableExtra(ITCConstants.Preference.WIPE_SELECTOR) != null) {
Map<Integer,Boolean> wipePreferences =
((ArrayList<Map<Integer,Boolean>>) getIntent().getSerializableExtra(ITCConstants.Preference.WIPE_SELECTOR)).get(0);
defaultContacts = wipePreferences.get(ITCConstants.Wipe.CONTACTS);
defaultPhotos = wipePreferences.get(ITCConstants.Wipe.PHOTOS);
defaultCallLog = wipePreferences.get(ITCConstants.Wipe.CALLLOG);
defaultSMS = wipePreferences.get(ITCConstants.Wipe.SMS);
defaultCalendar = wipePreferences.get(ITCConstants.Wipe.CALENDAR);
defaultSDCard = wipePreferences.get(ITCConstants.Wipe.SDCARD);
if(
defaultContacts == true ||
defaultPhotos == true ||
defaultCallLog == true ||
defaultSMS == true ||
defaultCalendar == true ||
defaultSDCard == true
)
defaultNone = false;
}
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_NONE),
ITCConstants.Wipe.NONE,
defaultNone
));
} catch(NullPointerException e) {}
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_WIPECONTACTS),
ITCConstants.Wipe.CONTACTS,
defaultContacts));
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_WIPEPHOTOS),
ITCConstants.Wipe.PHOTOS,
defaultPhotos));
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_CALLLOG),
ITCConstants.Wipe.CALLLOG,
defaultCallLog));
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_SMS),
ITCConstants.Wipe.SMS,
defaultSMS));
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_CALENDAR),
ITCConstants.Wipe.CALENDAR,
defaultCalendar));
wipeOptions.add(new WipeSelector(
getResources().getString(R.string.KEY_WIPE_SDCARD),
ITCConstants.Wipe.SDCARD,
defaultSDCard
));
for(WipeSelector w : wipeOptions) {
if(w.getWipeType() == ITCConstants.Wipe.NONE) {
w.setColor(Color.SELECTABLE);
w.setIsToggleControl(true);
}
}
list = (ListView) findViewById(R.id.wipeSelectionHolder);
list.setAdapter(new WipeArrayAdaptor(this,wipeOptions));
}
@Override
public void onClick(View v) {
if(v == confirmSelection) {
Intent i = new Intent();
ArrayList<Map<Integer,Boolean>> wipePreferencesHolder = new ArrayList<Map<Integer,Boolean>>();
Map<Integer,Boolean> wipePreferencesReturned = new HashMap<Integer,Boolean>();
for(WipeSelector ws : wipeOptions) {
wipePreferencesReturned.put(ws.getWipeType(), ws.getSelected());
}
wipePreferencesHolder.add(wipePreferencesReturned);
i.putExtra(ITCConstants.Preference.WIPE_SELECTOR, wipePreferencesHolder);
setResult(RESULT_OK,i);
finish();
}
}
}