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; |