package org.thoughtcrime.securesms; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.view.MenuItem; import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.util.DynamicTheme; public class ImportExportActivity extends PassphraseRequiredActionBarActivity { private MasterSecret masterSecret; private TabPagerAdapter tabPagerAdapter; private ViewPager viewPager; private DynamicTheme dynamicTheme = new DynamicTheme(); @Override protected void onPreCreate() { dynamicTheme.onCreate(this); } @Override protected void onCreate(Bundle savedInstanceState, @NonNull MasterSecret masterSecret) { this.masterSecret = masterSecret; setContentView(R.layout.import_export_activity); getSupportActionBar().setDisplayHomeAsUpEnabled(true); initializeResources(); initializeViewPager(); initializeTabs(); } @Override public void onResume() { dynamicTheme.onResume(this); super.onResume(); } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return false; } private void initializeResources() { this.viewPager = (ViewPager) findViewById(R.id.import_export_pager); this.tabPagerAdapter = new TabPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(tabPagerAdapter); } private void initializeViewPager() { viewPager.setAdapter(tabPagerAdapter); viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { getSupportActionBar().setSelectedNavigationItem(position); } }); } private void initializeTabs() { final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.TabListener tabListener = new ActionBar.TabListener() { public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { viewPager.setCurrentItem(tab.getPosition()); } public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {} public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {} }; actionBar.addTab(actionBar.newTab().setText(R.string.ImportExportActivity_import).setTabListener(tabListener)); actionBar.addTab(actionBar.newTab().setText(R.string.ImportExportActivity_export).setTabListener(tabListener)); } private class TabPagerAdapter extends FragmentStatePagerAdapter { private final ImportFragment importFragment; private final ExportFragment exportFragment; public TabPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); this.importFragment = new ImportFragment(); this.exportFragment = new ExportFragment(); this.importFragment.setMasterSecret(masterSecret); this.exportFragment.setMasterSecret(masterSecret); } @Override public Fragment getItem(int i) { if (i == 0) return importFragment; else return exportFragment; } @Override public int getCount() { return 2; } @Override public CharSequence getPageTitle(int i) { if (i == 0) return getString(R.string.ImportExportActivity_import); else return getString(R.string.ImportExportActivity_export); } } }