diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
index fde65fc7..996d3517 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java
@@ -27,7 +27,6 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
-import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
@@ -66,7 +65,7 @@ public class LoginActivity extends AppCompatActivity
return;
}
- toolbar = (Toolbar) findViewById(R.id.tbLogin);
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if (Helper.getWritePermission(this)) {
@@ -213,6 +212,15 @@ public class LoginActivity extends AppCompatActivity
public void setSubtitle(String subtitle) {
toolbar.setSubtitle(subtitle);
}
+
+ @Override
+ public void setTestNet(boolean testnet) {
+ if (testnet) {
+ toolbar.setBackgroundResource(R.color.colorPrimaryDark);
+ } else {
+ toolbar.setBackgroundResource(R.color.moneroOrange);
+ }
+ }
////////////////////////////////////////
////////////////////////////////////////
diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
index 75e2a93a..fdbe0f44 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java
@@ -23,8 +23,11 @@ import android.os.Bundle;
import android.os.StrictMode;
import android.support.design.widget.FloatingActionButton;
import android.util.Log;
+import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.LayoutInflater;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
@@ -89,6 +92,8 @@ public class LoginFragment extends Fragment {
void setSubtitle(String subtitle);
+ void setTestNet(boolean testnet);
+
}
@Override
@@ -157,6 +162,7 @@ public class LoginFragment extends Fragment {
@Override
public void onClick(View v) {
boolean mainnet = ((ToggleButton) v).isChecked(); // current state
+ activityCallback.setTestNet(!mainnet);
savePrefs(true); // use previous state as we just clicked it
if (mainnet) {
setDaemon(daemonMainNet);
@@ -177,6 +183,7 @@ public class LoginFragment extends Fragment {
android.R.layout.simple_list_item_1, android.R.id.text1, this.displayedList);
listView.setAdapter(adapter);
+ registerForContextMenu(listView);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
@@ -215,7 +222,7 @@ public class LoginFragment extends Fragment {
}
});
- listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
+/* listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {
// Difference to opening wallet is that we don't need a daemon set
@@ -239,6 +246,7 @@ public class LoginFragment extends Fragment {
return true;
}
});
+*/
loadList();
return view;
}
@@ -277,6 +285,8 @@ public class LoginFragment extends Fragment {
void setMainNet(boolean mainnet) {
tbMainNet.setChecked(mainnet);
+ activityCallback.setTestNet(!mainnet);
+
}
String getDaemon() {
@@ -386,4 +396,44 @@ public class LoginFragment extends Fragment {
mgr.setDaemon(daemonAddress, testnet, username, password);
return true;
}
+
+ @Override
+ public void onCreateContextMenu(ContextMenu menu, View v,
+ ContextMenu.ContextMenuInfo menuInfo) {
+ super.onCreateContextMenu(menu, v, menuInfo);
+ MenuInflater inflater = getActivity().getMenuInflater();
+ inflater.inflate(R.menu.list_menu, menu);
+ }
+
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+ switch (item.getItemId()) {
+ case R.id.action_info:
+ String listItem = (String) listView.getItemAtPosition(info.position);
+ return showInfo(listItem);
+ default:
+ return super.onContextItemSelected(item);
+ }
+ }
+
+ private boolean showInfo(String listItem) {
+
+ if (listItem.length() <= (WALLETNAME_PREAMBLE_LENGTH)) {
+ Toast.makeText(getActivity(), getString(R.string.panic), Toast.LENGTH_LONG).show();
+ return true;
+ }
+
+ String wallet = listItem.substring(WALLETNAME_PREAMBLE_LENGTH);
+ String x = isMainNet() ? "4" : "9A";
+ if (x.indexOf(listItem.charAt(1)) < 0) {
+ Toast.makeText(getActivity(), getString(R.string.prompt_wrong_net), Toast.LENGTH_LONG).show();
+ return true;
+ }
+
+ checkAndSetWalletDaemon("", !isMainNet()); // just set selected net
+
+ activityCallback.onWalletDetails(wallet);
+ return true;
+ }
}
diff --git a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java
index af07d81d..a3a1aabd 100644
--- a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java
+++ b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java
@@ -29,12 +29,15 @@ import android.os.PowerManager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
-import android.view.View;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.widget.Toast;
import com.m2049r.xmrwallet.model.PendingTransaction;
import com.m2049r.xmrwallet.model.TransactionInfo;
import com.m2049r.xmrwallet.model.Wallet;
+import com.m2049r.xmrwallet.model.WalletManager;
import com.m2049r.xmrwallet.service.WalletService;
import com.m2049r.xmrwallet.util.TxData;
@@ -105,6 +108,27 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
super.onDestroy();
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ if (!haveWallet) return true;
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.wallet_menu, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_info:
+ onWalletDetails();
+ break;
+ default:
+ break;
+ }
+
+ return true;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate()");
@@ -114,15 +138,15 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
return;
}
- toolbar = (Toolbar) findViewById(R.id.tbWallet);
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(R.string.app_name);
setSupportActionBar(toolbar);
- toolbar.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- onWalletDetails();
- }
- });
+ boolean testnet = WalletManager.getInstance().isTestNet();
+ if (testnet) {
+ toolbar.setBackgroundResource(R.color.colorPrimaryDark);
+ } else {
+ toolbar.setBackgroundResource(R.color.moneroOrange);
+ }
Fragment walletFragment = new WalletFragment();
getFragmentManager().beginTransaction()
@@ -347,6 +371,8 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
});
}
+ boolean haveWallet = false;
+
@Override
public void onWalletStarted(final boolean success) {
runOnUiThread(new Runnable() {
@@ -358,6 +384,9 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
});
if (!success) {
finish();
+ } else {
+ haveWallet = true;
+ invalidateOptionsMenu();
}
}
@@ -555,7 +584,7 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
private void onWalletDetails() {
Fragment fragment = getFragmentManager().findFragmentById(R.id.fragment_container);
- if (fragment instanceof WalletFragment) {
+ if (!(fragment instanceof GenerateReviewFragment)) {
Bundle extras = new Bundle();
extras.putString("type", GenerateReviewFragment.VIEW_WALLET);
replaceFragment(new GenerateReviewFragment(), null, extras);
diff --git a/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml b/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml
deleted file mode 100644
index 24835127..00000000
--- a/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
deleted file mode 100644
index e3400cfc..00000000
--- a/app/src/main/res/drawable/ic_notifications_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml
deleted file mode 100644
index 5a283aa7..00000000
--- a/app/src/main/res/drawable/ic_sync_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/gen_review_fragment.xml b/app/src/main/res/layout/gen_review_fragment.xml
index a162f4bf..196c8032 100644
--- a/app/src/main/res/layout/gen_review_fragment.xml
+++ b/app/src/main/res/layout/gen_review_fragment.xml
@@ -7,7 +7,7 @@
diff --git a/app/src/main/res/layout/wallet_activity.xml b/app/src/main/res/layout/wallet_activity.xml
index 3c300673..48d797bf 100644
--- a/app/src/main/res/layout/wallet_activity.xml
+++ b/app/src/main/res/layout/wallet_activity.xml
@@ -6,7 +6,7 @@
android:orientation="vertical">
diff --git a/app/src/main/res/menu/list_menu.xml b/app/src/main/res/menu/list_menu.xml
new file mode 100644
index 00000000..1866aac1
--- /dev/null
+++ b/app/src/main/res/menu/list_menu.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/wallet_menu.xml b/app/src/main/res/menu/wallet_menu.xml
new file mode 100644
index 00000000..4e18ba9a
--- /dev/null
+++ b/app/src/main/res/menu/wallet_menu.xml
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 10a09583..b5501cc1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,6 +3,8 @@
Select Wallet
Wallet
+ Details
+
[<user>:<pass>@]<daemonhost>[:<port>]
Net Selection
TestNet