summaryrefslogtreecommitdiff
path: root/sample/src/main/java/example/zxing/TabbedScanning.java
diff options
context:
space:
mode:
Diffstat (limited to 'sample/src/main/java/example/zxing/TabbedScanning.java')
-rw-r--r--sample/src/main/java/example/zxing/TabbedScanning.java175
1 files changed, 111 insertions, 64 deletions
diff --git a/sample/src/main/java/example/zxing/TabbedScanning.java b/sample/src/main/java/example/zxing/TabbedScanning.java
index f1db04bd..0818c1d9 100644
--- a/sample/src/main/java/example/zxing/TabbedScanning.java
+++ b/sample/src/main/java/example/zxing/TabbedScanning.java
@@ -1,24 +1,23 @@
package example.zxing;
-import android.app.Activity;
-import android.app.ActionBar;
-import android.app.FragmentTransaction;
-
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
+import com.journeyapps.barcodescanner.CameraPreview;
+import com.journeyapps.barcodescanner.DecoratedBarcodeView;
-public class TabbedScanning extends Activity implements ActionBar.TabListener {
+public class TabbedScanning extends AppCompatActivity implements ActionBar.TabListener {
+ private static final String TAG = TabbedScanning.class.getSimpleName();
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
@@ -30,6 +29,7 @@ public class TabbedScanning extends Activity implements ActionBar.TabListener {
*/
private SectionsPagerAdapter mSectionsPagerAdapter;
+
/**
* The {@link ViewPager} that will host the section contents.
*/
@@ -41,21 +41,21 @@ public class TabbedScanning extends Activity implements ActionBar.TabListener {
setContentView(R.layout.activity_tabbed_scanning);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
- mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());
+ mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
-
// Set up the action bar.
- final ActionBar actionBar = getActionBar();
+ final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// When swiping between different sections, select the corresponding
// tab. We can also use ActionBar.Tab#select() to do this if we have
// a reference to the Tab.
- mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
+ mViewPager.setOffscreenPageLimit(0);
+ mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
@@ -76,29 +76,6 @@ public class TabbedScanning extends Activity implements ActionBar.TabListener {
}
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.menu_tabbed_scanning, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
-
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_settings) {
- return true;
- }
-
- return super.onOptionsItemSelected(item);
- }
-
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in
@@ -117,70 +94,140 @@ public class TabbedScanning extends Activity implements ActionBar.TabListener {
/**
* A placeholder fragment containing a simple view.
*/
- public static class PlaceholderFragment extends Fragment {
+ public static class ScanFragment extends Fragment {
+ DecoratedBarcodeView barcodeView;
+
+ public ScanFragment() {
+ }
+
/**
- * The fragment argument representing the section number for this
- * fragment.
+ * Returns a new instance of this fragment for the given section
+ * number.
*/
- private static final String ARG_SECTION_NUMBER = "section_number";
+ public static ScanFragment newInstance() {
+ return new ScanFragment();
+ }
- public PlaceholderFragment() {
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.fragment_tabbed_scanning, container, false);
+ barcodeView = (DecoratedBarcodeView)rootView.findViewById(R.id.barcode_view);
+ return rootView;
+ }
+
+
+ @Override
+ public void setUserVisibleHint(boolean isVisibleToUser) {
+ super.setUserVisibleHint(isVisibleToUser);
+ if(barcodeView != null) {
+ if (isVisibleToUser) {
+ barcodeView.resume();
+ } else {
+ barcodeView.pauseAndWait();
+ }
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ barcodeView.pauseAndWait();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ barcodeView.resume();
+ }
+ }
+
+
+ /**
+ * A placeholder fragment containing a simple view.
+ */
+ public static class CameraFragment extends Fragment {
+
+ private CameraPreview cameraPreview;
+
+ public CameraFragment() {
}
/**
* Returns a new instance of this fragment for the given section
* number.
*/
- public static PlaceholderFragment newInstance(int sectionNumber) {
- PlaceholderFragment fragment = new PlaceholderFragment();
- Bundle args = new Bundle();
- args.putInt(ARG_SECTION_NUMBER, sectionNumber);
- fragment.setArguments(args);
- return fragment;
+ public static CameraFragment newInstance() {
+ return new CameraFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_tabbed_scanning, container, false);
- TextView textView = (TextView) rootView.findViewById(R.id.section_label);
- textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER)));
+ View rootView = inflater.inflate(R.layout.fragment_tabbed_camera, container, false);
+ cameraPreview = (CameraPreview)rootView.findViewById(R.id.camera_preview);
return rootView;
}
+
+ @Override
+ public void setUserVisibleHint(boolean isVisibleToUser) {
+ super.setUserVisibleHint(isVisibleToUser);
+
+ if (cameraPreview != null) {
+ if (isVisibleToUser) {
+ cameraPreview.resume();
+ } else {
+ cameraPreview.pauseAndWait();
+ }
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ cameraPreview.pauseAndWait();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ }
}
+
+
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
- public class SectionsPagerAdapter extends FragmentPagerAdapter {
+ public class SectionsPagerAdapter extends android.support.v4.app.FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
- public Fragment getItem(int position) {
- // getItem is called to instantiate the fragment for the given page.
- // Return a PlaceholderFragment (defined as a static inner class below).
- return PlaceholderFragment.newInstance(position + 1);
+ public android.support.v4.app.Fragment getItem(int position) {
+ if(position == 0) {
+ return ScanFragment.newInstance();
+ } else {
+ return CameraFragment.newInstance();
+ }
+
}
@Override
public int getCount() {
- // Show 3 total pages.
- return 3;
+ return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
- return "SECTION 1";
+ return "Scan";
case 1:
- return "SECTION 2";
- case 2:
- return "SECTION 3";
+ return "Camera";
}
return null;
}