diff --git a/res/layout/activity_addressbook.xml b/res/layout/fragment_listview.xml similarity index 84% rename from res/layout/activity_addressbook.xml rename to res/layout/fragment_listview.xml index 4c7dc6b684ba156f142e96862ecde1e1027c7e08..0f6d819789b8920228e22f3fe12edf4f22d20ed5 100644 --- a/res/layout/activity_addressbook.xml +++ b/res/layout/fragment_listview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/addressbook_list" + android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" > diff --git a/src/net/i2p/android/router/activity/LicenseActivity.java b/src/net/i2p/android/router/activity/LicenseActivity.java index 11ecae754eecf4adcf973f7dc7de2df8cc62842a..0a7ca334eafe5f87224e8cf1b429702373830a1e 100644 --- a/src/net/i2p/android/router/activity/LicenseActivity.java +++ b/src/net/i2p/android/router/activity/LicenseActivity.java @@ -1,46 +1,19 @@ package net.i2p.android.router.activity; -import android.app.ListActivity; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; import net.i2p.android.router.R; -import net.i2p.android.router.fragment.TextResourceFragment; - -public class LicenseActivity extends ListActivity { - - private static final String[] names = { - "Android Application License", "Apache 2.0", - "Router License Overview", "Blockfile", "Crypto Filters", "ElGamal / DSA", - "GPLv2", "LGPLv2.1", "GPLv3", "LGPLv3", "FatCowIcons", - "Ministreaming", - "InstallCert", "SHA-256", "SNTP", "Addressbook"}; - - private static final int[] files = { - R.raw.license_app_txt, R.raw.license_apache20_txt, - R.raw.licenses_txt, R.raw.license_blockfile_txt, R.raw.license_bsd_txt, R.raw.license_elgamaldsa_txt, - R.raw.license_gplv2_txt, R.raw.license_lgplv2_1_txt, R.raw.license_gplv3_txt, R.raw.license_lgplv3_txt, - R.raw.license_fatcowicons_txt, R.raw.license_bsd_txt, - R.raw.license_installcert_txt, R.raw.license_sha256_txt, R.raw.license_sntp_txt, R.raw.license_addressbook_txt}; +import net.i2p.android.router.fragment.LicenseFragment; +import android.os.Bundle; +public class LicenseActivity extends I2PActivityBase { @Override - public void onCreate(Bundle savedInstanceState) - { + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names)); - ListView lv = getListView(); - - // set the callback - lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { - public void onItemClick(AdapterView parent, View view, int pos, long id) { - Intent intent = new Intent(view.getContext(), TextResourceFragment.class); - intent.putExtra(TextResourceFragment.TEXT_RESOURCE_ID, files[pos]); - startActivity(intent); - } - }); + // Start with the base view + if (savedInstanceState == null) { + LicenseFragment f = new LicenseFragment(); + f.setArguments(getIntent().getExtras()); + getSupportFragmentManager().beginTransaction() + .add(R.id.main_content, f).commit(); + } } } diff --git a/src/net/i2p/android/router/fragment/AddressbookFragment.java b/src/net/i2p/android/router/fragment/AddressbookFragment.java index 752ee97a02f85ccdeba658f29bdd99054f82c85d..4d08f108258722035763e1964813901e57276406 100644 --- a/src/net/i2p/android/router/fragment/AddressbookFragment.java +++ b/src/net/i2p/android/router/fragment/AddressbookFragment.java @@ -35,7 +35,7 @@ public class AddressbookFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.activity_addressbook, container, false); + View v = inflater.inflate(R.layout.fragment_listview, container, false); // Grab context if router has started, otherwise create new // FIXME dup contexts, locking, ... @@ -62,7 +62,7 @@ public class AddressbookFragment extends Fragment { tv.setText("1 host in address book."); else tv.setText("No hosts in address book, or your router is not up."); - ListView lv = (ListView) v.findViewById(R.id.addressbook_list); + ListView lv = (ListView) v.findViewById(R.id.listview); lv.addHeaderView(tv, "", false); // set the list diff --git a/src/net/i2p/android/router/fragment/LicenseFragment.java b/src/net/i2p/android/router/fragment/LicenseFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..f1e0374590fc46a7818183619f599dac6b655aaf --- /dev/null +++ b/src/net/i2p/android/router/fragment/LicenseFragment.java @@ -0,0 +1,51 @@ +package net.i2p.android.router.fragment; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import net.i2p.android.router.R; + +public class LicenseFragment extends Fragment { + + private static final String[] names = { + "Android Application License", "Apache 2.0", + "Router License Overview", "Blockfile", "Crypto Filters", "ElGamal / DSA", + "GPLv2", "LGPLv2.1", "GPLv3", "LGPLv3", "FatCowIcons", + "Ministreaming", + "InstallCert", "SHA-256", "SNTP", "Addressbook"}; + + private static final int[] files = { + R.raw.license_app_txt, R.raw.license_apache20_txt, + R.raw.licenses_txt, R.raw.license_blockfile_txt, R.raw.license_bsd_txt, R.raw.license_elgamaldsa_txt, + R.raw.license_gplv2_txt, R.raw.license_lgplv2_1_txt, R.raw.license_gplv3_txt, R.raw.license_lgplv3_txt, + R.raw.license_fatcowicons_txt, R.raw.license_bsd_txt, + R.raw.license_installcert_txt, R.raw.license_sha256_txt, R.raw.license_sntp_txt, R.raw.license_addressbook_txt}; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.fragment_listview, container, false); + + ListView lv = (ListView) v.findViewById(R.id.listview); + lv.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, names)); + + // set the callback + lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { + public void onItemClick(AdapterView parent, View view, int pos, long id) { + TextResourceDialog dialog = new TextResourceDialog(); + Bundle args = new Bundle(); + args.putString(TextResourceDialog.TEXT_DIALOG_TITLE, names[pos]); + args.putInt(TextResourceDialog.TEXT_RESOURCE_ID, files[pos]); + dialog.setArguments(args); + dialog.show(getActivity().getSupportFragmentManager(), "license"); + } + }); + + return v; + } +} diff --git a/src/net/i2p/android/router/fragment/MainFragment.java b/src/net/i2p/android/router/fragment/MainFragment.java index fd62c2f64c6b0c3b9ebae6b228148154c08189c5..1b55062f25891f319dfcb58e64427b4cac3ebd8a 100644 --- a/src/net/i2p/android/router/fragment/MainFragment.java +++ b/src/net/i2p/android/router/fragment/MainFragment.java @@ -74,9 +74,9 @@ public class MainFragment extends I2PFragmentBase { b.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { - TextResourceFragment f = new TextResourceFragment(); + TextResourceDialog f = new TextResourceDialog(); Bundle args = new Bundle(); - args.putInt(TextResourceFragment.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); + args.putInt(TextResourceDialog.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); f.setArguments(args); getActivity().getSupportFragmentManager() .beginTransaction() diff --git a/src/net/i2p/android/router/fragment/TextResourceFragment.java b/src/net/i2p/android/router/fragment/TextResourceDialog.java similarity index 88% rename from src/net/i2p/android/router/fragment/TextResourceFragment.java rename to src/net/i2p/android/router/fragment/TextResourceDialog.java index 90e1f4bfe4921d5e64d8dfbb1245882e64b35abe..e4556dd3987fa58e12224ade8e763c1c9bcacddc 100644 --- a/src/net/i2p/android/router/fragment/TextResourceFragment.java +++ b/src/net/i2p/android/router/fragment/TextResourceDialog.java @@ -2,6 +2,7 @@ package net.i2p.android.router.fragment; import android.content.res.Resources; import android.os.Bundle; +import android.support.v4.app.DialogFragment; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; @@ -18,8 +19,9 @@ import net.i2p.android.router.util.Util; * Display a raw text resource. * The resource ID must be passed as an extra in the intent. */ -public class TextResourceFragment extends I2PFragmentBase { +public class TextResourceDialog extends DialogFragment { + public static final String TEXT_DIALOG_TITLE = "text_title"; public final static String TEXT_RESOURCE_ID = "text_resource_id"; @Override @@ -29,6 +31,9 @@ public class TextResourceFragment extends I2PFragmentBase { View v = inflater.inflate(R.layout.text_resource, container, false); TextView tv = (TextView) v.findViewById(R.id.text_resource_text); tv.setMovementMethod(ScrollingMovementMethod.getInstance()); + String title = getArguments().getString(TEXT_DIALOG_TITLE); + if (title != null) + getDialog().setTitle(title); int id = getArguments().getInt(TEXT_RESOURCE_ID, R.raw.releasenotes_txt); if (id == R.raw.releasenotes_txt) tv.setText("Release Notes for Release " + Util.getOurVersion(getActivity()) + "\n\n" + diff --git a/src/net/i2p/android/router/fragment/VersionDialog.java b/src/net/i2p/android/router/fragment/VersionDialog.java index 5c59c45c9ec8303464201331112a627bb1be983c..c9bb2d88fec175ec43e638abcbd0b4a51d3b771a 100644 --- a/src/net/i2p/android/router/fragment/VersionDialog.java +++ b/src/net/i2p/android/router/fragment/VersionDialog.java @@ -65,9 +65,9 @@ public class VersionDialog extends DialogFragment { .findFragmentById(R.id.main_content); fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion); dialog.cancel(); - TextResourceFragment f = new TextResourceFragment(); + TextResourceDialog f = new TextResourceDialog(); Bundle args = new Bundle(); - args.putInt(TextResourceFragment.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); + args.putInt(TextResourceDialog.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); f.setArguments(args); getActivity().getSupportFragmentManager() .beginTransaction() @@ -116,9 +116,9 @@ public class VersionDialog extends DialogFragment { dialog.dismiss(); } catch(Exception e) { } - TextResourceFragment f = new TextResourceFragment(); + TextResourceDialog f = new TextResourceDialog(); Bundle args = new Bundle(); - args.putInt(TextResourceFragment.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); + args.putInt(TextResourceDialog.TEXT_RESOURCE_ID, R.raw.releasenotes_txt); f.setArguments(args); getActivity().getSupportFragmentManager() .beginTransaction()