merge in OI distribution
[android_pandora.git] / apps / oi-filemanager / FileManager / src / org / openintents / filemanager / EulaActivity.java
diff --git a/apps/oi-filemanager/FileManager/src/org/openintents/filemanager/EulaActivity.java b/apps/oi-filemanager/FileManager/src/org/openintents/filemanager/EulaActivity.java
new file mode 100644 (file)
index 0000000..f01e3d9
--- /dev/null
@@ -0,0 +1,191 @@
+/* \r
+ * Copyright (C) 2007-2011 OpenIntents.org\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.openintents.filemanager;\r
+\r
+\r
+import java.io.BufferedReader;\r
+import java.io.IOException;\r
+import java.io.InputStreamReader;\r
+\r
+import org.openintents.util.VersionUtils;\r
+\r
+import android.app.Activity;\r
+import android.content.Intent;\r
+import android.content.SharedPreferences;\r
+import android.content.res.Resources;\r
+import android.os.Bundle;\r
+import android.preference.PreferenceManager;\r
+import android.text.TextUtils;\r
+import android.view.View;\r
+import android.widget.Button;\r
+import android.widget.ImageView;\r
+import android.widget.TextView;\r
+\r
+/**\r
+ * Displays the Eula for the first time, reading it from a raw resource.\r
+ * \r
+ * @author Peli\r
+ *\r
+ */\r
+public class EulaActivity extends Activity {\r
+       \r
+       Button mAgree;\r
+       Button mDisagree;\r
+       \r
+       String mLaunchPackage;\r
+       String mLaunchClass;\r
+       Intent mLaunchIntent;\r
+       \r
+       String mAppName;\r
+\r
+       TextView mText1;\r
+       TextView mText2;\r
+       TextView mText;\r
+       ImageView mImage;\r
+       \r
+       /** Called when the activity is first created. */\r
+       @Override\r
+       public void onCreate(Bundle icicle) {\r
+               super.onCreate(icicle);\r
+               \r
+               setContentView(R.layout.oi_distribution_eula);\r
+               \r
+               // Extras are provided by checkEula() below.\r
+               Intent i = getIntent();\r
+               Bundle b = i.getExtras();\r
+               mLaunchPackage = b.getString(EulaOrNewVersion.EXTRA_LAUNCH_ACTIVITY_PACKAGE);\r
+               mLaunchClass = b.getString(EulaOrNewVersion.EXTRA_LAUNCH_ACTIVITY_CLASS);\r
+               //mLaunchIntent \r
+               mLaunchIntent = b.getParcelable(EulaOrNewVersion.EXTRA_LAUNCH_ACTIVITY_INTENT);\r
+               \r
+               //mIntroContinue = (Button) findViewById(R.id.intro_continue);\r
+               mAgree = (Button) findViewById(R.id.button1);\r
+               mAgree.setOnClickListener(new View.OnClickListener() {\r
+                       public void onClick(View view) {\r
+                               accept();\r
+                       }\r
+               });\r
+               \r
+               mDisagree = (Button) findViewById(R.id.button2);\r
+               mDisagree.setOnClickListener(new View.OnClickListener() {\r
+                       public void onClick(View view) {\r
+                               refuse();\r
+                       }\r
+               });\r
+\r
+               mText1 = (TextView) findViewById(R.id.text1);\r
+               mText2 = (TextView) findViewById(R.id.text2);\r
+               mText = (TextView) findViewById(R.id.text);\r
+               mImage = (ImageView) findViewById(R.id.imageview);\r
+               \r
+               mAppName = VersionUtils.getApplicationName(this);\r
+               int iconRes = VersionUtils.getApplicationIcon(this);\r
+               \r
+               setTitle(mAppName);\r
+               mImage.setImageResource(iconRes);\r
+\r
+               String title = getString(R.string.oi_distribution_eula_title, \r
+                               mAppName);\r
+               String message = getString(R.string.oi_distribution_eula_message, \r
+                               mAppName);\r
+               \r
+               mText1.setText(title);\r
+               mText2.setText(message);\r
+               mText.setText(readTextFromRawResource(R.raw.license_short, false));\r
+       }\r
+       \r
+       \r
+       /**\r
+        * Accept EULA and proceed with main application.\r
+        */\r
+       void accept() {\r
+               EulaOrNewVersion.storeEulaAccepted(this);\r
+               \r
+               startOriginalActivity();\r
+       }\r
+\r
+\r
+\r
+\r
+       void startOriginalActivity() {\r
+               // Call the activity that originally called checkEula()\r
+               // or checkNewVersion()\r
+               Intent i;\r
+               if (mLaunchIntent != null) {\r
+                       i = mLaunchIntent;\r
+                       \r
+                       // Android 2.3: category LAUNCHER needs to be removed,\r
+                       // otherwise main activity is not called.\r
+                       i.removeCategory(Intent.CATEGORY_LAUNCHER);\r
+               } else {\r
+                       i = new Intent();\r
+                       i.setClassName(mLaunchPackage, mLaunchClass);\r
+               }\r
+               i.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);\r
+               startActivity(i);\r
+               finish();\r
+       }\r
+       \r
+       /**\r
+        * Refuse EULA.\r
+        */\r
+       void refuse() {\r
+               finish();\r
+       }\r
+\r
+       \r
+       /**\r
+        * Read license from raw resource.\r
+        * @param resourceid ID of the raw resource.\r
+        * @return\r
+        */\r
+       String readTextFromRawResource(int resourceid, boolean preserveLineBreaks) {\r
+\r
+               // Retrieve license from resource:\r
+               String license = "";\r
+               Resources resources = getResources();\r
+               \r
+               //Read in the license file as a big String\r
+               BufferedReader in\r
+                  = new BufferedReader(new InputStreamReader(\r
+                               resources.openRawResource(resourceid)));\r
+               String line;\r
+               StringBuilder sb = new StringBuilder();\r
+               try {\r
+                       while ((line = in.readLine()) != null) { // Read line per line.\r
+                               if (TextUtils.isEmpty(line)) {\r
+                                       // Empty line: Leave line break\r
+                                       sb.append("\n\n");\r
+                               } else {\r
+                                       sb.append(line);\r
+                                       if (preserveLineBreaks) {\r
+                                               sb.append("\n");\r
+                                       } else {\r
+                                               sb.append(" ");\r
+                                       }\r
+                               }\r
+                       }\r
+                       license = sb.toString();\r
+               } catch (IOException e) {\r
+                       //Should not happen.\r
+                       e.printStackTrace();\r
+               }\r
+               \r
+       \r
+       return license;\r
+       }\r
+}\r