diff --git a/solutions/android/VirtualAssistantClient/app/src/main/AndroidManifest.xml b/solutions/android/VirtualAssistantClient/app/src/main/AndroidManifest.xml index e4478a4a98..9864d2a558 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/AndroidManifest.xml +++ b/solutions/android/VirtualAssistantClient/app/src/main/AndroidManifest.xml @@ -13,6 +13,7 @@ + @@ -46,7 +48,7 @@ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/MainApplication.java b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/MainApplication.java index 98464d82e9..fd47091f17 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/MainApplication.java +++ b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/MainApplication.java @@ -2,10 +2,15 @@ import android.app.Application; import android.content.Intent; +import android.content.SharedPreferences; import android.support.v4.content.ContextCompat; +import android.support.v7.app.AppCompatDelegate; import com.microsoft.bot.builder.solutions.virtualassistant.service.SpeechService; +import static com.microsoft.bot.builder.solutions.virtualassistant.activities.BaseActivity.SHARED_PREFS_NAME; +import static com.microsoft.bot.builder.solutions.virtualassistant.activities.BaseActivity.SHARED_PREF_DARK_MODE; + public class MainApplication extends Application { // STATE @@ -20,6 +25,11 @@ public void onCreate() { Intent intent = new Intent(this, SpeechService.class); intent.setAction(SpeechService.ACTION_START_FOREGROUND_SERVICE); ContextCompat.startForegroundService(this, intent); + + // read the dark-mode setting (necessary because setDefaultNightMode() doesn't persist between app restarts) + SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS_NAME, MODE_PRIVATE); + boolean darkModeEnabled = sharedPreferences.getBoolean(SHARED_PREF_DARK_MODE, false); + AppCompatDelegate.setDefaultNightMode(darkModeEnabled?AppCompatDelegate.MODE_NIGHT_YES:AppCompatDelegate.MODE_NIGHT_NO); } public static MainApplication getInstance(){ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/BaseActivity.java b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/BaseActivity.java index 710a1cf880..ea38416d1f 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/BaseActivity.java +++ b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/BaseActivity.java @@ -34,9 +34,10 @@ public abstract class BaseActivity extends AppCompatActivity { public static final String LOGTAG = "BaseActivity"; private static final Integer PERMISSION_REQUEST_RECORD_AUDIO = 101; private static final Integer PERMISSION_REQUEST_FINE_LOCATION = 102; - private static final String SHARED_PREFS_NAME = "my_shared_prefs"; + public static final String SHARED_PREFS_NAME = "my_shared_prefs"; protected static final String SHARED_PREF_SHOW_TEXTINPUT = "SHARED_PREF_SHOW_TEXTINPUT"; protected static final String SHARED_PREF_SHOW_FULL_CONVERSATION = "SHARED_PREF_SHOW_FULL_CONVERSATION"; + public static final String SHARED_PREF_DARK_MODE = "SHARED_PREF_DARK_MODE"; // State private SharedPreferences sharedPreferences; diff --git a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/main/MainActivity.java b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/main/MainActivity.java index 0638098be5..ed01120a0d 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/main/MainActivity.java +++ b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/activities/main/MainActivity.java @@ -4,6 +4,7 @@ import android.app.assist.AssistContent; import android.content.Intent; import android.content.pm.PackageManager; +import android.graphics.drawable.AnimationDrawable; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; @@ -18,6 +19,8 @@ import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.AppCompatImageView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SwitchCompat; @@ -61,11 +64,13 @@ import butterknife.OnEditorAction; import client.model.BotConnectorActivity; import client.model.CardAction; +import client.model.InputHints; import events.ActivityReceived; import events.Disconnected; import events.Recognized; import events.RecognizedIntermediateResult; import events.RequestTimeout; +import events.SynthesizerStopped; public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener, ViewholderBot.OnClickListener, ActionsViewholder.OnClickListener { @@ -80,8 +85,10 @@ public class MainActivity extends BaseActivity @BindView(R.id.nav_view) NavigationView navigationView; @BindView(R.id.switch_show_textinput) SwitchCompat switchShowTextInput; @BindView(R.id.switch_show_full_conversation) SwitchCompat switchShowFullConversation; + @BindView(R.id.switch_night_mode) SwitchCompat switchNightMode; @BindView(R.id.speech_detection) TextView detectedSpeechToText; - @BindView(R.id.agent_image) ImageView agentImage; + @BindView(R.id.mic_image) ImageView micImage; + @BindView(R.id.animated_assistant) AppCompatImageView animatedAssistant; // CONSTANTS private static final int CONTENT_VIEW = R.layout.activity_main; @@ -97,6 +104,7 @@ public class MainActivity extends BaseActivity private Gson gson; private SfxManager sfxManager; private ConfigurationManager configurationManager; + private boolean willListenAgain; @Override protected void onCreate(Bundle savedInstanceState) { @@ -116,6 +124,7 @@ protected void onCreate(Bundle savedInstanceState) { switchShowTextInput.setChecked(alwaysShowTextInput); showFullConversation = getBooleanSharedPref(SHARED_PREF_SHOW_FULL_CONVERSATION); switchShowFullConversation.setChecked(showFullConversation); + switchNightMode.setChecked(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES); // NAV DRAWER ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, R.string.navigation_drawer_open, R.string.navigation_drawer_close); @@ -146,6 +155,9 @@ protected void onCreate(Bundle savedInstanceState) { sfxManager = new SfxManager(); sfxManager.initialize(this); + + // assign animation + animatedAssistant.setBackgroundResource(R.drawable.agent_listening_animation); } // Register for EventBus messages and SpeechService @@ -208,7 +220,7 @@ protected void permissionDenied(String manifestPermission) { try { speechServiceBinder.initializeSpeechSdk(false); speechServiceBinder.connectAsync(); - agentImage.setVisibility(View.GONE);//hide the assistant since voice is deactivated + micImage.setVisibility(View.GONE);//hide the mic since voice is deactivated textInputLayout.setVisibility(View.VISIBLE);// show the text-input prompt } catch (RemoteException exception){ Log.e(LOGTAG, exception.getMessage()); @@ -280,11 +292,21 @@ public boolean onNavigationItemSelected(MenuItem item) { return true; } - @OnClick(R.id.agent_image) - public void onAssistantClick() { + private void showListeningAnimation(){ + animatedAssistant.setVisibility(View.VISIBLE); + ((AnimationDrawable) animatedAssistant.getBackground()).start(); + sfxManager.playEarconListening(); + } + + private void hideListeningAnimation(){ + animatedAssistant.setVisibility(View.GONE); + sfxManager.playEarconDoneListening(); + } + + @OnClick(R.id.mic_image) + public void onClickAssistant() { try { - showSnackbar(uiContainer, getString(R.string.msg_listening)); - sfxManager.playEarconListening(); + showListeningAnimation(); speechServiceBinder.listenOnceAsync(); } catch (RemoteException exception){ Log.e(LOGTAG, exception.getMessage()); @@ -308,6 +330,13 @@ public void OnShowFullConversation(CompoundButton button, boolean checked){ chatAdapter.setShowFullConversation(showFullConversation); } + @OnCheckedChanged(R.id.switch_night_mode) + public void OnEnableNightMode(CompoundButton button, boolean checked){ + putBooleanSharedPref(SHARED_PREF_DARK_MODE, checked); + AppCompatDelegate.setDefaultNightMode(checked?AppCompatDelegate.MODE_NIGHT_YES:AppCompatDelegate.MODE_NIGHT_NO); + getDelegate().applyDayNight(); + } + @OnEditorAction(R.id.textinput) boolean onEditorAction(int actionId, KeyEvent key){ boolean handled = false; @@ -364,6 +393,20 @@ public void onEventDisconnected(Disconnected event) { } } + // EventBus: the synthesizer has stopped playing + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventSynthesizerStopped(SynthesizerStopped event) { + + // Note: the SpeechService will trigger the actual listening. Since the app needs to show a + // visual, the app also needs to subscribe to this event and act on it. + if(willListenAgain){ + willListenAgain = false; + Log.i(LOGTAG, "Listening again"); + showListeningAnimation(); + } + + } + // EventBus: the user spoke and the app recognized intermediate speech @Subscribe(threadMode = ThreadMode.MAIN) public void onEventRecognizedIntermediateResult(RecognizedIntermediateResult event) { @@ -373,8 +416,9 @@ public void onEventRecognizedIntermediateResult(RecognizedIntermediateResult eve // EventBus: the user spoke and the app recognized the speech. Disconnect mic. @Subscribe(threadMode = ThreadMode.MAIN) public void onEventRecognized(Recognized event) { - sfxManager.playEarconDoneListening(); + hideListeningAnimation(); detectedSpeechToText.setText(event.recognized_speech); + // in 2 seconds clear the text (at this point the bot should be giving its' response) handler.postDelayed(() -> detectedSpeechToText.setText(""), 2000); } @@ -414,6 +458,14 @@ public void onEventActivityReceived(ActivityReceived activityReceived) throws IO default: break; } + + // the service looks for the same expectingInput event. The app needs it to trigger visuals + if(botConnectorActivity.getInputHint() != null){ + Log.i(LOGTAG, "InputHint: "+botConnectorActivity.getInputHint()); + if(botConnectorActivity.getInputHint().equals(InputHints.EXPECTINGINPUT.toString())){ + willListenAgain = true; + } + } } } diff --git a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/service/SpeechService.java b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/service/SpeechService.java index 75ddefac6a..ebbe81a39a 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/service/SpeechService.java +++ b/solutions/android/VirtualAssistantClient/app/src/main/java/com/microsoft/bot/builder/solutions/virtualassistant/service/SpeechService.java @@ -340,6 +340,7 @@ public void onEventSynthesizerStopped(SynthesizerStopped event) { if(shouldListenAgain){ shouldListenAgain = false; + Log.i(TAG_FOREGROUND_SERVICE, "Listening again"); speechSdk.listenOnceAsync(); } @@ -394,7 +395,8 @@ public void onEventActivityReceived(ActivityReceived activityReceived) throws IO // make the bot automatically listen again if(botConnectorActivity.getInputHint() != null){ - if(botConnectorActivity.getInputHint().equals(InputHints.EXPECTINGINPUT)){ + Log.i(TAG_FOREGROUND_SERVICE, "InputHint: "+botConnectorActivity.getInputHint()); + if(botConnectorActivity.getInputHint().equals(InputHints.EXPECTINGINPUT.toString())){ shouldListenAgain = true; } } diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_animation.xml b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_animation.xml new file mode 100644 index 0000000000..a956269d56 --- /dev/null +++ b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_animation.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_00.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_00.png new file mode 100644 index 0000000000..cd6ea6f0c2 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_00.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_01.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_01.png new file mode 100644 index 0000000000..ceb25e30c3 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_01.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_02.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_02.png new file mode 100644 index 0000000000..296af4a52a Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_02.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_03.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_03.png new file mode 100644 index 0000000000..b33ff4ab3a Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_03.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_04.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_04.png new file mode 100644 index 0000000000..a16b5d6346 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_04.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_05.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_05.png new file mode 100644 index 0000000000..5656b97b9a Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_05.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_06.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_06.png new file mode 100644 index 0000000000..a97d249d05 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_06.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_07.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_07.png new file mode 100644 index 0000000000..c7d8d148f8 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_07.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_08.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_08.png new file mode 100644 index 0000000000..c1c66747dc Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_08.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_09.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_09.png new file mode 100644 index 0000000000..2aa6aef0c5 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_09.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_10.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_10.png new file mode 100644 index 0000000000..d7612fad10 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_10.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_11.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_11.png new file mode 100644 index 0000000000..15136ebf3e Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_11.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_12.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_12.png new file mode 100644 index 0000000000..4456c13ba6 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_12.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_13.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_13.png new file mode 100644 index 0000000000..b39e70ec9b Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_13.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_14.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_14.png new file mode 100644 index 0000000000..8718a29de7 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_14.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_15.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_15.png new file mode 100644 index 0000000000..a6cd12e9b5 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_15.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_16.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_16.png new file mode 100644 index 0000000000..7fffe0b02e Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_16.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_17.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_17.png new file mode 100644 index 0000000000..9920db66e4 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_17.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_18.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_18.png new file mode 100644 index 0000000000..6d911362cc Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_18.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_19.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_19.png new file mode 100644 index 0000000000..a3aab6018b Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_19.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_20.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_20.png new file mode 100644 index 0000000000..a04e85a0b3 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_20.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_21.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_21.png new file mode 100644 index 0000000000..9ef56e4e9f Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_21.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_22.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_22.png new file mode 100644 index 0000000000..c26ce0813f Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_22.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_23.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_23.png new file mode 100644 index 0000000000..cd6859b3c4 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_23.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_24.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_24.png new file mode 100644 index 0000000000..29c937d481 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_24.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_25.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_25.png new file mode 100644 index 0000000000..05963f6a8b Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_25.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_26.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_26.png new file mode 100644 index 0000000000..e101fc4bd9 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_26.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_27.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_27.png new file mode 100644 index 0000000000..6be9dead55 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_27.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_28.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_28.png new file mode 100644 index 0000000000..006ad0330e Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_28.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_29.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_29.png new file mode 100644 index 0000000000..323202caeb Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_29.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_30.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_30.png new file mode 100644 index 0000000000..64e9c54c9f Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_30.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_31.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_31.png new file mode 100644 index 0000000000..12c8e0d518 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_31.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_32.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_32.png new file mode 100644 index 0000000000..fd48d19f33 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_32.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_33.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_33.png new file mode 100644 index 0000000000..81f66c1acc Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_33.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_34.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_34.png new file mode 100644 index 0000000000..8df0fd49ac Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_34.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_35.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_35.png new file mode 100644 index 0000000000..5fcb81899a Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_35.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_36.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_36.png new file mode 100644 index 0000000000..fbc02353ca Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_36.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_37.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_37.png new file mode 100644 index 0000000000..05cdd69f1d Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_37.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_38.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_38.png new file mode 100644 index 0000000000..154b2b178f Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_38.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_39.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_39.png new file mode 100644 index 0000000000..bbec2ae900 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_39.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_40.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_40.png new file mode 100644 index 0000000000..f5b120d554 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_40.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_41.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_41.png new file mode 100644 index 0000000000..e45c2dea2b Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_41.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_42.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_42.png new file mode 100644 index 0000000000..ee05f7e66c Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_42.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_43.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_43.png new file mode 100644 index 0000000000..05d6ad1a21 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_43.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_44.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_44.png new file mode 100644 index 0000000000..f95b475a52 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_44.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_45.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_45.png new file mode 100644 index 0000000000..1f81a3df70 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_45.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_46.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_46.png new file mode 100644 index 0000000000..4ec1eebd32 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_46.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_47.png b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_47.png new file mode 100644 index 0000000000..92c947b890 Binary files /dev/null and b/solutions/android/VirtualAssistantClient/app/src/main/res/drawable/agent_listening_loop_47.png differ diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/layout/activity_main.xml b/solutions/android/VirtualAssistantClient/app/src/main/res/layout/activity_main.xml index 3ecbea0b18..6500a3d1f8 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/res/layout/activity_main.xml +++ b/solutions/android/VirtualAssistantClient/app/src/main/res/layout/activity_main.xml @@ -10,26 +10,26 @@ tools:context=".activities.main.MainActivity"> + android:layout_height="match_parent"> + android:layout_above="@+id/suggestedactions"/> + android:layout_above="@+id/container_buttons"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/values/colors.xml b/solutions/android/VirtualAssistantClient/app/src/main/res/values/colors.xml index 6587616b2e..a835eadf0a 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/res/values/colors.xml +++ b/solutions/android/VirtualAssistantClient/app/src/main/res/values/colors.xml @@ -5,10 +5,14 @@ #3062d6 - #272727 + #ffffff + #272727 + + + #B1B1B1 + #272727 - #242424 #000000 #ffffff #f2f2f2 @@ -21,4 +25,20 @@ #84d9f8 + + + #008577 + #00574B + #3062d6 + + + #272727 + #ffffff + + + #2e2e2e + #FFFFFF + + + diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/values/dimens.xml b/solutions/android/VirtualAssistantClient/app/src/main/res/values/dimens.xml index 22425a6da8..440e51eab5 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/res/values/dimens.xml +++ b/solutions/android/VirtualAssistantClient/app/src/main/res/values/dimens.xml @@ -13,6 +13,10 @@ 4dp + + 400dp + 100dp + Speech Service Subscription Key diff --git a/solutions/android/VirtualAssistantClient/app/src/main/res/values/styles.xml b/solutions/android/VirtualAssistantClient/app/src/main/res/values/styles.xml index 56d9f6634b..e1436e7ca3 100644 --- a/solutions/android/VirtualAssistantClient/app/src/main/res/values/styles.xml +++ b/solutions/android/VirtualAssistantClient/app/src/main/res/values/styles.xml @@ -1,16 +1,14 @@ + + - - - + + + + + + + + +