Section 1 : Introduction and Course Information
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCT | |
|
Lecture 2 | About Certification | |
|
Lecture 3 | Introduction to Android | 00:18:55 Duration |
|
Lecture 4 | FAQ |
Section 2 : Downloading and Installing the Necessary Tools
|
Lecture 1 | Windows - Install Android Studio | 00:11:00 Duration |
|
Lecture 2 | Install Android Studio | 00:06:05 Duration |
|
Lecture 3 | Linux - Install Android Studio | 00:11:20 Duration |
|
Lecture 4 | Configure Android SDK on all Three Platforms | 00:11:44 Duration |
|
Lecture 5 | Android Studio Settings | 00:02:41 Duration |
|
Lecture 6 | Enable VT-X in BIOS | 00:12:59 Duration |
Section 3 : Hello World Android App
|
Lecture 1 | Your Programming Careers Questions Answered | 00:01:08 Duration |
|
Lecture 2 | Access to Programming Career Q&A | |
|
Lecture 3 | Introduction | 00:00:23 Duration |
|
Lecture 4 | Android Studio Templates | 00:07:38 Duration |
|
Lecture 5 | FAQ Templates in Android Studio 3.6 and later | |
|
Lecture 6 | More on Android Templates | 00:08:04 Duration |
|
Lecture 7 | Hello World | 00:12:14 Duration |
|
Lecture 8 | Tour of Android Studio | 00:16:13 Duration |
|
Lecture 9 | Setting Up a Virtual Device | 00:14:53 Duration |
|
Lecture 10 | FAQ Emulators on Windows 10 with AMD processo | |
|
Lecture 11 | Running on an emulator | 00:09:30 Duration |
|
Lecture 12 | Running on a physical Android device | 00:12:07 Duration |
Section 4 : Kotlin Tutorials
|
Lecture 1 | FAQ for Android Studio 3.3 | |
|
Lecture 2 | Kotlin Tutorial Setup | 00:10:15 Duration |
|
Lecture 3 | Kotlin Tutorial 1 | 00:08:49 Duration |
|
Lecture 4 | Variables and Types | 00:11:01 Duration |
|
Lecture 5 | More on Variables and Types | 00:11:32 Duration |
|
Lecture 6 | String Concatenation and Interpolation | 00:12:15 Duration |
|
Lecture 7 | val and var and more on Declarations | 00:09:50 Duration |
|
Lecture 8 | Conditions | 00:17:31 Duration |
|
Lecture 9 | Classes | 00:19:14 Duration |
|
Lecture 10 | Objects and Instances | 00:14:33 Duration |
|
Lecture 11 | Challenge | 00:06:06 Duration |
|
Lecture 12 | Android App Development Masterclass using Kotl | 00:10:07 Duration |
|
Lecture 13 | More on Lists | 00:11:42 Duration |
|
Lecture 14 | toString Challenge | 00:04:06 Duration |
|
Lecture 15 | for Loops | 00:13:44 Duration |
|
Lecture 16 | for Encapsulation and Private Properties | 00:13:02 Duration |
|
Lecture 17 | Overloading Functions | 00:07:52 Duration |
|
Lecture 18 | Inheritance | 00:12:17 Duration |
|
Lecture 19 | More on Inheritance | |
|
Lecture 20 | Inheritance Continued | 00:08:53 Duration |
|
Lecture 21 | Further Inheritance | 00:09:31 Duration |
|
Lecture 22 | while Loops | 00:13:55 Duration |
|
Lecture 23 | for Loop Revisited | 00:09:28 Duration |
|
Lecture 24 | do while Loop | 00:04:52 Duration |
|
Lecture 25 | Loop Challenge | 00:12:07 Duration |
Section 5 : The Button Counter App
|
Lecture 1 | Introduction | 00:02:09 Duration |
|
Lecture 2 | Setup Play Project | 00:11:02 Duration |
|
Lecture 3 | The Constraint Layout | 00:16:42 Duration |
|
Lecture 4 | Constraints and Resizing | 00:14:55 Duration |
|
Lecture 5 | Positioning Widgets | 00:07:29 Duration |
|
Lecture 6 | Inner Lines within a Widget | 00:09:14 Duration |
|
Lecture 7 | Layouts on Different Devices | 00:10:43 Duration |
|
Lecture 8 | More on the Constraints | 00:12:14 Duration |
|
Lecture 9 | Layout Designer rendering error | |
|
Lecture 10 | FAQ Baseline Constraints change | |
|
Lecture 11 | Baseline Constraints | 00:09:37 Duration |
|
Lecture 12 | Constraining Widgets | 00:05:17 Duration |
|
Lecture 13 | Add Scrolling Capabilities | 00:13:10 Duration |
|
Lecture 14 | The Button Counter App | 00:14:21 Duration |
|
Lecture 15 | Finish Layout | 00:12:01 Duration |
|
Lecture 16 | Coding Button Counter App | 00:13:30 Duration |
|
Lecture 17 | findViewById and r Class | 00:12:26 Duration |
|
Lecture 18 | Events and setonclicklistener | 00:07:32 Duration |
|
Lecture 19 | Testing and Challenge Time | 00:13:52 Duration |
|
Lecture 20 | Extending the Button App | 00:10:15 Duration |
|
Lecture 21 | Testing and Challenge | 00:06:37 Duration |
|
Lecture 22 | Fixing Kotlin Gradle Issues | 00:03:38 Duration |
|
Lecture 23 | The Activity Lifecycle | 00:14:56 Duration |
|
Lecture 24 | The Logcat Pane | 00:08:45 Duration |
|
Lecture 25 | Logging the Activity Lifecycle | 00:09:13 Duration |
|
Lecture 26 | Activity Lifecycle in Action | 00:14:12 Duration |
|
Lecture 27 | Saving and Restoring Instance State | 00:14:43 Duration |
Section 6 : Calculator App
|
Lecture 1 | Demo Calculator App | 00:04:35 Duration |
|
Lecture 2 | Calculator Interface Setup | 00:15:19 Duration |
|
Lecture 3 | Continue with Interface | 00:15:54 Duration |
|
Lecture 4 | Fine Tuning the Layout | 00:14:57 Duration |
|
Lecture 5 | Create Landscape Layout | 00:08:25 Duration |
|
Lecture 6 | Comparing FIles with Diff | 00:16:37 Duration |
|
Lecture 7 | Comparing Directories | 00:08:11 Duration |
|
Lecture 8 | Coding the Calculator | 00:22:41 Duration |
|
Lecture 9 | Add onClickListeners | 00:06:42 Duration |
|
Lecture 10 | Write Perform Operation Function | 00:16:27 Duration |
|
Lecture 11 | Bug Fix and Code Improvements | 00:13:45 Duration |
|
Lecture 12 | Bug Fix Challlenge and Save State | 00:19:21 Duration |
|
Lecture 13 | Widget References in Kotlin | 00:07:05 Duration |
|
Lecture 14 | Guidelines | 00:13:31 Duration |
|
Lecture 15 | Fixing Landscape Layout | 00:12:08 Duration |
|
Lecture 16 | Add Neg Button to Layout | 00:06:58 Duration |
|
Lecture 17 | Code Changes for Neg Button | 00:08:09 Duration |
|
Lecture 18 | Add Neg Button to Portrait | 00:18:13 Duration |
Section 7 : The Top 10 Downloader App
|
Lecture 1 | Introduction | 00:10:19 Duration |
|
Lecture 2 | AsyncTask | 00:14:09 Duration |
|
Lecture 3 | Logging and Logcat | 00:08:41 Duration |
|
Lecture 4 | Important note for API 28 (and higher) and the | |
|
Lecture 5 | Download the RSS Feed | 00:14:15 Duration |
|
Lecture 6 | Reading the Data | 00:19:15 Duration |
|
Lecture 7 | Android Permissions | 00:19:35 Duration |
|
Lecture 8 | Writing Idiomatic Kotlin | 00:14:42 Duration |
|
Lecture 9 | More Idiomatic Kotlin | 00:06:33 Duration |
|
Lecture 10 | Parsing the Data | 00:18:36 Duration |
|
Lecture 11 | Create Xml Parse Function | 00:14:40 Duration |
|
Lecture 12 | Testing the App | 00:09:43 Duration |
|
Lecture 13 | ListView and ArrayAdapter | 00:12:53 Duration |
|
Lecture 14 | Code Changes for Array Adapter | 00:16:26 Duration |
|
Lecture 15 | onDestroy and Asynctask | 00:06:55 Duration |
|
Lecture 16 | Create Custom Adapter | 00:11:16 Duration |
|
Lecture 17 | Custom Adapter Code | 00:16:46 Duration |
|
Lecture 18 | Improving the Adapter | 00:12:19 Duration |
|
Lecture 19 | ViewHolder Pattern. | 00:11:50 Duration |
|
Lecture 20 | Adding a Menu - Layout | 00:08:39 Duration |
|
Lecture 21 | Adding A Menu - Code | 00:15:32 Duration |
|
Lecture 22 | Menu Groups - Layout | 00:09:09 Duration |
|
Lecture 23 | Menu Groups - Code | 00:15:31 Duration |
|
Lecture 24 | Challenge Solution | 00:15:14 Duration |
Section 8 : The YouTube app
|
Lecture 1 | Setup | 00:17:26 Duration |
|
Lecture 2 | YouTube Activity | 00:13:09 Duration |
|
Lecture 3 | Adding Widgets Dynamically | 00:09:36 Duration |
|
Lecture 4 | Google API Key | 00:11:21 Duration |
|
Lecture 5 | Add Key to Code | 00:07:37 Duration |
|
Lecture 6 | The YouTube Player | 00:13:09 Duration |
|
Lecture 7 | onInitializationSuccess Method | 00:12:47 Duration |
|
Lecture 8 | Adding Listeners | 00:10:22 Duration |
|
Lecture 9 | Improving the Player | 00:06:05 Duration |
|
Lecture 10 | Extending App Layouts | 00:05:05 Duration |
|
Lecture 11 | Extending Youtube App Code | |
|
Lecture 12 | Implementing Intents and Challenge | 00:17:29 Duration |
|
Lecture 13 | Challenge Solution | 00:04:51 Duration |
|
Lecture 14 | More Error Handling | 00:14:38 Duration |
Section 9 : Flickr Browser App
|
Lecture 1 | Introduction | 00:03:45 Duration |
|
Lecture 2 | Flick App and Feeds | 00:15:11 Duration |
|
Lecture 3 | Json and Mini challenge | 00:13:15 Duration |
|
Lecture 4 | Log Tag and Companion Objects | 00:15:14 Duration |
|
Lecture 5 | Kotlin top-level constants | |
|
Lecture 6 | Download JSON - doInBackground | 00:11:48 Duration |
|
Lecture 7 | Downloading the JSON | 00:13:11 Duration |
|
Lecture 8 | CallBacks | 00:15:49 Duration |
|
Lecture 9 | Project Diagram and Photo Class | 00:07:55 Duration |
|
Lecture 10 | GetFlickJsonData class. | 00:19:38 Duration |
|
Lecture 11 | GetFlickrJsonData class continued | 00:18:13 Duration |
|
Lecture 12 | Uri Builder | 00:11:37 Duration |
|
Lecture 13 | Flickr Browser User Inferface | 00:11:46 Duration |
|
Lecture 14 | RecyclerView Layouts | 00:14:49 Duration |
|
Lecture 15 | Finishing Browse Layout | 00:05:22 Duration |
|
Lecture 16 | Search and PhotoDetail Activities | 00:08:20 Duration |
|
Lecture 17 | Nested Layouts | 00:15:29 Duration |
|
Lecture 18 | Recyclerview Adapter | 00:16:58 Duration |
|
Lecture 19 | onBindViewHolder and Picasso | 00:13:50 Duration |
|
Lecture 20 | Associate Adapter to Recyclerview | 00:06:35 Duration |
|
Lecture 21 | RecyclerItemClickListener | 00:18:24 Duration |
|
Lecture 22 | GestureDetector | 00:15:16 Duration |
|
Lecture 23 | Displaying the full photo | 00:15:35 Duration |
|
Lecture 24 | Serializable | 00:16:29 Duration |
|
Lecture 25 | Modify Photo Details Activity | 00:05:36 Duration |
|
Lecture 26 | Update for later version of Kotlin | |
|
Lecture 27 | Parcelable | 00:08:46 Duration |
|
Lecture 28 | Material Design | 00:13:37 Duration |
|
Lecture 29 | More on Material Design | 00:09:29 Duration |
|
Lecture 30 | AppCompat - Backwards Compatibility | 00:06:15 Duration |
|
Lecture 31 | Style Sheets | 00:11:30 Duration |
|
Lecture 32 | Custom Style Sheets | 00:12:39 Duration |
|
Lecture 33 | Namespaces | 00:11:43 Duration |
|
Lecture 34 | Other Material Design Changes | 00:10:21 Duration |
|
Lecture 35 | Missing Style Editor video | |
|
Lecture 36 | Differences in API Levels | 00:08:41 Duration |
|
Lecture 37 | String Resources | |
|
Lecture 38 | String Resources Placeholders | 00:10:12 Duration |
|
Lecture 39 | Adding the Search Feature | 00:04:35 Duration |
|
Lecture 40 | SearchView | 00:12:44 Duration |
|
Lecture 41 | More on SearchView | 00:11:45 Duration |
|
Lecture 42 | SearchView Events | 00:09:07 Duration |
|
Lecture 43 | Deprecation of framework | |
|
Lecture 44 | SharedPreferences | 00:10:02 Duration |
|
Lecture 45 | Telling Fibs | 00:08:14 Duration |
Section 10 : Databases, the SQL Language and SQLite on Android
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 2 | Introduction to Databases | 00:04:48 Duration |
|
Lecture 3 | Database Terminology | 00:10:19 Duration |
|
Lecture 4 | Command Line and Path Setup for Windows | 00:09:23 Duration |
|
Lecture 5 | Command Line and Path Setup for Mac | 00:07:42 Duration |
|
Lecture 6 | Command Line and Path Setup for Ubuntu Linux | 00:05:45 Duration |
|
Lecture 7 | Introduction to Sqlite | 00:10:48 Duration |
|
Lecture 8 | More SQL with Sqlite | 00:10:28 Duration |
|
Lecture 9 | Sqlite Querying Data | 00:15:40 Duration |
|
Lecture 10 | Order By and Joins | 00:12:58 Duration |
|
Lecture 11 | More Complex Joins | 00:11:29 Duration |
|
Lecture 12 | Wild Cards and Views | 00:14:56 Duration |
|
Lecture 13 | Housekeeping and Challenge | 00:14:05 Duration |
|
Lecture 14 | Basic SQL in Android | 00:10:04 Duration |
|
Lecture 15 | Create Table Add Data and Test | 00:11:24 Duration |
|
Lecture 16 | Cursor and Navigation | 00:17:26 Duration |
|
Lecture 17 | Correction | |
|
Lecture 18 | Android File System | 00:16:06 Duration |
|
Lecture 19 | Content Providers | 00:02:37 Duration |
|
Lecture 20 | Setting up the Emulators | 00:11:19 Duration |
|
Lecture 21 | Contact Provider App Layout | 00:07:27 Duration |
|
Lecture 22 | The ContactsContract | 00:09:56 Duration |
|
Lecture 23 | ContentResolver and Abstraction | 00:08:22 Duration |
|
Lecture 24 | Retrieving Data with a ContentResolver | 00:09:14 Duration |
|
Lecture 25 | Permissions | 00:13:08 Duration |
|
Lecture 26 | Checking Permissions at Runtime | 00:14:42 Duration |
|
Lecture 27 | Testing the App | 00:08:58 Duration |
|
Lecture 28 | Avoiding Crashes Snackbars and a Challenge | 00:07:41 Duration |
|
Lecture 29 | More on Snackbars | 00:10:37 Duration |
|
Lecture 30 | Intents, setData and Uris | 00:14:18 Duration |
|
Lecture 31 | Problems Storing State | 00:05:56 Duration |
|
Lecture 32 | Remove Saving of State | 00:04:09 Duration |
|
Lecture 33 | Test Scripts Challenge and Cleanup | 00:06:48 Duration |
Section 11 : ViewModel and LiveData
|
Lecture 1 | Introduction | 00:02:00 Duration |
|
Lecture 2 | Androids ViewModel Class | 00:03:52 Duration |
|
Lecture 3 | FAQ Changes to the Lifecycle Components libra | |
|
Lecture 4 | Using a ViewModel | 00:13:23 Duration |
|
Lecture 5 | Finish ViewModel Changes | 00:20:33 Duration |
|
Lecture 6 | Exposing LiveData | 00:08:19 Duration |
|
Lecture 7 | Swapping the ViewModel | 00:07:29 Duration |
|
Lecture 8 | ViewModel with Top 10 Downloader | 00:10:08 Duration |
|
Lecture 9 | Implement ViewModel | 00:15:44 Duration |
|
Lecture 10 | Final Changes | 00:10:01 Duration |
|
Lecture 11 | App Testing | 00:04:12 Duration |
Section 12 : TaskTimer App
|
Lecture 1 | The TaskTimer Application | 00:18:00 Duration |
|
Lecture 2 | Database Setup | 00:11:33 Duration |
|
Lecture 3 | Creating a Fragment | |
|
Lecture 4 | Tasks Contract Class | 00:06:47 Duration |
|
Lecture 5 | AppDatabase Class | 00:08:58 Duration |
|
Lecture 6 | Create SQL for Tasks Table | 00:08:17 Duration |
|
Lecture 7 | Singleton AppDatabase Class | 00:10:43 Duration |
|
Lecture 8 | onUpgrade and Testing | 00:11:47 Duration |
|
Lecture 9 | The ContentProvider | 00:17:33 Duration |
|
Lecture 10 | FAQ context in a ContentProvider | |
|
Lecture 11 | uriMatcher | 00:17:24 Duration |
|
Lecture 12 | Updating Build Files | 00:03:01 Duration |
|
Lecture 13 | The Content URI | 00:11:50 Duration |
|
Lecture 14 | Register the ContentProvider | 00:11:38 Duration |
|
Lecture 15 | Using appendWhereEscapeString | 00:12:02 Duration |
|
Lecture 16 | Mime Types in the Content Provider | 00:08:44 Duration |
|
Lecture 17 | Content Provider Insert | 00:08:52 Duration |
|
Lecture 18 | Update and Delete | 00:11:51 Duration |
|
Lecture 19 | Testing Insert and Update | 00:12:22 Duration |
|
Lecture 20 | Testing Bulk Update and Delete | 00:14:26 Duration |
|
Lecture 21 | Main Menu UI | 00:15:11 Duration |
|
Lecture 22 | Task UI Layout | 00:14:19 Duration |
|
Lecture 23 | Task List Items Constraints | 00:05:35 Duration |
|
Lecture 24 | Add Edit Layout | 00:16:35 Duration |
|
Lecture 25 | The Kotlin Data Class | 00:12:03 Duration |
|
Lecture 26 | The Add Edit Fragment | 00:18:23 Duration |
|
Lecture 27 | Swapping Fragments | 00:12:28 Duration |
|
Lecture 28 | Multi-pane Fragments | 00:13:02 Duration |
|
Lecture 29 | Multi-pane Displays | 00:15:33 Duration |
|
Lecture 30 | Enabling Two-pane Mode | 00:10:18 Duration |
|
Lecture 31 | The Fragment Lifecycle Part 1 | 00:12:30 Duration |
|
Lecture 32 | The Fragment Lifecycle Part 2 | 00:07:29 Duration |
|
Lecture 33 | Logging the Fragment Lifecycle | 00:14:36 Duration |
|
Lecture 34 | Android SDK Gradle and Kotlin Updates | 00:11:15 Duration |
|
Lecture 35 | Up and Back Navigation for Fragments | 00:07:27 Duration |
|
Lecture 36 | Object can have More than One Type | 00:03:25 Duration |
|
Lecture 37 | Removing the Up Button | 00:06:12 Duration |
|
Lecture 38 | Back Navigation | 00:06:25 Duration |
|
Lecture 39 | Completing the AddEdit UI | 00:09:59 Duration |
|
Lecture 40 | Saving the Task Details | 00:10:11 Duration |
|
Lecture 41 | Test Saving | 00:07:13 Duration |
|
Lecture 42 | Updating Android Studio, Kotlin, and Gradle | 00:04:14 Duration |
|
Lecture 43 | Fixing New Kotlin Warnings | 00:04:26 Duration |
|
Lecture 44 | Layout Container | 00:06:41 Duration |
|
Lecture 45 | RecyclerView CursorAdapter | 00:15:56 Duration |
|
Lecture 46 | Introducing David Reidy | 00:01:35 Duration |
|
Lecture 47 | Tricky String Resources | 00:11:42 Duration |
|
Lecture 48 | The ViewModel Class | 00:06:44 Duration |
|
Lecture 49 | Subscribe to The ViewModel | 00:03:07 Duration |
|
Lecture 50 | Notifications and Observers | 00:09:06 Duration |
|
Lecture 51 | Responding to Taps | 00:04:18 Duration |
|
Lecture 52 | onClick Listeners, Interfaces and Callbacks | 00:02:30 Duration |
|
Lecture 53 | Responding to Clicks from the Adapter | 00:04:12 Duration |
|
Lecture 54 | Solution to The Interface Challenge | 00:05:34 Duration |
|
Lecture 55 | Deleting a Task from The Database | 00:09:39 Duration |
|
Lecture 56 | Accessing a Database on a Background Thread | 00:09:39 Duration |
|
Lecture 57 | Background Processing Using a Coroutine | 00:04:16 Duration |
|
Lecture 58 | Clean Up AddEditFragment | 00:08:37 Duration |
|
Lecture 59 | Saving in The ViewModel | 00:04:58 Duration |
|
Lecture 60 | Sharing ViewModel Instances | 00:05:20 Duration |
Section 13 : Dialogs
|
Lecture 1 | AndroidX | 00:13:49 Duration |
|
Lecture 2 | Introduction to Dialogs | 00:04:04 Duration |
|
Lecture 3 | AppDialog Class Part 1 | 00:15:32 Duration |
|
Lecture 4 | AppDialog Class Part 2 | 00:08:24 Duration |
|
Lecture 5 | Adding a Dialog to The App | 00:05:31 Duration |
|
Lecture 6 | Dialog CallBacks | 00:11:20 Duration |
|
Lecture 7 | Asserts and BuildConfig | |
|
Lecture 8 | Strange Dialog Behavior | 00:05:33 Duration |
|
Lecture 9 | Confirming Exit Without Saving | 00:07:38 Duration |
|
Lecture 10 | Implementing the Interface | 00:04:00 Duration |
|
Lecture 11 | Kotlin Extension Functions | 00:08:26 Duration |
|
Lecture 12 | Image Asset Studio | 00:13:15 Duration |
|
Lecture 13 | Create an About Dialog the Layout Part 1 | 00:10:30 Duration |
|
Lecture 14 | Create an About Dialog the Layout Part 2 | 00:11:15 Duration |
|
Lecture 15 | Displaying the About Dialog | 00:11:47 Duration |
|
Lecture 16 | Versioning and build.gradle | 00:07:46 Duration |
|
Lecture 17 | Dismissing the Dialogue | 00:08:41 Duration |
|
Lecture 18 | Supporting Older Versions | 00:08:14 Duration |
|
Lecture 19 | Compatibility Challenge Solution Part 1 | 00:14:39 Duration |
|
Lecture 20 | Compatibility Challenge Solution Part 2 | 00:11:57 Duration |
Section 14 : Settings Dialog
|
Lecture 1 | Introduction | 00:02:47 Duration |
|
Lecture 2 | Settings Dialog Layout | 00:10:34 Duration |
|
Lecture 3 | Settings Dialog | 00:03:45 Duration |
|
Lecture 4 | DefaultSharedPreferences | 00:07:08 Duration |
|
Lecture 5 | SeekBar Values | 00:07:49 Duration |
|
Lecture 6 | Quantity String Resources | 00:09:11 Duration |
|
Lecture 7 | Setting Dialog Title | 00:03:19 Duration |
|
Lecture 8 | Retain Instance State | 00:05:47 Duration |
Section 15 : Multiple Tables and Database Upgrades
|
Lecture 1 | Introduction | 00:03:56 Duration |
|
Lecture 2 | A Correction and the Device File Explorer | 00:06:52 Duration |
|
Lecture 3 | Database Updates | 00:11:20 Duration |
|
Lecture 4 | Saving the Timing Data | 00:05:56 Duration |
|
Lecture 5 | The saveTiming Function | 00:03:57 Duration |
|
Lecture 6 | Testing Timings | 00:03:14 Duration |
|
Lecture 7 | Providing Feedback | 00:04:37 Duration |
|
Lecture 8 | Correction to the Providing Feedback lecture | |
|
Lecture 9 | Data Loss | 00:03:38 Duration |
|
Lecture 10 | Storing the Current Timing Records | 00:03:45 Duration |
|
Lecture 11 | Solution - Retrieving the Current Time Record | 00:04:28 Duration |
|
Lecture 12 | Solution Continued | 00:01:45 Duration |
|
Lecture 13 | Finish Solution and Test | 00:06:22 Duration |
|
Lecture 14 | When the Battery Dies | 00:06:07 Duration |
Section 16 : Reports
|
Lecture 1 | Creating Test Data | 00:12:25 Duration |
|
Lecture 2 | Generating the Test Data | 00:03:18 Duration |
|
Lecture 3 | Debug and Release Builds | 00:09:42 Duration |
|
Lecture 4 | Using a SQLite view | 00:11:29 Duration |
|
Lecture 5 | Adding the view to the Database | 00:07:31 Duration |
|
Lecture 6 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 7 | Testing the Database Upgrade | 00:06:50 Duration |
|
Lecture 8 | ConstraintLayout Chains | 00:08:30 Duration |
|
Lecture 9 | Chain Types | 00:11:48 Duration |
|
Lecture 10 | Finishing the reports layouts - challenge | 00:09:56 Duration |
|
Lecture 11 | The Landscape Layouts | 00:08:34 Duration |
|
Lecture 12 | The Report Adapter | 00:10:25 Duration |
|
Lecture 13 | The Durations Report Activity | 00:11:29 Duration |
|
Lecture 14 | Testing Different Locales | 00:06:21 Duration |
|
Lecture 15 | Creating the reports ViewModel | 00:06:12 Duration |
|
Lecture 16 | Using the DurationsViewModel | 00:02:11 Duration |
|
Lecture 17 | Sorting the Report Data | 00:06:22 Duration |
|
Lecture 18 | Vector Drawables and Asset Studio | 00:12:48 Duration |
|
Lecture 19 | The Report Menu | 00:05:07 Duration |
|
Lecture 20 | Report Menu Code - dayweek toggle | 00:07:16 Duration |
|
Lecture 21 | The DatePickerDialog | 00:15:05 Duration |
|
Lecture 22 | Filtering by Date | 00:05:39 Duration |
|
Lecture 23 | Filtering in the DurationsViewModel | 00:09:53 Duration |
|
Lecture 24 | Testing the Report Filters | 00:07:13 Duration |
|
Lecture 25 | Unbuggy DatePickerDialog | 00:09:21 Duration |
|
Lecture 26 | Deleting old Timings data | 00:09:06 Duration |
|
Lecture 27 | Testing Mass Deletion | 00:03:17 Duration |
|
Lecture 28 | Observing the cursor in the ViewModel | 00:04:01 Duration |
|
Lecture 29 | A Minor Bug | 00:04:45 Duration |
|
Lecture 30 | Observing a Configuration Change | 00:08:49 Duration |
|
Lecture 31 | Testing the Bug Fix | 00:07:44 Duration |
|
Lecture 32 | Using the First Day Of Week Setting | 00:05:56 Duration |
|
Lecture 33 | Taking Advantage of Later Features | 00:04:02 Duration |
|
Lecture 34 | Testing the new DatePickerFragment | 00:03:45 Duration |
|
Lecture 35 | Observing SharedPreference changes | 00:06:49 Duration |
|
Lecture 36 | Solution to Ignore Short Timings Challenge | 00:09:15 Duration |
Section 17 : Tidying up
Section 18 : Extra Information - Source code, and other stuff
|
Lecture 1 | Source Code |