/* * Copyright (C) 2009 University of Washington * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.commcare.dalvik.activities; import org.commcare.android.adapters.GenericMenuListAdapter; import org.commcare.android.framework.CommCareActivity; import org.commcare.android.framework.ManagedUi; import org.commcare.android.framework.UiElement; import org.commcare.dalvik.R; import org.commcare.dalvik.application.CommCareApplication; import org.commcare.suite.model.Entry; import org.commcare.suite.model.Menu; import org.commcare.util.CommCarePlatform; import org.commcare.util.CommCareSession; import org.commcare.util.SessionFrame; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; @ManagedUi(R.layout.screen_suite_menu) public class MenuList extends CommCareActivity implements OnItemClickListener { private CommCarePlatform platform; private GenericMenuListAdapter adapter; @UiElement(R.id.screen_suite_menu_list) private ListView list; /* * (non-Javadoc) * @see org.commcare.android.framework.CommCareActivity#onCreate(android.os.Bundle) */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); platform = CommCareApplication._().getCommCarePlatform(); String menuId = getIntent().getStringExtra(SessionFrame.STATE_COMMAND_ID); if(menuId==null){ menuId="root"; } adapter = new GenericMenuListAdapter(this,platform,menuId); refreshView(); list.setOnItemClickListener(this); } /* * (non-Javadoc) * @see org.commcare.android.framework.CommCareActivity#isTopNavEnabled() */ @Override protected boolean isTopNavEnabled() { return true; } /* * (non-Javadoc) * @see org.commcare.android.framework.CommCareActivity#getActivityTitle() */ @Override public String getActivityTitle() { //return adapter.getMenuTitle(); return null; } /** * Get form list from database and insert into view. */ private void refreshView() { list.setAdapter(adapter); } /* * (non-Javadoc) * @see android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long) * * Stores the path of selected form and finishes. */ @Override public void onItemClick(AdapterView listView, View view, int position, long id) { String commandId; Object value = listView.getAdapter().getItem(position); if(value instanceof Entry) { commandId = ((Entry)value).getCommandId(); } else { commandId = ((Menu)value).getId(); } // create intent for return and store path Intent i = new Intent(); i.putExtra(SessionFrame.STATE_COMMAND_ID, commandId); setResult(RESULT_OK, i); finish(); } }