package org.softeg.slartus.forpdaplus;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import org.softeg.slartus.forpdaapi.TopicApi;
import org.softeg.slartus.forpdaapi.devdb.NewDevDbApi;
import org.softeg.slartus.forpdaapi.search.SearchSettings;
import org.softeg.slartus.forpdacommon.NotReportException;
import org.softeg.slartus.forpdacommon.PatternExtensions;
import org.softeg.slartus.forpdacommon.UrlExtensions;
import org.softeg.slartus.forpdaplus.classes.ForumUser;
import org.softeg.slartus.forpdaplus.common.AppLog;
import org.softeg.slartus.forpdaplus.common.Email;
import org.softeg.slartus.forpdaplus.controls.imageview.ImgViewer;
import org.softeg.slartus.forpdaplus.devdb.ParentFragment;
import org.softeg.slartus.forpdaplus.download.DownloadsService;
import org.softeg.slartus.forpdaplus.fragments.ForumRulesFragment;
import org.softeg.slartus.forpdaplus.fragments.NewsFragment;
import org.softeg.slartus.forpdaplus.fragments.SpecialView;
import org.softeg.slartus.forpdaplus.fragments.profile.DeviceDelete;
import org.softeg.slartus.forpdaplus.fragments.profile.DeviceEdit;
import org.softeg.slartus.forpdaplus.fragments.profile.ProfileEditFragment;
import org.softeg.slartus.forpdaplus.fragments.profile.ProfileFragment;
import org.softeg.slartus.forpdaplus.fragments.qms.QmsChatFragment;
import org.softeg.slartus.forpdaplus.fragments.qms.QmsContactThemes;
import org.softeg.slartus.forpdaplus.fragments.topic.EditPostFragment;
import org.softeg.slartus.forpdaplus.fragments.topic.ThemeFragment;
import org.softeg.slartus.forpdaplus.listfragments.BricksListDialogFragment;
import org.softeg.slartus.forpdaplus.listfragments.DevDbCatalogFragment;
import org.softeg.slartus.forpdaplus.listfragments.DevDbModelsFragment;
import org.softeg.slartus.forpdaplus.listfragments.TopicAttachmentListFragment;
import org.softeg.slartus.forpdaplus.listfragments.TopicWritersListFragment;
import org.softeg.slartus.forpdaplus.listfragments.news.NewsListFragment;
import org.softeg.slartus.forpdaplus.listfragments.next.ForumFragment;
import org.softeg.slartus.forpdaplus.listfragments.next.UserReputationFragment;
import org.softeg.slartus.forpdaplus.listtemplates.BrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.DevDbCatalogBrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.DevDbModelsBrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.FavoritesBrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.ListCore;
import org.softeg.slartus.forpdaplus.listtemplates.NewsBrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.QmsContactsBrickInfo;
import org.softeg.slartus.forpdaplus.listtemplates.TopicWritersBrickInfo;
import org.softeg.slartus.forpdaplus.prefs.Preferences;
import org.softeg.slartus.forpdaplus.video.PlayerActivity;
import java.io.UnsupportedEncodingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//import org.softeg.slartus.forpdaplus.utils.LogUtil;
/**
* Created by IntelliJ IDEA.
* User: slartus
* Date: 17.01.12
* Time: 13:26
* To change this template use File | Settings | File Templates.
*/
public class IntentActivity extends MainActivity implements BricksListDialogFragment.IBricksListDialogCaller {
public static final String ACTION_SELECT_TOPIC = "org.softeg.slartus.forpdaplus.SELECT_TOPIC";
public static final String RESULT_TOPIC_ID = "org.softeg.slartus.forpdaplus.RESULT_TOPIC_ID";
@Override
public void onBricksListDialogResult(DialogInterface dialog, String dialogId,
BrickInfo brickInfo, Bundle args) {
dialog.dismiss();
MainActivity.showListFragment(brickInfo.getName(), args);
}
public static boolean checkSendAction(BricksListDialogFragment.IBricksListDialogCaller activity, final Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) {
Bundle extras = intent.getExtras();
// логи только в тему программы!
try {
if (extras != null && extras.containsKey(Intent.EXTRA_EMAIL)
&& extras.get(Intent.EXTRA_EMAIL) != null && Email.EMAIL.equals(extras.getStringArray(Intent.EXTRA_EMAIL)[0])) {
Toast.makeText(activity.getContext(), "Сообщение об ошибке отправлять только на email!", Toast.LENGTH_LONG).show();
return true;
}
} catch (Throwable ignored) {
}
BricksListDialogFragment.showDialog(activity, BricksListDialogFragment.CREATE_POST_ID,
ListCore.getBricksNames(ListCore.getCreatePostBricks()), extras);
return true;
}
return false;
}
public static Boolean isNews(String url) {
final Pattern pattern = PatternExtensions.compile("4pda.ru/\\d{4}/\\d{2}/\\d{2}/\\d+");
final Pattern pattern1 = PatternExtensions.compile("4pda.ru/\\w+/(?:older|newer)/\\d+");
return pattern.matcher(url).find() || pattern1.matcher(url).find();
}
public static Boolean isYoutube(String url) {
return PlayerActivity.isYoutube(url);
}
public static Boolean tryShowYoutube(Activity context, String url, Boolean finish) {
if (!isYoutube(url)) return false;
PlayerActivity.showYoutubeChoiceDialog(context, url);
return true;
}
public static Boolean isNewsList(String url) {
String[] patterns = {"4pda.ru/tag/.*", "4pda.ru/page/(\\d+)/", "4pda.ru/?$",
"4pda.ru/news", "4pda.ru/articles", "4pda.ru/software", "4pda.ru/games", "4pda.ru/reviews"};
for (String pattern : patterns) {
if (PatternExtensions.compile(pattern).matcher(url).find())
return true;
}
return false;
}
public static Boolean tryShowNewsList(Activity context, String url, Boolean finish) {
if (isNewsList(url)) {
Bundle args = new Bundle();
args.putString(NewsListFragment.NEWS_LIST_URL_KEY, url);
MainActivity.showListFragment(new NewsBrickInfo().getName(), args);
return true;
}
return false;
}
public static Boolean tryShowNews(Activity context, String url, Boolean finish) {
if (isNews(url)) {
MainActivity.addTab(url, NewsFragment.newInstance(url));
return true;
}
return false;
}
public static Boolean tryShowSpecial(Activity context, String url, Boolean finish) {
if (url.contains("special")) {
SpecialView.showSpecial(url);
return true;
}
return false;
}
public static boolean isTheme(Uri uri) {
if (!"4pda.ru".equals(uri.getHost()))
return false;
return
uri.getQueryParameter("showtopic") != null ||
("findpost".equals(uri.getQueryParameter("act")) && uri.getQueryParameter("pid") != null) ||
(uri.getPathSegments() != null && uri.getPathSegments().contains("lofiversion") && uri.getQuery() != null && uri.getQuery().matches("t\\d+(?:-\\d+)?.html"));
}
public static String normalizeThemeUrl(String url) {
if (TextUtils.isEmpty(url))
return url;
url = TopicApi.toMobileVersionUrl(url);
Matcher m = PatternExtensions.compile("4pda.ru.*?act=boardrules").matcher(url);// переброс с правил форума на графический вариант
if (m.find()) {
return "http://4pda.ru/forum/index.php?showtopic=296875";
}
return url;
}
public static boolean tryShowSearch(Activity context, String url, Boolean finish) {
Matcher m = PatternExtensions.compile("4pda.ru.*?act=search").matcher(url);
if (m.find()) {
MainActivity.startForumSearch(SearchSettings.parse(url));
return true;
}
return false;
}
public static boolean tryReputation(Activity context, Handler handler, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"rep".equals(uri.getQueryParameter("act")))
return false;
// история репутации
if ("history".equals(uri.getQueryParameter("view"))
&& !TextUtils.isEmpty(uri.getQueryParameter("mid"))) {
UserReputationFragment.showActivity(context, uri.getQueryParameter("mid"),
"from".equals(uri.getQueryParameter("mode")));
return true;
}
// изменение репутации
if (!TextUtils.isEmpty(uri.getQueryParameter("mid"))
&& !TextUtils.isEmpty(uri.getQueryParameter("view"))) {
switch (uri.getQueryParameter("view")) {
case "win_add":
if (!TextUtils.isEmpty(uri.getQueryParameter("p"))) {
ForumUser.startChangeRep(context, handler,
uri.getQueryParameter("mid"),
uri.getQueryParameter("mid"),
uri.getQueryParameter("p"), "add", context.getString(R.string.increase_reputation));
} else {
UserReputationFragment.plusRep(context, handler, uri.getQueryParameter("mid"), uri.getQueryParameter("mid"));
}
break;
case "win_minus":
if (!TextUtils.isEmpty(uri.getQueryParameter("p"))) {
ForumUser.startChangeRep(context, handler,
uri.getQueryParameter("mid"),
uri.getQueryParameter("mid"),
uri.getQueryParameter("p"), "minus", context.getString(R.string.decrease_reputation));
} else {
UserReputationFragment.minusRep(context, handler, uri.getQueryParameter("mid"), uri.getQueryParameter("mid"));
}
break;
default:
return false;
}
return true;
}
return false;
}
public static boolean tryShowClaim(Activity context, Handler handler, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"report".equals(uri.getQueryParameter("act")))
return false;
if (!TextUtils.isEmpty(uri.getQueryParameter("t"))
&& !TextUtils.isEmpty(uri.getQueryParameter("p"))) {
org.softeg.slartus.forpdaplus.classes.Post.claim(context, handler,
uri.getQueryParameter("t"), uri.getQueryParameter("p"));
return true;
}
return false;
}
public static boolean tryProfile(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if ("profile".equals(uri.getQueryParameter("act"))
&& !TextUtils.isEmpty(uri.getQueryParameter("id"))) {
ProfileFragment.showProfile(uri.getQueryParameter("id"), uri.getQueryParameter("id"));
return true;
}
if (!TextUtils.isEmpty(uri.getQueryParameter("showuser"))) {
ProfileFragment.showProfile(uri.getQueryParameter("showuser"), uri.getQueryParameter("showuser"));
return true;
}
return false;
}
public static boolean tryEditProfile(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"usercp".equals(uri.getQueryParameter("act")))
return false;
if ("01".equals(uri.getQueryParameter("code"))) {
ProfileEditFragment.editProfile();
return true;
}
return false;
}
public static boolean tryEditDevice(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if ("profile-xhr".equals(uri.getQueryParameter("act"))) {
if ("device".equals(uri.getQueryParameter("action")))
new DeviceEdit(context, uri.toString(), !TextUtils.isEmpty(uri.getQueryParameter("md_id")), App.getInstance().getCurrentFragmentTag());
if ("dev-del".equals(uri.getQueryParameter("action")))
new DeviceDelete(context, uri.toString(), App.getInstance().getCurrentFragmentTag());
return true;
}
return false;
}
public static boolean tryShowForum(Activity context, String url, Boolean finish) {
String[] patterns = {"4pda.ru.*?showforum=(\\d+)$", "4pda.ru/forum/lofiversion/index.php\\?f(\\d+)\\.html",
"4pda.ru/forum/index.php.*?act=idx"};
for (String pattern : patterns) {
Matcher m = PatternExtensions.compile(pattern).matcher(url);
if (m.find()) {
String id = m.groupCount() > 0 ? m.group(1) : null;
ForumFragment.showActivity(context, id, null);
return true;
}
}
return false;
}
public static Boolean tryShowUrl(Activity context, Handler handler, String url, Boolean showInDefaultBrowser,
final Boolean finishActivity) {
return tryShowUrl(context, handler, url, showInDefaultBrowser, finishActivity, null);
}
public static boolean tryShowRules(Activity context, Uri uri, Boolean finish) {
if ("announce".equals(uri.getQueryParameter("act")) | "boardrules".equals(uri.getQueryParameter("act"))) {
ForumRulesFragment.showRules(uri.toString());
return true;
}
return false;
}
private static CharSequence getRedirect(CharSequence url) {
Matcher m = PatternExtensions.compile("4pda\\.ru/pages/go/\\?u=(.*?)$").matcher(url);
if (m.find()) {
try {
return UrlExtensions.decodeUrl(m.group(1));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return url;
}
public static Boolean tryShowUrl(Activity context, Handler handler, String url, Boolean showInDefaultBrowser,
final Boolean finishActivity, String authKey) {
if(url.substring(0, 2).equals("//")){
url = "http:".concat(url);
}
url = url.replace("&", "&").replace("\"", "").trim();
url = getRedirect(url).toString();
url = url.trim();
Log.d("kek", "fixed url = " + url);
if (url.contains("4pda.ru") & !url.contains("http://")&!url.contains("https://"))
url = "http://" + url;
Uri uri = Uri.parse(url.toLowerCase());
Log.e("kek", uri.getHost() + " " + url);
if (uri.getHost() != null && (uri.getHost().toLowerCase().contains("4pda.ru")
|| uri.getHost().toLowerCase().contains("4pda.to")
|| uri.getHost().toLowerCase().contains("ggpht.com")
|| uri.getHost().toLowerCase().contains("googleusercontent.com")
|| uri.getHost().toLowerCase().contains("windowsphone.com")
|| uri.getHost().toLowerCase().contains("cs3-2.4pda.to")
|| uri.getHost().toLowerCase().contains("mzstatic.com")
|| uri.getHost().toLowerCase().contains("savepice.ru"))) {
if (isTheme(uri)) {
showTopic(url);
return true;
}
if (tryShowRules(context, uri, finishActivity)) {
return true;
}
if (tryShowNews(context, url, finishActivity)) {
return true;
}
if (tryShowNewsList(context, url, finishActivity)) {
return true;
}
if (tryShowSpecial(context, url, finishActivity)) {
return true;
}
if (tryShowFile(context, Uri.parse(url), finishActivity)) {
return true;
}
if (tryProfile(context, uri, finishActivity)) {
return true;
}
if (tryEditProfile(context, uri, finishActivity)) {
return true;
}
if (tryEditDevice(context, uri, finishActivity)) {
return true;
}
if (tryShowForum(context, url, finishActivity)) {
return true;
}
if (tryReputation(context, handler, uri, finishActivity))
return true;
if (tryShowClaim(context, handler, uri, finishActivity))
return true;
if (tryShowQms(context, uri, finishActivity))
return true;
if (tryFav(context, url, finishActivity))
return true;
if (tryFavorites(context, url, finishActivity))
return true;
if (tryShowEditPost(context, uri, authKey, finishActivity))
return true;
if (tryShowTopicWriters(context, uri, finishActivity))
return true;
if (tryShowSearch(context, url, finishActivity))
return true;
if (tryShowTopicAttaches(context, uri, finishActivity))
return true;
}
if (tryDevdb(context, url, finishActivity))
return true;
if (tryShowYoutube(context, url, finishActivity))
return true;
if (showInDefaultBrowser)
showInDefaultBrowser(context, url);
/*if (finishActivity)
context.finish();*/
return false;
}
public static void showTopic(String url) {
MainActivity.addTab(url, ThemeFragment.newInstance(url));
}
private static boolean tryFavorites(Activity context, String url, Boolean finishActivity) {
Matcher m = PatternExtensions.compile("4pda.ru.*?autocom=favtopics").matcher(url);
if (m.find()) {
MainActivity.showListFragment(new FavoritesBrickInfo().getName(), null);
return true;
}
return false;
}
private static boolean tryFav(Activity context, String url, Boolean finishActivity) {
Matcher m = PatternExtensions.compile("4pda.ru.*?act=fav").matcher(url);
if (m.find()) {
MainActivity.showListFragment(new FavoritesBrickInfo().getName(), null);
return true;
}
return false;
}
public static boolean tryDevdb(Activity context, String url, Boolean finish) {
if (NewDevDbApi.isCatalogUrl(url)) {
Bundle args = new Bundle();
args.putString(DevDbCatalogFragment.URL_KEY, url);
MainActivity.showListFragment(new DevDbCatalogBrickInfo().getName(), args);
return true;
}
if (NewDevDbApi.isDevicesListUrl(url)) {
Bundle args = new Bundle();
args.putString(DevDbModelsFragment.BRAND_URL_KEY, url);
MainActivity.showListFragment(new DevDbModelsBrickInfo().getName(), args);
return true;
}
if (NewDevDbApi.isDeviceUrl(url)) {
ParentFragment.showDevice(url);
return true;
}
return false;
}
public static boolean tryShowEditPost(Activity context, Uri uri, String authKey, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"post".equals(uri.getQueryParameter("act")))
return false;
if (!"edit_post".equals(uri.getQueryParameter("do")))
return false;
if (TextUtils.isEmpty(uri.getQueryParameter("f")) ||
TextUtils.isEmpty(uri.getQueryParameter("t")) ||
TextUtils.isEmpty(uri.getQueryParameter("p")))
return false;
EditPostFragment.editPost(context, uri.getQueryParameter("f"), uri.getQueryParameter("t"), uri.getQueryParameter("p"), authKey, App.getInstance().getCurrentFragmentTag());
return true;
}
public static boolean tryShowTopicAttaches(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"attach".equals(uri.getQueryParameter("act")))
return false;
if (!"showtopic".equals(uri.getQueryParameter("code")))
return false;
if (TextUtils.isEmpty(uri.getQueryParameter("tid")))
return false;
TopicAttachmentListFragment.showActivity(context, uri.getQueryParameter("tid"));
return true;
}
public static boolean tryShowQms(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
String mid;
String tid;
if ("qms".equals(uri.getQueryParameter("act")) ||
"qms".equals(uri.getQueryParameter("autocom")) ||
"msg".equals(uri.getQueryParameter("act"))) {
mid = uri.getQueryParameter("mid");
tid = uri.getQueryParameter("t");
} else
return false;
if (!TextUtils.isEmpty(mid)) {
if (!TextUtils.isEmpty(tid)) {
//QmsChatActivity.openChat(context, mid, null, tid, null);
QmsChatFragment.openChat(mid, null, tid, null);
} else {
//QmsContactThemesActivity.showThemes(context, mid, "");
QmsContactThemes.showThemes(mid, "");
}
} else {
//ListFragmentActivity.showListFragment(context, QmsContactsBrickInfo.NAME, null);
QmsContactsBrickInfo brickInfo = new QmsContactsBrickInfo();
MainActivity.addTab(brickInfo.getTitle(), brickInfo.getName(), brickInfo.createFragment());
}
return true;
}
public static boolean tryShowTopicWriters(Activity context, Uri uri, Boolean finish) {
if (uri.getHost() != null && !uri.getHost().contains("4pda.ru"))
return false;
if (!"stats".equals(uri.getQueryParameter("act")))
return false;
if (!"who".equals(uri.getQueryParameter("code")))
return false;
String tid = uri.getQueryParameter("t");
if (TextUtils.isEmpty(tid))
return false;
Bundle args = new Bundle();
args.putString(TopicWritersListFragment.TOPIC_ID_KEY, tid);
MainActivity.showListFragment(TopicWritersBrickInfo.NAME, args);
return true;
}
public static boolean tryShowFile(final Activity activity, final Uri uri, final Boolean finish) {
if (uri.getHost() != null && !(uri.getHost().toLowerCase().contains("4pda.ru")
|| uri.getHost().toLowerCase().contains("4pda.to")
|| uri.getHost().toLowerCase().contains("ggpht.com")
|| uri.getHost().toLowerCase().contains("googleusercontent.com")
|| uri.getHost().toLowerCase().contains("windowsphone.com")
|| uri.getHost().toLowerCase().contains("cs3-2.4pda.to")
|| uri.getHost().toLowerCase().contains("mzstatic.com")
|| uri.getHost().toLowerCase().contains("savepice.ru")))
return false;
boolean isFile = PatternExtensions.compile("https?://4pda.ru/forum/dl/post/\\d+/[^\"]*")
.matcher(uri.toString()).find() ||
PatternExtensions.compile("https?://st.4pda.ru/wp-content/uploads/[^\"]*")
.matcher(uri.toString()).find()
||
("attach".equals(uri.getQueryParameter("act")) && !TextUtils.isEmpty(uri.getQueryParameter("id")));
final Pattern imagePattern = PatternExtensions.compile("https?://.*?\\.(png|jpg|jpeg|gif)$");
if (isFile) {
if (!Client.getInstance().getLogined() && !Client.getInstance().hasLoginCookies()) {
Client.getInstance().showLoginForm(activity, new Client.OnUserChangedListener() {
public void onUserChanged(String user, Boolean success) {
if (success) {
if (imagePattern.matcher(uri.toString()).find()) {
// showImage(activity, uri.toString());
showImage(activity, uri.toString());
if (finish)
activity.finish();
} else
downloadFileStart(activity, uri.toString(), finish);
} else if (finish)
activity.finish();
}
});
} else {
if (imagePattern.matcher(uri.toString()).find()) {
// showImage(activity, uri.toString());
showImage(activity, uri.toString());
if (finish)
activity.finish();
} else
downloadFileStart(activity, uri.toString(), finish);
}
return true;
}
if (imagePattern.matcher(uri.toString()).find()
|| (uri.getHost().toLowerCase().contains("ggpht.com")
|| uri.getHost().toLowerCase().contains("googleusercontent.com")
|| uri.getHost().toLowerCase().contains("windowsphone.com")
|| uri.getHost().toLowerCase().contains("savepice.ru"))) {
// showImage(activity, uri.toString());
showImage(activity, uri.toString());
if (finish)
activity.finish();
return true;
}
return false;
}
private static void showImage(Context context, String url) {
// ImageViewActivity.startActivity(context, url);
ImgViewer.startActivity(context, url);
}
public static void downloadFileStart(final Activity activity, final String url, final Boolean finish) {
if (Preferences.Files.isConfirmDownload()) {
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.send_post_confirm_dialog, null);
assert view != null;
final CheckBox checkBox = (CheckBox) view.findViewById(R.id.chkConfirmationSend);
final TextView message = (TextView) view.findViewById(R.id.textView);
message.setText(R.string.ask_start_download_file);
checkBox.setText(R.string.confirm_download);
new MaterialDialog.Builder(activity)
.title(R.string.confirm_action)
.customView(view, true)
.positiveText(R.string.ok)
.negativeText(R.string.cancel)
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
//dialogInterface.dismiss();
if (!checkBox.isChecked())
Preferences.Files.setConfirmDownload(false);
DownloadsService.download(activity, url, finish);
}
@Override
public void onNegative(MaterialDialog dialog) {
if (finish)
activity.finish();
}
})
.show();
} else {
DownloadsService.download(activity, url, finish);
if (finish)
activity.finish();
}
}
private static Boolean is4pdaUrl(String url) {
return PatternExtensions.compile("4pda\\.ru").matcher(url).find();
}
public static void showInDefaultBrowser(Context context, String url) {
try {
Intent marketIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse(url));
if (is4pdaUrl(url))
context.startActivity(Intent.createChooser(marketIntent, context.getString(R.string.open_in)));
else
context.startActivity(marketIntent);
} catch (Exception ex) {
AppLog.e(context, new NotReportException(context.getString(R.string.no_app_for_link) + ": " + url));
}
}
}