package com.marktony.translator.ui; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ContentValues; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import com.bumptech.glide.Glide; import com.marktony.translator.R; import com.marktony.translator.constant.Constants; import com.marktony.translator.db.DBUtil; import com.marktony.translator.db.NotebookDatabaseHelper; import org.json.JSONException; import org.json.JSONObject; import static android.content.Context.CLIPBOARD_SERVICE; /** * Created by lizhaotailang on 2016/7/12. */ public class DailyOneFragment extends Fragment { private RequestQueue queue; private TextView textViewEng; private TextView textViewChi; private ImageView imageViewMain; private ImageView ivStar; private ImageView ivCopy; private ImageView ivShare; private Boolean isMarked = false; private NotebookDatabaseHelper dbHelper; private String imageUrl = null; public DailyOneFragment(){ } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); queue = Volley.newRequestQueue(getActivity().getApplicationContext()); dbHelper = new NotebookDatabaseHelper(getActivity(),"MyStore.db",null,1); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_daily_one,container,false); initViews(view); requestData(); ivStar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 在没有被收藏的情况下 if (!isMarked){ ivStar.setImageResource(R.drawable.ic_grade_white_24dp); Snackbar.make(ivStar, R.string.add_to_notebook, Snackbar.LENGTH_SHORT).show(); isMarked = true; ContentValues values = new ContentValues(); values.put("input",textViewEng.getText().toString()); values.put("output",textViewChi.getText().toString()); DBUtil.insertValue(dbHelper,values); values.clear(); } else { ivStar.setImageResource(R.drawable.ic_star_border_white_24dp); Snackbar.make(ivStar, R.string.remove_from_notebook, Snackbar.LENGTH_SHORT).show(); isMarked = false; DBUtil.deleteValue(dbHelper,textViewEng.getText().toString()); } } }); ivCopy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ClipboardManager manager = (ClipboardManager) getActivity().getSystemService(CLIPBOARD_SERVICE); ClipData clipData = ClipData.newPlainText("text", String.valueOf(textViewEng.getText() + "\n" + textViewChi.getText())); manager.setPrimaryClip(clipData); Snackbar.make(ivCopy, R.string.copy_done, Snackbar.LENGTH_SHORT).show(); } }); ivShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND).setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, String.valueOf(textViewEng.getText()) + "\n" + textViewChi.getText()); startActivity(Intent.createChooser(intent,getString(R.string.choose_app_to_share))); } }); return view; } private void initViews(View view) { textViewEng = (TextView) view.findViewById(R.id.text_view_eng); textViewChi = (TextView) view.findViewById(R.id.text_view_chi); imageViewMain = (ImageView) view.findViewById(R.id.image_view_daily); ivStar = (ImageView) view.findViewById(R.id.image_view_mark_star); ivCopy = (ImageView) view.findViewById(R.id.image_view_copy); ivShare = (ImageView) view.findViewById(R.id.image_view_share); } private void requestData(){ JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, Constants.DAILY_SENTENCE, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { try { imageUrl = jsonObject.getString("picture2"); Glide.with(getActivity()) .load(imageUrl) .asBitmap() .centerCrop() .into(imageViewMain); textViewEng.setText(jsonObject.getString("content")); textViewChi.setText(jsonObject.getString("note")); if (DBUtil.queryIfItemExist(dbHelper,textViewEng.getText().toString())){ ivStar.setImageResource(R.drawable.ic_grade_white_24dp); isMarked = true; } else { ivStar.setImageResource(R.drawable.ic_star_border_white_24dp); isMarked = false; } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }); queue.add(request); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (imageUrl != null){ imageViewMain.setScaleType(ImageView.ScaleType.CENTER_CROP); Glide.with(getActivity()) .load(imageUrl) .asBitmap() .placeholder(R.drawable.nav_header) .error(R.drawable.nav_header) .into(imageViewMain); } } }