100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein/*
200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * Copyright (C) 2012 Google Inc.
300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * Licensed to The Android Open Source Project.
400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein *
500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * Licensed under the Apache License, Version 2.0 (the "License");
600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * you may not use this file except in compliance with the License.
700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * You may obtain a copy of the License at
800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein *
900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein *      http://www.apache.org/licenses/LICENSE-2.0
1000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein *
1100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * Unless required by applicable law or agreed to in writing, software
1200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * distributed under the License is distributed on an "AS IS" BASIS,
1300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * See the License for the specific language governing permissions and
1500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * limitations under the License.
1600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein */
1700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein
1800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinpackage com.android.mail.browse;
1900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein
2000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.app.AlertDialog;
2100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.app.Dialog;
2200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.app.DialogFragment;
2300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.content.DialogInterface;
2400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.content.Intent;
2500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.os.Bundle;
2600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport android.provider.Settings;
2700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein
2800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinimport com.android.mail.R;
2900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein
3000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein/**
3100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * Implements a {@link DialogFragment} that uses an internal {@link AlertDialog}
3200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein * to show information when there is a {@link UIProvider.LastSyncResult.STORAGE_ERROR}.
3300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein */
3400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sappersteinpublic class SyncErrorDialogFragment extends DialogFragment {
35f0ea4849bf7a2c11f99ca0b42307ae8ba665b1dcPaul Westbrook    // Public no-args constructor needed for fragment re-instantiation
36f0ea4849bf7a2c11f99ca0b42307ae8ba665b1dcPaul Westbrook    public SyncErrorDialogFragment() {}
37f0ea4849bf7a2c11f99ca0b42307ae8ba665b1dcPaul Westbrook
3800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein    public static SyncErrorDialogFragment newInstance() {
3900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein        SyncErrorDialogFragment frag = new SyncErrorDialogFragment();
4000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein        return frag;
4100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein    }
4200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein
4300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein    @Override
4400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein    public Dialog onCreateDialog(Bundle savedInstanceState) {
4500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein        return new AlertDialog.Builder(getActivity())
4600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                .setTitle(R.string.sync_error)
4700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                .setMessage(R.string.sync_error_message)
4800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                .setPositiveButton(R.string.ok,
4900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                    new DialogInterface.OnClickListener() {
50aa27bc0e1c3bb6be4609b00007637a9d3e960f5eScott Kennedy                        @Override
5100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                        public void onClick(DialogInterface dialog, int whichButton) {
5200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                            dialog.dismiss();
5300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                        }
5400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                    }
5500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                )
5600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                .setNegativeButton(R.string.storage,
5700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                    new DialogInterface.OnClickListener() {
58aa27bc0e1c3bb6be4609b00007637a9d3e960f5eScott Kennedy                        @Override
5900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                        public void onClick(DialogInterface dialog, int whichButton) {
6000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                            Intent intent = new Intent(
6100179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                                    Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
6200179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
6300179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                            startActivity(intent);
6400179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                            dialog.dismiss();
6500179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                        }
6600179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                    }
6700179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                )
6800179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein                .create();
6900179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein    }
7000179f19e413461498599ab7e6eb6914cc5c3671Andrew Sapperstein}
71