/* ConfirmAuthActivity.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.localoauth.activity; import android.app.Activity; import android.app.FragmentManager; import android.os.Bundle; import android.view.KeyEvent; import android.view.Window; import org.deviceconnect.android.R; import org.deviceconnect.android.localoauth.fragment.ConfirmAuthFragment; /** * 認証確認画面. * <p> * ・Intentに下記のパラメータを指定して起動すること。<br> * - EXTRA_THREADID : ServiceのスレッドIDを設定する。<br> * - EXTRA_APPLICATIONNAME : アプリケーション名を設定する。<br> * - EXTRA_SCOPES : スコープを設定する。<br> * - EXTRA_DISPLAY_SCOPES : 表示スコープを設定する。<br> * - EXTRA_MESSAGEID : * 許可/拒否のステータスを、BindされたServiceにMessage通知する際に使用するメッセージIDを設定する。<br> * Messageのarg1にスレッドIDを、arg2に承認ステータス(1なら許可/0なら拒否)を返す。<br> * - EXTRA_DEVICEID : サービスID(デバイスプラグインの場合のみ設定する)<br> * - EXTRA_IS_FOR_DEVICEPLUGIN : デバイスプラグインの認証確認画面の場合はtrueを、アプリの場合はfalseを設定する。<br> * - EXTRA_SERVICE_PACKAGE_NAME : Messageを受信するServiceのパッケージ名.<br> * </p> * @author NTT DOCOMO, INC. */ public class ConfirmAuthActivity extends Activity { /** EXTRA: 呼び出し元のスレッドID. */ public static final String EXTRA_THREADID = "thread_id"; /** EXTRA: アプリケーション名(例: "SW2デバイスプラグイン", "Twitterイベントプラグイン"). */ public static final String EXTRA_APPLICATIONNAME = "application_name"; /** EXTRA: パッケージ名. */ public static final String EXTRA_PACKAGE_NAME = "package_name"; /** EXTRA: キーワード. */ public static final String EXTRA_KEYWORD = "keyword"; /** EXTRA: スコープ(例: "file", "notification", "vibration"). */ public static final String EXTRA_SCOPES = "scopes"; /** EXTRA: 表示スコープ(例: "ファイル", "通知", "バイブレーション"). */ public static final String EXTRA_DISPLAY_SCOPES = "display_scopes"; /** EXTRA: デバイスプラグイン用の発行?(true: デバイスプラグイン用 / false: アプリ用). */ public static final String EXTRA_IS_FOR_DEVICEPLUGIN = "isForDeviceplugin"; /** EXTRA: サービスID(デバイスプラグインの場合のみ設定する). */ public static final String EXTRA_DEVICEID = "serviceId"; /** 承認を表す定数. */ public static final int APPROVAL = 1; /** 不承認を表す定数. */ public static final int DISAPPROVAL = 0; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_confirm_auth); } @Override protected void onPause() { super.onPause(); notApproval(); } @Override public boolean onKeyDown(final int keyCode, final KeyEvent event) { if (keyCode != KeyEvent.KEYCODE_BACK) { return super.onKeyDown(keyCode, event); } else { notApproval(); return false; } } /** * バックキーやホームボタンで終了されたときに拒否の通知をを行う. * <p> * 既にレスポンスを返却している場合には何もしない。 * </p> */ private void notApproval() { FragmentManager mgr = getFragmentManager(); ConfirmAuthFragment fragment = (ConfirmAuthFragment) mgr .findFragmentById(R.id.container); fragment.notApprovalProc(); } }