1 package com.folioreader.ui.folio.fragment;
\r
3 import android.app.Activity;
\r
4 import android.app.Dialog;
\r
5 import android.content.Intent;
\r
6 import android.os.Bundle;
\r
7 import android.support.annotation.Nullable;
\r
8 import android.support.v4.app.Fragment;
\r
9 import android.support.v4.content.ContextCompat;
\r
10 import android.support.v7.widget.DividerItemDecoration;
\r
11 import android.support.v7.widget.LinearLayoutManager;
\r
12 import android.support.v7.widget.RecyclerView;
\r
13 import android.text.TextUtils;
\r
14 import android.view.LayoutInflater;
\r
15 import android.view.View;
\r
16 import android.view.ViewGroup;
\r
17 import android.view.Window;
\r
18 import android.widget.EditText;
\r
19 import android.widget.Toast;
\r
21 import com.folioreader.Config;
\r
22 import com.folioreader.Constants;
\r
23 import com.folioreader.R;
\r
24 import com.folioreader.model.HighLight;
\r
25 import com.folioreader.model.HighlightImpl;
\r
26 import com.folioreader.model.event.BusOwner;
\r
27 import com.folioreader.model.event.ReloadDataEvent;
\r
28 import com.folioreader.model.sqlite.HighLightTable;
\r
29 import com.folioreader.ui.folio.adapter.HighlightAdapter;
\r
30 import com.folioreader.util.AppUtil;
\r
31 import com.folioreader.util.FolioReader;
\r
32 import com.folioreader.util.HighlightUtil;
\r
34 public class HighlightFragment extends Fragment implements HighlightAdapter.HighLightAdapterCallback {
\r
35 private static final String HIGHLIGHT_ITEM = "highlight_item";
\r
36 private View mRootView;
\r
37 private HighlightAdapter adapter;
\r
38 private String mBookId;
\r
41 public static HighlightFragment newInstance(String bookId, String epubTitle) {
\r
42 HighlightFragment highlightFragment = new HighlightFragment();
\r
43 Bundle args = new Bundle();
\r
44 args.putString(FolioReader.INTENT_BOOK_ID, bookId);
\r
45 args.putString(Constants.BOOK_TITLE, epubTitle);
\r
46 highlightFragment.setArguments(args);
\r
47 return highlightFragment;
\r
51 public void onCreate(@Nullable Bundle savedInstanceState) {
\r
52 super.onCreate(savedInstanceState);
\r
56 public View onCreateView(LayoutInflater inflater,
\r
57 ViewGroup container, Bundle savedInstanceState) {
\r
58 mRootView = inflater.inflate(R.layout.fragment_highlight_list, container, false);
\r
63 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
\r
64 super.onViewCreated(view, savedInstanceState);
\r
65 RecyclerView highlightsView = (RecyclerView) mRootView.findViewById(R.id.rv_highlights);
\r
66 Config config = AppUtil.getSavedConfig(getActivity());
\r
67 mBookId = getArguments().getString(FolioReader.INTENT_BOOK_ID);
\r
69 if (config.isNightMode()) {
\r
70 mRootView.findViewById(R.id.rv_highlights).
\r
71 setBackgroundColor(ContextCompat.getColor(getActivity(),
\r
74 highlightsView.setLayoutManager(new LinearLayoutManager(getActivity()));
\r
75 highlightsView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
\r
77 adapter = new HighlightAdapter(getActivity(), HighLightTable.getAllHighlights(mBookId), this, config);
\r
78 highlightsView.setAdapter(adapter);
\r
82 public void onItemClick(HighlightImpl highlightImpl) {
\r
83 Intent intent = new Intent();
\r
84 intent.putExtra(HIGHLIGHT_ITEM, highlightImpl);
\r
85 intent.putExtra(Constants.TYPE, Constants.HIGHLIGHT_SELECTED);
\r
86 getActivity().setResult(Activity.RESULT_OK, intent);
\r
87 getActivity().finish();
\r
91 public void deleteHighlight(int id) {
\r
92 HighLightTable.deleteHighlight(id);
\r
94 Activity activity = getActivity();
\r
95 if (activity instanceof BusOwner)
\r
96 ((BusOwner) activity).getBus().post(new ReloadDataEvent());
\r
100 public void editNote(final HighlightImpl highlightImpl, final int position) {
\r
101 final Dialog dialog = new Dialog(getActivity(), R.style.DialogCustomTheme);
\r
102 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
\r
103 dialog.setContentView(R.layout.dialog_edit_notes);
\r
105 String noteText = highlightImpl.getNote();
\r
106 ((EditText) dialog.findViewById(R.id.edit_note)).setText(noteText);
\r
108 dialog.findViewById(R.id.btn_save_note).setOnClickListener(new View.OnClickListener() {
\r
110 public void onClick(View v) {
\r
113 ((EditText) dialog.findViewById(R.id.edit_note)).getText().toString();
\r
114 if (!TextUtils.isEmpty(note)) {
\r
115 highlightImpl.setNote(note);
\r
116 if (HighLightTable.updateHighlight(highlightImpl)) {
\r
117 HighlightUtil.sendHighlightBroadcastEvent(
\r
118 HighlightFragment.this.getActivity().getApplicationContext(),
\r
120 HighLight.HighLightAction.MODIFY);
\r
121 adapter.editNote(note, position);
\r
125 Toast.makeText(getActivity(),
\r
126 getString(R.string.please_enter_note),
\r
127 Toast.LENGTH_SHORT).show();
\r