package ru.ltst.u2020mvp.ui;
import android.app.Activity;
import android.support.v7.app.AlertDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.view.ContextThemeWrapper;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import butterknife.Bind;
import butterknife.ButterKnife;
import com.f2prateek.rx.preferences.Preference;
import com.f2prateek.rx.preferences.RxSharedPreferences;
import com.mattprecious.telescope.Lens;
import com.mattprecious.telescope.TelescopeLayout;
import java.io.File;
import javax.inject.Inject;
import ru.ltst.u2020mvp.ApplicationScope;
import ru.ltst.u2020mvp.R;
import ru.ltst.u2020mvp.data.LumberYard;
import ru.ltst.u2020mvp.ui.bugreport.BugReportLens;
@ApplicationScope
public final class TelescopeViewContainer implements ViewContainer {
private final LumberYard lumberYard;
private final Preference<Boolean> seenTelescopeDialog;
@Inject public TelescopeViewContainer(LumberYard lumberYard, RxSharedPreferences preferences) {
this.lumberYard = lumberYard;
this.seenTelescopeDialog = preferences.getBoolean("internal-seen-telescope-dialog", false);
}
@Bind(R.id.telescope_container) TelescopeLayout telescopeLayout;
@Override public ViewGroup forActivity(final Activity activity) {
activity.setContentView(R.layout.internal_activity_frame);
ButterKnife.bind(this, activity);
TelescopeLayout.cleanUp(activity); // Clean up any old screenshots.
telescopeLayout.setLens(new BugReportLens(activity, lumberYard));
// If you have not seen the telescope dialog before, show it.
if (!seenTelescopeDialog.get()) {
telescopeLayout.postDelayed(new Runnable() {
@Override public void run() {
if (activity.isFinishing()) {
return;
}
seenTelescopeDialog.set(true);
showTelescopeDialog(activity);
}
}, 1000);
}
return telescopeLayout;
}
public void showTelescopeDialog(final Activity activity) {
LayoutInflater inflater = LayoutInflater.from(activity);
TelescopeLayout content =
(TelescopeLayout) inflater.inflate(R.layout.telescope_tutorial_dialog, null);
final AlertDialog dialog =
new AlertDialog.Builder(activity).setView(content).setCancelable(false).create();
content.setLens(new Lens() {
@Override public void onCapture(File file) {
dialog.dismiss();
Context toastContext = new ContextThemeWrapper(activity, android.R.style.Theme_DeviceDefault_Dialog);
LayoutInflater toastInflater = LayoutInflater.from(toastContext);
Toast toast = Toast.makeText(toastContext, "", Toast.LENGTH_SHORT);
View toastView = toastInflater.inflate(R.layout.telescope_tutorial_toast, null);
toast.setView(toastView);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
});
dialog.show();
}
}