Advertisement
Guest User

Untitled

a guest
Mar 6th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.20 KB | None | 0 0
  1. public class MainDrawer2 extends ActionBarActivity
  2. {
  3. private static final String EXTRA_NAV_ITEM = "extraNavItem";
  4. private static final String STATE_CURRENT_NAV = "stateCurrentNav";
  5.  
  6. private ActionBarDrawerToggle mDrawerToggle;
  7. private DrawerLayout mDrawerLayout;
  8.  
  9.  
  10. private NavDrawerListAdapter mDrawerAdapter;
  11. private ListView mDrawerList;
  12.  
  13. private CharSequence mTitle;
  14. private CharSequence mDrawerTitle;
  15.  
  16. private MainNavItem mCurrentNavItem;
  17.  
  18.  
  19. public static Intent createLaunchFragmentIntent(Context context, MainNavItem navItem)
  20. {
  21. return new Intent(context, MainDrawer2.class)
  22. .putExtra(EXTRA_NAV_ITEM, navItem.ordinal());
  23. }
  24.  
  25.  
  26.  
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState)
  29. {
  30. super.onCreate(savedInstanceState);
  31. setContentView(R.layout.fragment_main);
  32.  
  33.  
  34.  
  35. //Crashlytics.start(this);
  36.  
  37. mTitle = mDrawerTitle = getTitle();
  38. mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
  39. mDrawerList = (ListView)findViewById(R.id.drawer);
  40.  
  41. // Set a toolbar to replace the action bar.
  42. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  43. setSupportActionBar(toolbar);
  44.  
  45. //getActionBar().setDisplayHomeAsUpEnabled(true);
  46. //enableHomeButtonIfRequired();
  47.  
  48. mDrawerAdapter = new NavDrawerListAdapter(getApplicationContext());
  49. mDrawerList.setAdapter(mDrawerAdapter);
  50. mDrawerList.setOnItemClickListener(new ListView.OnItemClickListener()
  51. {
  52. @Override
  53. public void onItemClick(AdapterView<?> parent, View view, int position, long id)
  54. {
  55. displayNavFragment((MainNavItem)parent.getItemAtPosition(position));
  56. }
  57. });
  58.  
  59. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
  60. R.drawable.ic_menu_white, R.string.app_name, R.string.app_name)
  61. {
  62. public void onDrawerClosed(View view)
  63. {
  64. //getActionBar().setTitle(mTitle);
  65. invalidateOptionsMenu();
  66. }
  67.  
  68. public void onDrawerOpened(View drawerView)
  69. {
  70. //getActionBar().setTitle(mDrawerTitle);
  71. invalidateOptionsMenu();
  72. }
  73. };
  74.  
  75. mDrawerLayout.setDrawerListener(mDrawerToggle);
  76.  
  77. if(getIntent().hasExtra(EXTRA_NAV_ITEM)){
  78. MainNavItem navItem = MainNavItem.values()
  79. [getIntent().getIntExtra(EXTRA_NAV_ITEM,
  80. MainNavItem.STATISTICS.ordinal())];
  81. displayNavFragment(navItem);
  82. }
  83. else if(savedInstanceState != null){
  84. mCurrentNavItem = MainNavItem.values()
  85. [savedInstanceState.getInt(STATE_CURRENT_NAV)];
  86. setCurrentNavItem(mCurrentNavItem);
  87. }
  88. else{
  89. displayNavFragment(MainNavItem.STATISTICS);
  90. }
  91. }
  92.  
  93. @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
  94. private void enableHomeButtonIfRequired()
  95. {
  96. if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
  97. //getActionBar().setHomeButtonEnabled(true);
  98. }
  99. }
  100. public void setActionBarTitle(String title) {
  101. //getActionBar().setTitle(title);
  102. }
  103.  
  104.  
  105. @Override
  106. public void setTitle(CharSequence title)
  107. {
  108. mTitle = title;
  109. //getActionBar().setTitle(mTitle);
  110. }
  111.  
  112. @Override
  113. protected void onPostCreate(Bundle savedInstanceState)
  114. {
  115. super.onPostCreate(savedInstanceState);
  116. // Sync the toggle state after onRestoreInstanceState has occurred.
  117. mDrawerToggle.syncState();
  118. }
  119.  
  120. @Override
  121. public void onConfigurationChanged(Configuration newConfig)
  122. {
  123. super.onConfigurationChanged(newConfig);
  124. // Pass any configuration change to the drawer toggles
  125. mDrawerToggle.onConfigurationChanged(newConfig);
  126. }
  127.  
  128. @Override
  129. protected void onSaveInstanceState(Bundle outState)
  130. {
  131. super.onSaveInstanceState(outState);
  132.  
  133. if (mCurrentNavItem == null){
  134.  
  135.  
  136. }
  137. else{
  138. outState.putInt(STATE_CURRENT_NAV, mCurrentNavItem.ordinal());
  139. }
  140.  
  141. }
  142.  
  143. @Override
  144. public boolean onCreateOptionsMenu(Menu menu)
  145. {
  146. getMenuInflater().inflate(R.menu.main, menu);
  147.  
  148. return true;
  149. }
  150.  
  151. /*
  152. @Override
  153. public boolean onPrepareOptionsMenu(Menu menu)
  154. {
  155. // if nav drawer is opened, hide the action items
  156. boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
  157. menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
  158. return super.onPrepareOptionsMenu(menu);
  159. }
  160. */
  161.  
  162.  
  163.  
  164. private void displayNavFragment(MainNavItem navItem)
  165. {
  166. //if(navItem == mCurrentNavItem){
  167. // return;
  168. //}
  169. Fragment fragment = Fragment.instantiate(this,
  170. navItem.getFragClass().getName());
  171. if(fragment != null){
  172.  
  173. getSupportFragmentManager().beginTransaction()
  174. .replace(R.id.main, fragment)
  175. .commit();
  176. //setCurrentNavItem(navItem);
  177. }
  178. }
  179.  
  180. private void setCurrentNavItem(MainNavItem navItem)
  181. {
  182. int position = navItem.ordinal();
  183. // If navItem is in DrawerAdapter
  184. if(position >= 0 && position < mDrawerAdapter.getCount()){
  185. //mDrawerList.setItemChecked(position, true);
  186. }
  187. else{
  188. // navItem not in DrawerAdapter, de-select current item
  189. if(mCurrentNavItem != null){
  190. //mDrawerList.setItemChecked(mCurrentNavItem.ordinal(), false);
  191. }
  192. }
  193.  
  194. //test to keep item not selected
  195. int toClear=mDrawerList.getCheckedItemPosition();
  196.  
  197. if (toClear >= 0) {
  198. mDrawerList.setItemChecked(toClear, false);
  199. }
  200.  
  201. mDrawerLayout.closeDrawer(mDrawerList);
  202. //setTitle(navItem.getTitleResId());
  203. mCurrentNavItem = navItem;
  204. }
  205.  
  206. @Override
  207. public boolean onOptionsItemSelected(MenuItem item) {
  208. switch (item.getItemId()) {
  209. case android.R.id.home:
  210. if(mDrawerLayout.isDrawerOpen(mDrawerList)) {
  211. mDrawerLayout.closeDrawer(mDrawerList);
  212. }
  213. else {
  214. mDrawerLayout.openDrawer(mDrawerList);
  215. }
  216. return true;
  217. default:
  218. return super.onOptionsItemSelected(item);
  219. }
  220. }
  221.  
  222.  
  223.  
  224.  
  225. public void goToSearch(MenuItem item){
  226.  
  227. //go to search page
  228. Fragment Fragment_one;
  229. FragmentManager man= getSupportFragmentManager();
  230. FragmentTransaction tran = man.beginTransaction();
  231. Fragment_one = new Search();
  232.  
  233. tran.replace(R.id.main, Fragment_one);//tran.
  234. tran.addToBackStack(null);
  235. tran.commit();
  236.  
  237. }
  238.  
  239. public void scanBarcode(MenuItem item){
  240.  
  241. //open scanner
  242. IntentIntegrator scanIntegrator = new IntentIntegrator(this);
  243. scanIntegrator.initiateScan();
  244.  
  245.  
  246.  
  247. }
  248.  
  249. public void onActivityResult(int requestCode, int resultCode, Intent intent) {
  250.  
  251. //retrieve scan result
  252. IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
  253. if (scanningResult != null) {
  254. //we have a result
  255.  
  256. String scanContent = scanningResult.getContents();
  257.  
  258. //todo: set scan content into setting, load new fragment which calls async task below. New
  259. //todo: fragment will have same ui as search. :-)
  260. Fragment Fragment_one;
  261.  
  262.  
  263.  
  264.  
  265. FragmentManager man= this.getSupportFragmentManager();
  266. FragmentTransaction tran = man.beginTransaction();
  267. BarcodeFrag fragmentNew = new BarcodeFrag();
  268. Bundle bundle = new Bundle();
  269. bundle.putString("scanContent", scanContent);
  270. fragmentNew.setArguments(bundle);
  271.  
  272.  
  273. tran.replace(R.id.main, fragmentNew);//tran.
  274. tran.addToBackStack(null);
  275. //tran.commit();
  276. tran.commitAllowingStateLoss();
  277.  
  278.  
  279. }
  280.  
  281. else{
  282. Toast toast = Toast.makeText(getApplicationContext(),
  283. "No scan data received!", Toast.LENGTH_SHORT);
  284. toast.show();
  285. }
  286.  
  287. }
  288.  
  289.  
  290.  
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement