Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.landroid.atuin.RGBArduinoBT
- import android.app.Activity
- import android.os.Bundle
- import android.view.View
- import android.widget.Toast
- import android.widget.TextView
- import android.widget.SeekBar
- import android.widget.SeekBar.OnSeekBarChangeListener
- import android.widget.CompoundButton
- import android.widget.CompoundButton.OnCheckedChangeListener
- import android.util.Log
- import android.content.Context
- import android.bluetooth.BluetoothAdapter
- import android.content.Intent
- import scala.collection.mutable.HashMap
- class RGBColor (var r:Int, var g:Int, var b:Int) {
- def setByIndex (index:Int, value:Int) {
- index match {
- case 1 => r = value
- case 2 => g = value
- case 3 => b = value
- }
- }
- def getByIndex (index:Int): Int = index match {
- case 1 => r
- case 2 => g
- case 3 => b
- }
- }
- trait BTSerial {
- val mBT = BluetoothAdapter.getDefaultAdapter()
- val context:Context
- if (mBT == null) {
- Toast.makeText(context, "BT Not avaible", Toast.LENGTH_LONG).show()
- }
- def enable () {
- if (! mBT.isEnabled()) {
- mBT.enable()
- val enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)
- context.startActivityForResult(enabler, REQUEST_DISCOVERABLE)
- }
- }
- def disable () {
- mBT.disable()
- }
- def discover () {
- // val enabler = new Intent(this, classOf[DiscoveryActivitay])
- // context.startActivity(enabler)
- }
- }
- class RGBArduinoBT extends TypedActivity
- with BTSerial
- with OnCheckedChangeListener
- with OnSeekBarChangeListener {
- lazy val redSeekBar = findView(TR.redSeekBar)
- lazy val greenSeekBar = findView(TR.greenSeekBar)
- lazy val blueSeekBar = findView(TR.blueSeekBar)
- lazy val rgb = new RGBColor(30,30,30)
- lazy val context = getApplicationContext()
- def updateProgress () = {
- redSeekBar.setProgress(rgb.r)
- greenSeekBar.setProgress(rgb.g)
- blueSeekBar.setProgress(rgb.b)
- }
- def findSeekBarByCheckBoxId (checkBoxId: Int): (Int, SeekBar) = checkBoxId match {
- case R.id.redCheckBox => (1,redSeekBar)
- case R.id.greenCheckBox => (2,greenSeekBar)
- case R.id.blueCheckBox => (3,blueSeekBar)
- }
- /** Called when the activity is first created. */
- override def onCreate(savedInstanceState: Bundle) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.main)
- updateProgress()
- findView(TR.redCheckBox).setOnCheckedChangeListener(this)
- findView(TR.greenCheckBox).setOnCheckedChangeListener(this)
- findView(TR.blueCheckBox).setOnCheckedChangeListener(this)
- redSeekBar.setOnSeekBarChangeListener(this)
- greenSeekBar.setOnSeekBarChangeListener(this)
- blueSeekBar.setOnSeekBarChangeListener(this)
- Log.i("RGBArduinoBT", "redCheckBox:" + TR.redCheckBox)
- }
- override def onCheckedChanged (button: CompoundButton,
- isChecked: Boolean) {
- val (index, progressBar) = findSeekBarByCheckBoxId(button.getId())
- if (isChecked == true) {
- rgb.setByIndex(index, progressBar.getProgress())
- progressBar.setProgress(0)
- }
- else
- progressBar.setProgress(rgb.getByIndex(index))
- }
- /*
- * Get events for progress bar changes.
- * Send value for specified led to arduino via bt
- */
- override def onProgressChanged (seekBar:SeekBar,
- progress:Int,
- fromUser:Boolean) {
- Log.i("RGBArduinoBT", "onProgressChanged:" + seekBar.toString() + ": " + progress)
- }
- override def onStopTrackingTouch (seekBar:SeekBar) {}
- override def onStartTrackingTouch (seekBar: SeekBar) {}
- }
Advertisement
Add Comment
Please, Sign In to add comment