google-developer-training / advanced-android-kotlin-notifications Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Describe the problem
In step 3.4, it should be open EggTimerViewModel.kt
file instead of EggTimerFragment .kt
because the code to show a notification when the egg is ready is in viewmodel file.
In which lesson and step of the codelab can this issue be found?
Lesson 01.1, Step 3.4
Both the project-level and the module-level build.gradle files display the following message several times in Android Studio 3.5:
A newer version of <package-name> than <codelab-version> is available: <updated-version>
Describe the problem
Step 4.4 gives the wrong class name
In which lesson and step of the codelab can this issue be found?
Step 4, the line that says: "Open EggTimerFragment.kt and remove the notification code for Step 1.5."
How to reproduce?
The line should read "Open EggTimerViewModel.kt and remove the notification code for Step 1.5." since that is where the code is
codelab: advanced-android-kotlin
Describe the problem
A clear and concise description of what the problem is.
at these step the clue tell us to open the EggTimerFragment.kt, but actualy at the code snippet there is on the EggTimeViewModel.kt. And it makes the reader ambiguous.
In which lesson and step of the codelab can this issue be found?
Lessons 1.1 Step 3.4
How to reproduce?
What are the exact steps to reproduce the problem?
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
Describe the problem
Start the timer, put the app in the background, and wait for the notification to appear.
The notification content intent brings the user back to the timer screen with a new activity even though there is an activity in the background.
Which was added in the backstack and we need to click the device back button twice to exit the app.
In which lesson and step of the codelab can this issue be found?
Lesson: Notifications 1.1, Task 4, Step 4: Add a content intent.
How to reproduce?
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
EggTimerFragment.kt
val viewModel = ViewModelProviders.of(this).get(EggTimerViewModel::class.java)
ViewModelProviders is DEPRECATED
Updating the Fragment to use current methods for initializing the ViewModel requires different dependencies. Using these dependencies, however, breaks the app. Google, please keep your codelabs up to date. You shouldn't be teaching with deprecated
classes or dependencies.
Describe the problem
Grammar error("and and"):
In Step 1.1 you used egg_notification_channel_id as your notification channel, so now you need to actually create and and customize the notification settings and behavior of this channel.
In which lesson and step of the codelab can this issue be found?
https://codelabs.developers.google.com/codelabs/advanced-android-kotlin-training-notifications/#3
Lesson 4, Step 2
codelab: advanced-android-kotlin
Describe the problem
The repository has the exercise solved
In which lesson and step of the codelab can this issue be found?
Advanced Android in Kotlin 01.1: Using Android Notifications
How to reproduce?
Download "https://github.com/googlecodelabs/android-kotlin-notifications"
Versions
Additional information
Ideal - the repository should have both the initial exercise and the solved one.
codelab: advanced-android-kotlin
I don`t found Step 1 : 5 in your code
Describe the problem
The starter and finished code have typos in README.md
file:
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 3 and 6
How to reproduce?
Visit readme files
Versions
What version of Android Studio are you using?
Not relavant
What API level are you targeting?
Not relavant
Additional information
NA
codelab: advanced-android-kotlin
Describe the problem
The starter project cloned from the GitHub repo cannot run. The following error is shown:
Gradle sync failed. No variants found for ':app'. Check build files to ensure at least one variant exists. at:
com.android.tools.idea.gradle.project.sync.idea.svs.AndroidModule.deliverModels(AndroidModule.kt:191)
com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider$Worker.populateBuildModels(AndroidExtraModelProvider.kt:121)
com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider.populateBuildModels(AndroidExtraModelProvider.kt:81)
org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:247)
org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:117)
org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:42)
org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:77)
org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.runAction(ClientProvidedPhasedActionRunner.java:120)
org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.run(ClientProvidedPhasedActionRunner.java:110)
org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.buildFinished(ClientProvidedPhasedActionRunner.java:104)
jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:376)
org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:358)
org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:346)
org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:333)
org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
com.sun.proxy.$Proxy13.buildFinished(Unknown Source)
org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:179)
org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:83)
org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:60)
org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
org.gradle.util.Swapper.swap(Swapper.java:38)
org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
java.base/java.lang.Thread.run(Thread.java:834)
I have tried invalidating caches and restart. The same error is displayed. This problem is both in the default "master" branch and in the "start" branch.
In which lesson and step of the codelab can this issue be found?
01.1: Using Android Notifications / 3. Getting Started
How to reproduce?
Clone the starter repo and try to run it in Android Studio:
git clone https://github.com/googlecodelabs/android-kotlin-notifications
Versions
codelab: advanced-android-kotlin
Describe the problem
In Step 3 at point 4, it sais Open EggTimerFragment.kt but it should sais EggTimeViewModel.kt as in the posterior code
In which lesson and step of the codelab can this issue be found?
4 + 3.4 r. (e.g., Lesson 1.1, Step 1.3)
codelab: advanced-android-kotlin
Describe the problem
The step says to open the incorrect file.
What it currently says: "Open EggTimerFragment.kt and remove the notification code for Step 1.5."
What it should say: "Open EggTimerViewModel.kt and remove the notification code for Step 1.5."
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 3.4
How to reproduce?
Open Lesson 1.1 and scroll to Step 3.4
codelab: advanced-android-kotlin
Describe the problem
In Step 3: Add notifications to your app , step 4 , must be EggTimeViewModel.kt instead of EggTimerFragment.kt
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 3: Add notifications to your app
How to reproduce?
What are the exact steps to reproduce the problem?
In Step 3: Add notifications to your app , step 4 , must be EggTimeViewModel.kt instead of EggTimerFragment.kt
Versions
Additional information
Add any other context about the problem here.
https://developer.android.com/codelabs/advanced-android-kotlin-training-notifications#3
codelab: advanced-android-kotlin
Describe the problem
At step 4 Notifications 1.1 TODO 1.5 is referenced, but its not present in the cloned project.
In which lesson and step of the codelab can this issue be found?
Lesson 1.1 + step 4
codelab: advanced-android-kotlin
Describe the problem
The file that contain codes for step 1.5 is EggTimerViewModel.kt, not EggTimerFragment.kt.
In which lesson and step of the codelab can this issue be found?
Advanced Android in Kotlin: Notifications 1.1 [Step 3.4]
the GitHub repositories that you are giving as start point or solution code ( master brach )
are not at all relevant of the sample for firebase use
don't you check before to release google code labs ?
Describe the problem
wrong description
in the step 3 says you have to open “EggTimerFragment.kt” but the code is in viewmodel where TODO 1.5 is.
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
[Advanced Android in Kotlin 01.1: Using Android Notifications](https://developer.android.com/codelabs/advanced-android-kotlin-training-notifications].
task 4
step 3
number 4
codelab: advanced-android-kotlin
Describe the problem
Code mismatch.
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 2.3 AND Step 2.5
How to reproduce?
In Step 2.3:
// NotificationUtils.kt
// TODO: Step 2.3 add snooze action
.addAction(
R.drawable.egg_icon, <----EGG_ICON----
applicationContext.getString(R.string.snooze),
snoozePendingIntent
)
But in Step 2.5:
// NotificationUtils.kt
.addAction(
R.drawable.common_google_signin_btn_icon_dark, <----COMMON_ICON---
applicationContext.getString(R.string.snooze),
snoozePendingIntent
)
// TODO: Step 2.5 set priority
.setPriority(NotificationCompat.PRIORITY_HIGH)
Versions
Additional information
codelab: advanced-android-kotlin
Describe the problem
Typo in 3. Getting Started. Branch to switch to is called start rather than starter
In which lesson and step of the codelab can this issue be found?
Lesson 1.1 step 3.
codelab: advanced-android-kotlin
Describe the problem
Till date there are nearly 38 issues.
In which lesson and step of the codelab can this issue be found?
Lesson 1-end
How to reproduce?
Non Maintainability of Repo with upcoming changes in MVVM, Dagger, etc.
Versions
Version of Android Studio: Android Studio Electric Eel | 2022.1.1 Patch 1
API level targeting: API 21-33
Additional information
Update the Library regularly to be able to use it properly. This is an important Library for In App Notifications, which many use. If it gets outdated, we are screwed !
codelab: advanced-android-kotlin
Describe the problem
A clear and concise description of what the problem is.
"4. Open EggTimerFragment.kt and remove the notification code for Step 1.5."
The problem is that Step 1.5 is done in EggTimeViewModel.kt and not in EggtimerFragment.kt
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
Advanced Android in Kotlin 01.1: Using Android Notifications
4 Task: Add Notifications to your app
Step 3: Add notifications to your app
4. Open EggTimerFragment.kt and remove the notification code for Step 1.5.
How to reproduce?
What are the exact steps to reproduce the problem?
Typo, found by going to above stated path
Versions
Additional information
Add any other context about the problem here.
It is only a typo in the instructions
codelab: advanced-android-kotlin
Describe the problem
I cloned the project from the given link, but it is already solved.
codelab: advanced-android-kotlin
After I updated all the dependencies "ViewModelProviders.of() " became deprecated. Now is called directly. "ViewModelProvider()" If you guys want I can pull a request with all the dependencies updates.
Thanks,
John De La Cruz
The correct starting branch is "start" not "starter"
Describe the problem
A clear and concise description of what the problem is.
The code described in the tutorial does not match the code provided from github
We are asked to download (or clone) a copy of the master branch ( I did both) the master
already contains the completed tasks we are asked to do through the exercise. Additionally, it refers
to some TODO items that are not marked in the code
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
Advanced Android in Kotlin 01,1 Task 4 all steps
How to reproduce?
What are the exact steps to reproduce the problem?
Download the git as requested by the project and follow along the steps
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
Describe the problem
Grammatical error in codelab summary: Use the NotificationManager class to create, send, update, and cancel a notification using.
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 7(summary)
codelab: advanced-android-kotlin
the code that you've provided as starter code is in fact the solution code
Advanced Android in Kotlin: Notifications 1.1 [Step 3][complete code instead of starter code for download]
Describe the problem
A clear and concise description of what the problem is.
Bad filename
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
Advanced Android in Kotlin 01.1: Using Android Notifications Task: Add notifications to your app step 3 point4 : Open EggTimerFragmentkt should be Open Open EggTimerViewModel.kt
How to reproduce?
What are the exact steps to reproduce the problem?
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
Describe the problem
The guide mentions the branch starter, but the actual branch is start
In which lesson and step of the codelab can this issue be found?
Step 3. Getting Started
How to reproduce?
No steps required.
Versions
Additional information
codelab: advanced-android-kotlin
Describe the problem
File Name mismatch
It should be EggTimeViewModel.kt instead of EggTimerFragment.kt.
In which lesson and step of the codelab can this issue be found?
Lesson 1.1 step 4-> 4th point.
codelab: advanced-android-kotlin
NotificationManager.IMPORTANCE_LOW and 'Time for breakfast' have a badly set background.
Advanced Android in Kotlin: Notifications 1.1 [Step #4]
codelab: advanced-android-kotlin
Describe the problem
Incorrect branch name specified on Step 1.3 of Lesson 1.1
The branch specified in the document is starter
however, this branch is not
exists in https://github.com/googlecodelabs/android-kotlin-notifications
Instead the branch named start
exists in the repo
In which lesson and step of the codelab can this issue be found?
Lesson 1.1, Step 1.3
How to reproduce?
Proceed to step 3 of
Advanced Android in Kotlin 01.1: Using Android Notifications
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
The Zip File Provided at the begging of the codelab is the solution for the codelab.
codelab- nootifications 1.1
In Task 4, Step 3, Number 4, the instruction is:
Open EggTimerFragment.kt and remove the notification code for Step 1.5.
However, the code referred to is in EggTimerViewModel.kt
Describe the problem
Wording: Open AlarmReceiver.kt, an instance of NotificationManager
should be instantiate an instance
In which lesson and step of the codelab can this issue be found?
Step 3.1
How to reproduce?
na
Versions
na
Additional information
na
codelab: advanced-android-kotlin
On the repo given at the beginning, the tasks are already solved
The class contained in the file MyFirebaseMessagingService.kt no longer overrides the methods in the superclass, FirebaseMessagingService, properly. In particular, the parameters passed into onMessageReceived() and onNewToken() are both non-nullable now (so the ?'s should be removed).
Describe the problem
The "Download Zip" button downloads the "master" branch instead of the "starter" branch.
In which lesson and step of the codelab can this issue be found?
Lesson 1.1 Step 3
How to reproduce?
Click on the "Download Zip" button
codelab: advanced-android-kotlin
Describe the problem
A clear and concise description of what the problem is.
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
How to reproduce?
What are the exact steps to reproduce the problem?
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
Describe the problem
Step item is referring to the incorrect module
In which lesson and step of the codelab can this issue be found?
Advanced Android in Kotlin 01.1: Using Android Notifications + Task 4 + Step 3.
How to reproduce?
Step says: Open EggTimerFragment.kt and remove the notification code for Step 1.5., but the code is in EggTimerViewModel
Describe the problem
A clear and concise description of what the problem is.
In which lesson and step of the codelab can this issue be found?
Lesson number + step number. (e.g., Lesson 1.1, Step 1.3)
How to reproduce?
What are the exact steps to reproduce the problem?
Versions
Additional information
Add any other context about the problem here.
codelab: advanced-android-kotlin
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.