Code Monkey home page Code Monkey logo

flickr-search-android's People

Contributors

ndefeijter avatar

Watchers

 avatar

flickr-search-android's Issues

PhotoDetailsActivity: Photo does not fill entire screen

The space where the action bar should be isn't filled.

The technique we're trying to implement is called 'immersive full screen'. See here for more info: https://developer.android.com/training/system-ui/immersive.html

And here for an example: https://developer.android.com/samples/ImmersiveMode/src/com.example.android.immersivemode/ImmersiveModeFragment.html

Proposed solution with regards to resizing:

  • Resize image to the bounds of the entire screen (including the space normally taken by systems bars, etc...)
  • Crop the resized image when system bars are visible.
  • Show the resized image when system bars are not visible.

https://futurestud.io/blog/picasso-image-resizing-scaling-and-fit

Add "Persistent search" bar

http://ux.stackexchange.com/questions/76493/material-design-persistent-search-with-navigation-drawer
http://stackoverflow.com/questions/35068318/android-persistent-search-bar-in-toolbar

That is two toolbars, one set as the support action bar for the activity (with elevation of 0dp) and one below it with 4dp elevation and layout_margin of 16dp. The values here I am assuming, but I think are right. The widget that controls the searching is a SearchView which is a menu item in the second toolbar. โ€“ Lucas Crawford Jan 28 at 17:49

Styling: http://android-developers.blogspot.nl/2014/10/appcompat-v21-material-design-for-pre.html

Cleanup skeleton

Remove unused features:

  • Floating action buttons
  • Special tablet layout
  • ...

Flickr API abstraction

Using Retrofit.

Retrofit mock server: https://github.com/square/okhttp/tree/master/mockwebserver

Request certain photo sizes: https://www.flickr.com/services/api/misc.urls.html

Relevant APIs:

  • https://www.flickr.com/services/api/flickr.photos.search.html
    • Authentication is not required.
    • Relevant arguments:
      • api_key (Required) Your API application key.
      • text (Optional) A free text search. Photos who's title, description or tags contain the text will be returned. You can exclude results that match a term by prepending it with a - character.
    • Response:
<photos page="2" pages="89" perpage="10" total="881">
    <photo id="2636" owner="47058503995@N01" 
        secret="a123456" server="2" title="test_04"
        ispublic="1" isfriend="0" isfamily="0" />
    <photo id="2635" owner="47058503995@N01"
        secret="b123456" server="2" title="test_03"
        ispublic="0" isfriend="1" isfamily="1" />
    <photo id="2633" owner="47058503995@N01"
        secret="c123456" server="2" title="test_01"
        ispublic="1" isfriend="0" isfamily="0" />
    <photo id="2610" owner="12037949754@N01"
        secret="d123456" server="2" title="00_tall"
        ispublic="1" isfriend="0" isfamily="0" />
</photos>

Unit test cases: Setup test environment

Test using Espresso and run on Firebase test lab https://firebase.google.com/docs/test-lab/

Note that Android Studio contains a "Espresso Test Recorder"!

Record Espresso UI tests simply by using your app as a normal user. As you click through your app UI, reusable and editable test code is then generated for you. You can run the generated tests locally, in your Continuous Integration environment, or in Firebase Test lab.

http://android-developers.blogspot.nl/2016/05/android-studio-22-preview-new-ui.html

PhotoListActivity: use different list item layout heights for different image aspect ratios

Because currently, images are cropped (#33).

Dimensions can be obtained using the 'extras' field in the 'search request:

https://www.flickr.com/services/api/flickr.photos.search.html

extras (Optional)
A comma-delimited list of extra information to fetch for each returned record. Currently supported fields are: description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.