private void startTimer() { // change visibility of minute + and - buttons, minutes text and delay showMinutes(false); // setting color to the progress with color filters // rgb color picker http://www.hexcolortool.com/#2f4efe color picker // red mProgressBar .getBackground() .setColorFilter(Color.argb(255, 255, 87, 34), PorterDuff.Mode.SRC_IN); mProgressBar .getProgressDrawable() .setColorFilter(Color.argb(255, 255, 87, 34), PorterDuff.Mode.SRC_IN); // max needs to be set so progress shows correctly mProgressBar.setMax((textViewToInt((minutes)) * 60)); // change visibility of minute + and - buttons and minutes showMinutes(false); timerStopped = false; // set counter value counter = (textViewToInt(minutes) * 60) - 18; countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) { @Override public void onTick(long millisUntilFinished) { // show time long seconds = millisUntilFinished / 1000; mProgressBar.setProgress((int) (millisUntilFinished / 1000)); textViewShowTime.setText( String.format("%02d", seconds / 60) + ":" + String.format("%02d", seconds % 60)); // every 10 seconds read volt, if volt decreasing is ongoing it will skip this if ((int) seconds == counter && decreaseThread == null) { Log.i(TAG, "EVERY 10 SECONDS"); mBluetoothLeService.readVoltage(); } // every 12 seconds read polarity, if volt decreasing is ongoing it will skip this if ((int) seconds == (counter - 2) && decreaseThread == null) { Log.i(TAG, "EVERY 12 SECONDS"); mBluetoothLeService.readPolarity(); counter -= 10; } // halftime if (millisUntilFinished < (totalTimeCountInMilliseconds / 2)) { // blue mProgressBar .getBackground() .setColorFilter(Color.argb(255, 48, 79, 254), PorterDuff.Mode.SRC_IN); mProgressBar .getProgressDrawable() .setColorFilter(Color.argb(255, 48, 79, 254), PorterDuff.Mode.SRC_IN); // check if polarity has changed if (!polarityChanged) { changePolarity(); } } // check if increaseVoltToMax thread is done and max_volt is false if (increaseThread.getState() == Thread.State.TERMINATED && !max_volt) { setButtonDisabled(true); max_volt = true; } // check if decreaseThread has initialized if (decreaseThread != null) { // check if decreaseThread is running if (decreaseThread.getState() != Thread.State.TERMINATED) { setButtonDisabled(false); } } // start decrease volt to zero when until time is equal volts/2 plus 2 if ((millisUntilFinished / 1000) == (textViewToInt(volts) / 2 + 2)) { int volt = textViewToInt(volts); decreaseThread = decreaseVoltToZero(volt); } } public void onFinish() { // when the timer is finished textViewShowTime.setText(getBaseContext().getResources().getString(R.string.done)); textViewShowTime.setVisibility(View.VISIBLE); buttonStartTime.setVisibility(View.GONE); buttonStopTime.setVisibility(View.GONE); mProgressBar.getBackground().clearColorFilter(); mProgressBar .getBackground() .setColorFilter(Color.argb(255, 0, 230, 118), PorterDuff.Mode.SRC_IN); mProgressBar .getProgressDrawable() .setColorFilter(Color.argb(255, 0, 230, 118), PorterDuff.Mode.SRC_IN); // turn off bluetooth connection to the device and let the customer know stopTreatment(); } }.start(); }
private void findViews() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.setDrawerListener(toggle); toggle.syncState(); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); nestedScrollView = (NestedScrollView) findViewById(R.id.nsv); prefs = getSharedPreferences("user_prefs", MODE_PRIVATE); // Button addVoltButton = (Button) findViewById(R.id.addVoltButton); addMinuteButton = (Button) findViewById(R.id.addMinuteButton); decreaseVoltButton = (Button) findViewById(R.id.decreaseVoltButton); decreaseMinuteButton = (Button) findViewById(R.id.decreaseMinuteButton); buttonStartTime = (Button) findViewById(R.id.btnStartTime); buttonStopTime = (Button) findViewById(R.id.btnStopTime); minuteHelpText = (TextView) findViewById(R.id.minuteHelpText); // TextViews textViewShowTime = (TextView) findViewById(R.id.tvTimeCount); volts = (TextView) findViewById(R.id.volts); volts.setText(prefs.getInt("volts", 20) + ""); minutes = (TextView) findViewById(R.id.minutes); minutes.setText(prefs.getInt("minutes", 2) + ""); // checkbox delayCheckBox = (CheckBox) findViewById(R.id.delayCheckBox); delayCheckBox.setChecked(prefs.getBoolean("delay", false)); delaytimer = delayCheckBox.isChecked(); voltageTextView = (TextView) findViewById(R.id.voltage_textview); polarityTextView = (TextView) findViewById(R.id.polarity_textview); // Progress Bar mProgressBar = (ProgressBar) findViewById(R.id.progressbar); // Floating Action Button // fab = (FloatingActionButton) findViewById(R.id.fab); // Views rootview = (RelativeLayout) findViewById(R.id.rootview); connect_button_view = (RelativeLayout) findViewById(R.id.connect_button_view); connectDeviceButton = (Button) findViewById(R.id.connect_device_button); // set connect view setVisibility(CONNECT_VIEW); // this should make the screen stay on when rootview is visible getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); if (rootview != null && rootview.getVisibility() == View.VISIBLE) { rootview.setKeepScreenOn(true); } mProgressBar .getBackground() .setColorFilter(Color.argb(255, 0, 230, 118), PorterDuff.Mode.SRC_IN); mProgressBar .getProgressDrawable() .setColorFilter(Color.argb(255, 0, 230, 118), PorterDuff.Mode.SRC_IN); // Listeners addMinuteButton.setOnClickListener(this); addVoltButton.setOnClickListener(this); decreaseVoltButton.setOnClickListener(this); decreaseMinuteButton.setOnClickListener(this); buttonStartTime.setOnClickListener(this); buttonStopTime.setOnClickListener(this); // fab.setOnClickListener(this); connectDeviceButton.setOnClickListener(this); textViewShowTime.setOnClickListener(this); delayCheckBox.setOnCheckedChangeListener(this); final Snackbar snackbar = Snackbar.make( nestedScrollView, "Bluetooth has not been enabled", Snackbar.LENGTH_INDEFINITE) .setAction( "ENABLE", new View.OnClickListener() { @Override public void onClick(View v) { // ENABLE DEVICE'S BLUETOOTH setDeviceBluetooth(true); } }); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); boolean isEnabled = bluetoothAdapter.isEnabled(); if (!isEnabled) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder .setTitle(getBaseContext().getResources().getString(R.string.use_bluetooth)) .setMessage(getBaseContext().getResources().getString(R.string.need_bluetooth_pliz)) .setCancelable(false) .setPositiveButton( getBaseContext().getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // ENABLE DEVICE'S BLUETOOTH setDeviceBluetooth(true); dialog.dismiss(); } }) .setNegativeButton( getBaseContext().getResources().getString(R.string.no), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { snackbar.show(); dialog.dismiss(); } }); AlertDialog alertDialog = builder.create(); alertDialog.show(); } }