Commit cda140ff authored by mistermad's avatar mistermad
Browse files

- Bug fix

- Minor changes to the user interface
- Add screenshots to the base directory
parent 0052cb14
......@@ -31,7 +31,6 @@ import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.SearchView;
import android.widget.TextView;
import android.widget.Toast;
......@@ -123,11 +122,9 @@ public class MainActivity extends ListActivity {
else
Toast.makeText(this, "Network is disconnected", Toast.LENGTH_SHORT).show();
} else if(AikumaSettings.isBackupEnabled
|| AikumaSettings.isAutoDownloadEnabled) {
} else if(AikumaSettings.isBackupEnabled || AikumaSettings.isAutoDownloadEnabled)
// When backup was enabled but the user hasn't ever signed-in google account
getAccountToken();
}
// Start gathering location data
MainActivity.locationDetector = new LocationDetector(this);
......@@ -321,11 +318,11 @@ public class MainActivity extends ListActivity {
}
}
/**
/* *
* Setup the search-menu-item interface (called by MenuBehavior)
* @param menu menu object
*/
public void setUpSearchInterface(Menu menu) {
*/// Never used
/*public void setUpSearchInterface(Menu menu) {
final MenuItem searchMenuItem = menu.findItem(R.id.search);
searchView = (SearchView) searchMenuItem.getActionView();
......@@ -357,7 +354,7 @@ public class MainActivity extends ListActivity {
return true;
}
});
}
}*/
/**
* Sync the device with Google-Cloud
......@@ -404,8 +401,6 @@ public class MainActivity extends ListActivity {
BroadcastReceiver syncReceiver;
private List<Recording> originals;
SearchView searchView;
//TODO: START CLEANING
MenuBehaviour menuBehaviour;
......@@ -503,7 +498,6 @@ public class MainActivity extends ListActivity {
new GetTokenTask(emailAccount, googleAPIScope, settings, false).execute();
} else
Toast.makeText(this, "Network is disconnected", Toast.LENGTH_LONG).show();
return;
}
// if (resultCode == RESULT_CANCELED) {
......@@ -551,8 +545,7 @@ public class MainActivity extends ListActivity {
private static final String TAG = "GetTokenTask";
private String mScope;
private String mEmailAccount;
private String mScope, mEmailAccount;
private SharedPreferences preferences;
private boolean forceSync;
......@@ -623,10 +616,7 @@ public class MainActivity extends ListActivity {
private static final int RECOVER_FROM_AUTH_ERROR_REQUEST_CODE = 1001;
private static final int RECOVER_FROM_GOOGLEPLAY_ERROR_REQUEST_CODE = 1002;
private String emailAccount;
private String googleAuthToken;
private String googleIdToken;
private String googleAPIScope;
private String emailAccount, googleAuthToken, googleIdToken, googleAPIScope;
////////////////////////////////////////////
......
......@@ -99,8 +99,6 @@ public class ModeSelection extends Activity implements OnClickListener{
// check the existing session and show popup to propose retrieving it
prefsUserSession = getSharedPreferences("userSession", MODE_PRIVATE);
ed = prefsUserSession.edit();
if(prefsUserSession.getBoolean("active", false))
showSessionDialog();
}
@Override
......@@ -126,7 +124,6 @@ public class ModeSelection extends Activity implements OnClickListener{
Intent intent = new Intent(ModeSelection.this, RespeakingSelection.class);
intent.putExtra(TRANSLATE_MODE, true);
startActivity(intent);
// startActivity(new Intent(ModeSelection.this, TranslationSelection.class));
if(BuildConfig.DEBUG)Log.i(TAG, "Mode translation selected; view id: " + v.getId());
break;
case R.id.mainElicitBtn:
......@@ -153,6 +150,10 @@ public class ModeSelection extends Activity implements OnClickListener{
public void onResume() {
super.onResume();
MainActivity.locationDetector.start();
prefsUserSession = getSharedPreferences("userSession", MODE_PRIVATE);
if(prefsUserSession.getBoolean("active", false))
showSessionDialog();
}
@Override
......@@ -162,8 +163,7 @@ public class ModeSelection extends Activity implements OnClickListener{
}
public void showSessionDialog() {
DialogFragment dialog = new UserSessionDiaglogFragment();
dialog.show(getFragmentManager(), "SessionDialogFragment");
new UserSessionDiaglogFragment().show(getFragmentManager(), "SessionDialogFragment");
}
@SuppressLint("ValidFragment")
......@@ -178,7 +178,6 @@ public class ModeSelection extends Activity implements OnClickListener{
setDialogDetails(ll);
builder.setView(ll)
// .setMessage("A session has been saved, would you like to retrieve it?")
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
......@@ -310,8 +309,7 @@ public class ModeSelection extends Activity implements OnClickListener{
String savedDate = prefsUserSession.getString("date", "");
Language savedRecordLang = new Language(prefsUserSession.getString("Language name", ""),
prefsUserSession.getString("LanguageCode", ""));
String name = savedDate + "_" +
savedRecordLang.getCode() + "_" + idDevice;
String name = savedDate + "_" + savedRecordLang.getCode() + "_" + idDevice;
//erase linker
File savedTextFile = new File(FileIO.getOwnerPath()+"/recordings/"+name + "/" + name + "_linker.txt");
if(BuildConfig.DEBUG)Log.d(TAG, "saved linker file: "+savedTextFile);
......
......@@ -89,7 +89,7 @@ public class Mapper {
private void restoreFromMappingFile() throws IOException {
String line;
while ((line = reader.readLine()) != null && (line.isEmpty() || line.split(":").length <= 1));
if(BuildConfig.DEBUG)Log.d("line", line);
if(BuildConfig.DEBUG && line!=null)Log.d("line", line);
do {
String[] pair = (line != null) ? line.split(":"):new String[0];
String[] strFirstSeg = pair[0].split(",");
......
......@@ -160,7 +160,8 @@ public class RecordElicitation extends AikumaActivity {
private void loadVideo() {
Log.d(TAG,"entityId = "+entityId+"; numberOfEntities = "+numberOfEntities);
if(entityId >= numberOfEntities) {
Toast.makeText(this, R.string.no_more_videos_to_display, Toast.LENGTH_LONG).show();
Toast.makeText(this, getResources().getString(R.string.file_saved) + strFolderDate + "_" + MetadataSession.getMetadataSession().getRecordLanguage().getCode()
+ "_" + Aikuma.getDeviceId() + mode + "_" + entityId, Toast.LENGTH_SHORT).show();
// if ((choiceMode == ElicitationMode.IMAGE_MODE || choiceMode == ElicitationMode.VIDEO_MODE) && bufferedWriter != null) {
if(bufferedWriter != null) {
try {
......@@ -218,7 +219,8 @@ public class RecordElicitation extends AikumaActivity {
private void loadImage() {
if(BuildConfig.DEBUG)Log.d(TAG,"entityId = "+entityId+"; numberOfEntities = "+numberOfEntities);
if (entityId >= numberOfEntities){
Toast.makeText(this, R.string.no_more_images_to_display, Toast.LENGTH_LONG).show();
Toast.makeText(this, getResources().getString(R.string.file_saved) + strFolderDate + "_" + MetadataSession.getMetadataSession().getRecordLanguage().getCode()
+ "_" + Aikuma.getDeviceId() + mode + "_" + entityId, Toast.LENGTH_SHORT).show();
// if ((choiceMode == ElicitationMode.IMAGE_MODE || choiceMode == ElicitationMode.VIDEO_MODE) && bufferedWriter != null) {
if(bufferedWriter != null) {
try {
......@@ -411,7 +413,8 @@ public class RecordElicitation extends AikumaActivity {
this.finish();
Toast.makeText(getApplicationContext(), "Error setting up microphone.", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(this, R.string.no_more_to_display, Toast.LENGTH_LONG).show();
Toast.makeText(this, getResources().getString(R.string.file_saved) + strFolderDate + "_" + MetadataSession.getMetadataSession().getRecordLanguage().getCode()
+ "_" + Aikuma.getDeviceId() + mode + "_" + entityId, Toast.LENGTH_SHORT).show();
if(BuildConfig.DEBUG)Log.e(TAG,"No more to display or an error occurred: " + e);
this.finish();
}
......@@ -455,15 +458,13 @@ public class RecordElicitation extends AikumaActivity {
public void onNextClick(View _view) {
if(!saveRecording() && (entityId < numberOfEntities-1))
Toast.makeText(this, R.string.going_next, Toast.LENGTH_SHORT).show();
else
deleteAllTempFiles();
saveOneRecord();
_button_undo.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.undo2));
_button_undo.setEnabled(false);
ImageButton recordButton = (ImageButton) findViewById(R.id.btn_record_elicit);
recordButton.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.record));
recordButton.setEnabled(true);
saveOneRecord();
}
......@@ -551,16 +552,7 @@ public class RecordElicitation extends AikumaActivity {
}
String groupId = IdUtils.sampleFromAlphabet(12, "abcdefghijklmnopqrstuvwxyz");
String sourceVerId = AikumaSettings.getLatestVersion() + "-" + groupId;
/* recordingLig = new RecordingLig(recordUUID, recordingName, date,
AikumaSettings.getLatestVersion(),
AikumaSettings.getCurrentUserId(), recordLang, MetadataSession.getMetadataSession().getMotherTongue(),
MetadataSession.getMetadataSession().getExtraLanguages(), speakerIds, deviceName, androidID,
null, null, sampleRate, duration,
recorder.getFormat(), recorder.getNumChannels(),
recorder.getBitsPerSample(), latitude, longitude,
MetadataSession.getMetadataSession().getRegionOrigin(),
MetadataSession.getMetadataSession().getSpeakerName(),
MetadataSession.getMetadataSession().getSpeakerAge(), gender);*/
/* recordingLig = new RecordingLig(recordUUID, recordingName, date, AikumaSettings.getLatestVersion(), AikumaSettings.getCurrentUserId(), recordLang, MetadataSession.getMetadataSession().getMotherTongue(), MetadataSession.getMetadataSession().getExtraLanguages(), speakerIds, deviceName, androidID, null, null, sampleRate, duration, recorder.getFormat(), recorder.getNumChannels(), recorder.getBitsPerSample(), latitude, longitude, MetadataSession.getMetadataSession().getRegionOrigin(), MetadataSession.getMetadataSession().getSpeakerName(), MetadataSession.getMetadataSession().getSpeakerAge(), gender);*/
recordingLig = new RecordingLig(recordUUID, recordingName, date,
AikumaSettings.getLatestVersion(),
AikumaSettings.getCurrentUserId(), recordLang, MetadataSession.getMetadataSession().getMotherTongue(),
......@@ -599,29 +591,29 @@ public class RecordElicitation extends AikumaActivity {
recordingLig.write();
String filePath = recordingLig.getFile().getAbsolutePath(); //absolute path of the file
String filenamePath = ""; //name of the file with its absolute path;
if (entityId >= 0 && entityId < 10)
if(entityId >= 0 && entityId < 10)
filenamePath = filePath.substring(0, filePath.length()-6)+".wav";
else if (entityId < 100)
else if(entityId >= 10 && entityId < 100)
filenamePath = filePath.substring(0, filePath.length()-7)+".wav";
else if (entityId < 1000)
else if(entityId >= 100 && entityId < 1000)
filenamePath = filePath.substring(0, filePath.length()-8)+".wav";
else if (entityId < 10000)
else if(entityId >= 1000 && entityId < 10000)
filenamePath = filePath.substring(0, filePath.length()-9)+".wav";
else if (entityId < 100000)
else if(entityId >= 10000 && entityId < 100000)
filenamePath = filePath.substring(0, filePath.length()-10)+".wav";
if(BuildConfig.DEBUG)Log.i(TAG, "filename path = "+filenamePath);
Log.i(TAG, "filename path = "+filenamePath);
/*audio file*/
FileUtils.copyFile(recordingLig.getFile(), new File(filenamePath));
FileIO.delete(recordingLig.getFile());
FileUtils.copyFile(new File(filenamePath), new File(filenamePath.replace(".wav", "_" + entityId + ".wav")));
/*metadata file*/
// FileUtils.copyFile(new File(filenamePath.replace(".wav", "-metadata.json")),
// new File(filenamePath.replace(".wav", "_" + entityId + "-metadata.json")));
FileUtils.copyFile(new File(filenamePath),
new File(filenamePath.replace(".wav", "_" + entityId + ".wav")));
/*metadata file*/
// FileUtils.copyFile(new File(filenamePath.replace(".wav", "-metadata.json")), new File(filenamePath.replace(".wav", "_" + entityId + "-metadata.json")));
// FileIO.delete(new File(filenamePath.replace(".wav", "-metadata.json")));
FileIO.delete(new File(filenamePath));
recorder.release();
recorder = null;
//write linker file
......@@ -629,13 +621,13 @@ public class RecordElicitation extends AikumaActivity {
if (choiceMode == ElicitationMode.IMAGE_MODE || choiceMode == ElicitationMode.VIDEO_MODE) {
// bufferedWriter.write(images[entityId].getPath() + " ; " +new File(filePath).getPath().replace(".wav", "_"+entityId+".wav"));
bufferedWriter.write(images[entityId].getPath() + " ; " +new File(filePath).getPath());
if(BuildConfig.DEBUG)Log.d(TAG, "linker content : " + images[entityId].getPath() + " ; " + new File(filePath));
Log.d(TAG, "linker content : " + images[entityId].getPath() + " ; " + new File(filePath));
bufferedWriter.newLine();
bufferedWriter.flush();
} else {
// bufferedWriter.write(ptrSelectedReference + " (line "+ (entityId+1) + ") ; " + new File(filePath).getPath().replace(".wav", "_"+entityId+".wav"));
bufferedWriter.write(ptrSelectedReference + " (line "+ (entityId+1) + ") ; " + new File(filePath).getPath());
if(BuildConfig.DEBUG)Log.d(TAG, "linker content : " + ptrSelectedReference + " (line "+ (entityId+1) + ") ; " + new File(filePath).getPath());
Log.d(TAG, "linker content : " + ptrSelectedReference + " (line "+ (entityId+1) + ") ; " + new File(filePath).getPath());
bufferedWriter.newLine();
bufferedWriter.flush();
}
......@@ -763,7 +755,7 @@ public class RecordElicitation extends AikumaActivity {
ed.putString("submode", "text");
break;
}
ed.commit();
ed.apply();
}
public void onButtonBackPressed(View v) {
......@@ -789,7 +781,7 @@ public class RecordElicitation extends AikumaActivity {
public void onClick(DialogInterface dialog,
int which) {
if (entityId<numberOfEntities)
if(entityId<numberOfEntities)
saveCurrentState();
// if ((choiceMode == ElicitationMode.IMAGE_MODE || choiceMode == ElicitationMode.VIDEO_MODE) && bufferedWriter != null) {
......@@ -801,13 +793,8 @@ public class RecordElicitation extends AikumaActivity {
}
}
if (isNewSession) {
RecordElicitation.this.finish();
} else {
Intent intent = new Intent(RecordElicitation.this, ElicitationMode.class);
startActivity(intent);
finish();
}
// Close all Activity
RecordElicitation.this.finishAffinity();
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
......@@ -827,9 +814,8 @@ public class RecordElicitation extends AikumaActivity {
if(BuildConfig.DEBUG)Log.i(TAG, "temp wave file deleted: "+wavFile);
if (isNewSession) {
RecordElicitation.this.finish();
} else {
Intent intent = new Intent(RecordElicitation.this, ElicitationMode.class);
startActivity(intent);
} else {
startActivity(new Intent(RecordElicitation.this, ElicitationMode.class));
finish();
}
}
......@@ -845,11 +831,9 @@ public class RecordElicitation extends AikumaActivity {
if (height > reqHeight || width > reqWidth) {
final int halfHeight = height / 2, halfWidth = width / 2;
// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.
while((halfHeight / inSampleSize) > reqHeight && (halfWidth / inSampleSize) > reqWidth)
for(int halfHeight = height / 2, halfWidth = width / 2;(halfHeight / inSampleSize) > reqHeight && (halfWidth / inSampleSize) > reqWidth;)
inSampleSize *= 2;
}
......
......@@ -27,7 +27,6 @@ import org.getalp.ligaikuma.lig_aikuma.lig_aikuma.BuildConfig;
import org.getalp.ligaikuma.lig_aikuma.lig_aikuma.R;
import org.getalp.ligaikuma.lig_aikuma.model.Language;
import org.getalp.ligaikuma.lig_aikuma.model.MetadataSession;
import org.getalp.ligaikuma.lig_aikuma.model.Recording;
import org.getalp.ligaikuma.lig_aikuma.model.RecordingLig;
import org.getalp.ligaikuma.lig_aikuma.util.FileIO;
import org.json.simple.JSONArray;
......@@ -77,9 +76,8 @@ public class RespeakingMetadataLig extends AikumaActivity implements OnClickList
setContentView(R.layout.respeaking_metadata);
origRecName = getIntent().getStringExtra(RecordActivityLig.intent_recordname);
OrigDirName = getIntent().getStringExtra("dirname");
Log.d(TAG,"OrigDirName = "+OrigDirName+" | origRecName = " +origRecName);
MediaPlayerFactory._currentReadFile = FileIO.getOwnerPath()+"/recordings/"+OrigDirName+"/"+origRecName+".wav";
Log.d(TAG,MediaPlayerFactory._currentReadFile);
//MediaPlayerFactory._currentReadFile = FileIO.getOwnerPath()+"/recordings/"+OrigDirName+"/"+origRecName+".wav";
//Log.d(TAG,MediaPlayerFactory._currentReadFile);
translateMode = getIntent().getBooleanExtra(ModeSelection.TRANSLATE_MODE, false);
JSONObject metaJSON;
try {
......@@ -97,7 +95,7 @@ public class RespeakingMetadataLig extends AikumaActivity implements OnClickList
code = (String) metaJSON.get(RecordingMetadataLig.metaMotherTong);
tv.setText(new Language(Aikuma.getLanguageCodeMap().get(code), code).getName());
// motherTong = new Language(Aikuma.getLanguageCodeMap().get(code), code);
List<Language> languages= (List<Language>) Language.decodeJSONArray((JSONArray)metaJSON.get("languages"));
List<Language> languages= Language.decodeJSONArray((JSONArray)metaJSON.get("languages"));
// ArrayList<Language> languages = (ArrayList<Language>)metaJSON.get("languages");
tv = (TextView) findViewById(R.id.record_edit_extra_lang);
if(BuildConfig.DEBUG)Log.d(TAG,"extra spoken languages: "+languages.size());
......
......@@ -10,6 +10,8 @@ import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.semantive.waveformandroid.waveform.MediaPlayerFactory;
import org.getalp.ligaikuma.lig_aikuma.Aikuma;
import org.getalp.ligaikuma.lig_aikuma.MainActivity;
import org.getalp.ligaikuma.lig_aikuma.ModeSelection;
......@@ -77,10 +79,7 @@ public class ThumbRespeakActivityLig extends AikumaActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.thumb_respeak);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
prefsUserSession = getSharedPreferences("userSession", MODE_PRIVATE);
fragment = (ThumbRespeakFragment) getFragmentManager().findFragmentById(R.id.ThumbRespeakFragment);
isNewSession = true;
long curSampl, totalAudioLength;
......@@ -140,11 +139,22 @@ public class ThumbRespeakActivityLig extends AikumaActivity {
recordLang = MetadataSession.getMetadataSession().getRecordLanguage();
}
//Extraction of the waveform file THEN activity display
String sourceFile = (!sourceName.contains("_elicit"))?sourceName:sourceName.split("_elicit")[0]+"_elicit";
MediaPlayerFactory._currentReadFile = FileIO.getOwnerPath()+"/recordings/"+sourceFile+"/"+sourceName+".wav";
if(new File(FileIO.getOwnerPath()+"/recordings/"+sourceFile+"/"+sourceName+".wav").length()>=125829120) //120MB == 125829120B
Toast.makeText(this, R.string.warning_source_file_exceeds_120mb_potential_source_of_error, Toast.LENGTH_LONG).show();
setContentView(R.layout.thumb_respeak);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
fragment = (ThumbRespeakFragment) getFragmentManager().findFragmentById(R.id.ThumbRespeakFragment);
setUpThumbRespeaker();
fragment.setThumbRespeaker(respeaker, isNewSession);
fragment.getRespeaker().getRecorder().setTotalAudioLength(totalAudioLength);
fragment.getRespeaker().getRecorder().getFile().setCurrentSample(curSampl);
fragment.getRespeaker().getRecorder().getFile().setPayloadSize(payLoadSize);
fragment.getRespeaker().getRecorder().getFile().setPayloadSize(payLoadSize);
}
/**
......@@ -357,15 +367,8 @@ public class ThumbRespeakActivityLig extends AikumaActivity {
e1.printStackTrace();
}
if (isNewSession)
ThumbRespeakActivityLig.this.finish();
else {
Intent intent = new Intent(ThumbRespeakActivityLig.this, RespeakingSelection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
// Close all Activity
ThumbRespeakActivityLig.this.finishAffinity();
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Lig-Aikuma</string>
<string name="search">Search</string>
<string name="settings">General Settings</string>
<string name="sync">Sync</string>
<string name="record">Recording</string>
<string name="mainlist">Main list</string>
<string name="addLanguage">Add Language</string>
<string name="recording_description">Recording name</string>
<string name="share_dialog"> Your recording will be shared with everybody. Share?</string>
<string name="discard_dialog"> Are you sure you want to discard this recording?</string>
<string name="share">Share</string>
<string name="cancel">Cancel</string>
<string name="discard">Discard</string>
<string name="restart_recording">Are you sure you want to discard this
recording and start a new recording?</string>
<string name="defaultLangHeading">Default languages used when adding a
speaker</string>
<string name="speaker_name">Name
</string>
<string name="add_iso_language">Add language from list </string>
<string name="add_custom_language">Add Custom Language </string>
<string name="take_photo">Take photo (necessary)</string>
<string name="thumb_respeaking">Thumb commentary</string>
<string name="phone_respeaking">Voice-activated commentary</string>
<string name="syncSettingsHeader">Connect this phone to</string>
<string name="ipAddressHint">IP Address</string>
<string name="usernameHint">Username</string>
<string name="passwordHint">Password</string>
<string name="syncNow">Sync now</string>
<string name="help">Help</string>
<string name="speakers">Speakers</string>
<string name="language_name">Language name</string>
<string name="about">About</string>
<string name="connect">HTTP Server</string>
<string name="gplus_signin_menu_label">Google Sign-in</string>
<string name="cloud_sync_label">GoogleCloud Sync</string>
<string name="cloud_sync_setting_label">GoogleCloud Settings</string>
<string name="ftp_sync_setting_label">FTP Sync Settings</string>
<string name="language_setting_label">Language Settings</string>
<string name="indexing_label">Item Re-indexing</string>
<string name="http_dialog_success">Server started at port %1$d</string>
<string name="http_dialog_failure">Failed to start server</string>
<string name="http_server_activity_title">HTTP Server</string>
<string name="http_server_activity_server_status">Server status</string>
<string name="http_server_activity_host">Host</string>
<string name="http_server_activity_port">Port</string>
<string name="http_server_activity_ip">IP address</string>
<string name="http_ui_start">START</string>
<string name="http_ui_stop">STOP</string>
<string name="http_ui_default_port">8080</string>
<string name="title_activity_debug_info">DebugInfo</string>
<string name="action_settings">Settings</string>
<string name="debug_old_aikuma">Old Aikuma</string>
<string name="metadata_mother_tongue">Mother tongue</string>
<string name="add_custom_language_or">Add custom language or add from list</string>
<string name="select_from_list">Select from list</string>
<string name="spoken_languages">Spoken languages</string>
<string name="second_language">Second language</string>
<string name="more_languages">More languages</string>
<string name="extra_information">Extra information</string>
<string name="region_origin">Region of origin</string>
<string name="region_origin_edit">Type in your region of origin</string>
<string name="personal_information">Personal information</string>
<string name="age">Birth year</string>
<string name="age_edit">Type in your age</string>
<string name="gender">Gender</string>
<string name="radio_male">Male</string>
<string name="radio_female">Female</string>
<string name="speaker_name_edit">Type in your name</string>
<string name="button_ok">Ok</string>
<string name="metadata_save">Save these settings into a session for the next recordings</string>
<string name="session_change">Start a recording with a different session</string>
<string name="respeak">Respeaking</string>
<string name="recording_metadata">Reminder of the recording Metadata</string>
<string name="respeak_meta_record_lang">Language of the recording</string>
<string name="respeak_meta_extra_lang">Extra spoken languages</string>
<string name="respeak_meta_spkr_info">Speaker details</string>
<string name="respeaking_metadata">Respeaking metadata</string>
<string name="respeaking_lang">Respeaking language</string>
<string name="more_languages_shorten">+ Lang.</string>
<string name="speaker_info">Speaker Information</string>
<string name="tradBtn">Translating</string>
<string name="elicitBtn">Elicitation</string>
<string name="welcome">Welcome on Lig-Aikuma</string>
<string name="selectaMode">Please select a mode below</string>
<string name="respeak_previous_segment">Latest Segment</string>
<string name="respeakmode">Respeaking mode</string>
<string name="selectanImportType">Please select from where you want to import the audio file</string>
<string name="audio_import_from_phone">Import Audio From Phone</string>
<string name="audio_import_from_aikuma">Import Audio From Aikuma</string>
<string name="elicitationMode">Elicitation mode</string>
<string name="selectanElicitMode">Please select an elicitation type below</string>
<string name="elicitText">Elicitation By Text</string>
<string name="text_import_from_phone">Import Text From Phone</string>
<string name="elicitImage">Elicitation By Image</string>
<string name="image_import_from_phone">Import Image From Phone</string>
<string name="elicitVideo">Elicitation By Video</string>
<string name="video_import_from_phone">Import Video From Phone</string>
<string name="goBack"> Return</string>
<string name="metadata_selected_language"></string>
<string name="recordingLanguage">Language of the recording</string>
<string name="RecordingMetadataTitle">Informations about the speaker</string>
<string name="less_languages">Less languages</string>
<string name="translatemode">Translating Mode</string>
<string name="checkBtn">Check</string>
<string name="checkMode">Check mode</string>
<string name="selectaCheckMode">Please select a verification type below</string>
<string name="checkVariant">Word Check Variants</string>
<string name="checkTranscript">Transcription Check</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MainTitle">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#4B7A98</item>
<item name="android:textSize">40sp</item>
<item name="android:gravity">center</item>
</style>
<style name="SecondTitle">
<item name="android:textSize">25sp</item>
<!-- <item name="android:textColor">#E53935</item> -->
<item name="android:textColor">#A7C8D9</item>
<!-- <item name="android:textAlignment">center</item> -->
</style>
<style name="TextButton">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">33sp</item>
<item name="android:textColor">#6FA9C8</item>
<!-- <item name="android:textAlignment">center</item> -->
</style>
<style name="TextviewMetadata1">
<item name="android:textSize">40sp</item>
<item name="android:textColor">#E53935</item>
<!-- <item name="android:textAlignment">center</item> -->
<item name="android:layout_marginBottom">10dp</item>
</style>
<style name="TextviewMetadata2">
<item name="android:textSize">18sp</item>