Skip to content

Commit 2f1161a

Browse files
- Fix some legacy code issues and tidy up wallet naming (#3371)
- Upgrade to v3.79
1 parent d887ad2 commit 2f1161a

18 files changed

+290
-224
lines changed

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ android {
5252
applicationId "io.stormbird.wallet"
5353
minSdk 24
5454
targetSdk 34
55-
versionCode 257
56-
versionName "3.78"
55+
versionCode 261
56+
versionName "3.79"
5757

5858
android.buildFeatures.buildConfig true
5959

app/src/main/AndroidManifest.xml

+2-9
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
<uses-permission android:name="android.permission.WAKE_LOCK" />
1515
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
1616
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
17-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/>
18-
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
17+
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
1918

2019
<uses-feature
2120
android:name="android.hardware.fingerprint"
@@ -125,8 +124,7 @@
125124
<service
126125
android:name=".service.WalletConnectV2Service"
127126
android:enabled="true"
128-
android:exported="false"
129-
android:foregroundServiceType="connectedDevice">
127+
android:exported="false">
130128
</service>
131129

132130
<service
@@ -282,11 +280,6 @@
282280
android:name=".ui.TokenScriptManagementActivity"
283281
android:label="@string/tokenscript_management" />
284282

285-
<activity
286-
android:name=".ui.WalletConnectActivity"
287-
android:label="WalletConnect"
288-
android:launchMode="singleTop" />
289-
290283
<activity
291284
android:name=".ui.BackupFlowActivity"
292285
android:label="WalletConnect" />

app/src/main/java/com/alphawallet/app/ui/BackupFlowActivity.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,13 @@ private void initViews() {
157157
public boolean onOptionsItemSelected(MenuItem item) {
158158
if (item.getItemId() == android.R.id.home)
159159
{
160-
onBackPressed();
160+
backPressed();
161161
return true;
162162
}
163163
return super.onOptionsItemSelected(item);
164164
}
165165

166-
@Override
167-
public void onBackPressed() {
166+
public void backPressed() {
168167
Intent intent = new Intent();
169168
setResult(RESULT_CANCELED, intent);
170169
intent.putExtra("Key", wallet.address);

app/src/main/java/com/alphawallet/app/ui/BackupKeyActivity.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -391,15 +391,14 @@ public boolean onOptionsItemSelected(MenuItem item)
391391
{
392392
case android.R.id.home:
393393
{
394-
onBackPressed();
394+
backPressed();
395395
return true;
396396
}
397397
}
398398
return super.onOptionsItemSelected(item);
399399
}
400400

401-
@Override
402-
public void onBackPressed()
401+
private void backPressed()
403402
{
404403
switch (state)
405404
{

app/src/main/java/com/alphawallet/app/ui/Erc20DetailActivity.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,11 @@ private void setTokenListener()
325325
realmTokenUpdates = realm.where(RealmToken.class).equalTo("address", dbKey)
326326
.greaterThan("addedTime", System.currentTimeMillis() - 5 * DateUtils.MINUTE_IN_MILLIS).findAllAsync();
327327
realmTokenUpdates.addChangeListener(realmTokens -> {
328-
if (realmTokens.size() == 0) return;
328+
if (realmTokens.isEmpty())
329+
{
330+
return;
331+
}
332+
329333
for (RealmToken t : realmTokens)
330334
{
331335
TokenCardMeta meta = new TokenCardMeta(t.getChainId(), t.getTokenAddress(), t.getBalance(),
@@ -363,7 +367,6 @@ private void playNotification()
363367
@Override
364368
public boolean onCreateOptionsMenu(Menu menu)
365369
{
366-
// getMenuInflater().inflate(R.menu.menu_show_contract, menu);
367370
return super.onCreateOptionsMenu(menu);
368371
}
369372

app/src/main/java/com/alphawallet/app/ui/GasSettingsActivity.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,12 @@ public boolean onOptionsItemSelected(MenuItem item)
228228
{
229229
if (item.getItemId() == android.R.id.home)
230230
{
231-
onBackPressed();
231+
backPressed();
232232
}
233233
return super.onOptionsItemSelected(item);
234234
}
235235

236-
@Override
237-
public void onBackPressed()
236+
private void backPressed()
238237
{
239238
Intent result = new Intent();
240239
GasSpeed gs = gasSpread.getSelectedGasFee(currentGasSpeedIndex);

app/src/main/java/com/alphawallet/app/ui/HomeActivity.java

-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ public class HomeActivity extends BaseNavigationActivity implements View.OnClick
102102
{
103103
@Inject
104104
AWWalletConnectClient awWalletConnectClient;
105-
106105
public static final int RC_ASSET_EXTERNAL_WRITE_PERM = 223;
107106
public static final int RC_ASSET_NOTIFICATION_PERM = 224;
108107
public static final int DAPP_BARCODE_READER_REQUEST_CODE = 1;

app/src/main/java/com/alphawallet/app/ui/NFTAssetDetailActivity.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState)
131131
initIntents();
132132

133133
initViewModel();
134+
135+
usingNativeTokenScript = !viewModel.getUseTSViewer();
134136
}
135137

136138
private void initIntents()
@@ -308,12 +310,6 @@ private void setup()
308310
setTitle(token.tokenInfo.name);
309311
updateDefaultTokenData();
310312

311-
if (!viewModel.getUseTSViewer())
312-
{
313-
TokenDefinition td = viewModel.getAssetDefinitionService().getAssetDefinition(this.token);
314-
this.usingNativeTokenScript = (td != null && td.nameSpace != null);
315-
}
316-
317313
if (asset != null && asset.isAttestation())
318314
{
319315
setupAttestation(viewModel.getAssetDefinitionService().getAssetDefinition(token));
@@ -356,11 +352,6 @@ private void newScriptFound(TokenDefinition td)
356352

357353
setTitle(token.getTokenName(viewModel.getAssetDefinitionService(), 1));
358354

359-
if (!viewModel.getUseTSViewer())
360-
{
361-
this.usingNativeTokenScript = td.nameSpace != null;
362-
}
363-
364355
//now re-load the verbs if already called. If wallet is null this won't complete
365356
setupFunctionBar(viewModel.getWallet());
366357

app/src/main/java/com/alphawallet/app/ui/NetworkBaseActivity.java

-6
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,6 @@ else if (item.getItemId() == R.id.action_node_status)
6666
return false;
6767
}
6868

69-
@Override
70-
public void onBackPressed()
71-
{
72-
handleSetNetworks();
73-
}
74-
7569
protected abstract void handleSetNetworks();
7670

7771
protected void initTestNetDialog(TestNetDialog.TestNetDialogCallback callback)

app/src/main/java/com/alphawallet/app/ui/WalletActionsActivity.java

+77-29
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,26 @@
2828
import com.alphawallet.app.R;
2929
import com.alphawallet.app.entity.BackupOperationType;
3030
import com.alphawallet.app.entity.ErrorEnvelope;
31+
import com.alphawallet.app.entity.StandardFunctionInterface;
3132
import com.alphawallet.app.entity.Wallet;
3233
import com.alphawallet.app.entity.WalletType;
3334
import com.alphawallet.app.ui.widget.entity.AddressReadyCallback;
3435
import com.alphawallet.app.util.Utils;
3536
import com.alphawallet.app.viewmodel.WalletActionsViewModel;
3637
import com.alphawallet.app.widget.AWalletAlertDialog;
38+
import com.alphawallet.app.widget.FunctionButtonBar;
3739
import com.alphawallet.app.widget.InputAddress;
40+
import com.alphawallet.app.widget.InputView;
3841
import com.alphawallet.app.widget.SettingsItemView;
3942
import com.alphawallet.app.widget.UserAvatar;
4043

44+
import java.util.ArrayList;
45+
import java.util.Collections;
46+
4147
import dagger.hilt.android.AndroidEntryPoint;
4248

4349
@AndroidEntryPoint
44-
public class WalletActionsActivity extends BaseActivity implements Runnable, View.OnClickListener, AddressReadyCallback
50+
public class WalletActionsActivity extends BaseActivity implements Runnable, View.OnClickListener, AddressReadyCallback, StandardFunctionInterface
4551
{
4652
WalletActionsViewModel viewModel;
4753

@@ -55,12 +61,12 @@ public class WalletActionsActivity extends BaseActivity implements Runnable, Vie
5561
private SettingsItemView deleteWalletSetting;
5662
private SettingsItemView backUpSetting;
5763
private InputAddress inputAddress;
64+
private InputView inputName;
5865
private LinearLayout successOverlay;
5966
private AWalletAlertDialog aDialog;
6067
private final Handler handler = new Handler();
6168

6269
private Wallet wallet;
63-
private int walletCount;
6470
private boolean isNewWallet;
6571

6672
@Override
@@ -70,10 +76,12 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
7076
toolbar();
7177
setTitle(getString(R.string.manage_wallet));
7278

79+
FunctionButtonBar functionBar = findViewById(R.id.layoutButtons);
80+
functionBar.setupFunctions(this, new ArrayList<>(Collections.singletonList(R.string.action_save_name)));
81+
functionBar.revealButtons();
82+
7383
if (getIntent() != null) {
7484
wallet = (Wallet) getIntent().getExtras().get("wallet");
75-
walletCount = getIntent().getIntExtra("walletCount", 0);
76-
walletCount++;
7785
isNewWallet = getIntent().getBooleanExtra("isNewWallet", false);
7886
initViews();
7987
} else {
@@ -106,13 +114,36 @@ private void initViewModel() {
106114
viewModel.exportWalletError().observe(this, this::onExportError);
107115
viewModel.deleted().observe(this, this::onDeleteWallet);
108116
viewModel.isTaskRunning().observe(this, this::onTaskStatusChanged);
117+
viewModel.walletCount().observe(this, this::setWalletName);
118+
viewModel.ensName().observe(this, this::fetchedENSName);
109119

110-
if (isNewWallet) {
111-
wallet.name = getString(R.string.wallet_name_template, walletCount);
112-
viewModel.updateWallet(wallet);
120+
if (isNewWallet)
121+
{
122+
viewModel.fetchWalletCount();
123+
}
124+
125+
if (wallet != null && TextUtils.isEmpty(wallet.ENSname))
126+
{
127+
//scan for ENS name
128+
viewModel.scanForENS(wallet, this);
113129
}
114130
}
115131

132+
private void fetchedENSName(String ensName)
133+
{
134+
if (!TextUtils.isEmpty(ensName))
135+
{
136+
inputAddress.setENSName(ensName);
137+
}
138+
}
139+
140+
private void setWalletName(int walletCount)
141+
{
142+
wallet.name = getString(R.string.wallet_name_template, walletCount + 1);
143+
inputName.setText(wallet.name);
144+
viewModel.updateWallet(wallet);
145+
}
146+
116147
@Override
117148
public boolean onCreateOptionsMenu(Menu menu)
118149
{
@@ -139,7 +170,11 @@ public boolean onOptionsItemSelected(MenuItem item)
139170
{
140171
if (item.getItemId() == android.R.id.home)
141172
{
142-
onBackPressed();
173+
if (isNewWallet)
174+
{
175+
preFinish(); //drop back to home screen, no need to recreate everything
176+
}
177+
finish();
143178
return true;
144179
}
145180
else if (item.getItemId() == R.id.action_key_status)
@@ -153,18 +188,10 @@ else if (item.getItemId() == R.id.action_key_status)
153188
return super.onOptionsItemSelected(item);
154189
}
155190

156-
@Override
157-
public void onBackPressed()
191+
private void onDeleteWallet(Boolean isDeleted)
158192
{
159-
super.onBackPressed();
160-
if (isNewWallet)
193+
if (isDeleted)
161194
{
162-
preFinish(); //drop back to home screen, no need to recreate everything
163-
}
164-
}
165-
166-
private void onDeleteWallet(Boolean isDeleted) {
167-
if (isDeleted) {
168195
showWalletsActivity();
169196
}
170197
}
@@ -193,7 +220,8 @@ private void onDeleteError(ErrorEnvelope errorEnvelope) {
193220
aDialog.show();
194221
}
195222

196-
private void initViews() {
223+
private void initViews()
224+
{
197225
walletIcon = findViewById(R.id.wallet_icon);
198226
walletBalance = findViewById(R.id.wallet_balance);
199227
walletBalanceCurrency = findViewById(R.id.wallet_currency);
@@ -204,6 +232,7 @@ private void initViews() {
204232
backUpSetting = findViewById(R.id.setting_backup);
205233
walletSelectedIcon = findViewById(R.id.selected_wallet_indicator);
206234
inputAddress = findViewById(R.id.input_ens);
235+
inputName = findViewById(R.id.input_name);
207236
walletSelectedIcon.setOnClickListener(this);
208237

209238
walletIcon.bind(wallet);
@@ -230,22 +259,43 @@ else if (wallet.type == WalletType.WATCH || wallet.type == WalletType.HARDWARE)
230259
findViewById(R.id.layout_backup_method).setVisibility(View.GONE);
231260
}
232261

233-
inputAddress.setAddress(wallet.ENSname);
234-
inputAddress.setAddressCallback(this);
262+
setupWalletNames();
263+
}
264+
265+
private void setupWalletNames()
266+
{
267+
if (!TextUtils.isEmpty(wallet.ENSname))
268+
{
269+
inputAddress.setAddress(wallet.ENSname);
270+
}
271+
272+
if (!Utils.isDefaultName(wallet.name, this))
273+
{
274+
inputName.setText(wallet.name);
275+
}
235276
}
236277

237278
private void setENSText()
238279
{
239-
if (wallet.ENSname != null && !wallet.ENSname.isEmpty()) {
280+
if (!TextUtils.isEmpty(wallet.ENSname))
281+
{
240282
walletNameText.setText(wallet.ENSname);
241283
walletNameText.setVisibility(View.VISIBLE);
242284
walletAddressSeparator.setVisibility(View.VISIBLE);
243-
} else {
285+
}
286+
else
287+
{
244288
walletNameText.setVisibility(View.GONE);
245289
walletAddressSeparator.setVisibility(View.GONE);
246290
}
247291
}
248292

293+
@Override
294+
public void handleClick(String action, int actionId)
295+
{
296+
saveWalletName();
297+
}
298+
249299
private void onDeleteWalletSettingClicked() {
250300
confirmDelete(wallet);
251301
}
@@ -254,13 +304,11 @@ private void onBackUpSettingClicked() {
254304
doBackUp();
255305
}
256306

257-
private void saveWalletName() {
258-
// wallet.name = walletNameText.getText().toString();
307+
private void saveWalletName()
308+
{
309+
wallet.name = inputName.getText().toString();
259310
viewModel.updateWallet(wallet);
260-
if (isNewWallet) {
261-
viewModel.showHome(this);
262-
preFinish(); //drop back to home screen, no need to recreate everything
263-
}
311+
finish();
264312
}
265313

266314
private void doBackUp() {

0 commit comments

Comments
 (0)