fix deprecated usages

This commit is contained in:
Phillip Thelen 2016-04-12 15:04:10 +02:00
parent e05786b454
commit f93d8ba585
39 changed files with 594 additions and 978 deletions

View file

@ -99,7 +99,6 @@
android:orientation="vertical"
android:id="@+id/task_difficulty_wrapper">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
@ -120,7 +119,6 @@
android:layout_marginTop="20dp"
android:id="@+id/task_attribute_wrapper">
<TextView
android:id="@+id/attribute_title_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
@ -146,8 +144,7 @@
android:orientation="vertical">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/actions"
android:textAppearance="?android:attr/textAppearanceLarge" />
@ -158,8 +155,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
@ -183,8 +179,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
@ -213,7 +208,6 @@
android:orientation="vertical">
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
@ -265,7 +259,6 @@
android:orientation="vertical">
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/frequency"
@ -295,7 +288,6 @@
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
@ -359,7 +351,6 @@
android:id="@+id/task_tags_wrapper">
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tags"

View file

@ -98,13 +98,10 @@ public class APIHelper implements ErrorHandler, Profiler {
Crashlytics.getInstance().core.setUserName(cfg.getUser());
Amplitude.getInstance().setUserId(cfg.getUser());
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestInterceptor.RequestFacade request) {
request.addHeader("x-api-key", cfg.getApi());
request.addHeader("x-api-user", cfg.getUser());
request.addHeader("x-client", "habitica-android");
}
RequestInterceptor requestInterceptor = request -> {
request.addHeader("x-api-key", cfg.getApi());
request.addHeader("x-api-user", cfg.getUser());
request.addHeader("x-client", "habitica-android");
};
Type taskTagClassListType = new TypeToken<List<TaskTag>>() {
@ -226,10 +223,8 @@ public class APIHelper implements ErrorHandler, Profiler {
}
public void retrieveUser(final HabitRPGUserCallback callback) {
new Thread(new Runnable() {
public void run() {
apiService.getUser(callback);
}
new Thread(() -> {
apiService.getUser(callback);
}).start();
}
@ -346,23 +341,19 @@ public class APIHelper implements ErrorHandler, Profiler {
}
private void showConnectionProblemDialog(final String resourceTitleString, final String resourceMessageString){
HabiticaApplication.currentActivity.runOnUiThread(new Runnable() {
public void run() {
if (!(HabiticaApplication.currentActivity).isFinishing()) {
AlertDialog.Builder builder = new AlertDialog.Builder(HabiticaApplication.currentActivity)
.setTitle(resourceTitleString)
.setMessage(resourceMessageString)
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
HabiticaApplication.currentActivity.runOnUiThread(() -> {
if (!(HabiticaApplication.currentActivity).isFinishing()) {
AlertDialog.Builder builder = new AlertDialog.Builder(HabiticaApplication.currentActivity)
.setTitle(resourceTitleString)
.setMessage(resourceMessageString)
.setNeutralButton(android.R.string.ok, (dialog, which) -> {
});
if (!resourceTitleString.isEmpty()) {
builder.setIcon(R.drawable.ic_warning_black);
}
builder.show();
if (!resourceTitleString.isEmpty()) {
builder.setIcon(R.drawable.ic_warning_black);
}
builder.show();
}
});
}

View file

@ -8,6 +8,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import com.habitrpg.android.habitica.ui.activities.MainActivity;
@ -73,7 +74,7 @@ public class NotificationPublisher extends BroadcastReceiver {
builder.setContentIntent(intent);
if (currentapiVersion >= Build.VERSION_CODES.LOLLIPOP) {
builder.setColor(context.getResources().getColor(R.color.brand_300));
builder.setColor(ContextCompat.getColor(context, R.color.brand_300));
}
if (currentapiVersion >= Build.VERSION_CODES.JELLY_BEAN){

View file

@ -56,28 +56,23 @@ public class CustomListPreference extends ListPreference {
}
customListPreferenceAdapter = new CustomListPreferenceAdapter(mContext);
builder.setAdapter(customListPreferenceAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
builder.setAdapter(customListPreferenceAdapter, (dialog, which) -> {
}
});
builder.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
if (value != null && value.equals("custom")) {
Log.d("commiting", "custom value");
value = text.getText().toString();
}
if (value == null || !value.startsWith("http")) {
Log.v("Commiting", "changing values to default");
value = mContext.getString(R.string.SP_address_default);
}
Log.d("Commiting", "putting string: " + value);
editor.putString(mContext.getString(R.string.SP_address), value);
editor.commit();
arg0.dismiss();
builder.setPositiveButton("OK", (arg0, arg1) -> {
if (value != null && value.equals("custom")) {
Log.d("commiting", "custom value");
value = text.getText().toString();
}
if (value == null || !value.startsWith("http")) {
Log.v("Commiting", "changing values to default");
value = mContext.getString(R.string.SP_address_default);
}
Log.d("Commiting", "putting string: " + value);
editor.putString(mContext.getString(R.string.SP_address), value);
editor.commit();
arg0.dismiss();
});
}
@ -119,15 +114,13 @@ public class CustomListPreference extends ListPreference {
row.setTag(holder);
// row.setClickable(true);
row.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (!rButtonList.get(position).isChecked()) {
for (RadioButton rb : rButtonList) {
if (rb.getId() == position) {
Log.d("row.OnClickListener - " + position, "isChecked");
if (!rb.isChecked())
rb.setChecked(true);
}
row.setOnClickListener(v -> {
if (!rButtonList.get(position).isChecked()) {
for (RadioButton rb : rButtonList) {
if (rb.getId() == position) {
Log.d("row.OnClickListener - " + position, "isChecked");
if (!rb.isChecked())
rb.setChecked(true);
}
}
}
@ -171,18 +164,16 @@ public class CustomListPreference extends ListPreference {
// also need to do something to check your preference and set the right button as checked
rButtonList.add(rButton);
rButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
for (RadioButton rb : rButtonList) {
if (rb.getId() != buttonView.getId())
rb.setChecked(false);
}
int index = buttonView.getId();
value = entryValues[index].toString();
Log.v("NormalHolder.onCheckedChanged", "putting string" + value);
rButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked) {
for (RadioButton rb : rButtonList) {
if (rb.getId() != buttonView.getId())
rb.setChecked(false);
}
int index = buttonView.getId();
value = entryValues[index].toString();
Log.v("NormalHolder.onCheckedChanged", "putting string" + value);
}
});
}
@ -199,13 +190,10 @@ public class CustomListPreference extends ListPreference {
text = (EditText) row.findViewById(R.id.ET_prefs_customText);
text.setText(pref);
text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (!rButton.isChecked())
rButton.setChecked(true);
}
text.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
if (!rButton.isChecked())
rButton.setChecked(true);
}
});
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
@ -213,21 +201,19 @@ public class CustomListPreference extends ListPreference {
// also need to do something to check your preference and set the right button as checked
rButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
for (RadioButton rb : rButtonList) {
if (rb != buttonView)
rb.setChecked(false);
}
if (!text.hasFocus())
text.requestFocus();
value = String.valueOf("custom");
Log.v("CustomHolder.onCheckedChanged", "putting string" + value);
} else {
if (text.hasFocus())
text.clearFocus();
rButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked) {
for (RadioButton rb : rButtonList) {
if (rb != buttonView)
rb.setChecked(false);
}
if (!text.hasFocus())
text.requestFocus();
value = String.valueOf("custom");
Log.v("CustomHolder.onCheckedChanged", "putting string" + value);
} else {
if (text.hasFocus())
text.clearFocus();
}
});
}

View file

@ -303,24 +303,18 @@ public class IntentIntegrator {
AlertDialog.Builder downloadDialog = new AlertDialog.Builder(activity);
downloadDialog.setTitle(title);
downloadDialog.setMessage(message);
downloadDialog.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String packageName = targetApplications.get(0);
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException anfe) {
// Hmm, market is not installed
Log.w(TAG, "Google Play is not installed; cannot install " + packageName, anfe);
}
downloadDialog.setPositiveButton(buttonYes, (dialogInterface, i) -> {
String packageName = targetApplications.get(0);
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException anfe) {
// Hmm, market is not installed
Log.w(TAG, "Google Play is not installed; cannot install " + packageName, anfe);
}
});
downloadDialog.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
downloadDialog.setNegativeButton(buttonNo, (dialogInterface, i) -> {
});
return downloadDialog.show();
}

View file

@ -5,6 +5,7 @@ import android.content.Context;
import android.databinding.DataBindingUtil;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.res.ResourcesCompat;
import android.util.Log;
import android.view.View;
@ -135,7 +136,7 @@ public class AvatarWithBarsViewModel implements View.OnClickListener {
maxHP = 50;
}
setValueBar(valueBar, (float) Math.ceil(stats.getHp().floatValue()), maxHP, ctx.getString(R.string.HP_default), ctx.getResources().getColor(R.color.hpColor), R.drawable.ic_header_heart);
setValueBar(valueBar, (float) Math.ceil(stats.getHp().floatValue()), maxHP, ctx.getString(R.string.HP_default), ContextCompat.getColor(ctx, R.color.hpColor), R.drawable.ic_header_heart);
}
public void setHpBarData(Stats stats) {
@ -148,7 +149,7 @@ public class AvatarWithBarsViewModel implements View.OnClickListener {
} else {
cachedMaxHealth = valueMax;
}
setValueBar(hpBar, (float) Math.ceil(value), valueMax, context.getString(R.string.HP_default), context.getResources().getColor(R.color.hpColor), R.drawable.ic_header_heart);
setValueBar(hpBar, (float) Math.ceil(value), valueMax, context.getString(R.string.HP_default), ContextCompat.getColor(context, R.color.hpColor), R.drawable.ic_header_heart);
}
public void setXpBarData(float value, int valueMax){
@ -157,7 +158,7 @@ public class AvatarWithBarsViewModel implements View.OnClickListener {
} else {
cachedMaxExp = valueMax;
}
setValueBar(xpBar, (float) Math.floor(value), valueMax, context.getString(R.string.XP_default), context.getResources().getColor(R.color.xpColor), R.drawable.ic_header_exp);
setValueBar(xpBar, (float) Math.floor(value), valueMax, context.getString(R.string.XP_default), ContextCompat.getColor(context, R.color.xpColor), R.drawable.ic_header_exp);
}
public void setMpBarData(float value, int valueMax){
@ -166,7 +167,7 @@ public class AvatarWithBarsViewModel implements View.OnClickListener {
} else {
cachedMaxMana = valueMax;
}
setValueBar(mpBar, (float) Math.floor(value), valueMax, context.getString(R.string.MP_default), context.getResources().getColor(R.color.mpColor), R.drawable.ic_header_magic);
setValueBar(mpBar, (float) Math.floor(value), valueMax, context.getString(R.string.MP_default), ContextCompat.getColor(context, R.color.mpColor), R.drawable.ic_header_magic);
}
// Layout_Weight don't accepts 0.7/0.3 to have 70% filled instead it shows the 30% , so I had to switch the values

View file

@ -1,5 +1,6 @@
package com.habitrpg.android.habitica.ui;
import android.support.v4.content.ContextCompat;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@ -58,7 +59,7 @@ public class EditTextDrawer extends BasePrimaryDrawerItem<EditTextDrawer, EditTe
this.view = view;
ButterKnife.bind(this, view);
ViewHelper.SetBackgroundTint(btnAdd, view.getResources().getColor(R.color.brand));
ViewHelper.SetBackgroundTint(btnAdd, ContextCompat.getColor(view.getContext(), R.color.brand));
btnAdd.setOnClickListener(this);
}

View file

@ -58,12 +58,7 @@ public class MainDrawerBuilder {
.addProfiles(
new ProfileDrawerItem()
)
.withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {
@Override
public boolean onProfileChanged(View view, IProfile profile, boolean currentProfile) {
return false;
}
})
.withOnAccountHeaderListener((view, profile, currentProfile) -> false)
.withSelectionListEnabledForSingleProfile(false);
}
@ -102,87 +97,84 @@ public class MainDrawerBuilder {
)
.withStickyFooterDivider(false)
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
BaseMainFragment fragment = null;
Class newActivityClass = null;
.withOnDrawerItemClickListener((view, position, drawerItem) -> {
BaseMainFragment fragment = null;
Class newActivityClass = null;
int identifier = (int) drawerItem.getIdentifier();
switch (identifier) {
case SIDEBAR_TASKS: {
fragment = new TasksFragment();
break;
}
case SIDEBAR_SKILLS: {
fragment = new SkillsFragment();
break;
}
case SIDEBAR_PARTY: {
fragment = new PartyFragment();
break;
}
case SIDEBAR_GUILDS: {
fragment = new GuildsOverviewFragment();
break;
}
case SIDEBAR_TAVERN: {
fragment = new TavernFragment();
break;
}
case SIDEBAR_AVATAR: {
fragment = new AvatarOverviewFragment();
break;
}
case SIDEBAR_EQUIPMENT: {
fragment = new EquipmentOverviewFragment();
break;
}
case SIDEBAR_ITEMS: {
fragment = new ItemsFragment();
break;
}
case SIDEBAR_STABLE: {
fragment = new StableFragment();
break;
}
case SIDEBAR_PURCHASE: {
fragment = new GemsPurchaseFragment();
break;
}
case SIDEBAR_NEWS: {
fragment= new NewsFragment();
break;
}
case SIDEBAR_SETTINGS: {
newActivityClass = PrefsActivity.class;
break;
}
case SIDEBAR_HELP: {
fragment = new FAQOverviewFragment();
break;
}
case SIDEBAR_ABOUT: {
newActivityClass = AboutActivity.class;
break;
}
int identifier = (int) drawerItem.getIdentifier();
switch (identifier) {
case SIDEBAR_TASKS: {
fragment = new TasksFragment();
break;
}
if (fragment != null) {
fragment.fragmentSidebarPosition = position;
activity.displayFragment(fragment);
return false;
case SIDEBAR_SKILLS: {
fragment = new SkillsFragment();
break;
}
if (newActivityClass != null) {
Intent passUserId = new Intent(activity, newActivityClass);
passUserId.putExtra("userId", activity.getUserID());
activity.startActivity(passUserId);
return false;
case SIDEBAR_PARTY: {
fragment = new PartyFragment();
break;
}
case SIDEBAR_GUILDS: {
fragment = new GuildsOverviewFragment();
break;
}
case SIDEBAR_TAVERN: {
fragment = new TavernFragment();
break;
}
case SIDEBAR_AVATAR: {
fragment = new AvatarOverviewFragment();
break;
}
case SIDEBAR_EQUIPMENT: {
fragment = new EquipmentOverviewFragment();
break;
}
case SIDEBAR_ITEMS: {
fragment = new ItemsFragment();
break;
}
case SIDEBAR_STABLE: {
fragment = new StableFragment();
break;
}
case SIDEBAR_PURCHASE: {
fragment = new GemsPurchaseFragment();
break;
}
case SIDEBAR_NEWS: {
fragment= new NewsFragment();
break;
}
case SIDEBAR_SETTINGS: {
newActivityClass = PrefsActivity.class;
break;
}
case SIDEBAR_HELP: {
fragment = new FAQOverviewFragment();
break;
}
case SIDEBAR_ABOUT: {
newActivityClass = AboutActivity.class;
break;
}
return true;
}
if (fragment != null) {
fragment.fragmentSidebarPosition = position;
activity.displayFragment(fragment);
return false;
}
if (newActivityClass != null) {
Intent passUserId = new Intent(activity, newActivityClass);
passUserId.putExtra("userId", activity.getUserID());
activity.startActivity(passUserId);
return false;
}
return true;
});
return builder;

View file

@ -9,6 +9,7 @@ import android.support.annotation.ColorRes;
import android.support.annotation.DrawableRes;
import android.support.annotation.LayoutRes;
import android.support.annotation.StringRes;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
@ -134,7 +135,7 @@ public class SectionIconDrawerItem extends AbstractDrawerItem<SectionIconDrawerI
viewHolder.view.setEnabled(false);
//define the text color
viewHolder.name.setTextColor(ctx.getResources().getColor(R.color.white));
viewHolder.name.setTextColor(ContextCompat.getColor(ctx, R.color.white));
//set the text for the name
StringHolder.applyTo(this.getName(), viewHolder.name);

View file

@ -71,7 +71,7 @@ public class AboutActivity extends BaseActivity {
}
});
tabLayout.setTabsFromPagerAdapter(adapter);
tabLayout.setupWithViewPager(pager);
}
@Override

View file

@ -72,13 +72,7 @@ public class GroupFormActivity extends BaseActivity {
popup = new EmojiPopup(emojiButton.getRootView(), this, ContextCompat.getColor(this, R.color.brand));
popup.setSizeForSoftKeyboard();
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
changeEmojiKeyboardIcon(false);
}
});
popup.setOnDismissListener(() -> changeEmojiKeyboardIcon(false));
popup.setOnSoftKeyboardOpenCloseListener(new EmojiPopup.OnSoftKeyboardOpenCloseListener() {
@Override
@ -93,37 +87,29 @@ public class GroupFormActivity extends BaseActivity {
}
});
popup.setOnEmojiconClickedListener(new EmojiGridView.OnEmojiconClickedListener() {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
EmojiEditText emojiEditText = null;
if (getCurrentFocus() == null || !isEmojiEditText(getCurrentFocus()) || emojicon == null) {
return;
} else {
emojiEditText = (EmojiEditText) getCurrentFocus();
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
popup.setOnEmojiconClickedListener(emojicon -> {
EmojiEditText emojiEditText = null;
if (getCurrentFocus() == null || !isEmojiEditText(getCurrentFocus()) || emojicon == null) {
return;
} else {
emojiEditText = (EmojiEditText) getCurrentFocus();
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
});
popup.setOnEmojiconBackspaceClickedListener(new EmojiPopup.OnEmojiconBackspaceClickedListener() {
@Override
public void onEmojiconBackspaceClicked(View v) {
if (isEmojiEditText(getCurrentFocus())) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
getCurrentFocus().dispatchKeyEvent(event);
}
popup.setOnEmojiconBackspaceClickedListener(v -> {
if (isEmojiEditText(getCurrentFocus())) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
getCurrentFocus().dispatchKeyEvent(event);
}
});

View file

@ -4,6 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.Button;
@ -64,19 +65,19 @@ public class IntroActivity extends BaseActivity implements View.OnClickListener,
switch (position) {
case 0: {
fragment.setImage(getResources().getDrawable(R.drawable.intro_1));
fragment.setImage(ResourcesCompat.getDrawable(getResources(), R.drawable.intro_1, null));
fragment.setTitle(getString(R.string.intro_1_title));
fragment.setDescription(getString(R.string.intro_1_description));
break;
}
case 1: {
fragment.setImage(getResources().getDrawable(R.drawable.intro_2));
fragment.setImage(ResourcesCompat.getDrawable(getResources(), R.drawable.intro_2, null));
fragment.setTitle(getString(R.string.intro_2_title));
fragment.setDescription(getString(R.string.intro_2_description));
break;
}
case 2: {
fragment.setImage(getResources().getDrawable(R.drawable.intro_3));
fragment.setImage(ResourcesCompat.getDrawable(getResources(), R.drawable.intro_3, null));
fragment.setTitle(getString(R.string.intro_3_title));
fragment.setDescription(getString(R.string.intro_3_description));
break;

View file

@ -204,15 +204,12 @@ public class LoginActivity extends AppCompatActivity
}
};
private View.OnClickListener mForgotPWClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = getString(R.string.SP_address_default);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
};
private View.OnClickListener mForgotPWClick = v -> {
String url = getString(R.string.SP_address_default);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
};
public static void expand(final View v) {
@ -393,10 +390,8 @@ public class LoginActivity extends AppCompatActivity
new android.support.v7.app.AlertDialog.Builder(this)
.setTitle(R.string.login_validation_error_title)
.setMessage(resourceMessageString)
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.setNeutralButton(android.R.string.ok, (dialog, which) -> {
})
.setIcon(R.drawable.ic_warning_black)
.show();
}

View file

@ -291,17 +291,14 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
updateData.put("preferences.timezoneOffset", String.valueOf(offset));
mAPIHelper.apiService.updateUser(updateData, new HabitRPGUserCallback(this));
}
runOnUiThread(new Runnable() {
@Override
public void run() {
updateHeader();
updateSidebar();
saveLoginInformation();
if (activeFragment != null) {
activeFragment.updateUserData(user);
} else {
drawer.setSelectionAtPosition(1);
}
runOnUiThread(() -> {
updateHeader();
updateSidebar();
saveLoginInformation();
if (activeFragment != null) {
activeFragment.updateUserData(user);
} else {
drawer.setSelectionAtPosition(1);
}
});
@ -309,31 +306,29 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
if (!fromLocalDb) {
// Update the oldEntries
new Thread(new Runnable() {
public void run() {
new Thread(() -> {
// multiple crashes because user is null
if (user != null) {
ArrayList<Task> allTasks = new ArrayList<>();
allTasks.addAll(user.getDailys());
allTasks.addAll(user.getTodos());
allTasks.addAll(user.getHabits());
allTasks.addAll(user.getRewards());
// multiple crashes because user is null
if (user != null) {
ArrayList<Task> allTasks = new ArrayList<>();
allTasks.addAll(user.getDailys());
allTasks.addAll(user.getTodos());
allTasks.addAll(user.getHabits());
allTasks.addAll(user.getRewards());
loadAndRemoveOldTasks(user.getId(), allTasks);
loadAndRemoveOldTasks(user.getId(), allTasks);
ArrayList<ChecklistItem> allChecklistItems = new ArrayList<>();
ArrayList<ChecklistItem> allChecklistItems = new ArrayList<>();
for (Task t : allTasks) {
if (t.checklist != null) {
allChecklistItems.addAll(t.checklist);
}
for (Task t : allTasks) {
if (t.checklist != null) {
allChecklistItems.addAll(t.checklist);
}
loadAndRemoveOldChecklists(allChecklistItems);
updateOwnedEquipment(user.getItems().getGear().owned);
}
loadAndRemoveOldChecklists(allChecklistItems);
updateOwnedEquipment(user.getItems().getGear().owned);
}
}).start();
}
@ -489,11 +484,9 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
}
profile.withName(user.getProfile().getName());
sideUserPicture.setUser(this.user);
sideUserPicture.setPictureWithRunnable(new UserPictureRunnable() {
public void run(Bitmap avatar) {
profile.withIcon(avatar);
accountHeader.updateProfile(profile);
}
sideUserPicture.setPictureWithRunnable(avatar -> {
profile.withIcon(avatar);
accountHeader.updateProfile(profile);
});
accountHeader.updateProfile(profile);
@ -686,7 +679,6 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
@Subscribe
public void onEvent(SellItemCommand event) {
String itemType = "";
this.mAPIHelper.apiService.sellItem(event.item.getType(), event.item.getKey(), new Callback<HabitRPGUser>() {
@Override
public void success(HabitRPGUser habitRPGUser, Response response) {
@ -719,11 +711,8 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle(getString(R.string.hatched_pet_title, event.usingHatchingPotion.getText(), event.usingEgg.getText()))
.setView(petWrapper)
.setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
.setPositiveButton(R.string.close, (dialog1, which) -> {
dialog1.dismiss();
})
.create();
dialog.show();
@ -798,14 +787,7 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
private void showSnackBarForDataReceived(final TaskDirectionData data) {
if (data.get_tmp() != null) {
if (data.get_tmp().getDrop() != null) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
showSnackbar(MainActivity.this, floatingMenuWrapper, data.get_tmp().getDrop().getDialog(), SnackbarDisplayType.DROP);
}
}, 3000L);
new Handler().postDelayed(() -> showSnackbar(MainActivity.this, floatingMenuWrapper, data.get_tmp().getDrop().getDialog(), SnackbarDisplayType.DROP), 3000L);
}
}
}
@ -882,12 +864,9 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
this.faintDialog = new AlertDialog.Builder(this)
.setTitle(R.string.faint_header)
.setView(customView)
.setPositiveButton(R.string.faint_button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
faintDialog = null;
mAPIHelper.reviveUser(new HabitRPGUserCallback(MainActivity.this));
}
.setPositiveButton(R.string.faint_button, (dialog, which) -> {
faintDialog = null;
mAPIHelper.reviveUser(new HabitRPGUserCallback(MainActivity.this));
})
.create();

View file

@ -207,9 +207,9 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
tags = bundle.getStringArrayList(TAG_IDS_KEY);
tagsName = bundle.getStringArrayList(TAG_NAMES_KEY);
allocationMode = bundle.getString(ALLOCATION_MODE_KEY);
userSelectedTags = new ArrayList<CharSequence>();
allTags = new ArrayList<CheckBox>();
userSelectedTagIds = new ArrayList<String>();
userSelectedTags = new ArrayList<>();
allTags = new ArrayList<>();
userSelectedTagIds = new ArrayList<>();
if (taskType == null) {
return;
}
@ -219,32 +219,20 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
btnDelete.setEnabled(false);
ViewHelper.SetBackgroundTint(btnDelete, ContextCompat.getColor(this, R.color.worse_10));
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(view.getContext())
.setTitle(getString(R.string.taskform_delete_title))
.setMessage(getString(R.string.taskform_delete_message)).setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (task != null) {
task.delete();
}
finish();
dismissKeyboard();
EventBus.getDefault().post(new DeleteTaskCommand(taskId));
btnDelete.setOnClickListener(view -> new AlertDialog.Builder(view.getContext())
.setTitle(getString(R.string.taskform_delete_title))
.setMessage(getString(R.string.taskform_delete_message)).setPositiveButton(getString(R.string.yes), (dialog, which) -> {
if (task != null) {
task.delete();
}
}).setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
});
finish();
dismissKeyboard();
EventBus.getDefault().post(new DeleteTaskCommand(taskId));
}).setNegativeButton(getString(R.string.no), (dialog, which) -> {
dialog.dismiss();
}).show());
ArrayAdapter<CharSequence> difficultyAdapter = ArrayAdapter.createFromResource(this,
R.array.task_difficulties, android.R.layout.simple_spinner_item);
@ -296,14 +284,11 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
if (taskType.equals("todo")) {
dueDatePickerLayout.removeView(dueDatePickerText);
//Allows user to decide if they want to add a due date or not
dueDateCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.isChecked()) {
dueDatePickerLayout.addView(dueDatePickerText);
} else {
dueDatePickerLayout.removeView(dueDatePickerText);
}
dueDateCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (buttonView.isChecked()) {
dueDatePickerLayout.addView(dueDatePickerText);
} else {
dueDatePickerLayout.removeView(dueDatePickerText);
}
});
} else {
@ -355,13 +340,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
popup = new EmojiPopup(emojiToggle0.getRootView(), this, ContextCompat.getColor(this, R.color.brand));
popup.setSizeForSoftKeyboard();
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
changeEmojiKeyboardIcon(false);
}
});
popup.setOnDismissListener(() -> changeEmojiKeyboardIcon(false));
popup.setOnSoftKeyboardOpenCloseListener(new EmojiPopup.OnSoftKeyboardOpenCloseListener() {
@Override
@ -376,37 +355,29 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
}
});
popup.setOnEmojiconClickedListener(new EmojiGridView.OnEmojiconClickedListener() {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
EmojiEditText emojiEditText = null;
if (getCurrentFocus() == null || !isEmojiEditText(getCurrentFocus()) || emojicon == null) {
return;
} else {
emojiEditText = (EmojiEditText) getCurrentFocus();
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
popup.setOnEmojiconClickedListener(emojicon -> {
EmojiEditText emojiEditText = null;
if (getCurrentFocus() == null || !isEmojiEditText(getCurrentFocus()) || emojicon == null) {
return;
} else {
emojiEditText = (EmojiEditText) getCurrentFocus();
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
});
popup.setOnEmojiconBackspaceClickedListener(new EmojiPopup.OnEmojiconBackspaceClickedListener() {
@Override
public void onEmojiconBackspaceClicked(View v) {
if (isEmojiEditText(getCurrentFocus())) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
getCurrentFocus().dispatchKeyEvent(event);
}
popup.setOnEmojiconBackspaceClickedListener(v -> {
if (isEmojiEditText(getCurrentFocus())) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
getCurrentFocus().dispatchKeyEvent(event);
}
});
@ -450,11 +421,8 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
this.datePickerDialog.setButton(DialogInterface.BUTTON_NEUTRAL, getResources().getString(R.string.today), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setCalendar(Calendar.getInstance().getTime());
}
this.datePickerDialog.setButton(DialogInterface.BUTTON_NEUTRAL, getResources().getString(R.string.today), (dialog, which) -> {
setCalendar(Calendar.getInstance().getTime());
});
updateDateText();
}
@ -534,14 +502,11 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(recyclerView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String checklist = newCheckListEditText.getText().toString();
ChecklistItem item = new ChecklistItem(checklist);
checklistAdapter.addItem(item);
newCheckListEditText.setText("");
}
button.setOnClickListener(v -> {
String checklist = newCheckListEditText.getText().toString();
ChecklistItem item = new ChecklistItem(checklist);
checklistAdapter.addItem(item);
newCheckListEditText.setText("");
});
}
@ -554,14 +519,11 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
tagsCheckBox.setText(tagsName.get(i)); // set text Name
tagsCheckBox.setId(i);
//This is to check if the tag was selected by the user. Similar to onClickListener
tagsCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.isChecked()) {
userSelectedTags.add(buttonView.getText());
} else {
userSelectedTags.remove(buttonView.getText());
}
tagsCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (buttonView.isChecked()) {
userSelectedTags.add(buttonView.getText());
} else {
userSelectedTags.remove(buttonView.getText());
}
});
row.addView(tagsCheckBox);

View file

@ -179,28 +179,22 @@ public class CustomizationRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
priceLabel.setText(String.valueOf(customization.getPrice()));
AlertDialog dialog = new AlertDialog.Builder(context)
.setPositiveButton(R.string.purchase_button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (customization.getPrice() > gemBalance) {
OpenMenuItemCommand event = new OpenMenuItemCommand();
event.identifier = MainDrawerBuilder.SIDEBAR_PURCHASE;
EventBus.getDefault().post(event);
return;
}
UnlockPathCommand event = new UnlockPathCommand();
event.path = customization.getPath();
event.balanceDiff = customization.getPrice() / 4;
.setPositiveButton(R.string.purchase_button, (dialog1, which) -> {
if (customization.getPrice() > gemBalance) {
OpenMenuItemCommand event = new OpenMenuItemCommand();
event.identifier = MainDrawerBuilder.SIDEBAR_PURCHASE;
EventBus.getDefault().post(event);
return;
}
UnlockPathCommand event = new UnlockPathCommand();
event.path = customization.getPath();
event.balanceDiff = customization.getPrice() / 4;
EventBus.getDefault().post(event);
})
.setTitle(context.getString(R.string.purchase_customization))
.setView(dialogContent)
.setNegativeButton(R.string.reward_dialog_dismiss, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
.setNegativeButton(R.string.reward_dialog_dismiss, (dialog1, which) -> {
dialog1.dismiss();
}).create();
dialog.show();
return;
@ -261,37 +255,31 @@ public class CustomizationRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
priceLabel.setText(String.valueOf(set.price));
AlertDialog dialog = new AlertDialog.Builder(context)
.setPositiveButton(R.string.purchase_button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (set.price > gemBalance) {
OpenMenuItemCommand event = new OpenMenuItemCommand();
event.identifier = MainDrawerBuilder.SIDEBAR_PURCHASE;
EventBus.getDefault().post(event);
return;
}
UnlockPathCommand event = new UnlockPathCommand();
String path = "";
for (Object obj : customizationList) {
if (obj.getClass().equals(Customization.class)) {
Customization customization = (Customization) obj;
if (!customization.isUsable() && customization.getCustomizationSet() != null && customization.getCustomizationSet().equals(set.identifier)) {
path = path + "," + customization.getPath();
}
.setPositiveButton(R.string.purchase_button, (dialog1, which) -> {
if (set.price > gemBalance) {
OpenMenuItemCommand event = new OpenMenuItemCommand();
event.identifier = MainDrawerBuilder.SIDEBAR_PURCHASE;
EventBus.getDefault().post(event);
return;
}
UnlockPathCommand event = new UnlockPathCommand();
String path = "";
for (Object obj : customizationList) {
if (obj.getClass().equals(Customization.class)) {
Customization customization = (Customization) obj;
if (!customization.isUsable() && customization.getCustomizationSet() != null && customization.getCustomizationSet().equals(set.identifier)) {
path = path + "," + customization.getPath();
}
}
event.path = path;
event.balanceDiff = set.price / 4;
EventBus.getDefault().post(event);
}
event.path = path;
event.balanceDiff = set.price / 4;
EventBus.getDefault().post(event);
})
.setTitle(context.getString(R.string.purchase_set_title, set.text))
.setView(dialogContent)
.setNegativeButton(R.string.reward_dialog_dismiss, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
.setNegativeButton(R.string.reward_dialog_dismiss, (dialog1, which) -> {
dialog1.dismiss();
}).create();
dialog.show();
}

View file

@ -1,6 +1,7 @@
package com.habitrpg.android.habitica.ui.adapter;
import android.content.res.Resources;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@ -71,14 +72,14 @@ public class SkillsRecyclerViewAdapter extends RecyclerView.Adapter<SkillsRecycl
Skill skill;
Resources resources;
Context context;
public SkillViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
resources = itemView.getResources();
context = itemView.getContext();
priceButton.setOnClickListener(this);
}
@ -87,16 +88,16 @@ public class SkillsRecyclerViewAdapter extends RecyclerView.Adapter<SkillsRecycl
this.skill = skill;
skillNameTextView.setText(skill.text);
skillNotesTextView.setText(skill.notes);
priceButton.setText(String.format(resources.getString(R.string.mana_price_button), skill.mana));
priceButton.setText(String.format(context.getResources().getString(R.string.mana_price_button), skill.mana));
if (skill.mana > mana) {
priceButton.setEnabled(false);
priceButton.setBackgroundResource(R.color.task_gray);
skillNameTextView.setTextColor(resources.getColor(R.color.task_gray));
skillNotesTextView.setTextColor(resources.getColor(R.color.task_gray));
skillNameTextView.setTextColor(ContextCompat.getColor(context, R.color.task_gray));
skillNotesTextView.setTextColor(ContextCompat.getColor(context, R.color.task_gray));
} else {
skillNameTextView.setTextColor(resources.getColor(android.R.color.black));
skillNotesTextView.setTextColor(resources.getColor(android.R.color.black));
skillNameTextView.setTextColor(ContextCompat.getColor(context, android.R.color.black));
skillNotesTextView.setTextColor(ContextCompat.getColor(context, android.R.color.black));
priceButton.setEnabled(true);
}
}

View file

@ -1,6 +1,8 @@
package com.habitrpg.android.habitica.ui.adapter.inventory;
import android.content.Context;
import android.content.res.Resources;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@ -72,14 +74,14 @@ class GearViewHolder extends RecyclerView.ViewHolder implements View.OnClickList
ItemData gear;
Resources resources;
Context context;
public GearViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
resources = itemView.getResources();
context = itemView.getContext();
itemView.setOnClickListener(this);
}
@ -90,7 +92,7 @@ class GearViewHolder extends RecyclerView.ViewHolder implements View.OnClickList
if (gear.key.equals(equippedGear)) {
this.equippedIndicator.setVisibility(View.VISIBLE);
this.gearContainer.setBackgroundColor(resources.getColor(R.color.brand_700));
this.gearContainer.setBackgroundColor(ContextCompat.getColor(context, R.color.brand_700));
} else {
this.equippedIndicator.setVisibility(View.GONE);
this.gearContainer.setBackgroundResource(R.drawable.selection_highlight);

View file

@ -138,40 +138,37 @@ public class ItemRecyclerAdapter extends RecyclerView.Adapter<ItemRecyclerAdapte
} else if (item instanceof QuestContent) {
menu.addMenuItem(new BottomSheetMenuItem(resources.getString(R.string.invite_party)));
}
menu.setSelectionRunnable(new BottomSheetMenuSelectionRunnable() {
@Override
public void selectedItemAt(Integer index) {
if (!(item instanceof QuestContent) && index == 0) {
SellItemCommand event = new SellItemCommand();
event.item = item;
EventBus.getDefault().post(event);
if (item.getOwned() > 1) {
item.setOwned(item.getOwned()-1);
notifyItemChanged(getAdapterPosition());
} else {
itemList.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
}
menu.setSelectionRunnable(index -> {
if (!(item instanceof QuestContent) && index == 0) {
SellItemCommand event = new SellItemCommand();
event.item = item;
EventBus.getDefault().post(event);
if (item.getOwned() > 1) {
item.setOwned(item.getOwned()-1);
notifyItemChanged(getAdapterPosition());
} else {
itemList.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
}
return;
}
if (item instanceof Egg) {
HatchingCommand event = new HatchingCommand();
event.usingEgg = (Egg)item;
EventBus.getDefault().post(event);
} else if (item instanceof Food) {
FeedCommand event = new FeedCommand();
event.usingFood = (Food)item;
EventBus.getDefault().post(event);
} else if (item instanceof HatchingPotion) {
HatchingCommand event = new HatchingCommand();
event.usingHatchingPotion = (HatchingPotion)item;
EventBus.getDefault().post(event);
} else if (item instanceof QuestContent) {
InvitePartyToQuestCommand event = new InvitePartyToQuestCommand();
event.questKey = item.getKey();
EventBus.getDefault().post(event);
}
return;
}
if (item instanceof Egg) {
HatchingCommand event = new HatchingCommand();
event.usingEgg = (Egg)item;
EventBus.getDefault().post(event);
} else if (item instanceof Food) {
FeedCommand event = new FeedCommand();
event.usingFood = (Food)item;
EventBus.getDefault().post(event);
} else if (item instanceof HatchingPotion) {
HatchingCommand event = new HatchingCommand();
event.usingHatchingPotion = (HatchingPotion)item;
EventBus.getDefault().post(event);
} else if (item instanceof QuestContent) {
InvitePartyToQuestCommand event = new InvitePartyToQuestCommand();
event.questKey = item.getKey();
EventBus.getDefault().post(event);
}
});
menu.show();

View file

@ -193,7 +193,7 @@ public class ChatRecyclerViewAdapter extends RecyclerView.Adapter<ChatRecyclerVi
case TYPE_DANIEL: {
btnToggleInn.setOnClickListener(this);
ViewHelper.SetBackgroundTint(btnToggleInn, res.getColor(R.color.brand));
ViewHelper.SetBackgroundTint(btnToggleInn, ContextCompat.getColor(context, R.color.brand));
if(HabiticaApplication.User != null && HabiticaApplication.User.getPreferences().getSleep()){
btnToggleInn.setText(R.string.tavern_inn_checkOut);
}else{

View file

@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.ui.adapter.social;
import android.content.Context;
import android.content.res.Resources;
import android.databinding.DataBindingUtil;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
@ -131,7 +132,7 @@ public class PartyMemberRecyclerViewAdapter extends RecyclerView.Adapter<PartyMe
default:
colorResourceID = R.color.task_gray;
}
ViewHelper.SetBackgroundTint(classBackground, resources.getColor(colorResourceID));
ViewHelper.SetBackgroundTint(classBackground, ContextCompat.getColor(context, colorResourceID));
userName.setText(user.getProfile().getName());
}
}

View file

@ -186,14 +186,11 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends Task>
filteredObservableContent.addAll(this.tagsHelper.filter(observableContent));
}
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
notifyDataSetChanged();
((Activity) context).runOnUiThread(() -> {
notifyDataSetChanged();
if (parentAdapter != null) {
parentAdapter.notifyDataSetChanged();
}
if (parentAdapter != null) {
parentAdapter.notifyDataSetChanged();
}
});
}
@ -473,14 +470,11 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends Task>
}
public void expandCheckboxTouchArea(final View expandedView, final View checkboxView){
expandedView.post(new Runnable() {
@Override
public void run() {
Rect rect = new Rect();
expandedView.getHitRect(rect);
expandedView.setTouchDelegate(new TouchDelegate(rect, checkboxView));
}
});
expandedView.post(() -> {
Rect rect = new Rect();
expandedView.getHitRect(rect);
expandedView.setTouchDelegate(new TouchDelegate(rect, checkboxView));
});
}
}
@ -578,21 +572,15 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends Task>
private AlertDialog createGearDialog(LinearLayout contentViewForDialog) {
return new AlertDialog.Builder(context)
.setPositiveButton(R.string.reward_dialog_buy, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
BuyRewardCommand event = new BuyRewardCommand();
event.Reward = Item;
EventBus.getDefault().post(event);
}
.setPositiveButton(R.string.reward_dialog_buy, (dialog, which) -> {
BuyRewardCommand event = new BuyRewardCommand();
event.Reward = Item;
EventBus.getDefault().post(event);
})
.setTitle(binding.getReward().getText())
.setView(contentViewForDialog)
.setNegativeButton(R.string.reward_dialog_dismiss, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
.setNegativeButton(R.string.reward_dialog_dismiss, (dialog, which) -> {
dialog.dismiss();
}).create();
}

View file

@ -21,16 +21,9 @@ public class DatePickerFragment extends DialogFragment {
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of TimePickerDialog and return it
Dialog d = new DatePickerDialog(getActivity(), (OnDateSetListener) getTargetFragment(), year, month, day);
d.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
d.setOnDismissListener(dialog -> {
});
d.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
}
d.setOnCancelListener(dialog -> {
});
return d;
}

View file

@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.fragments;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -60,7 +61,7 @@ public class GemsPurchaseFragment extends BaseMainFragment {
ButterKnife.bind(this, v);
btnPurchaseGems.setEnabled(false);
ViewHelper.SetBackgroundTint(btnPurchaseGems, container.getResources().getColor(R.color.brand));
ViewHelper.SetBackgroundTint(btnPurchaseGems, ContextCompat.getColor(container.getContext(), R.color.brand));
final ActivityCheckout checkout = listener.getActivityCheckout();
@ -107,17 +108,14 @@ public class GemsPurchaseFragment extends BaseMainFragment {
@Override
public void onReady(BillingRequests billingRequests, String s, boolean b) {
checkout.loadInventory().whenLoaded(new Inventory.Listener() {
@Override
public void onLoaded(Inventory.Products products) {
checkout.loadInventory().whenLoaded(products -> {
Inventory.Product gems = products.get(ProductTypes.IN_APP);
Inventory.Product gems = products.get(ProductTypes.IN_APP);
java.util.List<Sku> skus = gems.getSkus();
java.util.List<Sku> skus = gems.getSkus();
for (Sku sku : skus){
updateBuyButtonText(sku.price);
}
for (Sku sku : skus){
updateBuyButtonText(sku.price);
}
});

View file

@ -71,12 +71,7 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final View finalView = view;
finalView.post(new Runnable() {
@Override
public void run() {
setGridSpanCount(finalView.getWidth());
}
});
finalView.post(() -> setGridSpanCount(finalView.getWidth()));
}
@Override
@ -100,16 +95,13 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
}
private void loadItems() {
Runnable itemsRunnable = new Runnable() {
@Override
public void run() {
List<Mount> items = new Select().from(Mount.class).where(Condition.CombinedCondition
.begin(Condition.column("animal").eq(animalType))
.and(Condition.column("animalGroup").eq(animalGroup))).orderBy(true, "color").queryList();
adapter.setItemList(items);
animals = items;
adapter.setOwnedMapping(user.getItems().getMounts());
}
Runnable itemsRunnable = () -> {
List<Mount> items = new Select().from(Mount.class).where(Condition.CombinedCondition
.begin(Condition.column("animal").eq(animalType))
.and(Condition.column("animalGroup").eq(animalGroup))).orderBy(true, "color").queryList();
adapter.setItemList(items);
animals = items;
adapter.setOwnedMapping(user.getItems().getMounts());
};
itemsRunnable.run();

View file

@ -78,12 +78,7 @@ public class PetDetailRecyclerFragment extends BaseMainFragment {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final View finalView = view;
finalView.post(new Runnable() {
@Override
public void run() {
setGridSpanCount(finalView.getWidth());
}
});
finalView.post(() -> setGridSpanCount(finalView.getWidth()));
}
@Override

View file

@ -112,12 +112,7 @@ public class StableRecyclerFragment extends BaseFragment {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final View finalView = view;
finalView.post(new Runnable() {
@Override
public void run() {
setGridSpanCount(finalView.getWidth());
}
});
finalView.post(() -> setGridSpanCount(finalView.getWidth()));
}
@Override

View file

@ -83,62 +83,17 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
this.setSize(this.user.getPreferences().getSize());
avatarSizeSpinner.setOnItemSelectedListener(this);
avatarShirtView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("shirt", null);
}
});
avatarShirtView.setOnClickListener(v1 -> displayCustomizationFragment("shirt", null));
avatarSkinView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("skin", null);
}
});
avatarSkinView.setOnClickListener(v1 -> displayCustomizationFragment("skin", null));
avatarHairColorView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "color");
}
});
avatarHairBangsView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "bangs");
}
});
avatarHairBaseView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "base");
}
});
avatarHairFlowerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "flower");
}
});
avatarHairBeardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "beard");
}
});
avatarHairMustacheView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("hair", "mustache");
}
});
avatarBackgroundView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayCustomizationFragment("background", null);
}
});
avatarHairColorView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "color"));
avatarHairBangsView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "bangs"));
avatarHairBaseView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "base"));
avatarHairFlowerView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "flower"));
avatarHairBeardView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "beard"));
avatarHairMustacheView.setOnClickListener(v1 -> displayCustomizationFragment("hair", "mustache"));
avatarBackgroundView.setOnClickListener(v1 -> displayCustomizationFragment("background", null));
return v;
}

View file

@ -92,115 +92,32 @@ public class EquipmentOverviewFragment extends BaseMainFragment implements Trans
costumeWeaponView = costumeGroupView.findViewById(R.id.outfit_weapon);
costumeShieldView = costumeGroupView.findViewById(R.id.outfit_shield);
battleGearHeadView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("head", user.getItems().getGear().getEquipped().getHead(), false);
}
});
battleGearHeadAccessoryView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("headAccessory", user.getItems().getGear().getEquipped().getHeadAccessory(), false);
}
});
battleGearEyewearView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("eyewear", user.getItems().getGear().getEquipped().getEyeWear(), false);
}
});
battleGearArmorView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("armor", user.getItems().getGear().getEquipped().getArmor(), false);
}
});
battleGearBackView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("back", user.getItems().getGear().getEquipped().getBack(), false);
}
});
battleGearBodyView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("body", user.getItems().getGear().getEquipped().getBody(), false);
}
});
battleGearWeaponView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("weapon", user.getItems().getGear().getEquipped().getWeapon(), false);
}
});
battleGearShieldView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("shield", user.getItems().getGear().getEquipped().getShield(), false);
}
});
battleGearHeadView.setOnClickListener(v1 -> displayEquipmentDetailList("head", user.getItems().getGear().getEquipped().getHead(), false));
battleGearHeadAccessoryView.setOnClickListener(v1 -> displayEquipmentDetailList("headAccessory", user.getItems().getGear().getEquipped().getHeadAccessory(), false));
battleGearEyewearView.setOnClickListener(v1 -> displayEquipmentDetailList("eyewear", user.getItems().getGear().getEquipped().getEyeWear(), false));
battleGearArmorView.setOnClickListener(v1 -> displayEquipmentDetailList("armor", user.getItems().getGear().getEquipped().getArmor(), false));
battleGearBackView.setOnClickListener(v1 -> displayEquipmentDetailList("back", user.getItems().getGear().getEquipped().getBack(), false));
battleGearBodyView.setOnClickListener(v1 -> displayEquipmentDetailList("body", user.getItems().getGear().getEquipped().getBody(), false));
battleGearWeaponView.setOnClickListener(v1 -> displayEquipmentDetailList("weapon", user.getItems().getGear().getEquipped().getWeapon(), false));
battleGearShieldView.setOnClickListener(v1 -> displayEquipmentDetailList("shield", user.getItems().getGear().getEquipped().getShield(), false));
costumeHeadView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("head", user.getItems().getGear().getCostume().getHead(), true);
}
});
costumeHeadAccessoryView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("headAccessory", user.getItems().getGear().getCostume().getHeadAccessory(), true);
}
});
costumeEyewearView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("eyewear", user.getItems().getGear().getCostume().getEyeWear(), true);
}
});
costumeArmorView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("armor", user.getItems().getGear().getCostume().getArmor(), true);
}
});
costumeBackView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("back", user.getItems().getGear().getCostume().getBack(), true);
}
});
costumeBodyView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("body", user.getItems().getGear().getCostume().getBody(), true);
}
});
costumeWeaponView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("weapon", user.getItems().getGear().getCostume().getWeapon(), true);
}
});
costumeShieldView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayEquipmentDetailList("shield", user.getItems().getGear().getCostume().getShield(), true);
}
});
costumeHeadView.setOnClickListener(v1 -> displayEquipmentDetailList("head", user.getItems().getGear().getCostume().getHead(), true));
costumeHeadAccessoryView.setOnClickListener(v1 -> displayEquipmentDetailList("headAccessory", user.getItems().getGear().getCostume().getHeadAccessory(), true));
costumeEyewearView.setOnClickListener(v1 -> displayEquipmentDetailList("eyewear", user.getItems().getGear().getCostume().getEyeWear(), true));
costumeArmorView.setOnClickListener(v1 -> displayEquipmentDetailList("armor", user.getItems().getGear().getCostume().getArmor(), true));
costumeBackView.setOnClickListener(v1 -> displayEquipmentDetailList("back", user.getItems().getGear().getCostume().getBack(), true));
costumeBodyView.setOnClickListener(v1 -> displayEquipmentDetailList("body", user.getItems().getGear().getCostume().getBody(), true));
costumeWeaponView.setOnClickListener(v1 -> displayEquipmentDetailList("weapon", user.getItems().getGear().getCostume().getWeapon(), true));
costumeShieldView.setOnClickListener(v1 -> displayEquipmentDetailList("shield", user.getItems().getGear().getCostume().getShield(), true));
this.costumeSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
UpdateUserCommand command = new UpdateUserCommand();
Map<String, Object> updateData = new HashMap<>();
updateData.put("preferences.costume", isChecked);
command.updateData = updateData;
this.costumeSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
UpdateUserCommand command = new UpdateUserCommand();
Map<String, Object> updateData = new HashMap<>();
updateData.put("preferences.costume", isChecked);
command.updateData = updateData;
EventBus.getDefault().post(command);
}
EventBus.getDefault().post(command);
});
if (this.nameMapping == null) {

View file

@ -210,22 +210,18 @@ public class ChatListFragment extends BaseFragment implements SwipeRefreshLayout
public void onEvent(final FlagChatMessageCommand cmd) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.chat_flag_confirmation)
.setPositiveButton(R.string.flag_confirm, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
apiHelper.apiService.flagMessage(cmd.groupId, cmd.chatMessage.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
UiUtils.showSnackbar(activity, activity.getFloatingMenuWrapper(), "Flagged message by " + cmd.chatMessage.user, UiUtils.SnackbarDisplayType.NORMAL);
}
.setPositiveButton(R.string.flag_confirm, (dialog, id) -> {
apiHelper.apiService.flagMessage(cmd.groupId, cmd.chatMessage.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
UiUtils.showSnackbar(activity, activity.getFloatingMenuWrapper(), "Flagged message by " + cmd.chatMessage.user, UiUtils.SnackbarDisplayType.NORMAL);
}
@Override
public void failure(RetrofitError error) {
}
}); }
})
.setNegativeButton(R.string.action_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
@Override
public void failure(RetrofitError error) {
}
}); })
.setNegativeButton(R.string.action_cancel, (dialog, id) -> {
});
builder.show();
}

View file

@ -7,6 +7,7 @@ import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@ -31,9 +32,6 @@ import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
/**
* Created by Negue on 16.09.2015.
*/
public class GroupInformationFragment extends Fragment {
@ -164,17 +162,12 @@ public class GroupInformationFragment extends Fragment {
questResponse.setText(R.string.quest_pending);
} else if (questresponse) {
questResponse.setText(R.string.quest_accepted);
questResponse.setTextColor(getResources().getColor(R.color.good_10));
questResponse.setTextColor(ContextCompat.getColor(context, R.color.good_10));
} else {
questResponse.setText(R.string.quest_rejected);
questResponse.setTextColor(getResources().getColor(R.color.worse_10));
questResponse.setTextColor(ContextCompat.getColor(context, R.color.worse_10));
}
questMemberView.post(new Runnable() {
@Override
public void run() {
questMemberView.addView(itemView);
}
});
questMemberView.post(() -> questMemberView.addView(itemView));
}
}
@ -221,27 +214,21 @@ public class GroupInformationFragment extends Fragment {
public void onQuestLeave() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setMessage("Are you sure you want to leave the active quest? All your quest progress will be lost.")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAPIHelper.apiService.leaveQuest(group.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
group.quest.members.remove(user.getId());
setGroup(group);
}
.setPositiveButton("Yes", (dialog, which) -> {
mAPIHelper.apiService.leaveQuest(group.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
group.quest.members.remove(user.getId());
setGroup(group);
}
@Override
public void failure(RetrofitError error) {
@Override
public void failure(RetrofitError error) {
}
});
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}).setNegativeButton("No", (dialog, which) -> {
}
});
builder.show();
}
@ -251,26 +238,20 @@ public class GroupInformationFragment extends Fragment {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setMessage(R.string.quest_begin_message)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAPIHelper.apiService.forceStartQuest(group.id, group, new Callback<Group>() {
@Override
public void success(Group group, Response response) {
setGroup(group);
}
.setPositiveButton(R.string.yes, (dialog, which) -> {
mAPIHelper.apiService.forceStartQuest(group.id, group, new Callback<Group>() {
@Override
public void success(Group group1, Response response) {
setGroup(group1);
}
@Override
public void failure(RetrofitError error) {
@Override
public void failure(RetrofitError error) {
}
});
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}).setNegativeButton(R.string.no, (dialog, which) -> {
}
});
builder.show();
}
@ -279,27 +260,21 @@ public class GroupInformationFragment extends Fragment {
public void onQuestCancel() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setMessage(R.string.quest_cancel_message)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAPIHelper.apiService.cancelQuest(group.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
setGroup(group);
setQuestContent(null);
}
.setPositiveButton(R.string.yes, (dialog, which) -> {
mAPIHelper.apiService.cancelQuest(group.id, new Callback<Void>() {
@Override
public void success(Void aVoid, Response response) {
setGroup(group);
setQuestContent(null);
}
@Override
public void failure(RetrofitError error) {
@Override
public void failure(RetrofitError error) {
}
});
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}).setNegativeButton(R.string.no, (dialog, which) -> {
}
});
builder.show();
}
@ -308,27 +283,21 @@ public class GroupInformationFragment extends Fragment {
public void onQuestAbort() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setMessage("Are you sure you want to abort this mission? It will abort it for everyone in your party and all progress will be lost. The quest scroll will be returned to the quest owner.")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAPIHelper.apiService.abortQuest(group.id, new Callback<Group>() {
@Override
public void success(Group group, Response response) {
setGroup(group);
setQuestContent(null);
}
.setPositiveButton("Yes", (dialog, which) -> {
mAPIHelper.apiService.abortQuest(group.id, new Callback<Group>() {
@Override
public void success(Group group1, Response response) {
setGroup(group1);
setQuestContent(null);
}
@Override
public void failure(RetrofitError error) {
@Override
public void failure(RetrofitError error) {
}
});
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}).setNegativeButton("No", (dialog, which) -> {
}
});
builder.show();
}

View file

@ -145,33 +145,13 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi
floatingMenu = (FloatingActionMenu) view;
}
FloatingActionButton habit_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_habit);
habit_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openNewTaskActivity("habit");
}
});
habit_fab.setOnClickListener(v1 -> openNewTaskActivity("habit"));
FloatingActionButton daily_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_daily);
daily_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openNewTaskActivity("daily");
}
});
daily_fab.setOnClickListener(v1 -> openNewTaskActivity("daily"));
FloatingActionButton todo_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_todo);
todo_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openNewTaskActivity("todo");
}
});
todo_fab.setOnClickListener(v1 -> openNewTaskActivity("todo"));
FloatingActionButton reward_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_reward);
reward_fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openNewTaskActivity("reward");
}
});
reward_fab.setOnClickListener(v1 -> openNewTaskActivity("reward"));
this.activity.filterDrawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END);
@ -252,66 +232,63 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi
layoutOfType = R.layout.reward_item_card;
adapter = new HabitItemRecyclerViewAdapter(Task.TYPE_REWARD, TasksFragment.this.tagsHelper,
layoutOfType, HabitItemRecyclerViewAdapter.RewardViewHolder.class, activity, 0,
new HabitItemRecyclerViewAdapter.IAdditionalEntries() {
@Override
public void GetAdditionalEntries(final IReceiveNewEntries callBack) {
callBack -> {
// request buyable gear
if (mAPIHelper != null) {
mAPIHelper.apiService.getInventoryBuyableGear(new Callback<List<ItemData>>() {
@Override
public void success(List<ItemData> itemDatas, Response response) {
// request buyable gear
if (mAPIHelper != null) {
mAPIHelper.apiService.getInventoryBuyableGear(new Callback<List<ItemData>>() {
@Override
public void success(List<ItemData> itemDatas, Response response) {
// get itemdata list
ArrayList<String> itemKeys = new ArrayList<>();
for (ItemData item : itemDatas) {
itemKeys.add(item.key);
}
itemKeys.add("potion");
if (user.getFlags().getArmoireEnabled())
itemKeys.add("armoire");
// get itemdata list
ArrayList<String> itemKeys = new ArrayList<>();
for (ItemData item : itemDatas) {
itemKeys.add(item.key);
}
itemKeys.add("potion");
if (user.getFlags().getArmoireEnabled())
itemKeys.add("armoire");
contentCache.GetItemDataList(itemKeys, new ContentCache.GotContentEntryCallback<List<ItemData>>() {
@Override
public void GotObject(List<ItemData> obj) {
ArrayList<Task> buyableItems = new ArrayList<>();
contentCache.GetItemDataList(itemKeys, new ContentCache.GotContentEntryCallback<List<ItemData>>() {
@Override
public void GotObject(List<ItemData> obj) {
ArrayList<Task> buyableItems = new ArrayList<>();
for (ItemData item : obj) {
Task reward = new Task();
reward.text = item.text;
reward.notes = item.notes;
reward.value = item.value;
reward.setType("reward");
reward.specialTag = "item";
reward.setId(item.key);
for (ItemData item : obj) {
Task reward = new Task();
reward.text = item.text;
reward.notes = item.notes;
reward.value = item.value;
reward.setType("reward");
reward.specialTag = "item";
reward.setId(item.key);
if (item.key.equals("armoire")) {
if (user.getFlags().getArmoireEmpty()) {
reward.notes = getResources().getString(R.string.armoireNotesEmpty);
} else {
long gearCount = new Select().count()
.from(ItemData.class)
.where(Condition.CombinedCondition.begin(Condition.column("klass").eq("armoire"))
.and(Condition.column("owned").isNull())
).count();
reward.notes = getResources().getString(R.string.armoireNotesFull, gearCount);
}
if (item.key.equals("armoire")) {
if (user.getFlags().getArmoireEmpty()) {
reward.notes = getResources().getString(R.string.armoireNotesEmpty);
} else {
long gearCount = new Select().count()
.from(ItemData.class)
.where(Condition.CombinedCondition.begin(Condition.column("klass").eq("armoire"))
.and(Condition.column("owned").isNull())
).count();
reward.notes = getResources().getString(R.string.armoireNotesFull, gearCount);
}
buyableItems.add(reward);
}
callBack.GotAdditionalItems(buyableItems);
buyableItems.add(reward);
}
});
}
@Override
public void failure(RetrofitError error) {
callBack.GotAdditionalItems(buyableItems);
}
});
}
}
});
}
@Override
public void failure(RetrofitError error) {
}
});
}
});
@ -373,12 +350,7 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi
if (fragm != null) {
final HabitItemRecyclerViewAdapter adapter = (HabitItemRecyclerViewAdapter) fragm.mAdapter;
adapter.dailyResetOffset = this.user.getPreferences().getDayStart();
AsyncTask.execute(new Runnable() {
@Override
public void run() {
adapter.loadContent(true);
}
});
AsyncTask.execute(() -> adapter.loadContent(true));
}
}
}

View file

@ -5,6 +5,8 @@ import android.databinding.DataBindingUtil;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
@ -47,7 +49,7 @@ public class DataBindingUtils {
@BindingAdapter("bind:cardColor")
public static void setCardColor(CardView cardView, int color) {
if (color > 0) {
color = cardView.getResources().getColor(color);
color = ContextCompat.getColor(cardView.getContext(), color);
}
cardView.setCardBackgroundColor(color);
}
@ -55,7 +57,7 @@ public class DataBindingUtils {
@BindingAdapter("app:backgroundColor")
public static void setBackgroundTintColor(CheckBox view, int color) {
if (color > 0) {
color = view.getResources().getColor(color);
color = ContextCompat.getColor(view.getContext(), color);
}
ViewHelper.SetBackgroundTint(view, color);
}
@ -63,7 +65,7 @@ public class DataBindingUtils {
@BindingAdapter("app:backgroundColor")
public static void setBackgroundTintColor(Button view, int color) {
if (color > 0) {
color = view.getResources().getColor(color);
color = ContextCompat.getColor(view.getContext(), color);
}
ViewHelper.SetBackgroundTint(view, color);
}
@ -71,7 +73,7 @@ public class DataBindingUtils {
@BindingAdapter("app:backgroundColor")
public static void setBackgroundTintColor(View view, int color) {
if (color > 0) {
color = view.getResources().getColor(color);
color = ContextCompat.getColor(view.getContext(), color);
}
view.setBackgroundColor(color);
}
@ -79,7 +81,7 @@ public class DataBindingUtils {
@BindingAdapter("app:foregroundColor")
public static void setForegroundTintColor(TextView view, int color) {
if (color > 0) {
color = view.getResources().getColor(color);
color = ContextCompat.getColor(view.getContext(), color);
}
view.setTextColor(color);
}
@ -100,8 +102,10 @@ public class DataBindingUtils {
@BindingAdapter("app:rounded_background")
public static void setRoundedBackground(View view, int color) {
Drawable drawable = view.getResources().getDrawable(R.drawable.layout_rounded_bg);
drawable.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
Drawable drawable = ResourcesCompat.getDrawable(view.getResources(), R.drawable.layout_rounded_bg, null);
if (drawable != null) {
drawable.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
}
if (Build.VERSION.SDK_INT < 16) {
view.setBackgroundDrawable(drawable);
} else {
@ -112,7 +116,7 @@ public class DataBindingUtils {
@BindingAdapter("app:rounded_background_int")
public static void setRoundedBackgroundInt(View view, int color) {
if (color != 0) {
setRoundedBackground(view, view.getResources().getColor(color));
setRoundedBackground(view, ContextCompat.getColor(view.getContext(), color));
}
}

View file

@ -35,13 +35,7 @@ public class EmojiKeyboard {
popup.setSizeForSoftKeyboard();
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
changeEmojiKeyboardIcon(emojiButton, context, false);
}
});
popup.setOnDismissListener(() -> changeEmojiKeyboardIcon(emojiButton, context, false));
popup.setOnSoftKeyboardOpenCloseListener(new EmojiPopup.OnSoftKeyboardOpenCloseListener() {
@ -57,63 +51,51 @@ public class EmojiKeyboard {
}
});
popup.setOnEmojiconClickedListener(new EmojiGridView.OnEmojiconClickedListener() {
popup.setOnEmojiconClickedListener(emojicon -> {
if (emojiEditText == null || emojicon == null) {
return;
}
@Override
public void onEmojiconClicked(Emojicon emojicon) {
if (emojiEditText == null || emojicon == null) {
return;
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
int start = emojiEditText.getSelectionStart();
int end = emojiEditText.getSelectionEnd();
if (start < 0) {
emojiEditText.append(emojicon.getEmoji());
} else {
emojiEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
});
popup.setOnEmojiconBackspaceClickedListener(new EmojiPopup.OnEmojiconBackspaceClickedListener() {
@Override
public void onEmojiconBackspaceClicked(View v) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
emojiEditText.dispatchKeyEvent(event);
}
popup.setOnEmojiconBackspaceClickedListener(v -> {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
emojiEditText.dispatchKeyEvent(event);
});
emojiButton.setOnClickListener(new View.OnClickListener() {
emojiButton.setOnClickListener(v -> {
@Override
public void onClick(View v) {
if(!popup.isShowing()){
if(!popup.isShowing()){
if(popup.isKeyBoardOpen()){
popup.showAtBottom();
changeEmojiKeyboardIcon(emojiButton, context, true);
}
else{
emojiEditText.setFocusableInTouchMode(true);
emojiEditText.requestFocus();
popup.showAtBottomPending();
final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(emojiEditText, InputMethodManager.SHOW_IMPLICIT);
changeEmojiKeyboardIcon(emojiButton, context, true);
}
if(popup.isKeyBoardOpen()){
popup.showAtBottom();
changeEmojiKeyboardIcon(emojiButton, context, true);
}
else{
popup.dismiss();
changeEmojiKeyboardIcon(emojiButton, context, false);
emojiEditText.setFocusableInTouchMode(true);
emojiEditText.requestFocus();
popup.showAtBottomPending();
final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(emojiEditText, InputMethodManager.SHOW_IMPLICIT);
changeEmojiKeyboardIcon(emojiButton, context, true);
}
}
else{
popup.dismiss();
changeEmojiKeyboardIcon(emojiButton, context, false);
}
});
}
private static void changeEmojiKeyboardIcon(ImageButton view, Context context, Boolean keyboardOpened) {

View file

@ -118,16 +118,13 @@ public class FloatingActionMenuBehavior extends CoordinatorLayout.Behavior {
}
private void resetAnimatingStatusWithDelay(final View child) {
child.postDelayed(new Runnable() {
@Override
public void run() {
isAnimating = false;
FloatingActionMenu fab = (FloatingActionMenu)((ViewGroup) child).getChildAt(0);
if (isOffScreen && fab != null) {
fab.hideMenu(false);
}
}
}, FAB_ANIMATION_DURATION);
child.postDelayed(() -> {
isAnimating = false;
FloatingActionMenu fab = (FloatingActionMenu)((ViewGroup) child).getChildAt(0);
if (isOffScreen && fab != null) {
fab.hideMenu(false);
}
}, FAB_ANIMATION_DURATION);
}
private void slideFabOffScreen(View view){

View file

@ -1,6 +1,7 @@
package com.habitrpg.android.habitica.ui.menu;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -30,7 +31,7 @@ public class BottomSheetMenuItem {
TextView textView = (TextView)menuItemView.findViewById(R.id.textView);
textView.setText(this.title);
if (this.isDestructive) {
textView.setTextColor(context.getResources().getColor(R.color.worse_50));
textView.setTextColor(ContextCompat.getColor(context, R.color.worse_50));
}
return menuItemView;
}

View file

@ -81,12 +81,7 @@ public class UserPicture {
BitmapUtils.saveToFile(currentCacheFileName, res);
if (this.imageView != null) {
final Bitmap image = res;
imageView.post(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(image);
}
});
imageView.post(() -> imageView.setImageBitmap(image));
} else {
this.runnable.run(res);
}

View file

@ -144,6 +144,7 @@ public class HabitRPGUser extends BaseModel {
public void setItems(Items items) {
this.items = items;
this.items.user_id = id;
}
public void setBalance(double balance) {
@ -242,7 +243,6 @@ public class HabitRPGUser extends BaseModel {
authentication.user_id = id;
flags.user_id = id;
ArrayList<Task> allTasks = new ArrayList<Task>();
if (dailys != null) {
allTasks.addAll(dailys);

View file

@ -1,7 +1,5 @@
package com.magicmicky.habitrpgwrapper.lib.utils;
import android.os.Build;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
@ -21,7 +19,6 @@ import java.util.Date;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@Config(constants = BuildConfig.class)
@RunWith(RobolectricGradleTestRunner.class)