Subversion Repositories ES

Compare Revisions

Last modification

Ignore whitespace Rev 4 → Rev 5

/trunk/src/ch/ffhs/converter/app/CurrenciesActivity.java
0,0 → 1,51
/*
* Copyright (C) 2008 The Android Open Source Project
*
* 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 ch.ffhs.converter.app;
 
// Need the following import to get access to the app resources, since this
// class is in a sub-package.
import android.app.Activity;
import android.os.Bundle;
import ch.ffhs.converter.R;
 
/**
* <h3>Dialog Activity</h3>
*
* <p>
* This demonstrates the how to write an activity that looks like a pop-up
* dialog with a custom theme using a different text color.
* </p>
*/
public class CurrenciesActivity extends Activity
{
/**
* Initialization of the Activity after it is first created. Must at least
* call {@link android.app.Activity#setContentView setContentView()} to
* describe what is to be displayed in the screen.
*/
@Override
protected void onCreate(Bundle savedInstanceState)
{
// Be sure to call the super class.
super.onCreate(savedInstanceState);
 
// See assets/res/any/layout/dialog_activity.xml for this
// view layout definition, which is being set here as
// the content of our screen.
this.setContentView(R.layout.custom_dialog_activity);
}
}
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: ch/ffhs/converter/app/LengthsActivity.java
===================================================================
--- ch/ffhs/converter/app/LengthsActivity.java (nonexistent)
+++ ch/ffhs/converter/app/LengthsActivity.java (revision 5)
@@ -0,0 +1,19 @@
+package ch.ffhs.converter.app;
+
+import ch.ffhs.converter.R;
+import ch.ffhs.converter.R.layout;
+import android.app.Activity;
+import android.os.Bundle;
+
+public class LengthsActivity extends Activity
+{
+ /** Called when the activity is first created. */
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ this.setContentView(R.layout.frm_laengen);
+ }
+
+}
/ch/ffhs/converter/app/LengthsActivity.java
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: ch/ffhs/converter/app/TemperaturesActivity.java
===================================================================
--- ch/ffhs/converter/app/TemperaturesActivity.java (nonexistent)
+++ ch/ffhs/converter/app/TemperaturesActivity.java (revision 5)
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * 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 ch.ffhs.converter.app;
+
+// Need the following import to get access to the app resources, since this
+// class is in a sub-package.
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.Window;
+import ch.ffhs.converter.R;
+
+/**
+ * <h3>Dialog Activity</h3>
+ *
+ * <p>
+ * This demonstrates the how to write an activity that looks like a pop-up
+ * dialog.
+ * </p>
+ */
+public class TemperaturesActivity extends Activity
+{
+ /**
+ * Initialization of the Activity after it is first created. Must at least
+ * call {@link android.app.Activity#setContentView setContentView()} to
+ * describe what is to be displayed in the screen.
+ */
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ // Be sure to call the super class.
+ super.onCreate(savedInstanceState);
+
+ this.requestWindowFeature(Window.FEATURE_LEFT_ICON);
+
+ // See assets/res/any/layout/dialog_activity.xml for this
+ // view layout definition, which is being set here as
+ // the content of our screen.
+ this.setContentView(R.layout.dialog_activity);
+
+ this.getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
+ android.R.drawable.ic_dialog_alert);
+ }
+}
/ch/ffhs/converter/app/TemperaturesActivity.java
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: ch/ffhs/converter/MenuActivity.java
===================================================================
--- ch/ffhs/converter/MenuActivity.java (revision 4)
+++ ch/ffhs/converter/MenuActivity.java (revision 5)
@@ -1,13 +1,147 @@
package ch.ffhs.converter;
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * 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.
+ */
-import android.app.Activity;
+
+
+import android.app.ListActivity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.os.Bundle;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
-public class MenuActivity extends Activity {
- /** Called when the activity is first created. */
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class MenuActivity extends ListActivity {
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
+
+ Intent intent = getIntent();
+ String path = intent.getStringExtra("ch.ffhs.converter.Path");
+
+ if (path == null) {
+ path = "";
+ }
+
+ setListAdapter(new SimpleAdapter(this, getData(path),
+ android.R.layout.simple_list_item_1, new String[] { "title" },
+ new int[] { android.R.id.text1 }));
+ getListView().setTextFilterEnabled(true);
}
-}
\ No newline at end of file
+
+ protected List getData(String prefix) {
+ List<Map> myData = new ArrayList<Map>();
+
+ Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
+ mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
+
+ PackageManager pm = getPackageManager();
+ List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
+
+ if (null == list)
+ return myData;
+
+ String[] prefixPath;
+
+ if (prefix.equals("")) {
+ prefixPath = null;
+ } else {
+ prefixPath = prefix.split("/");
+ }
+
+ int len = list.size();
+
+ Map<String, Boolean> entries = new HashMap<String, Boolean>();
+
+ for (int i = 0; i < len; i++) {
+ ResolveInfo info = list.get(i);
+ CharSequence labelSeq = info.loadLabel(pm);
+ String label = labelSeq != null
+ ? labelSeq.toString()
+ : info.activityInfo.name;
+
+ if (prefix.length() == 0 || label.startsWith(prefix)) {
+
+ String[] labelPath = label.split("/");
+
+ String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
+
+ if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
+ addItem(myData, nextLabel, activityIntent(
+ info.activityInfo.applicationInfo.packageName,
+ info.activityInfo.name));
+ } else {
+ if (entries.get(nextLabel) == null) {
+ addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
+ entries.put(nextLabel, true);
+ }
+ }
+ }
+ }
+
+ Collections.sort(myData, sDisplayNameComparator);
+
+ return myData;
+ }
+
+ private final static Comparator<Map> sDisplayNameComparator = new Comparator<Map>() {
+ private final Collator collator = Collator.getInstance();
+
+ public int compare(Map map1, Map map2) {
+ return collator.compare(map1.get("title"), map2.get("title"));
+ }
+ };
+
+ protected Intent activityIntent(String pkg, String componentName) {
+ Intent result = new Intent();
+ result.setClassName(pkg, componentName);
+ return result;
+ }
+
+ protected Intent browseIntent(String path) {
+ Intent result = new Intent();
+ result.setClass(this, MenuActivity.class);
+ result.putExtra("ch.ffhs.converter.Path", path);
+ return result;
+ }
+
+ protected void addItem(List<Map> data, String name, Intent intent) {
+ Map<String, Object> temp = new HashMap<String, Object>();
+ temp.put("title", name);
+ temp.put("intent", intent);
+ data.add(temp);
+ }
+
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ Map map = (Map) l.getItemAtPosition(position);
+
+ Intent intent = (Intent) map.get("intent");
+ startActivity(intent);
+ }
+
+}
/trunk/src/ch/ffhs/converter/ConverterApplication.java
0,0 → 1,52
/*
* Copyright (C) 2007 The Android Open Source Project
*
* 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 ch.ffhs.converter;
 
import android.app.Application;
import android.preference.PreferenceManager;
 
/**
* This is an example of a {@link android.app.Application} class. Ordinarily you
* would use
* a class like this as a central repository for information that might be
* shared between multiple
* activities.
*
* In this case, we have not defined any specific work for this Application.
*
* See samples/ApiDemos/tests/src/ch.ffhs.converter/ApiDemosApplicationTests for
* an example
* of how to perform unit tests on an Application object.
*/
public class ConverterApplication extends Application
{
 
@Override
public void onCreate()
{
/*
* This populates the default values from the preferences XML file. See
* {@link DefaultValues} for more details.
*/
PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
}
 
@Override
public void onTerminate()
{
}
}
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property