diff --git a/SocketFileTransfer/src/main/AndroidManifest.xml b/SocketFileTransfer/src/main/AndroidManifest.xml index aed84f4..8c8cd17 100644 --- a/SocketFileTransfer/src/main/AndroidManifest.xml +++ b/SocketFileTransfer/src/main/AndroidManifest.xml @@ -1,25 +1,25 @@ + package="com.annimon.socketfiletransfer" + android:versionCode="1" + android:versionName="1.0" > + android:minSdkVersion="7" + android:targetSdkVersion="17" /> + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + android:name="com.annimon.socketfiletransfer.MainActivity" + android:label="@string/app_name" > @@ -42,16 +42,20 @@ + android:name="com.annimon.socketfiletransfer.MessagesActivity" + android:label="@string/title_activity_messages" > + android:name="com.annimon.socketfiletransfer.CursorActivity" + android:label="@string/title_activity_cursor" > + android:name="com.annimon.socketfiletransfer.BrightnessActivity" + android:label="@string/title_activity_brightness" > + + diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/MainActivity.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/MainActivity.java index e52b272..351f498 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/MainActivity.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/MainActivity.java @@ -8,12 +8,15 @@ import android.os.Bundle; import android.app.Activity; import android.provider.MediaStore; import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.Toast; +import com.annimon.socketfiletransfer.util.Configuration; + import java.io.File; public class MainActivity extends Activity implements View.OnClickListener { @@ -48,6 +51,8 @@ public class MainActivity extends Activity implements View.OnClickListener { } setContentView(layout); + + Configuration.getInstance().setContext(this); } @Override @@ -57,6 +62,16 @@ public class MainActivity extends Activity implements View.OnClickListener { return true; } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.action_settings: + Intent prefIntent = new Intent(this, SettingsActivity.class); + startActivity(prefIntent); + break; + } + return true; + } @Override public void onClick(View view) { diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SettingsActivity.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SettingsActivity.java new file mode 100644 index 0000000..bd91892 --- /dev/null +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SettingsActivity.java @@ -0,0 +1,17 @@ +package com.annimon.socketfiletransfer; + +import android.os.Bundle; +import android.preference.PreferenceActivity; + +/** + * @author aNNiMON + */ +public class SettingsActivity extends PreferenceActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.settings_main); + } + +} diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SocketTransferTask.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SocketTransferTask.java index a43764f..8949cf5 100644 --- a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SocketTransferTask.java +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/SocketTransferTask.java @@ -3,6 +3,8 @@ package com.annimon.socketfiletransfer; import android.os.AsyncTask; import android.util.Log; +import com.annimon.socketfiletransfer.util.Config; + import java.net.Socket; public class SocketTransferTask extends AsyncTask { @@ -19,7 +21,7 @@ public class SocketTransferTask extends AsyncTask { boolean success = true; OperationManager manager = new OperationManager(); try { - Socket socket = new Socket("192.168.1.35", 7119); + Socket socket = new Socket(Config.getIpAddress(), Config.getPort()); manager.setSocket(socket); manager.execute(mode, objects); } catch (Exception e) { diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Config.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Config.java new file mode 100644 index 0000000..b394ce6 --- /dev/null +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Config.java @@ -0,0 +1,21 @@ +package com.annimon.socketfiletransfer.util; + +/** + * + * @author aNNiMON + */ +public class Config { + + private static final String + PORT = "port", + IP_ADDRESS = "address"; + + public static int getPort() { + return Configuration.getInstance().getProperty(PORT, 7119); + } + + public static String getIpAddress() { + String path = Configuration.getInstance().getProperty(IP_ADDRESS, "192.168.1.35"); + return path.trim(); + } +} diff --git a/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Configuration.java b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Configuration.java new file mode 100644 index 0000000..fffbf64 --- /dev/null +++ b/SocketFileTransfer/src/main/java/com/annimon/socketfiletransfer/util/Configuration.java @@ -0,0 +1,42 @@ +package com.annimon.socketfiletransfer.util; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +/** + * @author aNNiMON + */ +public class Configuration { + + private static Configuration instance; + + public static synchronized Configuration getInstance() { + if (instance == null) { + instance = new Configuration(); + } + return instance; + } + + private Context context; + private SharedPreferences preferences; + + private Configuration() { } + + public void setContext(Context context) { + this.context = context; + preferences = PreferenceManager.getDefaultSharedPreferences(context); + } + + public String getProperty(String key, String defaultValue) { + if (preferences == null) return defaultValue; + + return preferences.getString(key, defaultValue); + } + + public int getProperty(String key, int defaultValue) { + if (preferences == null) return defaultValue; + + return preferences.getInt(key, defaultValue); + } +} diff --git a/SocketFileTransfer/src/main/res/values/strings.xml b/SocketFileTransfer/src/main/res/values/strings.xml index 957a823..6d37d2a 100644 --- a/SocketFileTransfer/src/main/res/values/strings.xml +++ b/SocketFileTransfer/src/main/res/values/strings.xml @@ -9,6 +9,8 @@ Cursor control Brightness control Send + IP address + Port Start server diff --git a/SocketFileTransfer/src/main/res/xml/settings_main.xml b/SocketFileTransfer/src/main/res/xml/settings_main.xml new file mode 100644 index 0000000..205b2f5 --- /dev/null +++ b/SocketFileTransfer/src/main/res/xml/settings_main.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file