311c7b126be34799e60a0b654d0ab875667fcd66
[FreeShisen] / src / de / cwde / freeshisen / ShisenShoActivity.java
1 package de.cwde.freeshisen;
2
3 import android.app.Activity;
4 import android.app.AlertDialog;
5 import android.content.Intent;
6 import android.content.pm.PackageInfo;
7 import android.content.pm.PackageManager;
8 import android.content.pm.PackageManager.NameNotFoundException;
9 import android.os.Bundle;
10 import android.preference.PreferenceManager;
11 import android.text.SpannableString;
12 import android.text.util.Linkify;
13 import android.view.Menu;
14 import android.view.MenuInflater;
15 import android.view.MenuItem;
16 import android.view.ViewGroup;
17 import android.view.Window;
18 import android.widget.TextView;
19
20 public class ShisenShoActivity extends Activity {
21 private ShisenShoView view;
22
23 /** Called when the activity is first created. */
24 @Override
25 public void onCreate(Bundle savedInstanceState) {
26 super.onCreate(savedInstanceState);
27
28 PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
29
30 requestWindowFeature(Window.FEATURE_NO_TITLE);
31
32 view = ShisenSho.app().getView();
33 ShisenSho.app().activity = this;
34 setContentView(view);
35 }
36
37 @Override
38 protected void onDestroy() {
39 ViewGroup vg = (ViewGroup)(view.getParent());
40 vg.removeView(view);
41 ShisenSho.app().activity = null;
42 super.onDestroy();
43 }
44
45 @Override
46 protected void onPause() {
47 if (view!=null) {
48 view.pauseTime();
49 }
50 super.onPause();
51 }
52
53 @Override
54 protected void onResume() {
55 super.onResume();
56 if (view!=null) {
57 view.resumeTime();
58 }
59 }
60
61 @Override
62 public boolean onCreateOptionsMenu(Menu menu) {
63 MenuInflater inflater = getMenuInflater();
64 inflater.inflate(R.menu.menu, menu);
65 return true;
66 }
67
68 @Override
69 public boolean onOptionsItemSelected(MenuItem item) {
70 // Handle item selection
71 switch (item.getItemId()) {
72 case R.id.hint:
73 case R.id.undo:
74 case R.id.clean:
75 return view.onOptionsItemSelected(item);
76 case R.id.hiscore:
77 startActivity(new Intent("de.cwde.freeshisen.HISCORE", null));
78 return true;
79 case R.id.options:
80 startActivity(new Intent("de.cwde.freeshisen.SETTINGS", null));
81 return true;
82 case R.id.about:
83 onAboutActivate();
84 return true;
85 default:
86 return super.onOptionsItemSelected(item);
87 }
88 }
89
90 private void onAboutActivate() {
91 // Try to load the a package matching the name of our own package
92 PackageInfo pInfo;
93 try {
94 pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
95 String appname = getString(R.string.app_name);
96 String aboutTitle = "About " + appname;
97 String versionString = appname + " "+ pInfo.versionName;
98 String aboutText = getString(R.string.aboutText);
99
100 // Set up the TextView
101 final TextView message = new TextView(this);
102 // We'll use a spannablestring to be able to make links clickable
103 final SpannableString s = new SpannableString(aboutText);
104
105 // Set some padding
106 message.setPadding(5, 5, 5, 5);
107 // Set up the final string
108 message.setText(versionString + s);
109 // Now linkify the text
110 Linkify.addLinks(message, Linkify.ALL);
111
112 new AlertDialog.Builder(this)
113 .setTitle(aboutTitle)
114 .setCancelable(true)
115 .setIcon(R.drawable.icon)
116 .setPositiveButton(android.R.string.ok, null)
117 .setView(message).create()
118 .show();
119 } catch (NameNotFoundException e) {
120 e.printStackTrace();
121 }
122 }
123 }
Impressum, Datenschutz