blob: 86f5302aa8c0e762dc7689f9313a32ddf2e9785c (
plain)
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
|
package cgeo.geocaching.activity;
import com.github.amlcurran.showcaseview.ShowcaseView;
import com.github.amlcurran.showcaseview.ShowcaseView.Builder;
import com.github.amlcurran.showcaseview.targets.Target;
import android.app.Activity;
import android.view.View;
import android.view.WindowManager.LayoutParams;
/**
* TODO: replace by simple utility class embedding a builder instead of inheriting from it
*/
public class ShowcaseViewBuilder extends Builder {
private final Activity activity;
public ShowcaseViewBuilder(final Activity activity) {
super(activity);
this.activity = activity;
}
@Override
public ShowcaseViewBuilder setContentTitle(final int resId) {
setSingleshot(activity.getResources().getString(resId));
return (ShowcaseViewBuilder) super.setContentTitle(resId);
}
/**
* Use the hash of the title for the single shot remembering
*
*/
private void setSingleshot(final CharSequence title) {
super.singleShot(title.hashCode());
}
@Override
public ShowcaseViewBuilder setContentText(final int resId) {
return (ShowcaseViewBuilder) super.setContentText(resId);
}
@Override
public ShowcaseViewBuilder setContentText(final CharSequence text) {
return (ShowcaseViewBuilder) super.setContentText(text);
}
@Override
public ShowcaseViewBuilder setContentTitle(final CharSequence title) {
setSingleshot(title);
return (ShowcaseViewBuilder) super.setContentTitle(title);
}
@Override
public ShowcaseViewBuilder setTarget(final Target target) {
return (ShowcaseViewBuilder) super.setTarget(target);
}
public ShowcaseViewBuilder setContent(final int titleId, final int textId) {
setContentTitle(titleId);
return setContentText(textId);
}
@Override
public ShowcaseView build() {
final ShowcaseView showcaseView = super.build();
if (showcaseView.getVisibility() == View.VISIBLE) {
activity.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
return showcaseView;
}
}
|