diff --git a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/MainActivity.kt b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/MainActivity.kt index 5b3623a..bcecd21 100644 --- a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/MainActivity.kt +++ b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/MainActivity.kt @@ -12,7 +12,7 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.main_activity) if (savedInstanceState == null) { supportFragmentManager.beginTransaction() - .replace(R.id.container, OrderInputFragment.newInstance()) + .replace(R.id.container, OrderInputFragment.newInstance("8704")) .commitNow() } } diff --git a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputFragment.kt b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputFragment.kt index bf12832..554b97e 100644 --- a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputFragment.kt +++ b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputFragment.kt @@ -16,6 +16,13 @@ class OrderInputFragment : Fragment() { companion object { fun newInstance() = OrderInputFragment() + fun newInstance(symbol: String): OrderInputFragment { + val args = Bundle() + args.putString("symbol", symbol) + val fragment = OrderInputFragment() + fragment.arguments = args + return fragment + } } private lateinit var viewModel: OrderInputViewModel @@ -29,6 +36,9 @@ class OrderInputFragment : Fragment() { super.onActivityCreated(savedInstanceState) viewModel = ViewModelProviders.of(activity!!).get(OrderInputViewModel::class.java) // TODO: Use the ViewModel + arguments?.getString("symbol")?.let { + viewModel.init(it) + } viewModel.getOrderModel().observe(this, Observer { orderForm -> orderForm?.run { tvSymbolName.text = symbol.name @@ -71,6 +81,7 @@ class OrderInputFragment : Fragment() { btLimit.isChecked = false btMarket.isChecked = true togglePriceType() + viewModel.resetPrice() } btLimit.setOnClickListener { btLimit.isChecked = true diff --git a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputViewModel.kt b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputViewModel.kt index fcd4e87..9a322a1 100644 --- a/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputViewModel.kt +++ b/exampleAppJapan/src/main/kotlin/it/trade/android/japanapp/ui/orderinput/OrderInputViewModel.kt @@ -56,6 +56,24 @@ class OrderInputViewModel : ViewModel() { } } + fun init(symbol: String?) { + // TODO need a cleaner way to initialize the OrderForm + if (symbol != null) { + if (!this::orderForm.isInitialized || (this::orderForm.isInitialized && symbol != orderForm.value?.symbol?.symbol)) { + orderForm = MutableLiveData() + orderForm.value = OrderForm( + TradeItSDKHolder.getSymbolProvider().getJapanSymbol(symbol), + TradeItSDKHolder.getBuyingPower()) + } + } + } + + fun resetPrice() { + val value = orderForm.value + orderForm.value = value?.apply { + orderInfo = orderInfo.copy(limitPrice = symbol.price) + } + } } class OrderForm(val symbol: JapanSymbol, val buyingPower: BuyingPower) { @@ -94,13 +112,13 @@ class OrderForm(val symbol: JapanSymbol, val buyingPower: BuyingPower) { //TODO temp solutions below interface JapanSymbolProvider { - fun getJapanSymbol(symol: String): JapanSymbol + fun getJapanSymbol(symbol: String): JapanSymbol } class SampleJapanSymbol : JapanSymbolProvider { - override fun getJapanSymbol(symol: String): JapanSymbol { + override fun getJapanSymbol(symbol: String): JapanSymbol { return JapanSymbol("カブドットコム証券(株)", - "8703", "東証1部", 386.0, + symbol, "東証1部", 386.0, 384.0, 286.0, 486.0, 100) } } diff --git a/exampleAppJapan/src/main/res/layout/order_input_fragment.xml b/exampleAppJapan/src/main/res/layout/order_input_fragment.xml index b7cf08c..ec14512 100644 --- a/exampleAppJapan/src/main/res/layout/order_input_fragment.xml +++ b/exampleAppJapan/src/main/res/layout/order_input_fragment.xml @@ -190,11 +190,12 @@ @@ -342,8 +343,8 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" - app:layout_constraintEnd_toEndOf="@+id/orderInfo" - app:layout_constraintStart_toStartOf="@+id/orderInfo" + app:layout_constraintEnd_toEndOf="@+id/quantityInput" + app:layout_constraintStart_toStartOf="@+id/quantityInput" app:layout_constraintTop_toBottomOf="@+id/divider4">