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
|
package cgeo.geocaching.activity;
import butterknife.Views;
import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.settings.Settings;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
public abstract class AbstractActivity extends FragmentActivity implements IAbstractActivity {
protected CgeoApplication app = null;
protected Resources res = null;
private boolean keepScreenOn = false;
protected AbstractActivity() {
this(false);
}
protected AbstractActivity(final boolean keepScreenOn) {
this.keepScreenOn = keepScreenOn;
}
@Override
final public void goHome(final View view) {
ActivityMixin.goHome(this);
}
final protected void setTitle(final String title) {
ActivityMixin.setTitle(this, title);
}
final protected void showProgress(final boolean show) {
ActivityMixin.showProgress(this, show);
}
final protected void setTheme() {
ActivityMixin.setTheme(this);
}
@Override
public final void showToast(String text) {
ActivityMixin.showToast(this, text);
}
@Override
public final void showShortToast(String text) {
ActivityMixin.showShortToast(this, text);
}
@Override
public final void helpDialog(final String title, final String message) {
ActivityMixin.helpDialog(this, title, message);
}
protected final void helpDialog(final String title, final String message, final Drawable icon) {
ActivityMixin.helpDialog(this, title, message, icon);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initializeCommonFields();
}
protected static void disableSuggestions(final EditText edit) {
Compatibility.disableSuggestions(edit);
}
protected void restartActivity() {
Compatibility.restartActivity(this);
}
@Override
public void invalidateOptionsMenuCompatible() {
ActivityMixin.invalidateOptionsMenu(this);
}
protected void onCreate(final Bundle savedInstanceState, final int resourceLayoutID) {
super.onCreate(savedInstanceState);
initializeCommonFields();
// non declarative part of layout
setTheme();
setContentView(resourceLayoutID);
// create view variables
Views.inject(this);
}
private void initializeCommonFields() {
// initialize commonly used members
res = this.getResources();
app = (CgeoApplication) this.getApplication();
// only needed in some activities, but implemented in super class nonetheless
Cookies.restoreCookieStore(Settings.getCookieStore());
ActivityMixin.keepScreenOn(this, keepScreenOn);
}
@Override
public void setContentView(int layoutResID) {
super.setContentView(layoutResID);
// initialize the action bar title with the activity title for single source
ActivityMixin.setTitle(this, getTitle());
}
protected void hideKeyboard() {
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
}
}
|