package org.deviceconnect.android.deviceplugin.irkit; import android.app.Application; import android.util.SparseArray; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class IRKitApplication extends Application { /** * 検知したデバイス群. */ private List<IRKitDevice> mDevices; /** * IRKitのListViewの位置. */ private SparseArray<ListViewPosition> mListViewPosition = new SparseArray<ListViewPosition>(); /** * IRKiのデバイスを保持する. */ public void setIRKitDevices(final ConcurrentHashMap<String, IRKitDevice> devices) { if (mDevices != null) { mDevices.clear(); mDevices = null; } mDevices = new ArrayList<IRKitDevice>(); for (Map.Entry<String, IRKitDevice> device : devices.entrySet()) { mDevices.add(device.getValue()); } } /** * IRKiのデバイスを返す. * @return 検知したデバイス群 */ public List<IRKitDevice> getIRKitDevices() { return mDevices; } /** * 設定画面のページごとのListViewの位置を保持する. * @param page 設定画面のページ * @param pos ListViewのposition * @param offset ListViewのoffset */ public void setListViewPosition(final int page, final int pos, final int offset) { mListViewPosition.put(page, new ListViewPosition(pos, offset)); } /** * 設定画面のページごとのListViewの位置を返す. * @param page 設定画面のページ * @return */ public ListViewPosition getListViewPosition(final int page) { return mListViewPosition.get(page); } /** * ListViewの位置情報を削除する. */ public void removeAllListViewPostion() { mListViewPosition.clear(); } /** * ListViewの位置を保持するクラス. */ public class ListViewPosition { /** * ListViewのPosition. */ private int mPos; /** * ListViewのOffset. */ private int mOffset; /** * コンストラクタ. * @param pos Position * @param offset Offset */ public ListViewPosition(final int pos, final int offset) { mPos = pos; mOffset = offset + 10; } /** * positionの取得. * @return position */ public int getPosition() { return mPos; } /** * offsetの取得. * @return Offset */ public int getOffset() { return mOffset; } } }