Esta tarefa envolve os conceitos de UI widgets, tarefas assíncronas, RecyclerView, Custom Adapters, Intents, Permissions. Faça um clone ou fork deste projeto, siga os passos na ordem sugerida e marque mais abaixo, na sua resposta, quais os passos completados. Para entregar o exercício, responda o formulário de entrega até 22/05/2019, às 23h59.
- Faça o porting do código disponível em
MainActivityAntigo.java
para Kotlin, colocando o código correspondente na classeMainActivity.kt
. - Faça o carregamento do arquivo XML usando uma tarefa assíncrona, seja por meio de
AsyncTask
, seja por meio deAnko
edoAsync
. - Se ainda estiver dando erro, adicione a permissão para acessar internet.
- Altere a aplicação de forma que passe a processar o arquivo XML usando a função
parse
da classeParserRSS
. Uma vez processado o XML por meio do parser, é retornado um objeto do tipoList<ItemRSS>
. - Use este objeto para popular um
RecyclerView
por meio de umAdapter
--- o widget deve manter o mesmo id do TextView (conteudoRSS
). - Crie um adapter personalizado para mostrar título e data para cada item do feed, usando o layout em
res/layout/itemlista.xml
como base. Este layout não deve ser alterado. - Faça com que, ao clicar em um título, o usuário seja direcionado para o navegador. Opcionalmente, pode abrir em uma nova activity com
WebView
. - Modifique a aplicação para que passe a carregar o endereço do feed a partir de uma
SharedPreferences
com a chaverssfeed
. Inclua a possibilidade de alterar aSharedPreference
(rssfeed
) incluindo um botão naActionBar
da aplicação. Ao clicar no botão, umaActivity
deve ser exibida com base em umaPreferenceScreen
gerada automaticamente por meio de umFragment
, como visto em sala. Defina um arquivo emres/xml/preferencias.xml
para estruturar a tela.
- Comente o código que você desenvolver, explicando o que cada parte faz.
- Entregue o exercício mesmo que não tenha completado todos os itens listados. Marque abaixo apenas o que completou.
Passo | Completou? |
---|---|
1 | não |
2 | não |
3 | não |
4 | não |
5 | não |
6 | não |
7 | não |
8 | não |