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 @@ + + + +