void getUser()

in PersistenceMigrationsSample/app/src/room3/java/com/example/android/persistence/migrations/UserRepository.java [44:70]


    void getUser(final LoadUserCallback callback) {
        final WeakReference<LoadUserCallback> loadUserCallback = new WeakReference<>(callback);

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