Fix talkback directory name when first launch app or rotate screen.

Bug: 145565698
Test: manual
Change-Id: I12f0a94ef78c8ac446fc6a9e9fa807eda6563276
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index 54674e1..d0ffe59 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -75,7 +75,6 @@
 import com.android.documentsui.sorting.SortModel;
 
 import com.google.android.material.appbar.AppBarLayout;
-import com.google.android.material.tabs.TabLayout;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -344,6 +343,19 @@
     }
 
     @Override
+    protected void onStart() {
+        super.onStart();
+        if (mState.stack.getTitle() == null) {
+            // First launch.
+            setTitle("");
+            return;
+        }
+
+        // Append app name for TalkBack when app enters foreground.
+        setTitle(String.format("%s. %s", getString(R.string.files_label), mState.stack.getTitle()));
+    }
+
+    @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         boolean showMenu = super.onCreateOptionsMenu(menu);
 
@@ -606,7 +618,13 @@
         }
 
         // Causes talkback to announce the activity's new title
-        setTitle(mState.stack.getTitle());
+        String appName = getString(R.string.files_label);
+        if (getTitle().toString().isEmpty()) {
+            // First launch, TalkBack announces app name.
+            setTitle(String.format("%s. %s", appName, mState.stack.getTitle()));
+        } else {
+            setTitle(mState.stack.getTitle());
+        }
 
         invalidateOptionsMenu();
         mSortController.onViewModeChanged(mState.derivedMode);
diff --git a/src/com/android/documentsui/picker/ActionHandler.java b/src/com/android/documentsui/picker/ActionHandler.java
index ab05bed..c58927d 100644
--- a/src/com/android/documentsui/picker/ActionHandler.java
+++ b/src/com/android/documentsui/picker/ActionHandler.java
@@ -116,10 +116,6 @@
             return;
         }
 
-        // We set the activity title in AsyncTask.onPostExecute().
-        // To prevent talkback from reading aloud the default title, we clear it here.
-        mActivity.setTitle("");
-
         if (launchHomeForCopyDestination(intent)) {
             if (DEBUG) {
                 Log.d(TAG, "Launching directly into Home directory for copy destination.");