com.google.android.apps.dashclock.ExtensionSettingActivityProxy.java Source code

Java tutorial

Introduction

Here is the source code for com.google.android.apps.dashclock.ExtensionSettingActivityProxy.java

Source

/*
 * Copyright 2014 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.android.apps.dashclock;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;

import com.google.android.apps.dashclock.api.DashClockExtension;

/**
 * A proxy activity to launch the settings activity for an extension.
 */
public class ExtensionSettingActivityProxy extends Activity {

    public static final String EXTRA_SETTINGS_ACTIVITY = "settings_activity";

    private static final int RESULT_EXTENSION_SETTINGS = 0;

    private String mExtension;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(android.R.style.Theme_Translucent_NoTitleBar);

        mExtension = getIntent().getStringExtra(DashClockService.EXTRA_COMPONENT_NAME);
        String activity = getIntent().getStringExtra(EXTRA_SETTINGS_ACTIVITY);
        if (mExtension == null || activity == null) {
            finish();
            return;
        }

        try {
            Intent i = new Intent();
            i.setComponent(ComponentName.unflattenFromString(activity));
            startActivityForResult(i, RESULT_EXTENSION_SETTINGS);
        } catch (ActivityNotFoundException ex) {
            finish();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RESULT_EXTENSION_SETTINGS) {
            final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
            Intent intent = new Intent(DashClockService.ACTION_EXTENSION_UPDATE_REQUESTED);
            intent.putExtra(DashClockService.EXTRA_COMPONENT_NAME, mExtension);
            intent.putExtra(DashClockService.EXTRA_UPDATE_REASON,
                    DashClockExtension.UPDATE_REASON_SETTINGS_CHANGED);
            lbm.sendBroadcast(intent);
        }
        finish();
    }
}