diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index e08f7db..3dd8c06 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/build.gradle b/app/build.gradle
index 69dc5a7..950d5fd 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,27 +1,28 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 27
- defaultConfig {
- applicationId "me.xor_hydrogen.i3control"
- minSdkVersion 22
- targetSdkVersion 27
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- vectorDrawables.useSupportLibrary true
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
+ compileSdkVersion 27
+ defaultConfig {
+ applicationId "me.xor_hydrogen.i3control"
+ minSdkVersion 22
+ targetSdkVersion 27
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ vectorDrawables.useSupportLibrary true
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:27.1.0'
- implementation 'com.android.support.constraint:constraint-layout:1.0.2'
- implementation 'com.android.volley:volley:1.1.0'
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'com.android.support:appcompat-v7:27.1.0'
+ implementation 'com.android.support.constraint:constraint-layout:1.0.2'
+ implementation 'com.android.volley:volley:1.1.0'
+ implementation 'com.android.support:support-v4:27.1.1'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3105ae6..3eb9148 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -14,9 +14,14 @@
+
+
-
\ No newline at end of file
+
diff --git a/app/src/main/java/me/xor_hydrogen/i3control/ApiService.java b/app/src/main/java/me/xor_hydrogen/i3control/ApiService.java
index 6c63874..9c04a6f 100644
--- a/app/src/main/java/me/xor_hydrogen/i3control/ApiService.java
+++ b/app/src/main/java/me/xor_hydrogen/i3control/ApiService.java
@@ -1,7 +1,9 @@
package me.xor_hydrogen.i3control;
import android.content.Context;
+import android.content.SharedPreferences;
import android.util.Log;
+import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
@@ -13,7 +15,16 @@ import com.android.volley.toolbox.Volley;
class ApiService {
static void sendRequest(String endpoint, Context context) {
RequestQueue queue = Volley.newRequestQueue(context);
- String url ="http://router/" + endpoint;
+
+ SharedPreferences settings = context.getSharedPreferences(
+ context.getApplicationContext().getPackageName() + "_preferences", 0);
+ String host = settings.getString("pref_host", "");
+ if (host.equals("")) {
+ Toast.makeText(context, "No host set", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ String url ="http://" + host + "/" + endpoint;
Log.i(context.getClass().getName(), "Sending request to: " + url);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() {
diff --git a/app/src/main/java/me/xor_hydrogen/i3control/MainActivity.java b/app/src/main/java/me/xor_hydrogen/i3control/MainActivity.java
index 4a2e556..8503358 100644
--- a/app/src/main/java/me/xor_hydrogen/i3control/MainActivity.java
+++ b/app/src/main/java/me/xor_hydrogen/i3control/MainActivity.java
@@ -1,13 +1,38 @@
package me.xor_hydrogen.i3control;
import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
+import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.actionbar_menu, menu);
+ return super.onCreateOptionsMenu(menu);
+
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_settings:
+ startActivity(new Intent(MainActivity.this, SettingsActivity.class));
+ break;
+ }
+ return true;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/app/src/main/java/me/xor_hydrogen/i3control/SettingsActivity.java b/app/src/main/java/me/xor_hydrogen/i3control/SettingsActivity.java
new file mode 100644
index 0000000..71d5ce7
--- /dev/null
+++ b/app/src/main/java/me/xor_hydrogen/i3control/SettingsActivity.java
@@ -0,0 +1,25 @@
+package me.xor_hydrogen.i3control;
+
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
+
+public class SettingsActivity extends PreferenceActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getFragmentManager().beginTransaction()
+ .replace(android.R.id.content, new SettingsFragment())
+ .commit();
+ }
+
+ static public class SettingsFragment extends PreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences);
+ }
+ }
+}
diff --git a/app/src/main/res/drawable/ic_settings_fg_24dp.xml b/app/src/main/res/drawable/ic_settings_fg_24dp.xml
new file mode 100644
index 0000000..db8da02
--- /dev/null
+++ b/app/src/main/res/drawable/ic_settings_fg_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 3c6e508..5f9b88a 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -113,4 +113,5 @@
app:layout_constraintTop_toBottomOf="@+id/volUpButton"
app:srcCompat="@drawable/ic_skip_next_black_24dp"
android:contentDescription="@string/next"/>
+
diff --git a/app/src/main/res/menu/actionbar_menu.xml b/app/src/main/res/menu/actionbar_menu.xml
new file mode 100644
index 0000000..f4e5e26
--- /dev/null
+++ b/app/src/main/res/menu/actionbar_menu.xml
@@ -0,0 +1,11 @@
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2fc1e31..f973eee 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,4 +6,79 @@
Previous
Play
Next
+ Settings
+ Hostname/IP
+ Settings
+
+
+
+
+ General
+
+ Enable social recommendations
+ Recommendations for people to contact
+ based on your message history
+
+
+ Display name
+ John Smith
+
+ Add friends to messages
+
+ - Always
+ - When possible
+ - Never
+
+
+ - 1
+ - 0
+ - -1
+
+
+
+ Data & sync
+
+ Sync frequency
+
+ - 15 minutes
+ - 30 minutes
+ - 1 hour
+ - 3 hours
+ - 6 hours
+ - Never
+
+
+ - 15
+ - 30
+ - 60
+ - 180
+ - 360
+ - -1
+
+
+
+ - Entry 1
+ - Entry 2
+ - Entry 3
+
+
+
+ - 1
+ - 2
+ - 3
+
+
+
+
+ System sync settings
+
+
+ Notifications
+
+ New message notifications
+
+ Ringtone
+ Silent
+
+ Vibrate
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 51b30b8..32ae2a0 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -10,5 +10,13 @@
- @color/colorBackground
+
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
new file mode 100644
index 0000000..d7676b5
--- /dev/null
+++ b/app/src/main/res/xml/preferences.xml
@@ -0,0 +1,7 @@
+
+
+
+