update activity
This commit is contained in:
parent
29beb88900
commit
073d7db188
1 changed files with 62 additions and 15 deletions
|
@ -3,15 +3,25 @@
|
||||||
*/
|
*/
|
||||||
package net.osmand.plus.development;
|
package net.osmand.plus.development;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
import net.osmand.access.AccessibleToast;
|
import net.osmand.access.AccessibleToast;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.voice.AbstractPrologCommandPlayer;
|
import net.osmand.plus.voice.AbstractPrologCommandPlayer;
|
||||||
import net.osmand.plus.voice.CommandBuilder;
|
import net.osmand.plus.voice.CommandBuilder;
|
||||||
import net.osmand.plus.voice.CommandPlayer;
|
import net.osmand.plus.voice.CommandPlayer;
|
||||||
import android.app.ActionBar;
|
import android.app.ActionBar;
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.app.AlertDialog.Builder;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.PreferenceScreen;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
@ -61,24 +71,61 @@ public class TestVoiceActivity extends SherlockActivity {
|
||||||
setContentView(gl);
|
setContentView(gl);
|
||||||
getSupportActionBar(). setTitle(R.string.test_voice_prompts);
|
getSupportActionBar(). setTitle(R.string.test_voice_prompts);
|
||||||
|
|
||||||
Runnable r = new Runnable(){
|
selectVoice(ll);
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public void run() {
|
private Set<String> getVoiceFiles() {
|
||||||
CommandPlayer p = app.getRoutingHelper().getVoiceRouter().getPlayer();
|
// read available voice data
|
||||||
if (p == null) {
|
File extStorage = ((OsmandApplication) getApplication()).getAppPath(IndexConstants.VOICE_INDEX_DIR);
|
||||||
AccessibleToast.makeText(TestVoiceActivity.this, "Voice player not initialized", Toast.LENGTH_SHORT).show();
|
Set<String> setFiles = new LinkedHashSet<String>();
|
||||||
} else {
|
if (extStorage.exists()) {
|
||||||
addButtons(ll, p);
|
for (File f : extStorage.listFiles()) {
|
||||||
|
if (f.isDirectory()) {
|
||||||
|
setFiles.add(f.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
|
||||||
if (app.getRoutingHelper().getVoiceRouter().getPlayer() != null) {
|
|
||||||
r.run();
|
|
||||||
} else {
|
|
||||||
app.showDialogInitializingCommandPlayer(this, true, r);
|
|
||||||
}
|
}
|
||||||
|
return setFiles;
|
||||||
|
}
|
||||||
|
private void selectVoice(final LinearLayout ll) {
|
||||||
|
String[] entries;
|
||||||
|
final String[] entrieValues;
|
||||||
|
Set<String> voiceFiles = getVoiceFiles();
|
||||||
|
entries = new String[voiceFiles.size() ];
|
||||||
|
entrieValues = new String[voiceFiles.size() ];
|
||||||
|
int k = 0;
|
||||||
|
int selected = 0;
|
||||||
|
for (String s : voiceFiles) {
|
||||||
|
entries[k] = s;
|
||||||
|
entrieValues[k] = s;
|
||||||
|
if(s.equals(((OsmandApplication) getApplication()).getSettings().VOICE_PROVIDER)) {
|
||||||
|
selected = k;
|
||||||
|
}
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
Builder bld = new AlertDialog.Builder(this);
|
||||||
|
bld.setSingleChoiceItems(entrieValues, selected, new DialogInterface.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
final OsmandApplication app = (OsmandApplication) getApplication();
|
||||||
|
app.getSettings().VOICE_PROVIDER.set(entrieValues[which]);
|
||||||
|
app.showDialogInitializingCommandPlayer(TestVoiceActivity.this, true, new Runnable() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
CommandPlayer p = app.getRoutingHelper().getVoiceRouter().getPlayer();
|
||||||
|
if (p == null) {
|
||||||
|
AccessibleToast.makeText(TestVoiceActivity.this, "Voice player not initialized", Toast.LENGTH_SHORT).show();
|
||||||
|
} else {
|
||||||
|
addButtons(ll, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
bld.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addButtons(final LinearLayout ll, CommandPlayer p) {
|
private void addButtons(final LinearLayout ll, CommandPlayer p) {
|
||||||
|
|
Loading…
Reference in a new issue