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

Skip to content
Snippets Groups Projects
BrowserConfigActivity.java 3.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • str4d's avatar
    str4d committed
    package net.i2p.android.help;
    
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.MenuItem;
    
    import net.i2p.android.router.R;
    
    import java.lang.reflect.Field;
    
    public class BrowserConfigActivity extends ActionBarActivity implements
            BrowserAdapter.OnBrowserSelectedListener {
    
        /**
         * Whether or not the activity is in two-pane mode, i.e. running on a tablet
         * device.
         */
        private boolean mTwoPane;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_help);
    
            // Set the action bar
            Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
            setSupportActionBar(toolbar);
    
    str4d's avatar
    str4d committed
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    
    str4d's avatar
    str4d committed
    
            if (findViewById(R.id.detail_fragment) != null) {
                // The detail container view will be present only in the
                // large-screen layouts (res/values-large and
                // res/values-sw600dp). If this view is present, then the
                // activity should be in two-pane mode.
                mTwoPane = true;
            }
    
            if (savedInstanceState == null) {
                getSupportFragmentManager().beginTransaction()
                        .add(R.id.main_fragment, new BrowserListFragment())
                        .commit();
            }
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case android.R.id.home:
                    onBackPressed();
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
            }
        }
    
        // BrowserAdapter.OnBrowserSelected
    
        @Override
        public void onBrowserSelected(Browser browser) {
            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);
            if (mTwoPane) {
                getSupportFragmentManager().beginTransaction()
                        .replace(R.id.detail_fragment, configFrag)
                        .commit();
            } else {
                getSupportFragmentManager().beginTransaction()
                        .replace(R.id.main_fragment, configFrag)
                        .addToBackStack("config" + browser.packageName)
                        .commit();
            }
        }
    }