import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.textfield.TextInputLayout;
+import net.ktnx.mobileledger.BuildConfig;
import net.ktnx.mobileledger.R;
import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.MobileLedgerProfile;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
+import static net.ktnx.mobileledger.utils.Logger.debug;
+
/**
* A fragment representing a single Profile detail screen.
* a {@link ProfileDetailActivity}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- Log.d("profiles", "[fragment] Creating profile details options menu");
+ debug("profiles", "[fragment] Creating profile details options menu");
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.profile_details, menu);
final MenuItem menuDeleteProfile = menu.findItem(R.id.menuDelete);
builder.setPositiveButton(R.string.Remove, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- Log.d("profiles",
+ debug("profiles",
String.format("[fragment] removing profile %s", mProfile.getUuid()));
mProfile.removeFromDB();
Data.profiles.remove(mProfile);
if (Data.profile.get().equals(mProfile)) {
- Log.d("profiles", "[fragment] setting current profile to 0");
+ debug("profiles", "[fragment] setting current profile to 0");
Data.setCurrentProfile(Data.profiles.get(0));
}
getActivity().finish();
return false;
});
menuDeleteProfile.setVisible((mProfile != null) && (Data.profiles.size() > 1));
+
+ if (BuildConfig.DEBUG) {
+ final MenuItem menuWipeProfileData = menu.findItem(R.id.menuWipeData);
+ menuWipeProfileData.setOnMenuItemClickListener(this::onWipeDataMenuClicked);
+ menuWipeProfileData.setVisible(mProfile != null);
+ }
+ }
+ private boolean onWipeDataMenuClicked(MenuItem item) {
+ // this is a development option, so no confirmation
+ mProfile.wipeAllData();
+ Data.profile.forceNotifyObservers();
+ return true;
}
@Override
public void onCreate(Bundle savedInstanceState) {
if (mProfile != null) {
updateProfileFromUI();
-// Log.d("profiles", String.format("Selected item is %d", mProfile.getThemeId()));
+// debug("profiles", String.format("Selected item is %d", mProfile.getThemeId()));
mProfile.storeInDB();
- Log.d("profiles", "profile stored in DB");
+ debug("profiles", "profile stored in DB");
Data.profiles.triggerItemChangedNotification(mProfile);
if (mProfile.getUuid().equals(Data.profile.get().getUuid())) {
// dummy update to notify the observers of the possibly new name/URL
- Data.profile.set(mProfile);
+ Data.profile.forceNotifyObservers();
}
}
else {
rootView.findViewById(R.id.preferred_accounts_accounts_filter_layout);
useAuthentication.setOnCheckedChangeListener((buttonView, isChecked) -> {
- Log.d("profiles", isChecked ? "auth enabled " : "auth disabled");
+ debug("profiles", isChecked ? "auth enabled " : "auth disabled");
authParams.setVisibility(isChecked ? View.VISIBLE : View.GONE);
if (isChecked) userName.requestFocus();
});
huePickerView.setTag(profileThemeId);
huePickerView.setOnClickListener(v -> {
HueRingDialog d = new HueRingDialog(
- Objects.requireNonNull(ProfileDetailFragment.this.getContext()), hue);
+ Objects.requireNonNull(ProfileDetailFragment.this.getContext()),
+ profileThemeId, (Integer) v.getTag());
d.show();
d.setColorSelectedListener(this);
});