Refresh ViewModel in onStart

Refreshes the ReviewOngoingUsageViewModel in onStart, and stops
observing after showing the dialog.

Bug: 177862337
Test: manual
Change-Id: Ic7921f97f0d1e2cdcaeaae8ccbffadaa5db7be24
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ReviewOngoingUsageFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ReviewOngoingUsageFragment.java
index 523a92a..4273a2f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ReviewOngoingUsageFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ReviewOngoingUsageFragment.java
@@ -81,9 +81,11 @@
         return fragment;
     }
 
+    // create new ViewModel in onStart, because viewModel is sometimes persisting after finish()
+    // TODO: determine why viewModel is doing this.
     @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    public void onStart() {
+        super.onStart();
 
         ReviewOngoingUsageViewModelFactory factory =
                 new ReviewOngoingUsageViewModelFactory(
@@ -112,9 +114,18 @@
             } else {
                 updateDialogView(usages);
             }
+            mViewModel.getUsages().removeObservers(this);
         });
     }
 
+    @Override
+    public void onPause() {
+        super.onPause();
+        if (mDialog != null && getActivity() != null && !getActivity().isFinishing()) {
+            mDialog.dismiss();
+        }
+    }
+
     /**
      * Get a list of permission labels.
      *