I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit a42a4b2c authored by str4d's avatar str4d
Browse files

Reworked help navigation

parent 96f5c2b4
No related branches found
No related tags found
No related merge requests found
......@@ -59,6 +59,14 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="net.i2p.android.router.MainActivity" />
</activity>
<activity
android:name="net.i2p.android.help.BrowserConfigActivity"
android:label="Browser Configuration"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="net.i2p.android.router.MainActivity" />
</activity>
<activity
android:name=".LicenseActivity"
android:label="I2P License Information"
......
......@@ -2,38 +2,23 @@ package net.i2p.android.help;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ScrollView;
import android.widget.Spinner;
import net.i2p.android.router.LicenseActivity;
import net.i2p.android.router.R;
import net.i2p.android.router.dialog.TextResourceDialog;
import org.sufficientlysecure.htmltextview.HtmlTextView;
import java.lang.reflect.Field;
public class HelpActivity extends ActionBarActivity implements
BrowserAdapter.OnBrowserSelectedListener {
HelpListFragment.OnEntrySelectedListener {
public static final String CATEGORY = "help_category";
public static final int CAT_MAIN = 0;
public static final int CAT_CONFIGURE_BROWSER = 1;
public static final int CAT_ADDRESSBOOK = 2;
public static final int CAT_I2PTUNNEL = 3;
private Spinner mSpinner;
/**
* Whether or not the activity is in two-pane mode, i.e. running on a tablet
* device.
......@@ -49,22 +34,6 @@ public class HelpActivity extends ActionBarActivity implements
Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(toolbar);
mSpinner = (Spinner) findViewById(R.id.main_spinner);
mSpinner.setAdapter(ArrayAdapter.createFromResource(this,
R.array.help_categories, android.R.layout.simple_spinner_dropdown_item));
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
showCategory(i);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
if (findViewById(R.id.detail_fragment) != null) {
// The detail container view will be present only in the
// large-screen layouts (res/values-large and
......@@ -73,73 +42,15 @@ public class HelpActivity extends ActionBarActivity implements
mTwoPane = true;
}
int category;
if (savedInstanceState != null) {
int selected = savedInstanceState.getInt(CATEGORY);
mSpinner.setSelection(selected);
} else {
category = getIntent().getIntExtra(CATEGORY, CAT_MAIN);
// TODO remove when addressbook and I2PTunnel help added
if (category > CAT_CONFIGURE_BROWSER)
category = CAT_MAIN;
mSpinner.setSelection(category);
showCategory(category);
}
}
private void showCategory(int category) {
Fragment f;
switch (category) {
case CAT_CONFIGURE_BROWSER:
f = new BrowserListFragment();
break;
case CAT_ADDRESSBOOK:
f = HelpHtmlFragment.newInstance(R.raw.help_addressbook);
break;
case CAT_I2PTUNNEL:
f = HelpHtmlFragment.newInstance(R.raw.help_i2ptunnel);
break;
case CAT_MAIN:
default:
f = HelpHtmlFragment.newInstance(R.raw.help_main);
break;
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_fragment, f);
if (mTwoPane) {
Fragment df = getSupportFragmentManager().findFragmentById(R.id.detail_fragment);
if (df != null)
ft.remove(df);
}
ft.commit();
}
public static class HelpHtmlFragment extends Fragment {
public static final String ARG_HTML_FILE = "htmlFile";
static HelpHtmlFragment newInstance(int htmlFile) {
HelpHtmlFragment f = new HelpHtmlFragment();
Bundle args = new Bundle();
args.putInt(ARG_HTML_FILE, htmlFile);
f.setArguments(args);
return f;
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.main_fragment, new HelpListFragment())
.commit();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ScrollView scroller = new ScrollView(getActivity());
HtmlTextView text = new HtmlTextView(getActivity());
scroller.addView(text);
int padH = getResources().getDimensionPixelOffset(R.dimen.activity_horizontal_margin);
int padV = getResources().getDimensionPixelOffset(R.dimen.activity_vertical_margin);
text.setPadding(padH, padV, padH, padV);
text.setHtmlFromRawResource(getActivity(), getArguments().getInt(ARG_HTML_FILE), true);
return scroller;
}
int category = getIntent().getIntExtra(CATEGORY, -1);
if (category >= 0)
showCategory(category);
}
@Override
......@@ -169,46 +80,41 @@ public class HelpActivity extends ActionBarActivity implements
}
}
// HelpListFragment.OnEntrySelectedListener
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(CATEGORY, mSpinner.getSelectedItemPosition());
public void onEntrySelected(int entry) {
if (entry == CAT_CONFIGURE_BROWSER) {
Intent i = new Intent(this, BrowserConfigActivity.class);
startActivity(i);
} else
showCategory(entry);
}
// BrowserAdapter.OnBrowserSelected
@Override
public void onBrowserSelected(Browser browser) {
private void showCategory(int category) {
int file;
if (browser.isKnown) {
if (browser.isSupported) {
// Check for embedded browser
if (browser.packageName.startsWith("net.i2p.android"))
file = R.raw.help_embedded_browser;
else {
// Load the configuration guide for this browser
try {
String name = "help_" + browser.packageName.replace('.', '_');
Class res = R.raw.class;
Field field = res.getField(name);
file = field.getInt(null);
} catch (Exception e) {
file = R.raw.help_unknown_browser;
}
}
} else
file = R.raw.help_unsupported_browser;
} else
file = R.raw.help_unknown_browser;
HelpHtmlFragment configFrag = HelpHtmlFragment.newInstance(file);
switch (category) {
case CAT_ADDRESSBOOK:
file = R.raw.help_addressbook;
break;
case CAT_I2PTUNNEL:
file = R.raw.help_i2ptunnel;
break;
case CAT_MAIN:
default:
file = R.raw.help_main;
break;
}
HelpHtmlFragment f = HelpHtmlFragment.newInstance(file);
if (mTwoPane) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.detail_fragment, configFrag)
.commit();
.replace(R.id.detail_fragment, f).commit();
} else {
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_fragment, configFrag)
.addToBackStack("config" + browser.packageName)
.replace(R.id.main_fragment, f)
.addToBackStack("help"+category)
.commit();
}
}
......
......@@ -144,7 +144,6 @@ public class MainActivity extends I2PActivityBase implements
case R.id.menu_help:
Intent hi = new Intent(MainActivity.this, HelpActivity.class);
hi.putExtra(HelpActivity.CATEGORY, HelpActivity.CAT_MAIN);
startActivity(hi);
return true;
......
......@@ -13,11 +13,6 @@
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<Spinner
android:id="@+id/main_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
......
......@@ -13,11 +13,6 @@
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<Spinner
android:id="@+id/main_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
<LinearLayout
......
......@@ -51,7 +51,7 @@
<item>2</item>
</string-array>
<string-array name="help_categories">
<item>@string/app_name</item>
<item>@string/general</item>
<item>@string/label_browser_configuration</item>
<item>@string/label_addressbook</item>
<item>@string/label_i2ptunnel</item>
......
......@@ -138,6 +138,7 @@
<string name="url_donate" translatable="false">https://geti2p.net/en/donate | http://i2p-projekt.i2p/en/donate</string>
<string name="menu_help">Help</string>
<string name="general">General</string>
<string name="addressbook_search_header">%s found</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment