--- /dev/null
+package com.folioreader.ui.folio.fragment;\r
+\r
+import android.app.Activity;\r
+import android.app.Dialog;\r
+import android.content.Intent;\r
+import android.os.Bundle;\r
+import android.support.annotation.Nullable;\r
+import android.support.v4.app.Fragment;\r
+import android.support.v4.content.ContextCompat;\r
+import android.support.v7.widget.DividerItemDecoration;\r
+import android.support.v7.widget.LinearLayoutManager;\r
+import android.support.v7.widget.RecyclerView;\r
+import android.text.TextUtils;\r
+import android.view.LayoutInflater;\r
+import android.view.View;\r
+import android.view.ViewGroup;\r
+import android.view.Window;\r
+import android.widget.EditText;\r
+import android.widget.Toast;\r
+\r
+import com.folioreader.Config;\r
+import com.folioreader.Constants;\r
+import com.folioreader.R;\r
+import com.folioreader.model.HighLight;\r
+import com.folioreader.model.HighlightImpl;\r
+import com.folioreader.model.event.BusOwner;\r
+import com.folioreader.model.event.ReloadDataEvent;\r
+import com.folioreader.model.sqlite.HighLightTable;\r
+import com.folioreader.ui.folio.adapter.HighlightAdapter;\r
+import com.folioreader.util.AppUtil;\r
+import com.folioreader.util.FolioReader;\r
+import com.folioreader.util.HighlightUtil;\r
+\r
+public class HighlightFragment extends Fragment implements HighlightAdapter.HighLightAdapterCallback {\r
+ private static final String HIGHLIGHT_ITEM = "highlight_item";\r
+ private View mRootView;\r
+ private HighlightAdapter adapter;\r
+ private String mBookId;\r
+\r
+\r
+ public static HighlightFragment newInstance(String bookId, String epubTitle) {\r
+ HighlightFragment highlightFragment = new HighlightFragment();\r
+ Bundle args = new Bundle();\r
+ args.putString(FolioReader.INTENT_BOOK_ID, bookId);\r
+ args.putString(Constants.BOOK_TITLE, epubTitle);\r
+ highlightFragment.setArguments(args);\r
+ return highlightFragment;\r
+ }\r
+\r
+ @Override\r
+ public void onCreate(@Nullable Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ }\r
+\r
+ @Override\r
+ public View onCreateView(LayoutInflater inflater,\r
+ ViewGroup container, Bundle savedInstanceState) {\r
+ mRootView = inflater.inflate(R.layout.fragment_highlight_list, container, false);\r
+ return mRootView;\r
+ }\r
+\r
+ @Override\r
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {\r
+ super.onViewCreated(view, savedInstanceState);\r
+ RecyclerView highlightsView = (RecyclerView) mRootView.findViewById(R.id.rv_highlights);\r
+ Config config = AppUtil.getSavedConfig(getActivity());\r
+ mBookId = getArguments().getString(FolioReader.INTENT_BOOK_ID);\r
+\r
+ if (config.isNightMode()) {\r
+ mRootView.findViewById(R.id.rv_highlights).\r
+ setBackgroundColor(ContextCompat.getColor(getActivity(),\r
+ R.color.black));\r
+ }\r
+ highlightsView.setLayoutManager(new LinearLayoutManager(getActivity()));\r
+ highlightsView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));\r
+\r
+ adapter = new HighlightAdapter(getActivity(), HighLightTable.getAllHighlights(mBookId), this, config);\r
+ highlightsView.setAdapter(adapter);\r
+ }\r
+\r
+ @Override\r
+ public void onItemClick(HighlightImpl highlightImpl) {\r
+ Intent intent = new Intent();\r
+ intent.putExtra(HIGHLIGHT_ITEM, highlightImpl);\r
+ intent.putExtra(Constants.TYPE, Constants.HIGHLIGHT_SELECTED);\r
+ getActivity().setResult(Activity.RESULT_OK, intent);\r
+ getActivity().finish();\r
+ }\r
+\r
+ @Override\r
+ public void deleteHighlight(int id) {\r
+ HighLightTable.deleteHighlight(id);\r
+\r
+ Activity activity = getActivity();\r
+ if (activity instanceof BusOwner)\r
+ ((BusOwner) activity).getBus().post(new ReloadDataEvent());\r
+ }\r
+\r
+ @Override\r
+ public void editNote(final HighlightImpl highlightImpl, final int position) {\r
+ final Dialog dialog = new Dialog(getActivity(), R.style.DialogCustomTheme);\r
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);\r
+ dialog.setContentView(R.layout.dialog_edit_notes);\r
+ dialog.show();\r
+ String noteText = highlightImpl.getNote();\r
+ ((EditText) dialog.findViewById(R.id.edit_note)).setText(noteText);\r
+\r
+ dialog.findViewById(R.id.btn_save_note).setOnClickListener(new View.OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+\r
+ String note =\r
+ ((EditText) dialog.findViewById(R.id.edit_note)).getText().toString();\r
+ if (!TextUtils.isEmpty(note)) {\r
+ highlightImpl.setNote(note);\r
+ if (HighLightTable.updateHighlight(highlightImpl)) {\r
+ HighlightUtil.sendHighlightBroadcastEvent(\r
+ HighlightFragment.this.getActivity().getApplicationContext(),\r
+ highlightImpl,\r
+ HighLight.HighLightAction.MODIFY);\r
+ adapter.editNote(note, position);\r
+ }\r
+ dialog.dismiss();\r
+ } else {\r
+ Toast.makeText(getActivity(),\r
+ getString(R.string.please_enter_note),\r
+ Toast.LENGTH_SHORT).show();\r
+ }\r
+ }\r
+ });\r
+ }\r
+}\r
+\r
+\r