From 2501563a682bd52631c44210f2262c8a6b64982c Mon Sep 17 00:00:00 2001 From: Prerak Mann Date: Sat, 2 Jun 2018 01:48:53 +0530 Subject: [PATCH] Added 2 tabs to home, QuickNotes(UI only rn) and Activities(same as home frag before) Added jump controls in task activity and quicknotes fragment --- .idea/caches/build_file_checksums.ser | Bin 533 -> 533 bytes .../com/pkmnapps/activitydo/HomeFragment.java | 2 +- .../com/pkmnapps/activitydo/MainActivity.java | 13 +- .../activitydo/QuickNotesFragment.java | 140 +++++++++++++++ .../com/pkmnapps/activitydo/TabFragment.java | 159 ++++++++++++++++++ .../com/pkmnapps/activitydo/TaskActivity.java | 42 ++++- .../res/drawable/ic_add_box_black_24dp.xml | 4 +- app/src/main/res/layout/content_task.xml | 39 ++++- app/src/main/res/layout/fragment_home.xml | 37 ++-- .../main/res/layout/fragment_quick_notes.xml | 52 ++++++ app/src/main/res/layout/fragment_tab.xml | 21 +++ app/src/main/res/menu/menu_task_activity.xml | 12 -- app/src/main/res/menu/widget_menu.xml | 6 +- app/src/main/res/values/strings.xml | 3 + 14 files changed, 479 insertions(+), 51 deletions(-) create mode 100644 app/src/main/java/com/pkmnapps/activitydo/QuickNotesFragment.java create mode 100644 app/src/main/java/com/pkmnapps/activitydo/TabFragment.java create mode 100644 app/src/main/res/layout/fragment_quick_notes.xml create mode 100644 app/src/main/res/layout/fragment_tab.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index dc5e54f8e81c55d039f85cf3e334d2b85194fed6..5d76a5ceb4fcdb1882711c70bb39f5deb325c9c0 100644 GIT binary patch delta 15 XcmbQrGL>b*43<3)CSKk+r;-r>HWvpb delta 15 XcmbQrGL>b*43 + * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } +} diff --git a/app/src/main/java/com/pkmnapps/activitydo/TabFragment.java b/app/src/main/java/com/pkmnapps/activitydo/TabFragment.java new file mode 100644 index 0000000..4fe9176 --- /dev/null +++ b/app/src/main/java/com/pkmnapps/activitydo/TabFragment.java @@ -0,0 +1,159 @@ +package com.pkmnapps.activitydo; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.design.widget.TabLayout; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Adapter; + +import java.util.ArrayList; +import java.util.List; + + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link TabFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link TabFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class TabFragment extends Fragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private OnFragmentInteractionListener mListener; + + public TabFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment TabFragment. + */ + // TODO: Rename and change types and number of parameters + public static TabFragment newInstance(String param1, String param2) { + TabFragment fragment = new TabFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_tab, container, false); + ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager); + setupViewPager(viewPager); + // Set Tabs inside Toolbar + TabLayout tabs = (TabLayout) view.findViewById(R.id.tabLayout); + tabs.setupWithViewPager(viewPager); + // Inflate the layout for this fragment + return view; + } + + private void setupViewPager(ViewPager viewPager) { + Adapter adapter = new Adapter(getChildFragmentManager()); + adapter.addFragment(new QuickNotesFragment(), "Quick Notes"); + adapter.addFragment(new HomeFragment(), "Activities"); + + viewPager.setAdapter(adapter); + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } + static class Adapter extends FragmentPagerAdapter { + private final List mFragmentList = new ArrayList<>(); + private final List mFragmentTitleList = new ArrayList<>(); + + public Adapter(FragmentManager manager) { + super(manager); + } + + @Override + public Fragment getItem(int position) { + return mFragmentList.get(position); + } + + @Override + public int getCount() { + return mFragmentList.size(); + } + + public void addFragment(Fragment fragment, String title) { + mFragmentList.add(fragment); + mFragmentTitleList.add(title); + } + + @Override + public CharSequence getPageTitle(int position) { + return mFragmentTitleList.get(position); + } + } + +} diff --git a/app/src/main/java/com/pkmnapps/activitydo/TaskActivity.java b/app/src/main/java/com/pkmnapps/activitydo/TaskActivity.java index 855911c..aec17ed 100644 --- a/app/src/main/java/com/pkmnapps/activitydo/TaskActivity.java +++ b/app/src/main/java/com/pkmnapps/activitydo/TaskActivity.java @@ -69,7 +69,6 @@ public class TaskActivity extends AppCompatActivity implements TaskActivityInter ActivityContentAdapter activityContentAdapter; List widgets; Uri cameraImageUri = null; - ImageView selectedImage; String tempUid; DBHelperWidgets dbHelperWidgets; @Override @@ -90,7 +89,7 @@ protected void onCreate(Bundle savedInstanceState) { dbHelperWidgets = new DBHelperWidgets(TaskActivity.this); bottomSheetLayout = (BottomSheetLayout)findViewById(R.id.bottomsheet); - selectedImage =(ImageView)findViewById(R.id.imageView); + setUpJumpControls(); setUpRecyclerView(); initialiseRecyclerViewData(); } @@ -108,9 +107,6 @@ public boolean onOptionsItemSelected(MenuItem item) { // app icon in action bar clicked; goto parent activity. this.finish(); return true; - case R.id.action_add_widget: - displayWidgetChoser(); - return true; default: return super.onOptionsItemSelected(item); } @@ -192,6 +188,42 @@ public void onActivityResult(int requestCode, int resultCode, @Nullable Intent d } } + private void setUpJumpControls(){ + TextView takeNote = (TextView)findViewById(R.id.note_tvbutton); + takeNote.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + createList(); + } + }); + ImageButton more = (ImageButton)findViewById(R.id.more_button); + more.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + displayWidgetChoser(); + } + }); + ImageButton list = (ImageButton)findViewById(R.id.list_button); + list.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + createList(); + } + }); + ImageButton image = (ImageButton)findViewById(R.id.image_button); + image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (checkNeedsPermission()) { + requestStoragePermission(); + } else { + createImageSheet(); + } + } + }); + } + + public void displayWidgetChoser(){ //show bottomsheet MenuSheetView menuSheetView = diff --git a/app/src/main/res/drawable/ic_add_box_black_24dp.xml b/app/src/main/res/drawable/ic_add_box_black_24dp.xml index b2780f1..7e1bdc5 100644 --- a/app/src/main/res/drawable/ic_add_box_black_24dp.xml +++ b/app/src/main/res/drawable/ic_add_box_black_24dp.xml @@ -1,5 +1,5 @@ - - + diff --git a/app/src/main/res/layout/content_task.xml b/app/src/main/res/layout/content_task.xml index 2890b53..4426b92 100644 --- a/app/src/main/res/layout/content_task.xml +++ b/app/src/main/res/layout/content_task.xml @@ -19,10 +19,47 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 0257883..4f3882c 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -1,26 +1,25 @@ - + android:orientation="vertical" + tools:context=".HomeFragment"> -