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