diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index dc5e54f..5d76a5c 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/com/pkmnapps/activitydo/HomeFragment.java b/app/src/main/java/com/pkmnapps/activitydo/HomeFragment.java index 383a173..9d89f05 100644 --- a/app/src/main/java/com/pkmnapps/activitydo/HomeFragment.java +++ b/app/src/main/java/com/pkmnapps/activitydo/HomeFragment.java @@ -141,7 +141,7 @@ public void onMoved(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolde ItemTouchHelper.Callback itcallbackswipe = new ItemTouchHelper.Callback() { @Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { - return makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE,ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT); + return makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE,ItemTouchHelper.RIGHT); } diff --git a/app/src/main/java/com/pkmnapps/activitydo/MainActivity.java b/app/src/main/java/com/pkmnapps/activitydo/MainActivity.java index c3bdb73..a0a3ee1 100644 --- a/app/src/main/java/com/pkmnapps/activitydo/MainActivity.java +++ b/app/src/main/java/com/pkmnapps/activitydo/MainActivity.java @@ -25,7 +25,9 @@ public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, - HomeFragment.OnFragmentInteractionListener + TabFragment.OnFragmentInteractionListener, + HomeFragment.OnFragmentInteractionListener, + QuickNotesFragment.OnFragmentInteractionListener { boolean home = true; NavigationView navigationView; @@ -51,7 +53,7 @@ protected void onCreate(Bundle savedInstanceState) { //Set home fragment to load first here FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - fragmentTransaction.replace(R.id.fragment_parent_main,new HomeFragment(),"back").commit(); + fragmentTransaction.replace(R.id.fragment_parent_main,new TabFragment(),"back").commit(); } @@ -112,12 +114,7 @@ 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); } @@ -133,7 +130,7 @@ public boolean onNavigationItemSelected(MenuItem item) { home = false; if (id == R.id.nav_home) { home = true; - fragmentTransaction.replace(R.id.fragment_parent_main,new HomeFragment()).commit(); + fragmentTransaction.replace(R.id.fragment_parent_main,new TabFragment()).commit(); } else if(id == R.id.nav_share){ diff --git a/app/src/main/java/com/pkmnapps/activitydo/QuickNotesFragment.java b/app/src/main/java/com/pkmnapps/activitydo/QuickNotesFragment.java new file mode 100644 index 0000000..9d5fb4a --- /dev/null +++ b/app/src/main/java/com/pkmnapps/activitydo/QuickNotesFragment.java @@ -0,0 +1,140 @@ +package com.pkmnapps.activitydo; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.TextView; + + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link QuickNotesFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link QuickNotesFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class QuickNotesFragment 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 QuickNotesFragment() { + // 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 QuickNotesFragment. + */ + // TODO: Rename and change types and number of parameters + public static QuickNotesFragment newInstance(String param1, String param2) { + QuickNotesFragment fragment = new QuickNotesFragment(); + 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_quick_notes, container, false); + + TextView takeNote = (TextView)view.findViewById(R.id.note_tvbutton); + takeNote.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + ImageButton more = (ImageButton)view.findViewById(R.id.more_button); + more.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + ImageButton list = (ImageButton)view.findViewById(R.id.list_button); + list.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + ImageButton image = (ImageButton)view.findViewById(R.id.image_button); + image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + // Inflate the layout for this fragment + return view; + } + + // 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); + } +} 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"> -