13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License. 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * http://www.apache.org/licenses/LICENSE-2.0 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS, 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License. 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypackage com.android.omadm.service; 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.app.Activity; 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.app.AlertDialog; 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.app.Dialog; 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.app.DialogFragment; 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.content.DialogInterface; 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.content.Intent; 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.os.Bundle; 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport android.util.Log; 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic class DMSessionConfirmAlertActivity extends Activity { 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private static final String TAG = "DMSessionConfirmAlertActivity"; 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private static final boolean DBG = DMClientService.DBG; 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private AlertDialog mDialog; 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public void onCreate(Bundle savedInstanceState) { 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby super.onCreate(savedInstanceState); 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMHelper.cancelNotification(this, DMHelper.NOTIFICATION_CONFIRMATION_ID); 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby protected void onPause() { 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby super.onPause(); 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby protected void onResume() { 476ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan logd("Activity DM session confirmation has been started."); 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby super.onResume(); 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby showDialog(); 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static class MyAlertDialogFragment extends DialogFragment { 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static MyAlertDialogFragment newInstance() { 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MyAlertDialogFragment frag = new MyAlertDialogFragment(); 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Bundle args = new Bundle(); 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby frag.setArguments(args); 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return frag; 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public Dialog onCreateDialog(Bundle savedInstanceState) { 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return new AlertDialog.Builder(getActivity()) 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setIcon(R.drawable.alert_dialog_icon) 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setTitle(R.string.dm_session_confirmation_title) 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setMessage(R.string.dm_session_confirmation_message) 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setCancelable(false) 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setPositiveButton(getResources().getString(R.string.dm_session_button_confirm), 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby new DialogInterface.OnClickListener() { 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public void onClick(DialogInterface dialog, int whichButton) { 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMSessionConfirmAlertActivity) getActivity()) 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .doPositiveClick(); 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ) 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .setNegativeButton(getResources().getString(R.string.dm_session_button_reject), 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby new DialogInterface.OnClickListener() { 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby @Override 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public void onClick(DialogInterface dialog, int whichButton) { 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMSessionConfirmAlertActivity) getActivity()) 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .doNegativeClick(); 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ) 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby .create(); 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby void doNegativeClick() { 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby userDeniedSession(); 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby void doPositiveClick() { 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby userConfirmedSession(); 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private void userConfirmedSession() { 1006ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan logd("userConfirmedSession"); 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Intent intent = new Intent(DMIntent.ACTION_USER_CONFIRMED_DM_SESSION); 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby sendBroadcast(intent); 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby finishMe(); 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private void userDeniedSession() { 1096ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan logd("userDeniedSession"); 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMHelper.cleanAllResources(this); 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby finishMe(); 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private void showDialog() { 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DialogFragment newFragment = MyAlertDialogFragment.newInstance(); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby newFragment.show(getFragmentManager(), "dialog"); 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private void finishMe() { 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (null != mDialog) { 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mDialog.dismiss(); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mDialog = null; 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby finish(); 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1316ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan private static void logd(String msg) { 1326ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan Log.d(TAG, msg); 1336ec26491263e8266749279ce76ca2787eccb1d98Amit Mahajan } 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 135