Example usage for android.net Uri getAuthority

List of usage examples for android.net Uri getAuthority

Introduction

In this page you can find the example usage for android.net Uri getAuthority.

Prototype

@Nullable
public abstract String getAuthority();

Source Link

Document

Gets the decoded authority part of this URI.

Usage

From source file:org.opendatakit.survey.activities.MainMenuActivity.java

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

    // android.os.Debug.waitForDebugger();
    submenuPage = getIntentExtras().getString("_sync_state");
    try {/*from w  w  w. j a va 2s.  c  o  m*/
        // ensure that we have a BackgroundTaskFragment...
        // create it programmatically because if we place it in the
        // layout XML, it will be recreated with each screen rotation
        // and we don't want that!!!
        mPropertyManager = new PropertyManager(this);

        // must be at the beginning of any activity that can be called from an
        // external intent
        setAppName(ODKFileUtils.getOdkDefaultAppName());
        Uri uri = getIntent().getData();
        Uri formUri = null;
        if (uri != null) {
            // initialize to the URI, then we will customize further based upon the
            // savedInstanceState...
            final Uri uriFormsProvider = FormsProviderAPI.CONTENT_URI;
            final Uri uriWebView = UrlUtils.getWebViewContentUri(this);
            if (uri.getScheme().equalsIgnoreCase(uriFormsProvider.getScheme())
                    && uri.getAuthority().equalsIgnoreCase(uriFormsProvider.getAuthority())) {
                List<String> segments = uri.getPathSegments();
                if (segments != null && segments.size() == 1) {
                    String appName = segments.get(0);
                    setAppName(appName);
                } else if (segments != null && segments.size() >= 2) {
                    String appName = segments.get(0);
                    setAppName(appName);
                    String tableId = segments.get(1);
                    String formId = (segments.size() > 2) ? segments.get(2) : null;
                    formUri = Uri.withAppendedPath(Uri.withAppendedPath(
                            Uri.withAppendedPath(FormsProviderAPI.CONTENT_URI, appName), tableId), formId);
                } else {
                    createErrorDialog(getString(R.string.invalid_uri_expecting_n_segments, uri.toString(), 2),
                            EXIT);
                    return;
                }
            } else if (uri.getScheme().equals(uriWebView.getScheme())
                    && uri.getAuthority().equals(uriWebView.getAuthority())
                    && uri.getPort() == uriWebView.getPort()) {
                List<String> segments = uri.getPathSegments();
                if (segments != null && segments.size() == 1) {
                    String appName = segments.get(0);
                    setAppName(appName);
                } else {
                    createErrorDialog(getString(R.string.invalid_uri_expecting_one_segment, uri.toString()),
                            EXIT);
                    return;
                }

            } else {
                createErrorDialog(getString(R.string.unrecognized_uri, uri.toString(), uriWebView.toString(),
                        uriFormsProvider.toString()), EXIT);
                return;
            }
        }

        if (savedInstanceState != null) {
            // if appName is explicitly set, use it...
            setAppName(savedInstanceState.containsKey(IntentConsts.INTENT_KEY_APP_NAME)
                    ? savedInstanceState.getString(IntentConsts.INTENT_KEY_APP_NAME)
                    : getAppName());

            if (savedInstanceState.containsKey(CONFLICT_TABLES)) {
                mConflictTables = savedInstanceState.getBundle(CONFLICT_TABLES);
            }
        }

        try {
            String appName = getAppName();
            if (appName != null && appName.length() != 0) {
                ODKFileUtils.verifyExternalStorageAvailability();
                ODKFileUtils.assertDirectoryStructure(appName);
            }
        } catch (RuntimeException e) {
            createErrorDialog(e.getMessage(), EXIT);
            return;
        }

        WebLogger.getLogger(getAppName()).i(t, "Starting up, creating directories");

        if (savedInstanceState != null) {
            // if we are restoring, assume that initialization has already occurred.

            dispatchStringWaitingForData = savedInstanceState.containsKey(DISPATCH_STRING_WAITING_FOR_DATA)
                    ? savedInstanceState.getString(DISPATCH_STRING_WAITING_FOR_DATA)
                    : null;
            actionWaitingForData = savedInstanceState.containsKey(ACTION_WAITING_FOR_DATA)
                    ? savedInstanceState.getString(ACTION_WAITING_FOR_DATA)
                    : null;

            currentFragment = ScreenList.valueOf(savedInstanceState.containsKey(CURRENT_FRAGMENT)
                    ? savedInstanceState.getString(CURRENT_FRAGMENT)
                    : currentFragment.name());

            if (savedInstanceState.containsKey(FORM_URI)) {
                FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(),
                        Uri.parse(savedInstanceState.getString(FORM_URI)));
                if (newForm != null) {
                    setAppName(newForm.appName);
                    setCurrentForm(newForm);
                }
            }
            setInstanceId(
                    savedInstanceState.containsKey(INSTANCE_ID) ? savedInstanceState.getString(INSTANCE_ID)
                            : getInstanceId());
            setUploadTableId(savedInstanceState.containsKey(UPLOAD_TABLE_ID)
                    ? savedInstanceState.getString(UPLOAD_TABLE_ID)
                    : getUploadTableId());

            String tmpScreenPath = savedInstanceState.containsKey(SCREEN_PATH)
                    ? savedInstanceState.getString(SCREEN_PATH)
                    : getScreenPath();
            String tmpControllerState = savedInstanceState.containsKey(CONTROLLER_STATE)
                    ? savedInstanceState.getString(CONTROLLER_STATE)
                    : getControllerState();
            setSectionScreenState(tmpScreenPath, tmpControllerState);

            setAuxillaryHash(savedInstanceState.containsKey(AUXILLARY_HASH)
                    ? savedInstanceState.getString(AUXILLARY_HASH)
                    : getAuxillaryHash());

            if (savedInstanceState.containsKey(SESSION_VARIABLES)) {
                sessionVariables = savedInstanceState.getBundle(SESSION_VARIABLES);
            }

            if (savedInstanceState.containsKey(SECTION_STATE_SCREEN_HISTORY)) {
                sectionStateScreenHistory = savedInstanceState
                        .getParcelableArrayList(SECTION_STATE_SCREEN_HISTORY);
            }

            if (savedInstanceState.containsKey(QUEUED_ACTIONS)) {
                String[] actionOutcomesArray = savedInstanceState.getStringArray(QUEUED_ACTIONS);
                queuedActions.clear();
                queuedActions.addAll(Arrays.asList(actionOutcomesArray));
            }

            if (savedInstanceState != null && savedInstanceState.containsKey(RESPONSE_JSON)) {
                String[] pendingResponseJSON = savedInstanceState.getStringArray(RESPONSE_JSON);
                queueResponseJSON.addAll(Arrays.asList(pendingResponseJSON));
            }
        } else if (formUri != null) {
            // request specifies a specific formUri -- try to open that
            FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(), formUri);
            if (newForm == null) {
                // can't find it -- launch the initialization dialog to hopefully
                // discover it.
                WebLogger.getLogger(getAppName()).i(t, "onCreate -- calling setRunInitializationTask");
                ((Survey) getApplication()).setRunInitializationTask(getAppName());
                currentFragment = ScreenList.WEBKIT;
            } else {
                transitionToFormHelper(uri, newForm);
            }
        }
    } catch (Exception e) {
        createErrorDialog(e.getMessage(), EXIT);
    } finally {
        setContentView(R.layout.main_screen);

        ActionBar actionBar = getActionBar();
        actionBar.show();
    }
}

From source file:org.opendatakit.survey.android.activities.MainMenuActivity.java

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

    // android.os.Debug.waitForDebugger();

    mPropertyManager = new PropertyManager(this);

    // must be at the beginning of any activity that can be called from an
    // external intent
    setAppName("survey");
    Uri uri = getIntent().getData();
    Uri formUri = null;//w  ww .j av a  2 s . c o  m

    if (uri != null) {
        // initialize to the URI, then we will customize further based upon the
        // savedInstanceState...
        final Uri uriFormsProvider = FormsProviderAPI.CONTENT_URI;
        final Uri uriWebView = UrlUtils.getWebViewContentUri(this);
        if (uri.getScheme().equalsIgnoreCase(uriFormsProvider.getScheme())
                && uri.getAuthority().equalsIgnoreCase(uriFormsProvider.getAuthority())) {
            List<String> segments = uri.getPathSegments();
            if (segments != null && segments.size() == 1) {
                String appName = segments.get(0);
                setAppName(appName);
            } else if (segments != null && segments.size() >= 2) {
                String appName = segments.get(0);
                setAppName(appName);
                formUri = Uri.withAppendedPath(Uri.withAppendedPath(uriFormsProvider, appName),
                        segments.get(1));
            } else {
                assignContentView();
                createErrorDialog(getString(R.string.invalid_uri_expecting_n_segments, uri.toString(), 2),
                        EXIT);
                return;
            }
        } else if (uri.getScheme().equals(uriWebView.getScheme())
                && uri.getAuthority().equals(uriWebView.getAuthority())
                && uri.getPort() == uriWebView.getPort()) {
            List<String> segments = uri.getPathSegments();
            if (segments != null && segments.size() == 1) {
                String appName = segments.get(0);
                setAppName(appName);
            } else {
                assignContentView();
                createErrorDialog(getString(R.string.invalid_uri_expecting_one_segment, uri.toString()), EXIT);
                return;
            }

        } else {
            assignContentView();
            createErrorDialog(getString(R.string.unrecognized_uri, uri.toString(), uriWebView.toString(),
                    uriFormsProvider.toString()), EXIT);
            return;
        }
    }

    if (savedInstanceState != null) {
        // if appName is explicitly set, use it...
        setAppName(savedInstanceState.containsKey(APP_NAME) ? savedInstanceState.getString(APP_NAME)
                : getAppName());

        if (savedInstanceState.containsKey(CONFLICT_TABLES)) {
            mConflictTables = savedInstanceState.getBundle(CONFLICT_TABLES);
        }
    }

    WebLogger.getLogger(getAppName()).i(t, "Starting up, creating directories");
    try {
        String appName = getAppName();
        if (appName != null && appName.length() != 0) {
            ODKFileUtils.verifyExternalStorageAvailability();
            ODKFileUtils.assertDirectoryStructure(appName);
        }
    } catch (RuntimeException e) {
        assignContentView();
        createErrorDialog(e.getMessage(), EXIT);
        return;
    }

    if (savedInstanceState != null) {
        // if we are restoring, assume that initialization has already occurred.

        pageWaitingForData = savedInstanceState.containsKey(PAGE_WAITING_FOR_DATA)
                ? savedInstanceState.getString(PAGE_WAITING_FOR_DATA)
                : null;
        pathWaitingForData = savedInstanceState.containsKey(PATH_WAITING_FOR_DATA)
                ? savedInstanceState.getString(PATH_WAITING_FOR_DATA)
                : null;
        actionWaitingForData = savedInstanceState.containsKey(ACTION_WAITING_FOR_DATA)
                ? savedInstanceState.getString(ACTION_WAITING_FOR_DATA)
                : null;

        currentFragment = ScreenList.valueOf(savedInstanceState.containsKey(CURRENT_FRAGMENT)
                ? savedInstanceState.getString(CURRENT_FRAGMENT)
                : currentFragment.name());

        if (savedInstanceState.containsKey(FORM_URI)) {
            FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(),
                    Uri.parse(savedInstanceState.getString(FORM_URI)));
            if (newForm != null) {
                setAppName(newForm.appName);
                setCurrentForm(newForm);
            }
        }
        setInstanceId(savedInstanceState.containsKey(INSTANCE_ID) ? savedInstanceState.getString(INSTANCE_ID)
                : getInstanceId());
        setUploadTableId(
                savedInstanceState.containsKey(UPLOAD_TABLE_ID) ? savedInstanceState.getString(UPLOAD_TABLE_ID)
                        : getUploadTableId());

        String tmpScreenPath = savedInstanceState.containsKey(SCREEN_PATH)
                ? savedInstanceState.getString(SCREEN_PATH)
                : getScreenPath();
        String tmpControllerState = savedInstanceState.containsKey(CONTROLLER_STATE)
                ? savedInstanceState.getString(CONTROLLER_STATE)
                : getControllerState();
        setSectionScreenState(tmpScreenPath, tmpControllerState);

        setAuxillaryHash(
                savedInstanceState.containsKey(AUXILLARY_HASH) ? savedInstanceState.getString(AUXILLARY_HASH)
                        : getAuxillaryHash());

        if (savedInstanceState.containsKey(SESSION_VARIABLES)) {
            sessionVariables = savedInstanceState.getBundle(SESSION_VARIABLES);
        }

        if (savedInstanceState.containsKey(SECTION_STATE_SCREEN_HISTORY)) {
            sectionStateScreenHistory = savedInstanceState.getParcelableArrayList(SECTION_STATE_SCREEN_HISTORY);
        }
    } else if (formUri != null) {
        // request specifies a specific formUri -- try to open that
        FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(), formUri);
        if (newForm == null) {
            // can't find it -- launch the initialization dialog to hopefully
            // discover it.
            WebLogger.getLogger(getAppName()).i(t, "onCreate -- calling setRunInitializationTask");
            Survey.getInstance().setRunInitializationTask(getAppName());
            currentFragment = ScreenList.WEBKIT;
        } else {
            transitionToFormHelper(uri, newForm);
        }
    }

    assignContentView();
}

From source file:group.pals.android.lib.ui.filechooser.FragmentFiles.java

/**
 * As the name means.// w  w  w.j a  v  a2s  . c o  m
 */
private void buildAddressBar(final Uri path) {
    if (path == null)
        return;

    mViewAddressBar.removeAllViews();

    new LoadingDialog<Void, Cursor, Void>(getActivity(), false) {

        LinearLayout.LayoutParams lpBtnLoc;
        LinearLayout.LayoutParams lpDivider;
        LayoutInflater inflater = getLayoutInflater(null);
        final int dim = getResources().getDimensionPixelSize(R.dimen.afc_5dp);
        int count = 0;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            lpBtnLoc = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            lpBtnLoc.gravity = Gravity.CENTER;
        }// onPreExecute()

        @Override
        protected Void doInBackground(Void... params) {
            Cursor cursor = getActivity().getContentResolver().query(path, null, null, null, null);
            while (cursor != null) {
                if (cursor.moveToFirst()) {
                    publishProgress(cursor);
                    cursor.close();
                } else
                    break;

                /*
                 * Process the parent directory.
                 */
                Uri uri = Uri.parse(cursor.getString(cursor.getColumnIndex(BaseFile.COLUMN_URI)));
                cursor = getActivity().getContentResolver()
                        .query(BaseFile.genContentUriApi(uri.getAuthority()).buildUpon()
                                .appendPath(BaseFile.CMD_GET_PARENT)
                                .appendQueryParameter(BaseFile.PARAM_SOURCE, uri.getLastPathSegment()).build(),
                                null, null, null, null);
            } // while

            return null;
        }// doInBackground()

        @Override
        protected void onProgressUpdate(Cursor... progress) {
            /*
             * Add divider.
             */
            if (mViewAddressBar.getChildCount() > 0) {
                View divider = inflater.inflate(R.layout.afc_view_locations_divider, null);

                if (lpDivider == null) {
                    lpDivider = new LinearLayout.LayoutParams(dim, dim);
                    lpDivider.gravity = Gravity.CENTER;
                    lpDivider.setMargins(dim, dim, dim, dim);
                }
                mViewAddressBar.addView(divider, 0, lpDivider);
            }

            Uri lastUri = Uri.parse(progress[0].getString(progress[0].getColumnIndex(BaseFile.COLUMN_URI)));

            TextView btnLoc = (TextView) inflater.inflate(R.layout.afc_button_location, null);
            String name = BaseFileProviderUtils.getFileName(progress[0]);
            btnLoc.setText(TextUtils.isEmpty(name) ? getString(R.string.afc_root) : name);
            btnLoc.setTag(lastUri);
            btnLoc.setOnClickListener(mBtnLocationOnClickListener);
            btnLoc.setOnLongClickListener(mBtnLocationOnLongClickListener);
            mViewAddressBar.addView(btnLoc, 0, lpBtnLoc);

            if (count++ == 0) {
                Rect r = new Rect();
                btnLoc.getPaint().getTextBounds(name, 0, name.length(), r);
                if (r.width() >= getResources().getDimensionPixelSize(R.dimen.afc_button_location_max_width)
                        - btnLoc.getPaddingLeft() - btnLoc.getPaddingRight()) {
                    mTextFullDirName
                            .setText(progress[0].getString(progress[0].getColumnIndex(BaseFile.COLUMN_NAME)));
                    mTextFullDirName.setVisibility(View.VISIBLE);
                } else
                    mTextFullDirName.setVisibility(View.GONE);
            } // if
        }// onProgressUpdate()

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            /*
             * Sometimes without delay time, it doesn't work...
             */
            mViewLocationsContainer.postDelayed(new Runnable() {

                public void run() {
                    mViewLocationsContainer.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
                }// run()
            }, DisplayPrefs.DELAY_TIME_FOR_VERY_SHORT_ANIMATION);
        }// onPostExecute()

    }.execute();
}

From source file:org.path.episample.android.activities.MainMenuActivity.java

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

    // android.os.Debug.waitForDebugger();

    mPropertyManager = new PropertyManager(this);
    mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

    // must be at the beginning of any activity that can be called from an
    // external intent
    setAppName("survey");
    Uri uri = getIntent().getData();
    Uri formUri = null;/*  ww w  .j  a  va 2 s  . co  m*/

    if (uri != null) {
        // initialize to the URI, then we will customize further based upon the
        // savedInstanceState...
        final Uri uriFormsProvider = FormsProviderAPI.CONTENT_URI;
        final Uri uriWebView = UrlUtils.getWebViewContentUri(this);
        if (uri.getScheme().equalsIgnoreCase(uriFormsProvider.getScheme())
                && uri.getAuthority().equalsIgnoreCase(uriFormsProvider.getAuthority())) {
            List<String> segments = uri.getPathSegments();
            if (segments != null && segments.size() == 1) {
                String appName = segments.get(0);
                setAppName(appName);
            } else if (segments != null && segments.size() >= 2) {
                String appName = segments.get(0);
                setAppName(appName);
                formUri = Uri.withAppendedPath(Uri.withAppendedPath(uriFormsProvider, appName),
                        segments.get(1));
            } else {
                assignContentView();
                createErrorDialog(getString(R.string.invalid_uri_expecting_n_segments, uri.toString(), 2),
                        EXIT);
                return;
            }
        } else if (uri.getScheme().equals(uriWebView.getScheme())
                && uri.getAuthority().equals(uriWebView.getAuthority())
                && uri.getPort() == uriWebView.getPort()) {
            List<String> segments = uri.getPathSegments();
            if (segments != null && segments.size() == 1) {
                String appName = segments.get(0);
                setAppName(appName);
            } else {
                assignContentView();
                createErrorDialog(getString(R.string.invalid_uri_expecting_one_segment, uri.toString()), EXIT);
                return;
            }

        } else {
            assignContentView();
            createErrorDialog(getString(R.string.unrecognized_uri, uri.toString(), uriWebView.toString(),
                    uriFormsProvider.toString()), EXIT);
            return;
        }
    }

    if (savedInstanceState != null) {
        // if appName is explicitly set, use it...
        setAppName(savedInstanceState.containsKey(APP_NAME) ? savedInstanceState.getString(APP_NAME)
                : getAppName());

        if (savedInstanceState.containsKey(CONFLICT_TABLES)) {
            mConflictTables = savedInstanceState.getBundle(CONFLICT_TABLES);
        }
    }

    WebLogger.getLogger(getAppName()).i(t, "Starting up, creating directories");
    try {
        String appName = getAppName();
        if (appName != null && appName.length() != 0) {
            ODKFileUtils.verifyExternalStorageAvailability();
            ODKFileUtils.assertDirectoryStructure(appName);
        }
    } catch (RuntimeException e) {
        assignContentView();
        createErrorDialog(e.getMessage(), EXIT);
        return;
    }

    if (savedInstanceState != null) {
        // if we are restoring, assume that initialization has already occurred.

        pageWaitingForData = savedInstanceState.containsKey(PAGE_WAITING_FOR_DATA)
                ? savedInstanceState.getString(PAGE_WAITING_FOR_DATA)
                : null;
        pathWaitingForData = savedInstanceState.containsKey(PATH_WAITING_FOR_DATA)
                ? savedInstanceState.getString(PATH_WAITING_FOR_DATA)
                : null;
        actionWaitingForData = savedInstanceState.containsKey(ACTION_WAITING_FOR_DATA)
                ? savedInstanceState.getString(ACTION_WAITING_FOR_DATA)
                : null;

        currentFragment = ScreenList.valueOf(savedInstanceState.containsKey(CURRENT_FRAGMENT)
                ? savedInstanceState.getString(CURRENT_FRAGMENT)
                : currentFragment.name());

        if (savedInstanceState.containsKey(FORM_URI)) {
            FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(),
                    Uri.parse(savedInstanceState.getString(FORM_URI)));
            if (newForm != null) {
                setAppName(newForm.appName);
                setCurrentForm(newForm);
            }
        }
        setInstanceId(savedInstanceState.containsKey(INSTANCE_ID) ? savedInstanceState.getString(INSTANCE_ID)
                : getInstanceId());
        setUploadTableId(
                savedInstanceState.containsKey(UPLOAD_TABLE_ID) ? savedInstanceState.getString(UPLOAD_TABLE_ID)
                        : getUploadTableId());

        String tmpScreenPath = savedInstanceState.containsKey(SCREEN_PATH)
                ? savedInstanceState.getString(SCREEN_PATH)
                : getScreenPath();
        String tmpControllerState = savedInstanceState.containsKey(CONTROLLER_STATE)
                ? savedInstanceState.getString(CONTROLLER_STATE)
                : getControllerState();
        setSectionScreenState(tmpScreenPath, tmpControllerState);

        setAuxillaryHash(
                savedInstanceState.containsKey(AUXILLARY_HASH) ? savedInstanceState.getString(AUXILLARY_HASH)
                        : getAuxillaryHash());

        if (savedInstanceState.containsKey(SESSION_VARIABLES)) {
            sessionVariables = savedInstanceState.getBundle(SESSION_VARIABLES);
        }

        if (savedInstanceState.containsKey(SECTION_STATE_SCREEN_HISTORY)) {
            sectionStateScreenHistory = savedInstanceState.getParcelableArrayList(SECTION_STATE_SCREEN_HISTORY);
        }
    } else if (formUri != null) {
        // request specifies a specific formUri -- try to open that
        FormIdStruct newForm = FormIdStruct.retrieveFormIdStruct(getContentResolver(), formUri);
        if (newForm == null) {
            // can't find it -- launch the initialization dialog to hopefully
            // discover it.
            WebLogger.getLogger(getAppName()).i(t, "onCreate -- calling setRunInitializationTask");
            Survey.getInstance().setRunInitializationTask(getAppName());
            currentFragment = ScreenList.WEBKIT;
        } else {
            transitionToFormHelper(uri, newForm);
        }
    }

    assignContentView();
}

From source file:com.haibison.android.anhuu.FragmentFiles.java

/**
 * As the name means./*  w  w w.ja  va2s. c o m*/
 */
private void buildAddressBar(final Uri path) {
    if (path == null)
        return;

    mViewAddressBar.removeAllViews();

    new LoadingDialog<Void, Cursor, Void>(getActivity(), false) {

        LinearLayout.LayoutParams lpBtnLoc;
        LinearLayout.LayoutParams lpDivider;
        LayoutInflater inflater = getLayoutInflater(null);
        final int dim = getResources().getDimensionPixelSize(R.dimen.anhuu_f5be488d_5dp);
        int count = 0;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            lpBtnLoc = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            lpBtnLoc.gravity = Gravity.CENTER;
        }// onPreExecute()

        @Override
        protected Void doInBackground(Void... params) {
            Cursor cursor = getActivity().getContentResolver().query(path, null, null, null, null);
            while (cursor != null) {
                if (cursor.moveToFirst()) {
                    publishProgress(cursor);
                    cursor.close();
                } else
                    break;

                /*
                 * Process the parent directory.
                 */
                Uri uri = Uri.parse(cursor.getString(cursor.getColumnIndex(BaseFile.COLUMN_URI)));
                cursor = getActivity().getContentResolver()
                        .query(BaseFile.genContentUriApi(uri.getAuthority()).buildUpon()
                                .appendPath(BaseFile.CMD_GET_PARENT)
                                .appendQueryParameter(BaseFile.PARAM_SOURCE, uri.getLastPathSegment()).build(),
                                null, null, null, null);
            } // while

            return null;
        }// doInBackground()

        @Override
        protected void onProgressUpdate(Cursor... progress) {
            /*
             * Add divider.
             */
            if (mViewAddressBar.getChildCount() > 0) {
                View divider = inflater.inflate(R.layout.anhuu_f5be488d_view_locations_divider, null);

                if (lpDivider == null) {
                    lpDivider = new LinearLayout.LayoutParams(dim, dim);
                    lpDivider.gravity = Gravity.CENTER;
                    lpDivider.setMargins(dim, dim, dim, dim);
                }
                mViewAddressBar.addView(divider, 0, lpDivider);
            }

            Uri lastUri = Uri.parse(progress[0].getString(progress[0].getColumnIndex(BaseFile.COLUMN_URI)));

            TextView btnLoc = (TextView) inflater.inflate(R.layout.anhuu_f5be488d_button_location, null);
            String name = BaseFileProviderUtils.getFileName(progress[0]);
            btnLoc.setText(TextUtils.isEmpty(name) ? getString(R.string.anhuu_f5be488d_root) : name);
            btnLoc.setTag(lastUri);
            btnLoc.setOnClickListener(mBtnLocationOnClickListener);
            btnLoc.setOnLongClickListener(mBtnLocationOnLongClickListener);
            mViewAddressBar.addView(btnLoc, 0, lpBtnLoc);

            if (count++ == 0) {
                Rect r = new Rect();
                btnLoc.getPaint().getTextBounds(name, 0, name.length(), r);
                if (r.width() >= getResources()
                        .getDimensionPixelSize(R.dimen.anhuu_f5be488d_button_location_max_width)
                        - btnLoc.getPaddingLeft() - btnLoc.getPaddingRight()) {
                    mTextFullDirName
                            .setText(progress[0].getString(progress[0].getColumnIndex(BaseFile.COLUMN_NAME)));
                    mTextFullDirName.setVisibility(View.VISIBLE);
                } else
                    mTextFullDirName.setVisibility(View.GONE);
            } // if
        }// onProgressUpdate()

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            /*
             * Sometimes without delay time, it doesn't work...
             */
            mViewLocationsContainer.postDelayed(new Runnable() {

                public void run() {
                    mViewLocationsContainer.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
                }// run()
            }, Display.DELAY_TIME_FOR_VERY_SHORT_ANIMATION);
        }// onPostExecute()

    }.execute();
}

From source file:group.pals.android.lib.ui.filechooser.FragmentFiles.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    mLoading = true;//ww w  . ja va 2s .c o m
    mNewLoader = true;

    mViewGroupFiles.setVisibility(View.GONE);
    mViewLoadingHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            mViewLoading.setVisibility(View.VISIBLE);
        }// run()
    }, DisplayPrefs.DELAY_TIME_FOR_SHORT_ANIMATION);

    getActivity().supportInvalidateOptionsMenu();

    final Uri path = ((Uri) args.getParcelable(PATH));
    buildAddressBar(path);

    String positiveRegex = getArguments().getString(FileChooserActivity.EXTRA_POSITIVE_REGEX_FILTER);
    String negativeRegex = getArguments().getString(FileChooserActivity.EXTRA_NEGATIVE_REGEX_FILTER);

    if (BuildConfig.DEBUG)
        Log.d(CLASSNAME, "onCreateLoader() >> path = " + path);

    return new CursorLoader(getActivity(), BaseFile.genContentUriBase(path.getAuthority()).buildUpon()
            .appendPath(path.getLastPathSegment())
            .appendQueryParameter(BaseFile.PARAM_TASK_ID, Integer.toString(mIdLoaderData))
            .appendQueryParameter(BaseFile.PARAM_SHOW_HIDDEN_FILES,
                    Boolean.toString(getArguments().getBoolean(FileChooserActivity.EXTRA_DISPLAY_HIDDEN_FILES)))
            .appendQueryParameter(BaseFile.PARAM_FILTER_MODE, Integer.toString(mFilterMode))
            .appendQueryParameter(BaseFile.PARAM_SORT_BY,
                    Integer.toString(DisplayPrefs.getSortType(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_SORT_ASCENDING,
                    Boolean.toString(DisplayPrefs.isSortAscending(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_LIMIT, Integer.toString(mMaxFileCount))
            .appendQueryParameter(BaseFile.PARAM_POSITIVE_REGEX_FILTER,
                    TextUtils.isEmpty(positiveRegex) ? "" : positiveRegex)
            .appendQueryParameter(BaseFile.PARAM_NEGATIVE_REGEX_FILTER,
                    TextUtils.isEmpty(negativeRegex) ? "" : negativeRegex)
            .build(), null, null, null, null);
}

From source file:com.haibison.android.anhuu.FragmentFiles.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    mLoading = true;/*  w  w  w .  j a  va2s . c  o  m*/
    mNewLoader = true;

    mViewGroupFiles.setVisibility(View.GONE);
    mViewLoadingHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            mViewLoading.setVisibility(View.VISIBLE);
        }// run()
    }, Display.DELAY_TIME_FOR_SHORT_ANIMATION);

    getActivity().supportInvalidateOptionsMenu();

    final Uri path = ((Uri) args.getParcelable(PATH));
    buildAddressBar(path);

    String positiveRegex = getArguments().getString(FileChooserActivity.EXTRA_POSITIVE_REGEX_FILTER);
    String negativeRegex = getArguments().getString(FileChooserActivity.EXTRA_NEGATIVE_REGEX_FILTER);

    if (BuildConfig.DEBUG)
        Log.d(CLASSNAME, "onCreateLoader() >> path = " + path);

    return new CursorLoader(getActivity(), BaseFile.genContentUriBase(path.getAuthority()).buildUpon()
            .appendPath(path.getLastPathSegment())
            .appendQueryParameter(BaseFile.PARAM_TASK_ID, Integer.toString(mIdLoaderData))
            .appendQueryParameter(BaseFile.PARAM_SHOW_HIDDEN_FILES,
                    Boolean.toString(getArguments().getBoolean(FileChooserActivity.EXTRA_DISPLAY_HIDDEN_FILES)))
            .appendQueryParameter(BaseFile.PARAM_FILTER_MODE, Integer.toString(mFilterMode))
            .appendQueryParameter(BaseFile.PARAM_SORT_BY, Integer.toString(Display.getSortType(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_SORT_ASCENDING,
                    Boolean.toString(Display.isSortAscending(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_LIMIT, Integer.toString(mMaxFileCount))
            .appendQueryParameter(BaseFile.PARAM_POSITIVE_REGEX_FILTER,
                    TextUtils.isEmpty(positiveRegex) ? "" : positiveRegex)
            .appendQueryParameter(BaseFile.PARAM_NEGATIVE_REGEX_FILTER,
                    TextUtils.isEmpty(negativeRegex) ? "" : negativeRegex)
            .build(), null, null, null, null);
}

From source file:com.android.contacts.quickcontact.QuickContactActivity.java

private void processIntent(Intent intent) {
    if (intent == null) {
        finish();/*from   w w  w .  j  a v a 2  s  . c om*/
        return;
    }
    Uri lookupUri = intent.getData();

    // Check to see whether it comes from the old version.
    if (lookupUri != null && LEGACY_AUTHORITY.equals(lookupUri.getAuthority())) {
        final long rawContactId = ContentUris.parseId(lookupUri);
        lookupUri = RawContacts.getContactLookupUri(getContentResolver(),
                ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
    }
    mExtraMode = getIntent().getIntExtra(QuickContact.EXTRA_MODE, QuickContact.MODE_LARGE);
    mExtraPrioritizedMimeType = getIntent().getStringExtra(QuickContact.EXTRA_PRIORITIZED_MIMETYPE);
    final Uri oldLookupUri = mLookupUri;

    if (lookupUri == null) {
        finish();
        return;
    }
    mLookupUri = lookupUri;
    mExcludeMimes = intent.getStringArrayExtra(QuickContact.EXTRA_EXCLUDE_MIMES);
    if (oldLookupUri == null) {
        mContactLoader = (ContactLoader) getLoaderManager().initLoader(LOADER_CONTACT_ID, null,
                mLoaderContactCallbacks);
    } else if (oldLookupUri != mLookupUri) {
        // After copying a directory contact, the contact URI changes. Therefore,
        // we need to reload the new contact.
        destroyInteractionLoaders();
        mContactLoader = (ContactLoader) (Loader<?>) getLoaderManager().getLoader(LOADER_CONTACT_ID);
        mContactLoader.setLookupUri(mLookupUri);
        mCachedCp2DataCardModel = null;
    }
    mContactLoader.forceLoad();

    NfcHandler.register(this, mLookupUri);
}

From source file:com.haibison.android.anhuu.FragmentFiles.java

/**
 * Updates or inserts {@code path} into history database.
 *//*from ww  w . j  av  a  2s  . co  m*/
private void updateDbHistory(Uri path) {
    if (BuildConfig.DEBUG)
        Log.d(CLASSNAME, "updateDbHistory() >> path = " + path);

    Calendar cal = Calendar.getInstance();
    final long beginTodayMillis = cal.getTimeInMillis() - (cal.get(Calendar.HOUR_OF_DAY) * 60 * 60 * 1000
            + cal.get(Calendar.MINUTE) * 60 * 1000 + cal.get(Calendar.SECOND) * 1000);
    if (BuildConfig.DEBUG) {
        Log.d(CLASSNAME, String.format("beginToday = %s (%s)", DbUtils.formatNumber(beginTodayMillis),
                new Date(beginTodayMillis)));
        Log.d(CLASSNAME,
                String.format("endToday = %s (%s)",
                        DbUtils.formatNumber(beginTodayMillis + DateUtils.DAY_IN_MILLIS),
                        new Date(beginTodayMillis + DateUtils.DAY_IN_MILLIS)));
    }

    /*
     * Does the update and returns the number of rows updated.
     */
    long time = new Date().getTime();
    ContentValues values = new ContentValues();
    values.put(HistoryContract.COLUMN_PROVIDER_ID, BaseFileProviderUtils.getProviderId(path.getAuthority()));
    values.put(HistoryContract.COLUMN_FILE_TYPE, BaseFile.FILE_TYPE_DIRECTORY);
    values.put(HistoryContract.COLUMN_URI, path.toString());
    values.put(HistoryContract.COLUMN_MODIFICATION_TIME, DbUtils.formatNumber(time));

    int count = getActivity().getContentResolver().update(HistoryContract.genContentUri(getActivity()), values,
            String.format("%s >= '%s' and %s < '%s' and %s = %s and %s like %s",
                    HistoryContract.COLUMN_MODIFICATION_TIME, DbUtils.formatNumber(beginTodayMillis),
                    HistoryContract.COLUMN_MODIFICATION_TIME,
                    DbUtils.formatNumber(beginTodayMillis + DateUtils.DAY_IN_MILLIS),
                    HistoryContract.COLUMN_PROVIDER_ID,
                    DatabaseUtils.sqlEscapeString(values.getAsString(HistoryContract.COLUMN_PROVIDER_ID)),
                    HistoryContract.COLUMN_URI,
                    DatabaseUtils.sqlEscapeString(values.getAsString(HistoryContract.COLUMN_URI))),
            null);
    if (count <= 0) {
        values.put(HistoryContract.COLUMN_CREATE_TIME, DbUtils.formatNumber(time));
        getActivity().getContentResolver().insert(HistoryContract.genContentUri(getActivity()), values);
    }
}

From source file:com.haibison.android.anhuu.FragmentFiles.java

/**
 * Connects to file provider service, then loads root directory. If can not,
 * then finishes this activity with result code =
 * {@link Activity#RESULT_CANCELED}//w  w w  .j a  v  a2s .  c o m
 * 
 * @param savedInstanceState
 */
private void loadInitialPath(final Bundle savedInstanceState) {
    if (BuildConfig.DEBUG)
        Log.d(CLASSNAME, String.format("loadInitialPath() >> authority=[%s] | mRoot=[%s]",
                mFileProviderAuthority, mRoot));

    /*
     * Priorities for starting path:
     * 
     * 1. Current location (in case the activity has been killed after
     * configurations changed).
     * 
     * 2. Selected file from key EXTRA_SELECT_FILE.
     * 
     * 3. Root path from key EXTRA_ROOTPATH.
     * 
     * 4. Last location.
     */

    new LoadingDialog<Void, Uri, Bundle>(getActivity(), false) {

        /**
         * In onPostExecute(), if result is null then check this value. If
         * this is not null, show a toast and finish. If this is null, call
         * showCannotConnectToServiceAndWaitForTheUserToFinish().
         */
        String errMsg = null;

        @Override
        protected Bundle doInBackground(Void... params) {
            /*
             * Current location
             */
            Uri path = (Uri) (savedInstanceState != null ? savedInstanceState.getParcelable(CURRENT_LOCATION)
                    : null);

            /*
             * Selected file
             */
            if (path == null) {
                path = (Uri) getArguments().getParcelable(FileChooserActivity.EXTRA_SELECT_FILE);
                if (path != null && BaseFileProviderUtils.fileExists(getActivity(), path))
                    path = BaseFileProviderUtils.getParentFile(getActivity(), path);
            }

            /*
             * Rootpath
             */
            if (path == null || !BaseFileProviderUtils.isDirectory(getActivity(), path)) {
                path = mRoot;
            }

            /*
             * Last location
             */
            if (path == null && Display.isRememberLastLocation(getActivity())) {
                String lastLocation = Display.getLastLocation(getActivity());
                if (lastLocation != null)
                    path = Uri.parse(lastLocation);
            }

            if (path == null || !BaseFileProviderUtils.isDirectory(getActivity(), path))
                path = BaseFileProviderUtils.getDefaultPath(getActivity(),
                        path == null ? mFileProviderAuthority : path.getAuthority());

            if (path == null)
                return null;

            if (BuildConfig.DEBUG)
                Log.d(CLASSNAME, "loadInitialPath() >> " + path);

            publishProgress(path);

            if (BaseFileProviderUtils.fileCanRead(getActivity(), path)) {
                Bundle result = new Bundle();
                result.putParcelable(PATH, path);
                return result;
            } else {
                errMsg = getString(R.string.anhuu_f5be488d_pmsg_cannot_access_dir,
                        BaseFileProviderUtils.getFileName(getActivity(), path));
            }

            return null;
        }// doInBackground()

        @Override
        protected void onProgressUpdate(Uri... progress) {
            setCurrentLocation(progress[0]);
        }// onProgressUpdate()

        @Override
        protected void onPostExecute(Bundle result) {
            super.onPostExecute(result);

            if (result != null) {
                /*
                 * Prepare the loader. Either re-connect with an existing
                 * one, or start a new one.
                 */
                getLoaderManager().initLoader(mIdLoaderData, result, FragmentFiles.this);
            } else if (errMsg != null) {
                Dlg.toast(getActivity(), errMsg, Dlg.LENGTH_SHORT);
                getActivity().finish();
            } else
                showCannotConnectToServiceAndWaitForTheUserToFinish();
        }// onPostExecute()

    }.execute();
}