商品履歴

 買本では検索するたびに一覧が更新されます。そのため、さっきのあれをもう一度見たいというときには再度検索しないといけなくてこれが面倒。そこで、一度詳細画面を表示した商品の履歴を見られるようにするための機能を作成しています。
 これが簡単そうで意外と大変だったんですよ。何が大変だったかというと、履歴は最近見たもの順で見せたいので基本的には画面の先頭に情報を足して行くのですが、履歴から詳細画面を表示した場合は履歴の順番を変更しないというところ。
 言葉の通りに作れば簡単にできそうですが、詳細画面を表示するときにキャッシュデータがないとAmazonに対して詳細情報の検索をしなくてはいけなくて、この検索部分が別スレッド動くようになっていて詳細画面を更新するところまでやるようになっているんです。この時に履歴の更新をしてしまうので履歴から詳細画面を表示したのに履歴の順番を変更してしまうという。結局、スレッドに対して検索終了後どのメソッドで詳細画面の表示を行うかという情報*1を渡して、履歴からの場合は履歴の順番を変更しない詳細画面表示を実行することにしました。
 キャッシュデータがないことは基本的にはないのですが、ある程度時間が経ったキャッシュデータは無効にしているのでこんな回りくどいことをやらされています。これは規約なのでしようがない。

*1:procedure of object