Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. package com.example.l4task1;
  2.  
  3. import android.content.DialogInterface;
  4. import android.os.AsyncTask;
  5. import android.os.Bundle;
  6. import android.support.annotation.Nullable;
  7. import android.app.Fragment;
  8. import android.support.v7.app.AlertDialog;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.EditText;
  13. import android.widget.TextView;
  14.  
  15. import butterknife.BindView;
  16. import butterknife.ButterKnife;
  17. import butterknife.OnClick;
  18. import butterknife.OnLongClick;
  19.  
  20.  
  21. public class TimerFragment extends Fragment {
  22.  
  23.     public static final String TIMER = "timer";
  24.     public static final String TIME = "time";
  25.     public static int startSeconds = 0;
  26.  
  27.     int numberOfClick = 0;
  28.     String value;
  29.  
  30.     @BindView(R.id.timer_text_view)
  31.     TextView textView;
  32.  
  33.  
  34.     MyTimer myTimer;
  35.  
  36.     public static TimerFragment newInstance(String timer) {
  37.  
  38.         Bundle args = new Bundle();
  39.         args.putString(TIMER, timer);
  40.         TimerFragment timerFragment = new TimerFragment();
  41.         timerFragment.setArguments(args);
  42.         return timerFragment;
  43.     }
  44.  
  45.     @Override
  46.     public void onCreate(@Nullable Bundle savedInstanceState) {
  47.         super.onCreate(savedInstanceState);
  48.  
  49.         /*if (getArguments() != null && getArguments().containsKey(TIMER)) {
  50.             value = getArguments().getString(TIMER);
  51.             textView.setText(savedInstanceState.getString("time"));
  52.         }
  53.         */
  54.  
  55.  
  56.     }
  57.  
  58.  
  59.     @Nullable
  60.     @Override
  61.     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  62.         if (savedInstanceState != null) {
  63.             textView.setText(savedInstanceState.getString("time"));
  64.         }
  65.  
  66.         View view = inflater.inflate(R.layout.timer_fragment, container, false);
  67.         ButterKnife.bind(this, view);
  68.         if (startSeconds == 0) {
  69.             final EditText setTime = new EditText(getActivity());
  70.             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  71.             builder.setTitle("Timer");
  72.             builder.setMessage("Please set the time");
  73.             builder.setView(setTime);
  74.             builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
  75.                 @Override
  76.                 public void onClick(DialogInterface dialog, int which) {
  77.                     startSeconds = Integer.parseInt(setTime.getText().toString());
  78.                     textView.setText(startSeconds + "");
  79.                 }
  80.             });
  81.             builder.create();
  82.             builder.show();
  83.         }
  84.  
  85.         return view;
  86.     }
  87.  
  88.     @OnClick(R.id.timer_text_view)
  89.     void onClick() {
  90.         numberOfClick++;
  91.  
  92.         if (numberOfClick == 1) {
  93.             myTimer = (MyTimer) new MyTimer(Integer.parseInt(textView.getText().toString())).execute();
  94.         } else if (numberOfClick == 2) {
  95.             myTimer.cancel(true);
  96.             numberOfClick = 0;
  97.         }
  98.     }
  99.  
  100.     @OnLongClick(R.id.timer_text_view)
  101.     boolean OnLongClick() {
  102.         numberOfClick = 0;
  103.         myTimer.cancel(true);
  104.         textView.setText(startSeconds + "");
  105.         return false;
  106.     }
  107.  
  108.     class MyTimer extends AsyncTask<Integer, Integer, Void> {
  109.  
  110.         public int seconds = 0;
  111.  
  112.         public MyTimer(int seconds) {
  113.             this.seconds = seconds;
  114.         }
  115.  
  116.  
  117.         @Override
  118.         protected Void doInBackground(Integer... ints) {
  119.             while (true) {
  120.                 if (!(seconds <= 0) && !isCancelled()) {
  121.                     try {
  122.                         Thread.sleep(1000);
  123.                     } catch (InterruptedException e) {
  124.                         e.printStackTrace();
  125.                     }
  126.                     seconds--;
  127.                     publishProgress(seconds);
  128.                 } else {
  129.                     break;
  130.                 }
  131.             }
  132.             return null;
  133.         }
  134.  
  135.         @Override
  136.         protected void onPreExecute() {
  137.             textView.setText(seconds + "");
  138.         }
  139.  
  140.         @Override
  141.         protected void onPostExecute(Void aVoid) {
  142.             textView.setText(seconds + "");
  143.         }
  144.  
  145.         @Override
  146.         protected void onProgressUpdate(Integer... ints) {
  147.             textView.setText(ints[0] + "");
  148.         }
  149.     }
  150.  
  151.     @Override
  152.     public void onSaveInstanceState(Bundle outState) {
  153.         super.onSaveInstanceState(outState);
  154.         outState.putString("time", textView.getText().toString());
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement