Network status in nav drawer

This commit is contained in:
str4d
2014-05-17 01:25:23 +00:00
parent 9de0a5d325
commit 5625bcc733
3 changed files with 64 additions and 9 deletions

View File

@@ -18,21 +18,25 @@
android:id="@+id/drawer_outer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start" >
android:layout_gravity="start"
android:background="#111" >
<ListView
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#111"
android:layout_height="wrap_content"
android:layout_above="@+id/fixed_actions"
android:layout_alignParentTop="true"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
<RelativeLayout
<LinearLayout
android:id="@+id/fixed_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
android:layout_alignParentBottom="true"
android:orientation="vertical" >
<TextView
android:id="@+id/address_book"
@@ -42,7 +46,16 @@
android:text="@string/address_book"
android:textAppearance="?android:attr/textAppearanceMediumInverse" />
</RelativeLayout>
<TextView
android:id="@+id/network_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@android:drawable/presence_offline"
android:padding="15dp"
android:drawablePadding="10dp"
android:text="@string/network_status"
android:textAppearance="?android:attr/textAppearanceMediumInverse" />
</LinearLayout>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>

View File

@@ -26,6 +26,13 @@
<string name="folder_sent">Sent</string>
<string name="folder_trash">Trash</string>
<string name="address_book">Address book</string>
<string name="network_status">Network status</string>
<string name="not_started">Not started</string>
<string name="connect_delay">Waiting 3 minutes&#8230;</string>
<string name="connecting">Connecting&#8230;</string>
<string name="connected">Connected</string>
<string name="error">Error</string>
<string name="folder_empty">Folder is empty</string>
<string name="folder_does_not_exist">Folder does not exist</string>

View File

@@ -12,6 +12,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
@@ -38,6 +39,7 @@ public class EmailListActivity extends ActionBarActivity implements
private RelativeLayout mDrawerOuter;
private FolderListAdapter mFolderAdapter;
private ListView mFolderList;
private TextView mNetworkStatus;
private ActionBarDrawerToggle mDrawerToggle;
private static final String SHARED_PREFS = "i2p.bote";
@@ -60,6 +62,7 @@ public class EmailListActivity extends ActionBarActivity implements
mDrawerOuter = (RelativeLayout) findViewById(R.id.drawer_outer);
mFolderAdapter = new FolderListAdapter(this);
mFolderList = (ListView) findViewById(R.id.drawer);
mNetworkStatus = (TextView) findViewById(R.id.network_status);
// Set the list of folders
// TODO: This is slow, needs a loader
@@ -103,8 +106,36 @@ public class EmailListActivity extends ActionBarActivity implements
/** Called when the drawer motion state changes. */
public void onDrawerStateChanged(int newState) {
if (newState == DrawerLayout.STATE_DRAGGING)
if (newState == DrawerLayout.STATE_DRAGGING) {
wasDragged = true;
// Update network status
Drawable statusIcon;
switch (I2PBote.getInstance().getNetworkStatus()) {
case DELAY:
mNetworkStatus.setText(R.string.connect_delay);
statusIcon = getResources().getDrawable(android.R.drawable.presence_away);
break;
case CONNECTING:
mNetworkStatus.setText(R.string.connecting);
statusIcon = getResources().getDrawable(android.R.drawable.presence_away);
break;
case CONNECTED:
mNetworkStatus.setText(R.string.connected);
statusIcon = getResources().getDrawable(android.R.drawable.presence_online);
break;
case ERROR:
mNetworkStatus.setText(R.string.error);
statusIcon = getResources().getDrawable(android.R.drawable.presence_busy);
break;
case NOT_STARTED:
default:
mNetworkStatus.setText(R.string.not_started);
statusIcon = getResources().getDrawable(android.R.drawable.presence_offline);
}
mNetworkStatus.setCompoundDrawablesWithIntrinsicBounds(
statusIcon, null, null, null);
}
}
};
@@ -122,13 +153,17 @@ public class EmailListActivity extends ActionBarActivity implements
}
// Set up fixed actions
TextView addressBook = (TextView) findViewById(R.id.address_book);
addressBook.setOnClickListener(new View.OnClickListener() {
findViewById(R.id.address_book).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent ai = new Intent(EmailListActivity.this, AddressBookActivity.class);
startActivity(ai);
}
});
mNetworkStatus.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// TODO: network status page
}
});
// Open nav drawer if the user has never opened it themselves
if (!mSharedPrefs.getBoolean(PREF_NAV_DRAWER_OPENED, false))