Handle no clocks case as error

If we have a provider but for some reason it returns no
clockfaces, show error message instead of crashing

Fixes: 134611165
Change-Id: I3a9e50b5d821469284c5b9ef837170ffb3ff1fd9
diff --git a/src/com/android/customization/model/clock/ContentProviderClockProvider.java b/src/com/android/customization/model/clock/ContentProviderClockProvider.java
index 375f3c1..ad60ddc 100644
--- a/src/com/android/customization/model/clock/ContentProviderClockProvider.java
+++ b/src/com/android/customization/model/clock/ContentProviderClockProvider.java
@@ -37,27 +37,35 @@
 
     @Override
     public boolean isAvailable() {
-        return mProviderInfo != null;
+        return mProviderInfo != null && (mClocks == null || !mClocks.isEmpty());
     }
 
     @Override
     public void fetch(OptionsFetchedListener<Clockface> callback, boolean reload) {
         if (!isAvailable()) {
             if (callback != null) {
-                callback.onOptionsLoaded(null);
+                callback.onError(null);
             }
             return;
         }
         if (mClocks != null && !reload) {
             if (callback != null) {
-                callback.onOptionsLoaded(mClocks);
+                if (!mClocks.isEmpty()) {
+                    callback.onOptionsLoaded(mClocks);
+                } else {
+                    callback.onError(null);
+                }
             }
             return;
         }
         new ClocksFetchTask(mContext, mProviderInfo, options -> {
             mClocks = options;
             if (callback != null) {
-                callback.onOptionsLoaded(mClocks);
+                if (!mClocks.isEmpty()) {
+                    callback.onOptionsLoaded(mClocks);
+                } else {
+                    callback.onError(null);
+                }
             }
         }).execute();
     }