update
This commit is contained in:
parent
85d8586aed
commit
74159a1b47
@ -7,29 +7,46 @@ import android.content.pm.PackageManager
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.widget.Button
|
import android.widget.*
|
||||||
import android.widget.EditText
|
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
|
||||||
import xyz.mtfos.btdemo.objectTool.bind
|
import xyz.mtfos.btdemo.objectTool.bind
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by jay on 2017/8/9.
|
* Created by jay on 2017/8/9.
|
||||||
*/
|
*/
|
||||||
class MainActivity : Activity() {
|
class MainActivity : Activity() {
|
||||||
|
val mainLay: LinearLayout by bind(R.id.mainlay)
|
||||||
|
|
||||||
val intxt: EditText by bind(R.id.intxt)
|
val intxt: EditText by bind(R.id.intxt)
|
||||||
val btn: Button by bind(R.id.bt)
|
val btn: Button by bind(R.id.bt)
|
||||||
val connectBtn: Button by bind(R.id.connect)
|
val connectBtn: Button by bind(R.id.connect)
|
||||||
val disconnectBtn: Button by bind(R.id.disconnect)
|
val disconnectBtn: Button by bind(R.id.disconnect)
|
||||||
var ble: PrinterBle? = null
|
var ble: PrinterBle? = null
|
||||||
|
val alignSpinner: Spinner by bind(R.id.align)
|
||||||
|
val sizeSpinner: Spinner by bind(R.id.size)
|
||||||
|
val alignBtn: Button by bind(R.id.btn_align)
|
||||||
|
val sizeBtn: Button by bind(R.id.btn_size)
|
||||||
|
|
||||||
|
val addHR: Button by bind(R.id.addHR)
|
||||||
|
val addNL: Button by bind(R.id.addNL)
|
||||||
|
val addTAB: Button by bind(R.id.addTAB)
|
||||||
|
val addTXT: Button by bind(R.id.addTXT)
|
||||||
|
|
||||||
|
val preview: TextView by bind(R.id.preview)
|
||||||
|
|
||||||
val uiHandler: Handler = Handler()
|
val uiHandler: Handler = Handler()
|
||||||
var th: Thread? = null
|
var th: Thread? = null
|
||||||
var thrun: Boolean = false
|
var thrun: Boolean = false
|
||||||
var isInit: Boolean = false
|
var isInit: Boolean = false
|
||||||
|
val alignArr: Array<String> = arrayOf("Left", "Center", "Right")
|
||||||
|
val sizeArr: Array<String> = arrayOf("1,1", "1,2", "2,1", "2,2")
|
||||||
|
|
||||||
|
@SuppressLint("WrongConstant")
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
|
mainLay.visibility = LinearLayout.GONE
|
||||||
|
|
||||||
btn.isEnabled = false
|
btn.isEnabled = false
|
||||||
connectBtn.isEnabled = true
|
connectBtn.isEnabled = true
|
||||||
disconnectBtn.isEnabled = false
|
disconnectBtn.isEnabled = false
|
||||||
@ -45,18 +62,47 @@ class MainActivity : Activity() {
|
|||||||
btn.isEnabled = true
|
btn.isEnabled = true
|
||||||
connectBtn.isEnabled = false
|
connectBtn.isEnabled = false
|
||||||
disconnectBtn.isEnabled = true
|
disconnectBtn.isEnabled = true
|
||||||
|
uiHandler.post {
|
||||||
|
mainLay.visibility = LinearLayout.VISIBLE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (it == PrinterBle.DISCONNECTED) {
|
if (it == PrinterBle.DISCONNECTED) {
|
||||||
btn.isEnabled = false
|
btn.isEnabled = false
|
||||||
connectBtn.isEnabled = true
|
connectBtn.isEnabled = true
|
||||||
disconnectBtn.isEnabled = false
|
disconnectBtn.isEnabled = false
|
||||||
|
uiHandler.post {
|
||||||
|
mainLay.visibility = LinearLayout.GONE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ble?.setOnNotifyListener{
|
ble?.setOnNotifyListener {
|
||||||
System.out.println("Get Notify :::::: " + it)
|
System.out.println("Get Notify :::::: " + it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
alignSpinner.adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, alignArr)
|
||||||
|
alignBtn.setOnClickListener {
|
||||||
|
val pos = alignSpinner.selectedItemPosition
|
||||||
|
when (pos) {
|
||||||
|
0 -> ble?.setAlign(PrinterBle.ALIGN_LEFT)
|
||||||
|
1 -> ble?.setAlign(PrinterBle.ALIGN_CENTER)
|
||||||
|
2 -> ble?.setAlign(PrinterBle.ALIGN_RIGHT)
|
||||||
|
}
|
||||||
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
|
sizeSpinner.adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, sizeArr)
|
||||||
|
sizeBtn.setOnClickListener {
|
||||||
|
val pos = sizeSpinner.selectedItemPosition
|
||||||
|
when (pos) {
|
||||||
|
0 -> ble?.setSize(1, 1)
|
||||||
|
1 -> ble?.setSize(1, 2)
|
||||||
|
2 -> ble?.setSize(2, 1)
|
||||||
|
3 -> ble?.setSize(2, 2)
|
||||||
|
}
|
||||||
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
var permissionCheck: Int = 0
|
var permissionCheck: Int = 0
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
permissionCheck += this@MainActivity.checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
|
permissionCheck += this@MainActivity.checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
|
||||||
@ -66,17 +112,28 @@ class MainActivity : Activity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
btn.setOnClickListener {
|
addHR.setOnClickListener {
|
||||||
val txt: String = intxt.text.toString()
|
|
||||||
ble?.setSize(2,1)
|
|
||||||
ble?.setAlign(PrinterBle.ALIGN_CENTER)
|
|
||||||
ble?.addTextln("MTFoS Shop")
|
|
||||||
ble?.resetSize()
|
|
||||||
ble?.setAlign(PrinterBle.ALIGN_RIGHT)
|
|
||||||
ble?.addTextln("MTFoS Shop")
|
|
||||||
ble?.addHR()
|
ble?.addHR()
|
||||||
ble?.setAlign(PrinterBle.ALIGN_LEFT)
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
|
addNL.setOnClickListener {
|
||||||
|
ble?.textNewLine()
|
||||||
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
|
addTAB.setOnClickListener {
|
||||||
|
ble?.textTab()
|
||||||
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
|
addTXT.setOnClickListener {
|
||||||
|
val txt: String = intxt.text.toString()
|
||||||
ble?.addText(txt)
|
ble?.addText(txt)
|
||||||
|
refreshPreview()
|
||||||
|
}
|
||||||
|
|
||||||
|
btn.setOnClickListener {
|
||||||
ble?.sendQueue()
|
ble?.sendQueue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,4 +168,12 @@ class MainActivity : Activity() {
|
|||||||
ble?.disconnect()
|
ble?.disconnect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun refreshPreview() {
|
||||||
|
val data = ble?.dataQueue ?: return
|
||||||
|
preview.text = ""
|
||||||
|
for (str: String in data) {
|
||||||
|
preview.text = preview.text.toString() + "\n" + str
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -100,10 +100,10 @@ public class PrinterBle {
|
|||||||
super.onConnectionStateChange(gatt, status, newState);
|
super.onConnectionStateChange(gatt, status, newState);
|
||||||
Log.d(TAG, "Connect State Change to " + status + " new State : " + newState);
|
Log.d(TAG, "Connect State Change to " + status + " new State : " + newState);
|
||||||
if (status == BluetoothGatt.GATT_SUCCESS) {
|
if (status == BluetoothGatt.GATT_SUCCESS) {
|
||||||
if(mState != DISCONNECTED) {
|
if (mState != DISCONNECTED) {
|
||||||
mState = CONNECTED;
|
mState = CONNECTED;
|
||||||
Log.d(TAG, "Connected");
|
Log.d(TAG, "Connected");
|
||||||
if(!isConnected) {
|
if (!isConnected) {
|
||||||
isConnected = true;
|
isConnected = true;
|
||||||
mBtGatt.discoverServices();
|
mBtGatt.discoverServices();
|
||||||
}
|
}
|
||||||
@ -251,7 +251,7 @@ public class PrinterBle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mState = SCANNING;
|
mState = SCANNING;
|
||||||
if(this.mStateListener != null) {
|
if (this.mStateListener != null) {
|
||||||
this.mStateListener.onChange(mState);
|
this.mStateListener.onChange(mState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,7 +268,7 @@ public class PrinterBle {
|
|||||||
|
|
||||||
if (mState == SCANNING) {
|
if (mState == SCANNING) {
|
||||||
mState = DISCONNECTED;
|
mState = DISCONNECTED;
|
||||||
if(this.mStateListener != null) {
|
if (this.mStateListener != null) {
|
||||||
this.mStateListener.onChange(mState);
|
this.mStateListener.onChange(mState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -292,7 +292,7 @@ public class PrinterBle {
|
|||||||
if (device == null) return;
|
if (device == null) return;
|
||||||
mBtGatt = device.connectGatt(ctx, false, mBtGattCB);
|
mBtGatt = device.connectGatt(ctx, false, mBtGattCB);
|
||||||
mState = CONNECTING;
|
mState = CONNECTING;
|
||||||
if(this.mStateListener != null){
|
if (this.mStateListener != null) {
|
||||||
this.mStateListener.onChange(mState);
|
this.mStateListener.onChange(mState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -415,7 +415,7 @@ public class PrinterBle {
|
|||||||
return addText(String.format("__&s%d,%d__", w, h));
|
return addText(String.format("__&s%d,%d__", w, h));
|
||||||
}
|
}
|
||||||
|
|
||||||
public PrinterBle addHR(){
|
public PrinterBle addHR() {
|
||||||
int align = this.lastAlign;
|
int align = this.lastAlign;
|
||||||
setAlign(ALIGN_CENTER);
|
setAlign(ALIGN_CENTER);
|
||||||
addTextln(StringUtils.repeat('-', 20));
|
addTextln(StringUtils.repeat('-', 20));
|
||||||
@ -426,4 +426,8 @@ public class PrinterBle {
|
|||||||
public void resetSize() {
|
public void resetSize() {
|
||||||
setSize(1, 1);
|
setSize(1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> getDataQueue() {
|
||||||
|
return dataQueue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,31 +8,155 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/connect"
|
android:id="@+id/connect"
|
||||||
android:text="Connect"
|
|
||||||
android:textAllCaps="false"/>
|
|
||||||
<Button
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Connect"
|
||||||
|
android:textAllCaps="false" />
|
||||||
|
|
||||||
|
<Button
|
||||||
android:id="@+id/disconnect"
|
android:id="@+id/disconnect"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:text="Disconnect"
|
android:text="Disconnect"
|
||||||
android:textAllCaps="false"/>
|
android:textAllCaps="false" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<EditText
|
<LinearLayout
|
||||||
|
android:id="@+id/mainlay"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/intxt"
|
android:orientation="vertical">
|
||||||
android:hint="輸入傳送字串"/>
|
|
||||||
|
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/bt"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:orientation="horizontal">
|
||||||
android:text="Send"
|
|
||||||
android:textAllCaps="false" />
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Align: " />
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatSpinner
|
||||||
|
android:id="@+id/align"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_align"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="Write"
|
||||||
|
android:textAllCaps="false" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Size: " />
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatSpinner
|
||||||
|
android:id="@+id/size"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_size"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="Write"
|
||||||
|
android:textAllCaps="false" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/addHR"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="分隔線" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/addNL"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="換行" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/addTAB"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="TAB" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/intxt"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:hint="輸入傳送字串" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/addTXT"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="addTXT"
|
||||||
|
android:textAllCaps="false" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/bt"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Send"
|
||||||
|
android:textAllCaps="false" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/preview"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
Loading…
Reference in New Issue
Block a user