From 8c288ad55964e493c09cc6afa1bb69f19677f8ef Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Fri, 15 Nov 2013 10:04:49 +0000 Subject: [PATCH] Basic add-to-private-book wizard, does nothing --- AndroidManifest.xml.in | 4 ++ .../AddressbookAddWizardActivity.java | 43 +++++++++++++++++++ .../activity/AddressbookAddWizardModel.java | 29 +++++++++++++ .../router/fragment/AddressbookFragment.java | 27 +++++++++++- 4 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java create mode 100644 src/net/i2p/android/router/activity/AddressbookAddWizardModel.java diff --git a/AndroidManifest.xml.in b/AndroidManifest.xml.in index 5216c2375..1c60ece10 100644 --- a/AndroidManifest.xml.in +++ b/AndroidManifest.xml.in @@ -72,6 +72,10 @@ <meta-data android:name="android.app.searchable" android:resource="@xml/searchable_addressbook"/> </activity> + <activity android:name=".activity.AddressbookAddWizardActivity" + android:label="Add new Destination" + android:parentActivityName=".activity.AddressbookActivity" > + </activity> <activity android:name="net.i2p.android.i2ptunnel.activity.TunnelListActivity" android:label="I2PTunnel" android:launchMode="singleTop" > diff --git a/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java b/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java new file mode 100644 index 000000000..13d605077 --- /dev/null +++ b/src/net/i2p/android/router/activity/AddressbookAddWizardActivity.java @@ -0,0 +1,43 @@ +package net.i2p.android.router.activity; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import net.i2p.android.router.fragment.AddressbookFragment; +import net.i2p.android.wizard.model.AbstractWizardModel; +import net.i2p.android.wizard.ui.AbstractWizardActivity; + +public class AddressbookAddWizardActivity extends AbstractWizardActivity { + @Override + protected AbstractWizardModel onCreateModel() { + return new AddressbookAddWizardModel(this); + } + + @Override + protected DialogFragment onGetFinishWizardDialog() { + return new DialogFragment() { + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AlertDialog.Builder(getActivity()) + .setMessage("Add to private addressbook?") + .setPositiveButton("Add", + new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + Intent result = new Intent(); + setResult(Activity.RESULT_OK, result); + result.putExtra(AddressbookFragment.ADD_WIZARD_DATA, mWizardModel.save()); + dialog.dismiss(); + finish(); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .create(); + } + }; + } +} diff --git a/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java b/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java new file mode 100644 index 000000000..c3cd99421 --- /dev/null +++ b/src/net/i2p/android/router/activity/AddressbookAddWizardModel.java @@ -0,0 +1,29 @@ +package net.i2p.android.router.activity; + +import android.content.Context; +import android.content.res.Resources; +import net.i2p.android.wizard.model.AbstractWizardModel; +import net.i2p.android.wizard.model.PageList; +import net.i2p.android.wizard.model.SingleTextFieldPage; + +public class AddressbookAddWizardModel extends AbstractWizardModel { + public AddressbookAddWizardModel(Context context) { + super(context); + } + + @Override + protected PageList onNewRootPageList() { + Resources res = mContext.getResources(); + + return new PageList( + new SingleTextFieldPage(this, "Name") + .setDescription("The name") + .setRequired(true), + + new SingleTextFieldPage(this, "Destination") + .setDescription("The destination") + .setRequired(true) + ); + } + +} diff --git a/src/net/i2p/android/router/fragment/AddressbookFragment.java b/src/net/i2p/android/router/fragment/AddressbookFragment.java index 700275c36..8f2dc2ee5 100644 --- a/src/net/i2p/android/router/fragment/AddressbookFragment.java +++ b/src/net/i2p/android/router/fragment/AddressbookFragment.java @@ -15,6 +15,7 @@ import android.widget.ListView; import android.widget.TextView; import java.util.List; import net.i2p.android.router.R; +import net.i2p.android.router.activity.AddressbookAddWizardActivity; import net.i2p.android.router.activity.AddressbookSettingsActivity; import net.i2p.android.router.activity.HelpActivity; import net.i2p.android.router.adapter.AddressEntryAdapter; @@ -28,6 +29,9 @@ public class AddressbookFragment extends ListFragment implements public static final String BOOK_NAME = "book_name"; public static final String ROUTER_BOOK = "hosts.txt"; public static final String PRIVATE_BOOK = "privatehosts.txt"; + public static final String ADD_WIZARD_DATA = "add_wizard_data"; + + static final int ADD_WIZARD_REQUEST = 1; private static final int ROUTER_LOADER_ID = 1; private static final int PRIVATE_LOADER_ID = 2; @@ -116,8 +120,10 @@ public class AddressbookFragment extends ListFragment implements // Handle presses on the action bar items switch (item.getItemId()) { - //case R.id.action_add_to_addressbook: - // return true; + case R.id.action_add_to_addressbook: + Intent wi = new Intent(getActivity(), AddressbookAddWizardActivity.class); + startActivityForResult(wi, ADD_WIZARD_REQUEST); + return true; case R.id.action_addressbook_settings: Intent si = new Intent(getActivity(), AddressbookSettingsActivity.class); startActivity(si); @@ -132,6 +138,23 @@ public class AddressbookFragment extends ListFragment implements } } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == ADD_WIZARD_REQUEST && + resultCode == Activity.RESULT_OK && + PRIVATE_BOOK.equals(mBook)) { + // Save the new entry + Bundle entryData = data.getExtras().getBundle(ADD_WIZARD_DATA); + // Reload the list + if (getRouterContext() != null) { + setListShown(false); + getLoaderManager().restartLoader(PRIVATE_LOADER_ID, null, this); + } else { + // Just add to list + } + } + } + public void filterAddresses(String query) { mCurFilter = !TextUtils.isEmpty(query) ? query : null; setListShown(false); -- GitLab