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