Skip to content

Commit 19a0df5

Browse files
committed
Merge pull request #22 from daktak/development
Display connection status in menu
2 parents befa5d4 + b525cce commit 19a0df5

8 files changed

Lines changed: 71 additions & 6 deletions

File tree

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId 'org.androidpn.client'
88
minSdkVersion 11
99
targetSdkVersion 23
10-
versionCode 20160414
11-
versionName "0.5.9"
10+
versionCode 20160415
11+
versionName "0.5.10"
1212
}
1313
buildTypes {
1414
release {
@@ -49,7 +49,7 @@ dependencies {
4949

5050
android {
5151
lintOptions {
52-
disable 'InnerclassSeparator','GoogleAppIndexingWarning','InvalidPackage','IconDensities','MissingTranslation','TrustAllX509TrustManager'
52+
disable 'InnerclassSeparator','GoogleAppIndexingWarning','InvalidPackage','IconDensities','MissingTranslation','TrustAllX509TrustManager','UnusedResources'
5353
checkReleaseBuilds false
5454
}
5555
}

app/src/main/java/org/androidpn/client/MainActivity.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.androidpn.client;
22

3+
import org.androidpn.client.SerivceManager.Constants;
34
import org.androidpn.client.SerivceManager.LogUtil;
45
import org.androidpn.client.SerivceManager.ServiceManager;
56
import org.androidpn.client.helper.EasyPermissions;
@@ -171,9 +172,26 @@ public void onDismiss(ListView listView, int[] reverseSortedPositions) {
171172
public boolean onCreateOptionsMenu(Menu menu) {
172173
// Inflate the menu; this adds items to the action bar if it is present.
173174
getMenuInflater().inflate(R.menu.menu_main, menu);
175+
174176
return true;
175177
}
176178

179+
@Override
180+
public boolean onPrepareOptionsMenu(Menu menu) {
181+
String status = getString(R.string.disconnected);
182+
MenuItem item = menu.findItem(R.id.connection_status);
183+
if (serviceManager != null) {
184+
if(serviceManager.isLoggedIn()){
185+
status = getString(R.string.connected);
186+
//item.setEnabled(false);
187+
}
188+
}
189+
190+
item.setTitle(status);
191+
192+
return super.onPrepareOptionsMenu(menu);
193+
}
194+
177195
@Override
178196
public boolean onOptionsItemSelected(MenuItem item) {
179197
// Handle action bar item clicks here. The action bar will
@@ -195,6 +213,20 @@ public boolean onOptionsItemSelected(MenuItem item) {
195213
datasource.close();
196214
resetList();
197215
}
216+
if (id == R.id.connection_status) {
217+
Log.d(LOGTAG, "Restarting sm");
218+
if (serviceManager != null) {
219+
220+
serviceManager.stopService();
221+
serviceManager.setSettings();
222+
serviceManager.startService();
223+
224+
} else {
225+
serviceManager = new ServiceManager(this);
226+
serviceManager.setNotificationIcon(R.drawable.notification);
227+
serviceManager.startService();
228+
}
229+
}
198230

199231
return super.onOptionsItemSelected(item);
200232
}

app/src/main/java/org/androidpn/client/SerivceManager/Constants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public class Constants {
4646

4747
public static final String XMPP_REGISTERED = "XMPP_REGISTERED";
4848

49+
public static final String XMPP_LOGGEDIN = "XMPP_LOGGEDIN";
50+
4951
public static final String XMPP_EMAIL = "XMPP_EMAIL";
5052

5153
// public static final String USER_KEY = "USER_KEY";

app/src/main/java/org/androidpn/client/SerivceManager/ServiceManager.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,15 @@ public ServiceManager(Context context) {
9797
setSettings();
9898
}
9999

100+
public boolean isLoggedIn() {
101+
boolean out = false;
102+
sharedPrefs = context.getSharedPreferences(
103+
Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);
104+
if (sharedPrefs.contains(Constants.XMPP_LOGGEDIN)) {
105+
out = true;
106+
}
107+
return out;
108+
}
100109
public void setSettings() {
101110

102111
// apiKey = getMetaDataValue("ANDROIDPN_API_KEY");

app/src/main/java/org/androidpn/client/SerivceManager/XmppManager.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@ public void connect() {
129129

130130
public void disconnect() {
131131
Log.d(LOGTAG, "disconnect()...");
132+
if (sharedPrefs.contains(Constants.XMPP_LOGGEDIN)) {
133+
Editor editor = sharedPrefs.edit();
134+
editor.remove(Constants.XMPP_LOGGEDIN);
135+
editor.remove(Constants.XMPP_REGISTERED);
136+
editor.apply();
137+
}
132138
terminatePersistentConnection();
133139
}
134140

@@ -285,6 +291,7 @@ private void addTask(Runnable runnable) {
285291
private void removeAccount() {
286292
Editor editor = sharedPrefs.edit();
287293
editor.remove(Constants.XMPP_REGISTERED);
294+
editor.remove(Constants.XMPP_LOGGEDIN);
288295
editor.apply();
289296
}
290297

@@ -391,7 +398,7 @@ public void processPacket(Packet packet) {
391398
Log.d(LOGTAG, "password=" + newPassword);
392399

393400
Editor editor = sharedPrefs.edit();
394-
editor.putBoolean(Constants.XMPP_REGISTERED, true);
401+
editor.putString(Constants.XMPP_REGISTERED, "true");
395402
editor.remove(Constants.XMPP_USERNAME);
396403
editor.remove(Constants.XMPP_PASSWORD);
397404
editor.putString(Constants.XMPP_USERNAME,
@@ -457,6 +464,9 @@ public void run() {
457464
xmppManager.getConnection().login(
458465
xmppManager.getUsername(),
459466
xmppManager.getPassword(), XMPP_RESOURCE_NAME);
467+
Editor editor = sharedPrefs.edit();
468+
editor.putString(Constants.XMPP_LOGGEDIN, "true");
469+
editor.apply();
460470
Log.d(LOGTAG, "Loggedn in successfully");
461471

462472
// connection listener
@@ -497,6 +507,11 @@ public void run() {
497507
}
498508

499509
} else {
510+
if (!(sharedPrefs.contains(Constants.XMPP_LOGGEDIN))) {
511+
Editor editor = sharedPrefs.edit();
512+
editor.putString(Constants.XMPP_LOGGEDIN, "true");
513+
editor.apply();
514+
}
500515
Log.i(LOGTAG, "Logged in already");
501516
xmppManager.runTask();
502517
}

app/src/main/res/menu/menu_main.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@
1212
android:orderInCategory="99"
1313
android:title="@string/action_clear"
1414
app:showAsAction="never" />
15+
<item
16+
android:id="@+id/connection_status"
17+
android:orderInCategory="98"
18+
android:title=""
19+
app:showAsAction="never" />
1520
</menu>

app/src/main/res/values/strings.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,7 @@
3737
<string name="email_pref">Optional email address</string>
3838
<string name="login_set">Login Settings</string>
3939
<string name="name">Name</string>
40-
<string name="name_pref">Display name</string>
40+
<string name="name_pref">Optional display name</string>
41+
<string name="connected">Connected</string>
42+
<string name="disconnected">Disconnected</string>
4143
</resources>

app/src/main/res/xml/settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
android:title="@string/auto" />
2626
</PreferenceCategory>
2727
<PreferenceCategory android:title="@string/login_set" >
28-
<!-- <EditTextPreference
28+
<!-- <EditTextPreference
2929
android:title="@string/user"
3030
android:summary="@string/user_pref"
3131
android:defaultValue=""

0 commit comments

Comments
 (0)