В данном занятии мы научимся получать изображение из галереи. И также мы немножко изменим логику логина в приложение так, чтобы вместо boolean нам возвращался пользователь, как это и должно быть. Для этого перейдем в shared preferences helper, сотрем входной параметр user, вместо этого добавим два string. Первый стринг будет у нас login, второй будет password. И в качестве выходного параметра будем выдавать ему user. User get login заменяем на login и user get password заменяем на password. В качестве return возвращаем ему пользователя, которого он нашел в нашем shared preference хранилище. Если же он никого не нашел, то возвращаем ему null. И это будет абсолютно правильная тестовая бизнес-логика. Так и должен работать сервер. Теперь изменим использование этого метода. Стираем здесь new user и перед этим создадим его. User user = наш user будет равняться результату логина. Соответственно, если юзер != null, то можно переходить на следующий экран. И в качестве параметра следующего экрана мы будем передавать user, которого мы получили из нашего хранилища с помощью метода login. Иначе у нас будет отображаться ошибка логина. Вот так и должна работать наша авторизация. Далее, чтобы получить изображение из галереи, перейдем в profile activity. [БЕЗ_ЗВУКА] В mOnPhotoClickListner мы добавим метод, который мы с вами сейчас и напишем. Private void open gallery Здесь мы создадим intent, с помощью которого мы будем открывать нашу галерею. New intent. Для начала зададим ему тип, intent.setType в качестве типа у нас будет image. / * Также зададим ему action. В качестве action мы будем использовать intent.get content. Action get content. И вызовем метод start activity for result. Start activity for result, в который передадим наш intent и request code, который мы сейчас создадим. Он должен быть типом int и request code. Зададим ему значение и передадим его в start activity for result метод. Переменуем его в request code photo, get photo. И также нам нужно переопределить метод on activity result. Давайте этим и займемся. OnActivity result. Сюда нам приходят три параметра, RequestCode, ResultCode и data, то есть данные. If если RequestCode равен нашему RequestCode и ResultCode равняется activity result activity result ok и data не равна null, то мы получаем uri photo, uri, которая является ссылкой на файл, через data.getData. И устанавливаем его в наше изображение. PhotoUri. В противном случае, если наше условие не соответствует требованиям, то вызываем супер-метод OnActivityResult. По клику на фото вызовем метод OpenGallery. Вот и все. Теперь посмотрим, как работает наше приложение. Запустим эмулятор. [БЕЗ_ЗВУКА] Выберем login. Выберем пароль, вернее, введем пароль, нажмем «войти», нажмем на наш image view, выберем какую-нибудь картинку, пусть это будет собачка. Как вы видите, картинка успешно установилась, то есть мы открыли галерею и выбрали картинку. В данном уроке мы научились получать thumbnail картинки из галереи.