void doDesiredSizeChanged(int desiredWidth, int desiredHeight) {
   if (!mDestroyed) {
     if (DEBUG)
       Log.v(TAG, "onDesiredSizeChanged(" + desiredWidth + "," + desiredHeight + "): " + this);
     mIWallpaperEngine.mReqWidth = desiredWidth;
     mIWallpaperEngine.mReqHeight = desiredHeight;
     onDesiredSizeChanged(desiredWidth, desiredHeight);
     doOffsetsChanged(true);
   }
 }
 void reportVisibility() {
   if (!mDestroyed) {
     boolean visible = mVisible && mScreenOn;
     if (mReportedVisible != visible) {
       mReportedVisible = visible;
       if (DEBUG) Log.v(TAG, "onVisibilityChanged(" + visible + "): " + this);
       if (visible) {
         // If becoming visible, in preview mode the surface
         // may have been destroyed so now we need to make
         // sure it is re-created.
         doOffsetsChanged(false);
         updateSurface(false, false, false);
       }
       onVisibilityChanged(visible);
     }
   }
 }