diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/ServerActivity.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/ServerActivity.java index 3d32d9e..0432b50 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/ServerActivity.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/ServerActivity.java @@ -7,12 +7,18 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.format.Formatter; +import android.view.WindowManager; import android.widget.TextView; +import com.annimon.socketfiletransfer.operations.Operation; import com.annimon.socketfiletransfer.util.Console; public class ServerActivity extends Activity { + public static final int + UPDATE_CONSOLE = 1, + CHANGE_BRIGHTNESS = 2; + private TextView messagesHistory; @Override @@ -23,14 +29,8 @@ public class ServerActivity extends Activity { messagesHistory = (TextView) findViewById(R.id.messages_history); messagesHistory.setText(Console.getAllText()); - Handler handler = new Handler() { - - @Override - public void handleMessage(Message msg) { - messagesHistory.setText(Console.getAllText()); - } - }; Console.setHandler(handler); + Operation.setHandler(handler); WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiMgr.getConnectionInfo(); @@ -41,5 +41,21 @@ public class ServerActivity extends Activity { new SocketTransferTask(OperationListener.MODE_SERVER).execute(); } + private final Handler handler = new Handler() { + + @Override + public void handleMessage(Message msg) { + if (msg.what == UPDATE_CONSOLE) { + messagesHistory.setText(Console.getAllText()); + } else if (msg.what == CHANGE_BRIGHTNESS) { + int brightness = msg.arg1; + + WindowManager.LayoutParams lp = getWindow().getAttributes(); + lp.screenBrightness = brightness / 100.0f; + getWindow().setAttributes(lp); + } + + } + }; } diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/BrightnessOperation.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/BrightnessOperation.java index d15e40d..dfd46e8 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/BrightnessOperation.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/BrightnessOperation.java @@ -1,6 +1,10 @@ package com.annimon.socketfiletransfer.operations; +import android.os.Message; + import com.annimon.socketfiletransfer.OperationListener; +import com.annimon.socketfiletransfer.ServerActivity; + /** * @author aNNiMON */ @@ -8,7 +12,21 @@ public class BrightnessOperation extends Operation { @Override public void startServerSide() throws Exception { + String value = dis.readUTF(); + int brightness; + try { + brightness = Integer.parseInt(value); + } catch (NumberFormatException ex) { + brightness = 30; + } + + if (handler != null) { + Message msg = new Message(); + msg.what = ServerActivity.CHANGE_BRIGHTNESS; + msg.arg1 = brightness; + handler.sendMessage(msg); + } } @Override diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/Operation.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/Operation.java index e48a687..d361425 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/Operation.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/operations/Operation.java @@ -1,5 +1,7 @@ package com.annimon.socketfiletransfer.operations; +import android.os.Handler; + import java.io.DataInputStream; import java.io.DataOutputStream; @@ -9,9 +11,15 @@ import java.io.DataOutputStream; */ public abstract class Operation { + protected static Handler handler; + protected DataInputStream dis; protected DataOutputStream dos; + public static void setHandler(Handler handler) { + Operation.handler = handler; + } + public void setDataInputStream(DataInputStream dis) { this.dis = dis; } diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Console.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Console.java index 5be79fe..ff2e969 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Console.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Console.java @@ -2,6 +2,8 @@ package com.annimon.socketfiletransfer.util; import android.os.Handler; +import com.annimon.socketfiletransfer.ServerActivity; + /** * @author aNNiMON */ @@ -12,12 +14,11 @@ public class Console { public static void print(String message) { allText.append(message); - if (handler != null) handler.sendEmptyMessage(1); + if (handler != null) handler.sendEmptyMessage(ServerActivity.UPDATE_CONSOLE); } public static void println(String message) { - print(message); - print("\r\n"); + print(message + "\r\n"); } public static String getAllText() {