forked from GitHub/gf-core
show progress bar when translating or when reloading a language in the lexical activity
This commit is contained in:
@@ -6,14 +6,19 @@ import java.util.List;
|
||||
import android.app.Activity;
|
||||
import android.app.ListActivity;
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewParent;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -38,9 +43,26 @@ public class LexicalEntryActivity extends ListActivity {
|
||||
mShowLanguageView.setLanguages(mTranslator.getAvailableLanguages());
|
||||
mShowLanguageView.setOnLanguageSelectedListener(new OnLanguageSelectedListener() {
|
||||
@Override
|
||||
public void onLanguageSelected(Language language) {
|
||||
mTranslator.setTargetLanguage(language);
|
||||
updateTranslations();
|
||||
public void onLanguageSelected(final Language language) {
|
||||
new AsyncTask<Void,Void,Void>() {
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
showProgressBar();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... params) {
|
||||
mTranslator.setTargetLanguage(language);
|
||||
mTranslator.isTargetLanguageLoaded();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void result) {
|
||||
updateTranslations();
|
||||
hideProgressBar();
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -48,7 +70,7 @@ public class LexicalEntryActivity extends ListActivity {
|
||||
descrView.setText(getIntent().getExtras().getString("source"));
|
||||
|
||||
updateTranslations();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
@@ -57,6 +79,35 @@ public class LexicalEntryActivity extends ListActivity {
|
||||
mShowLanguageView.setSelectedLanguage(mTranslator.getTargetLanguage());
|
||||
}
|
||||
|
||||
private View mProgressBar = null;
|
||||
|
||||
private void showProgressBar() {
|
||||
TextView localTextView = (TextView) getWindow().findViewById(
|
||||
android.R.id.title);
|
||||
if (localTextView != null) {
|
||||
ViewParent localViewParent = localTextView.getParent();
|
||||
if (localViewParent != null && (localViewParent instanceof FrameLayout)) {
|
||||
mProgressBar = ((LayoutInflater) getSystemService("layout_inflater"))
|
||||
.inflate(R.layout.progress_bar, null);
|
||||
FrameLayout.LayoutParams params =
|
||||
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
|
||||
FrameLayout.LayoutParams.WRAP_CONTENT,
|
||||
Gravity.RIGHT);
|
||||
((FrameLayout) localViewParent).addView(mProgressBar, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void hideProgressBar() {
|
||||
if (mProgressBar != null) {
|
||||
ViewParent localViewParent = mProgressBar.getParent();
|
||||
|
||||
if (localViewParent != null && (localViewParent instanceof FrameLayout)) {
|
||||
((FrameLayout) localViewParent).removeView(mProgressBar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private View expandedView;
|
||||
|
||||
private void updateTranslations() {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
package org.grammaticalframework.ui.android;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -11,12 +10,18 @@ import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.speech.SpeechRecognizer;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewParent;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.grammaticalframework.ui.android.ASR.State;
|
||||
import org.grammaticalframework.ui.android.LanguageSelector.OnLanguageSelectedListener;
|
||||
@@ -128,6 +133,35 @@ public class MainActivity extends Activity {
|
||||
mTargetLanguageView.setSelectedLanguage(mTranslator.getTargetLanguage());
|
||||
}
|
||||
|
||||
private View mProgressBar = null;
|
||||
|
||||
private void showProgressBar() {
|
||||
TextView localTextView = (TextView) getWindow().findViewById(
|
||||
android.R.id.title);
|
||||
if (localTextView != null) {
|
||||
ViewParent localViewParent = localTextView.getParent();
|
||||
if (localViewParent != null && (localViewParent instanceof FrameLayout)) {
|
||||
mProgressBar = ((LayoutInflater) getSystemService("layout_inflater"))
|
||||
.inflate(R.layout.progress_bar, null);
|
||||
FrameLayout.LayoutParams params =
|
||||
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
|
||||
FrameLayout.LayoutParams.WRAP_CONTENT,
|
||||
Gravity.RIGHT);
|
||||
((FrameLayout) localViewParent).addView(mProgressBar, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void hideProgressBar() {
|
||||
if (mProgressBar != null) {
|
||||
ViewParent localViewParent = mProgressBar.getParent();
|
||||
|
||||
if (localViewParent != null && (localViewParent instanceof FrameLayout)) {
|
||||
((FrameLayout) localViewParent).removeView(mProgressBar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
@@ -243,6 +277,11 @@ public class MainActivity extends Activity {
|
||||
|
||||
mConversationView.updateLastUtterance(input, list);
|
||||
new AsyncTask<Void,Void,String>() {
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
showProgressBar();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... params) {
|
||||
return mTranslator.translate(input);
|
||||
@@ -251,6 +290,7 @@ public class MainActivity extends Activity {
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
outputText(result);
|
||||
hideProgressBar();
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
@@ -136,6 +136,16 @@ public class Translator {
|
||||
mSourceLoader.start();
|
||||
}
|
||||
|
||||
public boolean isSourceLanguageLoaded() {
|
||||
try {
|
||||
mSourceLoader.join();
|
||||
return true;
|
||||
} catch (InterruptedException e) {
|
||||
Log.e(TAG, "Loading interrupted", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private Concr getSourceConcr() {
|
||||
try {
|
||||
mSourceLoader.join();
|
||||
@@ -181,6 +191,16 @@ public class Translator {
|
||||
mTargetLoader.start();
|
||||
}
|
||||
|
||||
public boolean isTargetLanguageLoaded() {
|
||||
try {
|
||||
mTargetLoader.join();
|
||||
return true;
|
||||
} catch (InterruptedException e) {
|
||||
Log.e(TAG, "Loading interrupted", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private Concr getTargetConcr() {
|
||||
try {
|
||||
mTargetLoader.join();
|
||||
|
||||
Reference in New Issue
Block a user