package com.yt.common.utils;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.http.AndroidHttpClient;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com.ironsource.mobilcore.MobileCore;
import com.yt.common.constants.Constants;
import com.ytsdk.testapp.stp.R;
public class Utils {
private static InterstitialAd interstitial;
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
public static boolean isNetworkAvailable(Context ctx) {
int networkStatePermission = ctx
.checkCallingOrSelfPermission(Manifest.permission.ACCESS_NETWORK_STATE);
if (networkStatePermission == PackageManager.PERMISSION_GRANTED) {
ConnectivityManager mConnectivity = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
// Skip if no connection, or background data disabled
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info == null) {
return false;
}
// Only update if WiFi
int netType = info.getType();
// int netSubtype = info.getSubtype();
if ((netType == ConnectivityManager.TYPE_WIFI)
|| (netType == ConnectivityManager.TYPE_MOBILE)) {
return info.isConnected();
} else {
return false;
}
} else {
return true;
}
}
public static void rateApp(Context contex) {
String marketLink = "http://anroidstore.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(marketLink));
contex.startActivity(intent);
}
public static void shareApp(Context contex) {
String marketWebLink = "http://anroidstore.com";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
contex.getString(R.string.app_name));
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,
contex.getString(R.string.shareText) + " --> Download the app "
+ marketWebLink);
contex.startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
public static void showConnectivityErrorDialog(final Activity activity) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setCancelable(true);
builder.setIcon(null);
builder.setTitle(null);
builder.setMessage("YOU MUST ENABLE YOUR DATA CONNECTION (WIFI or 3G), TO ACCESS TV");
builder.setInverseBackgroundForced(true);
builder.setPositiveButton("Settings",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent settingPage = new Intent(
android.provider.Settings.ACTION_SETTINGS);
activity.startActivityForResult(settingPage, 0);
dialog.dismiss();
activity.finish();
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.finish();
}
});
AlertDialog alert = builder.create();
alert.show();
}
public static String doHttp(String url) {
String result = null;
try {
final HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
DefaultHttpClient httpclient = new DefaultHttpClient(httpParams);
HttpGet httpget = new HttpGet(url);
HttpEntity httpEntity = httpclient.execute(httpget).getEntity();
if (httpEntity != null) {
result = EntityUtils.toString(httpEntity);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static boolean isDBExists(Context context) {
boolean result = false;
String DB_PATH = "/data/data/" + context.getPackageName()
+ "/databases/" + getDBAppName(context);
try {
File dbFile = new File(DB_PATH);
result = dbFile.exists();
} catch (Exception e) {
result = false;
}
return result;
}
public static String getDBAppName(Context context) {
String appName = null;
try {
appName = context.getResources().getString(R.string.app_name);
appName = appName.replaceAll("\\s+", "").toLowerCase() + ".db";
} catch (Exception e) {
}
return appName;
}
public static int getCurrentDay() {
Calendar cal = Calendar.getInstance();
int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
return dayOfYear;
}
public static void loadFullScreenAd(Activity activity) {
if (Constants.ADMOB_FULLSCREEN_ADS) {
// Create the interstitial.
AdRequest adRequest = new AdRequest.Builder().build();
interstitial = new InterstitialAd(activity);
interstitial.setAdUnitId(activity
.getString(R.string.admob_fullscreen_id));
// Begin loading your interstitial.
interstitial.loadAd(adRequest);
}
}
public static void showFullScreenAd(Activity context) {
if (Constants.ADMOB_FULLSCREEN_ADS) {
if (interstitial.isLoaded()) {
interstitial.show();
loadFullScreenAd(context);
} else {
MobileCore.showInterstitial(context, null);
// MobileCore.refreshOffers();
MobileCore.loadAdUnit(MobileCore.AD_UNITS.INTERSTITIAL, MobileCore.AD_UNIT_TRIGGER.MAIN_MENU);
}
} else {
MobileCore.showInterstitial(context, null);
MobileCore.loadAdUnit(MobileCore.AD_UNITS.INTERSTITIAL, MobileCore.AD_UNIT_TRIGGER.MAIN_MENU);
}
}
public static String doZIPHttp(String url) {
String result = null;
try {
final HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
DefaultHttpClient httpclient = new DefaultHttpClient(httpParams);
HttpGet httpget = new HttpGet(url);
AndroidHttpClient.modifyRequestToAcceptGzipResponse(httpget);
HttpEntity httpEntity = httpclient.execute(httpget).getEntity();
if (httpEntity != null) {
InputStream in = AndroidHttpClient
.getUngzippedContent(httpEntity);
if (in != null) {
result = inputStram2String(in);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
private static String inputStram2String(InputStream in) throws IOException {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int i; (i = in.read(b)) != -1;) {
out.append(new String(b, 0, i));
}
return out.toString();
}
}