MainActivity.java
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2011 Google Inc.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
00005  * use this file except in compliance with the License. You may obtain a copy of
00006  * the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00012  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
00013  * License for the specific language governing permissions and limitations under
00014  * the License.
00015  */
00016 
00017 package org.ros.android.android_tutorial_teleop;
00018 
00019 import com.google.common.collect.Lists;
00020 
00021 import android.os.Bundle;
00022 import android.view.Menu;
00023 import android.view.MenuInflater;
00024 import android.view.MenuItem;
00025 import org.ros.address.InetAddressFactory;
00026 import org.ros.android.RosActivity;
00027 import org.ros.android.view.VirtualJoystickView;
00028 import org.ros.android.view.visualization.VisualizationView;
00029 import org.ros.android.view.visualization.layer.CameraControlLayer;
00030 import org.ros.android.view.visualization.layer.LaserScanLayer;
00031 import org.ros.android.view.visualization.layer.Layer;
00032 import org.ros.android.view.visualization.layer.OccupancyGridLayer;
00033 import org.ros.android.view.visualization.layer.PathLayer;
00034 import org.ros.android.view.visualization.layer.PosePublisherLayer;
00035 import org.ros.android.view.visualization.layer.PoseSubscriberLayer;
00036 import org.ros.android.view.visualization.layer.RobotLayer;
00037 import org.ros.node.NodeConfiguration;
00038 import org.ros.node.NodeMainExecutor;
00039 
00047 public class MainActivity extends RosActivity {
00048 
00049   private VirtualJoystickView virtualJoystickView;
00050   private VisualizationView visualizationView;
00051 
00052   public MainActivity() {
00053     super("Teleop", "Teleop");
00054   }
00055 
00056   @Override
00057   public boolean onCreateOptionsMenu(Menu menu) {
00058     MenuInflater inflater = getMenuInflater();
00059     inflater.inflate(R.menu.settings_menu, menu);
00060     return true;
00061   }
00062 
00063   @Override
00064   public boolean onOptionsItemSelected(MenuItem item) {
00065     switch (item.getItemId()) {
00066       case R.id.virtual_joystick_snap:
00067         if (!item.isChecked()) {
00068           item.setChecked(true);
00069           virtualJoystickView.EnableSnapping();
00070         } else {
00071           item.setChecked(false);
00072           virtualJoystickView.DisableSnapping();
00073         }
00074         return true;
00075       default:
00076         return super.onOptionsItemSelected(item);
00077     }
00078   }
00079 
00080   @Override
00081   public void onCreate(Bundle savedInstanceState) {
00082     super.onCreate(savedInstanceState);
00083     setContentView(R.layout.main);
00084     virtualJoystickView = (VirtualJoystickView) findViewById(R.id.virtual_joystick);
00085     visualizationView = (VisualizationView) findViewById(R.id.visualization);
00086     visualizationView.getCamera().jumpToFrame("map");
00087     visualizationView.onCreate(Lists.<Layer>newArrayList(new CameraControlLayer(),
00088         new OccupancyGridLayer("map"), new PathLayer("move_base/NavfnROS/plan"), new PathLayer(
00089             "move_base_dynamic/NavfnROS/plan"), new LaserScanLayer("base_scan"),
00090         new PoseSubscriberLayer("simple_waypoints_server/goal_pose"), new PosePublisherLayer(
00091             "simple_waypoints_server/goal_pose"), new RobotLayer("base_footprint")));
00092   }
00093 
00094   @Override
00095   protected void init(NodeMainExecutor nodeMainExecutor) {
00096     visualizationView.init(nodeMainExecutor);
00097     NodeConfiguration nodeConfiguration =
00098         NodeConfiguration.newPublic(InetAddressFactory.newNonLoopback().getHostAddress(),
00099             getMasterUri());
00100     nodeMainExecutor
00101         .execute(virtualJoystickView, nodeConfiguration.setNodeName("virtual_joystick"));
00102     nodeMainExecutor.execute(visualizationView, nodeConfiguration.setNodeName("android/map_view"));
00103   }
00104 }


android_core
Author(s): Damon Kohler
autogenerated on Thu Jun 6 2019 21:20:07