switch to alsa.omap3 module
[android_pandora.git] / apps / oi-filemanager / FileManager / src / org / openintents / filemanager / DownloadAppDialog.java
CommitLineData
27a4fda1 1/* \r
2 * Copyright (C) 2007-2011 OpenIntents.org\r
3 *\r
4 * Licensed under the Apache License, Version 2.0 (the "License");\r
5 * you may not use this file except in compliance with the License.\r
6 * You may obtain a copy of the License at\r
7 *\r
8 * http://www.apache.org/licenses/LICENSE-2.0\r
9 *\r
10 * Unless required by applicable law or agreed to in writing, software\r
11 * distributed under the License is distributed on an "AS IS" BASIS,\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 * See the License for the specific language governing permissions and\r
14 * limitations under the License.\r
15 */\r
16\r
17package org.openintents.filemanager;\r
18\r
19import android.app.AlertDialog;\r
20import android.app.Dialog;\r
21import android.content.ActivityNotFoundException;\r
22import android.content.Context;\r
23import android.content.DialogInterface;\r
24import android.content.DialogInterface.OnClickListener;\r
25import android.content.Intent;\r
26import android.net.Uri;\r
27import android.util.Log;\r
28import android.view.View;\r
29import android.widget.Toast;\r
30\r
31/**\r
32 * @version 2009-02-04\r
33 * @version 2011-02-07: Allow for string arguments.\r
34 * @author Peli\r
35 */\r
36public class DownloadAppDialog extends AlertDialog implements OnClickListener {\r
37 private static final String TAG = "StartSaveActivity";\r
38\r
39 Context mContext;\r
40 String mDownloadAppName;\r
41 String mDownloadPackageName;\r
42 String mDownloadWebsite;\r
43 String mMessageText;\r
44 \r
45 boolean mMarketAvailable;\r
46 \r
47 public DownloadAppDialog(Context context) {\r
48 super(context);\r
49 mContext = context;\r
50 }\r
51 \r
52 public DownloadAppDialog(Context context, int message_id, int download_name_id, int download_package_id, int download_website_id) {\r
53 super(context);\r
54 mContext = context;\r
55 set(message_id, download_name_id, download_package_id, download_website_id);\r
56 }\r
57 \r
58 public DownloadAppDialog(Context context, String message, String download_name, String download_package, String download_website) {\r
59 super(context);\r
60 mContext = context;\r
61 set(message, download_name, download_package, download_website);\r
62 }\r
63\r
64 protected void set(int message_id, int download_name_id,\r
65 int download_package_id, int download_website_id) {\r
66 String message = mContext.getString(message_id);\r
67 String download_name = mContext.getString(download_name_id);\r
68 String download_package = mContext.getString(download_package_id);\r
69 String download_website = mContext.getString(download_website_id);\r
70 set(message, download_name, download_package, download_website);\r
71 }\r
72 \r
73 protected void set(String message, String download_name,\r
74 String download_package, String download_website) {\r
75 mDownloadAppName = download_name;\r
76 mDownloadPackageName = download_package;\r
77 mDownloadWebsite = download_website;\r
78 \r
79 mMarketAvailable = MarketUtils.isMarketAvailable(mContext, mDownloadPackageName);\r
80 \r
81 StringBuilder sb = new StringBuilder();\r
82 sb.append(message);\r
83 sb.append(" ");\r
84 if (mMarketAvailable) {\r
85 sb.append(mContext.getString(R.string.oi_distribution_download_market_message, \r
86 mDownloadAppName));\r
87 } else {\r
88 sb.append(mContext.getString(R.string.oi_distribution_download_message, \r
89 mDownloadAppName));\r
90 }\r
91 mMessageText = sb.toString();\r
92 setMessage(mMessageText);\r
93\r
94 setTitle(mContext.getString(R.string.oi_distribution_download_title,\r
95 mDownloadAppName));\r
96 \r
97 setButton(mContext.getText(R.string.oi_distribution_download_market), this);\r
98 setButton2(mContext.getText(R.string.oi_distribution_download_web), this);\r
99 setButton3(mContext.getText(android.R.string.cancel), this);\r
100 }\r
101 \r
102 public void onClick(DialogInterface dialog, int which) {\r
103 Intent intent;\r
104 \r
105 if (which == BUTTON1) {\r
106 intent = MarketUtils.getMarketDownloadIntent(mDownloadPackageName);\r
107 startSaveActivity(intent);\r
108 } else if (which == BUTTON2) {\r
109 intent = new Intent(Intent.ACTION_VIEW);\r
110 Uri uri= Uri.parse(mDownloadWebsite);\r
111 intent.setData(uri);\r
112 startSaveActivity(intent);\r
113 }\r
114 }\r
115\r
116 public static void onPrepareDialog(Context context, Dialog dialog) {\r
117 DownloadAppDialog d = (DownloadAppDialog) dialog;\r
118 \r
119 boolean has_android_market = MarketUtils.isMarketAvailable(context, d.mDownloadPackageName);\r
120\r
121 dialog.findViewById(android.R.id.button1).setVisibility(\r
122 has_android_market ? View.VISIBLE : View.GONE);\r
123 }\r
124 \r
125 /**\r
126 * Start an activity but prompt a toast if activity is not found\r
127 * (instead of crashing).\r
128 * \r
129 * @param context\r
130 * @param intent\r
131 */\r
132 public void startSaveActivity(Intent intent) {\r
133 try {\r
134 mContext.startActivity(intent);\r
135 } catch (ActivityNotFoundException e) {\r
136 Toast.makeText(mContext,\r
137 R.string.oi_distribution_update_error,\r
138 Toast.LENGTH_SHORT).show();\r
139 Log.e(TAG, "Error starting second activity.", e);\r
140 }\r
141 }\r
142}\r