mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-02 08:09:35 +02:00
fill GroupPreferences
This commit is contained in:
parent
de081b671a
commit
6c5c998743
4 changed files with 68 additions and 19 deletions
|
@ -42,7 +42,6 @@ public class ClientSettingsFragment extends PreferenceFragment {
|
|||
private Client client = null;
|
||||
private Client clientOriginal = null;
|
||||
private EditTextPreference prefName;
|
||||
private ListPreference prefStream;
|
||||
private EditTextPreference prefLatency;
|
||||
private Preference prefMac;
|
||||
private Preference prefId;
|
||||
|
@ -57,6 +56,7 @@ public class ClientSettingsFragment extends PreferenceFragment {
|
|||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
/*
|
||||
Bundle bundle = getArguments();
|
||||
try {
|
||||
client = new Client(new JSONObject(bundle.getString("client")));
|
||||
|
@ -79,6 +79,7 @@ public class ClientSettingsFragment extends PreferenceFragment {
|
|||
streamNames[i] = streams.get(i).getName();
|
||||
streamIds[i] = streams.get(i).getId();
|
||||
}
|
||||
*/
|
||||
|
||||
// Load the preferences from an XML resource
|
||||
addPreferencesFromResource(R.xml.client_preferences);
|
||||
|
@ -91,10 +92,11 @@ public class ClientSettingsFragment extends PreferenceFragment {
|
|||
return true;
|
||||
}
|
||||
});
|
||||
/*
|
||||
prefStream = (ListPreference) findPreference("pref_client_stream");
|
||||
prefStream.setEntries(streamNames);
|
||||
prefStream.setEntryValues(streamIds);
|
||||
/* TODO: group
|
||||
|
||||
for (int i = 0; i < streams.size(); ++i) {
|
||||
if (streamIds[i].equals(client.getConfig().getStream())) {
|
||||
prefStream.setSummary(streamNames[i]);
|
||||
|
|
|
@ -33,9 +33,11 @@ public class GroupPreferenceActivity extends AppCompatActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
GroupPreferenceFragment groupPreferenceFragment = new GroupPreferenceFragment();
|
||||
groupPreferenceFragment.setArguments(getIntent().getExtras());
|
||||
// Display the fragment as the main content.
|
||||
getFragmentManager().beginTransaction()
|
||||
.replace(android.R.id.content, new GroupPreferenceFragment()).commit();
|
||||
.replace(android.R.id.content, groupPreferenceFragment).commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -26,12 +26,24 @@ import android.preference.PreferenceCategory;
|
|||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import de.badaix.snapcast.control.json.Client;
|
||||
import de.badaix.snapcast.control.json.Group;
|
||||
import de.badaix.snapcast.control.json.ServerStatus;
|
||||
import de.badaix.snapcast.control.json.Stream;
|
||||
|
||||
/**
|
||||
* Created by johannes on 06.12.16.
|
||||
*/
|
||||
|
||||
public class GroupPreferenceFragment extends PreferenceFragment {
|
||||
private ListPreference prefStreams;
|
||||
private Group group = null;
|
||||
private ServerStatus serverStatus = null;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -42,28 +54,61 @@ public class GroupPreferenceFragment extends PreferenceFragment {
|
|||
PreferenceScreen screen = this.getPreferenceScreen();
|
||||
|
||||
prefStreams = (ListPreference) findPreference("pref_stream");
|
||||
final CharSequence[] entries = { "English", "French" };
|
||||
final CharSequence[] entryValues = {"1" , "2"};
|
||||
prefStreams.setEntries(entries);
|
||||
prefStreams.setDefaultValue("1");
|
||||
prefStreams.setEntryValues(entryValues);
|
||||
|
||||
Bundle bundle = getArguments();
|
||||
try {
|
||||
group = new Group(new JSONObject(bundle.getString("group")));
|
||||
serverStatus = new ServerStatus(new JSONObject(bundle.getString("serverStatus")));
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
final ArrayList<Stream> streams = serverStatus.getStreams();
|
||||
final CharSequence[] streamNames = new CharSequence[streams.size()];
|
||||
final CharSequence[] streamIds = new CharSequence[streams.size()];
|
||||
for (int i = 0; i < streams.size(); ++i) {
|
||||
streamNames[i] = streams.get(i).getName();
|
||||
streamIds[i] = streams.get(i).getId();
|
||||
}
|
||||
|
||||
prefStreams.setEntries(streamNames);
|
||||
prefStreams.setEntryValues(streamIds);
|
||||
|
||||
for (int i = 0; i < streams.size(); ++i) {
|
||||
if (streamIds[i].equals(group.getStreamId())) {
|
||||
prefStreams.setTitle(streamNames[i]);
|
||||
prefStreams.setValueIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
prefStreams.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
preference.setSummary(newValue.toString());
|
||||
prefStreams.setTitle(entries[prefStreams.findIndexOfValue(newValue.toString())]);
|
||||
return true;
|
||||
for (int i = 0; i < streams.size(); ++i) {
|
||||
if (streamIds[i].equals(newValue)) {
|
||||
prefStreams.setTitle(streamNames[i]);
|
||||
// client.getConfig().setStream(streamIds[i].toString());
|
||||
prefStreams.setValueIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
PreferenceCategory prefStream = (PreferenceCategory) findPreference("pref_cat_clients");
|
||||
|
||||
for (int i=0; i<3; ++i) {
|
||||
CheckBoxPreference checkBoxPref = new CheckBoxPreference(screen.getContext());
|
||||
checkBoxPref.setKey("key" + i);
|
||||
checkBoxPref.setTitle("Title " + i);
|
||||
checkBoxPref.setChecked(true);
|
||||
prefStream.addPreference(checkBoxPref);
|
||||
for (Group g : serverStatus.getGroups()) {
|
||||
for (Client client : g.getClients()) {
|
||||
CheckBoxPreference checkBoxPref = new CheckBoxPreference(screen.getContext());
|
||||
checkBoxPref.setKey(client.getId());
|
||||
checkBoxPref.setTitle(client.getVisibleName());
|
||||
checkBoxPref.setChecked(g.getId().equals(group.getId()));
|
||||
prefStream.addPreference(checkBoxPref);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -575,7 +575,6 @@ public class MainActivity extends AppCompatActivity implements GroupItem.GroupIt
|
|||
public void onClientPropertiesClicked(GroupItem groupItem, ClientItem clientItem) {
|
||||
Intent intent = new Intent(this, ClientSettingsActivity.class);
|
||||
intent.putExtra("client", clientItem.getClient().toJson().toString());
|
||||
intent.putExtra("streams", serverStatus.getJsonStreams().toString());
|
||||
intent.setFlags(0);
|
||||
startActivityForResult(intent, CLIENT_PROPERTIES_REQUEST);
|
||||
}
|
||||
|
@ -583,7 +582,8 @@ public class MainActivity extends AppCompatActivity implements GroupItem.GroupIt
|
|||
@Override
|
||||
public void onPropertiesClicked(GroupItem groupItem) {
|
||||
Intent intent = new Intent(this, GroupPreferenceActivity.class);
|
||||
intent.putExtra("test", "xxx");
|
||||
intent.putExtra("serverStatus", serverStatus.toJson().toString());
|
||||
intent.putExtra("group", groupItem.getGroup().toJson().toString());
|
||||
intent.setFlags(0);
|
||||
startActivityForResult(intent, GROUP_PROPERTIES_REQUEST);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue