1 package net.osdn.gokigen.joggingtimer.recorddetail;
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;
13 import net.osdn.gokigen.joggingtimer.R;
14 import net.osdn.gokigen.joggingtimer.storage.ITimeEntryDatabase;
15 import net.osdn.gokigen.joggingtimer.utilities.CreateModelDataDialog;
16 import net.osdn.gokigen.joggingtimer.utilities.DataEditDialog;
18 public class DetailActivity extends WearableActivity implements RecordDetailSetup.IDatabaseReadyNotify, MenuItem.OnMenuItemClickListener, DataEditDialog.Callback
20 private final String TAG = toString();
21 public static final String INTENT_EXTRA_DATA_ID = "Detail.dataId";
23 private RecordDetailAdapter detailAdapter = null;
24 private RecordDetailSetup setupper = null;
26 private WearableActionDrawerView actionDrawerView = null;
32 protected void onCreate(Bundle savedInstanceState)
34 super.onCreate(savedInstanceState);
35 Log.v(TAG, "onCreate()");
37 setContentView(R.layout.activity_detail);
44 WearableRecyclerView view = findViewById(R.id.recycler_detail_view);
45 detailAdapter = new RecordDetailAdapter();
46 WearableLinearLayoutManager layoutManager = new WearableLinearLayoutManager(this);
48 view.setCircularScrollingGestureEnabled(getResources().getConfiguration().isScreenRound());
50 DividerItemDecoration dividerDecoration = new DividerItemDecoration(view.getContext(), layoutManager.getOrientation());
52 view.addItemDecoration(dividerDecoration);
53 view.setLayoutManager(layoutManager);
54 view.setAdapter(detailAdapter);
62 // Bottom Action Drawer
63 actionDrawerView = findViewById(R.id.bottom_action_drawer);
64 actionDrawerView.getController().peekDrawer();
65 actionDrawerView.setOnMenuItemClickListener(this);
73 protected void onSaveInstanceState(Bundle outState)
75 super.onSaveInstanceState(outState);
82 protected void onRestoreInstanceState(Bundle savedInstanceState)
84 super.onRestoreInstanceState(savedInstanceState);
91 protected void onResume()
94 Log.v(TAG, "onResume() ");
101 protected void onPause()
104 Log.v(TAG, "onPause()");
112 public void onStart()
117 long indexId = getIntent().getLongExtra(INTENT_EXTRA_DATA_ID, -1);
118 Log.v(TAG, "onResume() " + indexId);
120 setupper = new RecordDetailSetup(this, indexId, this, detailAdapter);
137 Log.v(TAG, "onStop()");
141 if (setupper != null)
143 setupper.closeDatabase();
159 public void onEnterAmbient(Bundle ambientDetails)
161 super.onEnterAmbient(ambientDetails);
162 Log.v(TAG, "onEnterAmbient()");
170 public void onExitAmbient()
172 super.onExitAmbient();
173 Log.v(TAG, "onExitAmbient()");
181 public void onUpdateAmbient()
183 super.onUpdateAmbient();
184 Log.v(TAG, "onUpdateAmbient()");
192 public void databaseSetupFinished(boolean result)
194 Log.v(TAG, "databaseSetupFinished() : " + result);
202 public void updatedIndexData(final boolean isIconOnly)
204 Log.v(TAG, "selectedReferenceData() : " + isIconOnly);
205 runOnUiThread(new Runnable() {
213 title = getString(R.string.action_set_reference);
217 title = getString(R.string.action_edited_data);
219 Toast toast = Toast.makeText(getApplicationContext(), title, Toast.LENGTH_SHORT);
235 public boolean onMenuItemClick(MenuItem item)
237 Log.v(TAG, "onMenuItemClick(): " + item);
240 final int itemId = item.getItemId();
241 String toastMessage = "";
244 case R.id.menu_edit_title:
246 DataEditDialog dialog = new DataEditDialog(this);
247 dialog.show(R.drawable.ic_android_black_24dp, "", this);
250 case R.id.menu_create_model:
251 CreateModelDataDialog dialog2 = new CreateModelDataDialog(this);
252 dialog2.show(true, getString(R.string.information_time_picker), setupper.getCreateModelDataCallback(ITimeEntryDatabase.DONT_USE_ID, ITimeEntryDatabase.DONT_USE_ID), 0);
255 case R.id.menu_set_reference:
257 setupper.setReferenceData();
267 actionDrawerView.getController().closeDrawer();
269 if (toastMessage.length() > 0)
271 Toast toast = Toast.makeText(getApplicationContext(), toastMessage, Toast.LENGTH_SHORT);
284 public void dataEdited(int iconId, String title)
286 Log.v(TAG, "iconId : " + iconId + " title : '"+ title +"'");
288 setupper.setIndexData(title, iconId);
289 WearableRecyclerView view = findViewById(R.id.recycler_detail_view);
290 view.postInvalidate();
299 public void cancelled()
303 WearableRecyclerView view = findViewById(R.id.recycler_detail_view);
304 view.postInvalidate();