aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java')
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java175
1 files changed, 175 insertions, 0 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java
new file mode 100644
index 000000000..7f0184381
--- /dev/null
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptDecryptActivity.java
@@ -0,0 +1,175 @@
+package org.sufficientlysecure.keychain.ui;
+
+import org.sufficientlysecure.keychain.Constants;
+import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.util.Log;
+
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.app.ActionBar.Tab;
+import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+
+public class EncryptDecryptActivity extends SherlockFragmentActivity {
+ private FragmentActivity mActivity;
+ private ActionBar mActionBar;
+ private ActionBar.Tab mTab1;
+ private ActionBar.Tab mTab2;
+ private ActionBar.Tab mTab3;
+
+ // @Override
+ // public boolean onCreateOptionsMenu(Menu menu) {
+ // MenuInflater inflater = getSupportMenuInflater();
+ // inflater.inflate(R.menu.lists_activity, menu);
+ // return true;
+ // }
+
+ /**
+ * Menu item to go back home in ActionBar, other menu items are defined in Fragments
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ // app icon in Action Bar clicked; go home
+ Intent intent = new Intent(mActivity, MainActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(intent);
+ return true;
+
+ // case R.id.menu_import:
+ // ImportExportHelper.openFileStream(mActivity);
+ // return true;
+ //
+ // case R.id.menu_export:
+ // ImportExportHelper.exportLists(mActivity);
+ // return true;
+
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ /**
+ * Set up Tabs on create
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ mActivity = this;
+
+ setContentView(R.layout.lists_activity);
+
+ mActionBar = getSupportActionBar();
+ mActionBar.setDisplayShowTitleEnabled(true);
+ mActionBar.setDisplayHomeAsUpEnabled(true);
+
+ mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
+
+ mTab1 = getSupportActionBar().newTab();
+ mTab2 = getSupportActionBar().newTab();
+ mTab3 = getSupportActionBar().newTab();
+
+ mTab1.setTabListener(new TabListener<KeyListPublicFragment>(this, "publicList",
+ KeyListPublicFragment.class));
+ mTab2.setTabListener(new TabListener<KeyListPublicFragment>(this, "import",
+ KeyListPublicFragment.class));
+
+ setTabTextBasedOnOrientation(getResources().getConfiguration());
+
+ mActionBar.addTab(mTab1);
+ mActionBar.addTab(mTab2);
+ // mActionBar.addTab(mTab3);
+ }
+
+ private void setTabTextBasedOnOrientation(Configuration config) {
+ // longer names for landscape mode or tablets
+ // if (config.orientation == Configuration.ORIENTATION_LANDSCAPE
+ // || config.screenLayout == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
+ mTab1.setText(getString(R.string.dashboard_manage_keys));
+ mTab2.setText(getString(R.string.dashboard_manage_keys));
+
+ // } else {
+ // mTab1.setText(getString(R.string.lists_tab_blacklist_short));
+ // mTab2.setText(getString(R.string.lists_tab_whitelist_short));
+ // mTab3.setText(getString(R.string.lists_tab_redirection_list_short));
+ // }
+ }
+
+ /**
+ * Change text on orientation change
+ */
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+
+ setTabTextBasedOnOrientation(newConfig);
+ }
+
+ public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
+ private Fragment mFragment;
+ private final Activity mActivity;
+ private final String mTag;
+ private final Class<T> mClass;
+
+ /**
+ * Constructor used each time a new tab is created.
+ *
+ * @param activity
+ * The host Activity, used to instantiate the fragment
+ * @param tag
+ * The identifier tag for the fragment
+ * @param clz
+ * The fragment's Class, used to instantiate the fragment
+ */
+ public TabListener(Activity activity, String tag, Class<T> clz) {
+ mActivity = activity;
+ mTag = tag;
+ mClass = clz;
+ }
+
+ @Override
+ public void onTabReselected(Tab tab, FragmentTransaction ft) {
+ }
+
+ /**
+ * Open Fragment based on selected Tab
+ */
+ @Override
+ public void onTabSelected(Tab tab, FragmentTransaction ignoredFt) {
+ // bug in compatibility lib:
+ // http://stackoverflow.com/questions/8645549/null-fragmenttransaction-being-passed-to-tablistener-ontabselected
+ FragmentManager fragMgr = ((FragmentActivity) mActivity).getSupportFragmentManager();
+ FragmentTransaction ft = fragMgr.beginTransaction();
+
+ mFragment = Fragment.instantiate(mActivity, mClass.getName());
+ ft.replace(R.id.lists_tabs_container, mFragment, mTag);
+ ft.commit();
+ }
+
+ @Override
+ public void onTabUnselected(Tab tab, FragmentTransaction ignoredFt) {
+ FragmentManager fragMgr = ((FragmentActivity) mActivity).getSupportFragmentManager();
+ FragmentTransaction ft = fragMgr.beginTransaction();
+
+ if (mFragment != null) {
+ // Remove the fragment
+ ft.remove(mFragment);
+ }
+
+ ft.commit();
+ }
+ }
+
+} \ No newline at end of file