This repo contains example code for O'Reilly's "Programming Android" by Zigured Mednieks, Laird Dornin, Blake Meike and Masumi Nakamura

Overview
This repo contains working code for the example in O'Reilly's _Programming Android, 2nd Edition_;  Mednieks, Dornin, Meike, Nakamura (http://shop.oreilly.com/product/0636920023005.do)

The projects have all been tested in eclipse, using the emulator (with the exception of a couple that are hardware dependent; those projects have notes to that effect in their README files)

If you have a question, you might check the FAQ:

https://github.com/bmeike/ProgrammingAndroidExamples/wiki/FAQ

To set up a project, check it out and then:
cd $PROJ
cp tools/ide/eclipse/project .project
cp tools/ide/eclipse/classpath .classpath

Start eclipse and use File > Import > "Existing project into workspace"

Comments are welcome! Send problems and comments to programmingandroidexamples at callmeike dot net.

Code for the 1st edition can be obtained by checking out the the tag v1.0

Comments
  • Importing the ProgrammingAndroid2Examples Projects To Eclipse . . .

    Importing the ProgrammingAndroid2Examples Projects To Eclipse . . .

    1. The Eclipse import function renames the project to whatever name the main activity has.
    2. Some projects in the folder are simply not "seen" by the import feature, e.g. ClientServerDemo, FillListTask and SharedListTask.
    3. There is a Java error in the MicroJobs project. Looks like some required library is not appended to the project.
    4. How come all these issues weren't sorted out by either the FOUR EXPERT authors or by their publisher's editor at O'Reilly before publishing the SECOND edition ?
    opened by corinthian13 6
  • Finch framework - distinguish between empty cache and no network results

    Finch framework - distinguish between empty cache and no network results

    Hi. Your README instructed me to send comments to an email address that bounced, so I'm opening a ticket instead in hopes that you'll see it while working on the second edition.

    I've been working on a project that uses the Finch RESTful Content Provider framework from this book. One problem we keep running into is how to distinguish between "We're showing 0 results because the cache is empty and we're waiting on a network call" and "We're showing 0 results because the server just told us there are 0 results." We'd like to show a "Loading..." message in the first case and a "No results" message in the second.

    It doesn't seem that the Finch framework, as explored in Chapter 13, allows the querying activity to distinguish between the two. We've worked through some ideas, but without satisfaction so far, and the remaining ideas are far from elegant. I think it would be a useful addition to the second edition discuss a way to handle this.

    opened by goat000 2
  • The Dots Demo

    The Dots Demo

    The text at page number 185 says that the complete code for The Dots demo (Example 6-7 listing in the book) is available on the web page of the book. Where is it?

    opened by sgurukrupa 1
  • AndroidUIDemo contains incomplete Javadoc

    AndroidUIDemo contains incomplete Javadoc

    AndroidUIDemo contains incomplete Javadocs.

    Here's an example from DotView:

    /**
     * @param context
     * @param attrs
     * @param defStyle
     */
    public DotView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        setFocusableInTouchMode(true);
    }
    
    opened by zachlatta 1
  • Launching FinchLifecycle fails due to invalid fragment class

    Launching FinchLifecycle fails due to invalid fragment class

    In "FinchLifecycle/res/layout/main.xml",

    <fragment class="com.oreilly.demo.pa.ch10.finchlifecycle.TestFragment"
    

    However, it should be

    <fragment class="com.oreilly.demo.android.pa.finchlifecycle.TestFragment"
    

    to consist with actual source package.

    opened by Makopo 1
  • FinchVideo not working?

    FinchVideo not working?

    Here is the full stack trace.

    I've tested the application using virtual machine (4.1.2)

    03-06 15:39:29.091: E/AndroidRuntime(724): FATAL EXCEPTION: main 03-06 15:39:29.091: E/AndroidRuntime(724): java.lang.IllegalArgumentException: Valid range is [0 13] 03-06 15:39:29.091: E/AndroidRuntime(724): at java.text.RuleBasedBreakIterator.validateOffset(RuleBasedBreakIterator.java:54) 03-06 15:39:29.091: E/AndroidRuntime(724): at java.text.RuleBasedBreakIterator.preceding(RuleBasedBreakIterator.java:90) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.text.method.WordIterator.preceding(WordIterator.java:74) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.SpellChecker$SpellParser.parse(SpellChecker.java:599) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.SpellChecker$SpellParser.parse(SpellChecker.java:517) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.SpellChecker.spellCheck(SpellChecker.java:262) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.Editor.updateSpellCheckSpans(Editor.java:464) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.Editor.onAttachedToWindow(Editor.java:212) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.widget.TextView.onAttachedToWindow(TextView.java:4455) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.View.dispatchAttachedToWindow(View.java:11755) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1201) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.Choreographer.doCallbacks(Choreographer.java:555) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.Choreographer.doFrame(Choreographer.java:525) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.os.Handler.handleCallback(Handler.java:615) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.os.Handler.dispatchMessage(Handler.java:92) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.os.Looper.loop(Looper.java:137) 03-06 15:39:29.091: E/AndroidRuntime(724): at android.app.ActivityThread.main(ActivityThread.java:4745) 03-06 15:39:29.091: E/AndroidRuntime(724): at java.lang.reflect.Method.invokeNative(Native Method) 03-06 15:39:29.091: E/AndroidRuntime(724): at java.lang.reflect.Method.invoke(Method.java:511) 03-06 15:39:29.091: E/AndroidRuntime(724): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 03-06 15:39:29.091: E/AndroidRuntime(724): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-06 15:39:29.091: E/AndroidRuntime(724): at dalvik.system.NativeStart.main(Native Method)

    opened by kyoungrok0517 0
  • FinchVideo project doen't parse video

    FinchVideo project doen't parse video

    Error when trying to search for videos

    D/finch.finchvideo: could not parse video feed org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT No longer availa...@1:20 in java.io.InputStreamReader@e4d093e) at org.kxml2.io.KXmlParser.next(KXmlParser.java:432) at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) at com.oreilly.demo.android.pa.finchvideo.provider.YouTubeHandler.parseYoutubeEntity(YouTubeHandler.java:303) at com.oreilly.demo.android.pa.finchvideo.provider.YouTubeHandler.handleResponse(YouTubeHandler.java:72) at com.finchframework.finch.rest.UriRequestTask.run(UriRequestTask.java:61) at java.lang.Thread.run(Thread.java:818)

    opened by arvalon 0
An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly.

An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly. The main aim of this repository is to help students who are learning Android Development or preparing for an Android Developer role-based job.

Mimo Patra 15 Dec 29, 2022
This repo contains sample mobile apps that implement contributor design pattern

This repo contains sample mobile apps that implement contributor design pattern. This design pattern was evolved to establish clean contracts for the developers and partners in Teams Mobile code base

Microsoft 3 Jan 6, 2023
My 2021 Advent of Code Repo - Kotlin this year!

?? Advent of Code 2021 This year I'll be solving the advent problems using Kotlin! ?? If you're interested in trying out Kotlin for AoC this year or e

Mark Alvaro 5 Nov 30, 2022
Github-Api-Pagination-Example - Pagination 3 Example using Github Api

Github-Api-Pagination Pagination 3 Example using Github Api Tech Stack 100% Kotl

Anggoro Beno Lukito 2 Aug 22, 2022
This app contains feature barcode and QR scanner, and video recording in-app.

BarcodeQRScannerAndVideoRecord This app contains feature barcode and QR scanner, and video recording in-app. Scanner using ML Kit and CameraX. Video R

Abdullah Fahmi 1 Dec 23, 2021
The official repo for Blokada for Android and iOS.

Blokada 5 Blokada 5 is the next generation of the well known open source mobile ad blocker and privacy app. Want to try it out? Click here to download

Blokada (ad blocker) 2.8k Jan 7, 2023
It is a project that contains lessons and examples about Kotlin programming language. πŸ‡°

Kotlin Tutorials What is Kotlin? I added the platforms it supports and great resources. You can access the article from the link below: https://medium

Halil Γ–zel 94 Dec 22, 2022
Repository contains structures and methods to execute linear algebra operations (matrix multiplication etc)

LinearAlgebra Repository contains structures and methods to execute linear algebra operations (matrix multiplication etc) Matrix class Matrix implemen

null 0 Apr 27, 2022
A mobile application that contains up-to-date information about the latest earthquakes in Turkey, scientific explanations about earthquakes, and Turkey's earthquake map.

Recent-Earthquakes A mobile application that contains up-to-date information about the latest earthquakes in Turkey, scientific explanations about ear

Nisa Efendioğlu 3 Dec 5, 2022
Mojito is a cocktail manual, which contains recipes, images, and so on.

Mojito Mojito* is a cocktail manual, which contains recipes, images, and so on. *Mojito: an alcoholic drink made with rum, lime juice, sugar, and mint

Chih-Wei Lin 76 Dec 12, 2022
This app contains an order flow for cupcakes with options for quantity, flavor, and pickup date

This app contains an order flow for cupcakes with options for quantity, flavor, and pickup date. The order details get displayed on an order summary screen and can be shared to another app to send the order.

Shaima Alghamdi 3 Aug 22, 2022
DevFest 2021 ComposeFest μ½”λ“œλž© Repo μž…λ‹ˆλ‹€

ComposeFest2021 μ•ˆλ…•ν•˜μ„Έμš” Compose μ½”λ“œλž©μ— μ˜€μ‹ κ±Έ ν™˜μ˜ν•©λ‹ˆλ‹€. λ‹€μŒμ€ μ½”λ“œλž©μ„ μ§„ν–‰ν•˜κΈ° μœ„ν•œ μ•ˆλ‚΄μž…λ‹ˆλ‹€. 진행 일정 2021λ…„ 11μ›” 1일 ~ 30일 맀주 μ›”μš”μΌ μ½”λ“œλž© 진행을 돕기 μœ„ν•œ μ£Όμš” μ„€λͺ… μ˜μƒμ„ κ³΅κ°œν•©λ‹ˆλ‹€. ?? μ˜μƒ λ³΄λŸ¬κ°€κΈ° Compos

GDG Korea Android 127 Nov 7, 2022
πŸ“Ί A sample app to showcase Twyper with GitHub repo search API

swipe-search A sample app to showcase Twyper with GitHub repo search API ?? Demo Screen.Recording.2022-02-20.at.9.36.10.PM.mov ?? Tech Stack What How

theapache64 26 Jul 18, 2022
Github Repo Search Android App

Github Repo Search Android App Modular android app for searching trending Github repositories and the details of each repository.

mertselcukdemir 4 Mar 7, 2022
This repo provides a sample application that demonstrates how you can speed up the authentication experience for frontline workers on shared devices using QR codes.

Project This repo has been populated by an initial template to help get you started. Please make sure to update the content to build a great experienc

Microsoft 5 Dec 7, 2022
Simple Workout App which contains list of workouts.

MAD Assignment-2 Title : Simple-Workout-App Description : Simple Android App contains list workouts and keep track of progress based on workout Build

Mihir Muchhadiya 1 Dec 5, 2021
Manganers - An application that contains the most recommended places to eat in Purwokerto

manganers adalah aplikasi yang berisikan tempat makan di Purwokerto yang paling

Rizki Rafiif 0 Feb 4, 2022
An app for developers which contains more than 2.4k+ resources , with 1.2k+ free public API documentation

ResourceUp We often spend a lot of time finding good resources to get started with our project right? ResourceUp aims to provide all useful resources

kalp patel 10 Apr 30, 2022
SmartClient is a library that contains the default implementations to idenify a client.

SmartClient is a library that contains the default implementations to idenify a client.

Taylan SabΔ±rcan 29 Mar 19, 2022