yarn add --exact @angular/material
yarn start
Import angular material module into src/main/webapp/app/shared/shared-libs.module.ts:
import { MaterialModule } from '@angular/material';
@NgModule({
yarn add --exact @angular/material
yarn start
Import angular material module into src/main/webapp/app/shared/shared-libs.module.ts:
import { MaterialModule } from '@angular/material';
@NgModule({
Here is the development workflow:
./mvnw liquibase:diff (or ./mvnw compile liquibase:diff to compile before)src/main/resources/config/liquibase/changelog directorysrc/main/resources/config/liquibase/master.xml file, so it is applied the next time you run your applicationIf you use Gradle instead of Maven, you can use the same workflow by running ./gradlew liquibaseDiffChangelog -PrunList=diffLog,
and change the database configuration in build.gradle in the liquibase configuration if required.
| # 3D models | |
| *.3dm filter=lfs diff=lfs merge=lfs -text | |
| *.3ds filter=lfs diff=lfs merge=lfs -text | |
| *.blend filter=lfs diff=lfs merge=lfs -text | |
| *.c4d filter=lfs diff=lfs merge=lfs -text | |
| *.collada filter=lfs diff=lfs merge=lfs -text | |
| *.dae filter=lfs diff=lfs merge=lfs -text | |
| *.dxf filter=lfs diff=lfs merge=lfs -text | |
| *.fbx filter=lfs diff=lfs merge=lfs -text | |
| *.jas filter=lfs diff=lfs merge=lfs -text |
| try { | |
| val info = packageManager.getPackageInfo( | |
| "com.mypackage.name", // TODO Change the package name | |
| PackageManager.GET_SIGNATURES) | |
| for (signature in info.signatures) { | |
| val md = MessageDigest.getInstance("SHA") | |
| md.update(signature.toByteArray()) | |
| Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)) | |
| } | |
| } catch (e: PackageManager.NameNotFoundException) { |
| package com.tinmegali.daggerwithkotlin | |
| import android.arch.persistence.room.Room | |
| import android.content.Context | |
| import android.support.test.InstrumentationRegistry | |
| import android.support.test.runner.AndroidJUnit4 | |
| import com.tinmegali.daggerwithkotlin.room.AppDatabse | |
| import com.tinmegali.daggerwithkotlin.room.blockingObserve | |
| import com.tinmegali.daggerwithkotlin.room.daos.NoteDAO |
| package com.tinmegali.daggerwithkotlin.room | |
| import android.arch.persistence.room.Database | |
| import android.arch.persistence.room.RoomDatabase | |
| import android.arch.persistence.room.TypeConverters | |
| import com.tinmegali.daggerwithkotlin.room.daos.NoteDAO | |
| import com.tinmegali.daggerwithkotlin.room.daos.UserDAO | |
| import com.tinmegali.daggerwithkotlin.room.entities.Note | |
| import com.tinmegali.daggerwithkotlin.room.entities.User |
| @Database(entities = arrayOf(Note::class, User::class), version = 1) | |
| @TypeConverters(Converters::class) | |
| abstract class AppDatabse : RoomDatabase() { | |
| abstract fun userDAO(): UserDAO | |
| abstract fun noteDAO(): NoteDAO | |
| } |
| package com.tinmegali.daggerwithkotlin.room | |
| import android.arch.lifecycle.LiveData | |
| import android.arch.lifecycle.Observer | |
| import java.util.concurrent.CountDownLatch | |
| import java.util.concurrent.TimeUnit | |
| // Extension to allow unit tests on LiveData | |
| // discussion on: https://stackoverflow.com/questions/44270688/unit-testing-room-and-livedata |
| class App : Application(), HasActivityInjector { | |
| @Inject lateinit var activityInjector: DispatchingAndroidInjector<Activity> | |
| override fun activityInjector(): AndroidInjector<Activity> { | |
| return activityInjector | |
| } | |
| override fun onCreate() { | |
| super.onCreate() |
| import android.animation.Animator; | |
| import android.animation.TimeInterpolator; | |
| import android.annotation.TargetApi; | |
| import android.graphics.Color; | |
| import android.os.Build; | |
| import android.support.annotation.NonNull; | |
| import android.util.Log; | |
| import android.view.MotionEvent; | |
| import android.view.View; | |
| import android.view.ViewAnimationUtils; |