Example usage for android.util Log getStackTraceString

List of usage examples for android.util Log getStackTraceString

Introduction

In this page you can find the example usage for android.util Log getStackTraceString.

Prototype

public static String getStackTraceString(Throwable tr) 

Source Link

Document

Handy function to get a loggable stack trace from a Throwable

Usage

From source file:eu.faircode.adblocker.ActivityLog.java

private void handleExportPCAP(final Intent data) {
    new AsyncTask<Object, Object, Throwable>() {
        @Override//from ww  w  .j  av a2  s . c om
        protected Throwable doInBackground(Object... objects) {
            OutputStream out = null;
            FileInputStream in = null;
            try {
                // Stop capture
                ServiceSinkhole.setPcap(false, ActivityLog.this);

                Uri target = data.getData();
                if (data.hasExtra("org.openintents.extra.DIR_PATH"))
                    target = Uri.parse(target + "/adblocker.pcap");
                Log.i(TAG, "Export PCAP URI=" + target);
                out = getContentResolver().openOutputStream(target);

                File pcap = new File(getCacheDir(), "adblocker.pcap");
                in = new FileInputStream(pcap);

                int len;
                long total = 0;
                byte[] buf = new byte[4096];
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                    total += len;
                }
                Log.i(TAG, "Copied bytes=" + total);

                return null;
            } catch (Throwable ex) {
                Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                Util.sendCrashReport(ex, ActivityLog.this);
                return ex;
            } finally {
                if (out != null)
                    try {
                        out.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }
                if (in != null)
                    try {
                        in.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }

                // Resume capture
                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityLog.this);
                if (prefs.getBoolean("pcap", false))
                    ServiceSinkhole.setPcap(true, ActivityLog.this);
            }
        }

        @Override
        protected void onPostExecute(Throwable ex) {
            if (ex == null)
                Toast.makeText(ActivityLog.this, R.string.msg_completed, Toast.LENGTH_LONG).show();
            else
                Toast.makeText(ActivityLog.this, ex.toString(), Toast.LENGTH_LONG).show();
        }
    }.execute();
}

From source file:com.master.metehan.filtereagle.ActivityLog.java

private void handleExportPCAP(final Intent data) {
    new AsyncTask<Object, Object, Throwable>() {
        @Override//from  www  .  j av a2s. co m
        protected Throwable doInBackground(Object... objects) {
            OutputStream out = null;
            FileInputStream in = null;
            try {
                // Stop capture
                ServiceSinkhole.setPcap(false, ActivityLog.this);

                Uri target = data.getData();
                if (data.hasExtra("org.openintents.extra.DIR_PATH"))
                    target = Uri.parse(target + "/netguard.pcap");
                Log.i(TAG, "Export PCAP URI=" + target);
                out = getContentResolver().openOutputStream(target);

                File pcap = new File(getCacheDir(), "netguard.pcap");
                in = new FileInputStream(pcap);

                int len;
                long total = 0;
                byte[] buf = new byte[4096];
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                    total += len;
                }
                Log.i(TAG, "Copied bytes=" + total);

                return null;
            } catch (Throwable ex) {
                Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                Util.sendCrashReport(ex, ActivityLog.this);
                return ex;
            } finally {
                if (out != null)
                    try {
                        out.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }
                if (in != null)
                    try {
                        in.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }

                // Resume capture
                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityLog.this);
                if (prefs.getBoolean("pcap", false))
                    ServiceSinkhole.setPcap(true, ActivityLog.this);
            }
        }

        @Override
        protected void onPostExecute(Throwable ex) {
            if (ex == null)
                Toast.makeText(ActivityLog.this, R.string.msg_completed, Toast.LENGTH_LONG).show();
            else
                Toast.makeText(ActivityLog.this, ex.toString(), Toast.LENGTH_LONG).show();
        }
    }.execute();
}

From source file:eu.faircode.netguard.AdapterRule.java

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);

    // Get rule//from   w w w  .ja v  a  2 s . com
    final Rule rule = listFiltered.get(position);

    // Handle expanding/collapsing
    holder.llApplication.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            rule.expanded = !rule.expanded;
            notifyItemChanged(position);
        }
    });

    // Show if non default rules
    holder.itemView.setBackgroundColor(rule.changed ? colorChanged : Color.TRANSPARENT);

    // Show expand/collapse indicator
    holder.ivExpander.setImageLevel(rule.expanded ? 1 : 0);

    // Show application icon
    if (rule.info.applicationInfo == null || rule.info.applicationInfo.icon == 0)
        Picasso.with(context).load(android.R.drawable.sym_def_app_icon).into(holder.ivIcon);
    else {
        Uri uri = Uri
                .parse("android.resource://" + rule.info.packageName + "/" + rule.info.applicationInfo.icon);
        Picasso.with(context).load(uri).resize(iconSize, iconSize).into(holder.ivIcon);
    }

    // Show application label
    holder.tvName.setText(rule.name);

    // Show application state
    int color = rule.system ? colorOff : colorText;
    if (!rule.internet || !rule.enabled)
        color = Color.argb(128, Color.red(color), Color.green(color), Color.blue(color));
    holder.tvName.setTextColor(color);

    // Show rule count
    new AsyncTask<Object, Object, Long>() {
        @Override
        protected void onPreExecute() {
            holder.tvHosts.setVisibility(View.GONE);
        }

        @Override
        protected Long doInBackground(Object... objects) {
            return DatabaseHelper.getInstance(context).getRuleCount(rule.info.applicationInfo.uid);
        }

        @Override
        protected void onPostExecute(Long rules) {
            if (rules > 0) {
                holder.tvHosts.setVisibility(View.VISIBLE);
                holder.tvHosts.setText(Long.toString(rules));
            }
        }
    }.execute();

    // Wi-Fi settings
    holder.cbWifi.setEnabled(rule.apply);
    holder.cbWifi.setAlpha(wifiActive ? 1 : 0.5f);
    holder.cbWifi.setOnCheckedChangeListener(null);
    holder.cbWifi.setChecked(rule.wifi_blocked);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(CompoundButtonCompat.getButtonDrawable(holder.cbWifi));
        DrawableCompat.setTint(wrap, rule.apply ? (rule.wifi_blocked ? colorOff : colorOn) : colorGrayed);
    }
    holder.cbWifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            rule.wifi_blocked = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    holder.ivScreenWifi.setEnabled(rule.apply);
    holder.ivScreenWifi.setAlpha(wifiActive ? 1 : 0.5f);
    holder.ivScreenWifi.setVisibility(rule.screen_wifi && rule.wifi_blocked ? View.VISIBLE : View.INVISIBLE);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(holder.ivScreenWifi.getDrawable());
        DrawableCompat.setTint(wrap, rule.apply ? colorOn : colorGrayed);
    }

    // Mobile settings
    holder.cbOther.setEnabled(rule.apply);
    holder.cbOther.setAlpha(otherActive ? 1 : 0.5f);
    holder.cbOther.setOnCheckedChangeListener(null);
    holder.cbOther.setChecked(rule.other_blocked);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(CompoundButtonCompat.getButtonDrawable(holder.cbOther));
        DrawableCompat.setTint(wrap, rule.apply ? (rule.other_blocked ? colorOff : colorOn) : colorGrayed);
    }
    holder.cbOther.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            rule.other_blocked = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    holder.ivScreenOther.setEnabled(rule.apply);
    holder.ivScreenOther.setAlpha(otherActive ? 1 : 0.5f);
    holder.ivScreenOther.setVisibility(rule.screen_other && rule.other_blocked ? View.VISIBLE : View.INVISIBLE);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(holder.ivScreenOther.getDrawable());
        DrawableCompat.setTint(wrap, rule.apply ? colorOn : colorGrayed);
    }

    holder.tvRoaming.setTextColor(rule.apply ? colorOff : colorGrayed);
    holder.tvRoaming.setAlpha(otherActive ? 1 : 0.5f);
    holder.tvRoaming.setVisibility(
            rule.roaming && (!rule.other_blocked || rule.screen_other) ? View.VISIBLE : View.INVISIBLE);

    // Expanded configuration section
    holder.llConfiguration.setVisibility(rule.expanded ? View.VISIBLE : View.GONE);

    // Show application details
    holder.tvUid
            .setText(rule.info.applicationInfo == null ? "?" : Integer.toString(rule.info.applicationInfo.uid));
    holder.tvPackage.setText(rule.info.packageName);
    holder.tvVersion.setText(rule.info.versionName + '/' + rule.info.versionCode);
    holder.tvDescription.setVisibility(rule.description == null ? View.GONE : View.VISIBLE);
    holder.tvDescription.setText(rule.description);

    // Show application state
    holder.tvInternet.setVisibility(rule.internet ? View.GONE : View.VISIBLE);
    holder.tvDisabled.setVisibility(rule.enabled ? View.GONE : View.VISIBLE);

    // Show traffic statistics
    holder.tvStatistics.setText(context.getString(R.string.msg_mbday, rule.upspeed, rule.downspeed));

    // Apply
    holder.cbApply.setEnabled(rule.pkg);
    holder.cbApply.setOnCheckedChangeListener(null);
    holder.cbApply.setChecked(rule.apply);
    holder.cbApply.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            rule.apply = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    // Show related
    holder.btnRelated.setVisibility(rule.relateduids ? View.VISIBLE : View.GONE);
    holder.btnRelated.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent main = new Intent(context, ActivityMain.class);
            main.putExtra(ActivityMain.EXTRA_SEARCH, Integer.toString(rule.info.applicationInfo.uid));
            context.startActivity(main);
        }
    });

    // Fetch settings
    holder.ibFetch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new AsyncTask<Object, Object, Object>() {
                @Override
                protected void onPreExecute() {
                    holder.ibFetch.setEnabled(false);
                }

                @Override
                protected Object doInBackground(Object... args) {
                    HttpsURLConnection urlConnection = null;
                    try {
                        JSONObject json = new JSONObject();

                        json.put("type", "fetch");
                        json.put("country", Locale.getDefault().getCountry());
                        json.put("netguard", Util.getSelfVersionCode(context));
                        json.put("fingerprint", Util.getFingerprint(context));

                        JSONObject pkg = new JSONObject();
                        pkg.put("name", rule.info.packageName);
                        pkg.put("version_code", rule.info.versionCode);
                        pkg.put("version_name", rule.info.versionName);

                        JSONArray pkgs = new JSONArray();
                        pkgs.put(pkg);
                        json.put("package", pkgs);

                        urlConnection = (HttpsURLConnection) new URL(cUrl).openConnection();
                        urlConnection.setConnectTimeout(cTimeOutMs);
                        urlConnection.setReadTimeout(cTimeOutMs);
                        urlConnection.setRequestProperty("Accept", "application/json");
                        urlConnection.setRequestProperty("Content-type", "application/json");
                        urlConnection.setRequestMethod("POST");
                        urlConnection.setDoInput(true);
                        urlConnection.setDoOutput(true);

                        Log.i(TAG, "Request=" + json.toString());
                        OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
                        out.write(json.toString().getBytes()); // UTF-8
                        out.flush();

                        int code = urlConnection.getResponseCode();
                        if (code != HttpsURLConnection.HTTP_OK)
                            throw new IOException("HTTP " + code);

                        InputStreamReader isr = new InputStreamReader(urlConnection.getInputStream());
                        String response = Util.readString(isr).toString();
                        Log.i(TAG, "Response=" + response);
                        JSONObject jfetched = new JSONObject(response);
                        JSONArray jpkgs = jfetched.getJSONArray("package");
                        for (int i = 0; i < jpkgs.length(); i++) {
                            JSONObject jpkg = jpkgs.getJSONObject(i);
                            String name = jpkg.getString("name");
                            int wifi = jpkg.getInt("wifi");
                            int wifi_screen = jpkg.getInt("wifi_screen");
                            int other = jpkg.getInt("other");
                            int other_screen = jpkg.getInt("other_screen");
                            int roaming = jpkg.getInt("roaming");
                            int devices = jpkg.getInt("devices");

                            double conf_wifi;
                            boolean block_wifi;
                            if (rule.wifi_default) {
                                conf_wifi = confidence(devices - wifi, devices);
                                block_wifi = !(devices - wifi > wifi && conf_wifi > cConfidence);
                            } else {
                                conf_wifi = confidence(wifi, devices);
                                block_wifi = (wifi > devices - wifi && conf_wifi > cConfidence);
                            }

                            boolean allow_wifi_screen = rule.screen_wifi_default;
                            if (block_wifi)
                                allow_wifi_screen = (wifi_screen > wifi / 2);

                            double conf_other;
                            boolean block_other;
                            if (rule.other_default) {
                                conf_other = confidence(devices - other, devices);
                                block_other = !(devices - other > other && conf_other > cConfidence);
                            } else {
                                conf_other = confidence(other, devices);
                                block_other = (other > devices - other && conf_other > cConfidence);
                            }

                            boolean allow_other_screen = rule.screen_other_default;
                            if (block_other)
                                allow_other_screen = (other_screen > other / 2);

                            boolean block_roaming = rule.roaming_default;
                            if (!block_other || allow_other_screen)
                                block_roaming = (roaming > (devices - other) / 2);

                            Log.i(TAG,
                                    "pkg=" + name + " wifi=" + wifi + "/" + wifi_screen + "=" + block_wifi + "/"
                                            + allow_wifi_screen + " " + Math.round(100 * conf_wifi) + "%"
                                            + " other=" + other + "/" + other_screen + "/" + roaming + "="
                                            + block_other + "/" + allow_other_screen + "/" + block_roaming + " "
                                            + Math.round(100 * conf_other) + "%" + " devices=" + devices);

                            rule.wifi_blocked = block_wifi;
                            rule.screen_wifi = allow_wifi_screen;
                            rule.other_blocked = block_other;
                            rule.screen_other = allow_other_screen;
                            rule.roaming = block_roaming;
                        }

                    } catch (Throwable ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                        return ex;

                    } finally {
                        if (urlConnection != null)
                            urlConnection.disconnect();
                    }

                    return null;
                }

                @Override
                protected void onPostExecute(Object result) {
                    holder.ibFetch.setEnabled(true);
                    updateRule(rule, true, listAll);
                }

            }.execute(rule);
        }
    });

    // Launch application settings
    final Intent settings = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    settings.setData(Uri.parse("package:" + rule.info.packageName));
    holder.ibSettings.setVisibility(
            settings.resolveActivity(context.getPackageManager()) == null ? View.GONE : View.VISIBLE);
    holder.ibSettings.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            context.startActivity(settings);
        }
    });

    // Launch application
    holder.ibLaunch.setVisibility(rule.intent == null ? View.GONE : View.VISIBLE);
    holder.ibLaunch.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            context.startActivity(rule.intent);
        }
    });

    // Show Wi-Fi screen on condition
    holder.cbScreenWifi.setEnabled(rule.wifi_blocked && rule.apply);
    holder.cbScreenWifi.setOnCheckedChangeListener(null);
    holder.cbScreenWifi.setChecked(rule.screen_wifi);

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(holder.ivWifiLegend.getDrawable());
        DrawableCompat.setTint(wrap, colorOn);
    }

    holder.cbScreenWifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            rule.screen_wifi = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        Drawable wrap = DrawableCompat.wrap(holder.ivOtherLegend.getDrawable());
        DrawableCompat.setTint(wrap, colorOn);
    }

    // Show mobile screen on condition
    holder.cbScreenOther.setEnabled(rule.other_blocked && rule.apply);
    holder.cbScreenOther.setOnCheckedChangeListener(null);
    holder.cbScreenOther.setChecked(rule.screen_other);
    holder.cbScreenOther.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            rule.screen_other = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    // Show roaming condition
    holder.cbRoaming.setEnabled((!rule.other_blocked || rule.screen_other) && rule.apply);
    holder.cbRoaming.setOnCheckedChangeListener(null);
    holder.cbRoaming.setChecked(rule.roaming);
    holder.cbRoaming.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        @TargetApi(Build.VERSION_CODES.M)
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            rule.roaming = isChecked;
            updateRule(rule, true, listAll);

            // Request permissions
            if (isChecked && !Util.hasPhoneStatePermission(context))
                context.requestPermissions(new String[] { Manifest.permission.READ_PHONE_STATE },
                        ActivityMain.REQUEST_ROAMING);
        }
    });

    // Reset rule
    holder.btnClear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Util.areYouSure(view.getContext(), R.string.msg_clear_rules, new Util.DoubtListener() {
                @Override
                public void onSure() {
                    holder.cbApply.setChecked(true);
                    holder.cbWifi.setChecked(rule.wifi_default);
                    holder.cbOther.setChecked(rule.other_default);
                    holder.cbScreenWifi.setChecked(rule.screen_wifi_default);
                    holder.cbScreenOther.setChecked(rule.screen_other_default);
                    holder.cbRoaming.setChecked(rule.roaming_default);
                }
            });
        }
    });

    // Show logging is disabled
    boolean log_app = prefs.getBoolean("log_app", false);
    holder.tvNoLog.setVisibility(log_app ? View.GONE : View.VISIBLE);
    holder.tvNoLog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            context.startActivity(new Intent(context, ActivitySettings.class));
        }
    });

    // Show filtering is disabled
    boolean filter = prefs.getBoolean("filter", false);
    holder.tvNoFilter.setVisibility(filter ? View.GONE : View.VISIBLE);
    holder.tvNoFilter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            context.startActivity(new Intent(context, ActivitySettings.class));
        }
    });

    // Show access rules
    if (rule.expanded) {
        // Access the database when expanded only
        final AdapterAccess badapter = new AdapterAccess(context,
                DatabaseHelper.getInstance(context).getAccess(rule.info.applicationInfo.uid));
        holder.lvAccess.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int bposition, long bid) {
                PackageManager pm = context.getPackageManager();
                Cursor cursor = (Cursor) badapter.getItem(bposition);
                final long id = cursor.getLong(cursor.getColumnIndex("ID"));
                final int version = cursor.getInt(cursor.getColumnIndex("version"));
                final int protocol = cursor.getInt(cursor.getColumnIndex("protocol"));
                final String daddr = cursor.getString(cursor.getColumnIndex("daddr"));
                final int dport = cursor.getInt(cursor.getColumnIndex("dport"));
                long time = cursor.getLong(cursor.getColumnIndex("time"));
                int block = cursor.getInt(cursor.getColumnIndex("block"));

                PopupMenu popup = new PopupMenu(context, context.findViewById(R.id.vwPopupAnchor));
                popup.inflate(R.menu.access);

                popup.getMenu().findItem(R.id.menu_host).setTitle(Util.getProtocolName(protocol, version, false)
                        + " " + daddr + (dport > 0 ? "/" + dport : ""));

                // Whois
                final Intent lookupIP = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("http://www.tcpiputils.com/whois-lookup/" + daddr));
                if (pm.resolveActivity(lookupIP, 0) == null)
                    popup.getMenu().removeItem(R.id.menu_whois);
                else
                    popup.getMenu().findItem(R.id.menu_whois)
                            .setTitle(context.getString(R.string.title_log_whois, daddr));

                // Lookup port
                final Intent lookupPort = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("http://www.speedguide.net/port.php?port=" + dport));
                if (dport <= 0 || pm.resolveActivity(lookupPort, 0) == null)
                    popup.getMenu().removeItem(R.id.menu_port);
                else
                    popup.getMenu().findItem(R.id.menu_port)
                            .setTitle(context.getString(R.string.title_log_port, dport));

                popup.getMenu().findItem(R.id.menu_time)
                        .setTitle(SimpleDateFormat.getDateTimeInstance().format(time));

                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem menuItem) {
                        switch (menuItem.getItemId()) {
                        case R.id.menu_whois:
                            context.startActivity(lookupIP);
                            return true;

                        case R.id.menu_port:
                            context.startActivity(lookupPort);
                            return true;

                        case R.id.menu_allow:
                            if (IAB.isPurchased(ActivityPro.SKU_FILTER, context)) {
                                DatabaseHelper.getInstance(context).setAccess(id, 0);
                                ServiceSinkhole.reload("allow host", context);
                                if (rule.submit)
                                    ServiceJob.submit(rule, version, protocol, daddr, dport, 0, context);
                            } else
                                context.startActivity(new Intent(context, ActivityPro.class));
                            return true;

                        case R.id.menu_block:
                            if (IAB.isPurchased(ActivityPro.SKU_FILTER, context)) {
                                DatabaseHelper.getInstance(context).setAccess(id, 1);
                                ServiceSinkhole.reload("block host", context);
                                if (rule.submit)
                                    ServiceJob.submit(rule, version, protocol, daddr, dport, 1, context);
                            } else
                                context.startActivity(new Intent(context, ActivityPro.class));
                            return true;

                        case R.id.menu_reset:
                            DatabaseHelper.getInstance(context).setAccess(id, -1);
                            ServiceSinkhole.reload("reset host", context);
                            if (rule.submit)
                                ServiceJob.submit(rule, version, protocol, daddr, dport, -1, context);
                            return true;
                        }
                        return false;
                    }
                });

                if (block == 0)
                    popup.getMenu().removeItem(R.id.menu_allow);
                else if (block == 1)
                    popup.getMenu().removeItem(R.id.menu_block);

                popup.show();
            }
        });

        holder.lvAccess.setAdapter(badapter);
    } else {
        holder.lvAccess.setAdapter(null);
        holder.lvAccess.setOnItemClickListener(null);
    }

    // Clear access log
    holder.btnClearAccess.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Util.areYouSure(view.getContext(), R.string.msg_reset_access, new Util.DoubtListener() {
                @Override
                public void onSure() {
                    DatabaseHelper.getInstance(context).clearAccess(rule.info.applicationInfo.uid, true);
                    if (rv != null)
                        rv.scrollToPosition(position);
                }
            });
        }
    });

    // Notify on access
    holder.cbNotify.setEnabled(prefs.getBoolean("notify_access", false) && rule.apply);
    holder.cbNotify.setOnCheckedChangeListener(null);
    holder.cbNotify.setChecked(rule.notify);
    holder.cbNotify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            rule.notify = isChecked;
            updateRule(rule, true, listAll);
        }
    });

    // Usage data sharing
    holder.cbSubmit
            .setVisibility(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? View.VISIBLE : View.GONE);
    holder.cbSubmit.setOnCheckedChangeListener(null);
    holder.cbSubmit.setChecked(rule.submit);
    holder.cbSubmit.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            rule.submit = isChecked;
            updateRule(rule, true, listAll);
        }
    });
}

From source file:io.teak.sdk.Teak.java

@SuppressWarnings("unused")
private static void prime31PurchaseSucceeded(String json) {
    try {/*www.  j  av  a 2s.  c  o m*/
        JSONObject originalJson = new JSONObject(json);
        if (Teak.isDebug) {
            Log.d(LOG_TAG, "Prime31 purchase succeeded: " + originalJson.toString(2));
        }

        if (Teak.appStore != null && Teak.appStore.ignorePluginPurchaseEvents()) {
            if (Teak.isDebug) {
                Log.d(LOG_TAG, "Prime31 callback ignored, store purchase reporting is auto-magical.");
            }
        } else {
            purchaseSucceeded(originalJson);
        }
    } catch (Exception e) {
        Log.e(LOG_TAG, Log.getStackTraceString(e));
        Teak.sdkRaven.reportException(e);
    }
}

From source file:eu.faircode.netguard.ActivityLog.java

private void handleExportPCAP(final Intent data) {
    new AsyncTask<Object, Object, Throwable>() {
        @Override/*from  w  w  w. j a  v  a2 s. co  m*/
        protected Throwable doInBackground(Object... objects) {
            OutputStream out = null;
            FileInputStream in = null;
            try {
                // Stop capture
                ServiceSinkhole.setPcap(false, ActivityLog.this);

                Uri target = data.getData();
                if (data.hasExtra("org.openintents.extra.DIR_PATH"))
                    target = Uri.parse(target + "/netguard.pcap");
                Log.i(TAG, "Export PCAP URI=" + target);
                out = getContentResolver().openOutputStream(target);

                File pcap = new File(getDir("data", MODE_PRIVATE), "netguard.pcap");
                in = new FileInputStream(pcap);

                int len;
                long total = 0;
                byte[] buf = new byte[4096];
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                    total += len;
                }
                Log.i(TAG, "Copied bytes=" + total);

                return null;
            } catch (Throwable ex) {
                Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                return ex;
            } finally {
                if (out != null)
                    try {
                        out.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }
                if (in != null)
                    try {
                        in.close();
                    } catch (IOException ex) {
                        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
                    }

                // Resume capture
                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityLog.this);
                if (prefs.getBoolean("pcap", false))
                    ServiceSinkhole.setPcap(true, ActivityLog.this);
            }
        }

        @Override
        protected void onPostExecute(Throwable ex) {
            if (ex == null)
                Toast.makeText(ActivityLog.this, R.string.msg_completed, Toast.LENGTH_LONG).show();
            else
                Toast.makeText(ActivityLog.this, ex.toString(), Toast.LENGTH_LONG).show();
        }
    }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}

From source file:hku.fyp14017.blencode.ui.fragment.LookFragment.java

public void sendPocketPaintIntent(int selectedPosition, Intent intent) {

    if (!LookController.getInstance().checkIfPocketPaintIsInstalled(intent, getActivity())) {
        return;//from   www .j a  va2  s .c  om
    }

    selectedLookData = lookDataList.get(selectedPosition);

    Bundle bundleForPocketPaint = new Bundle();

    try {
        File tempCopy = StorageHandler.getInstance()
                .makeTempImageCopy(lookDataList.get(selectedPosition).getAbsolutePath());

        bundleForPocketPaint.putString(Constants.EXTRA_PICTURE_PATH_POCKET_PAINT, tempCopy.getAbsolutePath());
        bundleForPocketPaint.putInt(Constants.EXTRA_X_VALUE_POCKET_PAINT, 0);
        bundleForPocketPaint.putInt(Constants.EXTRA_Y_VALUE_POCKET_PAINT, 0);
        intent.putExtras(bundleForPocketPaint);

        intent.addCategory("android.intent.category.LAUNCHER");
        startActivityForResult(intent, LookController.REQUEST_POCKET_PAINT_EDIT_IMAGE);
    } catch (IOException ioException) {
        Log.e(TAG, Log.getStackTraceString(ioException));
    } catch (NullPointerException e) {
        Log.e(TAG, e.getMessage());
    }

}

From source file:org.alfresco.mobile.android.api.services.impl.onpremise.OnPremiseSiteServiceImpl.java

protected void retrieveExtraProperties(String personIdentifier) {
    try {//from w ww .j  a v  a2s .  c o  m
        List<JoinSiteRequestImpl> joinSiteRequestList = new ArrayList<JoinSiteRequestImpl>();
        try {
            joinSiteRequestList = getJoinSiteRequests();
        } catch (Exception e) {
            Log.e(TAG, "Error during cache operation : JoinSiteRequest");
            Log.e(TAG, Log.getStackTraceString(e));
        }
        List<String> favoriteSites = computeFavoriteSite(personIdentifier);
        List<String> userSites = getUserSite(personIdentifier);

        retrieveExtraProperties(favoriteSites, userSites, joinSiteRequestList);
    } catch (Exception e) {
        Log.e(TAG, "Error during cache operation. The site object may contains incorrect informations");
        Log.e(TAG, Log.getStackTraceString(e));
    }
}

From source file:io.teak.sdk.Teak.java

static void purchaseSucceeded(final JSONObject purchaseData) {
    Teak.asyncExecutor.submit(new Runnable() {
        public void run() {
            try {
                if (Teak.isDebug) {
                    Log.d(LOG_TAG, "Purchase succeeded: " + purchaseData.toString(2));
                }//from   w ww .ja v  a2 s . co m

                final HashMap<String, Object> payload = new HashMap<>();

                if (Teak.appConfiguration.installerPackage == null) {
                    Log.e(LOG_TAG, "Purchase succeded from unknown app store.");
                } else if (Teak.appConfiguration.installerPackage.equals("com.amazon.venezia")) {
                    JSONObject receipt = purchaseData.getJSONObject("receipt");
                    JSONObject userData = purchaseData.getJSONObject("userData");

                    payload.put("purchase_token", receipt.get("receiptId"));
                    payload.put("purchase_time_string", receipt.get("purchaseDate"));
                    payload.put("product_id", receipt.get("sku"));
                    payload.put("store_user_id", userData.get("userId"));
                    payload.put("store_marketplace", userData.get("marketplace"));

                    Log.d(LOG_TAG, "Purchase of " + receipt.get("sku") + " detected.");
                } else {
                    payload.put("purchase_token", purchaseData.get("purchaseToken"));
                    payload.put("purchase_time", purchaseData.get("purchaseTime"));
                    payload.put("product_id", purchaseData.get("productId"));
                    if (purchaseData.has("orderId")) {
                        payload.put("order_id", purchaseData.get("orderId"));
                    }

                    Log.d(LOG_TAG, "Purchase of " + purchaseData.get("productId") + " detected.");
                }

                if (Teak.appStore != null) {
                    JSONObject skuDetails = Teak.appStore.querySkuDetails((String) payload.get("product_id"));
                    if (skuDetails != null) {
                        if (skuDetails.has("price_amount_micros")) {
                            payload.put("price_currency_code", skuDetails.getString("price_currency_code"));
                            payload.put("price_amount_micros", skuDetails.getString("price_amount_micros"));
                        } else if (skuDetails.has("price_string")) {
                            payload.put("price_string", skuDetails.getString("price_string"));
                        }
                    }
                }

                Session.whenUserIdIsReadyRun(new Session.SessionRunnable() {
                    @Override
                    public void run(Session session) {
                        new Request("/me/purchase", payload, session).run();
                    }
                });
            } catch (Exception e) {
                Log.e(LOG_TAG, "Error reporting purchase: " + Log.getStackTraceString(e));
                Teak.sdkRaven.reportException(e);
            }
        }
    });
}

From source file:org.catrobat.catroid.ui.fragment.LookFragment.java

public void sendPocketPaintIntent(int selectedPosition, Intent intent) {

    if (!LookController.getInstance().checkIfPocketPaintIsInstalled(intent, getActivity())) {
        return;/*from   w  ww  .  java  2 s  .co  m*/
    }

    selectedLookData = lookDataList.get(selectedPosition);

    Bundle bundleForPocketPaint = new Bundle();

    try {
        File tempCopy = StorageHandler.getInstance()
                .makeTempImageCopy(lookDataList.get(selectedPosition).getAbsolutePath());

        bundleForPocketPaint.putString(Constants.EXTRA_PICTURE_PATH_POCKET_PAINT, tempCopy.getAbsolutePath());
        bundleForPocketPaint.putInt(Constants.EXTRA_X_VALUE_POCKET_PAINT, 0);
        bundleForPocketPaint.putInt(Constants.EXTRA_Y_VALUE_POCKET_PAINT, 0);
        intent.putExtras(bundleForPocketPaint);

        intent.addCategory("android.intent.category.LAUNCHER");
        startActivityForResult(intent, LookController.REQUEST_POCKET_PAINT_EDIT_IMAGE);
    } catch (IOException ioException) {
        Log.e(TAG, Log.getStackTraceString(ioException));
    } catch (NullPointerException nullPointerException) {
        Log.e(TAG, Log.getStackTraceString(nullPointerException));
        ToastUtil.showError(getActivity(), R.string.error_load_image);
    }
}

From source file:it.geosolutions.geocollect.android.core.mission.PendingMissionListActivity.java

/**
 * Launches the Map activity/*w ww  .  ja  va  2 s.c o  m*/
 */
public void launchFullMap() {
    // setup map options
    // TODO parametrize it
    Intent launch = new Intent(this, GeoCollectMapActivity.class);
    launch.setAction(Intent.ACTION_VIEW);
    launch.putExtra(MapsActivity.PARAMETERS.CONFIRM_ON_EXIT, false);

    // ArrayList<Layer> layers = (ArrayList<Layer>) LocalPersistence.readObjectFromFile(this, LocalPersistence.CURRENT_MAP);
    // if(layers == null || layers.isEmpty()){

    MissionTemplate t = ((PendingMissionListFragment) getSupportFragmentManager()
            .findFragmentById(R.id.pendingmission_list)).getCurrentMissionTemplate();

    MSMMap m = SpatialDbUtils.mapFromDb();
    ArrayList<String> bg_layers = null;

    try {
        if (t.config != null && t.config.get(MissionTemplate.BG_LAYERS_KEY) != null) {
            if (t.config.get(MissionTemplate.BG_LAYERS_KEY) instanceof ArrayList<?>) {
                bg_layers = (ArrayList<String>) t.config.get(MissionTemplate.BG_LAYERS_KEY);
            }
        }
    } catch (ClassCastException cce) {
        if (BuildConfig.DEBUG) {
            Log.w(TAG, "backgroundLayers tag is not an ArrayList, ignoring");
        }
        bg_layers = null;
    }

    // Use only the layers that are related to this Mission
    ArrayList<Layer> layersList = new ArrayList<Layer>();
    Layer layer = null;

    for (Iterator<Layer> it = m.layers.iterator(); it.hasNext();) {
        layer = it.next();
        if (layer.getTitle().equals(t.schema_seg.localSourceStore)
                || layer.getTitle().equals(t.schema_sop.localFormStore)
                || layer.getTitle().equals(t.schema_seg.localSourceStore + MissionTemplate.NEW_NOTICE_SUFFIX)) {

            layersList.add(layer);

        } else if (bg_layers != null && bg_layers.contains(layer.getTitle())) {

            // Adding in the head position, so the layer will
            // be on the last in the LayerSwitcher order 
            layersList.add(0, layer);
        }
    }

    // Set the correct layers
    m.layers = layersList;

    // Set map configurations, if available
    if (t.config != null) {
        if (t.config.get(KEY_MAPSTARTLAT) != null) {
            try {
                double mapStartLat = Double.parseDouble((String) t.config.get(KEY_MAPSTARTLAT));
                launch.putExtra(MapsActivity.PARAMETERS.LAT, mapStartLat);
            } catch (NumberFormatException e) {
                Log.e(TAG, Log.getStackTraceString(e));
            }
        }

        if (t.config.get(KEY_MAPSTARTLON) != null) {
            try {
                double mapStartLon = Double.parseDouble((String) t.config.get(KEY_MAPSTARTLON));
                launch.putExtra(MapsActivity.PARAMETERS.LON, mapStartLon);
            } catch (NumberFormatException e) {
                Log.e(TAG, Log.getStackTraceString(e));
            }
        }

        if (t.config.get(KEY_MAPSTARTZOOM) != null) {
            try {
                int mapStartZoom = Integer.parseInt((String) t.config.get(KEY_MAPSTARTZOOM));
                launch.putExtra(MapsActivity.PARAMETERS.ZOOM_LEVEL, (byte) mapStartZoom);
            } catch (NumberFormatException e) {
                Log.e(TAG, Log.getStackTraceString(e));
            }
        }

    }

    launch.putExtra(MapsActivity.PARAMETERS.ZOOM_LEVEL_MIN, (byte) 11);
    launch.putExtra(MapsActivity.PARAMETERS.ZOOM_LEVEL_MAX, (byte) 22);
    launch.putExtra(MapsActivity.MSM_MAP, m);
    // select here a drawer mode
    launch.putExtra(MapsActivity.PARAMETERS.DRAWER_MODE, DrawerMode.ONLY_LEFT.ordinal());
    // }

    startActivityForResult(launch, SPATIAL_QUERY);
}