blob: d8f67c17f74fc3e07af77a88dc698cd32935f419 [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* 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.
*/
package com.android.wallpaper.picker;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import com.android.wallpaper.R;
import com.android.wallpaper.model.WallpaperRotationInitializer.NetworkPreference;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
/**
* Dialog fragment which communicates that starting a wallpaper rotation failed and gives the user
* an option to retry starting the rotation.
*/
public class StartRotationErrorDialogFragment extends DialogFragment {
private static final String ARG_NETWORK_PREFERENCE = "network_preference";
public static StartRotationErrorDialogFragment newInstance(
@NetworkPreference int networkPreference) {
StartRotationErrorDialogFragment dialogFragment = new StartRotationErrorDialogFragment();
Bundle args = new Bundle();
args.putInt(ARG_NETWORK_PREFERENCE, networkPreference);
dialogFragment.setArguments(args);
return dialogFragment;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreateDialog(savedInstanceState);
@NetworkPreference final int networkPreference = getArguments().getInt(ARG_NETWORK_PREFERENCE);
return new AlertDialog.Builder(getActivity(), R.style.LightDialogTheme)
.setMessage(getResources().getString(R.string.start_rotation_error_message))
.setPositiveButton(com.android.wallpaper.R.string.try_again,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Listener callback = (Listener) getTargetFragment();
callback.retryStartRotation(networkPreference);
}
}
)
.setNegativeButton(android.R.string.cancel, null)
.create();
}
/**
* Interface which clients of this DialogFragment should implement in order to handle user actions
* on the dialog's buttons.
*/
public interface Listener {
void retryStartRotation(@NetworkPreference int networkPreference);
}
}