SocialWidgetConfigureActivity.java revision 2d4f759e29edd983cf6436c06f2a87d847616ed5
12d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann/*
22d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * Copyright (C) 2010 The Android Open Source Project
32d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann *
42d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * Licensed under the Apache License, Version 2.0 (the "License");
52d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * you may not use this file except in compliance with the License.
62d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * You may obtain a copy of the License at
72d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann *
82d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann *      http://www.apache.org/licenses/LICENSE-2.0
92d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann *
102d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * Unless required by applicable law or agreed to in writing, software
112d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * distributed under the License is distributed on an "AS IS" BASIS,
122d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * See the License for the specific language governing permissions and
142d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann * limitations under the License.
152d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann */
162d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
172d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannpackage com.android.contacts.contactSocialWidget;
182d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
192d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannimport android.app.Activity;
202d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannimport android.appwidget.AppWidgetManager;
212d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannimport android.content.Intent;
222d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannimport android.os.Bundle;
232d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannimport android.provider.ContactsContract.Contacts;
242d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
252d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmannpublic class ContactSocialWidgetConfigureActivity extends Activity {
262d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    @Override
272d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    protected void onCreate(Bundle savedInstanceState) {
282d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        super.onCreate(savedInstanceState);
292d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        // If the user presses back, we want to cancel
302d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        setResult(RESULT_CANCELED);
312d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
322d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        // Forward the Intent to the picker
332d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        final Intent pickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
342d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        startActivityForResult(pickerIntent, 0);
352d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    }
362d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
372d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    @Override
382d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
392d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        // We came back from the Picker. If the user actually selected a contact,
402d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        // return it now
412d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        if (resultCode == Activity.RESULT_OK) {
422d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            final Bundle extras = getIntent().getExtras();
432d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            if (extras == null) throw new IllegalStateException("Intent extras are null");
442d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            final int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
452d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann                    AppWidgetManager.INVALID_APPWIDGET_ID);
462d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
472d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            // Save the setting
482d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            final ContactSocialWidgetConfigureActivity context =
492d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann                    ContactSocialWidgetConfigureActivity.this;
502d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            ContactSocialWidgetSettings.setContactUri(context, widgetId, data.getData());
512d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
522d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            // Update the widget
532d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            ContactSocialWidgetProvider.startLoading(context, widgetId);
542d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann
552d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            // Return OK so that the system won't remove the widget
562d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            final Intent resultValue = new Intent();
572d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
582d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann            setResult(RESULT_OK, resultValue);
592d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        }
602d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann        finish();
612d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann    }
622d4f759e29edd983cf6436c06f2a87d847616ed5Daniel Lehmann}
63