diff --git a/app/src/main/kotlin/jackall/overlaymulticounter/activity/MainActivity.kt b/app/src/main/kotlin/jackall/overlaymulticounter/activity/MainActivity.kt index 99c8992..57b8532 100644 --- a/app/src/main/kotlin/jackall/overlaymulticounter/activity/MainActivity.kt +++ b/app/src/main/kotlin/jackall/overlaymulticounter/activity/MainActivity.kt @@ -17,7 +17,7 @@ if (CounterRealmHelper().getNextId() == 0) { CounterRealmHelper().insert( Counter(CounterRealmHelper().getNextId(), - "カウンター1", + "Counter1", 0) ) } diff --git a/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt b/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt index 000d8c0..3c76940 100644 --- a/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt +++ b/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt @@ -7,7 +7,6 @@ * Created by matsumoto_k on 2017/11/08. */ class CounterRealmHelper : BaseRealmHelper() { - val query by lazy { realm.where(Counter::class.java) } override fun insert(realmObject: Counter) { realm.executeTransaction { realm.copyToRealm(realmObject) @@ -22,7 +21,7 @@ fun plus(id: Int) { realm.executeTransaction { - query.equalTo("id", id).findFirst().apply { + realm.where(Counter::class.java).equalTo("id", id).findFirst().apply { count++ } } @@ -30,7 +29,7 @@ fun minus(id: Int) { realm.executeTransaction { - query.equalTo("id", id).findFirst().apply { + realm.where(Counter::class.java).equalTo("id", id).findFirst().apply { if (count > 0) count-- } @@ -39,19 +38,18 @@ fun reset(id: Int) { realm.executeTransaction { - query.equalTo("id", id).findFirst().apply { + realm.where(Counter::class.java).equalTo("id", id).findFirst().apply { count = 0 } } } override fun findAll(): RealmResults { - return query.findAll() + return realm.where(Counter::class.java).findAll() } fun getNextId(): Int { - if (query.count() == 0L) - return 0 - return query.count().toInt() + 1 + val results = realm.where(Counter::class.java).findAll() + return results.count() } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/overlaymulticounter/viewmodel/OverlayCounterViewModel.kt b/app/src/main/kotlin/jackall/overlaymulticounter/viewmodel/OverlayCounterViewModel.kt index 6250afd..8c9af86 100644 --- a/app/src/main/kotlin/jackall/overlaymulticounter/viewmodel/OverlayCounterViewModel.kt +++ b/app/src/main/kotlin/jackall/overlaymulticounter/viewmodel/OverlayCounterViewModel.kt @@ -4,6 +4,7 @@ import android.databinding.BindingAdapter import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.RecyclerView +import android.view.View import io.realm.OrderedRealmCollectionChangeListener import io.realm.RealmResults import jackall.overlaymulticounter.App @@ -21,6 +22,7 @@ var counterAdapter: CounterAdapter? = null var counterRealmHelper = CounterRealmHelper() var realmChangeListener: OrderedRealmCollectionChangeListener> + var results: RealmResults? = null init { val items = ArrayList() @@ -32,15 +34,32 @@ counterAdapter?.remove(it) } } - counterRealmHelper.findAll().apply { - forEachIndexed { index, counter -> - items.add(CounterItemViewModel(counter, this@OverlayCounterViewModel as CounterContract)) - } - addChangeListener(realmChangeListener) + results = counterRealmHelper.findAll() + results?.forEachIndexed { index, counter -> + items.add(CounterItemViewModel(counter, this@OverlayCounterViewModel as CounterContract)) } + results?.addChangeListener(realmChangeListener) counterAdapter = CounterAdapter(App.get(), items) } + fun onClickAdd(view: View) { + counterRealmHelper.insert( + Counter( + id = counterRealmHelper.getNextId(), + title = "Counter${counterRealmHelper.getNextId()}", + count = 0 + ) + ) + } + + fun onClickRemove(view: View) { + + } + + fun onClickResetAll(view: View) { + + } + override fun plus(id: Int) { counterRealmHelper.plus(id) } diff --git a/app/src/main/res/layout/overlay_counter.xml b/app/src/main/res/layout/overlay_counter.xml index 837b4ee..51aa833 100644 --- a/app/src/main/res/layout/overlay_counter.xml +++ b/app/src/main/res/layout/overlay_counter.xml @@ -45,6 +45,7 @@ android:layout_width="@dimen/overlay_counter_button_width" android:layout_height="wrap_content" android:layout_marginStart="@dimen/overlay_layout_margin" + android:onClick="@{counterViewModel.onClickAdd}" android:text="@string/add" android:textSize="@dimen/overlay_counter_text_size" app:layout_constraintStart_toStartOf="parent" @@ -54,6 +55,7 @@ android:id="@+id/overlay_counter_remove" android:layout_width="@dimen/overlay_counter_button_width" android:layout_height="wrap_content" + android:onClick="@{counterViewModel.onClickRemove}" android:text="@string/remove" android:textSize="@dimen/overlay_counter_text_size" app:layout_constraintStart_toEndOf="@id/overlay_counter_add" @@ -62,6 +64,7 @@