CrashPromptDialog.java
4.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.crashlytics.android.core;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.widget.ScrollView;
import android.widget.TextView;
import io.fabric.sdk.android.services.settings.PromptSettingsData;
import java.util.concurrent.CountDownLatch;
class CrashPromptDialog
{
private final AlertDialog.Builder dialog;
private final OptInLatch latch;
private CrashPromptDialog(AlertDialog.Builder paramBuilder, OptInLatch paramOptInLatch)
{
this.latch = paramOptInLatch;
this.dialog = paramBuilder;
}
public static CrashPromptDialog create(Activity paramActivity, PromptSettingsData paramPromptSettingsData, AlwaysSendCallback paramAlwaysSendCallback)
{
final OptInLatch localOptInLatch = new OptInLatch(null);
DialogStringResolver localDialogStringResolver = new DialogStringResolver(paramActivity, paramPromptSettingsData);
AlertDialog.Builder localBuilder = new AlertDialog.Builder(paramActivity);
paramActivity = createDialogView(paramActivity, localDialogStringResolver.getMessage());
DialogInterface.OnClickListener local1 = new DialogInterface.OnClickListener()
{
public final void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt)
{
this.val$latch.setOptIn(true);
paramAnonymousDialogInterface.dismiss();
}
};
localBuilder.setView(paramActivity).setTitle(localDialogStringResolver.getTitle()).setCancelable(false).setNeutralButton(localDialogStringResolver.getSendButtonTitle(), local1);
if (paramPromptSettingsData.showCancelButton)
{
paramActivity = new DialogInterface.OnClickListener()
{
public final void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt)
{
this.val$latch.setOptIn(false);
paramAnonymousDialogInterface.dismiss();
}
};
localBuilder.setNegativeButton(localDialogStringResolver.getCancelButtonTitle(), paramActivity);
}
if (paramPromptSettingsData.showAlwaysSendButton)
{
paramActivity = new DialogInterface.OnClickListener()
{
public final void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt)
{
this.val$alwaysSendCallback.sendUserReportsWithoutPrompting(true);
localOptInLatch.setOptIn(true);
paramAnonymousDialogInterface.dismiss();
}
};
localBuilder.setPositiveButton(localDialogStringResolver.getAlwaysSendButtonTitle(), paramActivity);
}
return new CrashPromptDialog(localBuilder, localOptInLatch);
}
private static ScrollView createDialogView(Activity paramActivity, String paramString)
{
float f = paramActivity.getResources().getDisplayMetrics().density;
int i = dipsToPixels(f, 5);
TextView localTextView = new TextView(paramActivity);
localTextView.setAutoLinkMask(15);
localTextView.setText(paramString);
localTextView.setTextAppearance(paramActivity, 16973892);
localTextView.setPadding(i, i, i, i);
localTextView.setFocusable(false);
paramActivity = new ScrollView(paramActivity);
paramActivity.setPadding(dipsToPixels(f, 14), dipsToPixels(f, 2), dipsToPixels(f, 10), dipsToPixels(f, 12));
paramActivity.addView(localTextView);
return paramActivity;
}
private static int dipsToPixels(float paramFloat, int paramInt)
{
return (int)(paramInt * paramFloat);
}
public void await()
{
this.latch.await();
}
public boolean getOptIn()
{
return this.latch.getOptIn();
}
public void show()
{
this.dialog.show();
}
static abstract interface AlwaysSendCallback
{
public abstract void sendUserReportsWithoutPrompting(boolean paramBoolean);
}
static class OptInLatch
{
private final CountDownLatch latch = new CountDownLatch(1);
private boolean send = false;
void await()
{
try
{
this.latch.await();
return;
}
catch (InterruptedException localInterruptedException) {}
}
boolean getOptIn()
{
return this.send;
}
void setOptIn(boolean paramBoolean)
{
this.send = paramBoolean;
this.latch.countDown();
}
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/com/crashlytics/android/core/CrashPromptDialog.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/