Added Android code
[wl-app.git] / Android / folioreader / src / main / java / com / folioreader / ui / folio / fragment / HighlightFragment.java
diff --git a/Android/folioreader/src/main/java/com/folioreader/ui/folio/fragment/HighlightFragment.java b/Android/folioreader/src/main/java/com/folioreader/ui/folio/fragment/HighlightFragment.java
new file mode 100755 (executable)
index 0000000..b835482
--- /dev/null
@@ -0,0 +1,134 @@
+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