Android Open Source - popcorn-android Update






From Project

Back to project page popcorn-android.

License

The source code is released under:

GNU General Public License

If you think the Android project popcorn-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.common.plugins.updateapp;
/*w ww .j a  va2 s.  c om*/
import java.io.File;
import java.util.List;
import java.util.Locale;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.net.Uri;

public class Update extends CordovaPlugin {
  @Override
  public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    if (action.equals("openFile")) {  
      try {  
        openFile(new File(args.getString(0).replaceAll("file://", "")));  
      } catch(Exception e){
        callbackContext.error("Open apk file error!");
        return false;  
      }
    } else if(action.equals("openApp")) {  
      try {  
        if(checkApp(args.getString(0))){  
          openApp(args.getString(0));  
        } else {
          callbackContext.error("there doesn't exist App["+ args.getString(0) +"]!");
          return false; 
        }  
      } catch(Exception e) {
        callbackContext.error("error:" + e.getMessage());
        return false;
      }
    }
    callbackContext.success("Executing update plugin is succeed.");
    return false;
  }

  private void openApp(String packageName) throws NameNotFoundException {  
    PackageManager pm = this.cordova.getActivity().getPackageManager();  
    PackageInfo pi = pm.getPackageInfo(packageName, 0);  
    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);  
    resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);  
    resolveIntent.setPackage(pi.packageName);  

    List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);  

    ResolveInfo ri = apps.iterator().next();  
    if (ri != null ) {  
      String packageName1 = ri.activityInfo.packageName;  
      String className = ri.activityInfo.name;  
      Intent intent = new Intent(Intent.ACTION_MAIN);  
      intent.addCategory(Intent.CATEGORY_LAUNCHER);  

      ComponentName cn = new ComponentName(packageName1, className);  

      intent.setComponent(cn);  
      this.cordova.getActivity().startActivity(intent);  
    }  
  }  

  private boolean checkApp(String packageName) {     
    if (packageName == null || "".equals(packageName))     
      return false;     
    try {     
      ApplicationInfo info = this.cordova.getActivity().getPackageManager()
                    .getApplicationInfo( packageName, PackageManager.GET_UNINSTALLED_PACKAGES);     
      return true;     
    } catch (NameNotFoundException e) {     
      return false;     
    }
  }

  private void openFile(File f) {  
    Intent intent = new Intent(Intent.ACTION_VIEW);  
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

    // ??getMIMEType()???????MimeType  
    String type = getMIMEType(f);  
        // ??intent?file?MimeType  
    intent.setDataAndType(Uri.fromFile(f), type);  
    this.cordova.getActivity().startActivity(intent);  
  }
  
  private String getMIMEType(File f) {  
    String type = "";  
    String fName = f.getName();
        // ?????????  
    String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase(Locale.ENGLISH);  
  
        // ????????????MimeType  
    if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")  
        || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) {  
      type = "audio";  
    } else if (end.equals("3gp") || end.equals("mp4")) {  
      type = "video";  
    } else if (end.equals("jpg") || end.equals("gif") || end.equals("png")  
        || end.equals("jpeg") || end.equals("bmp")) {  
      type = "image";  
    } else if (end.equals("apk")) {  
            // android.permission.INSTALL_PACKAGES  
      type = "application/vnd.android.package-archive";  
    } else {  
      type = "*";  
    }
        // ?????????????????????  
    if (end.equals("apk")) {
    } else {
      type += "/*";  
    }
    return type;  
  }
}




Java Source Code List

com.squareup.okhttp.Address.java
com.squareup.okhttp.ConnectionPool.java
com.squareup.okhttp.Connection.java
com.squareup.okhttp.Dispatcher.java
com.squareup.okhttp.Failure.java
com.squareup.okhttp.HttpResponseCache.java
com.squareup.okhttp.Job.java
com.squareup.okhttp.MediaType.java
com.squareup.okhttp.OkAuthenticator.java
com.squareup.okhttp.OkHttpClient.java
com.squareup.okhttp.OkResponseCache.java
com.squareup.okhttp.Request.java
com.squareup.okhttp.ResponseSource.java
com.squareup.okhttp.Response.java
com.squareup.okhttp.RouteDatabase.java
com.squareup.okhttp.Route.java
com.squareup.okhttp.TunnelRequest.java
com.squareup.okhttp.internal.AbstractOutputStream.java
com.squareup.okhttp.internal.Base64.java
com.squareup.okhttp.internal.DiskLruCache.java
com.squareup.okhttp.internal.Dns.java
com.squareup.okhttp.internal.FaultRecoveringOutputStream.java
com.squareup.okhttp.internal.NamedRunnable.java
com.squareup.okhttp.internal.Platform.java
com.squareup.okhttp.internal.StrictLineReader.java
com.squareup.okhttp.internal.Util.java
com.squareup.okhttp.internal.http.AbstractHttpInputStream.java
com.squareup.okhttp.internal.http.HeaderParser.java
com.squareup.okhttp.internal.http.HttpAuthenticator.java
com.squareup.okhttp.internal.http.HttpDate.java
com.squareup.okhttp.internal.http.HttpEngine.java
com.squareup.okhttp.internal.http.HttpTransport.java
com.squareup.okhttp.internal.http.HttpURLConnectionImpl.java
com.squareup.okhttp.internal.http.HttpsEngine.java
com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.java
com.squareup.okhttp.internal.http.OkResponseCacheAdapter.java
com.squareup.okhttp.internal.http.Policy.java
com.squareup.okhttp.internal.http.RawHeaders.java
com.squareup.okhttp.internal.http.RequestHeaders.java
com.squareup.okhttp.internal.http.ResponseHeaders.java
com.squareup.okhttp.internal.http.RetryableOutputStream.java
com.squareup.okhttp.internal.http.RouteSelector.java
com.squareup.okhttp.internal.http.SpdyTransport.java
com.squareup.okhttp.internal.http.Transport.java
com.squareup.okhttp.internal.http.UnknownLengthHttpInputStream.java
com.squareup.okhttp.internal.spdy.ErrorCode.java
com.squareup.okhttp.internal.spdy.FrameReader.java
com.squareup.okhttp.internal.spdy.FrameWriter.java
com.squareup.okhttp.internal.spdy.HeadersMode.java
com.squareup.okhttp.internal.spdy.Hpack.java
com.squareup.okhttp.internal.spdy.Http20Draft06.java
com.squareup.okhttp.internal.spdy.IncomingStreamHandler.java
com.squareup.okhttp.internal.spdy.NameValueBlockReader.java
com.squareup.okhttp.internal.spdy.Ping.java
com.squareup.okhttp.internal.spdy.Settings.java
com.squareup.okhttp.internal.spdy.Spdy3.java
com.squareup.okhttp.internal.spdy.SpdyConnection.java
com.squareup.okhttp.internal.spdy.SpdyStream.java
com.squareup.okhttp.internal.spdy.Variant.java
com.squareup.okhttp.internal.tls.DistinguishedNameParser.java
com.squareup.okhttp.internal.tls.OkHostnameVerifier.java
io.popcorntime.android.PopcornTime.java
io.popcorntime.frontend.BuildConfig.java
nl.xservices.plugins.SSLCertificateChecker.java
org.apache.cordova.App.java
org.apache.cordova.AuthenticationToken.java
org.apache.cordova.BuildConfig.java
org.apache.cordova.CallbackContext.java
org.apache.cordova.Config.java
org.apache.cordova.CordovaActivity.java
org.apache.cordova.CordovaArgs.java
org.apache.cordova.CordovaChromeClient.java
org.apache.cordova.CordovaInterface.java
org.apache.cordova.CordovaPlugin.java
org.apache.cordova.CordovaResourceApi.java
org.apache.cordova.CordovaWebViewClient.java
org.apache.cordova.CordovaWebView.java
org.apache.cordova.DirectoryManager.java
org.apache.cordova.DroidGap.java
org.apache.cordova.ExifHelper.java
org.apache.cordova.ExposedJsApi.java
org.apache.cordova.FileHelper.java
org.apache.cordova.IceCreamCordovaWebViewClient.java
org.apache.cordova.JSONUtils.java
org.apache.cordova.LOG.java
org.apache.cordova.LinearLayoutSoftKeyboardDetect.java
org.apache.cordova.NativeToJsMessageQueue.java
org.apache.cordova.PluginEntry.java
org.apache.cordova.PluginManager.java
org.apache.cordova.PluginResult.java
org.apache.cordova.ScrollEvent.java
org.apache.cordova.Whitelist.java
org.apache.cordova.device.Device.java
org.apache.cordova.networkinformation.NetworkManager.java
org.common.plugins.updateapp.Update.java
org.nodejs.core.NodeJSCore.java
org.nodejs.core.NodeJSService.java