OSDN Git Service

詳細タイムを表示しているところに、編集メニューを追加。
[gokigen/JoggingTimer.git] / wear / src / main / java / net / osdn / gokigen / joggingtimer / recorddetail / DetailActivity.java
1 package net.osdn.gokigen.joggingtimer.recorddetail;
2
3 import android.os.Bundle;
4 import android.support.v7.widget.DividerItemDecoration;
5 import android.support.wear.widget.WearableLinearLayoutManager;
6 import android.support.wear.widget.WearableRecyclerView;
7 import android.support.wear.widget.drawer.WearableActionDrawerView;
8 import android.support.wearable.activity.WearableActivity;
9 import android.util.Log;
10 import android.view.MenuItem;
11 import android.widget.Toast;
12
13 import net.osdn.gokigen.joggingtimer.R;
14
15 public class DetailActivity extends WearableActivity implements RecordDetailSetup.IDatabaseReadyNotify, MenuItem.OnMenuItemClickListener
16 {
17     private final String TAG = toString();
18     public static final String INTENT_EXTRA_DATA_ID = "Detail.dataId";
19
20     private RecordDetailAdapter detailAdapter = null;
21     private RecordDetailSetup setupper = null;
22
23     private WearableActionDrawerView actionDrawerView = null;
24
25     /**
26      *
27      */
28     @Override
29     protected void onCreate(Bundle savedInstanceState)
30     {
31         super.onCreate(savedInstanceState);
32         Log.v(TAG, "onCreate()");
33
34         setContentView(R.layout.activity_detail);
35
36         // Enables Always-on
37         setAmbientEnabled();
38
39         try
40         {
41             WearableRecyclerView view = findViewById(R.id.recycler_detail_view);
42             detailAdapter = new RecordDetailAdapter();
43             WearableLinearLayoutManager layoutManager = new WearableLinearLayoutManager(this);
44
45             view.setCircularScrollingGestureEnabled(getResources().getConfiguration().isScreenRound());
46
47             DividerItemDecoration dividerDecoration = new DividerItemDecoration(view.getContext(), layoutManager.getOrientation());
48
49             view.addItemDecoration(dividerDecoration);
50             view.setLayoutManager(layoutManager);
51             view.setAdapter(detailAdapter);
52         }
53         catch (Exception e)
54         {
55             e.printStackTrace();
56             detailAdapter = null;
57         }
58
59         // Bottom Action Drawer
60         actionDrawerView = findViewById(R.id.bottom_action_drawer);
61         actionDrawerView.getController().peekDrawer();
62         actionDrawerView.setOnMenuItemClickListener(this);
63
64     }
65
66     /**
67      *
68      */
69     @Override
70     protected void onSaveInstanceState(Bundle outState)
71     {
72         super.onSaveInstanceState(outState);
73     }
74
75     /**
76      *
77      */
78     @Override
79     protected void onRestoreInstanceState(Bundle savedInstanceState)
80     {
81         super.onRestoreInstanceState(savedInstanceState);
82     }
83
84     /**
85      *
86      */
87     @Override
88     protected void onResume()
89     {
90         super.onResume();
91         Log.v(TAG, "onResume() ");
92     }
93
94     /**
95      *
96      */
97     @Override
98     protected void onPause()
99     {
100         super.onPause();
101         Log.v(TAG, "onPause()");
102     }
103
104     /**
105      *
106      *
107      */
108     @Override
109     public void onStart()
110     {
111         super.onStart();
112         try
113         {
114             long indexId = getIntent().getLongExtra(INTENT_EXTRA_DATA_ID, -1);
115             Log.v(TAG, "onResume() " + indexId);
116
117             setupper = new RecordDetailSetup(this, indexId, this, detailAdapter);
118             setupper.setup();
119         }
120         catch (Exception e)
121         {
122             e.printStackTrace();
123         }
124     }
125
126     /**
127      *
128      *
129      */
130     @Override
131     public void onStop()
132     {
133         super.onStop();
134         Log.v(TAG, "onStop()");
135
136         try
137         {
138             if (setupper != null)
139             {
140                 setupper.closeDatabase();
141                 setupper = null;
142             }
143         }
144         catch (Exception e)
145         {
146             e.printStackTrace();
147         }
148         System.gc();
149     }
150
151     /**
152      *
153      *
154      */
155     @Override
156     public void onEnterAmbient(Bundle ambientDetails)
157     {
158         super.onEnterAmbient(ambientDetails);
159         Log.v(TAG, "onEnterAmbient()");
160     }
161
162     /**
163      *
164      *
165      */
166     @Override
167     public void onExitAmbient()
168     {
169         super.onExitAmbient();
170         Log.v(TAG, "onExitAmbient()");
171     }
172
173     /**
174      *
175      *
176      */
177     @Override
178     public void onUpdateAmbient()
179     {
180         super.onUpdateAmbient();
181         Log.v(TAG, "onUpdateAmbient()");
182     }
183
184     /**
185      *
186      *
187      */
188     @Override
189     public void databaseSetupFinished(boolean result)
190     {
191         Log.v(TAG, "databaseSetupFinished() : " + result);
192     }
193
194     /**
195      *
196      *
197      */
198     @Override
199     public boolean onMenuItemClick(MenuItem item)
200     {
201         Log.v(TAG, "onMenuItemClick(): " + item);
202
203         boolean ret = false;
204         final int itemId = item.getItemId();
205         String toastMessage = "";
206         switch (itemId)
207         {
208             case R.id.menu_edit_title:
209                 // タイトルの編集
210                 toastMessage = getString(R.string.action_edit_title);
211                 ret = true;
212                 break;
213
214             case R.id.menu_set_reference:
215                 // 現在のデータを基準値を設定する
216                 toastMessage = getString(R.string.action_set_reference);
217                 ret = true;
218                 break;
219
220             case R.id.menu_set_icon:
221                 // アイコンセレクタを表示して、設定する
222                 toastMessage = "SET ICON.(TBD)";
223                 break;
224
225             default:
226                 // 何もしない
227                 break;
228         }
229         try
230         {
231             actionDrawerView.getController().closeDrawer();
232
233             if (toastMessage.length() > 0)
234             {
235                 Toast toast = Toast.makeText(getApplicationContext(), toastMessage, Toast.LENGTH_SHORT);
236                 toast.show();
237             }
238         }
239         catch (Exception e)
240         {
241             e.printStackTrace();
242         }
243
244         return (ret);
245     }
246 }