OSDN Git Service

ボタン押下処理をリファクタリングする。
[gokigen/A01c.git] / wear / src / main / java / jp / sfjp / gokigen / a01c / liveview / button / PushedArea1.java
1 package jp.sfjp.gokigen.a01c.liveview.button;
2
3 import android.content.Context;
4 import android.content.SharedPreferences;
5 import android.support.v7.preference.PreferenceManager;
6
7 import jp.sfjp.gokigen.a01c.IShowInformation;
8 import jp.sfjp.gokigen.a01c.liveview.ICameraFeatureDispatcher;
9
10 class PushedArea1 implements IPushedButton
11 {
12     private final SharedPreferences preferences;
13     private final ICameraFeatureDispatcher dispatcher;
14
15     PushedArea1(Context context, ICameraFeatureDispatcher dispatcher)
16     {
17         preferences = PreferenceManager.getDefaultSharedPreferences(context);
18         this.dispatcher = dispatcher;
19     }
20
21     @Override
22     public boolean pushedButton(boolean isLongClick)
23     {
24         int defaultAction = ICameraFeatureDispatcher.FEATURE_CHANGE_TAKEMODE;
25         String preference_action_id = ICameraFeatureDispatcher.ACTION_AREA1;
26         if (isLongClick)
27         {
28             preference_action_id = preference_action_id + ICameraFeatureDispatcher.ACTION_SECOND_CHOICE;
29             defaultAction = ICameraFeatureDispatcher.FEATURE_CHANGE_TAKEMODE_REVERSE;
30         }
31         String takeMode = dispatcher.getTakeMode();
32         switch (takeMode)
33         {
34             case "P":
35                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_P;
36                 break;
37
38             case "A":
39                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_A;
40                 break;
41
42             case "S":
43                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_S;
44                 break;
45
46             case "M":
47                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_M;
48                 break;
49
50             case "ART":
51                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_ART;
52                 break;
53
54             case "iAuto":
55                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_IAUTO;
56                 break;
57
58             case "Movie":
59                 preference_action_id = preference_action_id + ICameraFeatureDispatcher.MODE_MOVIE;
60                 break;
61
62             default:
63                 break;
64         }
65         return (dispatcher.dispatchAction(IShowInformation.AREA_1, preferences.getInt(preference_action_id, defaultAction)));
66     }
67 }