Files
open-keychain/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java

123 lines
3.5 KiB
Java
Raw Normal View History

2012-04-25 15:10:12 +02:00
/*
* Copyright (C) 2012 Dominik Schürmann <dominik@dominikschuermann.de>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
2012-04-20 12:12:07 +02:00
2013-01-16 14:31:16 +01:00
package org.sufficientlysecure.keychain.ui.dialog;
2012-04-20 12:12:07 +02:00
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.KeyEvent;
public class ProgressDialogFragment extends DialogFragment {
2012-04-25 15:10:12 +02:00
private static final String ARG_MESSAGE_ID = "message_id";
private static final String ARG_STYLE = "style";
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
/**
* Creates new instance of this fragment
2012-04-25 15:10:12 +02:00
*
* @param id
* @return
*/
public static ProgressDialogFragment newInstance(int messageId, int style) {
2012-04-20 12:12:07 +02:00
ProgressDialogFragment frag = new ProgressDialogFragment();
Bundle args = new Bundle();
2012-04-25 15:10:12 +02:00
args.putInt(ARG_MESSAGE_ID, messageId);
args.putInt(ARG_STYLE, style);
2012-04-20 12:12:07 +02:00
frag.setArguments(args);
return frag;
}
2012-04-25 15:10:12 +02:00
/**
* Updates progress of dialog
*
* @param messageId
* @param progress
* @param max
*/
public void setProgress(int messageId, int progress, int max) {
setProgress(getString(messageId), progress, max);
}
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
/**
* Updates progress of dialog
*
* @param messageId
* @param progress
* @param max
*/
public void setProgress(int progress, int max) {
ProgressDialog dialog = (ProgressDialog) getDialog();
dialog.setProgress(progress);
dialog.setMax(max);
2012-04-20 12:12:07 +02:00
}
2012-04-25 15:10:12 +02:00
/**
* Updates progress of dialog
*
* @param messageId
* @param progress
* @param max
*/
public void setProgress(String message, int progress, int max) {
ProgressDialog dialog = (ProgressDialog) getDialog();
dialog.setMessage(message);
dialog.setProgress(progress);
dialog.setMax(max);
}
/**
2012-06-09 18:04:18 +03:00
* Creates dialog
2012-04-25 15:10:12 +02:00
*/
2012-04-20 12:12:07 +02:00
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Activity activity = getActivity();
ProgressDialog dialog = new ProgressDialog(activity);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setCancelable(false);
2012-04-25 15:10:12 +02:00
dialog.setCanceledOnTouchOutside(false);
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
int messageId = getArguments().getInt(ARG_MESSAGE_ID);
int style = getArguments().getInt(ARG_STYLE);
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
dialog.setMessage(getString(messageId));
dialog.setProgressStyle(style);
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
// Disable the back button
OnKeyListener keyListener = new OnKeyListener() {
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
2012-04-20 12:12:07 +02:00
2012-04-25 15:10:12 +02:00
};
dialog.setOnKeyListener(keyListener);
2012-04-20 12:12:07 +02:00
return dialog;
}
}