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.Activity;
|
||||||
import android.app.ListActivity;
|
import android.app.ListActivity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewParent;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewGroup.LayoutParams;
|
import android.view.ViewGroup.LayoutParams;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@@ -38,9 +43,26 @@ public class LexicalEntryActivity extends ListActivity {
|
|||||||
mShowLanguageView.setLanguages(mTranslator.getAvailableLanguages());
|
mShowLanguageView.setLanguages(mTranslator.getAvailableLanguages());
|
||||||
mShowLanguageView.setOnLanguageSelectedListener(new OnLanguageSelectedListener() {
|
mShowLanguageView.setOnLanguageSelectedListener(new OnLanguageSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onLanguageSelected(Language language) {
|
public void onLanguageSelected(final Language language) {
|
||||||
mTranslator.setTargetLanguage(language);
|
new AsyncTask<Void,Void,Void>() {
|
||||||
updateTranslations();
|
@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"));
|
descrView.setText(getIntent().getExtras().getString("source"));
|
||||||
|
|
||||||
updateTranslations();
|
updateTranslations();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
@@ -57,6 +79,35 @@ public class LexicalEntryActivity extends ListActivity {
|
|||||||
mShowLanguageView.setSelectedLanguage(mTranslator.getTargetLanguage());
|
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 View expandedView;
|
||||||
|
|
||||||
private void updateTranslations() {
|
private void updateTranslations() {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
package org.grammaticalframework.ui.android;
|
package org.grammaticalframework.ui.android;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -11,12 +10,18 @@ import android.os.AsyncTask;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.speech.SpeechRecognizer;
|
import android.speech.SpeechRecognizer;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Gravity;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewParent;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.grammaticalframework.ui.android.ASR.State;
|
import org.grammaticalframework.ui.android.ASR.State;
|
||||||
import org.grammaticalframework.ui.android.LanguageSelector.OnLanguageSelectedListener;
|
import org.grammaticalframework.ui.android.LanguageSelector.OnLanguageSelectedListener;
|
||||||
@@ -128,6 +133,35 @@ public class MainActivity extends Activity {
|
|||||||
mTargetLanguageView.setSelectedLanguage(mTranslator.getTargetLanguage());
|
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
|
@Override
|
||||||
protected void onSaveInstanceState(Bundle outState) {
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
@@ -243,6 +277,11 @@ public class MainActivity extends Activity {
|
|||||||
|
|
||||||
mConversationView.updateLastUtterance(input, list);
|
mConversationView.updateLastUtterance(input, list);
|
||||||
new AsyncTask<Void,Void,String>() {
|
new AsyncTask<Void,Void,String>() {
|
||||||
|
@Override
|
||||||
|
protected void onPreExecute() {
|
||||||
|
showProgressBar();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String doInBackground(Void... params) {
|
protected String doInBackground(Void... params) {
|
||||||
return mTranslator.translate(input);
|
return mTranslator.translate(input);
|
||||||
@@ -251,6 +290,7 @@ public class MainActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(String result) {
|
protected void onPostExecute(String result) {
|
||||||
outputText(result);
|
outputText(result);
|
||||||
|
hideProgressBar();
|
||||||
}
|
}
|
||||||
}.execute();
|
}.execute();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,6 +136,16 @@ public class Translator {
|
|||||||
mSourceLoader.start();
|
mSourceLoader.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSourceLanguageLoaded() {
|
||||||
|
try {
|
||||||
|
mSourceLoader.join();
|
||||||
|
return true;
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Log.e(TAG, "Loading interrupted", e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private Concr getSourceConcr() {
|
private Concr getSourceConcr() {
|
||||||
try {
|
try {
|
||||||
mSourceLoader.join();
|
mSourceLoader.join();
|
||||||
@@ -181,6 +191,16 @@ public class Translator {
|
|||||||
mTargetLoader.start();
|
mTargetLoader.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isTargetLanguageLoaded() {
|
||||||
|
try {
|
||||||
|
mTargetLoader.join();
|
||||||
|
return true;
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Log.e(TAG, "Loading interrupted", e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private Concr getTargetConcr() {
|
private Concr getTargetConcr() {
|
||||||
try {
|
try {
|
||||||
mTargetLoader.join();
|
mTargetLoader.join();
|
||||||
|
|||||||
Reference in New Issue
Block a user