PersistenceMigrationsSample/app/src/room/java/com/example/android/persistence/migrations/UserRepository.java [44:72]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        final WeakReference<LoadUserCallback> loadUserCallback = new WeakReference<>(callback);

        // request the user on the I/O thread
        mAppExecutors.diskIO().execute(() -> {
            final User user = mUserDataSource.getUser();
            // notify on the main thread
            mAppExecutors.mainThread().execute(() -> {
                final LoadUserCallback userCallback = loadUserCallback.get();
                if (userCallback == null) {
                    return;
                }
                if (user == null) {
                    userCallback.onDataNotAvailable();
                } else {
                    mCachedUser = user;
                    userCallback.onUserLoaded(mCachedUser);
                }
            });
        });
    }

    /**
     * Insert an new user or update the name of the user.
     *
     * @param userName the user name
     * @param callback callback that gets triggered when the user was updated.
     */
    void updateUserName(String userName, UpdateUserCallback callback) {
        final WeakReference<UpdateUserCallback> updateUserCallback = new WeakReference<>(callback);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



PersistenceMigrationsSample/app/src/room2/java/com/example/android/persistence/migrations/UserRepository.java [45:73]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        final WeakReference<LoadUserCallback> loadUserCallback = new WeakReference<>(callback);

        // request the user on the I/O thread
        mAppExecutors.diskIO().execute(() -> {
            final User user = mUserDataSource.getUser();
            // notify on the main thread
            mAppExecutors.mainThread().execute(() -> {
                final LoadUserCallback userCallback = loadUserCallback.get();
                if (userCallback == null) {
                    return;
                }
                if (user == null) {
                    userCallback.onDataNotAvailable();
                } else {
                    mCachedUser = user;
                    userCallback.onUserLoaded(mCachedUser);
                }
            });
        });
    }

    /**
     * Insert an new user or update the name of the user.
     *
     * @param userName the user name
     * @param callback callback that gets triggered when the user was updated.
     */
    void updateUserName(String userName, UpdateUserCallback callback) {
        final WeakReference<UpdateUserCallback> updateUserCallback = new WeakReference<>(callback);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



