Android Open Source - permission-explorer Permission Explorer Activity






From Project

Back to project page permission-explorer.

License

The source code is released under:

Copyright (C) 2012 Rui Gon?alves and Daniel Cibr?o Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),...

If you think the Android project permission-explorer 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 pt.up.fe.ssin.pexplorer.app;
/*from   w w  w. j  a v a  2s  . co  m*/
import java.util.List;

import pt.up.fe.ssin.pexplorer.R;
import pt.up.fe.ssin.pexplorer.data.PermissionCatalog;
import pt.up.fe.ssin.pexplorer.utils.ui.FilterTextWatcher;
import android.app.ListActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PermissionInfo;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class PermissionExplorerActivity extends ListActivity {

    public static final int FILTER_REQ_CODE = 0;

    private PermissionCatalog catalog;
    private List<PermissionInfo> permissions;
    private PermissionListAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        catalog = PermissionCatalog.getInstance(this);
        loadPreferences();

        drawActivity();
    }

    private void loadPreferences() {
        SharedPreferences prefs = getSharedPreferences(Keys.PREFS_FILE,
                MODE_PRIVATE);

        String[] groupNames = prefs.contains(Keys.PREFS_GROUPS) ? prefs
                .getString(Keys.PREFS_GROUPS, null).split(";") : null;
        int level = prefs.getInt(Keys.PREFS_LEVEL, Keys.DEFAULT_LEVEL);
        int relevance = prefs.getInt(Keys.PREFS_RELEVANCE,
                Keys.DEFAULT_RELEVANCE);

        permissions = catalog.filter(catalog.getAll(), groupNames, level,
                relevance);
    }

    private void drawActivity() {
        setContentView(R.layout.perm_list);

        adapter = new PermissionListAdapter(this, permissions);
        adapter.registerDataSetObserver(new ListCounterDataSetObserver());
        setListAdapter(adapter);

        EditText filterText = (EditText) findViewById(R.id.search_box);
        filterText.addTextChangedListener(new FilterTextWatcher(adapter));

        updateListCounter();
    }

    private void updateListCounter() {
        TextView tv = (TextView) findViewById(R.id.list_count);
        tv.setText(String.format(getString(R.string.msg_perm_list_count),
                adapter.getCount()));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        PermissionInfo perm = (PermissionInfo) getListAdapter().getItem(
                position);
        Intent intent = new Intent(this, PermissionInfoActivity.class);
        intent.putExtra(Keys.INTENT_EXT_NAME, perm.name);
        startActivity(intent);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.perm_list, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.filter: {
            Intent intent = new Intent(this, FilterConfigActivity.class);
            startActivityForResult(intent, FILTER_REQ_CODE);
            return true;
        }

        case R.id.reload: {
            PermissionCatalog.getInstance(this).reload();
            Intent intent = new Intent(this, PermissionExplorerActivity.class);
            startActivity(intent);
            finish();
            return true;
        }

        default:
            return super.onOptionsItemSelected(item);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {

        case FILTER_REQ_CODE:
            if (resultCode != RESULT_OK)
                return;
            loadPreferences();
            drawActivity();
            return;

        default:
            super.onActivityResult(requestCode, resultCode, data);
            return;
        }
    }

    private class ListCounterDataSetObserver extends DataSetObserver {

        @Override
        public void onChanged() {
            super.onChanged();
            updateListCounter();
        }

        @Override
        public void onInvalidated() {
            super.onInvalidated();
            updateListCounter();
        }
    }
}




Java Source Code List

pt.up.fe.ssin.pexplorer.actions.AccessFineLocationAction.java
pt.up.fe.ssin.pexplorer.actions.AccessNetworkStateAction.java
pt.up.fe.ssin.pexplorer.actions.ChangeWifiStateAction.java
pt.up.fe.ssin.pexplorer.actions.GetAccountsAction.java
pt.up.fe.ssin.pexplorer.actions.InternetAccessAction.java
pt.up.fe.ssin.pexplorer.actions.PhoneCallAction.java
pt.up.fe.ssin.pexplorer.actions.ReadCalendarAction.java
pt.up.fe.ssin.pexplorer.actions.ReadContactsAction.java
pt.up.fe.ssin.pexplorer.actions.ReadPhoneStateAction.java
pt.up.fe.ssin.pexplorer.actions.RebootAction.java
pt.up.fe.ssin.pexplorer.actions.RetrieveRunningTasksAction.java
pt.up.fe.ssin.pexplorer.actions.SendTestSmsAction.java
pt.up.fe.ssin.pexplorer.actions.ShellCommandAction.java
pt.up.fe.ssin.pexplorer.actions.TakePictureAction.java
pt.up.fe.ssin.pexplorer.actions.TakePictureActivity.java
pt.up.fe.ssin.pexplorer.actions.VibrateAction.java
pt.up.fe.ssin.pexplorer.actions.WriteCalendarAction.java
pt.up.fe.ssin.pexplorer.actions.WriteExternalStorageAction.java
pt.up.fe.ssin.pexplorer.actions.WriteSettingsAction.java
pt.up.fe.ssin.pexplorer.app.ActionRegistry.java
pt.up.fe.ssin.pexplorer.app.ApplicationListAdapter.java
pt.up.fe.ssin.pexplorer.app.FilterConfigActivity.java
pt.up.fe.ssin.pexplorer.app.Keys.java
pt.up.fe.ssin.pexplorer.app.PermissionAction.java
pt.up.fe.ssin.pexplorer.app.PermissionExplorerActivity.java
pt.up.fe.ssin.pexplorer.app.PermissionInfoActivity.java
pt.up.fe.ssin.pexplorer.app.PermissionListAdapter.java
pt.up.fe.ssin.pexplorer.data.GlobalSchema.java
pt.up.fe.ssin.pexplorer.data.PermissionCatalog.java
pt.up.fe.ssin.pexplorer.data.PermissionDBOperations.java
pt.up.fe.ssin.pexplorer.data.PermissionExplorerContentProvider.java
pt.up.fe.ssin.pexplorer.entities.Contact.java
pt.up.fe.ssin.pexplorer.utils.ApplicationDetailsHelper.java
pt.up.fe.ssin.pexplorer.utils.Pair.java
pt.up.fe.ssin.pexplorer.utils.PermissionUtils.java
pt.up.fe.ssin.pexplorer.utils.ui.AlertDialogHelper.java
pt.up.fe.ssin.pexplorer.utils.ui.CheckedLinearLayout.java
pt.up.fe.ssin.pexplorer.utils.ui.CheckedRelativeLayout.java
pt.up.fe.ssin.pexplorer.utils.ui.FilterTextWatcher.java
pt.up.fe.ssin.pexplorer.utils.ui.InputDialogBuilder.java
pt.up.fe.ssin.pexplorer.utils.ui.SimpleObjectAdapter.java
pt.up.fe.ssin.pexplorer.utils.ui.views.NonEventBlockingScrollView.java